ark-sdk-python 1.2.1__py3-none-any.whl → 2.0.1__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 (430) hide show
  1. ark_sdk_python/actions/ark_configure_action.py +18 -14
  2. ark_sdk_python/actions/ark_exec_action.py +46 -20
  3. ark_sdk_python/actions/ark_login_action.py +3 -2
  4. ark_sdk_python/actions/ark_profiles_action.py +6 -5
  5. ark_sdk_python/actions/ark_service_exec_action.py +1 -1
  6. ark_sdk_python/args/ark_pydantic_argparse.py +145 -33
  7. ark_sdk_python/ark.py +1 -1
  8. ark_sdk_python/ark_api.py +112 -40
  9. ark_sdk_python/auth/ark_auth.py +3 -3
  10. ark_sdk_python/auth/identity/ark_identity.py +112 -44
  11. ark_sdk_python/auth/identity/ark_identity_fqdn_resolver.py +2 -2
  12. ark_sdk_python/cli_services/ark_cli_api.py +8 -8
  13. ark_sdk_python/cli_services/{dpa/common/ark_dpa_base_policies_editor_service.py → sia/common/ark_sia_base_policies_editor_service.py} +81 -73
  14. ark_sdk_python/cli_services/sia/db/__init__.py +3 -0
  15. ark_sdk_python/cli_services/{dpa/db/ark_dpa_db_policies_editor_service.py → sia/db/ark_sia_db_policies_editor_service.py} +112 -81
  16. ark_sdk_python/cli_services/sia/vm/__init__.py +3 -0
  17. ark_sdk_python/cli_services/{dpa/vm/ark_dpa_vm_policies_editor_service.py → sia/vm/ark_sia_vm_policies_editor_service.py} +64 -55
  18. ark_sdk_python/common/ark_async_client.py +11 -1
  19. ark_sdk_python/common/ark_client.py +27 -4
  20. ark_sdk_python/common/ark_jwt_utils.py +12 -0
  21. ark_sdk_python/common/ark_keyring.py +5 -6
  22. ark_sdk_python/common/ark_retry.py +66 -0
  23. ark_sdk_python/common/connections/__init__.py +3 -0
  24. ark_sdk_python/common/connections/ark_connection.py +66 -0
  25. ark_sdk_python/common/connections/ssh/__init__.py +3 -0
  26. ark_sdk_python/common/connections/ssh/ark_ssh_connection.py +144 -0
  27. ark_sdk_python/common/connections/winrm/__init__.py +3 -0
  28. ark_sdk_python/common/connections/winrm/ark_winrm_connection.py +168 -0
  29. ark_sdk_python/common/isp/ark_isp_service_client.py +7 -9
  30. ark_sdk_python/examples/create_sia_db_environment.py +101 -0
  31. ark_sdk_python/examples/create_sia_vm_environment.py +109 -0
  32. ark_sdk_python/examples/list_pcloud_accounts.py +1 -1
  33. ark_sdk_python/models/__init__.py +6 -0
  34. ark_sdk_python/models/actions/ark_service_action_definition.py +7 -5
  35. ark_sdk_python/models/actions/services/__init__.py +6 -3
  36. ark_sdk_python/models/actions/services/ark_cmgr_exec_action_consts.py +57 -0
  37. ark_sdk_python/models/actions/services/ark_identity_exec_action_consts.py +13 -0
  38. ark_sdk_python/models/actions/services/ark_pcloud_exec_action_consts.py +31 -0
  39. ark_sdk_python/models/actions/services/ark_sia_exec_action_consts.py +247 -0
  40. ark_sdk_python/models/ark_model.py +65 -18
  41. ark_sdk_python/models/ark_profile.py +14 -8
  42. ark_sdk_python/models/auth/ark_auth_method.py +8 -3
  43. ark_sdk_python/models/auth/ark_auth_profile.py +9 -9
  44. ark_sdk_python/models/auth/ark_secret.py +3 -6
  45. ark_sdk_python/models/auth/ark_token.py +13 -11
  46. ark_sdk_python/models/cli_services/sia/policies_editor/common/__init__.py +25 -0
  47. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_base_generate_policy.py → sia/policies_editor/common/ark_sia_base_generate_policy.py} +2 -2
  48. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_commit_policies.py → sia/policies_editor/common/ark_sia_commit_policies.py} +2 -2
  49. ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_edit_policies.py +11 -0
  50. ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_get_policies_status.py +11 -0
  51. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_load_policies.py → sia/policies_editor/common/ark_sia_load_policies.py} +1 -1
  52. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_loaded_policies.py → sia/policies_editor/common/ark_sia_loaded_policies.py} +1 -1
  53. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_policies_diff.py → sia/policies_editor/common/ark_sia_policies_diff.py} +2 -2
  54. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_policies_status.py → sia/policies_editor/common/ark_sia_policies_status.py} +1 -1
  55. ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_remove_policies.py +11 -0
  56. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_reset_policies.py → sia/policies_editor/common/ark_sia_reset_policies.py} +4 -2
  57. ark_sdk_python/models/cli_services/{dpa/policies_editor/common/ark_dpa_view_policies.py → sia/policies_editor/common/ark_sia_view_policies.py} +4 -2
  58. ark_sdk_python/models/cli_services/sia/policies_editor/db/__init__.py +3 -0
  59. ark_sdk_python/models/cli_services/sia/policies_editor/db/ark_sia_db_generate_policy.py +12 -0
  60. ark_sdk_python/models/cli_services/sia/policies_editor/vm/__init__.py +3 -0
  61. ark_sdk_python/models/cli_services/sia/policies_editor/vm/ark_sia_vm_generate_policy.py +13 -0
  62. ark_sdk_python/models/common/ark_access_method.py +1 -0
  63. ark_sdk_python/models/common/ark_application_code.py +4 -1
  64. ark_sdk_python/models/common/ark_async_task.py +1 -1
  65. ark_sdk_python/models/common/ark_connector_type.py +1 -1
  66. ark_sdk_python/models/common/ark_region.py +3 -0
  67. ark_sdk_python/models/common/ark_workspace_type.py +1 -0
  68. ark_sdk_python/models/common/connections/ark_connection_command.py +3 -0
  69. ark_sdk_python/models/common/connections/ark_connection_credentials.py +6 -6
  70. ark_sdk_python/models/common/connections/ark_connection_details.py +5 -4
  71. ark_sdk_python/models/common/connections/ark_connection_result.py +3 -3
  72. ark_sdk_python/models/common/connections/connection_data/ark_winrm_connection_data.py +1 -1
  73. ark_sdk_python/models/common/identity/ark_identity_auth_schemas.py +37 -37
  74. ark_sdk_python/models/common/identity/ark_identity_common_schemas.py +4 -4
  75. ark_sdk_python/models/common/identity/ark_identity_directory_schemas.py +22 -21
  76. ark_sdk_python/models/common/isp/ark_platform_discovery_schemas.py +2 -4
  77. ark_sdk_python/models/services/cmgr/__init__.py +70 -0
  78. ark_sdk_python/models/services/cmgr/ark_cmgr_add_network.py +7 -0
  79. ark_sdk_python/models/services/cmgr/ark_cmgr_add_pool.py +12 -0
  80. ark_sdk_python/models/services/cmgr/ark_cmgr_add_pool_identifiers.py +20 -0
  81. ark_sdk_python/models/services/cmgr/ark_cmgr_bulk_response.py +15 -0
  82. ark_sdk_python/models/services/cmgr/ark_cmgr_delete_network.py +7 -0
  83. ark_sdk_python/models/services/cmgr/ark_cmgr_delete_pool.py +7 -0
  84. ark_sdk_python/models/services/cmgr/ark_cmgr_delete_pool_identifiers.py +18 -0
  85. ark_sdk_python/models/services/cmgr/ark_cmgr_get_network.py +7 -0
  86. ark_sdk_python/models/services/cmgr/ark_cmgr_get_pool.py +7 -0
  87. ark_sdk_python/models/services/cmgr/ark_cmgr_get_pool_component.py +8 -0
  88. ark_sdk_python/models/services/cmgr/ark_cmgr_list_pool_identifiers.py +7 -0
  89. ark_sdk_python/models/services/cmgr/ark_cmgr_network.py +18 -0
  90. ark_sdk_python/models/services/cmgr/ark_cmgr_networks_filter.py +5 -0
  91. ark_sdk_python/models/services/cmgr/ark_cmgr_networks_stats.py +10 -0
  92. ark_sdk_python/models/services/cmgr/ark_cmgr_pool.py +23 -0
  93. ark_sdk_python/models/services/cmgr/ark_cmgr_pool_component.py +21 -0
  94. ark_sdk_python/models/services/cmgr/ark_cmgr_pool_components_filter.py +5 -0
  95. ark_sdk_python/models/services/cmgr/ark_cmgr_pool_identifiers.py +33 -0
  96. ark_sdk_python/models/services/cmgr/ark_cmgr_pool_identifiers_filter.py +6 -0
  97. ark_sdk_python/models/services/cmgr/ark_cmgr_pools_common_filter.py +13 -0
  98. ark_sdk_python/models/services/cmgr/ark_cmgr_pools_filter.py +5 -0
  99. ark_sdk_python/models/services/cmgr/ark_cmgr_pools_stats.py +13 -0
  100. ark_sdk_python/models/services/cmgr/ark_cmgr_update_network.py +10 -0
  101. ark_sdk_python/models/services/cmgr/ark_cmgr_update_pool.py +15 -0
  102. ark_sdk_python/models/services/identity/connectors/__init__.py +9 -0
  103. ark_sdk_python/models/services/identity/connectors/ark_identity_connector_info.py +28 -0
  104. ark_sdk_python/models/services/identity/connectors/ark_identity_connectors_filter.py +14 -0
  105. ark_sdk_python/models/services/identity/connectors/ark_identity_get_connector.py +7 -0
  106. ark_sdk_python/models/services/identity/directories/ark_identity_entity.py +5 -5
  107. ark_sdk_python/models/services/identity/directories/ark_identity_list_directories.py +1 -1
  108. ark_sdk_python/models/services/identity/directories/ark_identity_list_directories_entities.py +3 -5
  109. ark_sdk_python/models/services/identity/policies/ark_identity_add_authentication_profile.py +2 -2
  110. ark_sdk_python/models/services/identity/policies/ark_identity_add_policy.py +1 -1
  111. ark_sdk_python/models/services/identity/policies/ark_identity_authentication_profile.py +3 -3
  112. ark_sdk_python/models/services/identity/policies/ark_identity_get_authentication_profile.py +2 -2
  113. ark_sdk_python/models/services/identity/policies/ark_identity_policy.py +2 -2
  114. ark_sdk_python/models/services/identity/policies/ark_identity_remove_authentication_profile.py +2 -2
  115. ark_sdk_python/models/services/identity/roles/ark_identity_add_admin_right_to_role.py +6 -5
  116. ark_sdk_python/models/services/identity/roles/ark_identity_admin_right.py +1 -0
  117. ark_sdk_python/models/services/identity/roles/ark_identity_create_role.py +1 -1
  118. ark_sdk_python/models/services/identity/roles/ark_identity_delete_role.py +2 -2
  119. ark_sdk_python/models/services/identity/roles/ark_identity_list_role_members.py +2 -2
  120. ark_sdk_python/models/services/identity/roles/ark_identity_update_role.py +4 -4
  121. ark_sdk_python/models/services/identity/users/__init__.py +4 -0
  122. ark_sdk_python/models/services/identity/users/ark_identity_create_user.py +5 -3
  123. ark_sdk_python/models/services/identity/users/ark_identity_delete_user.py +9 -3
  124. ark_sdk_python/models/services/identity/users/ark_identity_delete_users.py +9 -0
  125. ark_sdk_python/models/services/identity/users/ark_identity_update_user.py +6 -6
  126. ark_sdk_python/models/services/identity/users/ark_identity_user.py +5 -5
  127. ark_sdk_python/models/services/identity/users/ark_identity_user_by_id.py +7 -0
  128. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account.py +27 -18
  129. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account_credentials.py +3 -6
  130. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_accounts_filter.py +6 -6
  131. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_add_account.py +3 -5
  132. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_get_account_credentials.py +5 -5
  133. ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_update_account.py +11 -9
  134. ark_sdk_python/models/services/pcloud/applications/__init__.py +37 -0
  135. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_add_application.py +22 -0
  136. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_add_application_auth_method.py +37 -0
  137. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application.py +17 -0
  138. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application_auth_method.py +49 -0
  139. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application_auth_methods_filter.py +11 -0
  140. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_applications_filter.py +12 -0
  141. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_applications_stats.py +15 -0
  142. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_delete_application.py +7 -0
  143. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_delete_application_auth_method.py +8 -0
  144. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_get_application.py +7 -0
  145. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_get_application_auth_method.py +8 -0
  146. ark_sdk_python/models/services/pcloud/applications/ark_pcloud_list_application_auth_methods.py +7 -0
  147. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicate_target_platform.py +1 -1
  148. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicated_target_platform_info.py +1 -1
  149. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platform.py +4 -4
  150. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platforms_filter.py +3 -3
  151. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platform.py +37 -27
  152. ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platforms_filter.py +10 -10
  153. ark_sdk_python/models/services/pcloud/safes/ark_pcloud_add_safe_member.py +3 -3
  154. ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe.py +9 -9
  155. ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe_members_filter.py +5 -5
  156. ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safes_filters.py +4 -4
  157. ark_sdk_python/models/services/pcloud/safes/ark_pcloud_update_safe_member.py +5 -3
  158. ark_sdk_python/models/services/sia/access/__init__.py +13 -0
  159. ark_sdk_python/models/services/sia/access/ark_sia_access_workspace_type_serializer.py +18 -0
  160. ark_sdk_python/models/services/sia/access/ark_sia_connector_setup_script.py +14 -0
  161. ark_sdk_python/models/services/sia/access/ark_sia_get_connector_setup_script.py +36 -0
  162. ark_sdk_python/models/services/sia/access/ark_sia_install_connector.py +41 -0
  163. ark_sdk_python/models/services/sia/access/ark_sia_uninstall_connector.py +22 -0
  164. ark_sdk_python/models/services/sia/certificates/__init__.py +25 -0
  165. ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_certificate.py → sia/certificates/ark_sia_certificates_certificate.py} +12 -12
  166. ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_delete_certificate.py → sia/certificates/ark_sia_certificates_delete_certificate.py} +1 -1
  167. ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_filter.py → sia/certificates/ark_sia_certificates_filter.py} +1 -1
  168. ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_get_certificate.py → sia/certificates/ark_sia_certificates_get_certificate.py} +1 -1
  169. ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_update_certificate.py → sia/certificates/ark_sia_certificates_update_certificate.py} +3 -3
  170. ark_sdk_python/models/services/sia/db/__init__.py +20 -0
  171. ark_sdk_python/models/services/{dpa/db/ark_dpa_db_assets_type.py → sia/db/ark_sia_db_assets_type.py} +1 -1
  172. ark_sdk_python/models/services/{dpa/db/ark_dpa_db_base_execution.py → sia/db/ark_sia_db_base_execution.py} +2 -2
  173. ark_sdk_python/models/services/{dpa/db/ark_dpa_db_base_generate_assets.py → sia/db/ark_sia_db_base_generate_assets.py} +4 -4
  174. ark_sdk_python/models/services/{dpa/db/ark_dpa_db_generated_assets.py → sia/db/ark_sia_db_generated_assets.py} +1 -1
  175. ark_sdk_python/models/services/sia/db/ark_sia_db_mysql_execution.py +7 -0
  176. ark_sdk_python/models/services/{dpa/db/ark_dpa_db_oracle_generate_assets.py → sia/db/ark_sia_db_oracle_generate_assets.py} +2 -2
  177. ark_sdk_python/models/services/sia/db/ark_sia_db_proxy_fullchain_generate_assets.py +5 -0
  178. ark_sdk_python/models/services/sia/db/ark_sia_db_psql_execution.py +7 -0
  179. ark_sdk_python/models/services/sia/k8s/__init__.py +3 -0
  180. ark_sdk_python/models/services/{dpa/k8s/ark_dpa_k8s_generate_kubeconfig.py → sia/k8s/ark_sia_k8s_generate_kubeconfig.py} +1 -1
  181. ark_sdk_python/models/services/sia/policies/common/__init__.py +34 -0
  182. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_add_policy.py +18 -0
  183. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_authorization_rule.py +9 -0
  184. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_authorization_rule_extended.py +12 -0
  185. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_connection_information.py +33 -0
  186. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policies_filter.py +11 -0
  187. ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_base_policies_stats.py → sia/policies/common/ark_sia_base_policies_stats.py} +3 -3
  188. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy.py +15 -0
  189. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy_list_item.py +18 -0
  190. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy_list_item_extanded.py +16 -0
  191. ark_sdk_python/models/services/sia/policies/common/ark_sia_base_update_policy.py +24 -0
  192. ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_get_policy.py → sia/policies/common/ark_sia_delete_policy.py} +6 -5
  193. ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_delete_policy.py → sia/policies/common/ark_sia_get_policy.py} +6 -5
  194. ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_rule_status.py → sia/policies/common/ark_sia_rule_status.py} +1 -1
  195. ark_sdk_python/models/services/sia/policies/common/ark_sia_update_policy_status.py +20 -0
  196. ark_sdk_python/models/services/sia/policies/common/ark_sia_user_data.py +17 -0
  197. ark_sdk_python/models/services/sia/policies/db/__init__.py +77 -0
  198. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_add_policy.py +17 -0
  199. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_authorization_rule.py +13 -0
  200. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_connection_data.py +83 -0
  201. ark_sdk_python/models/services/{dpa/policies/db/ark_dpa_db_enums.py → sia/policies/db/ark_sia_db_enums.py} +4 -5
  202. ark_sdk_python/models/services/{dpa/policies/db/ark_dpa_db_policies_filter.py → sia/policies/db/ark_sia_db_policies_filter.py} +8 -4
  203. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_policies_stats.py +31 -0
  204. ark_sdk_python/models/services/{dpa/policies/db/ark_dpa_db_policies_workspace_type_serializer.py → sia/policies/db/ark_sia_db_policies_workspace_type_serializer.py} +1 -1
  205. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_policy.py +13 -0
  206. ark_sdk_python/models/services/{dpa/policies/db/ark_dpa_db_policy_list_item.py → sia/policies/db/ark_sia_db_policy_list_item.py} +9 -5
  207. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_providers.py +64 -0
  208. ark_sdk_python/models/services/sia/policies/db/ark_sia_db_update_policy.py +17 -0
  209. ark_sdk_python/models/services/sia/policies/vm/__init__.py +63 -0
  210. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_add_policy.py +40 -0
  211. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_authorization_rule.py +44 -0
  212. ark_sdk_python/models/services/{dpa/policies/vm/ark_dpa_vm_connection_data.py → sia/policies/vm/ark_sia_vm_connection_data.py} +7 -7
  213. ark_sdk_python/models/services/{dpa/policies/vm/ark_dpa_vm_policies_filter.py → sia/policies/vm/ark_sia_vm_policies_filter.py} +9 -5
  214. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policies_filter_by_query.py +32 -0
  215. ark_sdk_python/models/services/{dpa/policies/vm/ark_dpa_vm_policies_protocol_type_serializer.py → sia/policies/vm/ark_sia_vm_policies_protocol_type_serializer.py} +2 -2
  216. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policies_stats.py +28 -0
  217. ark_sdk_python/models/services/{dpa/policies/vm/ark_dpa_vm_policies_workspace_type_serializer.py → sia/policies/vm/ark_sia_vm_policies_workspace_type_serializer.py} +1 -1
  218. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policy.py +42 -0
  219. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policy_list_item.py +29 -0
  220. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_providers.py +74 -0
  221. ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_update_policy.py +37 -0
  222. ark_sdk_python/models/services/sia/secrets/db/__init__.py +29 -0
  223. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_add_secret.py +37 -0
  224. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_get_secret.py → sia/secrets/db/ark_sia_db_delete_secret.py} +6 -5
  225. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_delete_secret.py → sia/secrets/db/ark_sia_db_disable_secret.py} +6 -5
  226. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_disable_secret.py → sia/secrets/db/ark_sia_db_enable_secret.py} +6 -5
  227. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_enable_secret.py → sia/secrets/db/ark_sia_db_get_secret.py} +6 -5
  228. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secret_metadata.py +35 -0
  229. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_secret_type.py → sia/secrets/db/ark_sia_db_secret_type.py} +1 -1
  230. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secrets_filter.py +16 -0
  231. ark_sdk_python/models/services/{dpa/secrets/db/ark_dpa_db_secrets_stats.py → sia/secrets/db/ark_sia_db_secrets_stats.py} +5 -5
  232. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_store_descriptor.py +11 -0
  233. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_store_type.py +18 -0
  234. ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_update_secret.py +41 -0
  235. ark_sdk_python/models/services/sia/secrets/db/secret_links/__init__.py +5 -0
  236. ark_sdk_python/models/services/sia/secrets/db/secret_links/ark_sia_db_pam_account_secret_link.py +10 -0
  237. ark_sdk_python/models/services/sia/secrets/db/secrets_data/__init__.py +19 -0
  238. ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_atlas_access_keys_secret_data.py +15 -0
  239. ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_iam_user_secret_data.py +19 -0
  240. ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_user_password_secret_data.py +15 -0
  241. ark_sdk_python/models/services/sia/secrets/vm/__init__.py +23 -0
  242. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_add_secret.py +17 -0
  243. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_change_secret.py +16 -0
  244. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_delete_secret.py +7 -0
  245. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_get_secret.py +7 -0
  246. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret.py +36 -0
  247. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_error.py +11 -0
  248. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_info.py +15 -0
  249. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_type.py +6 -0
  250. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secrets_filter.py +13 -0
  251. ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secrets_stats.py +13 -0
  252. ark_sdk_python/models/services/sia/sso/__init__.py +29 -0
  253. ark_sdk_python/models/services/{dpa/sso/ark_dpa_sso_acquire_token_response.py → sia/sso/ark_sia_sso_acquire_token_response.py} +1 -1
  254. ark_sdk_python/models/services/{dpa/sso/ark_dpa_sso_get_short_lived_client_certificate.py → sia/sso/ark_sia_sso_get_short_lived_client_certificate.py} +6 -6
  255. ark_sdk_python/models/services/{dpa/sso/ark_dpa_sso_get_short_lived_oracle_wallet.py → sia/sso/ark_sia_sso_get_short_lived_oracle_wallet.py} +4 -4
  256. ark_sdk_python/models/services/{dpa/sso/ark_dpa_sso_get_short_lived_password.py → sia/sso/ark_sia_sso_get_short_lived_password.py} +1 -1
  257. ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_short_lived_rdp_file.py +14 -0
  258. ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_ssh_key.py +9 -0
  259. ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_token_info.py +11 -0
  260. ark_sdk_python/models/services/sia/sso/ark_sia_sso_token_info.py +9 -0
  261. ark_sdk_python/models/services/sia/sso/ark_sia_sso_token_type.py +9 -0
  262. ark_sdk_python/models/services/sia/workspaces/db/__init__.py +53 -0
  263. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_add_database.py +65 -0
  264. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_auth_method.py +66 -0
  265. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database.py +62 -0
  266. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database_info.py +46 -0
  267. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database_target_service.py +18 -0
  268. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_databases_filter.py +25 -0
  269. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_databases_stats.py → sia/workspaces/db/ark_sia_db_databases_stats.py} +12 -12
  270. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_get_database.py → sia/workspaces/db/ark_sia_db_delete_database.py} +6 -5
  271. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_delete_database.py → sia/workspaces/db/ark_sia_db_get_database.py} +6 -5
  272. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_platform_type_serializer.py → sia/workspaces/db/ark_sia_db_platform_type_serializer.py} +2 -0
  273. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_provider.py +158 -0
  274. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_tag.py → sia/workspaces/db/ark_sia_db_tag.py} +3 -3
  275. ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_update_database.py +73 -0
  276. ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_warning.py → sia/workspaces/db/ark_sia_db_warning.py} +1 -1
  277. ark_sdk_python/models/services/sia/workspaces/targetsets/__init__.py +33 -0
  278. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_add_target_set.py +19 -0
  279. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_add_target_sets.py +15 -0
  280. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_delete_target_sets.py +9 -0
  281. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_target_set_response.py +15 -0
  282. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_delete_target_set.py +7 -0
  283. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_get_target_set.py +7 -0
  284. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_set.py +19 -0
  285. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_set_type.py +7 -0
  286. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_sets_filter.py +11 -0
  287. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_sets_stats.py +11 -0
  288. ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_update_target_set.py +18 -0
  289. ark_sdk_python/models/services/sm/ark_sm_session.py +51 -16
  290. ark_sdk_python/models/services/sm/ark_sm_session_activity.py +6 -6
  291. ark_sdk_python/models/services/sm/ark_sm_sessions_filter.py +6 -5
  292. ark_sdk_python/models/services/sm/ark_sm_sessions_stats.py +31 -23
  293. ark_sdk_python/services/cmgr/__init__.py +3 -0
  294. ark_sdk_python/services/cmgr/ark_cmgr_service.py +570 -0
  295. ark_sdk_python/services/identity/ark_identity_api.py +12 -0
  296. ark_sdk_python/services/identity/common/ark_identity_base_service.py +7 -1
  297. ark_sdk_python/services/identity/connectors/__init__.py +3 -0
  298. ark_sdk_python/services/identity/connectors/ark_identity_connectors_service.py +120 -0
  299. ark_sdk_python/services/identity/directories/ark_identity_directories_service.py +6 -6
  300. ark_sdk_python/services/identity/policies/ark_identity_policies_service.py +7 -8
  301. ark_sdk_python/services/identity/roles/ark_identity_roles_service.py +4 -4
  302. ark_sdk_python/services/identity/users/ark_identity_users_service.py +73 -6
  303. ark_sdk_python/services/pcloud/accounts/ark_pcloud_accounts_service.py +16 -15
  304. ark_sdk_python/services/pcloud/applications/__init__.py +3 -0
  305. ark_sdk_python/services/pcloud/applications/ark_pcloud_applications_service.py +320 -0
  306. ark_sdk_python/services/pcloud/ark_pcloud_api.py +12 -0
  307. ark_sdk_python/services/pcloud/common/ark_pcloud_base_service.py +15 -0
  308. ark_sdk_python/services/pcloud/platforms/ark_pcloud_platforms_service.py +8 -9
  309. ark_sdk_python/services/pcloud/safes/ark_pcloud_safes_service.py +18 -19
  310. ark_sdk_python/services/sia/__init__.py +3 -0
  311. ark_sdk_python/services/sia/access/__init__.py +3 -0
  312. ark_sdk_python/services/sia/access/ark_sia_access_service.py +262 -0
  313. ark_sdk_python/services/sia/ark_sia_api.py +137 -0
  314. ark_sdk_python/services/sia/certificates/__init__.py +3 -0
  315. ark_sdk_python/services/{dpa/certificates/ark_dpa_certificates_service.py → sia/certificates/ark_sia_certificates_service.py} +51 -38
  316. ark_sdk_python/services/sia/db/__init__.py +5 -0
  317. ark_sdk_python/services/{dpa/db/ark_dpa_db_service.py → sia/db/ark_sia_db_service.py} +47 -40
  318. ark_sdk_python/services/sia/k8s/__init__.py +3 -0
  319. ark_sdk_python/services/{dpa/k8s/ark_dpa_k8s_service.py → sia/k8s/ark_sia_k8s_service.py} +15 -8
  320. ark_sdk_python/services/sia/policies/db/__init__.py +3 -0
  321. ark_sdk_python/services/{dpa/policies/db/ark_dpa_db_policies_service.py → sia/policies/db/ark_sia_db_policies_service.py} +57 -49
  322. ark_sdk_python/services/sia/policies/vm/__init__.py +3 -0
  323. ark_sdk_python/services/sia/policies/vm/ark_sia_vm_policies_service.py +383 -0
  324. ark_sdk_python/services/sia/secrets/db/__init__.py +3 -0
  325. ark_sdk_python/services/{dpa/secrets/db/ark_dpa_db_secrets_service.py → sia/secrets/db/ark_sia_db_secrets_service.py} +70 -63
  326. ark_sdk_python/services/sia/secrets/vm/__init__.py +3 -0
  327. ark_sdk_python/services/sia/secrets/vm/ark_sia_vm_secrets_service.py +252 -0
  328. ark_sdk_python/services/sia/sso/__init__.py +5 -0
  329. ark_sdk_python/services/{dpa/sso/ark_dpa_sso_service.py → sia/sso/ark_sia_sso_service.py} +128 -55
  330. ark_sdk_python/services/sia/workspaces/db/__init__.py +3 -0
  331. ark_sdk_python/services/{dpa/workspaces/db/ark_dpa_db_workspace_service.py → sia/workspaces/db/ark_sia_db_workspace_service.py} +68 -61
  332. ark_sdk_python/services/sia/workspaces/targetsets/__init__.py +3 -0
  333. ark_sdk_python/services/sia/workspaces/targetsets/ark_sia_target_sets_workspace_service.py +247 -0
  334. ark_sdk_python/services/sm/ark_sm_service.py +13 -12
  335. {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/LICENSE.txt +1 -1
  336. {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/METADATA +119 -77
  337. {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/NOTICES.md +623 -32
  338. ark_sdk_python-2.0.1.dist-info/RECORD +485 -0
  339. {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/WHEEL +1 -1
  340. ark_sdk_python/cli_services/dpa/db/__init__.py +0 -3
  341. ark_sdk_python/cli_services/dpa/vm/__init__.py +0 -3
  342. ark_sdk_python/examples/create_dpa_db_environment.py +0 -88
  343. ark_sdk_python/models/actions/services/ark_dpa_exec_action_consts.py +0 -170
  344. ark_sdk_python/models/cli_services/dpa/policies_editor/common/__init__.py +0 -25
  345. ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_edit_policies.py +0 -9
  346. ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_get_policies_status.py +0 -9
  347. ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_remove_policies.py +0 -9
  348. ark_sdk_python/models/cli_services/dpa/policies_editor/db/__init__.py +0 -3
  349. ark_sdk_python/models/cli_services/dpa/policies_editor/db/ark_dpa_db_generate_policy.py +0 -12
  350. ark_sdk_python/models/cli_services/dpa/policies_editor/vm/__init__.py +0 -3
  351. ark_sdk_python/models/cli_services/dpa/policies_editor/vm/ark_dpa_vm_generate_policy.py +0 -11
  352. ark_sdk_python/models/services/dpa/certificates/__init__.py +0 -25
  353. ark_sdk_python/models/services/dpa/db/__init__.py +0 -20
  354. ark_sdk_python/models/services/dpa/db/ark_dpa_db_mysql_execution.py +0 -7
  355. ark_sdk_python/models/services/dpa/db/ark_dpa_db_proxy_fullchain_generate_assets.py +0 -5
  356. ark_sdk_python/models/services/dpa/db/ark_dpa_db_psql_execution.py +0 -7
  357. ark_sdk_python/models/services/dpa/k8s/__init__.py +0 -3
  358. ark_sdk_python/models/services/dpa/policies/common/__init__.py +0 -34
  359. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_add_policy.py +0 -14
  360. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_authorization_rule.py +0 -9
  361. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_connection_information.py +0 -30
  362. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policies_filter.py +0 -11
  363. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policy.py +0 -15
  364. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policy_list_item.py +0 -15
  365. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_update_policy.py +0 -23
  366. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_update_policy_status.py +0 -19
  367. ark_sdk_python/models/services/dpa/policies/common/ark_dpa_user_data.py +0 -16
  368. ark_sdk_python/models/services/dpa/policies/db/__init__.py +0 -70
  369. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_add_policy.py +0 -17
  370. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_authorization_rule.py +0 -13
  371. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_connection_data.py +0 -79
  372. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_policies_stats.py +0 -26
  373. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_policy.py +0 -13
  374. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_providers.py +0 -64
  375. ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_update_policy.py +0 -17
  376. ark_sdk_python/models/services/dpa/policies/vm/__init__.py +0 -63
  377. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_add_policy.py +0 -34
  378. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_authorization_rule.py +0 -32
  379. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policies_stats.py +0 -23
  380. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policy.py +0 -29
  381. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policy_list_item.py +0 -24
  382. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_providers.py +0 -61
  383. ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_update_policy.py +0 -29
  384. ark_sdk_python/models/services/dpa/secrets/db/__init__.py +0 -29
  385. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py +0 -40
  386. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_metadata.py +0 -35
  387. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secrets_filter.py +0 -16
  388. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_descriptor.py +0 -11
  389. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py +0 -18
  390. ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py +0 -43
  391. ark_sdk_python/models/services/dpa/secrets/db/secret_links/__init__.py +0 -5
  392. ark_sdk_python/models/services/dpa/secrets/db/secret_links/ark_dpa_db_pam_account_secret_link.py +0 -10
  393. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py +0 -19
  394. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_atlas_access_keys_secret_data.py +0 -16
  395. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_iam_user_secret_data.py +0 -20
  396. ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_user_password_secret_data.py +0 -18
  397. ark_sdk_python/models/services/dpa/sso/__init__.py +0 -21
  398. ark_sdk_python/models/services/dpa/sso/ark_dpa_sso_get_short_lived_rdp_file.py +0 -14
  399. ark_sdk_python/models/services/dpa/workspaces/db/__init__.py +0 -51
  400. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py +0 -51
  401. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_auth_method.py +0 -47
  402. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py +0 -48
  403. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database_info.py +0 -37
  404. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_databases_filter.py +0 -23
  405. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_provider.py +0 -96
  406. ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py +0 -58
  407. ark_sdk_python/services/dpa/__init__.py +0 -3
  408. ark_sdk_python/services/dpa/ark_dpa_api.py +0 -101
  409. ark_sdk_python/services/dpa/certificates/__init__.py +0 -3
  410. ark_sdk_python/services/dpa/db/__init__.py +0 -5
  411. ark_sdk_python/services/dpa/k8s/__init__.py +0 -3
  412. ark_sdk_python/services/dpa/policies/db/__init__.py +0 -3
  413. ark_sdk_python/services/dpa/policies/vm/__init__.py +0 -3
  414. ark_sdk_python/services/dpa/policies/vm/ark_dpa_vm_policies_service.py +0 -281
  415. ark_sdk_python/services/dpa/secrets/db/__init__.py +0 -3
  416. ark_sdk_python/services/dpa/sso/__init__.py +0 -5
  417. ark_sdk_python/services/dpa/workspaces/db/__init__.py +0 -3
  418. ark_sdk_python-1.2.1.dist-info/RECORD +0 -382
  419. /ark_sdk_python/cli_services/{dpa → sia}/__init__.py +0 -0
  420. /ark_sdk_python/cli_services/{dpa → sia}/common/__init__.py +0 -0
  421. /ark_sdk_python/models/cli_services/{dpa → sia}/__init__.py +0 -0
  422. /ark_sdk_python/models/cli_services/{dpa → sia}/policies_editor/__init__.py +0 -0
  423. /ark_sdk_python/models/services/{dpa → sia}/__init__.py +0 -0
  424. /ark_sdk_python/models/services/{dpa → sia}/policies/__init__.py +0 -0
  425. /ark_sdk_python/models/services/{dpa → sia}/secrets/__init__.py +0 -0
  426. /ark_sdk_python/models/services/{dpa → sia}/workspaces/__init__.py +0 -0
  427. /ark_sdk_python/services/{dpa → sia}/policies/__init__.py +0 -0
  428. /ark_sdk_python/services/{dpa → sia}/secrets/__init__.py +0 -0
  429. /ark_sdk_python/services/{dpa → sia}/workspaces/__init__.py +0 -0
  430. {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/entry_points.txt +0 -0
@@ -41,7 +41,7 @@ class ArkConfigureAction(ArkAction):
41
41
 
42
42
  # Add the profile settings to the arguments
43
43
  ArkPydanticArgparse.schema_to_argparse(
44
- ArkProfile.schema(by_alias=False), conf_parser, ignore_keys=CONFIGURATION_IGNORED_DEFINITION_KEYS
44
+ ArkProfile.model_json_schema(by_alias=False), conf_parser, ignore_keys=CONFIGURATION_IGNORED_DEFINITION_KEYS
45
45
  )
46
46
 
47
47
  # Add the supported authenticator settings and whether to work with them or not
@@ -61,7 +61,7 @@ class ArkConfigureAction(ArkAction):
61
61
  )
62
62
  # Add the rest of the ark auth profile params
63
63
  ArkPydanticArgparse.schema_to_argparse(
64
- ArkAuthProfile.schema(by_alias=False),
64
+ ArkAuthProfile.model_json_schema(by_alias=False),
65
65
  conf_parser,
66
66
  key_prefix=authenticator.authenticator_name().replace('_', '-'),
67
67
  ignore_keys=CONFIGURATION_IGNORED_DEFINITION_KEYS,
@@ -71,7 +71,7 @@ class ArkConfigureAction(ArkAction):
71
71
  for auth_method in authenticator.supported_auth_methods():
72
72
  auth_settings = ArkAuthMethodSettingsMap[auth_method]
73
73
  ArkPydanticArgparse.schema_to_argparse(
74
- auth_settings.schema(by_alias=False),
74
+ auth_settings.model_json_schema(by_alias=False),
75
75
  conf_parser,
76
76
  key_prefix=authenticator.authenticator_name().replace('_', '-'),
77
77
  ignore_keys=CONFIGURATION_IGNORED_DEFINITION_KEYS
@@ -98,7 +98,10 @@ class ArkConfigureAction(ArkAction):
98
98
 
99
99
  # Fill the rest of the profile settings
100
100
  profile_vals = ArkPydanticArgparse.argparse_to_schema_interactive(
101
- ArkProfile.schema(by_alias=False), args, ignored_keys=CONFIGURATION_IGNORED_INTERACTIVE_KEYS, existing_values=profile.dict()
101
+ ArkProfile.model_json_schema(by_alias=False),
102
+ args,
103
+ ignored_keys=CONFIGURATION_IGNORED_INTERACTIVE_KEYS,
104
+ existing_values=profile.model_dump(),
102
105
  )
103
106
  profile = ArkPydanticArgparse.merge_by_model(ArkProfile, profile, profile_vals)
104
107
  if len(SUPPORTED_AUTHENTICATORS_LIST) == 1:
@@ -138,6 +141,7 @@ class ArkConfigureAction(ArkAction):
138
141
  prioritize_existing_val=True,
139
142
  )
140
143
  auth_method = next(
144
+ # pylint: disable-next=cell-var-from-loop
141
145
  filter(lambda k: ArkAuthMethodsDescriptionMap[k] == auth_method, ArkAuthMethodsDescriptionMap.keys())
142
146
  )
143
147
  # If the default is chosen, override it by the authenticator's default
@@ -150,10 +154,10 @@ class ArkConfigureAction(ArkAction):
150
154
  )
151
155
  # Get the auth profile general settings
152
156
  auth_profile_vals = ArkPydanticArgparse.argparse_to_schema_interactive(
153
- ArkAuthProfile.schema(by_alias=False),
157
+ ArkAuthProfile.model_json_schema(by_alias=False),
154
158
  args,
155
159
  ignored_keys=ignored_keys,
156
- existing_values=auth_profile.dict(),
160
+ existing_values=auth_profile.model_dump(),
157
161
  key_prefix=authenticator.authenticator_name(),
158
162
  )
159
163
  auth_profile = ArkPydanticArgparse.merge_by_model(
@@ -169,11 +173,11 @@ class ArkConfigureAction(ArkAction):
169
173
  if auth_method != auth_profile.auth_method:
170
174
  method_settings = ArkAuthMethodSettingsMap[auth_method]()
171
175
  else:
172
- method_settings = ArkAuthMethodSettingsMap[auth_method].parse_obj(auth_profile.auth_method_settings)
176
+ method_settings = ArkAuthMethodSettingsMap[auth_method].model_validate(auth_profile.auth_method_settings)
173
177
  method_settings_vals = ArkPydanticArgparse.argparse_to_schema_interactive(
174
- method_settings.schema(by_alias=False),
178
+ method_settings.model_json_schema(by_alias=False),
175
179
  args,
176
- existing_values=method_settings.dict(),
180
+ existing_values=method_settings.model_dump(),
177
181
  override_aliases=CONFIGURATION_OVERRIDE_ALIASES,
178
182
  key_prefix=authenticator.authenticator_name(),
179
183
  ignored_keys=CONFIGURATION_IGNORED_INTERACTIVE_KEYS
@@ -212,7 +216,7 @@ class ArkConfigureAction(ArkAction):
212
216
  profile = ArkPydanticArgparse.merge_by_model(
213
217
  ArkProfile,
214
218
  ArkProfileLoader.load_profile(args.profile_name) or ArkProfile(profile_name=args.profile_name),
215
- ArkPydanticArgparse.argparse_to_schema(ArkProfile.schema(by_alias=False), args),
219
+ ArkPydanticArgparse.argparse_to_schema(ArkProfile.model_json_schema(by_alias=False), args),
216
220
  )
217
221
 
218
222
  # Load the authenticators
@@ -234,7 +238,7 @@ class ArkConfigureAction(ArkAction):
234
238
  ArkAuthProfile,
235
239
  auth_profile,
236
240
  ArkPydanticArgparse.argparse_to_schema(
237
- ArkAuthProfile.schema(by_alias=False), args, key_prefix=authenticator.authenticator_name()
241
+ ArkAuthProfile.model_json_schema(by_alias=False), args, key_prefix=authenticator.authenticator_name()
238
242
  ),
239
243
  key_prefix=authenticator.authenticator_name(),
240
244
  )
@@ -248,11 +252,11 @@ class ArkConfigureAction(ArkAction):
248
252
  if auth_method != auth_profile.auth_method:
249
253
  method_settings = ArkAuthMethodSettingsMap[auth_method]()
250
254
  else:
251
- method_settings = ArkAuthMethodSettingsMap[auth_method].parse_obj(method_settings)
255
+ method_settings = ArkAuthMethodSettingsMap[auth_method].model_validate(method_settings)
252
256
 
253
257
  # Parse and merge the method settings from the cli
254
258
  method_settings_vals = ArkPydanticArgparse.argparse_to_schema(
255
- method_settings.schema(by_alias=False), args, key_prefix=authenticator.authenticator_name()
259
+ method_settings.model_json_schema(by_alias=False), args, key_prefix=authenticator.authenticator_name()
256
260
  )
257
261
 
258
262
  # Remove the postfix
@@ -298,7 +302,7 @@ class ArkConfigureAction(ArkAction):
298
302
  ArkProfileLoader.save_profile(profile)
299
303
 
300
304
  # Print out results
301
- ArkArgsFormatter.print_success(profile.json(indent=4))
305
+ ArkArgsFormatter.print_success(profile.model_dump_json(indent=4))
302
306
  ArkArgsFormatter.print_success_bright(
303
307
  f"Profile has been saved to {ArkProfileLoader.profiles_folder()}",
304
308
  )
@@ -8,7 +8,6 @@ from collections import namedtuple
8
8
  from typing import Any, Dict, Generator, List, Optional, Tuple, Type, Union
9
9
 
10
10
  from overrides import overrides
11
- from retry.api import retry_call
12
11
 
13
12
  from ark_sdk_python.actions.ark_action import ArkAction
14
13
  from ark_sdk_python.args import ArkArgsFormatter, ArkPydanticArgparse
@@ -16,6 +15,7 @@ from ark_sdk_python.auth import SUPPORTED_AUTHENTICATORS
16
15
  from ark_sdk_python.auth.ark_auth import ArkAuth
17
16
  from ark_sdk_python.cli_services import ArkCLIAPI
18
17
  from ark_sdk_python.common import ArkAsyncRequest, ArkPollers, ArkSystemConfig
18
+ from ark_sdk_python.common.ark_retry import ArkRetry
19
19
  from ark_sdk_python.models import ArkException, ArkModel
20
20
  from ark_sdk_python.models.ark_model import ArkPollableModel
21
21
  from ark_sdk_python.models.ark_profile import ArkProfileLoader
@@ -30,25 +30,47 @@ class ArkExecAction(ArkAction):
30
30
  return self._serialize_output(list(itertools.chain.from_iterable([p.items for p in output])))
31
31
  if isinstance(output, list):
32
32
  return json.dumps(
33
- [json.loads(a.json(by_alias=False, exclude={'poll_progress_callback'})) for a in output if a is not None], indent=4
33
+ [
34
+ (
35
+ json.loads(a.model_dump_json(by_alias=False, exclude={'poll_progress_callback'}))
36
+ if issubclass(type(a), ArkModel)
37
+ else a
38
+ )
39
+ for a in output
40
+ if a is not None
41
+ ],
42
+ indent=4,
34
43
  )
35
44
  elif isinstance(output, tuple):
36
45
  return json.dumps(
37
- [json.loads(a.json(by_alias=False, exclude={'poll_progress_callback'})) for a in output if a is not None], indent=4
46
+ [
47
+ (
48
+ json.loads(a.model_dump_json(by_alias=False, exclude={'poll_progress_callback'}))
49
+ if issubclass(type(a), ArkModel)
50
+ else a
51
+ )
52
+ for a in output
53
+ if a is not None
54
+ ],
55
+ indent=4,
38
56
  )
39
57
  elif isinstance(output, dict):
40
58
  return json.dumps(
41
59
  {
42
- k: json.loads(v.json(indent=4, by_alias=False, exclude={'poll_progress_callback'}))
60
+ k: (
61
+ json.loads(v.model_dump_json(indent=4, by_alias=False, exclude={'poll_progress_callback'}))
62
+ if issubclass(type(v), ArkModel)
63
+ else v
64
+ )
43
65
  for k, v in output.items()
44
66
  if k is not None and v is not None
45
67
  },
46
68
  indent=4,
47
69
  )
48
70
  elif issubclass(type(output), ArkModel):
49
- return output.json(indent=4, by_alias=False, exclude={'poll_progress_callback'})
71
+ return output.model_dump_json(indent=4, by_alias=False, exclude={'poll_progress_callback'})
50
72
  elif issubclass(type(output), ArkAsyncRequest):
51
- return output.async_task.json(indent=4, by_alias=False)
73
+ return output.async_task.model_dump_json(indent=4, by_alias=False)
52
74
  return str(output)
53
75
 
54
76
  def _write_output_to_file(self, output_path: str, serialized_output: str) -> None:
@@ -63,7 +85,9 @@ class ArkExecAction(ArkAction):
63
85
  ) -> None:
64
86
  try:
65
87
  model_type: Type[ArkPollableModel] = schemas_map[action.replace('_', '-')]
66
- model: ArkPollableModel = model_type.parse_obj(ArkPydanticArgparse.argparse_to_schema(model_type.schema(), args))
88
+ model: ArkPollableModel = model_type.model_validate(
89
+ ArkPydanticArgparse.argparse_to_schema(model_type.model_json_schema(), args)
90
+ )
67
91
  model.poll_progress_callback = ArkPollers.default_poller()
68
92
  output = getattr(service, action.replace('-', '_'))(model)
69
93
  async_req = None
@@ -77,22 +101,22 @@ class ArkExecAction(ArkAction):
77
101
  if async_req is not None:
78
102
  if args.output_path:
79
103
  self._write_output_to_file(
80
- args.output_path, async_req.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})
104
+ args.output_path, async_req.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})
81
105
  )
82
106
  if async_req.task_failed():
83
107
  if async_req.task_timeout():
84
108
  ArkArgsFormatter.print_warning(
85
- f'Failed to execute async command due to timeout, error:\n{async_req.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
109
+ f'Failed to execute async command due to timeout, error:\n{async_req.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
86
110
  )
87
111
  raise ArkException(
88
- f'Failed to execute async command due to timeout, error:\n{async_req.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
112
+ f'Failed to execute async command due to timeout, error:\n{async_req.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
89
113
  )
90
114
  else:
91
115
  ArkArgsFormatter.print_failure(
92
- f'Failed to execute async command, error:\n{async_req.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
116
+ f'Failed to execute async command, error:\n{async_req.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
93
117
  )
94
118
  raise ArkException(
95
- f'Failed to execute async command, error:\n{async_req.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
119
+ f'Failed to execute async command, error:\n{async_req.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
96
120
  )
97
121
  else:
98
122
  ArkArgsFormatter.print_success(self._serialize_output(output))
@@ -100,23 +124,25 @@ class ArkExecAction(ArkAction):
100
124
  if args.output_path:
101
125
  self._write_output_to_file(
102
126
  args.output_path,
103
- json.dumps([ar.async_task.dict(indent=4, by_alias=False, exclude={"poll_progress_callback"}) for ar in output]),
127
+ json.dumps(
128
+ [ar.async_task.model_dump(indent=4, by_alias=False, exclude={"poll_progress_callback"}) for ar in output]
129
+ ),
104
130
  )
105
131
  for ar in output:
106
132
  if ar.task_failed():
107
133
  if ar.task_timeout():
108
134
  ArkArgsFormatter.print_warning(
109
- f'Failed to execute async command due to timeout, error:\n{ar.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
135
+ f'Failed to execute async command due to timeout, error:\n{ar.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
110
136
  )
111
137
  raise ArkException(
112
- f'Failed to execute async command due to timeout, error:\n{ar.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
138
+ f'Failed to execute async command due to timeout, error:\n{ar.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
113
139
  )
114
140
  else:
115
141
  ArkArgsFormatter.print_failure(
116
- f'Failed to execute async command, error:\n{ar.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
142
+ f'Failed to execute async command, error:\n{ar.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
117
143
  )
118
144
  raise ArkException(
119
- f'Failed to execute async command, error:\n{ar.async_task.json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
145
+ f'Failed to execute async command, error:\n{ar.async_task.model_dump_json(indent=4, by_alias=False, exclude={"poll_progress_callback"})}',
120
146
  )
121
147
  else:
122
148
  ArkArgsFormatter.print_success(self._serialize_output(ar))
@@ -134,7 +160,7 @@ class ArkExecAction(ArkAction):
134
160
  try:
135
161
  model_type: Type[ArkPollableModel] = schemas_map[action.replace('_', '-')]
136
162
  if model_type:
137
- model: ArkModel = model_type.parse_obj(ArkPydanticArgparse.argparse_to_schema(model_type.schema(), args))
163
+ model: ArkModel = model_type.model_validate(ArkPydanticArgparse.argparse_to_schema(model_type.model_json_schema(), args))
138
164
  output = getattr(service, action.replace('-', '_'))(model)
139
165
  else:
140
166
  output = getattr(service, action.replace('-', '_'))()
@@ -161,7 +187,7 @@ class ArkExecAction(ArkAction):
161
187
  parser = subparsers.add_parser(action)
162
188
  if schema:
163
189
  ArkPydanticArgparse.schema_to_argparse(
164
- schema.schema(), parser, defaults=defaults_map.get(action, None) if defaults_map else None
190
+ schema.model_json_schema(), parser, defaults=defaults_map.get(action, None) if defaults_map else None
165
191
  )
166
192
 
167
193
  @overrides
@@ -237,7 +263,7 @@ class ArkExecAction(ArkAction):
237
263
 
238
264
  # Run the actual exec fitting action with the api
239
265
  # Run it with retries as per defined by user
240
- retry_call(
266
+ ArkRetry.retry_call(
241
267
  self.run_exec_action,
242
268
  fargs=[api, args],
243
269
  tries=args.retry_count,
@@ -124,6 +124,7 @@ class ArkLoginAction(ArkAction):
124
124
  and not args.__dict__[f'{authenticator_name}_secret']
125
125
  and not args.no_shared_secrets
126
126
  ):
127
+ # pylint: disable-next=cell-var-from-loop
127
128
  secret = next(filter(lambda s: auth_profile.username == s[0], shared_secrets_map[auth_profile.auth_method]))[1]
128
129
  else:
129
130
  if not args.force and (
@@ -139,7 +140,7 @@ class ArkLoginAction(ArkAction):
139
140
  if (
140
141
  authenticator_name == 'isp'
141
142
  and auth_profile.auth_method == ArkAuthMethod.Identity
142
- and ArkIdentity.is_idp_user(
143
+ and not ArkIdentity.is_password_required(
143
144
  auth_profile.username,
144
145
  (
145
146
  auth_profile.auth_method_settings.identity_url
@@ -182,7 +183,7 @@ class ArkLoginAction(ArkAction):
182
183
  if 'cookies' in v.metadata:
183
184
  del v.metadata['cookies']
184
185
  ArkArgsFormatter.print_success(
185
- f'{k} Token\n{v.json(indent=4, exclude={} if args.show_tokens else {"token", "refresh_token"})}',
186
+ f'{k} Token\n{v.model_dump_json(indent=4, exclude={} if args.show_tokens else {"token", "refresh_token"})}',
186
187
  )
187
188
 
188
189
  @overrides
@@ -68,7 +68,7 @@ class ArkProfilesAction(ArkAction):
68
68
  profiles = [p for p in profiles if args.auth_profile in list(p.auth_profiles.keys())]
69
69
  # Print them based on request
70
70
  if args.all:
71
- ArkArgsFormatter.print_success(json.dumps([p.dict() for p in profiles], indent=4))
71
+ ArkArgsFormatter.print_success(json.dumps([p.model_dump() for p in profiles], indent=4))
72
72
  else:
73
73
  ArkArgsFormatter.print_success(json.dumps([p.profile_name for p in profiles], indent=4))
74
74
 
@@ -80,7 +80,7 @@ class ArkProfilesAction(ArkAction):
80
80
  f'No profile was found for the name {profile_name}',
81
81
  )
82
82
  return
83
- ArkArgsFormatter.print_success(profile.json(indent=4))
83
+ ArkArgsFormatter.print_success(profile.model_dump_json(indent=4))
84
84
 
85
85
  def __run_delete_action(self, args: argparse.Namespace) -> None:
86
86
  profile: Optional[ArkProfile] = ArkProfileLoader.load_profile(args.profile_name)
@@ -136,7 +136,8 @@ class ArkProfilesAction(ArkAction):
136
136
  )
137
137
  return
138
138
  try:
139
- profile: ArkProfile = ArkProfile.parse_file(args.profile_path)
139
+ with open(args.profile_path, 'r', encoding='utf-8') as fh:
140
+ profile: ArkProfile = ArkProfile.model_validate_json(fh.read())
140
141
  ArkProfileLoader.save_profile(profile)
141
142
  except Exception as ex:
142
143
  self._logger.exception(f'Failed to parser profile [{str(ex)}]')
@@ -156,9 +157,9 @@ class ArkProfilesAction(ArkAction):
156
157
  answer = inquirer.prompt(
157
158
  [inquirer.Editor('profile_edit', message=f'Chosen profile [{profile_name}] is about to be edited')],
158
159
  render=ArkInquirerRender(),
159
- answers={'profile_edit': profile.json(indent=4)},
160
+ answers={'profile_edit': profile.model_dump_json(indent=4)},
160
161
  )
161
- edited_profile = ArkProfile.parse_raw(answer['profile_edit'])
162
+ edited_profile = ArkProfile.model_validate_json(answer['profile_edit'])
162
163
  ArkProfileLoader.save_profile(edited_profile)
163
164
 
164
165
  @overrides
@@ -87,7 +87,7 @@ class ArkServiceExecAction(ArkExecAction):
87
87
  """
88
88
  action_def, action_dest = self.__deduce_action_command_def(args.command, args)
89
89
  action_value = args.__dict__[action_dest]
90
- api_name = action_dest.replace('_action', '')
90
+ api_name = action_dest.replace('_action', '').replace('-', '_')
91
91
  while '_' in api_name and not hasattr(api, api_name):
92
92
  api_name = api_name.rsplit('_', 1)[0]
93
93
  service = getattr(api, api_name)
@@ -128,7 +128,7 @@ class ArkPydanticArgparse:
128
128
  is_required = True
129
129
  enum = None
130
130
  if 'enum' in def_prop:
131
- enum = def_prop
131
+ enum = def_prop['enum']
132
132
  ArkPydanticArgparse.__populate_type(
133
133
  prop_type, snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
134
134
  )
@@ -249,14 +249,31 @@ class ArkPydanticArgparse:
249
249
  if item['type'] == 'object':
250
250
  if ArkPydanticArgparse.__arg_in_schema(arg_key, item, definitions, f'{prefix}{snake_prop_name}.'):
251
251
  return item['type']
252
+ if item['type'] == 'null':
253
+ continue
252
254
  if prefix + snake_prop_name == arg_key:
253
255
  return item['type']
254
256
  elif (
255
257
  'anyOf' in schema['properties'][prop_name].keys()
256
258
  and isinstance(schema['properties'][prop_name]['anyOf'], list)
257
- and all('type' in t for t in schema['properties'][prop_name]['anyOf'])
259
+ and all('type' in t or '$ref' in t for t in schema['properties'][prop_name]['anyOf'])
258
260
  ):
261
+ if any('$ref' in t for t in schema['properties'][prop_name]['anyOf']):
262
+ item = [t for t in schema['properties'][prop_name]['anyOf'] if '$ref' in t][0]
263
+ def_prop_name = item['$ref'].split('/')[2]
264
+ def_prop = definitions[def_prop_name]
265
+ if 'type' not in def_prop.keys():
266
+ if 'enum' in def_prop.keys():
267
+ return 'string'
268
+ continue
269
+ if def_prop['type'] == 'object':
270
+ if ArkPydanticArgparse.__arg_in_schema(arg_key, def_prop, definitions, f'{prefix}{snake_prop_name}.'):
271
+ return def_prop['type']
272
+ if prefix + snake_prop_name == arg_key:
273
+ return def_prop['type']
259
274
  if prefix + snake_prop_name == arg_key:
275
+ if any(t['type'] != 'null' for t in schema['properties'][prop_name]['anyOf']):
276
+ return [t['type'] for t in schema['properties'][prop_name]['anyOf'] if t['type'] != 'null'][0]
260
277
  return 'string'
261
278
  elif 'type' in schema['properties'][prop_name].keys():
262
279
  if prefix + snake_prop_name == arg_key:
@@ -266,8 +283,41 @@ class ArkPydanticArgparse:
266
283
  arg_key, schema['properties'][prop_name], definitions, f'{prefix}{snake_prop_name}.'
267
284
  ):
268
285
  return schema['properties'][prop_name]['type']
286
+ if schema['properties'][prop_name]['type'] == 'null':
287
+ return None
269
288
  return None
270
289
 
290
+ @staticmethod
291
+ def __parse_types(args: Dict[str, str]) -> Dict[str, Any]:
292
+ parsed_args = {}
293
+ for k, v in args.items():
294
+ if not isinstance(v, str):
295
+ parsed_args[k] = v
296
+ continue
297
+ if v.lower() == 'true':
298
+ parsed_args[k] = True
299
+ continue
300
+ if v.lower() == 'false':
301
+ parsed_args[k] = False
302
+ continue
303
+ try:
304
+ parsed_args[k] = int(v)
305
+ continue
306
+ except: # pylint: disable=bare-except
307
+ pass
308
+ try:
309
+ parsed_args[k] = float(v)
310
+ continue
311
+ except: # pylint: disable=bare-except
312
+ pass
313
+ try:
314
+ parsed_args[k] = json.loads(v)
315
+ continue
316
+ except: # pylint: disable=bare-except
317
+ pass
318
+ parsed_args[k] = v
319
+ return parsed_args
320
+
271
321
  @staticmethod
272
322
  def __arg_to_schema(
273
323
  arg_key: str, arg_val: Any, args_map: Dict[str, Any], arg_type: str, keep_empty_values: bool = False, key_prefix: str = ''
@@ -302,6 +352,7 @@ class ArkPydanticArgparse:
302
352
  for item in next(csv.reader([arg_val], delimiter=',', quotechar="'", escapechar="\\", skipinitialspace=True))
303
353
  )
304
354
  if len(args_dict) > 0:
355
+ args_dict = ArkPydanticArgparse.__parse_types(args_dict)
305
356
  args_map[key_prefix + arg_key] = args_dict
306
357
  elif arg_key != 'extrafields':
307
358
  args_map[key_prefix + arg_key] = arg_val
@@ -321,10 +372,8 @@ class ArkPydanticArgparse:
321
372
  ) -> None:
322
373
  """
323
374
  Converts the given schema to argparse parameters.
324
-
325
375
  Recursively iterates over the JSON schema and adds parameters to the parser.
326
376
  The argparse parameters can then be parsed from the CLI and then converted back using argparse_to_schema function.
327
-
328
377
  This function does not return anything, but updates the parser itself.
329
378
 
330
379
  Args:
@@ -337,8 +386,8 @@ class ArkPydanticArgparse:
337
386
  ignore_keys (Optional[List[str]], optional): _description_. Defaults to None.
338
387
  key_prefix (str, optional): _description_. Defaults to ''.
339
388
  """
340
- if not definitions and 'definitions' in schema.keys():
341
- definitions = schema['definitions']
389
+ if not definitions and '$defs' in schema.keys():
390
+ definitions = schema['$defs']
342
391
  elif not definitions:
343
392
  definitions = {}
344
393
  if not required and 'required' in schema.keys():
@@ -381,25 +430,66 @@ class ArkPydanticArgparse:
381
430
  elif (
382
431
  'anyOf' in schema['properties'][prop_name].keys()
383
432
  and isinstance(schema['properties'][prop_name]['anyOf'], list)
384
- and all('type' in t for t in schema['properties'][prop_name]['anyOf'])
433
+ and all('type' in t or '$ref' in t for t in schema['properties'][prop_name]['anyOf'])
385
434
  ):
386
435
  snake_prop_name = re.sub(r'(?<!^)(?=[A-Z])', '_', prop_name).lower().replace('_', '-')
387
- is_required = False
388
- if prop_name in required:
389
- is_required = True
390
- default = None
391
- if 'default' in schema['properties'][prop_name].keys():
392
- default = schema['properties'][prop_name]['default']
393
- desc = ''
394
- if 'description' in schema['properties'][prop_name].keys():
395
- desc = schema['properties'][prop_name]['description']
396
- enum = None
397
- if 'enum' in schema['properties'][prop_name]:
398
- enum = schema['enum']
399
- ArkPydanticArgparse.__populate_type(
400
- 'string', snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
401
- )
402
- continue
436
+ if any('$ref' in t for t in schema['properties'][prop_name]['anyOf']):
437
+ item = [t for t in schema['properties'][prop_name]['anyOf'] if '$ref' in t][0]
438
+ def_prop_name = item['$ref'].split('/')[2]
439
+ def_prop = definitions[def_prop_name]
440
+ if 'type' not in def_prop.keys():
441
+ if 'enum' in def_prop.keys():
442
+ is_required = False
443
+ if required and prop_name in required:
444
+ is_required = True
445
+ enum = def_prop['enum']
446
+ ArkPydanticArgparse.__populate_type(
447
+ 'string', snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
448
+ )
449
+ continue
450
+ prop_type = def_prop['type']
451
+ if prop_type == 'object':
452
+ ArkPydanticArgparse.schema_to_argparse(
453
+ def_prop, parser, defaults, f'{prefix}{snake_prop_name}.', definitions, required, ignore_keys, key_prefix
454
+ )
455
+ else:
456
+ is_required = False
457
+ if required and prop_name in required:
458
+ is_required = True
459
+ default = None
460
+ if 'default' in schema['properties'][prop_name].keys():
461
+ default = schema['properties'][prop_name]['default']
462
+ desc = ''
463
+ if 'description' in schema['properties'][prop_name].keys():
464
+ desc = schema['properties'][prop_name]['description']
465
+ enum = None
466
+ if 'enum' in def_prop:
467
+ enum = def_prop['enum']
468
+ ArkPydanticArgparse.__populate_type(
469
+ prop_type, snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
470
+ )
471
+ else:
472
+ is_required = False
473
+ if prop_name in required:
474
+ is_required = True
475
+ default = None
476
+ if 'default' in schema['properties'][prop_name].keys():
477
+ default = schema['properties'][prop_name]['default']
478
+ desc = ''
479
+ if 'description' in schema['properties'][prop_name].keys():
480
+ desc = schema['properties'][prop_name]['description']
481
+ enum = None
482
+ if 'enum' in schema['properties'][prop_name]:
483
+ enum = schema['enum']
484
+ prop_type = 'string'
485
+ if any(t['type'] != 'null' for t in schema['properties'][prop_name]['anyOf']) and all(
486
+ t['type'] != 'string' for t in schema['properties'][prop_name]['anyOf']
487
+ ):
488
+ prop_type = [t['type'] for t in schema['properties'][prop_name]['anyOf'] if t['type'] != 'null'][0]
489
+ ArkPydanticArgparse.__populate_type(
490
+ prop_type, snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
491
+ )
492
+ continue
403
493
  desc = ''
404
494
  if 'description' in schema['properties'][prop_name].keys():
405
495
  desc = schema['properties'][prop_name]['description']
@@ -424,6 +514,7 @@ class ArkPydanticArgparse:
424
514
  'properties' not in schema['properties'][prop_name]
425
515
  and (
426
516
  'additionalProperties' in schema['properties'][prop_name]
517
+ and isinstance(schema['properties'][prop_name]['additionalProperties'], dict)
427
518
  and 'type' in schema['properties'][prop_name]['additionalProperties']
428
519
  and len(schema['properties'][prop_name]['additionalProperties']) == 1
429
520
  )
@@ -440,6 +531,26 @@ class ArkPydanticArgparse:
440
531
  prop_type, snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
441
532
  )
442
533
  else:
534
+ local_schema = schema['properties'][prop_name]
535
+ if 'properties' not in local_schema.keys():
536
+ prop_name = local_schema['title']
537
+ snake_prop_name = re.sub(r'(?<!^)(?=[A-Z])', '_', prop_name).lower().replace('_', '-')
538
+ is_required = False
539
+ if prop_name in required:
540
+ is_required = True
541
+ default = None
542
+ if 'default' in schema.keys():
543
+ default = local_schema['default']
544
+ desc = ''
545
+ if 'description' in schema.keys():
546
+ desc = local_schema['description']
547
+ enum = None
548
+ if 'enum' in local_schema:
549
+ enum = local_schema['enum']
550
+ ArkPydanticArgparse.__populate_type(
551
+ local_schema['type'], snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
552
+ )
553
+ continue
443
554
  ArkPydanticArgparse.schema_to_argparse(
444
555
  schema['properties'][prop_name],
445
556
  parser,
@@ -489,8 +600,8 @@ class ArkPydanticArgparse:
489
600
  key_prefix = key_prefix + '_'
490
601
  if 'properties' not in schema:
491
602
  return {}
492
- if not definitions and 'definitions' in schema.keys():
493
- definitions = schema['definitions']
603
+ if not definitions and '$defs' in schema.keys():
604
+ definitions = schema['$defs']
494
605
  elif not definitions:
495
606
  definitions = {}
496
607
  if not override_aliases:
@@ -549,8 +660,10 @@ class ArkPydanticArgparse:
549
660
  for key, value in loaded_args_map.items():
550
661
  first, *others = key.split('_')
551
662
  file_args_map[''.join([first.lower(), *map(str.title, others)])] = value
552
- if 'definitions' in schema.keys():
553
- definitions = schema['definitions']
663
+ # Also add the snake case for models which are not camel based
664
+ file_args_map[key] = value
665
+ if '$defs' in schema.keys():
666
+ definitions = schema['$defs']
554
667
  for arg_key, arg_val in args.__dict__.items():
555
668
  if ignored_keys and arg_key in ignored_keys:
556
669
  continue
@@ -578,7 +691,6 @@ class ArkPydanticArgparse:
578
691
  """
579
692
  Converts the given schema and args into a finalized dictionary.
580
693
  The function interacts with the user and requests args that were not provided in the CLI.
581
-
582
694
  Returns a dict that combines the schema with the user inputs.
583
695
 
584
696
  Args:
@@ -658,15 +770,15 @@ class ArkPydanticArgparse:
658
770
  if key_prefix:
659
771
  new_vals = {k.replace(f'{key_prefix}_', ''): v for k, v in new_vals.items()}
660
772
  if isinstance(new_vals, BaseModel):
661
- new_vals = new_vals.dict(by_alias=by_alias)
773
+ new_vals = new_vals.model_dump(by_alias=by_alias)
662
774
  new_vals = {k: v for k, v in new_vals.items() if v is not None}
663
- vals_dict = existing_model.dict(by_alias=by_alias)
775
+ vals_dict = existing_model.model_dump(by_alias=by_alias)
664
776
  if ignore_keys:
665
777
  new_vals = {k: v for k, v in new_vals.items() if k not in ignore_keys}
666
778
  vals_dict.update(new_vals)
667
779
  if defaults:
668
780
  vals_dict.update({k: v for k, v in defaults.items() if k not in vals_dict or vals_dict[k] is None})
669
- return model.parse_obj(vals_dict)
781
+ return model.model_validate(vals_dict)
670
782
 
671
783
  @staticmethod
672
784
  def schema_to_simple_arguments(
@@ -683,8 +795,8 @@ class ArkPydanticArgparse:
683
795
  Dict[str, TaskInputParameter]: _description_
684
796
  """
685
797
  definitions: dict = None
686
- if 'definitions' in schema.keys():
687
- definitions = schema['definitions']
798
+ if '$defs' in schema.keys():
799
+ definitions = schema['$defs']
688
800
  parser = argparse.ArgumentParser()
689
801
  ArkPydanticArgparse.schema_to_argparse(schema, parser, ignore_keys=ignore_keys)
690
802
  input_args = {}