ark-sdk-python 2.1.4__py3-none-any.whl → 2.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. ark_sdk_python/actions/ark_exec_action.py +1 -0
  2. ark_sdk_python/ark_api.py +60 -0
  3. ark_sdk_python/auth/ark_auth.py +6 -1
  4. ark_sdk_python/auth/identity/ark_identity_fqdn_resolver.py +4 -4
  5. ark_sdk_python/common/ark_version.py +1 -1
  6. ark_sdk_python/common/isp/ark_isp_service_client.py +3 -1
  7. ark_sdk_python/examples/license_consumption_analytics.py +1342 -0
  8. ark_sdk_python/examples/validate_ssh_connection.py +11 -4
  9. ark_sdk_python/models/actions/services/__init__.py +6 -0
  10. ark_sdk_python/models/actions/services/ark_access_exec_action_consts.py +20 -0
  11. ark_sdk_python/models/actions/services/ark_ars_exec_action_consts.py +40 -0
  12. ark_sdk_python/models/actions/services/ark_cmgr_exec_action_consts.py +45 -1
  13. ark_sdk_python/models/actions/services/ark_identity_exec_action_consts.py +17 -0
  14. ark_sdk_python/models/actions/services/ark_pcloud_exec_action_consts.py +45 -0
  15. ark_sdk_python/models/actions/services/ark_sia_exec_action_consts.py +80 -4
  16. ark_sdk_python/models/common/ark_application_code.py +5 -0
  17. ark_sdk_python/models/common/ark_os_type.py +1 -0
  18. ark_sdk_python/models/common/ark_region.py +2 -1
  19. ark_sdk_python/models/common/identity/ark_identity_directory_schemas.py +2 -0
  20. ark_sdk_python/models/services/access/__init__.py +15 -0
  21. ark_sdk_python/models/services/access/assets/__init__.py +13 -0
  22. ark_sdk_python/models/services/access/assets/ark_access_assets_asset.py +61 -0
  23. ark_sdk_python/models/services/access/assets/ark_access_assets_assets.py +15 -0
  24. ark_sdk_python/models/services/access/assets/ark_access_assets_list_assets.py +32 -0
  25. ark_sdk_python/models/services/access/assets/ark_access_assets_secret.py +15 -0
  26. ark_sdk_python/models/services/ars/__init__.py +0 -0
  27. ark_sdk_python/models/services/ars/common/__init__.py +9 -0
  28. ark_sdk_python/models/services/ars/common/ark_ars_filter.py +14 -0
  29. ark_sdk_python/models/services/ars/common/ark_ars_query.py +22 -0
  30. ark_sdk_python/models/services/ars/requests/__init__.py +31 -0
  31. ark_sdk_python/models/services/ars/requests/ark_ars_access_request.py +82 -0
  32. ark_sdk_python/models/services/ars/requests/ark_ars_access_request_async_task.py +44 -0
  33. ark_sdk_python/models/services/ars/requests/ark_ars_access_request_form.py +67 -0
  34. ark_sdk_python/models/services/ars/requests/ark_ars_access_request_info.py +23 -0
  35. ark_sdk_python/models/services/ars/requests/ark_ars_access_requests_stats.py +17 -0
  36. ark_sdk_python/models/services/ars/requests/ark_ars_cancel_access_request.py +8 -0
  37. ark_sdk_python/models/services/ars/requests/ark_ars_finalize_access_request.py +20 -0
  38. ark_sdk_python/models/services/ars/requests/ark_ars_get_access_request.py +7 -0
  39. ark_sdk_python/models/services/ars/requests/ark_ars_list_access_request_forms.py +12 -0
  40. ark_sdk_python/models/services/ars/requests/ark_ars_request_type.py +6 -0
  41. ark_sdk_python/models/services/ars/requests/ark_ars_submit_access_request.py +18 -0
  42. ark_sdk_python/models/services/ars/requests/ark_target_category.py +32 -0
  43. ark_sdk_python/models/services/cmgr/__init__.py +59 -3
  44. ark_sdk_python/models/services/cmgr/ark_cmgr_component.py +82 -0
  45. ark_sdk_python/models/services/cmgr/ark_cmgr_component_operation_async_task.py +31 -0
  46. ark_sdk_python/models/services/cmgr/ark_cmgr_components_filter.py +16 -0
  47. ark_sdk_python/models/services/cmgr/ark_cmgr_components_stats.py +15 -0
  48. ark_sdk_python/models/services/cmgr/ark_cmgr_connector.py +52 -0
  49. ark_sdk_python/models/services/cmgr/ark_cmgr_connector_components_filter.py +7 -0
  50. ark_sdk_python/models/services/cmgr/ark_cmgr_connector_setup_script.py +8 -0
  51. ark_sdk_python/models/services/cmgr/ark_cmgr_connectors_filter.py +34 -0
  52. ark_sdk_python/models/services/cmgr/ark_cmgr_connectors_stats.py +31 -0
  53. ark_sdk_python/models/services/cmgr/ark_cmgr_delete_connector.py +24 -0
  54. ark_sdk_python/models/services/cmgr/ark_cmgr_get_connector.py +7 -0
  55. ark_sdk_python/models/services/cmgr/ark_cmgr_get_connector_component.py +8 -0
  56. ark_sdk_python/models/services/cmgr/ark_cmgr_get_connector_setup_script.py +23 -0
  57. ark_sdk_python/models/services/cmgr/ark_cmgr_install_component.py +12 -0
  58. ark_sdk_python/models/services/cmgr/ark_cmgr_install_connector.py +28 -0
  59. ark_sdk_python/models/services/cmgr/ark_cmgr_list_connector_components.py +7 -0
  60. ark_sdk_python/models/services/cmgr/ark_cmgr_reinstall_component.py +8 -0
  61. ark_sdk_python/models/services/cmgr/ark_cmgr_rescan_components.py +7 -0
  62. ark_sdk_python/models/services/cmgr/ark_cmgr_uninstall_component.py +16 -0
  63. ark_sdk_python/models/services/cmgr/ark_cmgr_uninstall_connector.py +21 -0
  64. ark_sdk_python/models/services/cmgr/ark_cmgr_upgrade_component.py +9 -0
  65. ark_sdk_python/models/services/cmgr/ark_cmgr_upgrade_connector.py +7 -0
  66. ark_sdk_python/models/services/cmgr/ark_cmgr_workspace_type_serializer.py +18 -0
  67. ark_sdk_python/models/services/identity/directories/ark_identity_directory.py +4 -0
  68. ark_sdk_python/models/services/identity/federations/__init__.py +15 -0
  69. ark_sdk_python/models/services/identity/federations/ark_identity_federation.py +75 -0
  70. ark_sdk_python/models/services/identity/federations/ark_identity_federations_filter.py +10 -0
  71. ark_sdk_python/models/services/identity/federations/ark_identity_get_federation.py +7 -0
  72. ark_sdk_python/models/services/identity/users/__init__.py +8 -0
  73. ark_sdk_python/models/services/identity/users/ark_identity_get_user_state.py +17 -0
  74. ark_sdk_python/models/services/identity/users/ark_identity_list_user_roles.py +16 -0
  75. ark_sdk_python/models/services/identity/users/ark_identity_user_role.py +12 -0
  76. ark_sdk_python/models/services/identity/users/ark_identity_user_state.py +20 -0
  77. ark_sdk_python/models/services/pcloud/usermgmt/__init__.py +65 -0
  78. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_activate_vault_user.py +7 -0
  79. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_add_vault_group.py +5 -0
  80. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_add_vault_member_to_group.py +15 -0
  81. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_add_vault_user.py +18 -0
  82. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_delete_vault_group.py +7 -0
  83. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_delete_vault_user.py +7 -0
  84. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_disable_vault_user.py +7 -0
  85. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_enable_vault_user.py +7 -0
  86. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_get_vault_group.py +7 -0
  87. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_get_vault_user.py +7 -0
  88. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_remove_vault_member_from_group.py +10 -0
  89. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_update_vault_group.py +10 -0
  90. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_update_vault_user.py +18 -0
  91. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_group.py +22 -0
  92. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_groups_filter.py +12 -0
  93. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_groups_stats.py +10 -0
  94. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_user.py +96 -0
  95. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_users_filter.py +22 -0
  96. ark_sdk_python/models/services/pcloud/usermgmt/ark_pcloud_vault_users_stats.py +12 -0
  97. ark_sdk_python/models/services/sia/access/__init__.py +54 -0
  98. ark_sdk_python/models/services/sia/access/ark_sia_connector.py +119 -0
  99. ark_sdk_python/models/services/sia/access/ark_sia_connectors_filter.py +39 -0
  100. ark_sdk_python/models/services/sia/access/ark_sia_connectors_stats.py +33 -0
  101. ark_sdk_python/models/services/sia/access/ark_sia_delete_connector.py +25 -0
  102. ark_sdk_python/models/services/sia/access/ark_sia_delete_https_relay.py +31 -0
  103. ark_sdk_python/models/services/sia/access/ark_sia_get_connector.py +7 -0
  104. ark_sdk_python/models/services/sia/access/ark_sia_get_connector_setup_script.py +4 -0
  105. ark_sdk_python/models/services/sia/access/ark_sia_get_https_relay.py +7 -0
  106. ark_sdk_python/models/services/sia/access/ark_sia_get_https_relay_setup_script.py +19 -0
  107. ark_sdk_python/models/services/sia/access/ark_sia_https_relay.py +34 -0
  108. ark_sdk_python/models/services/sia/access/ark_sia_https_relay_setup_script.py +8 -0
  109. ark_sdk_python/models/services/sia/access/ark_sia_https_relay_status_codes.py +14 -0
  110. ark_sdk_python/models/services/sia/access/ark_sia_https_relays_filter.py +13 -0
  111. ark_sdk_python/models/services/sia/access/ark_sia_install_connector.py +13 -2
  112. ark_sdk_python/models/services/sia/access/ark_sia_install_relay.py +32 -0
  113. ark_sdk_python/models/services/sia/access/ark_sia_k8s_details.py +36 -0
  114. ark_sdk_python/models/services/sia/access/ark_sia_rotate_connector.py +7 -0
  115. ark_sdk_python/models/services/sia/access/ark_sia_rotate_https_relay.py +7 -0
  116. ark_sdk_python/models/services/sia/access/ark_sia_uninstall_connector.py +15 -3
  117. ark_sdk_python/models/services/sia/access/ark_sia_uninstall_relay.py +23 -0
  118. ark_sdk_python/models/services/sia/access/ark_sia_update_connector_maintenance_mode.py +23 -0
  119. ark_sdk_python/models/services/sia/access/ark_sia_upgrade_connector.py +7 -0
  120. ark_sdk_python/models/services/sia/access/ark_sia_upgrade_connector_async_task.py +32 -0
  121. ark_sdk_python/models/services/sia/access/ark_sia_upgrade_https_relay.py +7 -0
  122. ark_sdk_python/models/services/sia/k8s/__init__.py +11 -1
  123. ark_sdk_python/models/services/sia/k8s/ark_sia_k8s_cluster.py +22 -0
  124. ark_sdk_python/models/services/sia/k8s/ark_sia_k8s_clusters.py +10 -0
  125. ark_sdk_python/models/services/sia/k8s/ark_sia_k8s_generate_cluster_config.py +13 -0
  126. ark_sdk_python/models/services/sia/k8s/ark_sia_k8s_list_clusters.py +9 -0
  127. ark_sdk_python/models/services/sia/secrets/db/__init__.py +22 -6
  128. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_add_secret.py +54 -3
  129. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_delete_secret.py +4 -0
  130. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_get_secret.py +4 -0
  131. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_list_strong_accounts_response.py +16 -0
  132. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secret_metadata.py +27 -2
  133. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secrets_filter.py +7 -0
  134. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_strong_accounts_filter.py +29 -0
  135. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_update_secret.py +51 -3
  136. ark_sdk_python/models/services/sia/settings/__init__.py +2 -0
  137. ark_sdk_python/models/services/sia/settings/ark_sia_settings_feature_name.py +1 -0
  138. ark_sdk_python/models/services/sia/settings/ark_sia_settings_https_relay.py +11 -0
  139. ark_sdk_python/models/services/sia/settings/ark_sia_settings_list_settings.py +4 -1
  140. ark_sdk_python/models/services/sia/settings/ark_sia_settings_set_settings.py +2 -0
  141. ark_sdk_python/models/services/sia/settings/ark_sia_settings_setting_types.py +2 -0
  142. ark_sdk_python/models/services/sia/settings/ark_sia_settings_settings.py +2 -0
  143. ark_sdk_python/models/services/sia/shortened_connection_string/__init__.py +11 -0
  144. ark_sdk_python/models/services/sia/shortened_connection_string/ark_sia_generate_shortened_connection_string.py +7 -0
  145. ark_sdk_python/models/services/sia/shortened_connection_string/ark_sia_generate_shortened_connection_string_response.py +8 -0
  146. ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_short_lived_rdp_file.py +16 -2
  147. ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_ssh_key.py +1 -0
  148. ark_sdk_python/models/services/sia/workspaces/db/__init__.py +27 -8
  149. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_add_database.py +152 -0
  150. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database.py +101 -2
  151. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database_info.py +47 -1
  152. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_databases_filter.py +13 -0
  153. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_databases_stats.py +12 -0
  154. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_delete_database.py +13 -0
  155. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_get_database.py +13 -0
  156. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_provider.py +25 -1
  157. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_target_constraints.py +39 -0
  158. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_update_database.py +166 -0
  159. ark_sdk_python/models/services/sm/ark_sm_session.py +1 -0
  160. ark_sdk_python/models/services/sm/ark_sm_sessions_filter.py +7 -0
  161. ark_sdk_python/models/services/uap/common/__init__.py +2 -0
  162. ark_sdk_python/models/services/uap/common/ark_uap_access_approval.py +24 -0
  163. ark_sdk_python/models/services/uap/common/ark_uap_change_info.py +1 -1
  164. ark_sdk_python/models/services/uap/common/ark_uap_conditions.py +15 -1
  165. ark_sdk_python/models/services/uap/common/ark_uap_metadata.py +1 -1
  166. ark_sdk_python/models/services/uap/common/ark_uap_principal.py +2 -2
  167. ark_sdk_python/models/services/uap/sia/common/ark_uap_sia_common_conditions.py +14 -0
  168. ark_sdk_python/models/services/uap/sia/vm/__init__.py +2 -0
  169. ark_sdk_python/models/services/uap/sia/vm/ark_uap_sia_vm_access_policy.py +11 -0
  170. ark_sdk_python/models/services/uap/sia/vm/ark_uap_sia_vm_conditions.py +28 -0
  171. ark_sdk_python/services/access/__init__.py +3 -0
  172. ark_sdk_python/services/access/ark_access_api.py +17 -0
  173. ark_sdk_python/services/access/assets/__init__.py +3 -0
  174. ark_sdk_python/services/access/assets/ark_access_assets_service.py +91 -0
  175. ark_sdk_python/services/ars/__init__.py +0 -0
  176. ark_sdk_python/services/ars/requests/__init__.py +7 -0
  177. ark_sdk_python/services/ars/requests/ark_ars_requests_async_request.py +145 -0
  178. ark_sdk_python/services/ars/requests/ark_ars_requests_service.py +377 -0
  179. ark_sdk_python/services/cmgr/__init__.py +2 -1
  180. ark_sdk_python/services/cmgr/ark_cmgr_component_operation_async_request.py +139 -0
  181. ark_sdk_python/services/cmgr/ark_cmgr_service.py +754 -3
  182. ark_sdk_python/services/identity/ark_identity_api.py +12 -0
  183. ark_sdk_python/services/identity/common/ark_identity_base_service.py +1 -1
  184. ark_sdk_python/services/identity/directories/ark_identity_directories_service.py +4 -1
  185. ark_sdk_python/services/identity/federations/__init__.py +3 -0
  186. ark_sdk_python/services/identity/federations/ark_identity_federations_service.py +218 -0
  187. ark_sdk_python/services/identity/users/ark_identity_users_service.py +76 -1
  188. ark_sdk_python/services/pcloud/ark_pcloud_api.py +12 -0
  189. ark_sdk_python/services/pcloud/common/ark_pcloud_base_service.py +1 -1
  190. ark_sdk_python/services/pcloud/usermgmt/__init__.py +3 -0
  191. ark_sdk_python/services/pcloud/usermgmt/ark_pcloud_usermgmt_service.py +513 -0
  192. ark_sdk_python/services/sia/access/__init__.py +2 -1
  193. ark_sdk_python/services/sia/access/ark_sia_access_service.py +693 -17
  194. ark_sdk_python/services/sia/access/ark_sia_upgrade_connector_async_request.py +136 -0
  195. ark_sdk_python/services/sia/ark_sia_api.py +12 -0
  196. ark_sdk_python/services/sia/k8s/ark_sia_k8s_service.py +77 -1
  197. ark_sdk_python/services/sia/secrets/db/ark_sia_db_secrets_service.py +354 -1
  198. ark_sdk_python/services/sia/settings/ark_sia_settings_service.py +60 -2
  199. ark_sdk_python/services/sia/shortened_connection_string/__init__.py +7 -0
  200. ark_sdk_python/services/sia/shortened_connection_string/ark_sia_shortened_connection_string_service.py +75 -0
  201. ark_sdk_python/services/sia/sso/ark_sia_sso_service.py +12 -2
  202. ark_sdk_python/services/sia/sso/consts.py +9 -0
  203. ark_sdk_python/services/sia/workspaces/db/ark_sia_db_workspace_service.py +346 -7
  204. ark_sdk_python/services/sm/ark_sm_service.py +4 -1
  205. ark_sdk_python/services/uap/common/ark_uap_base_service.py +13 -6
  206. ark_sdk_python/services/uap/sca/ark_uap_sca_service.py +4 -4
  207. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/METADATA +6 -1
  208. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/RECORD +212 -84
  209. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/WHEEL +1 -1
  210. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/licenses/NOTICES.md +371 -0
  211. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/entry_points.txt +0 -0
  212. {ark_sdk_python-2.1.4.dist-info → ark_sdk_python-2.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -89,6 +89,7 @@ class ArkExecAction(ArkAction):
89
89
  ArkPydanticArgparse.argparse_to_schema(model_type.model_json_schema(), args)
90
90
  )
91
91
  model.poll_progress_callback = ArkPollers.default_poller()
92
+ model.poll = True
92
93
  output = getattr(service, action.replace('-', '_'))(model)
93
94
  async_req = None
94
95
  if issubclass(type(output), ArkAsyncRequest):
ark_sdk_python/ark_api.py CHANGED
@@ -104,6 +104,18 @@ class ArkAPI:
104
104
 
105
105
  return cast(ArkIdentityDirectoriesService, self.service(ArkIdentityDirectoriesService))
106
106
 
107
+ @property
108
+ def identity_federations(self) -> "ArkIdentityFederationsService":
109
+ """
110
+ Returns the Identity Federations Service if the appropriate authenticators were provided.
111
+
112
+ Returns:
113
+ ArkIdentityFederationsService: _description_
114
+ """
115
+ from ark_sdk_python.services.identity.federations import ArkIdentityFederationsService
116
+
117
+ return cast(ArkIdentityFederationsService, self.service(ArkIdentityFederationsService))
118
+
107
119
  @property
108
120
  def identity_policies(self) -> "ArkIdentityPoliciesService":
109
121
  """
@@ -152,6 +164,18 @@ class ArkAPI:
152
164
 
153
165
  return cast(ArkSMService, self.service(ArkSMService))
154
166
 
167
+ @property
168
+ def access_assets(self) -> "ArkAccessAssetsService":
169
+ """
170
+ Returns the Access Assets service if the appropriate authenticators were provided.
171
+
172
+ Returns:
173
+ ArkAccessAssetsService: Access assets service.
174
+ """
175
+ from ark_sdk_python.services.access.assets import ArkAccessAssetsService
176
+
177
+ return cast(ArkAccessAssetsService, self.service(ArkAccessAssetsService))
178
+
155
179
  @property
156
180
  def sia_workspaces_target_sets(self) -> "ArkSIATargetSetsWorkspaceService":
157
181
  """
@@ -308,6 +332,18 @@ class ArkAPI:
308
332
 
309
333
  return cast(ArkSIASettingsService, self.service(ArkSIASettingsService))
310
334
 
335
+ @property
336
+ def sia_shortened_connection_string(self) -> "ArkSIAShortenedConnectionStringService":
337
+ """
338
+ Returns the SIA Shortened-Connection-String service if the appropriate authenticators were provided.
339
+
340
+ Returns:
341
+ ArkSIAShortenedConnectionStringService: _description_
342
+ """
343
+ from ark_sdk_python.services.sia.shortened_connection_string import ArkSIAShortenedConnectionStringService
344
+
345
+ return cast(ArkSIAShortenedConnectionStringService, self.service(ArkSIAShortenedConnectionStringService))
346
+
311
347
  @property
312
348
  def pcloud_accounts(self) -> "ArkPCloudAccountsService":
313
349
  """
@@ -344,6 +380,18 @@ class ArkAPI:
344
380
 
345
381
  return cast(ArkPCloudPlatformsService, self.service(ArkPCloudPlatformsService))
346
382
 
383
+ @property
384
+ def pcloud_usermgmt(self) -> "ArkPCloudUserMgmtService":
385
+ """
386
+ Returns the PCloud Usermgmt service if the appropriate authenticators were provided.
387
+
388
+ Returns:
389
+ ArkPCloudUserMgmtService: _description_
390
+ """
391
+ from ark_sdk_python.services.pcloud.usermgmt import ArkPCloudUserMgmtService
392
+
393
+ return cast(ArkPCloudUserMgmtService, self.service(ArkPCloudUserMgmtService))
394
+
347
395
  @property
348
396
  def pcloud_applications(self) -> "ArkPCloudApplicationsService":
349
397
  """
@@ -368,6 +416,18 @@ class ArkAPI:
368
416
 
369
417
  return cast(ArkCmgrService, self.service(ArkCmgrService))
370
418
 
419
+ @property
420
+ def ars_requests(self) -> "ArkARSRequestsService":
421
+ """
422
+ Returns the ARS Requests service if the appropriate authenticators were provided.
423
+
424
+ Returns:
425
+ ArkARSRequestsService: _description_
426
+ """
427
+ from ark_sdk_python.services.ars.requests import ArkARSRequestsService
428
+
429
+ return cast(ArkARSRequestsService, self.service(ArkARSRequestsService))
430
+
371
431
  @property
372
432
  def uap(self) -> "ArkUAPService":
373
433
  """
@@ -186,6 +186,7 @@ class ArkAuth(ABC):
186
186
  """
187
187
  Loads and returns the authentication token from the cache, if it exists.
188
188
  If specified, the method also attempts to refresh the token as needed.
189
+ When the cache holds no token, the already loaded in-memory token, if any, is kept.
189
190
 
190
191
  Args:
191
192
  profile (Optional[ArkProfile], optional): _description_. Defaults to None.
@@ -209,7 +210,11 @@ class ArkAuth(ABC):
209
210
  f'Loading authentication for profile [{profile.profile_name}] and auth profile [{self.authenticator_name()}] of type [{auth_profile.auth_method.value}]'
210
211
  )
211
212
  if self._cache_keyring:
212
- self.__token = self._cache_keyring.load_token(profile, self._resolve_cache_postfix(auth_profile))
213
+ # Adopt the cached token only when one was actually loaded, so that a cache miss or an unreadable
214
+ # keyring falls back to the in-memory token instead of discarding it
215
+ cached_token = self._cache_keyring.load_token(profile, self._resolve_cache_postfix(auth_profile))
216
+ if cached_token:
217
+ self.__token = cached_token
213
218
  if refresh_auth:
214
219
  grace_seconds = grace_seconds if grace_seconds is not None else DEFAULT_EXPIRATION_GRACE_DELTA_SECONDS
215
220
  if self.__token and self.__token.expires_in.replace(tzinfo=None) - timedelta(seconds=grace_seconds) > datetime.now():
@@ -81,12 +81,12 @@ class ArkIdentityFQDNResolver:
81
81
  Returns:
82
82
  str: The tenant's FQDN
83
83
  """
84
- identity_env_url = identity_env_url or (
85
- IDENTITY_ENV_URLS[AwsEnv(os.getenv('DEPLOY_ENV', None))] if os.getenv('DEPLOY_ENV', None) else IDENTITY_ENV_URLS[AwsEnv.PROD]
86
- )
84
+ env = AwsEnv(os.getenv('DEPLOY_ENV', None)) if os.getenv('DEPLOY_ENV', None) else AwsEnv.PROD
85
+ identity_env_url = identity_env_url or IDENTITY_ENV_URLS[env]
86
+ pod_prefix = 'cloud' if env.value.startswith('gov-') else 'pod0'
87
87
  session = Session()
88
88
  response = session.post(
89
- f'https://pod0.{identity_env_url}/Security/StartAuthentication',
89
+ f'https://{pod_prefix}.{identity_env_url}/Security/StartAuthentication',
90
90
  json={'User': tenant_suffix, 'Version': '1.0', 'PlatformTokenResponse': True, 'MfaRequestor': 'DeviceAgent'},
91
91
  headers={'Content-Type': 'application/json', 'X-IDAP-NATIVE-CLIENT': 'true'},
92
92
  )
@@ -1 +1 @@
1
- __version__ = '2.1.4'
1
+ __version__ = '2.2.0'
@@ -62,7 +62,9 @@ class ArkISPServiceClient(ArkClient):
62
62
  platform_token_domain = ArkJWTUtils.get_unverified_claims(token).get('platform_domain', None)
63
63
  if platform_token_domain:
64
64
  platform_domain = platform_token_domain
65
- tenant_env = list(filter(lambda e: ROOT_DOMAIN[e] == platform_domain, ROOT_DOMAIN.keys()))
65
+ tenant_envs = list(filter(lambda e: ROOT_DOMAIN[e] == platform_domain, ROOT_DOMAIN.keys()))
66
+ if tenant_envs:
67
+ tenant_env = tenant_envs[0]
66
68
  if not tenant_chosen_subdomain and tenant_subdomain:
67
69
  tenant_chosen_subdomain = tenant_subdomain
68
70
  if not tenant_chosen_subdomain and base_tenant_url: