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,80 @@
|
|
|
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.filter.daily_plan_order_filters import DailyPlanDeleteOrdersFilter
|
|
7
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
8
|
+
Folder as Folder_V_2_8_2,
|
|
9
|
+
DailyPlanDeleteOrders as DailyPlanDeleteOrders_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
11
|
+
OK as OK_V_2_8_2
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from ....util.check_matching_version import check_matching_version
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def delete_orders_action(
|
|
18
|
+
*,
|
|
19
|
+
context: Context,
|
|
20
|
+
filter: DailyPlanDeleteOrdersFilter,
|
|
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
|
+
filter=filter,
|
|
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="daily_plan/orders/delete", 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
|
+
filter: DailyPlanDeleteOrdersFilter,
|
|
51
|
+
audit_log: Optional[AuditLog],
|
|
52
|
+
) -> DailyPlanDeleteOrders_V_2_8_2:
|
|
53
|
+
|
|
54
|
+
# Build: audit_log
|
|
55
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
56
|
+
ticket_link=audit_log.ticket_link,
|
|
57
|
+
comment=audit_log.comment,
|
|
58
|
+
time_spent=audit_log.time_spent
|
|
59
|
+
) if audit_log else None
|
|
60
|
+
|
|
61
|
+
# Result
|
|
62
|
+
return DailyPlanDeleteOrders_V_2_8_2(
|
|
63
|
+
daily_plan_date_from=filter.date_from,
|
|
64
|
+
daily_plan_date_to=filter.date_to,
|
|
65
|
+
schedule_paths=filter.schedule_paths,
|
|
66
|
+
schedule_folders=[
|
|
67
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
68
|
+
for f in filter.schedule_folders
|
|
69
|
+
] if filter.schedule_folders else None,
|
|
70
|
+
workflow_paths=filter.workflow_paths,
|
|
71
|
+
workflow_folders=[
|
|
72
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
73
|
+
for f in filter.workflow_folders
|
|
74
|
+
] if filter.workflow_folders else None,
|
|
75
|
+
controller_ids=filter.controller_ids,
|
|
76
|
+
order_ids=filter.order_ids,
|
|
77
|
+
late=filter.late,
|
|
78
|
+
submission_history_ids=filter.submission_history_ids,
|
|
79
|
+
audit_log=res_audit_log
|
|
80
|
+
)
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from ...context import Context
|
|
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
|
+
SubmissionsDeleteRequest as SubmissionsDeleteRequest_V_2_8_2,
|
|
11
|
+
SubmissionsDeleteRequestFilter as SubmissionsDeleteRequestFilter_V_2_8_2
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from ....util.check_matching_version import check_matching_version
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def delete_submissions_action(
|
|
18
|
+
*,
|
|
19
|
+
context: Context,
|
|
20
|
+
controller_id: str,
|
|
21
|
+
filter_date_for: Optional[date],
|
|
22
|
+
filter_date_from: Optional[date],
|
|
23
|
+
filter_date_to: Optional[date],
|
|
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
|
+
controller_id=controller_id,
|
|
30
|
+
filter_date_for=filter_date_for,
|
|
31
|
+
filter_date_from=filter_date_from,
|
|
32
|
+
filter_date_to=filter_date_to,
|
|
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="daily_plan/submissions/delete", 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
|
+
controller_id: str,
|
|
57
|
+
filter_date_for: Optional[date],
|
|
58
|
+
filter_date_from: Optional[date],
|
|
59
|
+
filter_date_to: Optional[date],
|
|
60
|
+
audit_log: Optional[AuditLog],
|
|
61
|
+
) -> SubmissionsDeleteRequest_V_2_8_2:
|
|
62
|
+
|
|
63
|
+
# Validate: controller_id
|
|
64
|
+
if not controller_id:
|
|
65
|
+
raise ValueError("'controller_id' is required.")
|
|
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
|
+
# Result
|
|
75
|
+
return SubmissionsDeleteRequest_V_2_8_2(
|
|
76
|
+
controller_id=controller_id,
|
|
77
|
+
filter=SubmissionsDeleteRequestFilter_V_2_8_2(
|
|
78
|
+
date_for=filter_date_for,
|
|
79
|
+
date_from=filter_date_from,
|
|
80
|
+
date_to=filter_date_to
|
|
81
|
+
),
|
|
82
|
+
audit_log=res_audit_log
|
|
83
|
+
)
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
from datetime import date, datetime
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
4
|
+
from ...context import Context
|
|
5
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
6
|
+
from ....model.public.client.filter.element.folder import Folder
|
|
7
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
8
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
9
|
+
Folder as Folder_V_2_8_2,
|
|
10
|
+
GenerateRequest as GenerateRequest_V_2_8_2,
|
|
11
|
+
PathItem as PathItem_V_2_8_2,
|
|
12
|
+
Folder as Folder_V_2_8_2,
|
|
13
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
14
|
+
OK as OK_V_2_8_2
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from ....util.check_matching_version import check_matching_version
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def generate_orders_action(
|
|
21
|
+
*,
|
|
22
|
+
context: Context,
|
|
23
|
+
controller_id: str,
|
|
24
|
+
daily_plan_dates: List[date],
|
|
25
|
+
schedule_folder_paths: Optional[List[Folder]],
|
|
26
|
+
schedule_paths: Optional[List[str]],
|
|
27
|
+
workflow_folder_paths: Optional[List[Folder]],
|
|
28
|
+
workflow_paths: Optional[List[str]],
|
|
29
|
+
overwrite: bool,
|
|
30
|
+
with_submit: bool,
|
|
31
|
+
include_non_auto_planned_orders: bool,
|
|
32
|
+
audit_log: Optional[AuditLog]
|
|
33
|
+
) -> bool:
|
|
34
|
+
|
|
35
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
36
|
+
request_data = _build_v_2_8_2_request(
|
|
37
|
+
controller_id=controller_id,
|
|
38
|
+
daily_plan_dates=daily_plan_dates,
|
|
39
|
+
schedule_folder_paths=schedule_folder_paths,
|
|
40
|
+
schedule_paths=schedule_paths,
|
|
41
|
+
workflow_folder_paths=workflow_folder_paths,
|
|
42
|
+
workflow_paths=workflow_paths,
|
|
43
|
+
overwrite=overwrite,
|
|
44
|
+
with_submit=with_submit,
|
|
45
|
+
include_non_auto_planned_orders=include_non_auto_planned_orders,
|
|
46
|
+
audit_log=audit_log
|
|
47
|
+
)
|
|
48
|
+
else:
|
|
49
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
50
|
+
|
|
51
|
+
# Calls the dispatcher for the matching JOC version
|
|
52
|
+
result = context.joc_api.dispatch(endpoint_id="daily_plan/orders/generate", call=EndpointCall(
|
|
53
|
+
http_service=context.http_service,
|
|
54
|
+
access_token=context.auth_provider.login(),
|
|
55
|
+
payload=request_data,
|
|
56
|
+
options=None
|
|
57
|
+
))
|
|
58
|
+
|
|
59
|
+
if isinstance(result, OK_V_2_8_2):
|
|
60
|
+
return bool(result.ok)
|
|
61
|
+
|
|
62
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
63
|
+
|
|
64
|
+
#---------------------#
|
|
65
|
+
# Build 2.8.2 request #
|
|
66
|
+
#---------------------#
|
|
67
|
+
def _build_v_2_8_2_request(
|
|
68
|
+
*,
|
|
69
|
+
controller_id: str,
|
|
70
|
+
daily_plan_dates: List[date],
|
|
71
|
+
schedule_folder_paths: Optional[List[Folder]],
|
|
72
|
+
schedule_paths: Optional[List[str]],
|
|
73
|
+
workflow_folder_paths: Optional[List[Folder]],
|
|
74
|
+
workflow_paths: Optional[List[str]],
|
|
75
|
+
overwrite: bool,
|
|
76
|
+
with_submit: bool,
|
|
77
|
+
include_non_auto_planned_orders: bool,
|
|
78
|
+
audit_log: Optional[AuditLog]
|
|
79
|
+
) -> GenerateRequest_V_2_8_2:
|
|
80
|
+
|
|
81
|
+
# Validate: controller_id
|
|
82
|
+
if not controller_id:
|
|
83
|
+
raise ValueError("'controller_id' is required.")
|
|
84
|
+
|
|
85
|
+
# Validate: daily_plan_dates
|
|
86
|
+
if not daily_plan_dates:
|
|
87
|
+
raise ValueError("At least one date in 'daily_plan_dates' is required.")
|
|
88
|
+
|
|
89
|
+
# Build: audit_log
|
|
90
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
91
|
+
ticket_link=audit_log.ticket_link,
|
|
92
|
+
comment=audit_log.comment,
|
|
93
|
+
time_spent=audit_log.time_spent
|
|
94
|
+
) if audit_log else None
|
|
95
|
+
|
|
96
|
+
# Result
|
|
97
|
+
return GenerateRequest_V_2_8_2(
|
|
98
|
+
controller_id=controller_id,
|
|
99
|
+
daily_plan_dates=[
|
|
100
|
+
datetime.combine(d, datetime.min.time())
|
|
101
|
+
for d in daily_plan_dates
|
|
102
|
+
],
|
|
103
|
+
schedule_paths=PathItem_V_2_8_2(
|
|
104
|
+
folders=[
|
|
105
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
106
|
+
for f in schedule_folder_paths
|
|
107
|
+
] if schedule_folder_paths else None,
|
|
108
|
+
singles=schedule_paths
|
|
109
|
+
),
|
|
110
|
+
workflow_paths=PathItem_V_2_8_2(
|
|
111
|
+
folders=[
|
|
112
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
113
|
+
for f in workflow_folder_paths
|
|
114
|
+
] if workflow_folder_paths else None,
|
|
115
|
+
singles=workflow_paths
|
|
116
|
+
),
|
|
117
|
+
overwrite=overwrite,
|
|
118
|
+
with_submit=with_submit,
|
|
119
|
+
include_non_auto_planned_orders=include_non_auto_planned_orders,
|
|
120
|
+
audit_log=res_audit_log
|
|
121
|
+
)
|
|
@@ -0,0 +1,59 @@
|
|
|
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.daily_plan_order_filters import DailyPlanProjectionsFilter
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
Folder as Folder_V_2_8_2,
|
|
8
|
+
ProjectionsRequest as ProjectionsRequest_V_2_8_2,
|
|
9
|
+
ProjectionsCalendarResponse as ProjectionsCalendarResponse_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def get_calendar_projections_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
filter: DailyPlanProjectionsFilter
|
|
19
|
+
) -> Dict[str, Any]:
|
|
20
|
+
|
|
21
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
22
|
+
request_data = _build_v_2_8_2_request(filter)
|
|
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="daily_plan/projections/calendar", 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, ProjectionsCalendarResponse_V_2_8_2):
|
|
35
|
+
return result.model_dump(mode="json").get("years") or {}
|
|
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(filter: DailyPlanProjectionsFilter) -> ProjectionsRequest_V_2_8_2:
|
|
43
|
+
# Result
|
|
44
|
+
return ProjectionsRequest_V_2_8_2(
|
|
45
|
+
date_from=filter.date_from,
|
|
46
|
+
date_to=filter.date_to,
|
|
47
|
+
schedule_paths=filter.schedule_paths,
|
|
48
|
+
schedule_folders=[
|
|
49
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
50
|
+
for f in filter.schedule_folders
|
|
51
|
+
] if filter.schedule_folders else None,
|
|
52
|
+
workflow_paths=filter.workflow_paths,
|
|
53
|
+
workflow_folders=[
|
|
54
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
55
|
+
for f in filter.workflow_folders
|
|
56
|
+
] if filter.workflow_folders else None,
|
|
57
|
+
without_start_time=filter.without_start_time,
|
|
58
|
+
controller_ids=filter.controller_ids,
|
|
59
|
+
)
|
|
@@ -0,0 +1,70 @@
|
|
|
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.daily_plan_order_filters import DailyPlanOrdersFilter
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
DailyPlanOrdersFilter as DailyPlanOrdersFilter_V_2_8_2,
|
|
8
|
+
PlannedOrders as PlannedOrders_V_2_8_2,
|
|
9
|
+
DailyPlanOrderStateText as DailyPlanOrderStateText_V_2_8_2,
|
|
10
|
+
Folder as Folder_V_2_8_2
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from ....util.check_matching_version import check_matching_version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_orders_action(
|
|
17
|
+
*,
|
|
18
|
+
context: Context,
|
|
19
|
+
filter: DailyPlanOrdersFilter,
|
|
20
|
+
) -> Dict[str, Any]:
|
|
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(filter)
|
|
24
|
+
else:
|
|
25
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
26
|
+
|
|
27
|
+
# Calls the dispatcher for the matching JOC version
|
|
28
|
+
result = context.joc_api.dispatch(endpoint_id="daily_plan/orders", call=EndpointCall(
|
|
29
|
+
http_service=context.http_service,
|
|
30
|
+
access_token=context.auth_provider.login(),
|
|
31
|
+
payload=request_data,
|
|
32
|
+
options=None
|
|
33
|
+
))
|
|
34
|
+
|
|
35
|
+
if isinstance(result, PlannedOrders_V_2_8_2):
|
|
36
|
+
return result.model_dump(mode="json")
|
|
37
|
+
|
|
38
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
39
|
+
|
|
40
|
+
#---------------------#
|
|
41
|
+
# Build 2.8.2 request #
|
|
42
|
+
#---------------------#
|
|
43
|
+
def _build_v_2_8_2_request(filter: DailyPlanOrdersFilter) -> DailyPlanOrdersFilter_V_2_8_2:
|
|
44
|
+
# Result
|
|
45
|
+
return DailyPlanOrdersFilter_V_2_8_2(
|
|
46
|
+
daily_plan_date_from=filter.date_from,
|
|
47
|
+
daily_plan_date_to=filter.date_to,
|
|
48
|
+
controller_ids=filter.controller_ids,
|
|
49
|
+
late=filter.late,
|
|
50
|
+
order_ids=filter.order_ids,
|
|
51
|
+
order_tags=filter.order_tags,
|
|
52
|
+
workflow_tags=filter.workflow_tags,
|
|
53
|
+
workflow_paths=filter.workflow_paths,
|
|
54
|
+
schedule_paths=filter.schedule_paths,
|
|
55
|
+
|
|
56
|
+
states=[
|
|
57
|
+
DailyPlanOrderStateText_V_2_8_2(s) # Returns ValueError() if invalid.
|
|
58
|
+
for s in filter.states
|
|
59
|
+
] if filter.states else None,
|
|
60
|
+
|
|
61
|
+
schedule_folders=[
|
|
62
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
63
|
+
for f in filter.schedule_folders
|
|
64
|
+
] if filter.schedule_folders else None,
|
|
65
|
+
|
|
66
|
+
workflow_folders=[
|
|
67
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
68
|
+
for f in filter.workflow_folders
|
|
69
|
+
] if filter.workflow_folders else None
|
|
70
|
+
)
|
|
@@ -0,0 +1,59 @@
|
|
|
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.daily_plan_order_filters import DailyPlanProjectionsFilter
|
|
6
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
7
|
+
Folder as Folder_V_2_8_2,
|
|
8
|
+
ProjectionsRequest as ProjectionsRequest_V_2_8_2,
|
|
9
|
+
ProjectionsCalendarResponse as ProjectionsCalendarResponse_V_2_8_2
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from ....util.check_matching_version import check_matching_version
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def get_projection_dates_action(
|
|
16
|
+
*,
|
|
17
|
+
context: Context,
|
|
18
|
+
filter: DailyPlanProjectionsFilter
|
|
19
|
+
) -> Dict[str, Any]:
|
|
20
|
+
|
|
21
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
22
|
+
request_data = _build_v_2_8_2_request(filter)
|
|
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="daily_plan/projections/dates", 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, ProjectionsCalendarResponse_V_2_8_2):
|
|
35
|
+
return result.model_dump(mode="json").get("years") or {}
|
|
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(filter: DailyPlanProjectionsFilter) -> ProjectionsRequest_V_2_8_2:
|
|
43
|
+
# Result
|
|
44
|
+
return ProjectionsRequest_V_2_8_2(
|
|
45
|
+
date_from=filter.date_from,
|
|
46
|
+
date_to=filter.date_to,
|
|
47
|
+
schedule_paths=filter.schedule_paths,
|
|
48
|
+
schedule_folders=[
|
|
49
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
50
|
+
for f in filter.schedule_folders
|
|
51
|
+
] if filter.schedule_folders else None,
|
|
52
|
+
workflow_paths=filter.workflow_paths,
|
|
53
|
+
workflow_folders=[
|
|
54
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
55
|
+
for f in filter.workflow_folders
|
|
56
|
+
] if filter.workflow_folders else None,
|
|
57
|
+
without_start_time=filter.without_start_time,
|
|
58
|
+
controller_ids=filter.controller_ids,
|
|
59
|
+
)
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.common.cycle import Cycle
|
|
5
|
+
from ....model.public.client.common.audit_log import AuditLog
|
|
6
|
+
from ....model.public.client.common.schedule_time import ScheduleTime
|
|
7
|
+
from ....model.private.api.endpoint import EndpointCall
|
|
8
|
+
from ....model.private.http.joc.joc_v_2_8_2 import (
|
|
9
|
+
Cycle as Cycle_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
11
|
+
OrderIDMap200 as OrderIDMap200_V_2_8_2,
|
|
12
|
+
DailyPlanModifyOrder as DailyPlanModifyOrder_V_2_8_2
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
from ....util.check_matching_version import check_matching_version
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def modify_orders_action(
|
|
19
|
+
*,
|
|
20
|
+
context: Context,
|
|
21
|
+
controller_id: str,
|
|
22
|
+
order_ids: List[str],
|
|
23
|
+
scheduled_for: Optional[ScheduleTime],
|
|
24
|
+
cycle: Optional[Cycle],
|
|
25
|
+
force_job_admission: bool,
|
|
26
|
+
sticky_daily_plan_date: bool,
|
|
27
|
+
variables: Optional[Dict[str, Any]],
|
|
28
|
+
remove_variables: Optional[List[str]],
|
|
29
|
+
start_position_label: Optional[str],
|
|
30
|
+
end_position_labels: Optional[List[str]],
|
|
31
|
+
block_position_label: Optional[str],
|
|
32
|
+
audit_log: Optional[AuditLog]
|
|
33
|
+
) -> List[Tuple[str, str]]:
|
|
34
|
+
|
|
35
|
+
if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
|
|
36
|
+
request_data = _build_v_2_8_2_request(
|
|
37
|
+
timezone=context.client_config.timezone,
|
|
38
|
+
controller_id=controller_id,
|
|
39
|
+
order_ids=order_ids,
|
|
40
|
+
scheduled_for=scheduled_for,
|
|
41
|
+
cycle=cycle,
|
|
42
|
+
force_job_admission=force_job_admission,
|
|
43
|
+
sticky_daily_plan_date=sticky_daily_plan_date,
|
|
44
|
+
variables=variables,
|
|
45
|
+
remove_variables=remove_variables,
|
|
46
|
+
start_position_label=start_position_label,
|
|
47
|
+
end_position_labels=end_position_labels,
|
|
48
|
+
block_position_label=block_position_label,
|
|
49
|
+
audit_log=audit_log
|
|
50
|
+
)
|
|
51
|
+
else:
|
|
52
|
+
raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
|
|
53
|
+
|
|
54
|
+
# Calls the dispatcher for the matching JOC version
|
|
55
|
+
result = context.joc_api.dispatch(endpoint_id="daily_plan/orders/modify", call=EndpointCall(
|
|
56
|
+
http_service=context.http_service,
|
|
57
|
+
access_token=context.auth_provider.login(),
|
|
58
|
+
payload=request_data,
|
|
59
|
+
options=None
|
|
60
|
+
))
|
|
61
|
+
|
|
62
|
+
if isinstance(result, OrderIDMap200_V_2_8_2):
|
|
63
|
+
return [
|
|
64
|
+
(old_id, new_id)
|
|
65
|
+
for old_id, new_id in result.order_ids
|
|
66
|
+
] if result.order_ids else []
|
|
67
|
+
|
|
68
|
+
raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
|
|
69
|
+
|
|
70
|
+
#---------------------#
|
|
71
|
+
# Build 2.8.2 request #
|
|
72
|
+
#---------------------#
|
|
73
|
+
def _build_v_2_8_2_request(
|
|
74
|
+
*,
|
|
75
|
+
timezone: str,
|
|
76
|
+
controller_id: str,
|
|
77
|
+
order_ids: List[str],
|
|
78
|
+
scheduled_for: Optional[ScheduleTime],
|
|
79
|
+
cycle: Optional[Cycle],
|
|
80
|
+
force_job_admission: bool,
|
|
81
|
+
sticky_daily_plan_date: bool,
|
|
82
|
+
variables: Optional[Dict[str, Any]],
|
|
83
|
+
remove_variables: Optional[List[str]],
|
|
84
|
+
start_position_label: Optional[str],
|
|
85
|
+
end_position_labels: Optional[List[str]],
|
|
86
|
+
block_position_label: Optional[str],
|
|
87
|
+
audit_log: Optional[AuditLog]
|
|
88
|
+
) -> DailyPlanModifyOrder_V_2_8_2:
|
|
89
|
+
|
|
90
|
+
# Validate: timezone
|
|
91
|
+
if not timezone:
|
|
92
|
+
raise ValueError("'timezone' is required in client config.")
|
|
93
|
+
|
|
94
|
+
# Validate: controller_id
|
|
95
|
+
if not controller_id:
|
|
96
|
+
raise ValueError("'controller_id' is required.")
|
|
97
|
+
|
|
98
|
+
# Validate: order_ids
|
|
99
|
+
if not order_ids:
|
|
100
|
+
raise ValueError("At least one order id in 'order_ids' is required.")
|
|
101
|
+
|
|
102
|
+
# Build: audit_log
|
|
103
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
104
|
+
ticket_link=audit_log.ticket_link,
|
|
105
|
+
comment=audit_log.comment,
|
|
106
|
+
time_spent=audit_log.time_spent
|
|
107
|
+
) if audit_log else None
|
|
108
|
+
|
|
109
|
+
# Result
|
|
110
|
+
return DailyPlanModifyOrder_V_2_8_2(
|
|
111
|
+
time_zone=timezone,
|
|
112
|
+
controller_id=controller_id,
|
|
113
|
+
order_ids=order_ids,
|
|
114
|
+
scheduled_for=scheduled_for.value if scheduled_for else None,
|
|
115
|
+
cycle=Cycle_V_2_8_2(
|
|
116
|
+
begin=str(cycle.begin),
|
|
117
|
+
end=str(cycle.end),
|
|
118
|
+
repeat=str(cycle.repeat)
|
|
119
|
+
) if cycle else None,
|
|
120
|
+
force_job_admission=force_job_admission,
|
|
121
|
+
stick_daily_plan_date=sticky_daily_plan_date,
|
|
122
|
+
variables=variables,
|
|
123
|
+
remove_variables=remove_variables,
|
|
124
|
+
start_position=start_position_label,
|
|
125
|
+
end_positions=[
|
|
126
|
+
p for p in end_position_labels
|
|
127
|
+
] if end_position_labels else None, # Linter Trick.
|
|
128
|
+
block_position=block_position_label,
|
|
129
|
+
audit_log=res_audit_log
|
|
130
|
+
)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ...context import Context
|
|
4
|
+
from ....model.public.client.filter.daily_plan_order_filters import DailyPlanSubmitOrderFilter
|
|
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
|
+
Folder as Folder_V_2_8_2,
|
|
9
|
+
DailyPlanSubmitOrders as DailyPlanSubmitOrders_V_2_8_2,
|
|
10
|
+
AuditParams as AuditParams_V_2_8_2,
|
|
11
|
+
OK as OK_V_2_8_2
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from ....util.check_matching_version import check_matching_version
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def submit_orders_action(
|
|
18
|
+
*,
|
|
19
|
+
context: Context,
|
|
20
|
+
filter: DailyPlanSubmitOrderFilter,
|
|
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
|
+
filter=filter,
|
|
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="daily_plan/orders/submit", 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
|
+
filter: DailyPlanSubmitOrderFilter,
|
|
51
|
+
audit_log: Optional[AuditLog]
|
|
52
|
+
) -> DailyPlanSubmitOrders_V_2_8_2:
|
|
53
|
+
|
|
54
|
+
# Build: audit_log
|
|
55
|
+
res_audit_log = AuditParams_V_2_8_2(
|
|
56
|
+
ticket_link=audit_log.ticket_link,
|
|
57
|
+
comment=audit_log.comment,
|
|
58
|
+
time_spent=audit_log.time_spent
|
|
59
|
+
) if audit_log else None
|
|
60
|
+
|
|
61
|
+
# Result
|
|
62
|
+
return DailyPlanSubmitOrders_V_2_8_2(
|
|
63
|
+
daily_plan_date_from=filter.date_from,
|
|
64
|
+
daily_plan_date_to=filter.date_to,
|
|
65
|
+
schedule_paths=filter.schedule_paths,
|
|
66
|
+
schedule_folders=[
|
|
67
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
68
|
+
for f in filter.schedule_folders
|
|
69
|
+
] if filter.schedule_folders else None,
|
|
70
|
+
workflow_paths=filter.workflow_paths,
|
|
71
|
+
workflow_folders=[
|
|
72
|
+
Folder_V_2_8_2(folder=f.folder_path, recursive=f.recursive)
|
|
73
|
+
for f in filter.workflow_folders
|
|
74
|
+
] if filter.workflow_folders else None,
|
|
75
|
+
controller_ids=filter.controller_ids,
|
|
76
|
+
order_ids=filter.order_ids,
|
|
77
|
+
submission_history_ids=filter.submission_history_ids,
|
|
78
|
+
audit_log=res_audit_log
|
|
79
|
+
)
|