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.
Files changed (389) hide show
  1. js7/__init__.py +8 -0
  2. js7/api/joc/http/v_2_8_2/agent/cluster/confirm_node_loss.py +36 -0
  3. js7/api/joc/http/v_2_8_2/agent/cluster/switchover.py +36 -0
  4. js7/api/joc/http/v_2_8_2/agent/delete.py +36 -0
  5. js7/api/joc/http/v_2_8_2/agents/agents.py +36 -0
  6. js7/api/joc/http/v_2_8_2/agents/cluster/delete.py +36 -0
  7. js7/api/joc/http/v_2_8_2/agents/cluster/deploy.py +36 -0
  8. js7/api/joc/http/v_2_8_2/agents/cluster/revoke.py +36 -0
  9. js7/api/joc/http/v_2_8_2/agents/cluster/store.py +36 -0
  10. js7/api/joc/http/v_2_8_2/agents/export.py +36 -0
  11. js7/api/joc/http/v_2_8_2/agents/import.py +74 -0
  12. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/deploy.py +36 -0
  13. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/revoke.py +36 -0
  14. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/store.py +36 -0
  15. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/delete.py +36 -0
  16. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/disable.py +36 -0
  17. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/enable.py +36 -0
  18. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/reset.py +36 -0
  19. js7/api/joc/http/v_2_8_2/agents/inventory/cluster/subagents/store.py +36 -0
  20. js7/api/joc/http/v_2_8_2/agents/inventory/deploy.py +36 -0
  21. js7/api/joc/http/v_2_8_2/agents/inventory/disable.py +36 -0
  22. js7/api/joc/http/v_2_8_2/agents/inventory/enable.py +36 -0
  23. js7/api/joc/http/v_2_8_2/agents/inventory/revoke.py +36 -0
  24. js7/api/joc/http/v_2_8_2/agents/inventory/store.py +36 -0
  25. js7/api/joc/http/v_2_8_2/agents/reset.py +36 -0
  26. js7/api/joc/http/v_2_8_2/authentication/auth.py +32 -0
  27. js7/api/joc/http/v_2_8_2/authentication/joc_cockpit_permissions.py +28 -0
  28. js7/api/joc/http/v_2_8_2/authentication/login.py +35 -0
  29. js7/api/joc/http/v_2_8_2/authentication/logout.py +28 -0
  30. js7/api/joc/http/v_2_8_2/configuration/configuration.py +36 -0
  31. js7/api/joc/http/v_2_8_2/configuration/save.py +36 -0
  32. js7/api/joc/http/v_2_8_2/controller/abort.py +36 -0
  33. js7/api/joc/http/v_2_8_2/controller/abort_and_restart.py +36 -0
  34. js7/api/joc/http/v_2_8_2/controller/cluster/appoint_nodes.py +36 -0
  35. js7/api/joc/http/v_2_8_2/controller/cluster/confirm_node_loss.py +36 -0
  36. js7/api/joc/http/v_2_8_2/controller/cluster/switchover.py +36 -0
  37. js7/api/joc/http/v_2_8_2/controller/components.py +36 -0
  38. js7/api/joc/http/v_2_8_2/controller/controller.py +36 -0
  39. js7/api/joc/http/v_2_8_2/controller/register.py +42 -0
  40. js7/api/joc/http/v_2_8_2/controller/restart.py +36 -0
  41. js7/api/joc/http/v_2_8_2/controller/terminate.py +36 -0
  42. js7/api/joc/http/v_2_8_2/controller/test.py +36 -0
  43. js7/api/joc/http/v_2_8_2/controller/unregister.py +36 -0
  44. js7/api/joc/http/v_2_8_2/daily_plan/orders/cancel.py +36 -0
  45. js7/api/joc/http/v_2_8_2/daily_plan/orders/copy.py +36 -0
  46. js7/api/joc/http/v_2_8_2/daily_plan/orders/delete.py +36 -0
  47. js7/api/joc/http/v_2_8_2/daily_plan/orders/generate.py +36 -0
  48. js7/api/joc/http/v_2_8_2/daily_plan/orders/modify.py +36 -0
  49. js7/api/joc/http/v_2_8_2/daily_plan/orders/orders.py +36 -0
  50. js7/api/joc/http/v_2_8_2/daily_plan/orders/submit.py +36 -0
  51. js7/api/joc/http/v_2_8_2/daily_plan/projections/calendar.py +36 -0
  52. js7/api/joc/http/v_2_8_2/daily_plan/projections/dates.py +36 -0
  53. js7/api/joc/http/v_2_8_2/daily_plan/projections/recreate.py +28 -0
  54. js7/api/joc/http/v_2_8_2/daily_plan/submissions/delete.py +36 -0
  55. js7/api/joc/http/v_2_8_2/iam/account/change_password.py +36 -0
  56. js7/api/joc/http/v_2_8_2/iam/account/permissions.py +36 -0
  57. js7/api/joc/http/v_2_8_2/iam/account/rename.py +36 -0
  58. js7/api/joc/http/v_2_8_2/iam/account/store.py +36 -0
  59. js7/api/joc/http/v_2_8_2/iam/accounts/accounts.py +36 -0
  60. js7/api/joc/http/v_2_8_2/iam/accounts/delete.py +36 -0
  61. js7/api/joc/http/v_2_8_2/iam/accounts/disable.py +36 -0
  62. js7/api/joc/http/v_2_8_2/iam/accounts/enable.py +36 -0
  63. js7/api/joc/http/v_2_8_2/iam/accounts/reset_password.py +36 -0
  64. js7/api/joc/http/v_2_8_2/iam/blocked_account/store.py +36 -0
  65. js7/api/joc/http/v_2_8_2/iam/blocked_accounts/blocked_accounts.py +36 -0
  66. js7/api/joc/http/v_2_8_2/iam/blocked_accounts/delete.py +36 -0
  67. js7/api/joc/http/v_2_8_2/iam/folder/folder.py +36 -0
  68. js7/api/joc/http/v_2_8_2/iam/folder/rename.py +36 -0
  69. js7/api/joc/http/v_2_8_2/iam/folders/delete.py +36 -0
  70. js7/api/joc/http/v_2_8_2/iam/folders/folders.py +36 -0
  71. js7/api/joc/http/v_2_8_2/iam/folders/store.py +36 -0
  72. js7/api/joc/http/v_2_8_2/iam/identity_service/delete.py +36 -0
  73. js7/api/joc/http/v_2_8_2/iam/identity_service/identity_service.py +36 -0
  74. js7/api/joc/http/v_2_8_2/iam/identity_service/rename.py +36 -0
  75. js7/api/joc/http/v_2_8_2/iam/identity_service/store.py +42 -0
  76. js7/api/joc/http/v_2_8_2/iam/identity_services/identity_services.py +36 -0
  77. js7/api/joc/http/v_2_8_2/iam/permission/permission.py +36 -0
  78. js7/api/joc/http/v_2_8_2/iam/permission/rename.py +36 -0
  79. js7/api/joc/http/v_2_8_2/iam/permissions/delete.py +36 -0
  80. js7/api/joc/http/v_2_8_2/iam/permissions/permissions.py +36 -0
  81. js7/api/joc/http/v_2_8_2/iam/permissions/store.py +36 -0
  82. js7/api/joc/http/v_2_8_2/iam/role/rename.py +36 -0
  83. js7/api/joc/http/v_2_8_2/iam/role/role.py +36 -0
  84. js7/api/joc/http/v_2_8_2/iam/role/store.py +36 -0
  85. js7/api/joc/http/v_2_8_2/iam/roles/delete.py +36 -0
  86. js7/api/joc/http/v_2_8_2/iam/roles/roles.py +36 -0
  87. js7/api/joc/http/v_2_8_2/inventory/changes/changes.py +36 -0
  88. js7/api/joc/http/v_2_8_2/inventory/dependencies.py +33 -0
  89. js7/api/joc/http/v_2_8_2/inventory/deployment/deploy.py +36 -0
  90. js7/api/joc/http/v_2_8_2/inventory/deployment/import_deploy.py +66 -0
  91. js7/api/joc/http/v_2_8_2/inventory/deployment/revoke.py +36 -0
  92. js7/api/joc/http/v_2_8_2/inventory/export/export.py +36 -0
  93. js7/api/joc/http/v_2_8_2/inventory/export/folder.py +36 -0
  94. js7/api/joc/http/v_2_8_2/inventory/import_objects.py +88 -0
  95. js7/api/joc/http/v_2_8_2/inventory/releasables/recall/folder.py +36 -0
  96. js7/api/joc/http/v_2_8_2/inventory/releasables/recall/recall.py +36 -0
  97. js7/api/joc/http/v_2_8_2/inventory/release.py +36 -0
  98. js7/api/joc/http/v_2_8_2/inventory/remove/folder.py +36 -0
  99. js7/api/joc/http/v_2_8_2/inventory/remove/remove.py +36 -0
  100. js7/api/joc/http/v_2_8_2/inventory/repository/delete.py +36 -0
  101. js7/api/joc/http/v_2_8_2/inventory/repository/git/add.py +36 -0
  102. js7/api/joc/http/v_2_8_2/inventory/repository/git/checkout.py +36 -0
  103. js7/api/joc/http/v_2_8_2/inventory/repository/git/clone.py +36 -0
  104. js7/api/joc/http/v_2_8_2/inventory/repository/git/commit.py +36 -0
  105. js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/add.py +36 -0
  106. js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/credentials.py +28 -0
  107. js7/api/joc/http/v_2_8_2/inventory/repository/git/credentials/remove.py +36 -0
  108. js7/api/joc/http/v_2_8_2/inventory/repository/git/pull.py +36 -0
  109. js7/api/joc/http/v_2_8_2/inventory/repository/git/push.py +36 -0
  110. js7/api/joc/http/v_2_8_2/inventory/repository/read.py +36 -0
  111. js7/api/joc/http/v_2_8_2/inventory/repository/store.py +36 -0
  112. js7/api/joc/http/v_2_8_2/inventory/repository/update.py +36 -0
  113. js7/api/joc/http/v_2_8_2/inventory/revalidate/folder.py +36 -0
  114. js7/api/joc/http/v_2_8_2/inventory/store.py +36 -0
  115. js7/api/joc/http/v_2_8_2/inventory/trash/delete/delete.py +36 -0
  116. js7/api/joc/http/v_2_8_2/inventory/trash/delete/folder.py +36 -0
  117. js7/api/joc/http/v_2_8_2/inventory/trash/restore.py +36 -0
  118. js7/api/joc/http/v_2_8_2/inventory/validate.py +42 -0
  119. js7/api/joc/http/v_2_8_2/joc/cluster/restart.py +36 -0
  120. js7/api/joc/http/v_2_8_2/joc/cluster/run.py +36 -0
  121. js7/api/joc/http/v_2_8_2/joc/cluster/switch_member.py +36 -0
  122. js7/api/joc/http/v_2_8_2/joc/license.py +28 -0
  123. js7/api/joc/http/v_2_8_2/joc/proxies/restart.py +36 -0
  124. js7/api/joc/http/v_2_8_2/joc/version.py +28 -0
  125. js7/api/joc/http/v_2_8_2/joc/versions.py +36 -0
  126. js7/api/joc/http/v_2_8_2/orders/add.py +33 -0
  127. js7/api/joc/http/v_2_8_2/orders/cancel.py +33 -0
  128. js7/api/joc/http/v_2_8_2/orders/confirm.py +36 -0
  129. js7/api/joc/http/v_2_8_2/orders/continue.py +36 -0
  130. js7/api/joc/http/v_2_8_2/orders/history.py +36 -0
  131. js7/api/joc/http/v_2_8_2/orders/orders.py +36 -0
  132. js7/api/joc/http/v_2_8_2/orders/remove_when_terminated.py +33 -0
  133. js7/api/joc/http/v_2_8_2/orders/resume.py +36 -0
  134. js7/api/joc/http/v_2_8_2/orders/suspend.py +36 -0
  135. js7/api/joc/http/v_2_8_2/settings/settings.py +28 -0
  136. js7/api/joc/http/v_2_8_2/settings/store.py +36 -0
  137. js7/api/joc/http/v_2_8_2/tasks/history.py +36 -0
  138. js7/api/joc/http/v_2_8_2/workflow/transition.py +36 -0
  139. js7/api/joc/http/v_2_8_2/workflow/workflow.py +36 -0
  140. js7/api/joc/http/v_2_8_2/workflows/resume.py +36 -0
  141. js7/api/joc/http/v_2_8_2/workflows/skip.py +36 -0
  142. js7/api/joc/http/v_2_8_2/workflows/stop.py +36 -0
  143. js7/api/joc/http/v_2_8_2/workflows/suspend.py +36 -0
  144. js7/api/joc/http/v_2_8_2/workflows/unskip.py +36 -0
  145. js7/api/joc/http/v_2_8_2/workflows/unstop.py +36 -0
  146. js7/api/joc/http/v_2_8_2/workflows/workflows.py +36 -0
  147. js7/api/joc/interface/dispatcher.py +76 -0
  148. js7/api/joc/interface/interface.py +8 -0
  149. js7/api/joc/interface/resolver.py +75 -0
  150. js7/client/action/agent/confirm_node_loss_agent_action.py +75 -0
  151. js7/client/action/agent/delete_subagent_action.py +77 -0
  152. js7/client/action/agent/delete_subagent_clusters_action.py +75 -0
  153. js7/client/action/agent/deploy_cluster_agents_action.py +75 -0
  154. js7/client/action/agent/deploy_standalone_agents_action.py +75 -0
  155. js7/client/action/agent/deploy_subagent_clusters_action.py +75 -0
  156. js7/client/action/agent/disable_standalone_agents_action.py +75 -0
  157. js7/client/action/agent/disable_subagents_action.py +75 -0
  158. js7/client/action/agent/enable_standalone_agents_action.py +75 -0
  159. js7/client/action/agent/enable_subagents_action.py +75 -0
  160. js7/client/action/agent/export_agents_action.py +101 -0
  161. js7/client/action/agent/get_agents_status_action.py +55 -0
  162. js7/client/action/agent/import_agents_action.py +139 -0
  163. js7/client/action/agent/remove_agent_action.py +79 -0
  164. js7/client/action/agent/reset_agents_action.py +79 -0
  165. js7/client/action/agent/reset_subagent_action.py +79 -0
  166. js7/client/action/agent/revoke_cluster_agents_action.py +75 -0
  167. js7/client/action/agent/revoke_standalone_agents_action.py +75 -0
  168. js7/client/action/agent/revoke_subagent_clusters_action.py +75 -0
  169. js7/client/action/agent/store_cluster_agents_action.py +99 -0
  170. js7/client/action/agent/store_standalone_agents_action.py +87 -0
  171. js7/client/action/agent/store_subagent_clusters_action.py +83 -0
  172. js7/client/action/agent/store_subagents_action.py +97 -0
  173. js7/client/action/agent/switchover_agent_action.py +75 -0
  174. js7/client/action/controller/appoint_nodes_controller_action.py +67 -0
  175. js7/client/action/controller/cancel_and_restart_controller_action.py +72 -0
  176. js7/client/action/controller/cancel_controller_action.py +71 -0
  177. js7/client/action/controller/confirm_cluster_node_loss_action.py +68 -0
  178. js7/client/action/controller/get_controller_components_action.py +41 -0
  179. js7/client/action/controller/get_controller_status_action.py +72 -0
  180. js7/client/action/controller/register_controller_action.py +93 -0
  181. js7/client/action/controller/restart_controller_action.py +72 -0
  182. js7/client/action/controller/switchover_controller_cluster_action.py +67 -0
  183. js7/client/action/controller/terminate_controller_action.py +72 -0
  184. js7/client/action/controller/test_controller_instance_action.py +65 -0
  185. js7/client/action/controller/unregister_controller_action.py +68 -0
  186. js7/client/action/daily_plan/cancel_orders_action.py +59 -0
  187. js7/client/action/daily_plan/copy_orders_action.py +108 -0
  188. js7/client/action/daily_plan/create_projections_action.py +24 -0
  189. js7/client/action/daily_plan/delete_orders_action.py +80 -0
  190. js7/client/action/daily_plan/delete_submissions_action.py +83 -0
  191. js7/client/action/daily_plan/generate_orders_action.py +121 -0
  192. js7/client/action/daily_plan/get_calendar_projections_action.py +59 -0
  193. js7/client/action/daily_plan/get_orders_action.py +70 -0
  194. js7/client/action/daily_plan/get_projection_dates_action.py +59 -0
  195. js7/client/action/daily_plan/modify_orders_action.py +130 -0
  196. js7/client/action/daily_plan/submit_orders_action.py +79 -0
  197. js7/client/action/helper/decrypt_action.py +82 -0
  198. js7/client/action/helper/encrypt_action.py +87 -0
  199. js7/client/action/iam/block_account_action.py +71 -0
  200. js7/client/action/iam/change_account_password_action.py +96 -0
  201. js7/client/action/iam/disable_accounts_action.py +75 -0
  202. js7/client/action/iam/enable_accounts_action.py +75 -0
  203. js7/client/action/iam/get_account_permissions_action.py +75 -0
  204. js7/client/action/iam/get_accounts_action.py +76 -0
  205. js7/client/action/iam/get_blocked_accounts_action.py +76 -0
  206. js7/client/action/iam/get_folder_permissions_action.py +112 -0
  207. js7/client/action/iam/get_identity_service_settings_action.py +70 -0
  208. js7/client/action/iam/get_identity_services_action.py +102 -0
  209. js7/client/action/iam/get_permissions_action.py +113 -0
  210. js7/client/action/iam/get_roles_action.py +57 -0
  211. js7/client/action/iam/remove_accounts_action.py +75 -0
  212. js7/client/action/iam/remove_folder_permissions_action.py +91 -0
  213. js7/client/action/iam/remove_identity_service_action.py +67 -0
  214. js7/client/action/iam/remove_permissions_action.py +88 -0
  215. js7/client/action/iam/remove_roles_action.py +75 -0
  216. js7/client/action/iam/rename_account_action.py +83 -0
  217. js7/client/action/iam/rename_folder_permissions_action.py +100 -0
  218. js7/client/action/iam/rename_identity_service_action.py +75 -0
  219. js7/client/action/iam/rename_permission_action.py +103 -0
  220. js7/client/action/iam/rename_role_action.py +83 -0
  221. js7/client/action/iam/reset_account_passwords_action.py +75 -0
  222. js7/client/action/iam/set_folder_permissions_action.py +96 -0
  223. js7/client/action/iam/set_permissions_action.py +91 -0
  224. js7/client/action/iam/store_account_action.py +69 -0
  225. js7/client/action/iam/store_identity_service_action.py +75 -0
  226. js7/client/action/iam/store_identity_service_settings_action.py +74 -0
  227. js7/client/action/iam/store_role_action.py +79 -0
  228. js7/client/action/iam/unblock_accounts_action.py +67 -0
  229. js7/client/action/inventory/deploy_configurations_action.py +138 -0
  230. js7/client/action/inventory/export_configurations_action.py +203 -0
  231. js7/client/action/inventory/export_folders_action.py +160 -0
  232. js7/client/action/inventory/get_change_dependencies_action.py +161 -0
  233. js7/client/action/inventory/get_changes_action.py +59 -0
  234. js7/client/action/inventory/get_git_credentials_action.py +29 -0
  235. js7/client/action/inventory/git_add_action.py +72 -0
  236. js7/client/action/inventory/git_checkout_action.py +88 -0
  237. js7/client/action/inventory/git_clone_action.py +84 -0
  238. js7/client/action/inventory/git_commit_action.py +80 -0
  239. js7/client/action/inventory/git_pull_action.py +72 -0
  240. js7/client/action/inventory/git_push_action.py +76 -0
  241. js7/client/action/inventory/import_configurations_action.py +153 -0
  242. js7/client/action/inventory/import_deploy_configurations_action.py +188 -0
  243. js7/client/action/inventory/read_from_local_repository_action.py +67 -0
  244. js7/client/action/inventory/recall_folder_action.py +89 -0
  245. js7/client/action/inventory/recall_released_configuration_action.py +75 -0
  246. js7/client/action/inventory/release_configuartions_action.py +89 -0
  247. js7/client/action/inventory/remove_configurations_action.py +77 -0
  248. js7/client/action/inventory/remove_configurations_from_trash_action.py +80 -0
  249. js7/client/action/inventory/remove_folder_action.py +67 -0
  250. js7/client/action/inventory/remove_folder_from_trash_action.py +69 -0
  251. js7/client/action/inventory/remove_git_credentials_action.py +53 -0
  252. js7/client/action/inventory/remove_repository_configuration_action.py +84 -0
  253. js7/client/action/inventory/restore_configuration_from_trash_action.py +84 -0
  254. js7/client/action/inventory/revalidate_folder_action.py +46 -0
  255. js7/client/action/inventory/revoke_configurations_action.py +86 -0
  256. js7/client/action/inventory/store_configuration_action.py +79 -0
  257. js7/client/action/inventory/store_git_credentials_action.py +99 -0
  258. js7/client/action/inventory/store_repository_configuration_action.py +124 -0
  259. js7/client/action/inventory/update_repository_configuration_action.py +85 -0
  260. js7/client/action/inventory/validate_configuration_action.py +58 -0
  261. js7/client/action/joc/get_components_versions_action.py +57 -0
  262. js7/client/action/joc/get_license_info_action.py +22 -0
  263. js7/client/action/joc/get_settings_action.py +19 -0
  264. js7/client/action/joc/get_version_action.py +17 -0
  265. js7/client/action/joc/restart_proxies_action.py +50 -0
  266. js7/client/action/joc/restart_service_action.py +74 -0
  267. js7/client/action/joc/run_service_action.py +74 -0
  268. js7/client/action/joc/store_settings_action.py +62 -0
  269. js7/client/action/joc/switch_over_action.py +89 -0
  270. js7/client/action/order/add_orders_action.py +115 -0
  271. js7/client/action/order/cancel_orders_action.py +93 -0
  272. js7/client/action/order/confirm_orders_action.py +86 -0
  273. js7/client/action/order/continue_orders_action.py +86 -0
  274. js7/client/action/order/get_order_history_action.py +84 -0
  275. js7/client/action/order/get_orders_action.py +83 -0
  276. js7/client/action/order/remove_terminated_orders_action.py +86 -0
  277. js7/client/action/order/resume_orders_action.py +102 -0
  278. js7/client/action/order/suspend_orders_action.py +97 -0
  279. js7/client/action/task/get_task_history_info_action.py +88 -0
  280. js7/client/action/workflow/get_workflow_versions_action.py +131 -0
  281. js7/client/action/workflow/resume_workflows_action.py +76 -0
  282. js7/client/action/workflow/set_workflow_version_as_current_action.py +86 -0
  283. js7/client/action/workflow/skip_job_instructions_action.py +83 -0
  284. js7/client/action/workflow/stop_job_instructions_action.py +83 -0
  285. js7/client/action/workflow/suspend_workflows_action.py +76 -0
  286. js7/client/action/workflow/unskip_job_instructions_action.py +83 -0
  287. js7/client/action/workflow/unstop_job_instructions_action.py +79 -0
  288. js7/client/auth/auth_provider.py +109 -0
  289. js7/client/auth/login.py +34 -0
  290. js7/client/auth/logout.py +22 -0
  291. js7/client/client.py +250 -0
  292. js7/client/context.py +40 -0
  293. js7/client/feature/agent/agent.py +26 -0
  294. js7/client/feature/agent/deploy.py +134 -0
  295. js7/client/feature/agent/manage.py +363 -0
  296. js7/client/feature/agent/operate.py +577 -0
  297. js7/client/feature/controller/controller.py +19 -0
  298. js7/client/feature/controller/manage.py +214 -0
  299. js7/client/feature/controller/operate.py +274 -0
  300. js7/client/feature/daily_plan/daily_plan.py +14 -0
  301. js7/client/feature/daily_plan/manage.py +179 -0
  302. js7/client/feature/daily_plan/operate.py +354 -0
  303. js7/client/feature/iam/iam.py +14 -0
  304. js7/client/feature/iam/manage.py +1311 -0
  305. js7/client/feature/inventory/inventory.py +13 -0
  306. js7/client/feature/inventory/manage.py +943 -0
  307. js7/client/feature/inventory/manage_repository.py +533 -0
  308. js7/client/feature/joc/joc.py +18 -0
  309. js7/client/feature/joc/manage.py +102 -0
  310. js7/client/feature/joc/operate.py +185 -0
  311. js7/client/feature/order/manage.py +79 -0
  312. js7/client/feature/order/operate.py +346 -0
  313. js7/client/feature/order/order.py +18 -0
  314. js7/client/feature/task/task.py +54 -0
  315. js7/client/feature/workflow/manage.py +54 -0
  316. js7/client/feature/workflow/operate.py +336 -0
  317. js7/client/feature/workflow/workflow.py +19 -0
  318. js7/java/lib/3rd-party/bcpg-jdk15to18-1.78.1.jar +0 -0
  319. js7/java/lib/3rd-party/bcpkix-jdk15to18-1.78.1.jar +0 -0
  320. js7/java/lib/3rd-party/bcprov-jdk15to18-1.78.1.jar +0 -0
  321. js7/java/lib/3rd-party/bcutil-jdk15to18-1.78.1.jar +0 -0
  322. js7/java/lib/3rd-party/commons-io-2.15.1.jar +0 -0
  323. js7/java/lib/3rd-party/commons-lang3-3.14.0.jar +0 -0
  324. js7/java/lib/3rd-party/jackson-core-2.14.2.jar +0 -0
  325. js7/java/lib/3rd-party/jackson-databind-2.14.2.jar +0 -0
  326. js7/java/lib/3rd-party/jackson-dataformat-xml-2.14.2.jar +0 -0
  327. js7/java/lib/3rd-party/jakarta.annotation-api-2.1.1.jar +0 -0
  328. js7/java/lib/3rd-party/javax.activation-api-1.2.0.jar +0 -0
  329. js7/java/lib/3rd-party/jaxb-api-2.4.0-b180830.0359.jar +0 -0
  330. js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-api-2.23.1.jar +0 -0
  331. js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-core-2.23.1.jar +0 -0
  332. js7/java/lib/3rd-party/org.apache.logging.log4j.log4j-slf4j2-impl-2.23.1.jar +0 -0
  333. js7/java/lib/3rd-party/org.slf4j.slf4j-api-2.0.13.jar +0 -0
  334. js7/java/lib/3rd-party/stax2-api-4.2.1.jar +0 -0
  335. js7/java/lib/3rd-party/woodstox-core-6.5.0.jar +0 -0
  336. js7/java/lib/sos/sos-commons-encryption-2.7.3.jar +0 -0
  337. js7/java/lib/sos/sos-commons-exception-2.7.3.jar +0 -0
  338. js7/java/lib/sos/sos-commons-sign-2.7.3.jar +0 -0
  339. js7/java/lib/sos/sos-webservices-json-2.7.3.jar +0 -0
  340. js7/model/__init__.py +132 -0
  341. js7/model/configuration/auth_configuration.py +24 -0
  342. js7/model/configuration/client_configuration.py +6 -0
  343. js7/model/configuration/http_configuration.py +10 -0
  344. js7/model/error/http/joc_exceptions.py +151 -0
  345. js7/model/private/api/endpoint.py +30 -0
  346. js7/model/private/http/joc/joc_v_2_8_2.py +3666 -0
  347. js7/model/public/client/common/__init__.py +27 -0
  348. js7/model/public/client/common/accounts.py +21 -0
  349. js7/model/public/client/common/audit_log.py +8 -0
  350. js7/model/public/client/common/changes.py +18 -0
  351. js7/model/public/client/common/configurations.py +53 -0
  352. js7/model/public/client/common/cycle.py +12 -0
  353. js7/model/public/client/common/git_credentials.py +12 -0
  354. js7/model/public/client/common/identity_service.py +14 -0
  355. js7/model/public/client/common/schedule_time.py +50 -0
  356. js7/model/public/client/common/store_agents.py +96 -0
  357. js7/model/public/client/enum/__init__.py +19 -0
  358. js7/model/public/client/enum/object_types.py +48 -0
  359. js7/model/public/client/enum/operation_type.py +11 -0
  360. js7/model/public/client/enum/order_priority.py +9 -0
  361. js7/model/public/client/filter/__init__.py +35 -0
  362. js7/model/public/client/filter/daily_plan_order_filters.py +255 -0
  363. js7/model/public/client/filter/element/__init__.py +3 -0
  364. js7/model/public/client/filter/element/folder.py +6 -0
  365. js7/model/public/client/filter/element/workflow_id.py +10 -0
  366. js7/model/public/client/filter/export_filter.py +52 -0
  367. js7/model/public/client/filter/export_folders_filter.py +34 -0
  368. js7/model/public/client/filter/get_order_filter.py +59 -0
  369. js7/model/public/client/filter/order_history_filter.py +113 -0
  370. js7/model/public/client/filter/resume_order_filter.py +45 -0
  371. js7/model/public/client/filter/suspend_order_filter.py +44 -0
  372. js7/model/public/client/filter/tasks_filter.py +50 -0
  373. js7/model/public/client/input/__init__.py +2 -0
  374. js7/model/public/client/input/add_order.py +50 -0
  375. js7/service/http_service.py +206 -0
  376. js7/util/bytes_converter/bytes_to_archive_bytes.py +52 -0
  377. js7/util/bytes_converter/bytes_to_file.py +12 -0
  378. js7/util/bytes_converter/files_to_bytes.py +52 -0
  379. js7/util/bytes_converter/read_bytes_archive_files_to_bytes.py +69 -0
  380. js7/util/bytes_converter/sign_to_bytes.py +106 -0
  381. js7/util/check_matching_version.py +20 -0
  382. js7/util/detect_archive_type.py +37 -0
  383. js7/util/str_converter/order_id_to_order_name.py +5 -0
  384. js7/validator/http/joc_http_status_validator.py +155 -0
  385. js7_client_python-2.0.1.0.dist-info/LICENSE +674 -0
  386. js7_client_python-2.0.1.0.dist-info/METADATA +763 -0
  387. js7_client_python-2.0.1.0.dist-info/RECORD +389 -0
  388. js7_client_python-2.0.1.0.dist-info/WHEEL +5 -0
  389. js7_client_python-2.0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,77 @@
1
+ from typing import List, Optional
2
+
3
+ from ....model.public.client.common.audit_log import AuditLog
4
+ from ...context import Context
5
+ from ....model.private.api.endpoint import EndpointCall
6
+ from ....model.public.client.common.configurations import Configuration
7
+ from ....model.private.http.joc.joc_v_2_8_2 import (
8
+ AuditParams as AuditParams_V_2_8_2,
9
+ CommonConfigurationType as ConfigurationType_V_2_8_2,
10
+ RequestFilters as RequestFilters_V_2_8_2,
11
+ OK as OK_V_2_8_2,
12
+ CommonRequestFilter as CommonRequestFilter_V_2_8_2,
13
+ )
14
+
15
+ from ....util.check_matching_version import check_matching_version
16
+
17
+
18
+ def remove_configurations_action(
19
+ *,
20
+ context: Context,
21
+ configurations: List[Configuration],
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(configurations=configurations, audit_log=audit_log)
27
+ else:
28
+ raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
29
+
30
+ # Calls the dispatcher for the matching JOC version
31
+ result = context.joc_api.dispatch(endpoint_id="inventory/remove", call=EndpointCall(
32
+ http_service=context.http_service,
33
+ access_token=context.auth_provider.login(),
34
+ payload=request_data,
35
+ options=None,
36
+ ))
37
+
38
+ if isinstance(result, OK_V_2_8_2):
39
+ return bool(result.ok)
40
+
41
+ raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
42
+
43
+ #---------------------#
44
+ # Build 2.8.2 request #
45
+ #---------------------#
46
+ def _build_v_2_8_2_request(
47
+ *,
48
+ configurations: List[Configuration],
49
+ audit_log: Optional[AuditLog]
50
+ ) -> RequestFilters_V_2_8_2:
51
+
52
+ # Validate: configurations
53
+ if not configurations:
54
+ raise ValueError("'configurations' are required.")
55
+
56
+ # Build: res_object
57
+ res_object = [
58
+ CommonRequestFilter_V_2_8_2(
59
+ path=c.path,
60
+ object_type=ConfigurationType_V_2_8_2(c.object_type.value) # Raises ValueError() if invalid.
61
+ )
62
+ for c in configurations
63
+ ]
64
+
65
+ # Build: Audit log
66
+ res_audit_log = AuditParams_V_2_8_2(
67
+ ticket_link=audit_log.ticket_link,
68
+ comment=audit_log.comment,
69
+ time_spent=audit_log.time_spent
70
+ ) if audit_log else None
71
+
72
+ return RequestFilters_V_2_8_2(
73
+ objects=res_object,
74
+ audit_log=res_audit_log,
75
+
76
+ cancel_orders_date_from=None, # Not the correct domain
77
+ )
@@ -0,0 +1,80 @@
1
+ from typing import List, Optional
2
+
3
+ from ...context import Context
4
+ from ....model.public.client.common.audit_log import AuditLog
5
+ from ....model.public.client.common.configurations import Configuration
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
+ CommonRequestFilter as CommonRequestFilter_V_2_8_2,
10
+ OK as OK_V_2_8_2,
11
+ CommonConfigurationType as ConfigurationType_V_2_8_2,
12
+ RequestFilters as RequestFilters_V_2_8_2
13
+ )
14
+
15
+ from ....util.check_matching_version import check_matching_version
16
+
17
+
18
+ def remove_configurations_from_trash_action(
19
+ *,
20
+ context: Context,
21
+ configurations: List[Configuration],
22
+ audit_log: Optional[AuditLog]
23
+ ) -> bool:
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
+ configurations=configurations,
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="inventory/trash/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
+ configurations: List[Configuration],
51
+ audit_log: Optional[AuditLog]
52
+ ) -> RequestFilters_V_2_8_2:
53
+
54
+ # Validate: configurations
55
+ if not configurations:
56
+ raise ValueError("'configurations' are required.")
57
+
58
+ # Build: res_objects
59
+ res_objects = [
60
+ CommonRequestFilter_V_2_8_2(
61
+ path=c.path,
62
+ object_type=ConfigurationType_V_2_8_2(c.object_type.value) # Raises ValueError() if invalid.
63
+ )
64
+ for c in configurations
65
+ ]
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 RequestFilters_V_2_8_2(
76
+ objects=res_objects,
77
+ audit_log=res_audit_log,
78
+
79
+ cancel_orders_date_from=None, # Wrong domain
80
+ )
@@ -0,0 +1,67 @@
1
+ from typing import 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
+ RequestFolder as RequestFolder_V_2_8_2,
9
+ OK as OK_V_2_8_2,
10
+ )
11
+
12
+ from ....util.check_matching_version import check_matching_version
13
+
14
+
15
+ def remove_folder_action(
16
+ *,
17
+ context: Context,
18
+ folder_path: str,
19
+ audit_log: Optional[AuditLog]
20
+ ) -> bool:
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(folder_path=folder_path, audit_log=audit_log)
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="inventory/remove/folder", 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, OK_V_2_8_2):
35
+ return bool(result.ok)
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
+ folder_path: str,
44
+ audit_log: Optional[AuditLog]
45
+ ) -> RequestFolder_V_2_8_2:
46
+
47
+ # Validate: folder_path
48
+ if not folder_path:
49
+ raise ValueError("'folder_path' 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
+ return RequestFolder_V_2_8_2(
59
+ path=folder_path,
60
+ audit_log=res_audit_log,
61
+
62
+ cancel_orders_date_from=None, # Not the right domain here.
63
+ controller_id=None,
64
+ recursive=True,
65
+ object_types=None,
66
+ only_valid_objects=False,
67
+ )
@@ -0,0 +1,69 @@
1
+ from typing import Optional
2
+
3
+ from ...context import Context
4
+ from ....model.public.client.common.audit_log import AuditLog
5
+ from ....model.private.api.endpoint import EndpointCall
6
+ from ....model.private.http.joc.joc_v_2_8_2 import (
7
+ AuditParams as AuditParams_V_2_8_2,
8
+ CommonRequestFolder as CommonRequestFolder_V_2_8_2,
9
+ OK as OK_V_2_8_2
10
+ )
11
+
12
+ from ....util.check_matching_version import check_matching_version
13
+
14
+
15
+ def remove_folder_from_trash_action(
16
+ *,
17
+ context: Context,
18
+ folder_path: str,
19
+ audit_log: Optional[AuditLog]
20
+ ) -> bool:
21
+
22
+ if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
23
+ request_data = _build_v_2_8_2_request(folder_path=folder_path, audit_log=audit_log)
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="inventory/trash/delete/folder", 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, OK_V_2_8_2):
36
+ return bool(result.ok)
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(
44
+ *,
45
+ folder_path: str,
46
+ audit_log: Optional[AuditLog]
47
+ ) -> CommonRequestFolder_V_2_8_2:
48
+
49
+ # Validate: folder_path
50
+ if not folder_path:
51
+ raise ValueError("'folder_path' is required.")
52
+
53
+ # Build: Audit log
54
+ res_audit_log = AuditParams_V_2_8_2(
55
+ ticket_link=audit_log.ticket_link,
56
+ comment=audit_log.comment,
57
+ time_spent=audit_log.time_spent
58
+ ) if audit_log else None
59
+
60
+ # Result
61
+ return CommonRequestFolder_V_2_8_2(
62
+ path=folder_path,
63
+ audit_log=res_audit_log,
64
+ recursive=True,
65
+
66
+ controller_id=None,
67
+ object_types=None,
68
+ only_valid_objects=None,
69
+ )
@@ -0,0 +1,53 @@
1
+ from typing import Optional
2
+
3
+ from ...context import Context
4
+ from ....model.public.client.common.audit_log import AuditLog
5
+ from ....model.private.api.endpoint import EndpointCall
6
+ from ....model.private.http.joc.joc_v_2_8_2 import (
7
+ AuditParams as AuditParams_V_2_8_2,
8
+ RemoveCredentialsFilter as RemoveCredentialsFilter_V_2_8_2,
9
+ OK as OK_V_2_8_2
10
+ )
11
+
12
+ from ....util.check_matching_version import check_matching_version
13
+
14
+
15
+ def remove_git_credentials_action(*, context: Context, git_server: str, audit_log: Optional[AuditLog]) -> bool:
16
+ if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
17
+ request_data = _build_v_2_8_2_request(git_server=git_server, audit_log=audit_log)
18
+ else:
19
+ raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
20
+
21
+ # Calls the dispatcher for the matching JOC version
22
+ result = context.joc_api.dispatch(endpoint_id="inventory/repository/git/credentials/remove", call=EndpointCall(
23
+ http_service=context.http_service,
24
+ access_token=context.auth_provider.login(),
25
+ payload=request_data,
26
+ options=None,
27
+ ))
28
+
29
+ if isinstance(result, OK_V_2_8_2):
30
+ return bool(result.ok)
31
+
32
+ raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
33
+
34
+ #---------------------#
35
+ # Build 2.8.2 request #
36
+ #---------------------#
37
+ def _build_v_2_8_2_request(*, git_server: str, audit_log: Optional[AuditLog]) -> RemoveCredentialsFilter_V_2_8_2:
38
+ # Validates git_server
39
+ if not git_server:
40
+ raise ValueError("'git_server' is required.")
41
+
42
+ # Build: Audit Log
43
+ res_audit_log = AuditParams_V_2_8_2(
44
+ ticket_link=audit_log.ticket_link,
45
+ comment=audit_log.comment,
46
+ time_spent=audit_log.time_spent
47
+ ) if audit_log else None
48
+
49
+ # Result
50
+ return RemoveCredentialsFilter_V_2_8_2(
51
+ git_servers=[git_server],
52
+ audit_log=res_audit_log
53
+ )
@@ -0,0 +1,84 @@
1
+ from typing import List, Literal, Optional
2
+
3
+ from ...context import Context
4
+ from ....model.public.client.common.audit_log import AuditLog
5
+ from ....model.public.client.common.configurations import Configuration
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
+ CommonConfigurationType as ConfigurationType_V_2_8_2,
11
+ DeleteFromFilter as DeleteFromFilter_V_2_8_2,
12
+ Category as Category_V_2_8_2,
13
+ PublishConfiguration as Configuration_V_2_8_2,
14
+ )
15
+
16
+ from ....util.check_matching_version import check_matching_version
17
+
18
+
19
+ def remove_repository_configuration_action(
20
+ *,
21
+ context: Context,
22
+ configurations: List[Configuration],
23
+ category: Literal["LOCAL", "ROLLOUT"],
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(configurations=configurations, category=category, audit_log=audit_log)
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="inventory/repository/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
+ configurations: List[Configuration],
51
+ category: Literal["LOCAL", "ROLLOUT"],
52
+ audit_log: Optional[AuditLog]
53
+ ) -> DeleteFromFilter_V_2_8_2:
54
+
55
+ # Validates configurations
56
+ if not configurations:
57
+ raise ValueError("At least one configuration in 'configurations' is required.")
58
+
59
+ # Validate: category
60
+ if category not in ("LOCAL", "ROLLOUT"):
61
+ raise ValueError("'category' must be one of 'LOCAL' or 'ROLLOUT'.")
62
+
63
+ # Build: Configurations
64
+ res_configurations: List[Configuration_V_2_8_2] = [
65
+ Configuration_V_2_8_2(
66
+ object_type=ConfigurationType_V_2_8_2(c.object_type.value), # Raises ValueError() if invalid.
67
+ path=c.path,
68
+ )
69
+ for c in configurations
70
+ ]
71
+
72
+ # Build: Audit Log
73
+ res_audit_log = AuditParams_V_2_8_2(
74
+ ticket_link=audit_log.ticket_link,
75
+ comment=audit_log.comment,
76
+ time_spent=audit_log.time_spent
77
+ ) if audit_log else None
78
+
79
+ # Result
80
+ return DeleteFromFilter_V_2_8_2(
81
+ configurations=res_configurations,
82
+ category=Category_V_2_8_2(category), # Raises ValueError() if invalid.
83
+ audit_log=res_audit_log,
84
+ )
@@ -0,0 +1,84 @@
1
+ from typing import Optional
2
+
3
+ from ...context import Context
4
+ from ....model.public.client.common.audit_log import AuditLog
5
+ from ....model.private.api.endpoint import EndpointCall
6
+ from ....model.public.client.common.configurations import Configuration
7
+ from ....model.private.http.joc.joc_v_2_8_2 import (
8
+ AuditParams as AuditParams_V_2_8_2,
9
+ RequestFilter as RequestFilter_V_2_8_2,
10
+ CommonConfigurationType as ConfigurationType_V_2_8_2,
11
+ ResponseNewPath as ResponseNewPath_V_2_8_2
12
+ )
13
+
14
+ from ....util.check_matching_version import check_matching_version
15
+
16
+
17
+ # Returns: new configuration path
18
+ def restore_configuration_from_trash_action(
19
+ *,
20
+ context: Context,
21
+ configuration: Configuration,
22
+ new_path: str,
23
+ add_prefix: Optional[str],
24
+ add_suffix: Optional[str],
25
+ audit_log: Optional[AuditLog]
26
+ ) -> 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
+ configuration=configuration,
31
+ new_path=new_path,
32
+ add_prefix=add_prefix,
33
+ add_suffix=add_suffix,
34
+ audit_log=audit_log
35
+ )
36
+ else:
37
+ raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
38
+
39
+ # Calls the dispatcher for the matching JOC version
40
+ result = context.joc_api.dispatch(endpoint_id="inventory/trash/restore", call=EndpointCall(
41
+ http_service=context.http_service,
42
+ access_token=context.auth_provider.login(),
43
+ payload=request_data,
44
+ options=None,
45
+ ))
46
+
47
+ if isinstance(result, ResponseNewPath_V_2_8_2):
48
+ if result.path:
49
+ return result.path
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
+ configuration: Configuration,
59
+ new_path: str,
60
+ add_prefix: Optional[str],
61
+ add_suffix: Optional[str],
62
+ audit_log: Optional[AuditLog]
63
+ ) -> RequestFilter_V_2_8_2:
64
+
65
+ # Validate: new_path
66
+ if not new_path:
67
+ raise ValueError("'new_path' is required.")
68
+
69
+ # Build: Audit log
70
+ res_audit_log = AuditParams_V_2_8_2(
71
+ ticket_link=audit_log.ticket_link,
72
+ comment=audit_log.comment,
73
+ time_spent=audit_log.time_spent
74
+ ) if audit_log else None
75
+
76
+ # Result
77
+ return RequestFilter_V_2_8_2(
78
+ path=configuration.path,
79
+ object_type=ConfigurationType_V_2_8_2(configuration.object_type.value), # Raises ValueError() if invalid.
80
+ new_path=new_path,
81
+ prefix=add_prefix,
82
+ suffix=add_suffix,
83
+ audit_log=res_audit_log,
84
+ )
@@ -0,0 +1,46 @@
1
+ from ....model.public.client.common.audit_log import AuditLog
2
+ from ...context import Context
3
+ from ....model.private.api.endpoint import EndpointCall
4
+ from ....model.private.http.joc.joc_v_2_8_2 import (
5
+ ValidateRequestFolder as ValidateRequestFolder_V_2_8_2,
6
+ AuditParams as AuditParams_V_2_8_2,
7
+ Report as Report_V_2_8_2
8
+ )
9
+
10
+ from ....util.check_matching_version import check_matching_version
11
+
12
+
13
+ def revalidate_folder_action(*, context: Context, path: str, audit_log: AuditLog) -> bool:
14
+ if check_matching_version(min="2.6.5", max="2.8.3", check=context.version):
15
+ request_data = _build_v_2_8_2_request(path=path, audit_log=audit_log)
16
+ else:
17
+ raise RuntimeError(f"Version {context.version} is not compatible with building the request.")
18
+
19
+ # Calls the dispatcher for the matching JOC version
20
+ result = context.joc_api.dispatch(endpoint_id="inventory/revalidate/folder", call=EndpointCall(
21
+ http_service=context.http_service,
22
+ access_token=context.auth_provider.login(),
23
+ payload=request_data,
24
+ options=None,
25
+ ))
26
+
27
+ if isinstance(result, Report_V_2_8_2):
28
+ if not result.valid_objs:
29
+ return False
30
+ return True
31
+
32
+ raise RuntimeError(f"Unexpected response type: {type(result).__name__}")
33
+
34
+ #---------------------#
35
+ # Build 2.8.2 request #
36
+ #---------------------#
37
+ def _build_v_2_8_2_request(*, path: str, audit_log: AuditLog) -> ValidateRequestFolder_V_2_8_2:
38
+ return ValidateRequestFolder_V_2_8_2(
39
+ path=path,
40
+ recursive=True,
41
+ audit_log=AuditParams_V_2_8_2(
42
+ ticket_link=audit_log.ticket_link,
43
+ comment=audit_log.comment,
44
+ time_spent=audit_log.time_spent
45
+ )
46
+ )
@@ -0,0 +1,86 @@
1
+ from typing import List, Optional
2
+
3
+ from ....model.public.client.common.audit_log import AuditLog
4
+ from ...context import Context
5
+ from ....model.private.api.endpoint import EndpointCall
6
+ from ....model.public.client.common.configurations import DeployConfiguration
7
+ from ....model.private.http.joc.joc_v_2_8_2 import (
8
+ Config as Config_V_2_8_2,
9
+ PublishConfiguration as Configuration_V_2_8_2,
10
+ CommonConfigurationType as ConfigurationType_V_2_8_2,
11
+ AuditParams as AuditParams_V_2_8_2,
12
+ RevokeFilter as RevokeFilter_V_2_8_2,
13
+ OK as OK_V_2_8_2
14
+ )
15
+
16
+ from ....util.check_matching_version import check_matching_version
17
+
18
+
19
+ def revoke_configurations_action(
20
+ *,
21
+ context: Context,
22
+ controller_ids: List[str],
23
+ configurations: List[DeployConfiguration],
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_ids=controller_ids,
30
+ configurations=configurations,
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="inventory/deployment/revoke", 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_ids: List[str],
55
+ configurations: List[DeployConfiguration],
56
+ audit_log: Optional[AuditLog]
57
+ ) -> RevokeFilter_V_2_8_2:
58
+
59
+ # Build: Audit log
60
+ res_audit_log = AuditParams_V_2_8_2(
61
+ ticket_link=audit_log.ticket_link,
62
+ comment=audit_log.comment,
63
+ time_spent=audit_log.time_spent
64
+ ) if audit_log else None
65
+
66
+ if not configurations:
67
+ raise ValueError("At least one entry is required in 'deploy_configurations'.")
68
+
69
+ # Build: res_configs
70
+ res_configs = [
71
+ Config_V_2_8_2(configuration=Configuration_V_2_8_2(
72
+ commit_id=c.commit_id,
73
+ path=c.path,
74
+ recursive=c.recursive,
75
+ object_type=ConfigurationType_V_2_8_2(c.object_type), # Raises ValueError() if invalid
76
+ ))
77
+ for c in configurations
78
+ ]
79
+
80
+ # Result
81
+ return RevokeFilter_V_2_8_2(
82
+ audit_log=res_audit_log,
83
+ controller_ids=controller_ids,
84
+ deploy_configurations=res_configs,
85
+ cancel_orders_date_from=None, # Wrong domain
86
+ )