cyberdesk 0.2.7__tar.gz → 1.0.0__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 (238) hide show
  1. cyberdesk-1.0.0/PKG-INFO +274 -0
  2. cyberdesk-1.0.0/README.md +258 -0
  3. cyberdesk-1.0.0/cyberdesk/__init__.py +45 -0
  4. cyberdesk-1.0.0/cyberdesk/client.py +784 -0
  5. cyberdesk-1.0.0/cyberdesk.egg-info/PKG-INFO +274 -0
  6. cyberdesk-1.0.0/cyberdesk.egg-info/SOURCES.txt +117 -0
  7. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/__init__.py +8 -8
  8. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/api/__init__.py +1 -1
  9. {cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer}/__init__.py +1 -1
  10. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/get_display_dimensions_v1_computer_machine_id_display_dimensions_get.py +163 -0
  11. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/get_mouse_position_v1_computer_machine_id_input_mouse_position_get.py +163 -0
  12. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/get_screenshot_v1_computer_machine_id_display_screenshot_get.py +158 -0
  13. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/keyboard_key_v1_computer_machine_id_input_keyboard_key_post.py +183 -0
  14. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/keyboard_type_v1_computer_machine_id_input_keyboard_type_post.py +183 -0
  15. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/mouse_click_v1_computer_machine_id_input_mouse_click_post.py +187 -0
  16. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/computer/mouse_move_v1_computer_machine_id_input_mouse_move_post.py +183 -0
  17. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/__init__.py +1 -0
  18. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/create_connection_v1_connections_post.py +180 -0
  19. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/delete_connection_v1_connections_connection_id_delete.py +170 -0
  20. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/get_connection_v1_connections_connection_id_get.py +172 -0
  21. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/list_connections_v1_connections_get.py +244 -0
  22. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/connections/update_connection_v1_connections_connection_id_patch.py +198 -0
  23. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/default/__init__.py +1 -0
  24. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/default/root_get.py +83 -0
  25. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/health/__init__.py +1 -0
  26. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/health/database_health_check_v1_health_db_get.py +146 -0
  27. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/health/health_check_v1_health_get.py +144 -0
  28. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/__init__.py +1 -0
  29. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/create_machine_v1_machines_post.py +180 -0
  30. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/delete_machine_v1_machines_machine_id_delete.py +174 -0
  31. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/get_machine_v1_machines_machine_id_get.py +172 -0
  32. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/list_machines_v1_machines_get.py +217 -0
  33. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/machines/update_machine_v1_machines_machine_id_patch.py +198 -0
  34. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/__init__.py +1 -0
  35. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/create_request_log_v1_request_logs_post.py +184 -0
  36. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/delete_request_log_v1_request_logs_log_id_delete.py +170 -0
  37. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/get_request_log_v1_request_logs_log_id_get.py +172 -0
  38. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/list_request_logs_v1_request_logs_get.py +257 -0
  39. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/request_logs/update_request_log_v1_request_logs_log_id_patch.py +202 -0
  40. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/__init__.py +1 -0
  41. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/create_run_v1_runs_post.py +188 -0
  42. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/delete_run_v1_runs_run_id_delete.py +170 -0
  43. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/get_run_v1_runs_run_id_get.py +176 -0
  44. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/list_runs_v1_runs_get.py +266 -0
  45. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/runs/update_run_v1_runs_run_id_patch.py +202 -0
  46. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/test/__init__.py +1 -0
  47. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/test/dummy_test_endpoint_v1_test_post.py +156 -0
  48. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/__init__.py +1 -0
  49. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/create_trajectory_v1_trajectories_post.py +184 -0
  50. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/delete_trajectory_v1_trajectories_trajectory_id_delete.py +170 -0
  51. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/get_latest_trajectory_for_workflow_v1_workflows_workflow_id_latest_trajectory_get.py +176 -0
  52. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/get_trajectory_v1_trajectories_trajectory_id_get.py +176 -0
  53. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/list_trajectories_v1_trajectories_get.py +221 -0
  54. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/trajectories/update_trajectory_v1_trajectories_trajectory_id_patch.py +198 -0
  55. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/__init__.py +1 -0
  56. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/create_workflow_v1_workflows_post.py +180 -0
  57. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/delete_workflow_v1_workflows_workflow_id_delete.py +174 -0
  58. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_workflow_id_get.py +172 -0
  59. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py +185 -0
  60. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py +194 -0
  61. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py +202 -0
  62. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/client.py +268 -268
  63. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/errors.py +16 -16
  64. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/__init__.py +107 -0
  65. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/connection_create.py +111 -0
  66. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/connection_response.py +171 -0
  67. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_404_status.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/connection_status.py +10 -8
  68. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/connection_update.py +145 -0
  69. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get.py +44 -0
  70. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_body.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/display_dimensions.py +67 -59
  71. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post.py +44 -0
  72. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item.py +44 -0
  73. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/health_check_v1_health_get_response_health_check_v1_health_get.py +44 -0
  74. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/http_validation_error.py +75 -0
  75. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_body.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/keyboard_key_request.py +59 -59
  76. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_200.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/keyboard_type_request.py +59 -62
  77. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/machine_create.py +130 -0
  78. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/machine_response.py +182 -0
  79. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_403_status.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/machine_status.py +10 -8
  80. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/machine_update.py +195 -0
  81. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/mouse_click_request.py +109 -0
  82. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_end.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/mouse_move_request.py +67 -71
  83. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_start.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/mouse_position.py +67 -71
  84. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response.py +84 -0
  85. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response_connection_response.py +97 -0
  86. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response_machine_response.py +97 -0
  87. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response_run_response.py +97 -0
  88. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response_trajectory_response.py +97 -0
  89. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/paginated_response_workflow_response.py +97 -0
  90. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/request_log_create.py +187 -0
  91. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/request_log_response.py +230 -0
  92. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/request_log_update.py +164 -0
  93. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_create.py +94 -0
  94. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_response.py +228 -0
  95. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_response_output_data_type_0.py +44 -0
  96. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_response_run_message_history_type_0_item.py +44 -0
  97. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_200_status.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_status.py +12 -11
  98. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_update.py +226 -0
  99. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_update_output_data_type_0.py +44 -0
  100. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/run_update_run_message_history_type_0_item.py +44 -0
  101. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_create.py +83 -0
  102. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_create_trajectory_data_item.py +44 -0
  103. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_response.py +117 -0
  104. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data_item.py +44 -0
  105. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_update.py +99 -0
  106. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py +44 -0
  107. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_wait_action.py → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/validation_error.py +88 -70
  108. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/workflow_create.py +82 -0
  109. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/workflow_response.py +164 -0
  110. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py +44 -0
  111. cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client/models/workflow_update.py +92 -0
  112. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/types.py +54 -46
  113. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/pyproject.toml +1 -1
  114. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/setup.cfg +4 -4
  115. cyberdesk-0.2.7/PKG-INFO +0 -228
  116. cyberdesk-0.2.7/README.md +0 -212
  117. cyberdesk-0.2.7/cyberdesk/__init__.py +0 -7
  118. cyberdesk-0.2.7/cyberdesk/actions.py +0 -118
  119. cyberdesk-0.2.7/cyberdesk/client.py +0 -75
  120. cyberdesk-0.2.7/cyberdesk/types.py +0 -50
  121. cyberdesk-0.2.7/cyberdesk.egg-info/PKG-INFO +0 -228
  122. cyberdesk-0.2.7/cyberdesk.egg-info/SOURCES.txt +0 -139
  123. cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop/get_v1_desktop_id.py +0 -293
  124. cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop/post_v1_desktop.py +0 -294
  125. cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_bash_action.py +0 -307
  126. cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_computer_action.py +0 -419
  127. cyberdesk-0.2.7/openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_stop.py +0 -288
  128. cyberdesk-0.2.7/openapi_client/api_reference_client/models/__init__.py +0 -249
  129. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_200.py +0 -104
  130. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_200_status.py +0 -11
  131. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_400.py +0 -69
  132. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_400_status.py +0 -8
  133. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_401.py +0 -69
  134. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_401_status.py +0 -8
  135. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_403.py +0 -69
  136. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_404.py +0 -69
  137. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_409.py +0 -69
  138. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_409_status.py +0 -8
  139. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_429.py +0 -69
  140. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_429_status.py +0 -8
  141. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_500.py +0 -69
  142. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_500_status.py +0 -8
  143. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_502.py +0 -69
  144. cyberdesk-0.2.7/openapi_client/api_reference_client/models/get_v1_desktop_id_response_502_status.py +0 -8
  145. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_200.py +0 -79
  146. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400.py +0 -69
  147. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400_status.py +0 -8
  148. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401.py +0 -69
  149. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401_status.py +0 -8
  150. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403.py +0 -69
  151. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403_status.py +0 -8
  152. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404.py +0 -69
  153. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404_status.py +0 -8
  154. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409.py +0 -69
  155. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409_status.py +0 -8
  156. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429.py +0 -69
  157. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429_status.py +0 -8
  158. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500.py +0 -69
  159. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500_status.py +0 -8
  160. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502.py +0 -69
  161. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502_status.py +0 -8
  162. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action.py +0 -133
  163. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_button.py +0 -10
  164. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_click_type.py +0 -10
  165. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_type.py +0 -8
  166. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action.py +0 -98
  167. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_type.py +0 -8
  168. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action.py +0 -64
  169. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action_type.py +0 -8
  170. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action.py +0 -80
  171. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action_type.py +0 -8
  172. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action.py +0 -109
  173. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_key_action_type.py +0 -10
  174. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_type.py +0 -8
  175. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_200.py +0 -79
  176. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400.py +0 -71
  177. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400_status.py +0 -8
  178. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401.py +0 -71
  179. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401_status.py +0 -8
  180. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403.py +0 -71
  181. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403_status.py +0 -8
  182. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404.py +0 -71
  183. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404_status.py +0 -8
  184. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409.py +0 -71
  185. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409_status.py +0 -8
  186. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429.py +0 -71
  187. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429_status.py +0 -8
  188. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500.py +0 -71
  189. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500_status.py +0 -8
  190. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502.py +0 -71
  191. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502_status.py +0 -8
  192. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action.py +0 -63
  193. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action_type.py +0 -8
  194. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action.py +0 -81
  195. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_direction.py +0 -11
  196. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_type.py +0 -8
  197. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action.py +0 -71
  198. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action_type.py +0 -8
  199. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_wait_action_type.py +0 -8
  200. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_200_status.py +0 -11
  201. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400.py +0 -69
  202. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400_status.py +0 -8
  203. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401.py +0 -69
  204. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401_status.py +0 -8
  205. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403.py +0 -69
  206. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403_status.py +0 -8
  207. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404.py +0 -69
  208. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404_status.py +0 -8
  209. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409.py +0 -69
  210. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409_status.py +0 -8
  211. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429.py +0 -69
  212. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429_status.py +0 -8
  213. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500.py +0 -69
  214. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500_status.py +0 -8
  215. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502.py +0 -69
  216. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502_status.py +0 -8
  217. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_200.py +0 -70
  218. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_400.py +0 -69
  219. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_400_status.py +0 -8
  220. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_401.py +0 -69
  221. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_401_status.py +0 -8
  222. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_403.py +0 -69
  223. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_403_status.py +0 -8
  224. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_404.py +0 -69
  225. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_404_status.py +0 -8
  226. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_409.py +0 -69
  227. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_409_status.py +0 -8
  228. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_429.py +0 -69
  229. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_429_status.py +0 -8
  230. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_500.py +0 -69
  231. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_500_status.py +0 -8
  232. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_502.py +0 -69
  233. cyberdesk-0.2.7/openapi_client/api_reference_client/models/post_v1_desktop_response_502_status.py +0 -8
  234. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/LICENSE +0 -0
  235. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/cyberdesk.egg-info/dependency_links.txt +0 -0
  236. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/cyberdesk.egg-info/requires.txt +0 -0
  237. {cyberdesk-0.2.7 → cyberdesk-1.0.0}/cyberdesk.egg-info/top_level.txt +0 -0
  238. {cyberdesk-0.2.7/openapi_client/api_reference_client → cyberdesk-1.0.0/openapi_client/cyberdesk_cloud_client}/py.typed +0 -0
@@ -0,0 +1,274 @@
1
+ Metadata-Version: 2.4
2
+ Name: cyberdesk
3
+ Version: 1.0.0
4
+ Summary: The official Python SDK for Cyberdesk
5
+ Author-email: Cyberdesk Team <dev@cyberdesk.io>
6
+ License-Expression: MIT
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: httpx
10
+ Requires-Dist: attrs
11
+ Provides-Extra: dev
12
+ Requires-Dist: openapi-python-client; extra == "dev"
13
+ Requires-Dist: build; extra == "dev"
14
+ Requires-Dist: twine; extra == "dev"
15
+ Dynamic: license-file
16
+
17
+ # Cyberdesk Python SDK
18
+
19
+ The official Python SDK for Cyberdesk API. This SDK provides a clean, type-safe interface for interacting with all Cyberdesk resources including machines, workflows, runs, connections, and trajectories.
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ pip install cyberdesk
25
+ ```
26
+
27
+ ## Quick Start
28
+
29
+ ```python
30
+ from cyberdesk import CyberdeskClient
31
+
32
+ # Initialize the client
33
+ client = CyberdeskClient(api_key="your-api-key")
34
+
35
+ # List machines
36
+ response = client.machines.list_sync()
37
+ if response.data:
38
+ for machine in response.data.items:
39
+ print(f"Machine: {machine.name} - Status: {machine.status}")
40
+
41
+ # Create a workflow
42
+ from cyberdesk import WorkflowCreate
43
+
44
+ workflow_data = WorkflowCreate(
45
+ name="My Workflow",
46
+ description="Automated task workflow"
47
+ )
48
+ response = client.workflows.create_sync(workflow_data)
49
+ if response.data:
50
+ print(f"Created workflow: {response.data.id}")
51
+ ```
52
+
53
+ ## Async Support
54
+
55
+ The SDK provides both synchronous and asynchronous methods for all operations:
56
+
57
+ ```python
58
+ import asyncio
59
+ from cyberdesk import CyberdeskClient
60
+
61
+ async def main():
62
+ client = CyberdeskClient(api_key="your-api-key")
63
+
64
+ # Async method
65
+ response = await client.machines.list()
66
+ if response.data:
67
+ for machine in response.data.items:
68
+ print(f"Machine: {machine.name}")
69
+
70
+ asyncio.run(main())
71
+ ```
72
+
73
+ ## Resources
74
+
75
+ ### Machines
76
+
77
+ ```python
78
+ # List machines
79
+ response = client.machines.list_sync(
80
+ skip=0,
81
+ limit=10,
82
+ status=MachineStatus.ACTIVE
83
+ )
84
+
85
+ # Get a specific machine
86
+ response = client.machines.get_sync("machine-id")
87
+
88
+ # Create a machine
89
+ from cyberdesk import MachineCreate
90
+
91
+ machine = MachineCreate(
92
+ name="My Machine",
93
+ provider="azure",
94
+ region="eastus"
95
+ )
96
+ response = client.machines.create_sync(machine)
97
+
98
+ # Update a machine
99
+ from cyberdesk import MachineUpdate
100
+
101
+ update = MachineUpdate(name="Updated Name")
102
+ response = client.machines.update_sync("machine-id", update)
103
+
104
+ # Delete a machine
105
+ response = client.machines.delete_sync("machine-id")
106
+ ```
107
+
108
+ ### Workflows
109
+
110
+ ```python
111
+ # List workflows
112
+ response = client.workflows.list_sync()
113
+
114
+ # Get a workflow
115
+ response = client.workflows.get_sync("workflow-id")
116
+
117
+ # Create a workflow
118
+ from cyberdesk import WorkflowCreate
119
+
120
+ workflow = WorkflowCreate(
121
+ name="My Workflow",
122
+ description="Description"
123
+ )
124
+ response = client.workflows.create_sync(workflow)
125
+
126
+ # Update a workflow
127
+ from cyberdesk import WorkflowUpdate
128
+
129
+ update = WorkflowUpdate(description="New description")
130
+ response = client.workflows.update_sync("workflow-id", update)
131
+
132
+ # Delete a workflow
133
+ response = client.workflows.delete_sync("workflow-id")
134
+ ```
135
+
136
+ ### Runs
137
+
138
+ ```python
139
+ # List runs with filtering
140
+ response = client.runs.list_sync(
141
+ workflow_id="workflow-id",
142
+ machine_id="machine-id",
143
+ status=RunStatus.RUNNING
144
+ )
145
+
146
+ # Create a run
147
+ from cyberdesk import RunCreate
148
+
149
+ run = RunCreate(
150
+ workflow_id="workflow-id",
151
+ machine_id="machine-id"
152
+ )
153
+ response = client.runs.create_sync(run)
154
+
155
+ # Get run details
156
+ response = client.runs.get_sync("run-id")
157
+
158
+ # Update run status
159
+ from cyberdesk import RunUpdate
160
+
161
+ update = RunUpdate(status=RunStatus.COMPLETED)
162
+ response = client.runs.update_sync("run-id", update)
163
+ ```
164
+
165
+ ### Connections
166
+
167
+ ```python
168
+ # List connections
169
+ response = client.connections.list_sync(
170
+ machine_id="machine-id",
171
+ status=ConnectionStatus.ACTIVE
172
+ )
173
+
174
+ # Create a connection
175
+ from cyberdesk import ConnectionCreate
176
+
177
+ connection = ConnectionCreate(
178
+ machine_id="machine-id",
179
+ connection_type="vnc"
180
+ )
181
+ response = client.connections.create_sync(connection)
182
+ ```
183
+
184
+ ### Trajectories
185
+
186
+ ```python
187
+ # List trajectories
188
+ response = client.trajectories.list_sync(workflow_id="workflow-id")
189
+
190
+ # Create a trajectory
191
+ from cyberdesk import TrajectoryCreate
192
+
193
+ trajectory = TrajectoryCreate(
194
+ workflow_id="workflow-id",
195
+ trajectory_data=[{"action": "click", "x": 100, "y": 200}]
196
+ )
197
+ response = client.trajectories.create_sync(trajectory)
198
+
199
+ # Get latest trajectory for a workflow
200
+ response = client.trajectories.get_latest_for_workflow_sync("workflow-id")
201
+
202
+ # Update a trajectory
203
+ from cyberdesk import TrajectoryUpdate
204
+
205
+ update = TrajectoryUpdate(
206
+ trajectory_data=[{"action": "type", "text": "Hello"}]
207
+ )
208
+ response = client.trajectories.update_sync("trajectory-id", update)
209
+ ```
210
+
211
+ ## Error Handling
212
+
213
+ All methods return an `ApiResponse` object with `data` and `error` attributes:
214
+
215
+ ```python
216
+ response = client.machines.get_sync("invalid-id")
217
+ if response.error:
218
+ print(f"Error: {response.error}")
219
+ else:
220
+ print(f"Machine: {response.data.name}")
221
+ ```
222
+
223
+ ## Context Manager
224
+
225
+ The client can be used as a context manager:
226
+
227
+ ```python
228
+ with CyberdeskClient(api_key="your-api-key") as client:
229
+ response = client.machines.list_sync()
230
+ # Client will be properly closed when exiting the context
231
+ ```
232
+
233
+ ## Configuration
234
+
235
+ You can specify a custom API base URL:
236
+
237
+ ```python
238
+ client = CyberdeskClient(
239
+ api_key="your-api-key",
240
+ base_url="https://custom-api.cyberdesk.io"
241
+ )
242
+ ```
243
+
244
+ ## Type Safety
245
+
246
+ The SDK is fully typed and exports all request/response models:
247
+
248
+ ```python
249
+ from cyberdesk import (
250
+ MachineCreate,
251
+ MachineUpdate,
252
+ MachineResponse,
253
+ MachineStatus,
254
+ WorkflowCreate,
255
+ WorkflowResponse,
256
+ RunCreate,
257
+ RunStatus,
258
+ # ... and more
259
+ )
260
+ ```
261
+
262
+ ## Limitations
263
+
264
+ - **Screenshot API**: The `/v1/computer/{machine_id}/display/screenshot` endpoint is not included in the generated client due to limitations with binary (PNG) responses in the openapi-python-client generator. This can be added manually if needed - see the TODO comment in `client.py`.
265
+
266
+ ## Requirements
267
+
268
+ - Python 3.8+
269
+ - httpx
270
+ - pydantic
271
+
272
+ ## License
273
+
274
+ MIT License - see LICENSE file for details.
@@ -0,0 +1,258 @@
1
+ # Cyberdesk Python SDK
2
+
3
+ The official Python SDK for Cyberdesk API. This SDK provides a clean, type-safe interface for interacting with all Cyberdesk resources including machines, workflows, runs, connections, and trajectories.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install cyberdesk
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```python
14
+ from cyberdesk import CyberdeskClient
15
+
16
+ # Initialize the client
17
+ client = CyberdeskClient(api_key="your-api-key")
18
+
19
+ # List machines
20
+ response = client.machines.list_sync()
21
+ if response.data:
22
+ for machine in response.data.items:
23
+ print(f"Machine: {machine.name} - Status: {machine.status}")
24
+
25
+ # Create a workflow
26
+ from cyberdesk import WorkflowCreate
27
+
28
+ workflow_data = WorkflowCreate(
29
+ name="My Workflow",
30
+ description="Automated task workflow"
31
+ )
32
+ response = client.workflows.create_sync(workflow_data)
33
+ if response.data:
34
+ print(f"Created workflow: {response.data.id}")
35
+ ```
36
+
37
+ ## Async Support
38
+
39
+ The SDK provides both synchronous and asynchronous methods for all operations:
40
+
41
+ ```python
42
+ import asyncio
43
+ from cyberdesk import CyberdeskClient
44
+
45
+ async def main():
46
+ client = CyberdeskClient(api_key="your-api-key")
47
+
48
+ # Async method
49
+ response = await client.machines.list()
50
+ if response.data:
51
+ for machine in response.data.items:
52
+ print(f"Machine: {machine.name}")
53
+
54
+ asyncio.run(main())
55
+ ```
56
+
57
+ ## Resources
58
+
59
+ ### Machines
60
+
61
+ ```python
62
+ # List machines
63
+ response = client.machines.list_sync(
64
+ skip=0,
65
+ limit=10,
66
+ status=MachineStatus.ACTIVE
67
+ )
68
+
69
+ # Get a specific machine
70
+ response = client.machines.get_sync("machine-id")
71
+
72
+ # Create a machine
73
+ from cyberdesk import MachineCreate
74
+
75
+ machine = MachineCreate(
76
+ name="My Machine",
77
+ provider="azure",
78
+ region="eastus"
79
+ )
80
+ response = client.machines.create_sync(machine)
81
+
82
+ # Update a machine
83
+ from cyberdesk import MachineUpdate
84
+
85
+ update = MachineUpdate(name="Updated Name")
86
+ response = client.machines.update_sync("machine-id", update)
87
+
88
+ # Delete a machine
89
+ response = client.machines.delete_sync("machine-id")
90
+ ```
91
+
92
+ ### Workflows
93
+
94
+ ```python
95
+ # List workflows
96
+ response = client.workflows.list_sync()
97
+
98
+ # Get a workflow
99
+ response = client.workflows.get_sync("workflow-id")
100
+
101
+ # Create a workflow
102
+ from cyberdesk import WorkflowCreate
103
+
104
+ workflow = WorkflowCreate(
105
+ name="My Workflow",
106
+ description="Description"
107
+ )
108
+ response = client.workflows.create_sync(workflow)
109
+
110
+ # Update a workflow
111
+ from cyberdesk import WorkflowUpdate
112
+
113
+ update = WorkflowUpdate(description="New description")
114
+ response = client.workflows.update_sync("workflow-id", update)
115
+
116
+ # Delete a workflow
117
+ response = client.workflows.delete_sync("workflow-id")
118
+ ```
119
+
120
+ ### Runs
121
+
122
+ ```python
123
+ # List runs with filtering
124
+ response = client.runs.list_sync(
125
+ workflow_id="workflow-id",
126
+ machine_id="machine-id",
127
+ status=RunStatus.RUNNING
128
+ )
129
+
130
+ # Create a run
131
+ from cyberdesk import RunCreate
132
+
133
+ run = RunCreate(
134
+ workflow_id="workflow-id",
135
+ machine_id="machine-id"
136
+ )
137
+ response = client.runs.create_sync(run)
138
+
139
+ # Get run details
140
+ response = client.runs.get_sync("run-id")
141
+
142
+ # Update run status
143
+ from cyberdesk import RunUpdate
144
+
145
+ update = RunUpdate(status=RunStatus.COMPLETED)
146
+ response = client.runs.update_sync("run-id", update)
147
+ ```
148
+
149
+ ### Connections
150
+
151
+ ```python
152
+ # List connections
153
+ response = client.connections.list_sync(
154
+ machine_id="machine-id",
155
+ status=ConnectionStatus.ACTIVE
156
+ )
157
+
158
+ # Create a connection
159
+ from cyberdesk import ConnectionCreate
160
+
161
+ connection = ConnectionCreate(
162
+ machine_id="machine-id",
163
+ connection_type="vnc"
164
+ )
165
+ response = client.connections.create_sync(connection)
166
+ ```
167
+
168
+ ### Trajectories
169
+
170
+ ```python
171
+ # List trajectories
172
+ response = client.trajectories.list_sync(workflow_id="workflow-id")
173
+
174
+ # Create a trajectory
175
+ from cyberdesk import TrajectoryCreate
176
+
177
+ trajectory = TrajectoryCreate(
178
+ workflow_id="workflow-id",
179
+ trajectory_data=[{"action": "click", "x": 100, "y": 200}]
180
+ )
181
+ response = client.trajectories.create_sync(trajectory)
182
+
183
+ # Get latest trajectory for a workflow
184
+ response = client.trajectories.get_latest_for_workflow_sync("workflow-id")
185
+
186
+ # Update a trajectory
187
+ from cyberdesk import TrajectoryUpdate
188
+
189
+ update = TrajectoryUpdate(
190
+ trajectory_data=[{"action": "type", "text": "Hello"}]
191
+ )
192
+ response = client.trajectories.update_sync("trajectory-id", update)
193
+ ```
194
+
195
+ ## Error Handling
196
+
197
+ All methods return an `ApiResponse` object with `data` and `error` attributes:
198
+
199
+ ```python
200
+ response = client.machines.get_sync("invalid-id")
201
+ if response.error:
202
+ print(f"Error: {response.error}")
203
+ else:
204
+ print(f"Machine: {response.data.name}")
205
+ ```
206
+
207
+ ## Context Manager
208
+
209
+ The client can be used as a context manager:
210
+
211
+ ```python
212
+ with CyberdeskClient(api_key="your-api-key") as client:
213
+ response = client.machines.list_sync()
214
+ # Client will be properly closed when exiting the context
215
+ ```
216
+
217
+ ## Configuration
218
+
219
+ You can specify a custom API base URL:
220
+
221
+ ```python
222
+ client = CyberdeskClient(
223
+ api_key="your-api-key",
224
+ base_url="https://custom-api.cyberdesk.io"
225
+ )
226
+ ```
227
+
228
+ ## Type Safety
229
+
230
+ The SDK is fully typed and exports all request/response models:
231
+
232
+ ```python
233
+ from cyberdesk import (
234
+ MachineCreate,
235
+ MachineUpdate,
236
+ MachineResponse,
237
+ MachineStatus,
238
+ WorkflowCreate,
239
+ WorkflowResponse,
240
+ RunCreate,
241
+ RunStatus,
242
+ # ... and more
243
+ )
244
+ ```
245
+
246
+ ## Limitations
247
+
248
+ - **Screenshot API**: The `/v1/computer/{machine_id}/display/screenshot` endpoint is not included in the generated client due to limitations with binary (PNG) responses in the openapi-python-client generator. This can be added manually if needed - see the TODO comment in `client.py`.
249
+
250
+ ## Requirements
251
+
252
+ - Python 3.8+
253
+ - httpx
254
+ - pydantic
255
+
256
+ ## License
257
+
258
+ MIT License - see LICENSE file for details.
@@ -0,0 +1,45 @@
1
+ """Cyberdesk Python SDK."""
2
+
3
+ from .client import (
4
+ CyberdeskClient,
5
+ MachineCreate,
6
+ MachineUpdate,
7
+ MachineResponse,
8
+ MachineStatus,
9
+ WorkflowCreate,
10
+ WorkflowUpdate,
11
+ WorkflowResponse,
12
+ RunCreate,
13
+ RunUpdate,
14
+ RunResponse,
15
+ RunStatus,
16
+ ConnectionCreate,
17
+ ConnectionResponse,
18
+ ConnectionStatus,
19
+ TrajectoryCreate,
20
+ TrajectoryUpdate,
21
+ TrajectoryResponse,
22
+ )
23
+
24
+ __version__ = "1.0.0"
25
+
26
+ __all__ = [
27
+ "CyberdeskClient",
28
+ "MachineCreate",
29
+ "MachineUpdate",
30
+ "MachineResponse",
31
+ "MachineStatus",
32
+ "WorkflowCreate",
33
+ "WorkflowUpdate",
34
+ "WorkflowResponse",
35
+ "RunCreate",
36
+ "RunUpdate",
37
+ "RunResponse",
38
+ "RunStatus",
39
+ "ConnectionCreate",
40
+ "ConnectionResponse",
41
+ "ConnectionStatus",
42
+ "TrajectoryCreate",
43
+ "TrajectoryUpdate",
44
+ "TrajectoryResponse",
45
+ ]