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.
- 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 +145 -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.1.dist-info}/LICENSE.txt +1 -1
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/METADATA +119 -77
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.dist-info}/NOTICES.md +623 -32
- ark_sdk_python-2.0.1.dist-info/RECORD +485 -0
- {ark_sdk_python-1.2.1.dist-info → ark_sdk_python-2.0.1.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.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.
|
|
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']
|
|
@@ -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 '
|
|
493
|
-
definitions = schema['
|
|
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
|
-
|
|
553
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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 '
|
|
687
|
-
definitions = schema['
|
|
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 = {}
|