js7-client-python 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.
- js7/__init__.py +8 -0
- js7/api/joc/http/v_2_8_2/agent/cluster/confirm_node_loss.py +36 -0
- js7/api/joc/http/v_2_8_2/agent/cluster/switchover.py +36 -0
- js7/api/joc/http/v_2_8_2/agent/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/agents.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/cluster/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/export.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/import.py +74 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/reset.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/inventory/store.py +36 -0
- js7/api/joc/http/v_2_8_2/agents/reset.py +36 -0
- js7/api/joc/http/v_2_8_2/authentication/auth.py +32 -0
- js7/api/joc/http/v_2_8_2/authentication/joc_cockpit_permissions.py +28 -0
- js7/api/joc/http/v_2_8_2/authentication/login.py +35 -0
- js7/api/joc/http/v_2_8_2/authentication/logout.py +28 -0
- js7/api/joc/http/v_2_8_2/configuration/configuration.py +36 -0
- js7/api/joc/http/v_2_8_2/configuration/save.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/abort.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/abort_and_restart.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/appoint_nodes.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/confirm_node_loss.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/cluster/switchover.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/components.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/controller.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/register.py +42 -0
- js7/api/joc/http/v_2_8_2/controller/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/terminate.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/test.py +36 -0
- js7/api/joc/http/v_2_8_2/controller/unregister.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/cancel.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/copy.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/generate.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/modify.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/orders.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/orders/submit.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/calendar.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/dates.py +36 -0
- js7/api/joc/http/v_2_8_2/daily_plan/projections/recreate.py +28 -0
- js7/api/joc/http/v_2_8_2/daily_plan/submissions/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/change_password.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/permissions.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/account/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/accounts.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/disable.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/enable.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/accounts/reset_password.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_account/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_accounts/blocked_accounts.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/blocked_accounts/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folder/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folder/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/folders.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/folders/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/identity_service.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/identity_service/store.py +42 -0
- js7/api/joc/http/v_2_8_2/iam/identity_services/identity_services.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permission/permission.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permission/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/permissions.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/permissions/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/rename.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/role.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/role/store.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/roles/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/iam/roles/roles.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/changes/changes.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/dependencies.py +33 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/deploy.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/import_deploy.py +66 -0
- js7/api/joc/http/v_2_8_2/inventory/deployment/revoke.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/export/export.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/export/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/import_objects.py +88 -0
- js7/api/joc/http/v_2_8_2/inventory/releasables/recall/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/releasables/recall/recall.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/release.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/remove/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/remove/remove.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/add.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/checkout.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/clone.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/commit.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/add.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/credentials.py +28 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/remove.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/pull.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/git/push.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/read.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/store.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/repository/update.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/revalidate/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/store.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/delete/delete.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/delete/folder.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/trash/restore.py +36 -0
- js7/api/joc/http/v_2_8_2/inventory/validate.py +42 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/run.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/cluster/switch_member.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/license.py +28 -0
- js7/api/joc/http/v_2_8_2/joc/proxies/restart.py +36 -0
- js7/api/joc/http/v_2_8_2/joc/version.py +28 -0
- js7/api/joc/http/v_2_8_2/joc/versions.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/add.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/cancel.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/confirm.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/continue.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/history.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/orders.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/remove_when_terminated.py +33 -0
- js7/api/joc/http/v_2_8_2/orders/resume.py +36 -0
- js7/api/joc/http/v_2_8_2/orders/suspend.py +36 -0
- js7/api/joc/http/v_2_8_2/settings/settings.py +28 -0
- js7/api/joc/http/v_2_8_2/settings/store.py +36 -0
- js7/api/joc/http/v_2_8_2/tasks/history.py +36 -0
- js7/api/joc/http/v_2_8_2/workflow/transition.py +36 -0
- js7/api/joc/http/v_2_8_2/workflow/workflow.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/resume.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/skip.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/stop.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/suspend.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/unskip.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/unstop.py +36 -0
- js7/api/joc/http/v_2_8_2/workflows/workflows.py +36 -0
- js7/api/joc/interface/dispatcher.py +76 -0
- js7/api/joc/interface/interface.py +8 -0
- js7/api/joc/interface/resolver.py +75 -0
- js7/client/action/agent/confirm_node_loss_agent_action.py +75 -0
- js7/client/action/agent/delete_subagent_action.py +77 -0
- js7/client/action/agent/delete_subagent_clusters_action.py +75 -0
- js7/client/action/agent/deploy_cluster_agents_action.py +75 -0
- js7/client/action/agent/deploy_standalone_agents_action.py +75 -0
- js7/client/action/agent/deploy_subagent_clusters_action.py +75 -0
- js7/client/action/agent/disable_standalone_agents_action.py +75 -0
- js7/client/action/agent/disable_subagents_action.py +75 -0
- js7/client/action/agent/enable_standalone_agents_action.py +75 -0
- js7/client/action/agent/enable_subagents_action.py +75 -0
- js7/client/action/agent/export_agents_action.py +101 -0
- js7/client/action/agent/get_agents_status_action.py +55 -0
- js7/client/action/agent/import_agents_action.py +139 -0
- js7/client/action/agent/remove_agent_action.py +79 -0
- js7/client/action/agent/reset_agents_action.py +79 -0
- js7/client/action/agent/reset_subagent_action.py +79 -0
- js7/client/action/agent/revoke_cluster_agents_action.py +75 -0
- js7/client/action/agent/revoke_standalone_agents_action.py +75 -0
- js7/client/action/agent/revoke_subagent_clusters_action.py +75 -0
- js7/client/action/agent/store_cluster_agents_action.py +99 -0
- js7/client/action/agent/store_standalone_agents_action.py +87 -0
- js7/client/action/agent/store_subagent_clusters_action.py +83 -0
- js7/client/action/agent/store_subagents_action.py +97 -0
- js7/client/action/agent/switchover_agent_action.py +75 -0
- js7/client/action/controller/appoint_nodes_controller_action.py +67 -0
- js7/client/action/controller/cancel_and_restart_controller_action.py +72 -0
- js7/client/action/controller/cancel_controller_action.py +71 -0
- js7/client/action/controller/confirm_cluster_node_loss_action.py +68 -0
- js7/client/action/controller/get_controller_components_action.py +41 -0
- js7/client/action/controller/get_controller_status_action.py +72 -0
- js7/client/action/controller/register_controller_action.py +93 -0
- js7/client/action/controller/restart_controller_action.py +72 -0
- js7/client/action/controller/switchover_controller_cluster_action.py +67 -0
- js7/client/action/controller/terminate_controller_action.py +72 -0
- js7/client/action/controller/test_controller_instance_action.py +65 -0
- js7/client/action/controller/unregister_controller_action.py +68 -0
- js7/client/action/daily_plan/cancel_orders_action.py +59 -0
- js7/client/action/daily_plan/copy_orders_action.py +108 -0
- js7/client/action/daily_plan/create_projections_action.py +24 -0
- js7/client/action/daily_plan/delete_orders_action.py +80 -0
- js7/client/action/daily_plan/delete_submissions_action.py +83 -0
- js7/client/action/daily_plan/generate_orders_action.py +121 -0
- js7/client/action/daily_plan/get_calendar_projections_action.py +59 -0
- js7/client/action/daily_plan/get_orders_action.py +70 -0
- js7/client/action/daily_plan/get_projection_dates_action.py +59 -0
- js7/client/action/daily_plan/modify_orders_action.py +130 -0
- js7/client/action/daily_plan/submit_orders_action.py +79 -0
- js7/client/action/helper/decrypt_action.py +82 -0
- js7/client/action/helper/encrypt_action.py +87 -0
- js7/client/action/iam/block_account_action.py +71 -0
- js7/client/action/iam/change_account_password_action.py +96 -0
- js7/client/action/iam/disable_accounts_action.py +75 -0
- js7/client/action/iam/enable_accounts_action.py +75 -0
- js7/client/action/iam/get_account_permissions_action.py +75 -0
- js7/client/action/iam/get_accounts_action.py +76 -0
- js7/client/action/iam/get_blocked_accounts_action.py +76 -0
- js7/client/action/iam/get_folder_permissions_action.py +112 -0
- js7/client/action/iam/get_identity_service_settings_action.py +70 -0
- js7/client/action/iam/get_identity_services_action.py +102 -0
- js7/client/action/iam/get_permissions_action.py +113 -0
- js7/client/action/iam/get_roles_action.py +57 -0
- js7/client/action/iam/remove_accounts_action.py +75 -0
- js7/client/action/iam/remove_folder_permissions_action.py +91 -0
- js7/client/action/iam/remove_identity_service_action.py +67 -0
- js7/client/action/iam/remove_permissions_action.py +88 -0
- js7/client/action/iam/remove_roles_action.py +75 -0
- js7/client/action/iam/rename_account_action.py +83 -0
- js7/client/action/iam/rename_folder_permissions_action.py +100 -0
- js7/client/action/iam/rename_identity_service_action.py +75 -0
- js7/client/action/iam/rename_permission_action.py +103 -0
- js7/client/action/iam/rename_role_action.py +83 -0
- js7/client/action/iam/reset_account_passwords_action.py +75 -0
- js7/client/action/iam/set_folder_permissions_action.py +96 -0
- js7/client/action/iam/set_permissions_action.py +91 -0
- js7/client/action/iam/store_account_action.py +69 -0
- js7/client/action/iam/store_identity_service_action.py +75 -0
- js7/client/action/iam/store_identity_service_settings_action.py +74 -0
- js7/client/action/iam/store_role_action.py +79 -0
- js7/client/action/iam/unblock_accounts_action.py +67 -0
- js7/client/action/inventory/deploy_configurations_action.py +138 -0
- js7/client/action/inventory/export_configurations_action.py +203 -0
- js7/client/action/inventory/export_folders_action.py +160 -0
- js7/client/action/inventory/get_change_dependencies_action.py +161 -0
- js7/client/action/inventory/get_changes_action.py +59 -0
- js7/client/action/inventory/get_git_credentials_action.py +29 -0
- js7/client/action/inventory/git_add_action.py +72 -0
- js7/client/action/inventory/git_checkout_action.py +88 -0
- js7/client/action/inventory/git_clone_action.py +84 -0
- js7/client/action/inventory/git_commit_action.py +80 -0
- js7/client/action/inventory/git_pull_action.py +72 -0
- js7/client/action/inventory/git_push_action.py +76 -0
- js7/client/action/inventory/import_configurations_action.py +153 -0
- js7/client/action/inventory/import_deploy_configurations_action.py +188 -0
- js7/client/action/inventory/read_from_local_repository_action.py +67 -0
- js7/client/action/inventory/recall_folder_action.py +89 -0
- js7/client/action/inventory/recall_released_configuration_action.py +75 -0
- js7/client/action/inventory/release_configuartions_action.py +89 -0
- js7/client/action/inventory/remove_configurations_action.py +77 -0
- js7/client/action/inventory/remove_configurations_from_trash_action.py +80 -0
- js7/client/action/inventory/remove_folder_action.py +67 -0
- js7/client/action/inventory/remove_folder_from_trash_action.py +69 -0
- js7/client/action/inventory/remove_git_credentials_action.py +53 -0
- js7/client/action/inventory/remove_repository_configuration_action.py +84 -0
- js7/client/action/inventory/restore_configuration_from_trash_action.py +84 -0
- js7/client/action/inventory/revalidate_folder_action.py +46 -0
- js7/client/action/inventory/revoke_configurations_action.py +86 -0
- js7/client/action/inventory/store_configuration_action.py +79 -0
- js7/client/action/inventory/store_git_credentials_action.py +99 -0
- js7/client/action/inventory/store_repository_configuration_action.py +124 -0
- js7/client/action/inventory/update_repository_configuration_action.py +85 -0
- js7/client/action/inventory/validate_configuration_action.py +58 -0
- js7/client/action/joc/get_components_versions_action.py +57 -0
- js7/client/action/joc/get_license_info_action.py +22 -0
- js7/client/action/joc/get_settings_action.py +19 -0
- js7/client/action/joc/get_version_action.py +17 -0
- js7/client/action/joc/restart_proxies_action.py +50 -0
- js7/client/action/joc/restart_service_action.py +74 -0
- js7/client/action/joc/run_service_action.py +74 -0
- js7/client/action/joc/store_settings_action.py +62 -0
- js7/client/action/joc/switch_over_action.py +89 -0
- js7/client/action/order/add_orders_action.py +115 -0
- js7/client/action/order/cancel_orders_action.py +93 -0
- js7/client/action/order/confirm_orders_action.py +86 -0
- js7/client/action/order/continue_orders_action.py +86 -0
- js7/client/action/order/get_order_history_action.py +84 -0
- js7/client/action/order/get_orders_action.py +83 -0
- js7/client/action/order/remove_terminated_orders_action.py +86 -0
- js7/client/action/order/resume_orders_action.py +102 -0
- js7/client/action/order/suspend_orders_action.py +97 -0
- js7/client/action/task/get_task_history_info_action.py +88 -0
- js7/client/action/workflow/get_workflow_versions_action.py +131 -0
- js7/client/action/workflow/resume_workflows_action.py +76 -0
- js7/client/action/workflow/set_workflow_version_as_current_action.py +86 -0
- js7/client/action/workflow/skip_job_instructions_action.py +83 -0
- js7/client/action/workflow/stop_job_instructions_action.py +83 -0
- js7/client/action/workflow/suspend_workflows_action.py +76 -0
- js7/client/action/workflow/unskip_job_instructions_action.py +83 -0
- js7/client/action/workflow/unstop_job_instructions_action.py +79 -0
- js7/client/auth/auth_provider.py +109 -0
- js7/client/auth/login.py +34 -0
- js7/client/auth/logout.py +22 -0
- js7/client/client.py +250 -0
- js7/client/context.py +40 -0
- js7/client/feature/agent/agent.py +26 -0
- js7/client/feature/agent/deploy.py +134 -0
- js7/client/feature/agent/manage.py +363 -0
- js7/client/feature/agent/operate.py +577 -0
- js7/client/feature/controller/controller.py +19 -0
- js7/client/feature/controller/manage.py +214 -0
- js7/client/feature/controller/operate.py +274 -0
- js7/client/feature/daily_plan/daily_plan.py +14 -0
- js7/client/feature/daily_plan/manage.py +179 -0
- js7/client/feature/daily_plan/operate.py +354 -0
- js7/client/feature/iam/iam.py +14 -0
- js7/client/feature/iam/manage.py +1311 -0
- js7/client/feature/inventory/inventory.py +13 -0
- js7/client/feature/inventory/manage.py +943 -0
- js7/client/feature/inventory/manage_repository.py +533 -0
- js7/client/feature/joc/joc.py +18 -0
- js7/client/feature/joc/manage.py +102 -0
- js7/client/feature/joc/operate.py +185 -0
- js7/client/feature/order/manage.py +79 -0
- js7/client/feature/order/operate.py +346 -0
- js7/client/feature/order/order.py +18 -0
- js7/client/feature/task/task.py +54 -0
- js7/client/feature/workflow/manage.py +54 -0
- js7/client/feature/workflow/operate.py +336 -0
- js7/client/feature/workflow/workflow.py +19 -0
- js7/java/lib/3rd-party/bcpg-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcpkix-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcprov-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/bcutil-jdk15to18-1.78.1.jar +0 -0
- js7/java/lib/3rd-party/commons-io-2.15.1.jar +0 -0
- js7/java/lib/3rd-party/commons-lang3-3.14.0.jar +0 -0
- js7/java/lib/3rd-party/jackson-core-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jackson-databind-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jackson-dataformat-xml-2.14.2.jar +0 -0
- js7/java/lib/3rd-party/jakarta.annotation-api-2.1.1.jar +0 -0
- js7/java/lib/3rd-party/javax.activation-api-1.2.0.jar +0 -0
- js7/java/lib/3rd-party/jaxb-api-2.4.0-b180830.0359.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-api-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-core-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-slf4j2-impl-2.23.1.jar +0 -0
- js7/java/lib/3rd-party/org.slf4j.slf4j-api-2.0.13.jar +0 -0
- js7/java/lib/3rd-party/stax2-api-4.2.1.jar +0 -0
- js7/java/lib/3rd-party/woodstox-core-6.5.0.jar +0 -0
- js7/java/lib/sos/sos-commons-encryption-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-commons-exception-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-commons-sign-2.7.3.jar +0 -0
- js7/java/lib/sos/sos-webservices-json-2.7.3.jar +0 -0
- js7/model/__init__.py +132 -0
- js7/model/configuration/auth_configuration.py +24 -0
- js7/model/configuration/client_configuration.py +6 -0
- js7/model/configuration/http_configuration.py +10 -0
- js7/model/error/http/joc_exceptions.py +151 -0
- js7/model/private/api/endpoint.py +30 -0
- js7/model/private/http/joc/joc_v_2_8_2.py +3666 -0
- js7/model/public/client/common/__init__.py +27 -0
- js7/model/public/client/common/accounts.py +21 -0
- js7/model/public/client/common/audit_log.py +8 -0
- js7/model/public/client/common/changes.py +18 -0
- js7/model/public/client/common/configurations.py +53 -0
- js7/model/public/client/common/cycle.py +12 -0
- js7/model/public/client/common/git_credentials.py +12 -0
- js7/model/public/client/common/identity_service.py +14 -0
- js7/model/public/client/common/schedule_time.py +50 -0
- js7/model/public/client/common/store_agents.py +96 -0
- js7/model/public/client/enum/__init__.py +19 -0
- js7/model/public/client/enum/object_types.py +48 -0
- js7/model/public/client/enum/operation_type.py +11 -0
- js7/model/public/client/enum/order_priority.py +9 -0
- js7/model/public/client/filter/__init__.py +35 -0
- js7/model/public/client/filter/daily_plan_order_filters.py +255 -0
- js7/model/public/client/filter/element/__init__.py +3 -0
- js7/model/public/client/filter/element/folder.py +6 -0
- js7/model/public/client/filter/element/workflow_id.py +10 -0
- js7/model/public/client/filter/export_filter.py +52 -0
- js7/model/public/client/filter/export_folders_filter.py +34 -0
- js7/model/public/client/filter/get_order_filter.py +59 -0
- js7/model/public/client/filter/order_history_filter.py +113 -0
- js7/model/public/client/filter/resume_order_filter.py +45 -0
- js7/model/public/client/filter/suspend_order_filter.py +44 -0
- js7/model/public/client/filter/tasks_filter.py +50 -0
- js7/model/public/client/input/__init__.py +2 -0
- js7/model/public/client/input/add_order.py +50 -0
- js7/service/http_service.py +206 -0
- js7/util/bytes_converter/bytes_to_archive_bytes.py +52 -0
- js7/util/bytes_converter/bytes_to_file.py +12 -0
- js7/util/bytes_converter/files_to_bytes.py +52 -0
- js7/util/bytes_converter/read_bytes_archive_files_to_bytes.py +69 -0
- js7/util/bytes_converter/sign_to_bytes.py +106 -0
- js7/util/check_matching_version.py +20 -0
- js7/util/detect_archive_type.py +37 -0
- js7/util/str_converter/order_id_to_order_name.py +5 -0
- js7/validator/http/joc_http_status_validator.py +155 -0
- js7_client_python-2.0.1.0.dist-info/LICENSE +674 -0
- js7_client_python-2.0.1.0.dist-info/METADATA +763 -0
- js7_client_python-2.0.1.0.dist-info/RECORD +389 -0
- js7_client_python-2.0.1.0.dist-info/WHEEL +5 -0
- js7_client_python-2.0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
AccountNamesFilter as AccountNamesFilter_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def reset_account_passwords_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
identity_service_name: str,
|
|
19
|
+
account_names: List[str],
|
|
20
|
+
audit_log: Optional[AuditLog]
|
|
21
|
+
) -> bool:
|
|
22
|
+
|
|
23
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
24
|
+
request_data = _build_v_2_8_2_request(
|
|
25
|
+
identity_service_name=identity_service_name,
|
|
26
|
+
account_names=account_names,
|
|
27
|
+
audit_log=audit_log
|
|
28
|
+
)
|
|
29
|
+
else:
|
|
30
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
31
|
+
|
|
32
|
+
# Calls the dispatcher for the matching JOC version
|
|
33
|
+
result = context.joc_api.dispatch(endpoint_id="iam/accounts/resetpassword", call=EndpointCall(
|
|
34
|
+
http_service=context.http_service,
|
|
35
|
+
access_token=context.auth_provider.login(),
|
|
36
|
+
payload=request_data,
|
|
37
|
+
options=None,
|
|
38
|
+
))
|
|
39
|
+
|
|
40
|
+
if isinstance(result, OK_V_2_8_2):
|
|
41
|
+
return bool(result.ok)
|
|
42
|
+
|
|
43
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
44
|
+
|
|
45
|
+
#---------------------#
|
|
46
|
+
# Build 2.8.2 request #
|
|
47
|
+
#---------------------#
|
|
48
|
+
def _build_v_2_8_2_request(
|
|
49
|
+
*,
|
|
50
|
+
identity_service_name: str,
|
|
51
|
+
account_names: List[str],
|
|
52
|
+
audit_log: Optional[AuditLog]
|
|
53
|
+
) -> AccountNamesFilter_V_2_8_2:
|
|
54
|
+
|
|
55
|
+
# Validate: identity_service_name
|
|
56
|
+
if not identity_service_name:
|
|
57
|
+
raise ValueError("'identity_service_name' is required.")
|
|
58
|
+
|
|
59
|
+
# Validate: account_name
|
|
60
|
+
if not account_names:
|
|
61
|
+
raise ValueError("At least one account name in 'account_names' is required.")
|
|
62
|
+
|
|
63
|
+
# Build: audit_log
|
|
64
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
65
|
+
ticket_link=audit_log.ticket_link,
|
|
66
|
+
comment=audit_log.comment,
|
|
67
|
+
time_spent=audit_log.time_spent
|
|
68
|
+
) if audit_log else None
|
|
69
|
+
|
|
70
|
+
# Result
|
|
71
|
+
return AccountNamesFilter_V_2_8_2(
|
|
72
|
+
identity_service_name=identity_service_name,
|
|
73
|
+
account_names=account_names,
|
|
74
|
+
audit_log=res_audit_log
|
|
75
|
+
)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.public.client.filter.element.folder import Folder
|
|
6
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
9
|
+
OK as OK_V_2_8_2,
|
|
10
|
+
Folders as Folders_V_2_8_2,
|
|
11
|
+
Folder as Folder_V_2_8_2
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from ....util.check_matching_version import check_matching_version
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def set_folder_permissions_action(
|
|
18
|
+
*,
|
|
19
|
+
context: Context,
|
|
20
|
+
identity_service_name: str,
|
|
21
|
+
role_name: str,
|
|
22
|
+
controller_id: str,
|
|
23
|
+
folders: List[Folder],
|
|
24
|
+
audit_log: Optional[AuditLog]
|
|
25
|
+
) -> bool:
|
|
26
|
+
|
|
27
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
28
|
+
request_data = _build_v_2_8_2_request(
|
|
29
|
+
identity_service_name=identity_service_name,
|
|
30
|
+
role_name=role_name,
|
|
31
|
+
controller_id=controller_id,
|
|
32
|
+
folders=folders,
|
|
33
|
+
audit_log=audit_log
|
|
34
|
+
)
|
|
35
|
+
else:
|
|
36
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
37
|
+
|
|
38
|
+
# Calls the dispatcher for the matching JOC version
|
|
39
|
+
result = context.joc_api.dispatch(endpoint_id="iam/folders/store", call=EndpointCall(
|
|
40
|
+
http_service=context.http_service,
|
|
41
|
+
access_token=context.auth_provider.login(),
|
|
42
|
+
payload=request_data,
|
|
43
|
+
options=None,
|
|
44
|
+
))
|
|
45
|
+
|
|
46
|
+
if isinstance(result, OK_V_2_8_2):
|
|
47
|
+
return bool(result.ok)
|
|
48
|
+
|
|
49
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
50
|
+
|
|
51
|
+
#---------------------#
|
|
52
|
+
# Build 2.8.2 request #
|
|
53
|
+
#---------------------#
|
|
54
|
+
def _build_v_2_8_2_request(
|
|
55
|
+
*,
|
|
56
|
+
identity_service_name: str,
|
|
57
|
+
role_name: str,
|
|
58
|
+
controller_id: str,
|
|
59
|
+
folders: List[Folder],
|
|
60
|
+
audit_log: Optional[AuditLog]
|
|
61
|
+
) -> Folders_V_2_8_2:
|
|
62
|
+
|
|
63
|
+
# Validate: identity_service_name
|
|
64
|
+
if not identity_service_name:
|
|
65
|
+
raise ValueError("'identity_service_name' is required.")
|
|
66
|
+
|
|
67
|
+
# Validate: role_name
|
|
68
|
+
if not role_name:
|
|
69
|
+
raise ValueError("'role_name' is required.")
|
|
70
|
+
|
|
71
|
+
# Validate: controller_id
|
|
72
|
+
if not controller_id:
|
|
73
|
+
raise ValueError("'controller_id' is required.")
|
|
74
|
+
|
|
75
|
+
# Validate: folders
|
|
76
|
+
if not folders:
|
|
77
|
+
raise ValueError("At least one folder in 'folders' is required.")
|
|
78
|
+
|
|
79
|
+
# Build: audit_log
|
|
80
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
81
|
+
ticket_link=audit_log.ticket_link,
|
|
82
|
+
comment=audit_log.comment,
|
|
83
|
+
time_spent=audit_log.time_spent
|
|
84
|
+
) if audit_log else None
|
|
85
|
+
|
|
86
|
+
# Result
|
|
87
|
+
return Folders_V_2_8_2(
|
|
88
|
+
identity_service_name=identity_service_name,
|
|
89
|
+
role_name=role_name,
|
|
90
|
+
controller_id=controller_id,
|
|
91
|
+
folders=[
|
|
92
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
93
|
+
for f in folders
|
|
94
|
+
],
|
|
95
|
+
audit_log=res_audit_log
|
|
96
|
+
)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
from typing import List, Optional, Tuple
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
Permissions as Permissions_V_2_8_2,
|
|
10
|
+
Permission as Permission_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def set_permissions_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
identity_service_name: str,
|
|
20
|
+
role_name: str,
|
|
21
|
+
controller_id: str,
|
|
22
|
+
permissions: List[Tuple[str, bool]],
|
|
23
|
+
audit_log: Optional[AuditLog]
|
|
24
|
+
) -> bool:
|
|
25
|
+
|
|
26
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
27
|
+
request_data = _build_v_2_8_2_request(
|
|
28
|
+
identity_service_name=identity_service_name,
|
|
29
|
+
role_name=role_name,
|
|
30
|
+
controller_id=controller_id,
|
|
31
|
+
permissions=permissions,
|
|
32
|
+
audit_log=audit_log
|
|
33
|
+
)
|
|
34
|
+
else:
|
|
35
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
36
|
+
|
|
37
|
+
# Calls the dispatcher for the matching JOC version
|
|
38
|
+
result = context.joc_api.dispatch(endpoint_id="iam/permissions/store", call=EndpointCall(
|
|
39
|
+
http_service=context.http_service,
|
|
40
|
+
access_token=context.auth_provider.login(),
|
|
41
|
+
payload=request_data,
|
|
42
|
+
options=None,
|
|
43
|
+
))
|
|
44
|
+
|
|
45
|
+
if isinstance(result, OK_V_2_8_2):
|
|
46
|
+
return bool(result.ok)
|
|
47
|
+
|
|
48
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
49
|
+
|
|
50
|
+
#---------------------#
|
|
51
|
+
# Build 2.8.2 request #
|
|
52
|
+
#---------------------#
|
|
53
|
+
def _build_v_2_8_2_request(
|
|
54
|
+
*,
|
|
55
|
+
identity_service_name: str,
|
|
56
|
+
role_name: str,
|
|
57
|
+
controller_id: str,
|
|
58
|
+
permissions: List[Tuple[str, bool]],
|
|
59
|
+
audit_log: Optional[AuditLog]
|
|
60
|
+
) -> Permissions_V_2_8_2:
|
|
61
|
+
|
|
62
|
+
# Validate: identity_service_name
|
|
63
|
+
if not identity_service_name:
|
|
64
|
+
raise ValueError("'identity_service_name' is required.")
|
|
65
|
+
|
|
66
|
+
# Validate: role_name
|
|
67
|
+
if not role_name:
|
|
68
|
+
raise ValueError("'role_name' is required.")
|
|
69
|
+
|
|
70
|
+
# Validate: controller_id
|
|
71
|
+
if not controller_id:
|
|
72
|
+
raise ValueError("'controller_id' is required.")
|
|
73
|
+
|
|
74
|
+
# Build: audit_log
|
|
75
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
76
|
+
ticket_link=audit_log.ticket_link,
|
|
77
|
+
comment=audit_log.comment,
|
|
78
|
+
time_spent=audit_log.time_spent
|
|
79
|
+
) if audit_log else None
|
|
80
|
+
|
|
81
|
+
# Result
|
|
82
|
+
return Permissions_V_2_8_2(
|
|
83
|
+
identity_service_name=identity_service_name,
|
|
84
|
+
role_name=role_name,
|
|
85
|
+
controller_id=controller_id,
|
|
86
|
+
permissions=[
|
|
87
|
+
Permission_V_2_8_2(permission_path=p, excluded=e)
|
|
88
|
+
for p, e in permissions
|
|
89
|
+
],
|
|
90
|
+
audit_log=res_audit_log
|
|
91
|
+
)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.public.client.common.accounts import Account
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
Account as Account_V_2_8_2,
|
|
9
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
10
|
+
OK as OK_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def store_account_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
account: Account,
|
|
20
|
+
audit_log: Optional[AuditLog]
|
|
21
|
+
) -> bool:
|
|
22
|
+
|
|
23
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
24
|
+
request_data = _build_v_2_8_2_request(
|
|
25
|
+
account=account,
|
|
26
|
+
audit_log=audit_log
|
|
27
|
+
)
|
|
28
|
+
else:
|
|
29
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
30
|
+
|
|
31
|
+
# Calls the dispatcher for the matching JOC version
|
|
32
|
+
result = context.joc_api.dispatch(endpoint_id="iam/account/store", call=EndpointCall(
|
|
33
|
+
http_service=context.http_service,
|
|
34
|
+
access_token=context.auth_provider.login(),
|
|
35
|
+
payload=request_data,
|
|
36
|
+
options=None,
|
|
37
|
+
))
|
|
38
|
+
|
|
39
|
+
if isinstance(result, OK_V_2_8_2):
|
|
40
|
+
return bool(result.ok)
|
|
41
|
+
|
|
42
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
43
|
+
|
|
44
|
+
#---------------------#
|
|
45
|
+
# Build 2.8.2 request #
|
|
46
|
+
#---------------------#
|
|
47
|
+
def _build_v_2_8_2_request(
|
|
48
|
+
*,
|
|
49
|
+
account: Account,
|
|
50
|
+
audit_log: Optional[AuditLog]
|
|
51
|
+
) -> Account_V_2_8_2:
|
|
52
|
+
|
|
53
|
+
# Build: audit_log
|
|
54
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
55
|
+
ticket_link=audit_log.ticket_link,
|
|
56
|
+
comment=audit_log.comment,
|
|
57
|
+
time_spent=audit_log.time_spent
|
|
58
|
+
) if audit_log else None
|
|
59
|
+
|
|
60
|
+
# Result
|
|
61
|
+
return Account_V_2_8_2(
|
|
62
|
+
account_name=account.account_name,
|
|
63
|
+
password=account.password,
|
|
64
|
+
disabled=account.disabled,
|
|
65
|
+
force_password_change=account.force_password_change,
|
|
66
|
+
identity_service_name=account.identity_service_name,
|
|
67
|
+
roles=account.roles,
|
|
68
|
+
audit_log=res_audit_log
|
|
69
|
+
)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.identity_service import IdentityService
|
|
5
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
6
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
9
|
+
OK as OK_V_2_8_2,
|
|
10
|
+
IdentityService as IdentityService_V_2_8_2,
|
|
11
|
+
IdentityServiceType as IdentityServiceType_V_2_8_2,
|
|
12
|
+
ServiceAuthenticationScheme as ServiceAuthenticationScheme_V_2_8_2
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
from ....util.check_matching_version import check_matching_version
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def store_identity_service_action(
|
|
19
|
+
*,
|
|
20
|
+
context: Context,
|
|
21
|
+
identity_service: IdentityService,
|
|
22
|
+
audit_log: Optional[AuditLog]
|
|
23
|
+
) -> bool:
|
|
24
|
+
|
|
25
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
26
|
+
request_data = _build_v_2_8_2_request(
|
|
27
|
+
identity_service=identity_service,
|
|
28
|
+
audit_log=audit_log
|
|
29
|
+
)
|
|
30
|
+
else:
|
|
31
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
32
|
+
|
|
33
|
+
# Calls the dispatcher for the matching JOC version
|
|
34
|
+
result = context.joc_api.dispatch(endpoint_id="iam/identityservice/store", call=EndpointCall(
|
|
35
|
+
http_service=context.http_service,
|
|
36
|
+
access_token=context.auth_provider.login(),
|
|
37
|
+
payload=request_data,
|
|
38
|
+
options=None,
|
|
39
|
+
))
|
|
40
|
+
|
|
41
|
+
if isinstance(result, OK_V_2_8_2):
|
|
42
|
+
return bool(result.ok)
|
|
43
|
+
|
|
44
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
45
|
+
|
|
46
|
+
#---------------------#
|
|
47
|
+
# Build 2.8.2 request #
|
|
48
|
+
#---------------------#
|
|
49
|
+
def _build_v_2_8_2_request(
|
|
50
|
+
*,
|
|
51
|
+
identity_service: IdentityService,
|
|
52
|
+
audit_log: Optional[AuditLog]
|
|
53
|
+
) -> IdentityService_V_2_8_2:
|
|
54
|
+
|
|
55
|
+
# Build: audit_log
|
|
56
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
57
|
+
ticket_link=audit_log.ticket_link,
|
|
58
|
+
comment=audit_log.comment,
|
|
59
|
+
time_spent=audit_log.time_spent
|
|
60
|
+
) if audit_log else None
|
|
61
|
+
|
|
62
|
+
# Result
|
|
63
|
+
return IdentityService_V_2_8_2(
|
|
64
|
+
identity_service_name=identity_service.identity_service_name,
|
|
65
|
+
# Raises ValueError() if invalid.
|
|
66
|
+
identity_service_type=IdentityServiceType_V_2_8_2(identity_service.identity_service_type),
|
|
67
|
+
# Raises ValueError() if invalid.
|
|
68
|
+
service_authentication_scheme=ServiceAuthenticationScheme_V_2_8_2(identity_service.service_authentication_scheme),
|
|
69
|
+
second_factor=identity_service.second_factor,
|
|
70
|
+
second_factor_identity_service_name=identity_service.second_factor_identity_service_name,
|
|
71
|
+
disabled=identity_service.disabled,
|
|
72
|
+
required=identity_service.required,
|
|
73
|
+
ordering=identity_service.ordering,
|
|
74
|
+
audit_log=res_audit_log
|
|
75
|
+
)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any, Dict, Literal
|
|
3
|
+
|
|
4
|
+
from ...context import Context
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
Configuration as Configuration_V_2_8_2,
|
|
8
|
+
ConfigurationType as ConfigurationType_V_2_8_2,
|
|
9
|
+
ConfigurationOk as ConfigurationOk_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def store_identity_service_settings_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
identity_service_name: str,
|
|
19
|
+
identity_service_type: Literal["KEYCLOAK", "KEYCLOAK-JOC", "LDAP", "LDAP-JOC", "OIDC", "OIDC-JOC", "FIDO", "JOC", "CERTIFICATE"],
|
|
20
|
+
settings: Dict[str, Any]
|
|
21
|
+
) -> bool:
|
|
22
|
+
|
|
23
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
24
|
+
request_data = _build_v_2_8_2_request(
|
|
25
|
+
identity_service_name=identity_service_name,
|
|
26
|
+
identity_service_type=identity_service_type,
|
|
27
|
+
settings=settings
|
|
28
|
+
)
|
|
29
|
+
else:
|
|
30
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
31
|
+
|
|
32
|
+
# Calls the dispatcher for the matching JOC version
|
|
33
|
+
result = context.joc_api.dispatch(endpoint_id="configuration/save", call=EndpointCall(
|
|
34
|
+
http_service=context.http_service,
|
|
35
|
+
access_token=context.auth_provider.login(),
|
|
36
|
+
payload=request_data,
|
|
37
|
+
options=None,
|
|
38
|
+
))
|
|
39
|
+
|
|
40
|
+
if isinstance(result, ConfigurationOk_V_2_8_2):
|
|
41
|
+
return bool(result.id)
|
|
42
|
+
|
|
43
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
44
|
+
|
|
45
|
+
#---------------------#
|
|
46
|
+
# Build 2.8.2 request #
|
|
47
|
+
#---------------------#
|
|
48
|
+
def _build_v_2_8_2_request(
|
|
49
|
+
*,
|
|
50
|
+
identity_service_name: str,
|
|
51
|
+
identity_service_type: Literal["KEYCLOAK", "KEYCLOAK-JOC", "LDAP", "LDAP-JOC", "OIDC", "OIDC-JOC", "FIDO", "JOC", "CERTIFICATE"],
|
|
52
|
+
settings: Dict[str, Any]
|
|
53
|
+
) -> Configuration_V_2_8_2:
|
|
54
|
+
|
|
55
|
+
# Validate: identity_service_name
|
|
56
|
+
if not identity_service_name:
|
|
57
|
+
raise ValueError("'identity_service_name' is required.")
|
|
58
|
+
|
|
59
|
+
# Validate: identity_service_type
|
|
60
|
+
if identity_service_type not in ["KEYCLOAK", "KEYCLOAK-JOC", "LDAP", "LDAP-JOC", "OIDC", "OIDC-JOC", "FIDO", "JOC", "CERTIFICATE"]:
|
|
61
|
+
raise ValueError(f"identity service type: {identity_service_type} is not supported.")
|
|
62
|
+
|
|
63
|
+
# Validate: settings
|
|
64
|
+
if not settings:
|
|
65
|
+
raise ValueError("'settings' is required.")
|
|
66
|
+
|
|
67
|
+
# Result
|
|
68
|
+
return Configuration_V_2_8_2(
|
|
69
|
+
id=0,
|
|
70
|
+
name=identity_service_name,
|
|
71
|
+
object_type=identity_service_type,
|
|
72
|
+
configuration_type=ConfigurationType_V_2_8_2.IAM,
|
|
73
|
+
configuration_item=json.dumps(settings),
|
|
74
|
+
)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
RoleStore as RoleStore_V_2_8_2,
|
|
8
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
9
|
+
OK as OK_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def store_role_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
identity_service_name: str,
|
|
19
|
+
role_name: str,
|
|
20
|
+
ordering: Optional[int],
|
|
21
|
+
audit_log: Optional[AuditLog]
|
|
22
|
+
) -> bool:
|
|
23
|
+
|
|
24
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
25
|
+
request_data = _build_v_2_8_2_request(
|
|
26
|
+
identity_service_name=identity_service_name,
|
|
27
|
+
role_name=role_name,
|
|
28
|
+
ordering=ordering,
|
|
29
|
+
audit_log=audit_log
|
|
30
|
+
)
|
|
31
|
+
else:
|
|
32
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
33
|
+
|
|
34
|
+
# Calls the dispatcher for the matching JOC version
|
|
35
|
+
result = context.joc_api.dispatch(endpoint_id="iam/role/store", call=EndpointCall(
|
|
36
|
+
http_service=context.http_service,
|
|
37
|
+
access_token=context.auth_provider.login(),
|
|
38
|
+
payload=request_data,
|
|
39
|
+
options=None,
|
|
40
|
+
))
|
|
41
|
+
|
|
42
|
+
if isinstance(result, OK_V_2_8_2):
|
|
43
|
+
return bool(result.ok)
|
|
44
|
+
|
|
45
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
46
|
+
|
|
47
|
+
#---------------------#
|
|
48
|
+
# Build 2.8.2 request #
|
|
49
|
+
#---------------------#
|
|
50
|
+
def _build_v_2_8_2_request(
|
|
51
|
+
*,
|
|
52
|
+
identity_service_name: str,
|
|
53
|
+
role_name: str,
|
|
54
|
+
ordering: Optional[int],
|
|
55
|
+
audit_log: Optional[AuditLog]
|
|
56
|
+
) -> RoleStore_V_2_8_2:
|
|
57
|
+
|
|
58
|
+
# Validate: identity_service_name
|
|
59
|
+
if not identity_service_name:
|
|
60
|
+
raise ValueError("'identity_service_name' is required.")
|
|
61
|
+
|
|
62
|
+
# Validate: role_name
|
|
63
|
+
if not role_name:
|
|
64
|
+
raise ValueError("'role_name' is required.")
|
|
65
|
+
|
|
66
|
+
# Build: audit_log
|
|
67
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
68
|
+
ticket_link=audit_log.ticket_link,
|
|
69
|
+
comment=audit_log.comment,
|
|
70
|
+
time_spent=audit_log.time_spent
|
|
71
|
+
) if audit_log else None
|
|
72
|
+
|
|
73
|
+
# Result
|
|
74
|
+
return RoleStore_V_2_8_2(
|
|
75
|
+
identity_service_name=identity_service_name,
|
|
76
|
+
role_name=role_name,
|
|
77
|
+
ordering=ordering,
|
|
78
|
+
audit_log=res_audit_log
|
|
79
|
+
)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
BlockedAccountsDeleteFilter as BlockedAccountsDeleteFilter_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def unblock_accounts_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
account_names: List[str],
|
|
19
|
+
audit_log: Optional[AuditLog]
|
|
20
|
+
) -> bool:
|
|
21
|
+
|
|
22
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
23
|
+
request_data = _build_v_2_8_2_request(
|
|
24
|
+
account_names=account_names,
|
|
25
|
+
audit_log=audit_log
|
|
26
|
+
)
|
|
27
|
+
else:
|
|
28
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
29
|
+
|
|
30
|
+
# Calls the dispatcher for the matching JOC version
|
|
31
|
+
result = context.joc_api.dispatch(endpoint_id="iam/blockedAccounts/delete", call=EndpointCall(
|
|
32
|
+
http_service=context.http_service,
|
|
33
|
+
access_token=context.auth_provider.login(),
|
|
34
|
+
payload=request_data,
|
|
35
|
+
options=None,
|
|
36
|
+
))
|
|
37
|
+
|
|
38
|
+
if isinstance(result, OK_V_2_8_2):
|
|
39
|
+
return bool(result.ok)
|
|
40
|
+
|
|
41
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
42
|
+
|
|
43
|
+
#---------------------#
|
|
44
|
+
# Build 2.8.2 request #
|
|
45
|
+
#---------------------#
|
|
46
|
+
def _build_v_2_8_2_request(
|
|
47
|
+
*,
|
|
48
|
+
account_names: List[str],
|
|
49
|
+
audit_log: Optional[AuditLog]
|
|
50
|
+
) -> BlockedAccountsDeleteFilter_V_2_8_2:
|
|
51
|
+
|
|
52
|
+
# Validate: account_names
|
|
53
|
+
if not account_names:
|
|
54
|
+
raise ValueError("At least one account name in 'account_names' is required.")
|
|
55
|
+
|
|
56
|
+
# Build: audit_log
|
|
57
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
58
|
+
ticket_link=audit_log.ticket_link,
|
|
59
|
+
comment=audit_log.comment,
|
|
60
|
+
time_spent=audit_log.time_spent
|
|
61
|
+
) if audit_log else None
|
|
62
|
+
|
|
63
|
+
# Result
|
|
64
|
+
return BlockedAccountsDeleteFilter_V_2_8_2(
|
|
65
|
+
account_names=account_names,
|
|
66
|
+
audit_log=res_audit_log
|
|
67
|
+
)
|