ark-sdk-python 1.2.1__py3-none-any.whl → 2.0.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.
- ark_sdk_python/actions/ark_configure_action.py +18 -14
- ark_sdk_python/actions/ark_exec_action.py +46 -20
- ark_sdk_python/actions/ark_login_action.py +3 -2
- ark_sdk_python/actions/ark_profiles_action.py +6 -5
- ark_sdk_python/actions/ark_service_exec_action.py +1 -1
- ark_sdk_python/args/ark_pydantic_argparse.py +144 -33
- ark_sdk_python/ark.py +1 -1
- ark_sdk_python/ark_api.py +112 -40
- ark_sdk_python/auth/ark_auth.py +3 -3
- ark_sdk_python/auth/identity/ark_identity.py +112 -44
- ark_sdk_python/auth/identity/ark_identity_fqdn_resolver.py +2 -2
- ark_sdk_python/cli_services/ark_cli_api.py +8 -8
- 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
- ark_sdk_python/cli_services/sia/db/__init__.py +3 -0
- 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
- ark_sdk_python/cli_services/sia/vm/__init__.py +3 -0
- 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
- ark_sdk_python/common/ark_async_client.py +11 -1
- ark_sdk_python/common/ark_client.py +27 -4
- ark_sdk_python/common/ark_jwt_utils.py +12 -0
- ark_sdk_python/common/ark_keyring.py +5 -6
- ark_sdk_python/common/ark_retry.py +66 -0
- ark_sdk_python/common/connections/__init__.py +3 -0
- ark_sdk_python/common/connections/ark_connection.py +66 -0
- ark_sdk_python/common/connections/ssh/__init__.py +3 -0
- ark_sdk_python/common/connections/ssh/ark_ssh_connection.py +144 -0
- ark_sdk_python/common/connections/winrm/__init__.py +3 -0
- ark_sdk_python/common/connections/winrm/ark_winrm_connection.py +168 -0
- ark_sdk_python/common/isp/ark_isp_service_client.py +7 -9
- ark_sdk_python/examples/create_sia_db_environment.py +101 -0
- ark_sdk_python/examples/create_sia_vm_environment.py +109 -0
- ark_sdk_python/examples/list_pcloud_accounts.py +1 -1
- ark_sdk_python/models/__init__.py +6 -0
- ark_sdk_python/models/actions/ark_service_action_definition.py +7 -5
- ark_sdk_python/models/actions/services/__init__.py +6 -3
- ark_sdk_python/models/actions/services/ark_cmgr_exec_action_consts.py +57 -0
- ark_sdk_python/models/actions/services/ark_identity_exec_action_consts.py +13 -0
- ark_sdk_python/models/actions/services/ark_pcloud_exec_action_consts.py +31 -0
- ark_sdk_python/models/actions/services/ark_sia_exec_action_consts.py +247 -0
- ark_sdk_python/models/ark_model.py +65 -18
- ark_sdk_python/models/ark_profile.py +14 -8
- ark_sdk_python/models/auth/ark_auth_method.py +8 -3
- ark_sdk_python/models/auth/ark_auth_profile.py +9 -9
- ark_sdk_python/models/auth/ark_secret.py +3 -6
- ark_sdk_python/models/auth/ark_token.py +13 -11
- ark_sdk_python/models/cli_services/sia/policies_editor/common/__init__.py +25 -0
- 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
- 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
- ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_edit_policies.py +11 -0
- ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_get_policies_status.py +11 -0
- 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
- 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
- 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
- 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
- ark_sdk_python/models/cli_services/sia/policies_editor/common/ark_sia_remove_policies.py +11 -0
- 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
- 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
- ark_sdk_python/models/cli_services/sia/policies_editor/db/__init__.py +3 -0
- ark_sdk_python/models/cli_services/sia/policies_editor/db/ark_sia_db_generate_policy.py +12 -0
- ark_sdk_python/models/cli_services/sia/policies_editor/vm/__init__.py +3 -0
- ark_sdk_python/models/cli_services/sia/policies_editor/vm/ark_sia_vm_generate_policy.py +13 -0
- ark_sdk_python/models/common/ark_access_method.py +1 -0
- ark_sdk_python/models/common/ark_application_code.py +4 -1
- ark_sdk_python/models/common/ark_async_task.py +1 -1
- ark_sdk_python/models/common/ark_connector_type.py +1 -1
- ark_sdk_python/models/common/ark_region.py +3 -0
- ark_sdk_python/models/common/ark_workspace_type.py +1 -0
- ark_sdk_python/models/common/connections/ark_connection_command.py +3 -0
- ark_sdk_python/models/common/connections/ark_connection_credentials.py +6 -6
- ark_sdk_python/models/common/connections/ark_connection_details.py +5 -4
- ark_sdk_python/models/common/connections/ark_connection_result.py +3 -3
- ark_sdk_python/models/common/connections/connection_data/ark_winrm_connection_data.py +1 -1
- ark_sdk_python/models/common/identity/ark_identity_auth_schemas.py +37 -37
- ark_sdk_python/models/common/identity/ark_identity_common_schemas.py +4 -4
- ark_sdk_python/models/common/identity/ark_identity_directory_schemas.py +22 -21
- ark_sdk_python/models/common/isp/ark_platform_discovery_schemas.py +2 -4
- ark_sdk_python/models/services/cmgr/__init__.py +70 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_add_network.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_add_pool.py +12 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_add_pool_identifiers.py +20 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_bulk_response.py +15 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_delete_network.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_delete_pool.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_delete_pool_identifiers.py +18 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_get_network.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_get_pool.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_get_pool_component.py +8 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_list_pool_identifiers.py +7 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_network.py +18 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_networks_filter.py +5 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_networks_stats.py +10 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pool.py +23 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pool_component.py +21 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pool_components_filter.py +5 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pool_identifiers.py +33 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pool_identifiers_filter.py +6 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pools_common_filter.py +13 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pools_filter.py +5 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_pools_stats.py +13 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_update_network.py +10 -0
- ark_sdk_python/models/services/cmgr/ark_cmgr_update_pool.py +15 -0
- ark_sdk_python/models/services/identity/connectors/__init__.py +9 -0
- ark_sdk_python/models/services/identity/connectors/ark_identity_connector_info.py +28 -0
- ark_sdk_python/models/services/identity/connectors/ark_identity_connectors_filter.py +14 -0
- ark_sdk_python/models/services/identity/connectors/ark_identity_get_connector.py +7 -0
- ark_sdk_python/models/services/identity/directories/ark_identity_entity.py +5 -5
- ark_sdk_python/models/services/identity/directories/ark_identity_list_directories.py +1 -1
- ark_sdk_python/models/services/identity/directories/ark_identity_list_directories_entities.py +3 -5
- ark_sdk_python/models/services/identity/policies/ark_identity_add_authentication_profile.py +2 -2
- ark_sdk_python/models/services/identity/policies/ark_identity_add_policy.py +1 -1
- ark_sdk_python/models/services/identity/policies/ark_identity_authentication_profile.py +3 -3
- ark_sdk_python/models/services/identity/policies/ark_identity_get_authentication_profile.py +2 -2
- ark_sdk_python/models/services/identity/policies/ark_identity_policy.py +2 -2
- ark_sdk_python/models/services/identity/policies/ark_identity_remove_authentication_profile.py +2 -2
- ark_sdk_python/models/services/identity/roles/ark_identity_add_admin_right_to_role.py +6 -5
- ark_sdk_python/models/services/identity/roles/ark_identity_admin_right.py +1 -0
- ark_sdk_python/models/services/identity/roles/ark_identity_create_role.py +1 -1
- ark_sdk_python/models/services/identity/roles/ark_identity_delete_role.py +2 -2
- ark_sdk_python/models/services/identity/roles/ark_identity_list_role_members.py +2 -2
- ark_sdk_python/models/services/identity/roles/ark_identity_update_role.py +4 -4
- ark_sdk_python/models/services/identity/users/__init__.py +4 -0
- ark_sdk_python/models/services/identity/users/ark_identity_create_user.py +5 -3
- ark_sdk_python/models/services/identity/users/ark_identity_delete_user.py +9 -3
- ark_sdk_python/models/services/identity/users/ark_identity_delete_users.py +9 -0
- ark_sdk_python/models/services/identity/users/ark_identity_update_user.py +6 -6
- ark_sdk_python/models/services/identity/users/ark_identity_user.py +5 -5
- ark_sdk_python/models/services/identity/users/ark_identity_user_by_id.py +7 -0
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account.py +27 -18
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_account_credentials.py +3 -6
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_accounts_filter.py +6 -6
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_add_account.py +3 -5
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_get_account_credentials.py +5 -5
- ark_sdk_python/models/services/pcloud/accounts/ark_pcloud_update_account.py +11 -9
- ark_sdk_python/models/services/pcloud/applications/__init__.py +37 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_add_application.py +22 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_add_application_auth_method.py +37 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application.py +17 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application_auth_method.py +49 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_application_auth_methods_filter.py +11 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_applications_filter.py +12 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_applications_stats.py +15 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_delete_application.py +7 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_delete_application_auth_method.py +8 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_get_application.py +7 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_get_application_auth_method.py +8 -0
- ark_sdk_python/models/services/pcloud/applications/ark_pcloud_list_application_auth_methods.py +7 -0
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicate_target_platform.py +1 -1
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_duplicated_target_platform_info.py +1 -1
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platform.py +4 -4
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_platforms_filter.py +3 -3
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platform.py +37 -27
- ark_sdk_python/models/services/pcloud/platforms/ark_pcloud_target_platforms_filter.py +10 -10
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_add_safe_member.py +3 -3
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe.py +9 -9
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safe_members_filter.py +5 -5
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_safes_filters.py +4 -4
- ark_sdk_python/models/services/pcloud/safes/ark_pcloud_update_safe_member.py +5 -3
- ark_sdk_python/models/services/sia/access/__init__.py +13 -0
- ark_sdk_python/models/services/sia/access/ark_sia_access_workspace_type_serializer.py +18 -0
- ark_sdk_python/models/services/sia/access/ark_sia_connector_setup_script.py +14 -0
- ark_sdk_python/models/services/sia/access/ark_sia_get_connector_setup_script.py +36 -0
- ark_sdk_python/models/services/sia/access/ark_sia_install_connector.py +41 -0
- ark_sdk_python/models/services/sia/access/ark_sia_uninstall_connector.py +22 -0
- ark_sdk_python/models/services/sia/certificates/__init__.py +25 -0
- ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_certificate.py → sia/certificates/ark_sia_certificates_certificate.py} +12 -12
- ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_delete_certificate.py → sia/certificates/ark_sia_certificates_delete_certificate.py} +1 -1
- ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_filter.py → sia/certificates/ark_sia_certificates_filter.py} +1 -1
- ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_get_certificate.py → sia/certificates/ark_sia_certificates_get_certificate.py} +1 -1
- ark_sdk_python/models/services/{dpa/certificates/ark_dpa_certificates_update_certificate.py → sia/certificates/ark_sia_certificates_update_certificate.py} +3 -3
- ark_sdk_python/models/services/sia/db/__init__.py +20 -0
- ark_sdk_python/models/services/{dpa/db/ark_dpa_db_assets_type.py → sia/db/ark_sia_db_assets_type.py} +1 -1
- ark_sdk_python/models/services/{dpa/db/ark_dpa_db_base_execution.py → sia/db/ark_sia_db_base_execution.py} +2 -2
- 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
- ark_sdk_python/models/services/{dpa/db/ark_dpa_db_generated_assets.py → sia/db/ark_sia_db_generated_assets.py} +1 -1
- ark_sdk_python/models/services/sia/db/ark_sia_db_mysql_execution.py +7 -0
- 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
- ark_sdk_python/models/services/sia/db/ark_sia_db_proxy_fullchain_generate_assets.py +5 -0
- ark_sdk_python/models/services/sia/db/ark_sia_db_psql_execution.py +7 -0
- ark_sdk_python/models/services/sia/k8s/__init__.py +3 -0
- ark_sdk_python/models/services/{dpa/k8s/ark_dpa_k8s_generate_kubeconfig.py → sia/k8s/ark_sia_k8s_generate_kubeconfig.py} +1 -1
- ark_sdk_python/models/services/sia/policies/common/__init__.py +34 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_add_policy.py +18 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_authorization_rule.py +9 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_authorization_rule_extended.py +12 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_connection_information.py +33 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policies_filter.py +11 -0
- 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
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy.py +15 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy_list_item.py +18 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_policy_list_item_extanded.py +16 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_base_update_policy.py +24 -0
- ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_get_policy.py → sia/policies/common/ark_sia_delete_policy.py} +6 -5
- ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_delete_policy.py → sia/policies/common/ark_sia_get_policy.py} +6 -5
- ark_sdk_python/models/services/{dpa/policies/common/ark_dpa_rule_status.py → sia/policies/common/ark_sia_rule_status.py} +1 -1
- ark_sdk_python/models/services/sia/policies/common/ark_sia_update_policy_status.py +20 -0
- ark_sdk_python/models/services/sia/policies/common/ark_sia_user_data.py +17 -0
- ark_sdk_python/models/services/sia/policies/db/__init__.py +77 -0
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_add_policy.py +17 -0
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_authorization_rule.py +13 -0
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_connection_data.py +83 -0
- ark_sdk_python/models/services/{dpa/policies/db/ark_dpa_db_enums.py → sia/policies/db/ark_sia_db_enums.py} +4 -5
- 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
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_policies_stats.py +31 -0
- 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
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_policy.py +13 -0
- 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
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_providers.py +64 -0
- ark_sdk_python/models/services/sia/policies/db/ark_sia_db_update_policy.py +17 -0
- ark_sdk_python/models/services/sia/policies/vm/__init__.py +63 -0
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_add_policy.py +40 -0
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_authorization_rule.py +44 -0
- 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
- 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
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policies_filter_by_query.py +32 -0
- 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
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policies_stats.py +28 -0
- 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
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policy.py +42 -0
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_policy_list_item.py +29 -0
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_providers.py +74 -0
- ark_sdk_python/models/services/sia/policies/vm/ark_sia_vm_update_policy.py +37 -0
- ark_sdk_python/models/services/sia/secrets/db/__init__.py +29 -0
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_add_secret.py +37 -0
- 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
- 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
- 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
- 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
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secret_metadata.py +35 -0
- 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
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_secrets_filter.py +16 -0
- 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
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_store_descriptor.py +11 -0
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_store_type.py +18 -0
- ark_sdk_python/models/services/sia/secrets/db/ark_sia_db_update_secret.py +41 -0
- ark_sdk_python/models/services/sia/secrets/db/secret_links/__init__.py +5 -0
- ark_sdk_python/models/services/sia/secrets/db/secret_links/ark_sia_db_pam_account_secret_link.py +10 -0
- ark_sdk_python/models/services/sia/secrets/db/secrets_data/__init__.py +19 -0
- ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_atlas_access_keys_secret_data.py +15 -0
- ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_iam_user_secret_data.py +19 -0
- ark_sdk_python/models/services/sia/secrets/db/secrets_data/ark_sia_db_user_password_secret_data.py +15 -0
- ark_sdk_python/models/services/sia/secrets/vm/__init__.py +23 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_add_secret.py +17 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_change_secret.py +16 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_delete_secret.py +7 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_get_secret.py +7 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret.py +36 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_error.py +11 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_info.py +15 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secret_type.py +6 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secrets_filter.py +13 -0
- ark_sdk_python/models/services/sia/secrets/vm/ark_sia_vm_secrets_stats.py +13 -0
- ark_sdk_python/models/services/sia/sso/__init__.py +29 -0
- 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
- 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
- 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
- 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
- ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_short_lived_rdp_file.py +14 -0
- ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_ssh_key.py +9 -0
- ark_sdk_python/models/services/sia/sso/ark_sia_sso_get_token_info.py +11 -0
- ark_sdk_python/models/services/sia/sso/ark_sia_sso_token_info.py +9 -0
- ark_sdk_python/models/services/sia/sso/ark_sia_sso_token_type.py +9 -0
- ark_sdk_python/models/services/sia/workspaces/db/__init__.py +53 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_add_database.py +65 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_auth_method.py +66 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database.py +62 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database_info.py +46 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_database_target_service.py +18 -0
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_databases_filter.py +25 -0
- 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
- 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
- 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
- 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
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_provider.py +158 -0
- ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_tag.py → sia/workspaces/db/ark_sia_db_tag.py} +3 -3
- ark_sdk_python/models/services/sia/workspaces/db/ark_sia_db_update_database.py +73 -0
- ark_sdk_python/models/services/{dpa/workspaces/db/ark_dpa_db_warning.py → sia/workspaces/db/ark_sia_db_warning.py} +1 -1
- ark_sdk_python/models/services/sia/workspaces/targetsets/__init__.py +33 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_add_target_set.py +19 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_add_target_sets.py +15 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_delete_target_sets.py +9 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_bulk_target_set_response.py +15 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_delete_target_set.py +7 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_get_target_set.py +7 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_set.py +19 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_set_type.py +7 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_sets_filter.py +11 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_target_sets_stats.py +11 -0
- ark_sdk_python/models/services/sia/workspaces/targetsets/ark_sia_update_target_set.py +18 -0
- ark_sdk_python/models/services/sm/ark_sm_session.py +51 -16
- ark_sdk_python/models/services/sm/ark_sm_session_activity.py +6 -6
- ark_sdk_python/models/services/sm/ark_sm_sessions_filter.py +6 -5
- ark_sdk_python/models/services/sm/ark_sm_sessions_stats.py +31 -23
- ark_sdk_python/services/cmgr/__init__.py +3 -0
- ark_sdk_python/services/cmgr/ark_cmgr_service.py +570 -0
- ark_sdk_python/services/identity/ark_identity_api.py +12 -0
- ark_sdk_python/services/identity/common/ark_identity_base_service.py +7 -1
- ark_sdk_python/services/identity/connectors/__init__.py +3 -0
- ark_sdk_python/services/identity/connectors/ark_identity_connectors_service.py +120 -0
- ark_sdk_python/services/identity/directories/ark_identity_directories_service.py +6 -6
- ark_sdk_python/services/identity/policies/ark_identity_policies_service.py +7 -8
- ark_sdk_python/services/identity/roles/ark_identity_roles_service.py +4 -4
- ark_sdk_python/services/identity/users/ark_identity_users_service.py +73 -6
- ark_sdk_python/services/pcloud/accounts/ark_pcloud_accounts_service.py +16 -15
- ark_sdk_python/services/pcloud/applications/__init__.py +3 -0
- ark_sdk_python/services/pcloud/applications/ark_pcloud_applications_service.py +320 -0
- ark_sdk_python/services/pcloud/ark_pcloud_api.py +12 -0
- ark_sdk_python/services/pcloud/common/ark_pcloud_base_service.py +15 -0
- ark_sdk_python/services/pcloud/platforms/ark_pcloud_platforms_service.py +8 -9
- ark_sdk_python/services/pcloud/safes/ark_pcloud_safes_service.py +18 -19
- ark_sdk_python/services/sia/__init__.py +3 -0
- ark_sdk_python/services/sia/access/__init__.py +3 -0
- ark_sdk_python/services/sia/access/ark_sia_access_service.py +262 -0
- ark_sdk_python/services/sia/ark_sia_api.py +137 -0
- ark_sdk_python/services/sia/certificates/__init__.py +3 -0
- ark_sdk_python/services/{dpa/certificates/ark_dpa_certificates_service.py → sia/certificates/ark_sia_certificates_service.py} +51 -38
- ark_sdk_python/services/sia/db/__init__.py +5 -0
- ark_sdk_python/services/{dpa/db/ark_dpa_db_service.py → sia/db/ark_sia_db_service.py} +47 -40
- ark_sdk_python/services/sia/k8s/__init__.py +3 -0
- ark_sdk_python/services/{dpa/k8s/ark_dpa_k8s_service.py → sia/k8s/ark_sia_k8s_service.py} +15 -8
- ark_sdk_python/services/sia/policies/db/__init__.py +3 -0
- ark_sdk_python/services/{dpa/policies/db/ark_dpa_db_policies_service.py → sia/policies/db/ark_sia_db_policies_service.py} +57 -49
- ark_sdk_python/services/sia/policies/vm/__init__.py +3 -0
- ark_sdk_python/services/sia/policies/vm/ark_sia_vm_policies_service.py +383 -0
- ark_sdk_python/services/sia/secrets/db/__init__.py +3 -0
- ark_sdk_python/services/{dpa/secrets/db/ark_dpa_db_secrets_service.py → sia/secrets/db/ark_sia_db_secrets_service.py} +70 -63
- ark_sdk_python/services/sia/secrets/vm/__init__.py +3 -0
- ark_sdk_python/services/sia/secrets/vm/ark_sia_vm_secrets_service.py +252 -0
- ark_sdk_python/services/sia/sso/__init__.py +5 -0
- ark_sdk_python/services/{dpa/sso/ark_dpa_sso_service.py → sia/sso/ark_sia_sso_service.py} +128 -55
- ark_sdk_python/services/sia/workspaces/db/__init__.py +3 -0
- ark_sdk_python/services/{dpa/workspaces/db/ark_dpa_db_workspace_service.py → sia/workspaces/db/ark_sia_db_workspace_service.py} +68 -61
- ark_sdk_python/services/sia/workspaces/targetsets/__init__.py +3 -0
- ark_sdk_python/services/sia/workspaces/targetsets/ark_sia_target_sets_workspace_service.py +247 -0
- ark_sdk_python/services/sm/ark_sm_service.py +13 -12
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.0.dist-info}/LICENSE.txt +1 -1
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.0.dist-info}/METADATA +119 -77
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.0.dist-info}/NOTICES.md +623 -32
- ark_sdk_python-2.0.0.dist-info/RECORD +485 -0
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.0.dist-info}/WHEEL +1 -1
- ark_sdk_python/cli_services/dpa/db/__init__.py +0 -3
- ark_sdk_python/cli_services/dpa/vm/__init__.py +0 -3
- ark_sdk_python/examples/create_dpa_db_environment.py +0 -88
- ark_sdk_python/models/actions/services/ark_dpa_exec_action_consts.py +0 -170
- ark_sdk_python/models/cli_services/dpa/policies_editor/common/__init__.py +0 -25
- ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_edit_policies.py +0 -9
- ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_get_policies_status.py +0 -9
- ark_sdk_python/models/cli_services/dpa/policies_editor/common/ark_dpa_remove_policies.py +0 -9
- ark_sdk_python/models/cli_services/dpa/policies_editor/db/__init__.py +0 -3
- ark_sdk_python/models/cli_services/dpa/policies_editor/db/ark_dpa_db_generate_policy.py +0 -12
- ark_sdk_python/models/cli_services/dpa/policies_editor/vm/__init__.py +0 -3
- ark_sdk_python/models/cli_services/dpa/policies_editor/vm/ark_dpa_vm_generate_policy.py +0 -11
- ark_sdk_python/models/services/dpa/certificates/__init__.py +0 -25
- ark_sdk_python/models/services/dpa/db/__init__.py +0 -20
- ark_sdk_python/models/services/dpa/db/ark_dpa_db_mysql_execution.py +0 -7
- ark_sdk_python/models/services/dpa/db/ark_dpa_db_proxy_fullchain_generate_assets.py +0 -5
- ark_sdk_python/models/services/dpa/db/ark_dpa_db_psql_execution.py +0 -7
- ark_sdk_python/models/services/dpa/k8s/__init__.py +0 -3
- ark_sdk_python/models/services/dpa/policies/common/__init__.py +0 -34
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_add_policy.py +0 -14
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_authorization_rule.py +0 -9
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_connection_information.py +0 -30
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policies_filter.py +0 -11
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policy.py +0 -15
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_policy_list_item.py +0 -15
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_base_update_policy.py +0 -23
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_update_policy_status.py +0 -19
- ark_sdk_python/models/services/dpa/policies/common/ark_dpa_user_data.py +0 -16
- ark_sdk_python/models/services/dpa/policies/db/__init__.py +0 -70
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_add_policy.py +0 -17
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_authorization_rule.py +0 -13
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_connection_data.py +0 -79
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_policies_stats.py +0 -26
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_policy.py +0 -13
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_providers.py +0 -64
- ark_sdk_python/models/services/dpa/policies/db/ark_dpa_db_update_policy.py +0 -17
- ark_sdk_python/models/services/dpa/policies/vm/__init__.py +0 -63
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_add_policy.py +0 -34
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_authorization_rule.py +0 -32
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policies_stats.py +0 -23
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policy.py +0 -29
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_policy_list_item.py +0 -24
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_providers.py +0 -61
- ark_sdk_python/models/services/dpa/policies/vm/ark_dpa_vm_update_policy.py +0 -29
- ark_sdk_python/models/services/dpa/secrets/db/__init__.py +0 -29
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_add_secret.py +0 -40
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secret_metadata.py +0 -35
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_secrets_filter.py +0 -16
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_descriptor.py +0 -11
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_store_type.py +0 -18
- ark_sdk_python/models/services/dpa/secrets/db/ark_dpa_db_update_secret.py +0 -43
- ark_sdk_python/models/services/dpa/secrets/db/secret_links/__init__.py +0 -5
- ark_sdk_python/models/services/dpa/secrets/db/secret_links/ark_dpa_db_pam_account_secret_link.py +0 -10
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/__init__.py +0 -19
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_atlas_access_keys_secret_data.py +0 -16
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_iam_user_secret_data.py +0 -20
- ark_sdk_python/models/services/dpa/secrets/db/secrets_data/ark_dpa_db_user_password_secret_data.py +0 -18
- ark_sdk_python/models/services/dpa/sso/__init__.py +0 -21
- ark_sdk_python/models/services/dpa/sso/ark_dpa_sso_get_short_lived_rdp_file.py +0 -14
- ark_sdk_python/models/services/dpa/workspaces/db/__init__.py +0 -51
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_add_database.py +0 -51
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_auth_method.py +0 -47
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database.py +0 -48
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_database_info.py +0 -37
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_databases_filter.py +0 -23
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_provider.py +0 -96
- ark_sdk_python/models/services/dpa/workspaces/db/ark_dpa_db_update_database.py +0 -58
- ark_sdk_python/services/dpa/__init__.py +0 -3
- ark_sdk_python/services/dpa/ark_dpa_api.py +0 -101
- ark_sdk_python/services/dpa/certificates/__init__.py +0 -3
- ark_sdk_python/services/dpa/db/__init__.py +0 -5
- ark_sdk_python/services/dpa/k8s/__init__.py +0 -3
- ark_sdk_python/services/dpa/policies/db/__init__.py +0 -3
- ark_sdk_python/services/dpa/policies/vm/__init__.py +0 -3
- ark_sdk_python/services/dpa/policies/vm/ark_dpa_vm_policies_service.py +0 -281
- ark_sdk_python/services/dpa/secrets/db/__init__.py +0 -3
- ark_sdk_python/services/dpa/sso/__init__.py +0 -5
- ark_sdk_python/services/dpa/workspaces/db/__init__.py +0 -3
- ark_sdk_python-1.2.1.dist-info/RECORD +0 -382
- /ark_sdk_python/cli_services/{dpa → sia}/__init__.py +0 -0
- /ark_sdk_python/cli_services/{dpa → sia}/common/__init__.py +0 -0
- /ark_sdk_python/models/cli_services/{dpa → sia}/__init__.py +0 -0
- /ark_sdk_python/models/cli_services/{dpa → sia}/policies_editor/__init__.py +0 -0
- /ark_sdk_python/models/services/{dpa → sia}/__init__.py +0 -0
- /ark_sdk_python/models/services/{dpa → sia}/policies/__init__.py +0 -0
- /ark_sdk_python/models/services/{dpa → sia}/secrets/__init__.py +0 -0
- /ark_sdk_python/models/services/{dpa → sia}/workspaces/__init__.py +0 -0
- /ark_sdk_python/services/{dpa → sia}/policies/__init__.py +0 -0
- /ark_sdk_python/services/{dpa → sia}/secrets/__init__.py +0 -0
- /ark_sdk_python/services/{dpa → sia}/workspaces/__init__.py +0 -0
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.0.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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
157
|
+
ArkAuthProfile.model_json_schema(by_alias=False),
|
|
154
158
|
args,
|
|
155
159
|
ignored_keys=ignored_keys,
|
|
156
|
-
existing_values=auth_profile.
|
|
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].
|
|
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.
|
|
178
|
+
method_settings.model_json_schema(by_alias=False),
|
|
175
179
|
args,
|
|
176
|
-
existing_values=method_settings.
|
|
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.
|
|
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.
|
|
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].
|
|
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.
|
|
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.
|
|
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
|
-
[
|
|
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
|
-
[
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
160
|
+
answers={'profile_edit': profile.model_dump_json(indent=4)},
|
|
160
161
|
)
|
|
161
|
-
edited_profile = ArkProfile.
|
|
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 '
|
|
341
|
-
definitions = schema['
|
|
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
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
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']
|
|
@@ -440,6 +530,26 @@ class ArkPydanticArgparse:
|
|
|
440
530
|
prop_type, snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
|
|
441
531
|
)
|
|
442
532
|
else:
|
|
533
|
+
local_schema = schema['properties'][prop_name]
|
|
534
|
+
if 'properties' not in local_schema.keys():
|
|
535
|
+
prop_name = local_schema['title']
|
|
536
|
+
snake_prop_name = re.sub(r'(?<!^)(?=[A-Z])', '_', prop_name).lower().replace('_', '-')
|
|
537
|
+
is_required = False
|
|
538
|
+
if prop_name in required:
|
|
539
|
+
is_required = True
|
|
540
|
+
default = None
|
|
541
|
+
if 'default' in schema.keys():
|
|
542
|
+
default = local_schema['default']
|
|
543
|
+
desc = ''
|
|
544
|
+
if 'description' in schema.keys():
|
|
545
|
+
desc = local_schema['description']
|
|
546
|
+
enum = None
|
|
547
|
+
if 'enum' in local_schema:
|
|
548
|
+
enum = local_schema['enum']
|
|
549
|
+
ArkPydanticArgparse.__populate_type(
|
|
550
|
+
local_schema['type'], snake_prop_name, default, is_required, parser, prefix, desc, ignore_keys, enum, key_prefix
|
|
551
|
+
)
|
|
552
|
+
continue
|
|
443
553
|
ArkPydanticArgparse.schema_to_argparse(
|
|
444
554
|
schema['properties'][prop_name],
|
|
445
555
|
parser,
|
|
@@ -489,8 +599,8 @@ class ArkPydanticArgparse:
|
|
|
489
599
|
key_prefix = key_prefix + '_'
|
|
490
600
|
if 'properties' not in schema:
|
|
491
601
|
return {}
|
|
492
|
-
if not definitions and '
|
|
493
|
-
definitions = schema['
|
|
602
|
+
if not definitions and '$defs' in schema.keys():
|
|
603
|
+
definitions = schema['$defs']
|
|
494
604
|
elif not definitions:
|
|
495
605
|
definitions = {}
|
|
496
606
|
if not override_aliases:
|
|
@@ -549,8 +659,10 @@ class ArkPydanticArgparse:
|
|
|
549
659
|
for key, value in loaded_args_map.items():
|
|
550
660
|
first, *others = key.split('_')
|
|
551
661
|
file_args_map[''.join([first.lower(), *map(str.title, others)])] = value
|
|
552
|
-
|
|
553
|
-
|
|
662
|
+
# Also add the snake case for models which are not camel based
|
|
663
|
+
file_args_map[key] = value
|
|
664
|
+
if '$defs' in schema.keys():
|
|
665
|
+
definitions = schema['$defs']
|
|
554
666
|
for arg_key, arg_val in args.__dict__.items():
|
|
555
667
|
if ignored_keys and arg_key in ignored_keys:
|
|
556
668
|
continue
|
|
@@ -578,7 +690,6 @@ class ArkPydanticArgparse:
|
|
|
578
690
|
"""
|
|
579
691
|
Converts the given schema and args into a finalized dictionary.
|
|
580
692
|
The function interacts with the user and requests args that were not provided in the CLI.
|
|
581
|
-
|
|
582
693
|
Returns a dict that combines the schema with the user inputs.
|
|
583
694
|
|
|
584
695
|
Args:
|
|
@@ -658,15 +769,15 @@ class ArkPydanticArgparse:
|
|
|
658
769
|
if key_prefix:
|
|
659
770
|
new_vals = {k.replace(f'{key_prefix}_', ''): v for k, v in new_vals.items()}
|
|
660
771
|
if isinstance(new_vals, BaseModel):
|
|
661
|
-
new_vals = new_vals.
|
|
772
|
+
new_vals = new_vals.model_dump(by_alias=by_alias)
|
|
662
773
|
new_vals = {k: v for k, v in new_vals.items() if v is not None}
|
|
663
|
-
vals_dict = existing_model.
|
|
774
|
+
vals_dict = existing_model.model_dump(by_alias=by_alias)
|
|
664
775
|
if ignore_keys:
|
|
665
776
|
new_vals = {k: v for k, v in new_vals.items() if k not in ignore_keys}
|
|
666
777
|
vals_dict.update(new_vals)
|
|
667
778
|
if defaults:
|
|
668
779
|
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.
|
|
780
|
+
return model.model_validate(vals_dict)
|
|
670
781
|
|
|
671
782
|
@staticmethod
|
|
672
783
|
def schema_to_simple_arguments(
|
|
@@ -683,8 +794,8 @@ class ArkPydanticArgparse:
|
|
|
683
794
|
Dict[str, TaskInputParameter]: _description_
|
|
684
795
|
"""
|
|
685
796
|
definitions: dict = None
|
|
686
|
-
if '
|
|
687
|
-
definitions = schema['
|
|
797
|
+
if '$defs' in schema.keys():
|
|
798
|
+
definitions = schema['$defs']
|
|
688
799
|
parser = argparse.ArgumentParser()
|
|
689
800
|
ArkPydanticArgparse.schema_to_argparse(schema, parser, ignore_keys=ignore_keys)
|
|
690
801
|
input_args = {}
|