cyberdesk 2.1.5__tar.gz → 2.1.7__tar.gz

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.

Potentially problematic release.


This version of cyberdesk might be problematic. Click here for more details.

Files changed (191) hide show
  1. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/PKG-INFO +1 -1
  2. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk/__init__.py +1 -1
  3. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk/client.py +73 -0
  4. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk.egg-info/PKG-INFO +1 -1
  5. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk.egg-info/SOURCES.txt +8 -0
  6. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/api/runs/create_run_chain_v1_runs_chain_post.py +192 -0
  7. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/__init__.py +14 -0
  8. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/chain_step.py +122 -0
  9. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/chain_step_inputs_type_0.py +74 -0
  10. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_response.py +30 -0
  11. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_update.py +32 -0
  12. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/ref_value.py +61 -0
  13. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py +51 -0
  14. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_create.py +71 -0
  15. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_response.py +50 -0
  16. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/workflow_chain_create.py +315 -0
  17. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/workflow_chain_create_shared_inputs_type_0.py +44 -0
  18. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/workflow_chain_create_shared_sensitive_inputs_type_0.py +44 -0
  19. cyberdesk-2.1.7/openapi_client/cyberdesk_cloud_client/models/workflow_chain_response.py +77 -0
  20. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/pyproject.toml +1 -1
  21. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/LICENSE +0 -0
  22. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/README.md +0 -0
  23. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk.egg-info/dependency_links.txt +0 -0
  24. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk.egg-info/requires.txt +0 -0
  25. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/cyberdesk.egg-info/top_level.txt +0 -0
  26. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/__init__.py +0 -0
  27. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/__init__.py +0 -0
  28. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/__init__.py +0 -0
  29. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/fs_list_v1_computer_machine_id_fs_list_get.py +0 -0
  30. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/fs_read_v1_computer_machine_id_fs_read_get.py +0 -0
  31. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/fs_write_v1_computer_machine_id_fs_write_post.py +0 -0
  32. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/get_display_dimensions_v1_computer_machine_id_display_dimensions_get.py +0 -0
  33. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/get_mouse_position_v1_computer_machine_id_input_mouse_position_get.py +0 -0
  34. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/get_screenshot_v1_computer_machine_id_display_screenshot_get.py +0 -0
  35. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/keyboard_key_v1_computer_machine_id_input_keyboard_key_post.py +0 -0
  36. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/keyboard_type_v1_computer_machine_id_input_keyboard_type_post.py +0 -0
  37. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/mouse_click_v1_computer_machine_id_input_mouse_click_post.py +0 -0
  38. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/mouse_move_v1_computer_machine_id_input_mouse_move_post.py +0 -0
  39. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/mouse_scroll_v1_computer_machine_id_input_mouse_scroll_post.py +0 -0
  40. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py +0 -0
  41. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/computer/powershell_session_v1_computer_machine_id_shell_powershell_session_post.py +0 -0
  42. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/__init__.py +0 -0
  43. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/create_connection_v1_connections_post.py +0 -0
  44. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/delete_connection_v1_connections_connection_id_delete.py +0 -0
  45. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/get_connection_v1_connections_connection_id_get.py +0 -0
  46. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/list_connections_v1_connections_get.py +0 -0
  47. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/connections/update_connection_v1_connections_connection_id_patch.py +0 -0
  48. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/default/__init__.py +0 -0
  49. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/default/health_db_health_db_get.py +0 -0
  50. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/default/health_health_get.py +0 -0
  51. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/default/root_get.py +0 -0
  52. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/health/__init__.py +0 -0
  53. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/health/database_health_check_v1_health_db_get.py +0 -0
  54. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/health/health_check_v1_health_get.py +0 -0
  55. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/__init__.py +0 -0
  56. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/create_machine_v1_machines_post.py +0 -0
  57. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/delete_machine_v1_machines_machine_id_delete.py +0 -0
  58. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/get_machine_pools_v1_machines_machine_id_pools_get.py +0 -0
  59. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/get_machine_v1_machines_machine_id_get.py +0 -0
  60. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/list_machines_v1_machines_get.py +0 -0
  61. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/update_machine_pools_v1_machines_machine_id_pools_put.py +0 -0
  62. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/machines/update_machine_v1_machines_machine_id_patch.py +0 -0
  63. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/__init__.py +0 -0
  64. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/add_machines_to_pool_v1_pools_pool_id_machines_post.py +0 -0
  65. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/create_pool_v1_pools_post.py +0 -0
  66. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/delete_pool_v1_pools_pool_id_delete.py +0 -0
  67. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/get_pool_v1_pools_pool_id_get.py +0 -0
  68. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/list_pools_v1_pools_get.py +0 -0
  69. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/remove_machines_from_pool_v1_pools_pool_id_machines_delete.py +0 -0
  70. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/pools/update_pool_v1_pools_pool_id_patch.py +0 -0
  71. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/__init__.py +0 -0
  72. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/create_request_log_v1_request_logs_post.py +0 -0
  73. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/delete_request_log_v1_request_logs_log_id_delete.py +0 -0
  74. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/get_request_log_v1_request_logs_log_id_get.py +0 -0
  75. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/list_request_logs_v1_request_logs_get.py +0 -0
  76. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/request_logs/update_request_log_v1_request_logs_log_id_patch.py +0 -0
  77. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/__init__.py +0 -0
  78. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/create_run_attachment_v1_run_attachments_post.py +0 -0
  79. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/delete_run_attachment_v1_run_attachments_attachment_id_delete.py +0 -0
  80. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/download_run_attachment_v1_run_attachments_attachment_id_download_get.py +0 -0
  81. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/get_run_attachment_download_url_v1_run_attachments_attachment_id_download_url_get.py +0 -0
  82. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/get_run_attachment_v1_run_attachments_attachment_id_get.py +0 -0
  83. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/list_run_attachments_v1_run_attachments_get.py +0 -0
  84. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/run_attachments/update_run_attachment_v1_run_attachments_attachment_id_put.py +0 -0
  85. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/__init__.py +0 -0
  86. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/bulk_create_runs_v1_runs_bulk_post.py +0 -0
  87. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/create_run_v1_runs_post.py +0 -0
  88. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/delete_run_v1_runs_run_id_delete.py +0 -0
  89. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/get_run_v1_runs_run_id_get.py +0 -0
  90. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/list_runs_v1_runs_get.py +0 -0
  91. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/runs/update_run_v1_runs_run_id_patch.py +0 -0
  92. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/test/__init__.py +0 -0
  93. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/test/dummy_test_endpoint_v1_test_post.py +0 -0
  94. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/__init__.py +0 -0
  95. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/create_trajectory_v1_trajectories_post.py +0 -0
  96. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/delete_trajectory_v1_trajectories_trajectory_id_delete.py +0 -0
  97. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/get_latest_trajectory_for_workflow_v1_workflows_workflow_id_latest_trajectory_get.py +0 -0
  98. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/get_trajectory_v1_trajectories_trajectory_id_get.py +0 -0
  99. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/list_trajectories_v1_trajectories_get.py +0 -0
  100. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/trajectories/update_trajectory_v1_trajectories_trajectory_id_patch.py +0 -0
  101. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/__init__.py +0 -0
  102. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/create_workflow_v1_workflows_post.py +0 -0
  103. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/delete_workflow_v1_workflows_workflow_id_delete.py +0 -0
  104. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_workflow_id_get.py +0 -0
  105. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py +0 -0
  106. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py +0 -0
  107. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py +0 -0
  108. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/client.py +0 -0
  109. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/errors.py +0 -0
  110. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/attachment_type.py +0 -0
  111. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/connection_create.py +0 -0
  112. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/connection_response.py +0 -0
  113. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/connection_status.py +0 -0
  114. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get.py +0 -0
  115. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/display_dimensions.py +0 -0
  116. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post.py +0 -0
  117. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/file_input.py +0 -0
  118. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/file_write_request.py +0 -0
  119. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/fs_list_v1_computer_machine_id_fs_list_get_response_fs_list_v1_computer_machine_id_fs_list_get.py +0 -0
  120. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/fs_read_v1_computer_machine_id_fs_read_get_response_fs_read_v1_computer_machine_id_fs_read_get.py +0 -0
  121. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/fs_write_v1_computer_machine_id_fs_write_post_response_fs_write_v1_computer_machine_id_fs_write_post.py +0 -0
  122. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item.py +0 -0
  123. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/health_check_v1_health_get_response_health_check_v1_health_get.py +0 -0
  124. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/health_health_get_response_health_health_get.py +0 -0
  125. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/http_validation_error.py +0 -0
  126. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/keyboard_key_request.py +0 -0
  127. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/keyboard_type_request.py +0 -0
  128. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_create.py +0 -0
  129. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_pool_assignment.py +0 -0
  130. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_pool_update.py +0 -0
  131. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/machine_status.py +0 -0
  132. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/mouse_click_request.py +0 -0
  133. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/mouse_move_request.py +0 -0
  134. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/mouse_position.py +0 -0
  135. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/mouse_scroll_request.py +0 -0
  136. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response.py +0 -0
  137. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_connection_response.py +0 -0
  138. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_machine_response.py +0 -0
  139. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_pool_response.py +0 -0
  140. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_run_attachment_response.py +0 -0
  141. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_run_response.py +0 -0
  142. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_trajectory_response.py +0 -0
  143. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/paginated_response_workflow_response.py +0 -0
  144. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/pool_create.py +0 -0
  145. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/pool_response.py +0 -0
  146. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/pool_update.py +0 -0
  147. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/pool_with_machines.py +0 -0
  148. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/power_shell_exec_request.py +0 -0
  149. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/power_shell_session_request.py +0 -0
  150. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post_response_powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py +0 -0
  151. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/powershell_session_v1_computer_machine_id_shell_powershell_session_post_response_powershell_session_v1_computer_machine_id_shell_powershell_session_post.py +0 -0
  152. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/request_log_create.py +0 -0
  153. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/request_log_response.py +0 -0
  154. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/request_log_update.py +0 -0
  155. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_attachment_create.py +0 -0
  156. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_attachment_download_url_response.py +0 -0
  157. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_attachment_response.py +0 -0
  158. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_attachment_update.py +0 -0
  159. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_bulk_create_input_values_type_0.py +0 -0
  160. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_bulk_create_response.py +0 -0
  161. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_bulk_create_sensitive_input_values_type_0.py +0 -0
  162. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_completed_event.py +0 -0
  163. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_create_input_values_type_0.py +0 -0
  164. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_create_sensitive_input_values_type_0.py +0 -0
  165. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_response_input_values_type_0.py +0 -0
  166. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_response_output_data_type_0.py +0 -0
  167. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_response_run_message_history_type_0_item.py +0 -0
  168. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_response_sensitive_input_aliases_type_0.py +0 -0
  169. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_status.py +0 -0
  170. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_update.py +0 -0
  171. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_update_input_values_type_0.py +0 -0
  172. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_update_output_data_type_0.py +0 -0
  173. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/run_update_run_message_history_type_0_item.py +0 -0
  174. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_create.py +0 -0
  175. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_create_dimensions.py +0 -0
  176. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_create_original_input_values_type_0.py +0 -0
  177. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_create_trajectory_data_item.py +0 -0
  178. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_response.py +0 -0
  179. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_response_dimensions.py +0 -0
  180. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_response_original_input_values_type_0.py +0 -0
  181. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data_item.py +0 -0
  182. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_update.py +0 -0
  183. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py +0 -0
  184. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/validation_error.py +0 -0
  185. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/workflow_create.py +0 -0
  186. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/workflow_response.py +0 -0
  187. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py +0 -0
  188. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/models/workflow_update.py +0 -0
  189. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/py.typed +0 -0
  190. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/openapi_client/cyberdesk_cloud_client/types.py +0 -0
  191. {cyberdesk-2.1.5 → cyberdesk-2.1.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyberdesk
3
- Version: 2.1.5
3
+ Version: 2.1.7
4
4
  Summary: The official Python SDK for Cyberdesk
5
5
  Author-email: Cyberdesk Team <dev@cyberdesk.io>
6
6
  License-Expression: MIT
@@ -27,7 +27,7 @@ from .client import (
27
27
  AttachmentType,
28
28
  )
29
29
 
30
- __version__ = "2.1.5"
30
+ __version__ = "2.1.7"
31
31
 
32
32
  __all__ = [
33
33
  "CyberdeskClient",
@@ -41,6 +41,7 @@ from openapi_client.cyberdesk_cloud_client.api.runs import (
41
41
  update_run_v1_runs_run_id_patch,
42
42
  delete_run_v1_runs_run_id_delete,
43
43
  bulk_create_runs_v1_runs_bulk_post,
44
+ create_run_chain_v1_runs_chain_post,
44
45
  )
45
46
  from openapi_client.cyberdesk_cloud_client.api.connections import (
46
47
  list_connections_v1_connections_get,
@@ -85,6 +86,8 @@ from openapi_client.cyberdesk_cloud_client.models import (
85
86
  RunStatus,
86
87
  RunBulkCreate,
87
88
  RunBulkCreateResponse,
89
+ WorkflowChainCreate,
90
+ WorkflowChainResponse,
88
91
  FileInput,
89
92
  ConnectionCreate,
90
93
  ConnectionResponse,
@@ -128,6 +131,8 @@ __all__ = [
128
131
  "RunStatus",
129
132
  "RunBulkCreate",
130
133
  "RunBulkCreateResponse",
134
+ "WorkflowChainCreate",
135
+ "WorkflowChainResponse",
131
136
  "FileInput",
132
137
  "ConnectionCreate",
133
138
  "ConnectionResponse",
@@ -312,6 +317,35 @@ class MachinesAPI:
312
317
  except Exception as e:
313
318
  return ApiResponse(error=e)
314
319
 
320
+ async def clear_session(self, machine_id: str) -> ApiResponse:
321
+ """Clear the machine's reserved session (cancels queued/running session runs).
322
+
323
+ This sends reserved_session_id=null per API contract.
324
+ """
325
+ try:
326
+ update = MachineUpdate(reserved_session_id=None)
327
+ response = await update_machine_v1_machines_machine_id_patch.asyncio(
328
+ client=self.client,
329
+ machine_id=_to_uuid(machine_id),
330
+ body=update
331
+ )
332
+ return ApiResponse(data=response)
333
+ except Exception as e:
334
+ return ApiResponse(error=e)
335
+
336
+ def clear_session_sync(self, machine_id: str) -> ApiResponse:
337
+ """Clear the machine's reserved session (synchronous)."""
338
+ try:
339
+ update = MachineUpdate(reserved_session_id=None)
340
+ response = update_machine_v1_machines_machine_id_patch.sync(
341
+ client=self.client,
342
+ machine_id=_to_uuid(machine_id),
343
+ body=update
344
+ )
345
+ return ApiResponse(data=response)
346
+ except Exception as e:
347
+ return ApiResponse(error=e)
348
+
315
349
  async def delete(self, machine_id: str) -> ApiResponse:
316
350
  """Delete a machine."""
317
351
  try:
@@ -854,6 +888,8 @@ class RunsAPI:
854
888
  - pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
855
889
  - input_values: Optional input values for workflow variables
856
890
  - file_inputs: Optional files to upload to the machine
891
+ - start_session: Optional bool to start a new machine session
892
+ - session_id: Optional UUID to join an existing session
857
893
 
858
894
  Returns:
859
895
  ApiResponse with RunResponse
@@ -877,6 +913,8 @@ class RunsAPI:
877
913
  - pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
878
914
  - input_values: Optional input values for workflow variables
879
915
  - file_inputs: Optional files to upload to the machine
916
+ - start_session: Optional bool to start a new machine session
917
+ - session_id: Optional UUID to join an existing session
880
918
 
881
919
  Returns:
882
920
  ApiResponse with RunResponse
@@ -974,6 +1012,8 @@ class RunsAPI:
974
1012
  - input_values: Optional input values for workflow variables
975
1013
  - file_inputs: Optional files to upload to the machine
976
1014
  - count: Number of runs to create (max 1000)
1015
+ - start_session: Optional bool to start a new machine session for all runs
1016
+ - session_id: Optional UUID to join an existing session for all runs
977
1017
 
978
1018
  Returns:
979
1019
  ApiResponse with RunBulkCreateResponse containing:
@@ -1006,6 +1046,8 @@ class RunsAPI:
1006
1046
  - input_values: Optional input values for workflow variables
1007
1047
  - file_inputs: Optional files to upload to the machine
1008
1048
  - count: Number of runs to create (max 1000)
1049
+ - start_session: Optional bool to start a new machine session for all runs
1050
+ - session_id: Optional UUID to join an existing session for all runs
1009
1051
 
1010
1052
  Returns:
1011
1053
  ApiResponse with RunBulkCreateResponse containing:
@@ -1022,6 +1064,37 @@ class RunsAPI:
1022
1064
  except Exception as e:
1023
1065
  return ApiResponse(error=e)
1024
1066
 
1067
+ async def chain(self, data: WorkflowChainCreate) -> ApiResponse:
1068
+ """Create a multi-step chain that runs on a single reserved session/machine.
1069
+
1070
+ Args:
1071
+ data: WorkflowChainCreate with steps (session_alias, inputs),
1072
+ optional shared_inputs/sensitive/file_inputs, and optional
1073
+ session_id or machine_id/pool_id for session start.
1074
+
1075
+ Returns:
1076
+ ApiResponse with WorkflowChainResponse
1077
+ """
1078
+ try:
1079
+ response = await create_run_chain_v1_runs_chain_post.asyncio(
1080
+ client=self.client,
1081
+ body=data
1082
+ )
1083
+ return ApiResponse(data=response)
1084
+ except Exception as e:
1085
+ return ApiResponse(error=e)
1086
+
1087
+ def chain_sync(self, data: WorkflowChainCreate) -> ApiResponse:
1088
+ """Create a multi-step chain (synchronous)."""
1089
+ try:
1090
+ response = create_run_chain_v1_runs_chain_post.sync(
1091
+ client=self.client,
1092
+ body=data
1093
+ )
1094
+ return ApiResponse(data=response)
1095
+ except Exception as e:
1096
+ return ApiResponse(error=e)
1097
+
1025
1098
 
1026
1099
  class ConnectionsAPI:
1027
1100
  """Connections API endpoints."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyberdesk
3
- Version: 2.1.5
3
+ Version: 2.1.7
4
4
  Summary: The official Python SDK for Cyberdesk
5
5
  Author-email: Cyberdesk Team <dev@cyberdesk.io>
6
6
  License-Expression: MIT
@@ -73,6 +73,7 @@ openapi_client/cyberdesk_cloud_client/api/run_attachments/list_run_attachments_v
73
73
  openapi_client/cyberdesk_cloud_client/api/run_attachments/update_run_attachment_v1_run_attachments_attachment_id_put.py
74
74
  openapi_client/cyberdesk_cloud_client/api/runs/__init__.py
75
75
  openapi_client/cyberdesk_cloud_client/api/runs/bulk_create_runs_v1_runs_bulk_post.py
76
+ openapi_client/cyberdesk_cloud_client/api/runs/create_run_chain_v1_runs_chain_post.py
76
77
  openapi_client/cyberdesk_cloud_client/api/runs/create_run_v1_runs_post.py
77
78
  openapi_client/cyberdesk_cloud_client/api/runs/delete_run_v1_runs_run_id_delete.py
78
79
  openapi_client/cyberdesk_cloud_client/api/runs/get_run_v1_runs_run_id_get.py
@@ -96,6 +97,8 @@ openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_
96
97
  openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py
97
98
  openapi_client/cyberdesk_cloud_client/models/__init__.py
98
99
  openapi_client/cyberdesk_cloud_client/models/attachment_type.py
100
+ openapi_client/cyberdesk_cloud_client/models/chain_step.py
101
+ openapi_client/cyberdesk_cloud_client/models/chain_step_inputs_type_0.py
99
102
  openapi_client/cyberdesk_cloud_client/models/connection_create.py
100
103
  openapi_client/cyberdesk_cloud_client/models/connection_response.py
101
104
  openapi_client/cyberdesk_cloud_client/models/connection_status.py
@@ -139,6 +142,7 @@ openapi_client/cyberdesk_cloud_client/models/power_shell_exec_request.py
139
142
  openapi_client/cyberdesk_cloud_client/models/power_shell_session_request.py
140
143
  openapi_client/cyberdesk_cloud_client/models/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post_response_powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py
141
144
  openapi_client/cyberdesk_cloud_client/models/powershell_session_v1_computer_machine_id_shell_powershell_session_post_response_powershell_session_v1_computer_machine_id_shell_powershell_session_post.py
145
+ openapi_client/cyberdesk_cloud_client/models/ref_value.py
142
146
  openapi_client/cyberdesk_cloud_client/models/request_log_create.py
143
147
  openapi_client/cyberdesk_cloud_client/models/request_log_response.py
144
148
  openapi_client/cyberdesk_cloud_client/models/request_log_update.py
@@ -175,6 +179,10 @@ openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data
175
179
  openapi_client/cyberdesk_cloud_client/models/trajectory_update.py
176
180
  openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py
177
181
  openapi_client/cyberdesk_cloud_client/models/validation_error.py
182
+ openapi_client/cyberdesk_cloud_client/models/workflow_chain_create.py
183
+ openapi_client/cyberdesk_cloud_client/models/workflow_chain_create_shared_inputs_type_0.py
184
+ openapi_client/cyberdesk_cloud_client/models/workflow_chain_create_shared_sensitive_inputs_type_0.py
185
+ openapi_client/cyberdesk_cloud_client/models/workflow_chain_response.py
178
186
  openapi_client/cyberdesk_cloud_client/models/workflow_create.py
179
187
  openapi_client/cyberdesk_cloud_client/models/workflow_response.py
180
188
  openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py
@@ -0,0 +1,192 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.http_validation_error import HTTPValidationError
9
+ from ...models.workflow_chain_create import WorkflowChainCreate
10
+ from ...models.workflow_chain_response import WorkflowChainResponse
11
+ from ...types import Response
12
+
13
+
14
+ def _get_kwargs(
15
+ *,
16
+ body: WorkflowChainCreate,
17
+ ) -> dict[str, Any]:
18
+ headers: dict[str, Any] = {}
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": "/v1/runs/chain",
23
+ }
24
+
25
+ _kwargs["json"] = body.to_dict()
26
+
27
+ headers["Content-Type"] = "application/json"
28
+
29
+ _kwargs["headers"] = headers
30
+ return _kwargs
31
+
32
+
33
+ def _parse_response(
34
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
35
+ ) -> Optional[Union[HTTPValidationError, WorkflowChainResponse]]:
36
+ if response.status_code == 201:
37
+ response_201 = WorkflowChainResponse.from_dict(response.json())
38
+
39
+ return response_201
40
+ if response.status_code == 422:
41
+ response_422 = HTTPValidationError.from_dict(response.json())
42
+
43
+ return response_422
44
+ if client.raise_on_unexpected_status:
45
+ raise errors.UnexpectedStatus(response.status_code, response.content)
46
+ else:
47
+ return None
48
+
49
+
50
+ def _build_response(
51
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
52
+ ) -> Response[Union[HTTPValidationError, WorkflowChainResponse]]:
53
+ return Response(
54
+ status_code=HTTPStatus(response.status_code),
55
+ content=response.content,
56
+ headers=response.headers,
57
+ parsed=_parse_response(client=client, response=response),
58
+ )
59
+
60
+
61
+ def sync_detailed(
62
+ *,
63
+ client: AuthenticatedClient,
64
+ body: WorkflowChainCreate,
65
+ ) -> Response[Union[HTTPValidationError, WorkflowChainResponse]]:
66
+ """Create Run Chain
67
+
68
+ Create a multi-step chain that runs on a single reserved session/machine.
69
+
70
+ - Starts a new session unless session_id is provided (then runs on existing session).
71
+ - Accepts shared_inputs/sensitive/file_inputs and per-step file_inputs.
72
+ - machine_id > pool_id when starting a new session; both ignored if session_id provided.
73
+
74
+ Args:
75
+ body (WorkflowChainCreate): Request to create and run a multi-step chain on a single
76
+ reserved session/machine
77
+
78
+ Raises:
79
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
80
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
81
+
82
+ Returns:
83
+ Response[Union[HTTPValidationError, WorkflowChainResponse]]
84
+ """
85
+
86
+ kwargs = _get_kwargs(
87
+ body=body,
88
+ )
89
+
90
+ response = client.get_httpx_client().request(
91
+ **kwargs,
92
+ )
93
+
94
+ return _build_response(client=client, response=response)
95
+
96
+
97
+ def sync(
98
+ *,
99
+ client: AuthenticatedClient,
100
+ body: WorkflowChainCreate,
101
+ ) -> Optional[Union[HTTPValidationError, WorkflowChainResponse]]:
102
+ """Create Run Chain
103
+
104
+ Create a multi-step chain that runs on a single reserved session/machine.
105
+
106
+ - Starts a new session unless session_id is provided (then runs on existing session).
107
+ - Accepts shared_inputs/sensitive/file_inputs and per-step file_inputs.
108
+ - machine_id > pool_id when starting a new session; both ignored if session_id provided.
109
+
110
+ Args:
111
+ body (WorkflowChainCreate): Request to create and run a multi-step chain on a single
112
+ reserved session/machine
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ Union[HTTPValidationError, WorkflowChainResponse]
120
+ """
121
+
122
+ return sync_detailed(
123
+ client=client,
124
+ body=body,
125
+ ).parsed
126
+
127
+
128
+ async def asyncio_detailed(
129
+ *,
130
+ client: AuthenticatedClient,
131
+ body: WorkflowChainCreate,
132
+ ) -> Response[Union[HTTPValidationError, WorkflowChainResponse]]:
133
+ """Create Run Chain
134
+
135
+ Create a multi-step chain that runs on a single reserved session/machine.
136
+
137
+ - Starts a new session unless session_id is provided (then runs on existing session).
138
+ - Accepts shared_inputs/sensitive/file_inputs and per-step file_inputs.
139
+ - machine_id > pool_id when starting a new session; both ignored if session_id provided.
140
+
141
+ Args:
142
+ body (WorkflowChainCreate): Request to create and run a multi-step chain on a single
143
+ reserved session/machine
144
+
145
+ Raises:
146
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
147
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
148
+
149
+ Returns:
150
+ Response[Union[HTTPValidationError, WorkflowChainResponse]]
151
+ """
152
+
153
+ kwargs = _get_kwargs(
154
+ body=body,
155
+ )
156
+
157
+ response = await client.get_async_httpx_client().request(**kwargs)
158
+
159
+ return _build_response(client=client, response=response)
160
+
161
+
162
+ async def asyncio(
163
+ *,
164
+ client: AuthenticatedClient,
165
+ body: WorkflowChainCreate,
166
+ ) -> Optional[Union[HTTPValidationError, WorkflowChainResponse]]:
167
+ """Create Run Chain
168
+
169
+ Create a multi-step chain that runs on a single reserved session/machine.
170
+
171
+ - Starts a new session unless session_id is provided (then runs on existing session).
172
+ - Accepts shared_inputs/sensitive/file_inputs and per-step file_inputs.
173
+ - machine_id > pool_id when starting a new session; both ignored if session_id provided.
174
+
175
+ Args:
176
+ body (WorkflowChainCreate): Request to create and run a multi-step chain on a single
177
+ reserved session/machine
178
+
179
+ Raises:
180
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
181
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
182
+
183
+ Returns:
184
+ Union[HTTPValidationError, WorkflowChainResponse]
185
+ """
186
+
187
+ return (
188
+ await asyncio_detailed(
189
+ client=client,
190
+ body=body,
191
+ )
192
+ ).parsed
@@ -1,6 +1,8 @@
1
1
  """Contains all the data models used in inputs/outputs"""
2
2
 
3
3
  from .attachment_type import AttachmentType
4
+ from .chain_step import ChainStep
5
+ from .chain_step_inputs_type_0 import ChainStepInputsType0
4
6
  from .connection_create import ConnectionCreate
5
7
  from .connection_response import ConnectionResponse
6
8
  from .connection_status import ConnectionStatus
@@ -62,6 +64,7 @@ from .powershell_exec_v1_computer_machine_id_shell_powershell_exec_post_response
62
64
  from .powershell_session_v1_computer_machine_id_shell_powershell_session_post_response_powershell_session_v1_computer_machine_id_shell_powershell_session_post import (
63
65
  PowershellSessionV1ComputerMachineIdShellPowershellSessionPostResponsePowershellSessionV1ComputerMachineIdShellPowershellSessionPost,
64
66
  )
67
+ from .ref_value import RefValue
65
68
  from .request_log_create import RequestLogCreate
66
69
  from .request_log_response import RequestLogResponse
67
70
  from .request_log_update import RequestLogUpdate
@@ -98,6 +101,10 @@ from .trajectory_response_trajectory_data_item import TrajectoryResponseTrajecto
98
101
  from .trajectory_update import TrajectoryUpdate
99
102
  from .trajectory_update_trajectory_data_type_0_item import TrajectoryUpdateTrajectoryDataType0Item
100
103
  from .validation_error import ValidationError
104
+ from .workflow_chain_create import WorkflowChainCreate
105
+ from .workflow_chain_create_shared_inputs_type_0 import WorkflowChainCreateSharedInputsType0
106
+ from .workflow_chain_create_shared_sensitive_inputs_type_0 import WorkflowChainCreateSharedSensitiveInputsType0
107
+ from .workflow_chain_response import WorkflowChainResponse
101
108
  from .workflow_create import WorkflowCreate
102
109
  from .workflow_response import WorkflowResponse
103
110
  from .workflow_response_old_versions_type_0_item import WorkflowResponseOldVersionsType0Item
@@ -105,6 +112,8 @@ from .workflow_update import WorkflowUpdate
105
112
 
106
113
  __all__ = (
107
114
  "AttachmentType",
115
+ "ChainStep",
116
+ "ChainStepInputsType0",
108
117
  "ConnectionCreate",
109
118
  "ConnectionResponse",
110
119
  "ConnectionStatus",
@@ -148,6 +157,7 @@ __all__ = (
148
157
  "PowershellExecV1ComputerMachineIdShellPowershellExecPostResponsePowershellExecV1ComputerMachineIdShellPowershellExecPost",
149
158
  "PowerShellSessionRequest",
150
159
  "PowershellSessionV1ComputerMachineIdShellPowershellSessionPostResponsePowershellSessionV1ComputerMachineIdShellPowershellSessionPost",
160
+ "RefValue",
151
161
  "RequestLogCreate",
152
162
  "RequestLogResponse",
153
163
  "RequestLogUpdate",
@@ -184,6 +194,10 @@ __all__ = (
184
194
  "TrajectoryUpdate",
185
195
  "TrajectoryUpdateTrajectoryDataType0Item",
186
196
  "ValidationError",
197
+ "WorkflowChainCreate",
198
+ "WorkflowChainCreateSharedInputsType0",
199
+ "WorkflowChainCreateSharedSensitiveInputsType0",
200
+ "WorkflowChainResponse",
187
201
  "WorkflowCreate",
188
202
  "WorkflowResponse",
189
203
  "WorkflowResponseOldVersionsType0Item",
@@ -0,0 +1,122 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.chain_step_inputs_type_0 import ChainStepInputsType0
12
+
13
+
14
+ T = TypeVar("T", bound="ChainStep")
15
+
16
+
17
+ @_attrs_define
18
+ class ChainStep:
19
+ """One step within a chain
20
+
21
+ Attributes:
22
+ workflow_id (UUID):
23
+ session_alias (Union[None, Unset, str]): Alias to persist this step's outputs within the session
24
+ inputs (Union['ChainStepInputsType0', None, Unset]): Step-specific inputs; values must be string or {$ref:
25
+ 'alias.outputs.path'}
26
+ """
27
+
28
+ workflow_id: UUID
29
+ session_alias: Union[None, Unset, str] = UNSET
30
+ inputs: Union["ChainStepInputsType0", None, Unset] = UNSET
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ from ..models.chain_step_inputs_type_0 import ChainStepInputsType0
35
+
36
+ workflow_id = str(self.workflow_id)
37
+
38
+ session_alias: Union[None, Unset, str]
39
+ if isinstance(self.session_alias, Unset):
40
+ session_alias = UNSET
41
+ else:
42
+ session_alias = self.session_alias
43
+
44
+ inputs: Union[None, Unset, dict[str, Any]]
45
+ if isinstance(self.inputs, Unset):
46
+ inputs = UNSET
47
+ elif isinstance(self.inputs, ChainStepInputsType0):
48
+ inputs = self.inputs.to_dict()
49
+ else:
50
+ inputs = self.inputs
51
+
52
+ field_dict: dict[str, Any] = {}
53
+ field_dict.update(self.additional_properties)
54
+ field_dict.update(
55
+ {
56
+ "workflow_id": workflow_id,
57
+ }
58
+ )
59
+ if session_alias is not UNSET:
60
+ field_dict["session_alias"] = session_alias
61
+ if inputs is not UNSET:
62
+ field_dict["inputs"] = inputs
63
+
64
+ return field_dict
65
+
66
+ @classmethod
67
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
68
+ from ..models.chain_step_inputs_type_0 import ChainStepInputsType0
69
+
70
+ d = dict(src_dict)
71
+ workflow_id = UUID(d.pop("workflow_id"))
72
+
73
+ def _parse_session_alias(data: object) -> Union[None, Unset, str]:
74
+ if data is None:
75
+ return data
76
+ if isinstance(data, Unset):
77
+ return data
78
+ return cast(Union[None, Unset, str], data)
79
+
80
+ session_alias = _parse_session_alias(d.pop("session_alias", UNSET))
81
+
82
+ def _parse_inputs(data: object) -> Union["ChainStepInputsType0", None, Unset]:
83
+ if data is None:
84
+ return data
85
+ if isinstance(data, Unset):
86
+ return data
87
+ try:
88
+ if not isinstance(data, dict):
89
+ raise TypeError()
90
+ inputs_type_0 = ChainStepInputsType0.from_dict(data)
91
+
92
+ return inputs_type_0
93
+ except: # noqa: E722
94
+ pass
95
+ return cast(Union["ChainStepInputsType0", None, Unset], data)
96
+
97
+ inputs = _parse_inputs(d.pop("inputs", UNSET))
98
+
99
+ chain_step = cls(
100
+ workflow_id=workflow_id,
101
+ session_alias=session_alias,
102
+ inputs=inputs,
103
+ )
104
+
105
+ chain_step.additional_properties = d
106
+ return chain_step
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -0,0 +1,74 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.ref_value import RefValue
9
+
10
+
11
+ T = TypeVar("T", bound="ChainStepInputsType0")
12
+
13
+
14
+ @_attrs_define
15
+ class ChainStepInputsType0:
16
+ """ """
17
+
18
+ additional_properties: dict[str, Union["RefValue", str]] = _attrs_field(init=False, factory=dict)
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ from ..models.ref_value import RefValue
22
+
23
+ field_dict: dict[str, Any] = {}
24
+ for prop_name, prop in self.additional_properties.items():
25
+ if isinstance(prop, RefValue):
26
+ field_dict[prop_name] = prop.to_dict()
27
+ else:
28
+ field_dict[prop_name] = prop
29
+
30
+ return field_dict
31
+
32
+ @classmethod
33
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
34
+ from ..models.ref_value import RefValue
35
+
36
+ d = dict(src_dict)
37
+ chain_step_inputs_type_0 = cls()
38
+
39
+ additional_properties = {}
40
+ for prop_name, prop_dict in d.items():
41
+
42
+ def _parse_additional_property(data: object) -> Union["RefValue", str]:
43
+ try:
44
+ if not isinstance(data, dict):
45
+ raise TypeError()
46
+ additional_property_type_1 = RefValue.from_dict(data)
47
+
48
+ return additional_property_type_1
49
+ except: # noqa: E722
50
+ pass
51
+ return cast(Union["RefValue", str], data)
52
+
53
+ additional_property = _parse_additional_property(prop_dict)
54
+
55
+ additional_properties[prop_name] = additional_property
56
+
57
+ chain_step_inputs_type_0.additional_properties = additional_properties
58
+ return chain_step_inputs_type_0
59
+
60
+ @property
61
+ def additional_keys(self) -> list[str]:
62
+ return list(self.additional_properties.keys())
63
+
64
+ def __getitem__(self, key: str) -> Union["RefValue", str]:
65
+ return self.additional_properties[key]
66
+
67
+ def __setitem__(self, key: str, value: Union["RefValue", str]) -> None:
68
+ self.additional_properties[key] = value
69
+
70
+ def __delitem__(self, key: str) -> None:
71
+ del self.additional_properties[key]
72
+
73
+ def __contains__(self, key: str) -> bool:
74
+ return key in self.additional_properties