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,74 @@
|
|
|
1
|
+
from typing import Literal, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
5
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
8
|
+
ClusterServices as ClusterServices_V_2_8_2,
|
|
9
|
+
ClusterResponse as ClusterResponse_V_2_8_2,
|
|
10
|
+
ClusterServiceRun as ClusterServiceRun_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def run_service_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
service_type: Literal["cleanup", "cluster", "dailyplan", "history", "lognotification", "monitor"],
|
|
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(service_type=service_type, audit_log=audit_log)
|
|
25
|
+
else:
|
|
26
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
27
|
+
|
|
28
|
+
# Calls the dispatcher for the matching JOC version
|
|
29
|
+
result = context.joc_api.dispatch(endpoint_id="joc/cluster/run", call=EndpointCall(
|
|
30
|
+
http_service=context.http_service,
|
|
31
|
+
payload=request_data,
|
|
32
|
+
access_token=context.auth_provider.login(),
|
|
33
|
+
options=None
|
|
34
|
+
))
|
|
35
|
+
|
|
36
|
+
if isinstance(result, ClusterResponse_V_2_8_2):
|
|
37
|
+
if not result.state:
|
|
38
|
+
return False
|
|
39
|
+
|
|
40
|
+
if result.state.value in ["ERROR", "MISSING_CONFIGURATION", "MISSING_HANDLERS", "MISSING_LICENSE", "UNCOMPLETED"]:
|
|
41
|
+
raise Exception(f"Restart of service: {service_type} failed with state: {result.state.value}.")
|
|
42
|
+
|
|
43
|
+
return True
|
|
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
|
+
service_type: Literal["cleanup", "cluster", "dailyplan", "history", "lognotification", "monitor"],
|
|
53
|
+
audit_log: Optional[AuditLog]
|
|
54
|
+
) -> ClusterServiceRun_V_2_8_2:
|
|
55
|
+
|
|
56
|
+
# Validate: service_type
|
|
57
|
+
svc_types = ["cleanup", "cluster", "dailyplan", "history", "lognotification", "monitor"]
|
|
58
|
+
if not service_type:
|
|
59
|
+
raise ValueError("'service_type' is required")
|
|
60
|
+
if service_type not in svc_types:
|
|
61
|
+
raise ValueError(f"Unsupported 'service_type': {service_type}. Supported values are: {svc_types}")
|
|
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 ClusterServiceRun_V_2_8_2(
|
|
72
|
+
type=ClusterServices_V_2_8_2(service_type), # Raises ValueError if invalid.
|
|
73
|
+
audit_log=res_audit_log
|
|
74
|
+
)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any, Dict, Optional
|
|
3
|
+
|
|
4
|
+
from ...context import Context
|
|
5
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
6
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
StoreSettingsFilter as StoreSettingsFilter_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_settings_action(*, context: Context, payload: Dict[str, Any], audit_log: Optional[AuditLog]) -> bool:
|
|
17
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
18
|
+
request_data = _build_v_2_8_2_request(
|
|
19
|
+
payload=payload,
|
|
20
|
+
audit_log=audit_log
|
|
21
|
+
)
|
|
22
|
+
else:
|
|
23
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
24
|
+
|
|
25
|
+
# Calls the dispatcher for the matching JOC version
|
|
26
|
+
result = context.joc_api.dispatch(endpoint_id="settings/store", call=EndpointCall(
|
|
27
|
+
http_service=context.http_service,
|
|
28
|
+
payload=request_data,
|
|
29
|
+
access_token=context.auth_provider.login(),
|
|
30
|
+
options=None
|
|
31
|
+
))
|
|
32
|
+
|
|
33
|
+
if isinstance(result, OK_V_2_8_2):
|
|
34
|
+
return bool(result.ok)
|
|
35
|
+
|
|
36
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
37
|
+
|
|
38
|
+
#---------------------#
|
|
39
|
+
# Build 2.8.2 request #
|
|
40
|
+
#---------------------#
|
|
41
|
+
def _build_v_2_8_2_request(
|
|
42
|
+
*,
|
|
43
|
+
payload: Dict[str, Any],
|
|
44
|
+
audit_log: Optional[AuditLog]
|
|
45
|
+
) -> StoreSettingsFilter_V_2_8_2:
|
|
46
|
+
|
|
47
|
+
# Validate: payload
|
|
48
|
+
if not payload:
|
|
49
|
+
raise ValueError("'payload' is required")
|
|
50
|
+
|
|
51
|
+
# Build: audit_log
|
|
52
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
53
|
+
ticket_link=audit_log.ticket_link,
|
|
54
|
+
comment=audit_log.comment,
|
|
55
|
+
time_spent=audit_log.time_spent
|
|
56
|
+
) if audit_log else None
|
|
57
|
+
|
|
58
|
+
# Result
|
|
59
|
+
return StoreSettingsFilter_V_2_8_2(
|
|
60
|
+
configuration_item=json.dumps(payload),
|
|
61
|
+
audit_log=res_audit_log
|
|
62
|
+
)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
from ...context import Context
|
|
2
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
3
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
4
|
+
ControllerIdReq as ControllerIdReq_V_2_8_2,
|
|
5
|
+
Components as Components_V_2_8_2,
|
|
6
|
+
ClusterSwitchMember as ClusterSwitchMember_V_2_8_2,
|
|
7
|
+
ClusterResponse as ClusterResponse_V_2_8_2
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from ....util.check_matching_version import check_matching_version
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def switch_over_action(
|
|
14
|
+
*,
|
|
15
|
+
context: Context,
|
|
16
|
+
controller_id: str
|
|
17
|
+
) -> bool:
|
|
18
|
+
|
|
19
|
+
if not check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
20
|
+
raise RuntimeError(
|
|
21
|
+
f"Version {context.version} is not compatible with switch over."
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
request_data = _build_v_2_8_2_request(controller_id=controller_id)
|
|
25
|
+
|
|
26
|
+
# (1) Get controller components
|
|
27
|
+
result = context.joc_api.dispatch(
|
|
28
|
+
endpoint_id="controller/components",
|
|
29
|
+
call=EndpointCall(
|
|
30
|
+
http_service=context.http_service,
|
|
31
|
+
payload=request_data,
|
|
32
|
+
access_token=context.auth_provider.login(),
|
|
33
|
+
options=None
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
if not isinstance(result, Components_V_2_8_2):
|
|
38
|
+
raise RuntimeError(f"Unexpected response type from controller/components: {type(result).__name__}")
|
|
39
|
+
|
|
40
|
+
if not result.jocs:
|
|
41
|
+
raise ValueError("No JOC Cockpit instances found.")
|
|
42
|
+
|
|
43
|
+
# (2) Find exactly one standby JOC (severity == 1)
|
|
44
|
+
standby_members = [
|
|
45
|
+
j.member_id
|
|
46
|
+
for j in result.jocs
|
|
47
|
+
if j.member_id
|
|
48
|
+
and j.cluster_node_state
|
|
49
|
+
and j.cluster_node_state.severity == 1
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
if not standby_members:
|
|
53
|
+
raise ValueError("Switch over failed: no standby JOC Cockpit instance found.")
|
|
54
|
+
|
|
55
|
+
if len(standby_members) > 1:
|
|
56
|
+
raise ValueError(f"Switch over failed: multiple standby JOCs found: {standby_members}")
|
|
57
|
+
|
|
58
|
+
member_id = standby_members[0]
|
|
59
|
+
|
|
60
|
+
# (3) Switch to standby member
|
|
61
|
+
result = context.joc_api.dispatch(
|
|
62
|
+
endpoint_id="joc/cluster/switch_member",
|
|
63
|
+
call=EndpointCall(
|
|
64
|
+
http_service=context.http_service,
|
|
65
|
+
payload=ClusterSwitchMember_V_2_8_2(member_id=member_id),
|
|
66
|
+
access_token=context.auth_provider.login(),
|
|
67
|
+
options=None
|
|
68
|
+
)
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
if not isinstance(result, ClusterResponse_V_2_8_2):
|
|
72
|
+
raise RuntimeError(f"Unexpected response type from switch_member: {type(result).__name__}")
|
|
73
|
+
|
|
74
|
+
if not result.state:
|
|
75
|
+
raise RuntimeError("Switch over failed: missing state in response.")
|
|
76
|
+
|
|
77
|
+
if result.state.value != "SWITCH_MEMBER":
|
|
78
|
+
raise RuntimeError(f"Switch over failed with state: {result.state.value}")
|
|
79
|
+
|
|
80
|
+
return True
|
|
81
|
+
|
|
82
|
+
#---------------------#
|
|
83
|
+
# Build 2.8.2 request #
|
|
84
|
+
#---------------------#
|
|
85
|
+
def _build_v_2_8_2_request(*, controller_id: str) -> ControllerIdReq_V_2_8_2:
|
|
86
|
+
if not controller_id:
|
|
87
|
+
raise ValueError("'controller_id' is required.")
|
|
88
|
+
|
|
89
|
+
return ControllerIdReq_V_2_8_2(controller_id=controller_id)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.schedule_time import ScheduleTime
|
|
5
|
+
from ....model.public.client.input.add_order import Order
|
|
6
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
7
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
8
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
9
|
+
AddOrders as AddOrders_V_2_8_2,
|
|
10
|
+
AddOrder as AddOrder_V_2_8_2,
|
|
11
|
+
OrderIDS as OrderIDS_V_2_8_2,
|
|
12
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
13
|
+
PlanID as PlanID_V_2_8_2
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from ....util.check_matching_version import check_matching_version
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# Returns: OrderIDs
|
|
20
|
+
def add_orders_action(
|
|
21
|
+
*,
|
|
22
|
+
context: Context,
|
|
23
|
+
controller_id: str,
|
|
24
|
+
orders: List[Order],
|
|
25
|
+
audit_log: Optional[AuditLog]
|
|
26
|
+
) -> List[str]:
|
|
27
|
+
|
|
28
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
29
|
+
request_data = _build_v_2_8_2_request(
|
|
30
|
+
timezone=context.client_config.timezone,
|
|
31
|
+
controller_id=controller_id,
|
|
32
|
+
orders=orders,
|
|
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="orders/add", 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, OrderIDS_V_2_8_2):
|
|
47
|
+
if not result.order_ids:
|
|
48
|
+
raise RuntimeError("No order id returned by server.")
|
|
49
|
+
return result.order_ids
|
|
50
|
+
|
|
51
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
52
|
+
|
|
53
|
+
#---------------------#
|
|
54
|
+
# Build 2.8.2 request #
|
|
55
|
+
#---------------------#
|
|
56
|
+
def _build_v_2_8_2_request(
|
|
57
|
+
*,
|
|
58
|
+
timezone: str,
|
|
59
|
+
controller_id: str,
|
|
60
|
+
orders: List[Order],
|
|
61
|
+
audit_log: Optional[AuditLog]
|
|
62
|
+
) -> AddOrders_V_2_8_2:
|
|
63
|
+
|
|
64
|
+
# Validate: timezone
|
|
65
|
+
if not timezone:
|
|
66
|
+
raise ValueError("'timezone' is required in client configuration.")
|
|
67
|
+
|
|
68
|
+
# Validate: controller_id
|
|
69
|
+
if not controller_id:
|
|
70
|
+
raise ValueError("'controller_id' is required.")
|
|
71
|
+
|
|
72
|
+
# Validate: orders
|
|
73
|
+
if not orders:
|
|
74
|
+
raise ValueError("At least one order in 'orders' is required.")
|
|
75
|
+
|
|
76
|
+
# Build: audit_log
|
|
77
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
78
|
+
ticket_link=audit_log.ticket_link,
|
|
79
|
+
comment=audit_log.comment,
|
|
80
|
+
time_spent=audit_log.time_spent
|
|
81
|
+
) if audit_log else None
|
|
82
|
+
|
|
83
|
+
# Result
|
|
84
|
+
return AddOrders_V_2_8_2(
|
|
85
|
+
controller_id=controller_id,
|
|
86
|
+
audit_log=res_audit_log,
|
|
87
|
+
orders=[
|
|
88
|
+
AddOrder_V_2_8_2(
|
|
89
|
+
arguments=o.arguments,
|
|
90
|
+
block_position=o.block_position,
|
|
91
|
+
end_positions=o.end_positions,
|
|
92
|
+
force_job_admission=o.force_job_admission,
|
|
93
|
+
open_closed_plan=o.open_closed_plan,
|
|
94
|
+
order_name=o.order_name if o.order_name else "unnamed",
|
|
95
|
+
plan_id=(
|
|
96
|
+
PlanID_V_2_8_2(
|
|
97
|
+
notice_space_key=o.plan_id.notice_space_key,
|
|
98
|
+
plan_schema_id=o.plan_id.plan_schema_id
|
|
99
|
+
)
|
|
100
|
+
if o.plan_id else None
|
|
101
|
+
),
|
|
102
|
+
priority=o.priority,
|
|
103
|
+
scheduled_for=(
|
|
104
|
+
o.scheduled_for.value
|
|
105
|
+
if o.scheduled_for
|
|
106
|
+
else None
|
|
107
|
+
) if isinstance(o.scheduled_for, ScheduleTime) else o.scheduled_for,
|
|
108
|
+
start_position=o.start_position,
|
|
109
|
+
tags=o.tags,
|
|
110
|
+
time_zone=timezone,
|
|
111
|
+
workflow_path=o.workflow_path,
|
|
112
|
+
)
|
|
113
|
+
for o in orders
|
|
114
|
+
]
|
|
115
|
+
)
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
CancelOrders as CancelOrders_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def cancel_orders_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
controller_id: str,
|
|
20
|
+
order_ids: Optional[List[str]],
|
|
21
|
+
workflow_paths: Optional[List[str]],
|
|
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
|
+
controller_id=controller_id,
|
|
28
|
+
timezone=context.client_config.timezone,
|
|
29
|
+
order_ids=order_ids,
|
|
30
|
+
workflow_paths=workflow_paths,
|
|
31
|
+
audit_log=audit_log
|
|
32
|
+
)
|
|
33
|
+
else:
|
|
34
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
35
|
+
|
|
36
|
+
# Calls the dispatcher for the matching JOC version
|
|
37
|
+
result = context.joc_api.dispatch(endpoint_id="orders/cancel", call=EndpointCall(
|
|
38
|
+
http_service=context.http_service,
|
|
39
|
+
access_token=context.auth_provider.login(),
|
|
40
|
+
payload=request_data,
|
|
41
|
+
options=None,
|
|
42
|
+
))
|
|
43
|
+
|
|
44
|
+
if isinstance(result, OK_V_2_8_2):
|
|
45
|
+
return bool(result.ok)
|
|
46
|
+
|
|
47
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
48
|
+
|
|
49
|
+
#---------------------#
|
|
50
|
+
# Build 2.8.2 request #
|
|
51
|
+
#---------------------#
|
|
52
|
+
def _build_v_2_8_2_request(
|
|
53
|
+
*,
|
|
54
|
+
controller_id: str,
|
|
55
|
+
timezone: str,
|
|
56
|
+
order_ids: Optional[List[str]],
|
|
57
|
+
workflow_paths: Optional[List[str]],
|
|
58
|
+
audit_log: Optional[AuditLog]
|
|
59
|
+
) -> CancelOrders_V_2_8_2:
|
|
60
|
+
|
|
61
|
+
# Validate: timezone
|
|
62
|
+
if not timezone:
|
|
63
|
+
raise ValueError("'timezone' is required in client configuration.")
|
|
64
|
+
|
|
65
|
+
# Validate: controller_id
|
|
66
|
+
if not controller_id:
|
|
67
|
+
raise ValueError("'controller_id' is required.")
|
|
68
|
+
|
|
69
|
+
# Validate: Any of order_ids or workflow_paths
|
|
70
|
+
if not (order_ids or workflow_paths):
|
|
71
|
+
raise ValueError("At least one of 'order_ids' or 'workflow_paths' must be provided.")
|
|
72
|
+
|
|
73
|
+
# Build: res_audit_log
|
|
74
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
75
|
+
ticket_link=audit_log.ticket_link,
|
|
76
|
+
comment=audit_log.comment,
|
|
77
|
+
time_spent=audit_log.time_spent
|
|
78
|
+
) if audit_log else None
|
|
79
|
+
|
|
80
|
+
# Build: res_workflow_ids
|
|
81
|
+
res_workflow_ids = [
|
|
82
|
+
WorkflowID_V_2_8_2(path=path)
|
|
83
|
+
for path in workflow_paths
|
|
84
|
+
] if workflow_paths else None
|
|
85
|
+
|
|
86
|
+
# Result
|
|
87
|
+
return CancelOrders_V_2_8_2(
|
|
88
|
+
controller_id=controller_id,
|
|
89
|
+
workflow_ids=res_workflow_ids,
|
|
90
|
+
order_ids=order_ids,
|
|
91
|
+
audit_log=res_audit_log,
|
|
92
|
+
time_zone=timezone
|
|
93
|
+
)
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
ModifyOrdersBase as ModifyOrdersBase_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def confirm_orders_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
controller_id: str,
|
|
20
|
+
order_ids: Optional[List[str]],
|
|
21
|
+
workflow_paths: Optional[List[str]],
|
|
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
|
+
controller_id=controller_id,
|
|
28
|
+
order_ids=order_ids,
|
|
29
|
+
workflow_paths=workflow_paths,
|
|
30
|
+
audit_log=audit_log
|
|
31
|
+
)
|
|
32
|
+
else:
|
|
33
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
34
|
+
|
|
35
|
+
# Calls the dispatcher for the matching JOC version
|
|
36
|
+
result = context.joc_api.dispatch(endpoint_id="orders/confirm", call=EndpointCall(
|
|
37
|
+
http_service=context.http_service,
|
|
38
|
+
access_token=context.auth_provider.login(),
|
|
39
|
+
payload=request_data,
|
|
40
|
+
options=None,
|
|
41
|
+
))
|
|
42
|
+
|
|
43
|
+
if isinstance(result, OK_V_2_8_2):
|
|
44
|
+
return bool(result.ok)
|
|
45
|
+
|
|
46
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
47
|
+
|
|
48
|
+
#---------------------#
|
|
49
|
+
# Build 2.8.2 request #
|
|
50
|
+
#---------------------#
|
|
51
|
+
def _build_v_2_8_2_request(
|
|
52
|
+
*,
|
|
53
|
+
controller_id: str,
|
|
54
|
+
order_ids: Optional[List[str]],
|
|
55
|
+
workflow_paths: Optional[List[str]],
|
|
56
|
+
audit_log: Optional[AuditLog]
|
|
57
|
+
) -> ModifyOrdersBase_V_2_8_2:
|
|
58
|
+
|
|
59
|
+
# Validate: controller_id
|
|
60
|
+
if not controller_id:
|
|
61
|
+
raise ValueError("'controller_id' is required.")
|
|
62
|
+
|
|
63
|
+
# Validate: One of order_ids or workflow_paths
|
|
64
|
+
if sum([bool(order_ids), bool(workflow_paths)]) != 1:
|
|
65
|
+
raise ValueError("Exactly one of 'order_ids' or 'workflow_paths' must be provided.")
|
|
66
|
+
|
|
67
|
+
# Build: audit_log
|
|
68
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
69
|
+
ticket_link=audit_log.ticket_link,
|
|
70
|
+
comment=audit_log.comment,
|
|
71
|
+
time_spent=audit_log.time_spent
|
|
72
|
+
) if audit_log else None
|
|
73
|
+
|
|
74
|
+
# Build: res_workflow_ids
|
|
75
|
+
res_workflow_ids = [
|
|
76
|
+
WorkflowID_V_2_8_2(path=path)
|
|
77
|
+
for path in workflow_paths
|
|
78
|
+
] if workflow_paths else None
|
|
79
|
+
|
|
80
|
+
# Result
|
|
81
|
+
return ModifyOrdersBase_V_2_8_2(
|
|
82
|
+
controller_id=controller_id,
|
|
83
|
+
order_ids=order_ids,
|
|
84
|
+
workflow_ids=res_workflow_ids,
|
|
85
|
+
audit_log=res_audit_log
|
|
86
|
+
)
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
ModifyOrdersBase as ModifyOrdersBase_V_2_8_2,
|
|
8
|
+
OK as OK_V_2_8_2,
|
|
9
|
+
WorkflowID as WorkflowID_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def continue_orders_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
controller_id: str,
|
|
20
|
+
order_ids: Optional[List[str]],
|
|
21
|
+
workflow_paths: Optional[List[str]],
|
|
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
|
+
controller_id=controller_id,
|
|
28
|
+
order_ids=order_ids,
|
|
29
|
+
workflow_paths=workflow_paths,
|
|
30
|
+
audit_log=audit_log
|
|
31
|
+
)
|
|
32
|
+
else:
|
|
33
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
34
|
+
|
|
35
|
+
# Calls the dispatcher for the matching JOC version
|
|
36
|
+
result = context.joc_api.dispatch(endpoint_id="orders/continue", call=EndpointCall(
|
|
37
|
+
http_service=context.http_service,
|
|
38
|
+
access_token=context.auth_provider.login(),
|
|
39
|
+
payload=request_data,
|
|
40
|
+
options=None,
|
|
41
|
+
))
|
|
42
|
+
|
|
43
|
+
if isinstance(result, OK_V_2_8_2):
|
|
44
|
+
return bool(result.ok)
|
|
45
|
+
|
|
46
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
47
|
+
|
|
48
|
+
#---------------------#
|
|
49
|
+
# Build 2.8.2 request #
|
|
50
|
+
#---------------------#
|
|
51
|
+
def _build_v_2_8_2_request(
|
|
52
|
+
*,
|
|
53
|
+
controller_id: str,
|
|
54
|
+
order_ids: Optional[List[str]],
|
|
55
|
+
workflow_paths: Optional[List[str]],
|
|
56
|
+
audit_log: Optional[AuditLog]
|
|
57
|
+
) -> ModifyOrdersBase_V_2_8_2:
|
|
58
|
+
|
|
59
|
+
# Validate: controller_id
|
|
60
|
+
if not controller_id:
|
|
61
|
+
raise ValueError("'controller_id' is required.")
|
|
62
|
+
|
|
63
|
+
# Validate: Any of order_ids or workflow_paths
|
|
64
|
+
if not (order_ids or workflow_paths):
|
|
65
|
+
raise ValueError("At least one of 'order_ids' or 'workflow_paths' must be provided.")
|
|
66
|
+
|
|
67
|
+
# Build: audit_log
|
|
68
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
69
|
+
ticket_link=audit_log.ticket_link,
|
|
70
|
+
comment=audit_log.comment,
|
|
71
|
+
time_spent=audit_log.time_spent
|
|
72
|
+
) if audit_log else None
|
|
73
|
+
|
|
74
|
+
# Build: res_workflow_ids
|
|
75
|
+
res_workflow_ids = [
|
|
76
|
+
WorkflowID_V_2_8_2(path=path)
|
|
77
|
+
for path in workflow_paths
|
|
78
|
+
] if workflow_paths else None
|
|
79
|
+
|
|
80
|
+
# Result
|
|
81
|
+
return ModifyOrdersBase_V_2_8_2(
|
|
82
|
+
controller_id=controller_id,
|
|
83
|
+
order_ids=order_ids,
|
|
84
|
+
workflow_ids=res_workflow_ids,
|
|
85
|
+
audit_log=res_audit_log
|
|
86
|
+
)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
5
|
+
from ....model.public.client.filter.order_history_filter import OrderHistoryFilter
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
OrdersFilter as OrdersFilter_V_2_8_2,
|
|
8
|
+
OrderHistory as OrderHistory_V_2_8_2,
|
|
9
|
+
Folder as Folder_V_2_8_2,
|
|
10
|
+
HistoryStateText as HistoryStateText_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_order_history_action(*, context: Context, controller_id: str, filter: OrderHistoryFilter) -> Dict[str, Any]:
|
|
17
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
18
|
+
request_data = _build_v_2_8_2_request(
|
|
19
|
+
controller_id=controller_id,
|
|
20
|
+
timezone=context.client_config.timezone,
|
|
21
|
+
filter=filter
|
|
22
|
+
)
|
|
23
|
+
else:
|
|
24
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
25
|
+
|
|
26
|
+
# Calls the dispatcher for the matching JOC version
|
|
27
|
+
result = context.joc_api.dispatch(endpoint_id="orders/history", call=EndpointCall(
|
|
28
|
+
http_service=context.http_service,
|
|
29
|
+
access_token=context.auth_provider.login(),
|
|
30
|
+
payload=request_data,
|
|
31
|
+
options=None,
|
|
32
|
+
))
|
|
33
|
+
|
|
34
|
+
if isinstance(result, OrderHistory_V_2_8_2):
|
|
35
|
+
return result.model_dump()
|
|
36
|
+
|
|
37
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
38
|
+
|
|
39
|
+
#---------------------#
|
|
40
|
+
# Build 2.8.2 request #
|
|
41
|
+
#---------------------#
|
|
42
|
+
def _build_v_2_8_2_request(
|
|
43
|
+
*,
|
|
44
|
+
controller_id: str,
|
|
45
|
+
timezone: str,
|
|
46
|
+
filter: OrderHistoryFilter
|
|
47
|
+
) -> OrdersFilter_V_2_8_2:
|
|
48
|
+
|
|
49
|
+
# Validates controller_id
|
|
50
|
+
if not controller_id:
|
|
51
|
+
raise ValueError("'controller_id' is required.")
|
|
52
|
+
|
|
53
|
+
# Validate: timezone
|
|
54
|
+
if not timezone:
|
|
55
|
+
raise ValueError("'timezone' is required in client configuration.")
|
|
56
|
+
|
|
57
|
+
# Result
|
|
58
|
+
return OrdersFilter_V_2_8_2(
|
|
59
|
+
controller_id=controller_id,
|
|
60
|
+
date_from=filter.date_from,
|
|
61
|
+
date_to=filter.date_to,
|
|
62
|
+
completed_date_from=filter.completed_date_from,
|
|
63
|
+
completed_date_to=filter.completed_date_to,
|
|
64
|
+
time_zone=timezone,
|
|
65
|
+
order_id=filter.order_id,
|
|
66
|
+
workflow_name=filter.workflow_name,
|
|
67
|
+
limit=filter.limit,
|
|
68
|
+
|
|
69
|
+
folders=[
|
|
70
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
71
|
+
for f in filter.folders
|
|
72
|
+
] if filter.folders else None,
|
|
73
|
+
|
|
74
|
+
history_states=[
|
|
75
|
+
HistoryStateText_V_2_8_2(s)
|
|
76
|
+
for s in filter.history_states
|
|
77
|
+
] if filter.history_states else None,
|
|
78
|
+
|
|
79
|
+
compact=None,
|
|
80
|
+
exclude_workflows=None,
|
|
81
|
+
history_ids=None,
|
|
82
|
+
orders=None,
|
|
83
|
+
workflow_path=None
|
|
84
|
+
)
|