cyberdesk 0.2.7__py3-none-any.whl → 1.2.0__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.

Potentially problematic release.


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

Files changed (228) hide show
  1. cyberdesk/__init__.py +45 -7
  2. cyberdesk/client.py +779 -70
  3. cyberdesk-1.2.0.dist-info/METADATA +274 -0
  4. cyberdesk-1.2.0.dist-info/RECORD +113 -0
  5. {cyberdesk-0.2.7.dist-info → cyberdesk-1.2.0.dist-info}/WHEEL +1 -1
  6. openapi_client/{api_reference_client → cyberdesk_cloud_client}/__init__.py +8 -8
  7. openapi_client/{api_reference_client → cyberdesk_cloud_client}/api/__init__.py +1 -1
  8. openapi_client/{api_reference_client/api/desktop → cyberdesk_cloud_client/api/computer}/__init__.py +1 -1
  9. openapi_client/cyberdesk_cloud_client/api/computer/get_display_dimensions_v1_computer_machine_id_display_dimensions_get.py +163 -0
  10. openapi_client/cyberdesk_cloud_client/api/computer/get_mouse_position_v1_computer_machine_id_input_mouse_position_get.py +163 -0
  11. openapi_client/cyberdesk_cloud_client/api/computer/get_screenshot_v1_computer_machine_id_display_screenshot_get.py +158 -0
  12. openapi_client/cyberdesk_cloud_client/api/computer/keyboard_key_v1_computer_machine_id_input_keyboard_key_post.py +183 -0
  13. openapi_client/cyberdesk_cloud_client/api/computer/keyboard_type_v1_computer_machine_id_input_keyboard_type_post.py +183 -0
  14. openapi_client/cyberdesk_cloud_client/api/computer/mouse_click_v1_computer_machine_id_input_mouse_click_post.py +187 -0
  15. openapi_client/cyberdesk_cloud_client/api/computer/mouse_move_v1_computer_machine_id_input_mouse_move_post.py +183 -0
  16. openapi_client/cyberdesk_cloud_client/api/connections/__init__.py +1 -0
  17. openapi_client/cyberdesk_cloud_client/api/connections/create_connection_v1_connections_post.py +180 -0
  18. openapi_client/cyberdesk_cloud_client/api/connections/delete_connection_v1_connections_connection_id_delete.py +170 -0
  19. openapi_client/cyberdesk_cloud_client/api/connections/get_connection_v1_connections_connection_id_get.py +172 -0
  20. openapi_client/cyberdesk_cloud_client/api/connections/list_connections_v1_connections_get.py +244 -0
  21. openapi_client/cyberdesk_cloud_client/api/connections/update_connection_v1_connections_connection_id_patch.py +198 -0
  22. openapi_client/cyberdesk_cloud_client/api/default/__init__.py +1 -0
  23. openapi_client/cyberdesk_cloud_client/api/default/root_get.py +83 -0
  24. openapi_client/cyberdesk_cloud_client/api/health/__init__.py +1 -0
  25. openapi_client/cyberdesk_cloud_client/api/health/database_health_check_v1_health_db_get.py +146 -0
  26. openapi_client/cyberdesk_cloud_client/api/health/health_check_v1_health_get.py +144 -0
  27. openapi_client/cyberdesk_cloud_client/api/machines/__init__.py +1 -0
  28. openapi_client/cyberdesk_cloud_client/api/machines/create_machine_v1_machines_post.py +180 -0
  29. openapi_client/cyberdesk_cloud_client/api/machines/delete_machine_v1_machines_machine_id_delete.py +174 -0
  30. openapi_client/cyberdesk_cloud_client/api/machines/get_machine_v1_machines_machine_id_get.py +172 -0
  31. openapi_client/cyberdesk_cloud_client/api/machines/list_machines_v1_machines_get.py +217 -0
  32. openapi_client/cyberdesk_cloud_client/api/machines/update_machine_v1_machines_machine_id_patch.py +198 -0
  33. openapi_client/cyberdesk_cloud_client/api/request_logs/__init__.py +1 -0
  34. openapi_client/cyberdesk_cloud_client/api/request_logs/create_request_log_v1_request_logs_post.py +184 -0
  35. openapi_client/cyberdesk_cloud_client/api/request_logs/delete_request_log_v1_request_logs_log_id_delete.py +170 -0
  36. openapi_client/cyberdesk_cloud_client/api/request_logs/get_request_log_v1_request_logs_log_id_get.py +172 -0
  37. openapi_client/cyberdesk_cloud_client/api/request_logs/list_request_logs_v1_request_logs_get.py +257 -0
  38. openapi_client/cyberdesk_cloud_client/api/request_logs/update_request_log_v1_request_logs_log_id_patch.py +202 -0
  39. openapi_client/cyberdesk_cloud_client/api/runs/__init__.py +1 -0
  40. openapi_client/cyberdesk_cloud_client/api/runs/create_run_v1_runs_post.py +188 -0
  41. openapi_client/cyberdesk_cloud_client/api/runs/delete_run_v1_runs_run_id_delete.py +170 -0
  42. openapi_client/cyberdesk_cloud_client/api/runs/get_run_v1_runs_run_id_get.py +176 -0
  43. openapi_client/cyberdesk_cloud_client/api/runs/list_runs_v1_runs_get.py +266 -0
  44. openapi_client/cyberdesk_cloud_client/api/runs/update_run_v1_runs_run_id_patch.py +202 -0
  45. openapi_client/cyberdesk_cloud_client/api/test/__init__.py +1 -0
  46. openapi_client/cyberdesk_cloud_client/api/test/dummy_test_endpoint_v1_test_post.py +156 -0
  47. openapi_client/cyberdesk_cloud_client/api/trajectories/__init__.py +1 -0
  48. openapi_client/cyberdesk_cloud_client/api/trajectories/create_trajectory_v1_trajectories_post.py +184 -0
  49. openapi_client/cyberdesk_cloud_client/api/trajectories/delete_trajectory_v1_trajectories_trajectory_id_delete.py +170 -0
  50. openapi_client/cyberdesk_cloud_client/api/trajectories/get_latest_trajectory_for_workflow_v1_workflows_workflow_id_latest_trajectory_get.py +176 -0
  51. openapi_client/cyberdesk_cloud_client/api/trajectories/get_trajectory_v1_trajectories_trajectory_id_get.py +176 -0
  52. openapi_client/cyberdesk_cloud_client/api/trajectories/list_trajectories_v1_trajectories_get.py +221 -0
  53. openapi_client/cyberdesk_cloud_client/api/trajectories/update_trajectory_v1_trajectories_trajectory_id_patch.py +198 -0
  54. openapi_client/cyberdesk_cloud_client/api/workflows/__init__.py +1 -0
  55. openapi_client/cyberdesk_cloud_client/api/workflows/create_workflow_v1_workflows_post.py +180 -0
  56. openapi_client/cyberdesk_cloud_client/api/workflows/delete_workflow_v1_workflows_workflow_id_delete.py +174 -0
  57. openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_workflow_id_get.py +172 -0
  58. openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py +185 -0
  59. openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py +194 -0
  60. openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py +202 -0
  61. openapi_client/{api_reference_client → cyberdesk_cloud_client}/client.py +268 -268
  62. openapi_client/{api_reference_client → cyberdesk_cloud_client}/errors.py +16 -16
  63. openapi_client/cyberdesk_cloud_client/models/__init__.py +105 -0
  64. openapi_client/cyberdesk_cloud_client/models/connection_create.py +111 -0
  65. openapi_client/cyberdesk_cloud_client/models/connection_response.py +171 -0
  66. openapi_client/{api_reference_client/models/get_v1_desktop_id_response_404_status.py → cyberdesk_cloud_client/models/connection_status.py} +10 -8
  67. openapi_client/cyberdesk_cloud_client/models/database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get.py +44 -0
  68. openapi_client/{api_reference_client/models/post_v1_desktop_id_bash_action_body.py → cyberdesk_cloud_client/models/display_dimensions.py} +67 -59
  69. openapi_client/cyberdesk_cloud_client/models/dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post.py +44 -0
  70. openapi_client/cyberdesk_cloud_client/models/get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item.py +44 -0
  71. openapi_client/cyberdesk_cloud_client/models/health_check_v1_health_get_response_health_check_v1_health_get.py +44 -0
  72. openapi_client/cyberdesk_cloud_client/models/http_validation_error.py +75 -0
  73. openapi_client/{api_reference_client/models/post_v1_desktop_body.py → cyberdesk_cloud_client/models/keyboard_key_request.py} +59 -59
  74. openapi_client/{api_reference_client/models/post_v1_desktop_id_stop_response_200.py → cyberdesk_cloud_client/models/keyboard_type_request.py} +59 -62
  75. openapi_client/cyberdesk_cloud_client/models/machine_create.py +130 -0
  76. openapi_client/cyberdesk_cloud_client/models/machine_response.py +182 -0
  77. openapi_client/{api_reference_client/models/get_v1_desktop_id_response_403_status.py → cyberdesk_cloud_client/models/machine_status.py} +10 -8
  78. openapi_client/cyberdesk_cloud_client/models/machine_update.py +195 -0
  79. openapi_client/cyberdesk_cloud_client/models/mouse_click_request.py +109 -0
  80. openapi_client/{api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_end.py → cyberdesk_cloud_client/models/mouse_move_request.py} +67 -71
  81. openapi_client/{api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_start.py → cyberdesk_cloud_client/models/mouse_position.py} +67 -71
  82. openapi_client/cyberdesk_cloud_client/models/paginated_response.py +84 -0
  83. openapi_client/cyberdesk_cloud_client/models/paginated_response_connection_response.py +97 -0
  84. openapi_client/cyberdesk_cloud_client/models/paginated_response_machine_response.py +97 -0
  85. openapi_client/cyberdesk_cloud_client/models/paginated_response_run_response.py +97 -0
  86. openapi_client/cyberdesk_cloud_client/models/paginated_response_trajectory_response.py +97 -0
  87. openapi_client/cyberdesk_cloud_client/models/paginated_response_workflow_response.py +97 -0
  88. openapi_client/cyberdesk_cloud_client/models/request_log_create.py +187 -0
  89. openapi_client/cyberdesk_cloud_client/models/request_log_response.py +230 -0
  90. openapi_client/cyberdesk_cloud_client/models/request_log_update.py +164 -0
  91. openapi_client/cyberdesk_cloud_client/models/run_create.py +94 -0
  92. openapi_client/cyberdesk_cloud_client/models/run_response.py +245 -0
  93. openapi_client/cyberdesk_cloud_client/models/run_response_output_data_type_0.py +44 -0
  94. openapi_client/cyberdesk_cloud_client/models/run_response_run_message_history_type_0_item.py +44 -0
  95. openapi_client/{api_reference_client/models/post_v1_desktop_response_200_status.py → cyberdesk_cloud_client/models/run_status.py} +12 -11
  96. openapi_client/cyberdesk_cloud_client/models/run_update.py +226 -0
  97. openapi_client/cyberdesk_cloud_client/models/run_update_output_data_type_0.py +44 -0
  98. openapi_client/cyberdesk_cloud_client/models/run_update_run_message_history_type_0_item.py +44 -0
  99. openapi_client/cyberdesk_cloud_client/models/trajectory_create.py +83 -0
  100. openapi_client/cyberdesk_cloud_client/models/trajectory_create_trajectory_data_item.py +44 -0
  101. openapi_client/cyberdesk_cloud_client/models/trajectory_response.py +117 -0
  102. openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data_item.py +44 -0
  103. openapi_client/cyberdesk_cloud_client/models/trajectory_update.py +99 -0
  104. openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py +44 -0
  105. openapi_client/{api_reference_client/models/post_v1_desktop_id_computer_action_wait_action.py → cyberdesk_cloud_client/models/validation_error.py} +88 -70
  106. openapi_client/cyberdesk_cloud_client/models/workflow_create.py +82 -0
  107. openapi_client/cyberdesk_cloud_client/models/workflow_response.py +164 -0
  108. openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py +44 -0
  109. openapi_client/cyberdesk_cloud_client/models/workflow_update.py +92 -0
  110. openapi_client/{api_reference_client → cyberdesk_cloud_client}/types.py +54 -46
  111. cyberdesk/actions.py +0 -118
  112. cyberdesk/types.py +0 -50
  113. cyberdesk-0.2.7.dist-info/METADATA +0 -228
  114. cyberdesk-0.2.7.dist-info/RECORD +0 -136
  115. openapi_client/api_reference_client/api/desktop/get_v1_desktop_id.py +0 -293
  116. openapi_client/api_reference_client/api/desktop/post_v1_desktop.py +0 -294
  117. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_bash_action.py +0 -307
  118. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_computer_action.py +0 -419
  119. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_stop.py +0 -288
  120. openapi_client/api_reference_client/models/__init__.py +0 -249
  121. openapi_client/api_reference_client/models/get_v1_desktop_id_response_200.py +0 -104
  122. openapi_client/api_reference_client/models/get_v1_desktop_id_response_200_status.py +0 -11
  123. openapi_client/api_reference_client/models/get_v1_desktop_id_response_400.py +0 -69
  124. openapi_client/api_reference_client/models/get_v1_desktop_id_response_400_status.py +0 -8
  125. openapi_client/api_reference_client/models/get_v1_desktop_id_response_401.py +0 -69
  126. openapi_client/api_reference_client/models/get_v1_desktop_id_response_401_status.py +0 -8
  127. openapi_client/api_reference_client/models/get_v1_desktop_id_response_403.py +0 -69
  128. openapi_client/api_reference_client/models/get_v1_desktop_id_response_404.py +0 -69
  129. openapi_client/api_reference_client/models/get_v1_desktop_id_response_409.py +0 -69
  130. openapi_client/api_reference_client/models/get_v1_desktop_id_response_409_status.py +0 -8
  131. openapi_client/api_reference_client/models/get_v1_desktop_id_response_429.py +0 -69
  132. openapi_client/api_reference_client/models/get_v1_desktop_id_response_429_status.py +0 -8
  133. openapi_client/api_reference_client/models/get_v1_desktop_id_response_500.py +0 -69
  134. openapi_client/api_reference_client/models/get_v1_desktop_id_response_500_status.py +0 -8
  135. openapi_client/api_reference_client/models/get_v1_desktop_id_response_502.py +0 -69
  136. openapi_client/api_reference_client/models/get_v1_desktop_id_response_502_status.py +0 -8
  137. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_200.py +0 -79
  138. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400.py +0 -69
  139. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400_status.py +0 -8
  140. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401.py +0 -69
  141. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401_status.py +0 -8
  142. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403.py +0 -69
  143. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403_status.py +0 -8
  144. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404.py +0 -69
  145. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404_status.py +0 -8
  146. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409.py +0 -69
  147. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409_status.py +0 -8
  148. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429.py +0 -69
  149. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429_status.py +0 -8
  150. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500.py +0 -69
  151. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500_status.py +0 -8
  152. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502.py +0 -69
  153. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502_status.py +0 -8
  154. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action.py +0 -133
  155. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_button.py +0 -10
  156. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_click_type.py +0 -10
  157. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_type.py +0 -8
  158. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action.py +0 -98
  159. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_type.py +0 -8
  160. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action.py +0 -64
  161. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action_type.py +0 -8
  162. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action.py +0 -80
  163. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action_type.py +0 -8
  164. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action.py +0 -109
  165. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_key_action_type.py +0 -10
  166. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_type.py +0 -8
  167. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_200.py +0 -79
  168. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400.py +0 -71
  169. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400_status.py +0 -8
  170. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401.py +0 -71
  171. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401_status.py +0 -8
  172. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403.py +0 -71
  173. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403_status.py +0 -8
  174. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404.py +0 -71
  175. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404_status.py +0 -8
  176. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409.py +0 -71
  177. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409_status.py +0 -8
  178. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429.py +0 -71
  179. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429_status.py +0 -8
  180. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500.py +0 -71
  181. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500_status.py +0 -8
  182. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502.py +0 -71
  183. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502_status.py +0 -8
  184. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action.py +0 -63
  185. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action_type.py +0 -8
  186. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action.py +0 -81
  187. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_direction.py +0 -11
  188. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_type.py +0 -8
  189. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action.py +0 -71
  190. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action_type.py +0 -8
  191. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_wait_action_type.py +0 -8
  192. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_200_status.py +0 -11
  193. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400.py +0 -69
  194. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400_status.py +0 -8
  195. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401.py +0 -69
  196. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401_status.py +0 -8
  197. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403.py +0 -69
  198. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403_status.py +0 -8
  199. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404.py +0 -69
  200. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404_status.py +0 -8
  201. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409.py +0 -69
  202. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409_status.py +0 -8
  203. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429.py +0 -69
  204. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429_status.py +0 -8
  205. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500.py +0 -69
  206. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500_status.py +0 -8
  207. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502.py +0 -69
  208. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502_status.py +0 -8
  209. openapi_client/api_reference_client/models/post_v1_desktop_response_200.py +0 -70
  210. openapi_client/api_reference_client/models/post_v1_desktop_response_400.py +0 -69
  211. openapi_client/api_reference_client/models/post_v1_desktop_response_400_status.py +0 -8
  212. openapi_client/api_reference_client/models/post_v1_desktop_response_401.py +0 -69
  213. openapi_client/api_reference_client/models/post_v1_desktop_response_401_status.py +0 -8
  214. openapi_client/api_reference_client/models/post_v1_desktop_response_403.py +0 -69
  215. openapi_client/api_reference_client/models/post_v1_desktop_response_403_status.py +0 -8
  216. openapi_client/api_reference_client/models/post_v1_desktop_response_404.py +0 -69
  217. openapi_client/api_reference_client/models/post_v1_desktop_response_404_status.py +0 -8
  218. openapi_client/api_reference_client/models/post_v1_desktop_response_409.py +0 -69
  219. openapi_client/api_reference_client/models/post_v1_desktop_response_409_status.py +0 -8
  220. openapi_client/api_reference_client/models/post_v1_desktop_response_429.py +0 -69
  221. openapi_client/api_reference_client/models/post_v1_desktop_response_429_status.py +0 -8
  222. openapi_client/api_reference_client/models/post_v1_desktop_response_500.py +0 -69
  223. openapi_client/api_reference_client/models/post_v1_desktop_response_500_status.py +0 -8
  224. openapi_client/api_reference_client/models/post_v1_desktop_response_502.py +0 -69
  225. openapi_client/api_reference_client/models/post_v1_desktop_response_502_status.py +0 -8
  226. {cyberdesk-0.2.7.dist-info → cyberdesk-1.2.0.dist-info}/licenses/LICENSE +0 -0
  227. {cyberdesk-0.2.7.dist-info → cyberdesk-1.2.0.dist-info}/top_level.txt +0 -0
  228. /openapi_client/{api_reference_client → cyberdesk_cloud_client}/py.typed +0 -0
@@ -0,0 +1,105 @@
1
+ """Contains all the data models used in inputs/outputs"""
2
+
3
+ from .connection_create import ConnectionCreate
4
+ from .connection_response import ConnectionResponse
5
+ from .connection_status import ConnectionStatus
6
+ from .database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get import (
7
+ DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet,
8
+ )
9
+ from .display_dimensions import DisplayDimensions
10
+ from .dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post import (
11
+ DummyTestEndpointV1TestPostResponseDummyTestEndpointV1TestPost,
12
+ )
13
+ from .get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item import (
14
+ GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetResponse200Item,
15
+ )
16
+ from .health_check_v1_health_get_response_health_check_v1_health_get import (
17
+ HealthCheckV1HealthGetResponseHealthCheckV1HealthGet,
18
+ )
19
+ from .http_validation_error import HTTPValidationError
20
+ from .keyboard_key_request import KeyboardKeyRequest
21
+ from .keyboard_type_request import KeyboardTypeRequest
22
+ from .machine_create import MachineCreate
23
+ from .machine_response import MachineResponse
24
+ from .machine_status import MachineStatus
25
+ from .machine_update import MachineUpdate
26
+ from .mouse_click_request import MouseClickRequest
27
+ from .mouse_move_request import MouseMoveRequest
28
+ from .mouse_position import MousePosition
29
+ from .paginated_response import PaginatedResponse
30
+ from .paginated_response_connection_response import PaginatedResponseConnectionResponse
31
+ from .paginated_response_machine_response import PaginatedResponseMachineResponse
32
+ from .paginated_response_run_response import PaginatedResponseRunResponse
33
+ from .paginated_response_trajectory_response import PaginatedResponseTrajectoryResponse
34
+ from .paginated_response_workflow_response import PaginatedResponseWorkflowResponse
35
+ from .request_log_create import RequestLogCreate
36
+ from .request_log_response import RequestLogResponse
37
+ from .request_log_update import RequestLogUpdate
38
+ from .run_create import RunCreate
39
+ from .run_response import RunResponse
40
+ from .run_response_output_data_type_0 import RunResponseOutputDataType0
41
+ from .run_response_run_message_history_type_0_item import RunResponseRunMessageHistoryType0Item
42
+ from .run_status import RunStatus
43
+ from .run_update import RunUpdate
44
+ from .run_update_output_data_type_0 import RunUpdateOutputDataType0
45
+ from .run_update_run_message_history_type_0_item import RunUpdateRunMessageHistoryType0Item
46
+ from .trajectory_create import TrajectoryCreate
47
+ from .trajectory_create_trajectory_data_item import TrajectoryCreateTrajectoryDataItem
48
+ from .trajectory_response import TrajectoryResponse
49
+ from .trajectory_response_trajectory_data_item import TrajectoryResponseTrajectoryDataItem
50
+ from .trajectory_update import TrajectoryUpdate
51
+ from .trajectory_update_trajectory_data_type_0_item import TrajectoryUpdateTrajectoryDataType0Item
52
+ from .validation_error import ValidationError
53
+ from .workflow_create import WorkflowCreate
54
+ from .workflow_response import WorkflowResponse
55
+ from .workflow_response_old_versions_type_0_item import WorkflowResponseOldVersionsType0Item
56
+ from .workflow_update import WorkflowUpdate
57
+
58
+ __all__ = (
59
+ "ConnectionCreate",
60
+ "ConnectionResponse",
61
+ "ConnectionStatus",
62
+ "DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet",
63
+ "DisplayDimensions",
64
+ "DummyTestEndpointV1TestPostResponseDummyTestEndpointV1TestPost",
65
+ "GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetResponse200Item",
66
+ "HealthCheckV1HealthGetResponseHealthCheckV1HealthGet",
67
+ "HTTPValidationError",
68
+ "KeyboardKeyRequest",
69
+ "KeyboardTypeRequest",
70
+ "MachineCreate",
71
+ "MachineResponse",
72
+ "MachineStatus",
73
+ "MachineUpdate",
74
+ "MouseClickRequest",
75
+ "MouseMoveRequest",
76
+ "MousePosition",
77
+ "PaginatedResponse",
78
+ "PaginatedResponseConnectionResponse",
79
+ "PaginatedResponseMachineResponse",
80
+ "PaginatedResponseRunResponse",
81
+ "PaginatedResponseTrajectoryResponse",
82
+ "PaginatedResponseWorkflowResponse",
83
+ "RequestLogCreate",
84
+ "RequestLogResponse",
85
+ "RequestLogUpdate",
86
+ "RunCreate",
87
+ "RunResponse",
88
+ "RunResponseOutputDataType0",
89
+ "RunResponseRunMessageHistoryType0Item",
90
+ "RunStatus",
91
+ "RunUpdate",
92
+ "RunUpdateOutputDataType0",
93
+ "RunUpdateRunMessageHistoryType0Item",
94
+ "TrajectoryCreate",
95
+ "TrajectoryCreateTrajectoryDataItem",
96
+ "TrajectoryResponse",
97
+ "TrajectoryResponseTrajectoryDataItem",
98
+ "TrajectoryUpdate",
99
+ "TrajectoryUpdateTrajectoryDataType0Item",
100
+ "ValidationError",
101
+ "WorkflowCreate",
102
+ "WorkflowResponse",
103
+ "WorkflowResponseOldVersionsType0Item",
104
+ "WorkflowUpdate",
105
+ )
@@ -0,0 +1,111 @@
1
+ from collections.abc import Mapping
2
+ from typing import 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
+ T = TypeVar("T", bound="ConnectionCreate")
11
+
12
+
13
+ @_attrs_define
14
+ class ConnectionCreate:
15
+ """Schema for creating a connection
16
+
17
+ Attributes:
18
+ websocket_id (str):
19
+ machine_id (UUID):
20
+ ip_address (Union[None, Unset, str]):
21
+ user_agent (Union[None, Unset, str]):
22
+ """
23
+
24
+ websocket_id: str
25
+ machine_id: UUID
26
+ ip_address: Union[None, Unset, str] = UNSET
27
+ user_agent: Union[None, Unset, str] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ websocket_id = self.websocket_id
32
+
33
+ machine_id = str(self.machine_id)
34
+
35
+ ip_address: Union[None, Unset, str]
36
+ if isinstance(self.ip_address, Unset):
37
+ ip_address = UNSET
38
+ else:
39
+ ip_address = self.ip_address
40
+
41
+ user_agent: Union[None, Unset, str]
42
+ if isinstance(self.user_agent, Unset):
43
+ user_agent = UNSET
44
+ else:
45
+ user_agent = self.user_agent
46
+
47
+ field_dict: dict[str, Any] = {}
48
+ field_dict.update(self.additional_properties)
49
+ field_dict.update(
50
+ {
51
+ "websocket_id": websocket_id,
52
+ "machine_id": machine_id,
53
+ }
54
+ )
55
+ if ip_address is not UNSET:
56
+ field_dict["ip_address"] = ip_address
57
+ if user_agent is not UNSET:
58
+ field_dict["user_agent"] = user_agent
59
+
60
+ return field_dict
61
+
62
+ @classmethod
63
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
64
+ d = dict(src_dict)
65
+ websocket_id = d.pop("websocket_id")
66
+
67
+ machine_id = UUID(d.pop("machine_id"))
68
+
69
+ def _parse_ip_address(data: object) -> Union[None, Unset, str]:
70
+ if data is None:
71
+ return data
72
+ if isinstance(data, Unset):
73
+ return data
74
+ return cast(Union[None, Unset, str], data)
75
+
76
+ ip_address = _parse_ip_address(d.pop("ip_address", UNSET))
77
+
78
+ def _parse_user_agent(data: object) -> Union[None, Unset, str]:
79
+ if data is None:
80
+ return data
81
+ if isinstance(data, Unset):
82
+ return data
83
+ return cast(Union[None, Unset, str], data)
84
+
85
+ user_agent = _parse_user_agent(d.pop("user_agent", UNSET))
86
+
87
+ connection_create = cls(
88
+ websocket_id=websocket_id,
89
+ machine_id=machine_id,
90
+ ip_address=ip_address,
91
+ user_agent=user_agent,
92
+ )
93
+
94
+ connection_create.additional_properties = d
95
+ return connection_create
96
+
97
+ @property
98
+ def additional_keys(self) -> list[str]:
99
+ return list(self.additional_properties.keys())
100
+
101
+ def __getitem__(self, key: str) -> Any:
102
+ return self.additional_properties[key]
103
+
104
+ def __setitem__(self, key: str, value: Any) -> None:
105
+ self.additional_properties[key] = value
106
+
107
+ def __delitem__(self, key: str) -> None:
108
+ del self.additional_properties[key]
109
+
110
+ def __contains__(self, key: str) -> bool:
111
+ return key in self.additional_properties
@@ -0,0 +1,171 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..models.connection_status import ConnectionStatus
11
+ from ..types import UNSET, Unset
12
+
13
+ T = TypeVar("T", bound="ConnectionResponse")
14
+
15
+
16
+ @_attrs_define
17
+ class ConnectionResponse:
18
+ """Connection response schema
19
+
20
+ Attributes:
21
+ websocket_id (str):
22
+ id (UUID):
23
+ machine_id (UUID):
24
+ connected_at (datetime.datetime):
25
+ disconnected_at (Union[None, datetime.datetime]):
26
+ last_ping (datetime.datetime):
27
+ status (ConnectionStatus):
28
+ ip_address (Union[None, Unset, str]):
29
+ user_agent (Union[None, Unset, str]):
30
+ """
31
+
32
+ websocket_id: str
33
+ id: UUID
34
+ machine_id: UUID
35
+ connected_at: datetime.datetime
36
+ disconnected_at: Union[None, datetime.datetime]
37
+ last_ping: datetime.datetime
38
+ status: ConnectionStatus
39
+ ip_address: Union[None, Unset, str] = UNSET
40
+ user_agent: Union[None, Unset, str] = UNSET
41
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
+
43
+ def to_dict(self) -> dict[str, Any]:
44
+ websocket_id = self.websocket_id
45
+
46
+ id = str(self.id)
47
+
48
+ machine_id = str(self.machine_id)
49
+
50
+ connected_at = self.connected_at.isoformat()
51
+
52
+ disconnected_at: Union[None, str]
53
+ if isinstance(self.disconnected_at, datetime.datetime):
54
+ disconnected_at = self.disconnected_at.isoformat()
55
+ else:
56
+ disconnected_at = self.disconnected_at
57
+
58
+ last_ping = self.last_ping.isoformat()
59
+
60
+ status = self.status.value
61
+
62
+ ip_address: Union[None, Unset, str]
63
+ if isinstance(self.ip_address, Unset):
64
+ ip_address = UNSET
65
+ else:
66
+ ip_address = self.ip_address
67
+
68
+ user_agent: Union[None, Unset, str]
69
+ if isinstance(self.user_agent, Unset):
70
+ user_agent = UNSET
71
+ else:
72
+ user_agent = self.user_agent
73
+
74
+ field_dict: dict[str, Any] = {}
75
+ field_dict.update(self.additional_properties)
76
+ field_dict.update(
77
+ {
78
+ "websocket_id": websocket_id,
79
+ "id": id,
80
+ "machine_id": machine_id,
81
+ "connected_at": connected_at,
82
+ "disconnected_at": disconnected_at,
83
+ "last_ping": last_ping,
84
+ "status": status,
85
+ }
86
+ )
87
+ if ip_address is not UNSET:
88
+ field_dict["ip_address"] = ip_address
89
+ if user_agent is not UNSET:
90
+ field_dict["user_agent"] = user_agent
91
+
92
+ return field_dict
93
+
94
+ @classmethod
95
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
96
+ d = dict(src_dict)
97
+ websocket_id = d.pop("websocket_id")
98
+
99
+ id = UUID(d.pop("id"))
100
+
101
+ machine_id = UUID(d.pop("machine_id"))
102
+
103
+ connected_at = isoparse(d.pop("connected_at"))
104
+
105
+ def _parse_disconnected_at(data: object) -> Union[None, datetime.datetime]:
106
+ if data is None:
107
+ return data
108
+ try:
109
+ if not isinstance(data, str):
110
+ raise TypeError()
111
+ disconnected_at_type_0 = isoparse(data)
112
+
113
+ return disconnected_at_type_0
114
+ except: # noqa: E722
115
+ pass
116
+ return cast(Union[None, datetime.datetime], data)
117
+
118
+ disconnected_at = _parse_disconnected_at(d.pop("disconnected_at"))
119
+
120
+ last_ping = isoparse(d.pop("last_ping"))
121
+
122
+ status = ConnectionStatus(d.pop("status"))
123
+
124
+ def _parse_ip_address(data: object) -> Union[None, Unset, str]:
125
+ if data is None:
126
+ return data
127
+ if isinstance(data, Unset):
128
+ return data
129
+ return cast(Union[None, Unset, str], data)
130
+
131
+ ip_address = _parse_ip_address(d.pop("ip_address", UNSET))
132
+
133
+ def _parse_user_agent(data: object) -> Union[None, Unset, str]:
134
+ if data is None:
135
+ return data
136
+ if isinstance(data, Unset):
137
+ return data
138
+ return cast(Union[None, Unset, str], data)
139
+
140
+ user_agent = _parse_user_agent(d.pop("user_agent", UNSET))
141
+
142
+ connection_response = cls(
143
+ websocket_id=websocket_id,
144
+ id=id,
145
+ machine_id=machine_id,
146
+ connected_at=connected_at,
147
+ disconnected_at=disconnected_at,
148
+ last_ping=last_ping,
149
+ status=status,
150
+ ip_address=ip_address,
151
+ user_agent=user_agent,
152
+ )
153
+
154
+ connection_response.additional_properties = d
155
+ return connection_response
156
+
157
+ @property
158
+ def additional_keys(self) -> list[str]:
159
+ return list(self.additional_properties.keys())
160
+
161
+ def __getitem__(self, key: str) -> Any:
162
+ return self.additional_properties[key]
163
+
164
+ def __setitem__(self, key: str, value: Any) -> None:
165
+ self.additional_properties[key] = value
166
+
167
+ def __delitem__(self, key: str) -> None:
168
+ del self.additional_properties[key]
169
+
170
+ def __contains__(self, key: str) -> bool:
171
+ return key in self.additional_properties
@@ -1,8 +1,10 @@
1
- from enum import Enum
2
-
3
-
4
- class GetV1DesktopIdResponse404Status(str, Enum):
5
- ERROR = "error"
6
-
7
- def __str__(self) -> str:
8
- return str(self.value)
1
+ from enum import Enum
2
+
3
+
4
+ class ConnectionStatus(str, Enum):
5
+ CONNECTED = "connected"
6
+ DISCONNECTED = "disconnected"
7
+ ERROR = "error"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,44 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet")
8
+
9
+
10
+ @_attrs_define
11
+ class DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet:
12
+ """ """
13
+
14
+ additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get = cls()
26
+
27
+ database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get.additional_properties = d
28
+ return database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> str:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: str) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -1,59 +1,67 @@
1
- from collections.abc import Mapping
2
- from typing import Any, TypeVar
3
-
4
- from attrs import define as _attrs_define
5
- from attrs import field as _attrs_field
6
-
7
- T = TypeVar("T", bound="PostV1DesktopIdBashActionBody")
8
-
9
-
10
- @_attrs_define
11
- class PostV1DesktopIdBashActionBody:
12
- """
13
- Attributes:
14
- command (str): Bash command to execute Example: echo 'Hello, World!'.
15
- """
16
-
17
- command: str
18
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
19
-
20
- def to_dict(self) -> dict[str, Any]:
21
- command = self.command
22
-
23
- field_dict: dict[str, Any] = {}
24
- field_dict.update(self.additional_properties)
25
- field_dict.update(
26
- {
27
- "command": command,
28
- }
29
- )
30
-
31
- return field_dict
32
-
33
- @classmethod
34
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
- d = dict(src_dict)
36
- command = d.pop("command")
37
-
38
- post_v1_desktop_id_bash_action_body = cls(
39
- command=command,
40
- )
41
-
42
- post_v1_desktop_id_bash_action_body.additional_properties = d
43
- return post_v1_desktop_id_bash_action_body
44
-
45
- @property
46
- def additional_keys(self) -> list[str]:
47
- return list(self.additional_properties.keys())
48
-
49
- def __getitem__(self, key: str) -> Any:
50
- return self.additional_properties[key]
51
-
52
- def __setitem__(self, key: str, value: Any) -> None:
53
- self.additional_properties[key] = value
54
-
55
- def __delitem__(self, key: str) -> None:
56
- del self.additional_properties[key]
57
-
58
- def __contains__(self, key: str) -> bool:
59
- return key in self.additional_properties
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="DisplayDimensions")
8
+
9
+
10
+ @_attrs_define
11
+ class DisplayDimensions:
12
+ """
13
+ Attributes:
14
+ width (int):
15
+ height (int):
16
+ """
17
+
18
+ width: int
19
+ height: int
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ width = self.width
24
+
25
+ height = self.height
26
+
27
+ field_dict: dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update(
30
+ {
31
+ "width": width,
32
+ "height": height,
33
+ }
34
+ )
35
+
36
+ return field_dict
37
+
38
+ @classmethod
39
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
40
+ d = dict(src_dict)
41
+ width = d.pop("width")
42
+
43
+ height = d.pop("height")
44
+
45
+ display_dimensions = cls(
46
+ width=width,
47
+ height=height,
48
+ )
49
+
50
+ display_dimensions.additional_properties = d
51
+ return display_dimensions
52
+
53
+ @property
54
+ def additional_keys(self) -> list[str]:
55
+ return list(self.additional_properties.keys())
56
+
57
+ def __getitem__(self, key: str) -> Any:
58
+ return self.additional_properties[key]
59
+
60
+ def __setitem__(self, key: str, value: Any) -> None:
61
+ self.additional_properties[key] = value
62
+
63
+ def __delitem__(self, key: str) -> None:
64
+ del self.additional_properties[key]
65
+
66
+ def __contains__(self, key: str) -> bool:
67
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="DummyTestEndpointV1TestPostResponseDummyTestEndpointV1TestPost")
8
+
9
+
10
+ @_attrs_define
11
+ class DummyTestEndpointV1TestPostResponseDummyTestEndpointV1TestPost:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post = cls()
26
+
27
+ dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post.additional_properties = d
28
+ return dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetResponse200Item")
8
+
9
+
10
+ @_attrs_define
11
+ class GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetResponse200Item:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item = cls()
26
+
27
+ get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item.additional_properties = d
28
+ return get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties