ourskyai-node-platform-api 1.3.9821__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. ourskyai_node_platform_api/__init__.py +301 -0
  2. ourskyai_node_platform_api/api/__init__.py +5 -0
  3. ourskyai_node_platform_api/api/default_api.py +22197 -0
  4. ourskyai_node_platform_api/api_client.py +758 -0
  5. ourskyai_node_platform_api/api_response.py +25 -0
  6. ourskyai_node_platform_api/configuration.py +456 -0
  7. ourskyai_node_platform_api/exceptions.py +166 -0
  8. ourskyai_node_platform_api/models/__init__.py +284 -0
  9. ourskyai_node_platform_api/models/all_sky_camera_diagnosis_report.py +73 -0
  10. ourskyai_node_platform_api/models/astro_camera_diagnosis_report.py +79 -0
  11. ourskyai_node_platform_api/models/auto_stretch_image_completed.py +71 -0
  12. ourskyai_node_platform_api/models/auto_stretch_image_started.py +71 -0
  13. ourskyai_node_platform_api/models/autofocus_failed.py +71 -0
  14. ourskyai_node_platform_api/models/autofocus_finished.py +80 -0
  15. ourskyai_node_platform_api/models/autofocus_method.py +41 -0
  16. ourskyai_node_platform_api/models/autofocus_point_added.py +75 -0
  17. ourskyai_node_platform_api/models/autofocus_started.py +79 -0
  18. ourskyai_node_platform_api/models/bff_v1_all_sky_images.py +90 -0
  19. ourskyai_node_platform_api/models/camera_image_captured.py +75 -0
  20. ourskyai_node_platform_api/models/camera_status_updated.py +76 -0
  21. ourskyai_node_platform_api/models/camera_temperature_set.py +71 -0
  22. ourskyai_node_platform_api/models/capture_image_started.py +79 -0
  23. ourskyai_node_platform_api/models/connection_status.py +41 -0
  24. ourskyai_node_platform_api/models/create_mount_model_completed.py +71 -0
  25. ourskyai_node_platform_api/models/create_mount_model_failed.py +71 -0
  26. ourskyai_node_platform_api/models/create_mount_model_started.py +71 -0
  27. ourskyai_node_platform_api/models/custom_image_processing_container.py +81 -0
  28. ourskyai_node_platform_api/models/custom_image_processing_container_list.py +81 -0
  29. ourskyai_node_platform_api/models/debug_logged.py +73 -0
  30. ourskyai_node_platform_api/models/elevation_mask_diagnostic_completed.py +71 -0
  31. ourskyai_node_platform_api/models/elevation_mask_diagnostic_failed.py +71 -0
  32. ourskyai_node_platform_api/models/elevation_mask_diagnostic_started.py +71 -0
  33. ourskyai_node_platform_api/models/elevation_mask_point_added.py +75 -0
  34. ourskyai_node_platform_api/models/empty_success.py +71 -0
  35. ourskyai_node_platform_api/models/enclosure_shutter_label.py +40 -0
  36. ourskyai_node_platform_api/models/enclosure_shutter_state.py +46 -0
  37. ourskyai_node_platform_api/models/enclosure_shutter_statuses_updated.py +75 -0
  38. ourskyai_node_platform_api/models/enclosure_state.py +50 -0
  39. ourskyai_node_platform_api/models/event_type.py +94 -0
  40. ourskyai_node_platform_api/models/fits_header.py +73 -0
  41. ourskyai_node_platform_api/models/focus_operation.py +43 -0
  42. ourskyai_node_platform_api/models/focuser_diagnosis_report.py +73 -0
  43. ourskyai_node_platform_api/models/focuser_position.py +81 -0
  44. ourskyai_node_platform_api/models/focuser_status_updated.py +72 -0
  45. ourskyai_node_platform_api/models/go_to_altitude_azimuth_completed.py +73 -0
  46. ourskyai_node_platform_api/models/go_to_altitude_azimuth_failed.py +73 -0
  47. ourskyai_node_platform_api/models/go_to_altitude_azimuth_started.py +73 -0
  48. ourskyai_node_platform_api/models/go_to_home_completed.py +71 -0
  49. ourskyai_node_platform_api/models/go_to_home_failed.py +71 -0
  50. ourskyai_node_platform_api/models/go_to_home_started.py +71 -0
  51. ourskyai_node_platform_api/models/go_to_mechanical_coordinates_completed.py +73 -0
  52. ourskyai_node_platform_api/models/go_to_mechanical_coordinates_failed.py +73 -0
  53. ourskyai_node_platform_api/models/go_to_mechanical_coordinates_started.py +73 -0
  54. ourskyai_node_platform_api/models/go_to_ra_dec_completed.py +73 -0
  55. ourskyai_node_platform_api/models/go_to_ra_dec_failed.py +73 -0
  56. ourskyai_node_platform_api/models/go_to_ra_dec_started.py +73 -0
  57. ourskyai_node_platform_api/models/gps_data_updated.py +83 -0
  58. ourskyai_node_platform_api/models/hardware_daemon_logged.py +71 -0
  59. ourskyai_node_platform_api/models/ice_message.py +87 -0
  60. ourskyai_node_platform_api/models/image_file_format.py +42 -0
  61. ourskyai_node_platform_api/models/image_set_type.py +43 -0
  62. ourskyai_node_platform_api/models/location.py +75 -0
  63. ourskyai_node_platform_api/models/message_type.py +46 -0
  64. ourskyai_node_platform_api/models/message_type_wrapper.py +72 -0
  65. ourskyai_node_platform_api/models/metric_type.py +42 -0
  66. ourskyai_node_platform_api/models/motor_faulted.py +76 -0
  67. ourskyai_node_platform_api/models/motor_faults_cleared.py +72 -0
  68. ourskyai_node_platform_api/models/mount_diagnosis_report.py +77 -0
  69. ourskyai_node_platform_api/models/mount_model_point_added.py +77 -0
  70. ourskyai_node_platform_api/models/mount_model_point_failed.py +73 -0
  71. ourskyai_node_platform_api/models/mount_status_updated.py +72 -0
  72. ourskyai_node_platform_api/models/operation_status_updated.py +75 -0
  73. ourskyai_node_platform_api/models/optical_tube_status.py +71 -0
  74. ourskyai_node_platform_api/models/optical_tube_status_updated.py +72 -0
  75. ourskyai_node_platform_api/models/peer.py +78 -0
  76. ourskyai_node_platform_api/models/peer_role.py +40 -0
  77. ourskyai_node_platform_api/models/plate_solve_completed.py +75 -0
  78. ourskyai_node_platform_api/models/plate_solve_failed.py +71 -0
  79. ourskyai_node_platform_api/models/plate_solve_started.py +71 -0
  80. ourskyai_node_platform_api/models/platform_connection_diagnosis_report.py +71 -0
  81. ourskyai_node_platform_api/models/point2_d.py +73 -0
  82. ourskyai_node_platform_api/models/relay_channel.py +45 -0
  83. ourskyai_node_platform_api/models/relay_function.py +46 -0
  84. ourskyai_node_platform_api/models/relays_diagnosis_report.py +75 -0
  85. ourskyai_node_platform_api/models/relays_status.py +71 -0
  86. ourskyai_node_platform_api/models/relays_updated.py +82 -0
  87. ourskyai_node_platform_api/models/roof_diagnosis_report.py +75 -0
  88. ourskyai_node_platform_api/models/roof_state.py +50 -0
  89. ourskyai_node_platform_api/models/roof_status.py +71 -0
  90. ourskyai_node_platform_api/models/roof_updated.py +78 -0
  91. ourskyai_node_platform_api/models/rotator_position.py +73 -0
  92. ourskyai_node_platform_api/models/rotator_status_updated.py +72 -0
  93. ourskyai_node_platform_api/models/rotator_target_type.py +40 -0
  94. ourskyai_node_platform_api/models/safety_status_updated.py +75 -0
  95. ourskyai_node_platform_api/models/sdp_message.py +73 -0
  96. ourskyai_node_platform_api/models/slew_demo_enabled.py +71 -0
  97. ourskyai_node_platform_api/models/star_measurement_failed.py +71 -0
  98. ourskyai_node_platform_api/models/star_measurement_started.py +71 -0
  99. ourskyai_node_platform_api/models/stars_measured.py +75 -0
  100. ourskyai_node_platform_api/models/startup_wizard_step.py +76 -0
  101. ourskyai_node_platform_api/models/system_event_type.py +96 -0
  102. ourskyai_node_platform_api/models/task_cancelled.py +78 -0
  103. ourskyai_node_platform_api/models/task_completed.py +76 -0
  104. ourskyai_node_platform_api/models/task_scheduled.py +76 -0
  105. ourskyai_node_platform_api/models/task_started.py +76 -0
  106. ourskyai_node_platform_api/models/update_custom_image_processing_container_request.py +73 -0
  107. ourskyai_node_platform_api/models/v1_all_sky_classification.py +74 -0
  108. ourskyai_node_platform_api/models/v1_all_sky_classification_label.py +43 -0
  109. ourskyai_node_platform_api/models/v1_all_sky_image.py +81 -0
  110. ourskyai_node_platform_api/models/v1_all_sky_images.py +79 -0
  111. ourskyai_node_platform_api/models/v1_all_sky_keogram.py +81 -0
  112. ourskyai_node_platform_api/models/v1_all_sky_keograms.py +79 -0
  113. ourskyai_node_platform_api/models/v1_all_sky_prediction_label.py +43 -0
  114. ourskyai_node_platform_api/models/v1_all_sky_timelapse.py +81 -0
  115. ourskyai_node_platform_api/models/v1_all_sky_timelapses.py +79 -0
  116. ourskyai_node_platform_api/models/v1_apex_charts_timeline.py +79 -0
  117. ourskyai_node_platform_api/models/v1_apex_charts_timeline_element.py +75 -0
  118. ourskyai_node_platform_api/models/v1_astro_target.py +83 -0
  119. ourskyai_node_platform_api/models/v1_camera_roll_image.py +86 -0
  120. ourskyai_node_platform_api/models/v1_camera_status.py +85 -0
  121. ourskyai_node_platform_api/models/v1_camera_statuses.py +79 -0
  122. ourskyai_node_platform_api/models/v1_cancel_all_tasks_request.py +71 -0
  123. ourskyai_node_platform_api/models/v1_cancel_task_request.py +73 -0
  124. ourskyai_node_platform_api/models/v1_capture_image_request.py +89 -0
  125. ourskyai_node_platform_api/models/v1_capture_images_continuously_request.py +89 -0
  126. ourskyai_node_platform_api/models/v1_connected_camera.py +73 -0
  127. ourskyai_node_platform_api/models/v1_create_mount_model_request.py +77 -0
  128. ourskyai_node_platform_api/models/v1_cycle_relays_request.py +74 -0
  129. ourskyai_node_platform_api/models/v1_delete_image_request.py +71 -0
  130. ourskyai_node_platform_api/models/v1_diagnose_system_request.py +85 -0
  131. ourskyai_node_platform_api/models/v1_disable_live_video_request.py +71 -0
  132. ourskyai_node_platform_api/models/v1_elevation_mask.py +81 -0
  133. ourskyai_node_platform_api/models/v1_elevation_mask_point.py +75 -0
  134. ourskyai_node_platform_api/models/v1_enable_live_video_request.py +81 -0
  135. ourskyai_node_platform_api/models/v1_enclosure_rotator_status.py +75 -0
  136. ourskyai_node_platform_api/models/v1_enclosure_shutter_status.py +79 -0
  137. ourskyai_node_platform_api/models/v1_enclosure_shutter_statuses.py +79 -0
  138. ourskyai_node_platform_api/models/v1_enclosure_status.py +78 -0
  139. ourskyai_node_platform_api/models/v1_enclosure_window_status.py +75 -0
  140. ourskyai_node_platform_api/models/v1_end_session_request.py +73 -0
  141. ourskyai_node_platform_api/models/v1_event.py +80 -0
  142. ourskyai_node_platform_api/models/v1_event_data.py +911 -0
  143. ourskyai_node_platform_api/models/v1_filter.py +74 -0
  144. ourskyai_node_platform_api/models/v1_filter_type.py +65 -0
  145. ourskyai_node_platform_api/models/v1_filter_wheel_status.py +85 -0
  146. ourskyai_node_platform_api/models/v1_focuser_limit.py +73 -0
  147. ourskyai_node_platform_api/models/v1_focuser_status.py +79 -0
  148. ourskyai_node_platform_api/models/v1_follow_tle_request.py +73 -0
  149. ourskyai_node_platform_api/models/v1_get_component_status_response.py +145 -0
  150. ourskyai_node_platform_api/models/v1_get_health_check_response.py +83 -0
  151. ourskyai_node_platform_api/models/v1_get_storage_status_response.py +75 -0
  152. ourskyai_node_platform_api/models/v1_gnss_pps_status.py +88 -0
  153. ourskyai_node_platform_api/models/v1_gnss_pps_status_details.py +77 -0
  154. ourskyai_node_platform_api/models/v1_go_to_filter_wheel_position_request.py +71 -0
  155. ourskyai_node_platform_api/models/v1_go_to_focuser_position_request.py +74 -0
  156. ourskyai_node_platform_api/models/v1_go_to_m3_port_request.py +71 -0
  157. ourskyai_node_platform_api/models/v1_go_to_mount_coordinates_request.py +77 -0
  158. ourskyai_node_platform_api/models/v1_go_to_rotator_position_request.py +74 -0
  159. ourskyai_node_platform_api/models/v1_image.py +103 -0
  160. ourskyai_node_platform_api/models/v1_images.py +79 -0
  161. ourskyai_node_platform_api/models/v1_jog_enclosure_rotator_request.py +71 -0
  162. ourskyai_node_platform_api/models/v1_jog_enclosure_shutter_request.py +74 -0
  163. ourskyai_node_platform_api/models/v1_jog_enclosure_shutters_request.py +79 -0
  164. ourskyai_node_platform_api/models/v1_jog_enclosure_window_request.py +71 -0
  165. ourskyai_node_platform_api/models/v1_jog_mount_request.py +73 -0
  166. ourskyai_node_platform_api/models/v1_last_sample.py +75 -0
  167. ourskyai_node_platform_api/models/v1_latest_image.py +89 -0
  168. ourskyai_node_platform_api/models/v1_list_producers_request.py +71 -0
  169. ourskyai_node_platform_api/models/v1_list_producers_response.py +81 -0
  170. ourskyai_node_platform_api/models/v1_m3_status.py +73 -0
  171. ourskyai_node_platform_api/models/v1_metric.py +82 -0
  172. ourskyai_node_platform_api/models/v1_motor.py +46 -0
  173. ourskyai_node_platform_api/models/v1_motor_status.py +87 -0
  174. ourskyai_node_platform_api/models/v1_mount_model.py +81 -0
  175. ourskyai_node_platform_api/models/v1_mount_model_point.py +77 -0
  176. ourskyai_node_platform_api/models/v1_mount_status.py +93 -0
  177. ourskyai_node_platform_api/models/v1_mount_system_settings.py +73 -0
  178. ourskyai_node_platform_api/models/v1_move_focuser_position_request.py +74 -0
  179. ourskyai_node_platform_api/models/v1_move_focuser_response.py +77 -0
  180. ourskyai_node_platform_api/models/v1_move_focuser_steps_request.py +74 -0
  181. ourskyai_node_platform_api/models/v1_node_history.py +73 -0
  182. ourskyai_node_platform_api/models/v1_node_overview.py +122 -0
  183. ourskyai_node_platform_api/models/v1_node_status.py +43 -0
  184. ourskyai_node_platform_api/models/v1_ntp_status.py +88 -0
  185. ourskyai_node_platform_api/models/v1_ntp_status_details.py +73 -0
  186. ourskyai_node_platform_api/models/v1_open_enclosure_shutters_request.py +71 -0
  187. ourskyai_node_platform_api/models/v1_open_roof_request.py +71 -0
  188. ourskyai_node_platform_api/models/v1_optical_tube_cover_status.py +73 -0
  189. ourskyai_node_platform_api/models/v1_optical_tube_fan_role.py +46 -0
  190. ourskyai_node_platform_api/models/v1_optical_tube_fan_status.py +76 -0
  191. ourskyai_node_platform_api/models/v1_optical_tube_fan_statuses.py +79 -0
  192. ourskyai_node_platform_api/models/v1_optical_tube_heater_role.py +41 -0
  193. ourskyai_node_platform_api/models/v1_optical_tube_heater_status.py +76 -0
  194. ourskyai_node_platform_api/models/v1_optical_tube_heater_statuses.py +79 -0
  195. ourskyai_node_platform_api/models/v1_optical_tube_status.py +87 -0
  196. ourskyai_node_platform_api/models/v1_peer_status_changed_request.py +81 -0
  197. ourskyai_node_platform_api/models/v1_ptp_data_set.py +75 -0
  198. ourskyai_node_platform_api/models/v1_ptp_port_properties.py +77 -0
  199. ourskyai_node_platform_api/models/v1_ptp_status.py +88 -0
  200. ourskyai_node_platform_api/models/v1_ptp_status_details.py +102 -0
  201. ourskyai_node_platform_api/models/v1_ptp_time_status.py +85 -0
  202. ourskyai_node_platform_api/models/v1_record_video_request.py +71 -0
  203. ourskyai_node_platform_api/models/v1_relay.py +74 -0
  204. ourskyai_node_platform_api/models/v1_reset_mount_system_settings_to_default_request.py +73 -0
  205. ourskyai_node_platform_api/models/v1_reset_system_settings_to_default_request.py +75 -0
  206. ourskyai_node_platform_api/models/v1_roof_status.py +78 -0
  207. ourskyai_node_platform_api/models/v1_rotator_status.py +81 -0
  208. ourskyai_node_platform_api/models/v1_run_autofocus_request.py +82 -0
  209. ourskyai_node_platform_api/models/v1_run_blind_autofocus_request.py +73 -0
  210. ourskyai_node_platform_api/models/v1_safety_status.py +83 -0
  211. ourskyai_node_platform_api/models/v1_save_image_request.py +71 -0
  212. ourskyai_node_platform_api/models/v1_set_mount_park_position_request.py +73 -0
  213. ourskyai_node_platform_api/models/v1_set_optical_tube_heater_power_request.py +74 -0
  214. ourskyai_node_platform_api/models/v1_set_peer_status_request.py +88 -0
  215. ourskyai_node_platform_api/models/v1_set_relay_state_request.py +74 -0
  216. ourskyai_node_platform_api/models/v1_signal_message_request.py +90 -0
  217. ourskyai_node_platform_api/models/v1_signalling_request.py +225 -0
  218. ourskyai_node_platform_api/models/v1_source_statistics.py +103 -0
  219. ourskyai_node_platform_api/models/v1_start_session_request.py +90 -0
  220. ourskyai_node_platform_api/models/v1_stop_capturing_images_continuously_request.py +71 -0
  221. ourskyai_node_platform_api/models/v1_stop_recording_video_request.py +71 -0
  222. ourskyai_node_platform_api/models/v1_suntimes.py +87 -0
  223. ourskyai_node_platform_api/models/v1_system_diagnosis_report.py +117 -0
  224. ourskyai_node_platform_api/models/v1_system_event.py +80 -0
  225. ourskyai_node_platform_api/models/v1_system_event_data.py +939 -0
  226. ourskyai_node_platform_api/models/v1_system_events.py +79 -0
  227. ourskyai_node_platform_api/models/v1_system_health_check.py +86 -0
  228. ourskyai_node_platform_api/models/v1_system_location.py +83 -0
  229. ourskyai_node_platform_api/models/v1_system_location_gps_details.py +77 -0
  230. ourskyai_node_platform_api/models/v1_system_metric.py +88 -0
  231. ourskyai_node_platform_api/models/v1_system_metric_names.py +71 -0
  232. ourskyai_node_platform_api/models/v1_system_metric_tag.py +73 -0
  233. ourskyai_node_platform_api/models/v1_system_metric_type.py +40 -0
  234. ourskyai_node_platform_api/models/v1_system_metrics.py +79 -0
  235. ourskyai_node_platform_api/models/v1_system_network_interface.py +83 -0
  236. ourskyai_node_platform_api/models/v1_system_network_interface_info.py +75 -0
  237. ourskyai_node_platform_api/models/v1_system_network_interfaces.py +79 -0
  238. ourskyai_node_platform_api/models/v1_system_operation_mode.py +41 -0
  239. ourskyai_node_platform_api/models/v1_system_operation_status.py +75 -0
  240. ourskyai_node_platform_api/models/v1_system_settings.py +75 -0
  241. ourskyai_node_platform_api/models/v1_system_status.py +135 -0
  242. ourskyai_node_platform_api/models/v1_system_storage_status.py +75 -0
  243. ourskyai_node_platform_api/models/v1_system_time.py +94 -0
  244. ourskyai_node_platform_api/models/v1_system_variant.py +43 -0
  245. ourskyai_node_platform_api/models/v1_task.py +78 -0
  246. ourskyai_node_platform_api/models/v1_task_type.py +47 -0
  247. ourskyai_node_platform_api/models/v1_time_source.py +42 -0
  248. ourskyai_node_platform_api/models/v1_time_windowed_asset.py +86 -0
  249. ourskyai_node_platform_api/models/v1_time_windowed_asset_type.py +40 -0
  250. ourskyai_node_platform_api/models/v1_turn_off_optical_tube_fans_request.py +72 -0
  251. ourskyai_node_platform_api/models/v1_turn_on_optical_tube_fans_request.py +72 -0
  252. ourskyai_node_platform_api/models/v1_ui_operation_mode.py +40 -0
  253. ourskyai_node_platform_api/models/v1_update_filter_request.py +74 -0
  254. ourskyai_node_platform_api/models/v1_video.py +105 -0
  255. ourskyai_node_platform_api/models/v1_videos.py +79 -0
  256. ourskyai_node_platform_api/models/v1_weather_forecast.py +85 -0
  257. ourskyai_node_platform_api/models/v1_weather_forecast_city.py +73 -0
  258. ourskyai_node_platform_api/models/v1_weather_forecast_item.py +103 -0
  259. ourskyai_node_platform_api/models/v1_weather_forecast_temperature.py +77 -0
  260. ourskyai_node_platform_api/models/v1_weather_forecast_weather.py +77 -0
  261. ourskyai_node_platform_api/models/v1_weather_metric.py +85 -0
  262. ourskyai_node_platform_api/models/v1_weather_metrics.py +79 -0
  263. ourskyai_node_platform_api/models/v1_weather_station_status.py +71 -0
  264. ourskyai_node_platform_api/models/v2_capture_image_request.py +89 -0
  265. ourskyai_node_platform_api/models/v2_cycle_relays_request.py +74 -0
  266. ourskyai_node_platform_api/models/v2_enclosure_status.py +87 -0
  267. ourskyai_node_platform_api/models/v2_mount_status.py +94 -0
  268. ourskyai_node_platform_api/models/v2_relay_status.py +76 -0
  269. ourskyai_node_platform_api/models/v2_relay_statuses.py +79 -0
  270. ourskyai_node_platform_api/models/v2_turn_off_relay_request.py +72 -0
  271. ourskyai_node_platform_api/models/v2_turn_on_relay_request.py +72 -0
  272. ourskyai_node_platform_api/models/video_codec.py +39 -0
  273. ourskyai_node_platform_api/models/video_container_format.py +39 -0
  274. ourskyai_node_platform_api/models/wavefront_sensor_data_updated.py +110 -0
  275. ourskyai_node_platform_api/models/weather_station_diagnosis_report.py +73 -0
  276. ourskyai_node_platform_api/models/weather_station_status_updated.py +72 -0
  277. ourskyai_node_platform_api/py.typed +0 -0
  278. ourskyai_node_platform_api/rest.py +303 -0
  279. ourskyai_node_platform_api-1.3.9821.dist-info/METADATA +23 -0
  280. ourskyai_node_platform_api-1.3.9821.dist-info/RECORD +282 -0
  281. ourskyai_node_platform_api-1.3.9821.dist-info/WHEEL +5 -0
  282. ourskyai_node_platform_api-1.3.9821.dist-info/top_level.txt +1 -0
@@ -0,0 +1,80 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Optional, Union
22
+ from pydantic import BaseModel, Field, StrictFloat, StrictInt
23
+
24
+ class AutofocusFinished(BaseModel):
25
+ """
26
+ Event data for the successful completion of an autofocus routine. # noqa: E501
27
+ """
28
+ focus_position: StrictInt = Field(..., alias="focusPosition", description="The optimal focus position determined by the autofocus routine, in focuser steps or encoder units.")
29
+ r_squared: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="rSquared", description="The R-squared value of the focus curve fit, indicating how well the data fits the expected parabolic curve. Values closer to 1 indicate better fits. Null if not calculated.")
30
+ points_used: Optional[StrictInt] = Field(None, alias="pointsUsed", description="Number of measurement points used in the final focus curve calculation.")
31
+ __properties = ["focusPosition", "rSquared", "pointsUsed"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> AutofocusFinished:
48
+ """Create an instance of AutofocusFinished from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # set to None if r_squared (nullable) is None
58
+ # and __fields_set__ contains the field
59
+ if self.r_squared is None and "r_squared" in self.__fields_set__:
60
+ _dict['rSquared'] = None
61
+
62
+ return _dict
63
+
64
+ @classmethod
65
+ def from_dict(cls, obj: dict) -> AutofocusFinished:
66
+ """Create an instance of AutofocusFinished from a dict"""
67
+ if obj is None:
68
+ return None
69
+
70
+ if not isinstance(obj, dict):
71
+ return AutofocusFinished.parse_obj(obj)
72
+
73
+ _obj = AutofocusFinished.parse_obj({
74
+ "focus_position": obj.get("focusPosition"),
75
+ "r_squared": obj.get("rSquared"),
76
+ "points_used": obj.get("pointsUsed")
77
+ })
78
+ return _obj
79
+
80
+
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ import json
16
+ import pprint
17
+ import re # noqa: F401
18
+ from aenum import Enum, no_arg
19
+
20
+
21
+
22
+
23
+
24
+ class AutofocusMethod(str, Enum):
25
+ """
26
+ Algorithm used to measure focus quality during autofocus routines. FWHM (Full Width at Half Maximum) measures the diameter of star images at half their peak brightness - smaller values indicate sharper focus. HFR (Half Flux Radius) measures the radius containing half the star's total light - also minimized at best focus. CONTRAST measures image sharpness through edge detection - maximized at best focus. Use FWHM or HFR for point sources (stars), CONTRAST for extended objects.
27
+ """
28
+
29
+ """
30
+ allowed enum values
31
+ """
32
+ FWHM = 'FWHM'
33
+ CONTRAST = 'CONTRAST'
34
+ HFR = 'HFR'
35
+
36
+ @classmethod
37
+ def from_json(cls, json_str: str) -> AutofocusMethod:
38
+ """Create an instance of AutofocusMethod from a JSON string"""
39
+ return AutofocusMethod(json.loads(json_str))
40
+
41
+
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Optional, Union
22
+ from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr
23
+
24
+ class AutofocusPointAdded(BaseModel):
25
+ """
26
+ Event data for an autofocus measurement point added during the focus optimization routine. # noqa: E501
27
+ """
28
+ focuser_position: StrictInt = Field(..., alias="focuserPosition", description="Focuser position in steps or encoder units where this measurement was taken.")
29
+ measurement_method: StrictStr = Field(..., alias="measurementMethod", description="Method used to measure focus quality, such as HFR, FWHM, or contrast-based metrics.")
30
+ measurement_value: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="measurementValue", description="The measured focus quality value. Interpretation depends on the measurement method used.")
31
+ __properties = ["focuserPosition", "measurementMethod", "measurementValue"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> AutofocusPointAdded:
48
+ """Create an instance of AutofocusPointAdded from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ return _dict
58
+
59
+ @classmethod
60
+ def from_dict(cls, obj: dict) -> AutofocusPointAdded:
61
+ """Create an instance of AutofocusPointAdded from a dict"""
62
+ if obj is None:
63
+ return None
64
+
65
+ if not isinstance(obj, dict):
66
+ return AutofocusPointAdded.parse_obj(obj)
67
+
68
+ _obj = AutofocusPointAdded.parse_obj({
69
+ "focuser_position": obj.get("focuserPosition"),
70
+ "measurement_method": obj.get("measurementMethod"),
71
+ "measurement_value": obj.get("measurementValue")
72
+ })
73
+ return _obj
74
+
75
+
@@ -0,0 +1,79 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Union
22
+ from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr
23
+
24
+ class AutofocusStarted(BaseModel):
25
+ """
26
+ Event data for the start of an autofocus routine with configuration parameters. # noqa: E501
27
+ """
28
+ step_microns: StrictInt = Field(..., alias="stepMicrons", description="Step size between focus measurement points in microns. Smaller steps provide finer resolution but require more time.")
29
+ max_focus_points: StrictInt = Field(..., alias="maxFocusPoints", description="Maximum number of focus positions to sample during the autofocus routine.")
30
+ r_squared_threshold: Union[StrictFloat, StrictInt] = Field(..., alias="rSquaredThreshold", description="Minimum R-squared value required for the focus curve fit to be considered successful. Range is 0 to 1.")
31
+ method: StrictStr = Field(..., description="Focus measurement method being used, such as HFR, FWHM, or contrast-based analysis.")
32
+ blind: StrictBool = Field(..., description="When true, performs a wide-range blind search for focus. When false, refines focus near the current position.")
33
+ __properties = ["stepMicrons", "maxFocusPoints", "rSquaredThreshold", "method", "blind"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> AutofocusStarted:
50
+ """Create an instance of AutofocusStarted from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ return _dict
60
+
61
+ @classmethod
62
+ def from_dict(cls, obj: dict) -> AutofocusStarted:
63
+ """Create an instance of AutofocusStarted from a dict"""
64
+ if obj is None:
65
+ return None
66
+
67
+ if not isinstance(obj, dict):
68
+ return AutofocusStarted.parse_obj(obj)
69
+
70
+ _obj = AutofocusStarted.parse_obj({
71
+ "step_microns": obj.get("stepMicrons"),
72
+ "max_focus_points": obj.get("maxFocusPoints"),
73
+ "r_squared_threshold": obj.get("rSquaredThreshold"),
74
+ "method": obj.get("method"),
75
+ "blind": obj.get("blind")
76
+ })
77
+ return _obj
78
+
79
+
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import List, Optional
22
+ from pydantic import BaseModel, Field, conlist
23
+ from ourskyai_node_platform_api.models.v1_latest_image import V1LatestImage
24
+ from ourskyai_node_platform_api.models.v1_time_windowed_asset import V1TimeWindowedAsset
25
+
26
+ class BffV1AllSkyImages(BaseModel):
27
+ """
28
+ BffV1AllSkyImages
29
+ """
30
+ all_sky_images: conlist(V1LatestImage) = Field(..., alias="allSkyImages")
31
+ timelapse: Optional[V1TimeWindowedAsset] = None
32
+ keogram: Optional[V1TimeWindowedAsset] = None
33
+ __properties = ["allSkyImages", "timelapse", "keogram"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> BffV1AllSkyImages:
50
+ """Create an instance of BffV1AllSkyImages from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ # override the default output from pydantic by calling `to_dict()` of each item in all_sky_images (list)
60
+ _items = []
61
+ if self.all_sky_images:
62
+ for _item in self.all_sky_images:
63
+ if _item:
64
+ _items.append(_item.to_dict())
65
+ _dict['allSkyImages'] = _items
66
+ # override the default output from pydantic by calling `to_dict()` of timelapse
67
+ if self.timelapse:
68
+ _dict['timelapse'] = self.timelapse.to_dict()
69
+ # override the default output from pydantic by calling `to_dict()` of keogram
70
+ if self.keogram:
71
+ _dict['keogram'] = self.keogram.to_dict()
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> BffV1AllSkyImages:
76
+ """Create an instance of BffV1AllSkyImages from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return BffV1AllSkyImages.parse_obj(obj)
82
+
83
+ _obj = BffV1AllSkyImages.parse_obj({
84
+ "all_sky_images": [V1LatestImage.from_dict(_item) for _item in obj.get("allSkyImages")] if obj.get("allSkyImages") is not None else None,
85
+ "timelapse": V1TimeWindowedAsset.from_dict(obj.get("timelapse")) if obj.get("timelapse") is not None else None,
86
+ "keogram": V1TimeWindowedAsset.from_dict(obj.get("keogram")) if obj.get("keogram") is not None else None
87
+ })
88
+ return _obj
89
+
90
+
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+
22
+ from pydantic import BaseModel, Field
23
+ from ourskyai_node_platform_api.models.v1_image import V1Image
24
+
25
+ class CameraImageCaptured(BaseModel):
26
+ """
27
+ Event data for a completed image capture. Contains metadata about the captured image including storage location and capture parameters. # noqa: E501
28
+ """
29
+ image: V1Image = Field(...)
30
+ __properties = ["image"]
31
+
32
+ class Config:
33
+ """Pydantic configuration"""
34
+ allow_population_by_field_name = True
35
+ validate_assignment = True
36
+
37
+ def to_str(self) -> str:
38
+ """Returns the string representation of the model using alias"""
39
+ return pprint.pformat(self.dict(by_alias=True))
40
+
41
+ def to_json(self) -> str:
42
+ """Returns the JSON representation of the model using alias"""
43
+ return json.dumps(self.to_dict())
44
+
45
+ @classmethod
46
+ def from_json(cls, json_str: str) -> CameraImageCaptured:
47
+ """Create an instance of CameraImageCaptured from a JSON string"""
48
+ return cls.from_dict(json.loads(json_str))
49
+
50
+ def to_dict(self):
51
+ """Returns the dictionary representation of the model using alias"""
52
+ _dict = self.dict(by_alias=True,
53
+ exclude={
54
+ },
55
+ exclude_none=True)
56
+ # override the default output from pydantic by calling `to_dict()` of image
57
+ if self.image:
58
+ _dict['image'] = self.image.to_dict()
59
+ return _dict
60
+
61
+ @classmethod
62
+ def from_dict(cls, obj: dict) -> CameraImageCaptured:
63
+ """Create an instance of CameraImageCaptured from a dict"""
64
+ if obj is None:
65
+ return None
66
+
67
+ if not isinstance(obj, dict):
68
+ return CameraImageCaptured.parse_obj(obj)
69
+
70
+ _obj = CameraImageCaptured.parse_obj({
71
+ "image": V1Image.from_dict(obj.get("image")) if obj.get("image") is not None else None
72
+ })
73
+ return _obj
74
+
75
+
@@ -0,0 +1,76 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+
22
+ from pydantic import BaseModel, Field, StrictStr
23
+ from ourskyai_node_platform_api.models.connection_status import ConnectionStatus
24
+
25
+ class CameraStatusUpdated(BaseModel):
26
+ """
27
+ Event data for a camera status change. Indicates which camera changed state and its new connection status. # noqa: E501
28
+ """
29
+ id: StrictStr = Field(..., description="Unique identifier for the camera that changed status. Used to distinguish between multiple cameras in the system.")
30
+ name: StrictStr = Field(..., description="Human-readable name of the camera, such as the manufacturer and model or a user-assigned label.")
31
+ connection_status: ConnectionStatus = Field(..., alias="connectionStatus")
32
+ __properties = ["id", "name", "connectionStatus"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> CameraStatusUpdated:
49
+ """Create an instance of CameraStatusUpdated from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ return _dict
59
+
60
+ @classmethod
61
+ def from_dict(cls, obj: dict) -> CameraStatusUpdated:
62
+ """Create an instance of CameraStatusUpdated from a dict"""
63
+ if obj is None:
64
+ return None
65
+
66
+ if not isinstance(obj, dict):
67
+ return CameraStatusUpdated.parse_obj(obj)
68
+
69
+ _obj = CameraStatusUpdated.parse_obj({
70
+ "id": obj.get("id"),
71
+ "name": obj.get("name"),
72
+ "connection_status": obj.get("connectionStatus")
73
+ })
74
+ return _obj
75
+
76
+
@@ -0,0 +1,71 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Union
22
+ from pydantic import BaseModel, Field, StrictFloat, StrictInt
23
+
24
+ class CameraTemperatureSet(BaseModel):
25
+ """
26
+ Event data for a camera temperature setpoint change. Indicates the target temperature for the camera cooling system. # noqa: E501
27
+ """
28
+ celsius: Union[StrictFloat, StrictInt] = Field(..., description="The new temperature setpoint in degrees Celsius. Negative values are common for cooled astronomical cameras to reduce thermal noise.")
29
+ __properties = ["celsius"]
30
+
31
+ class Config:
32
+ """Pydantic configuration"""
33
+ allow_population_by_field_name = True
34
+ validate_assignment = True
35
+
36
+ def to_str(self) -> str:
37
+ """Returns the string representation of the model using alias"""
38
+ return pprint.pformat(self.dict(by_alias=True))
39
+
40
+ def to_json(self) -> str:
41
+ """Returns the JSON representation of the model using alias"""
42
+ return json.dumps(self.to_dict())
43
+
44
+ @classmethod
45
+ def from_json(cls, json_str: str) -> CameraTemperatureSet:
46
+ """Create an instance of CameraTemperatureSet from a JSON string"""
47
+ return cls.from_dict(json.loads(json_str))
48
+
49
+ def to_dict(self):
50
+ """Returns the dictionary representation of the model using alias"""
51
+ _dict = self.dict(by_alias=True,
52
+ exclude={
53
+ },
54
+ exclude_none=True)
55
+ return _dict
56
+
57
+ @classmethod
58
+ def from_dict(cls, obj: dict) -> CameraTemperatureSet:
59
+ """Create an instance of CameraTemperatureSet from a dict"""
60
+ if obj is None:
61
+ return None
62
+
63
+ if not isinstance(obj, dict):
64
+ return CameraTemperatureSet.parse_obj(obj)
65
+
66
+ _obj = CameraTemperatureSet.parse_obj({
67
+ "celsius": obj.get("celsius")
68
+ })
69
+ return _obj
70
+
71
+
@@ -0,0 +1,79 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ OurSky
5
+
6
+ Node Platform API
7
+
8
+ The version of the OpenAPI document: 1.3.9821
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Union
22
+ from pydantic import BaseModel, Field, StrictFloat, StrictInt
23
+
24
+ class CaptureImageStarted(BaseModel):
25
+ """
26
+ Event data for the start of an image capture. Contains all exposure settings used for this capture. # noqa: E501
27
+ """
28
+ exposure: Union[StrictFloat, StrictInt] = Field(..., description="Exposure duration in seconds. Longer exposures collect more light but increase noise and trailing risk.")
29
+ gain: StrictInt = Field(..., description="Camera gain setting controlling signal amplification. Higher values increase sensitivity but also increase noise.")
30
+ binning: StrictInt = Field(..., description="Pixel binning factor where adjacent pixels are combined. Higher binning reduces resolution but improves sensitivity and download speed.")
31
+ offset: StrictInt = Field(..., description="Camera offset or black level setting. Ensures the histogram does not clip at zero for proper calibration.")
32
+ gain_mode: StrictInt = Field(..., alias="gainMode", description="Camera gain mode selection for cameras with multiple gain modes such as high dynamic range or low noise modes.")
33
+ __properties = ["exposure", "gain", "binning", "offset", "gainMode"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> CaptureImageStarted:
50
+ """Create an instance of CaptureImageStarted from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ return _dict
60
+
61
+ @classmethod
62
+ def from_dict(cls, obj: dict) -> CaptureImageStarted:
63
+ """Create an instance of CaptureImageStarted from a dict"""
64
+ if obj is None:
65
+ return None
66
+
67
+ if not isinstance(obj, dict):
68
+ return CaptureImageStarted.parse_obj(obj)
69
+
70
+ _obj = CaptureImageStarted.parse_obj({
71
+ "exposure": obj.get("exposure"),
72
+ "gain": obj.get("gain"),
73
+ "binning": obj.get("binning"),
74
+ "offset": obj.get("offset"),
75
+ "gain_mode": obj.get("gainMode")
76
+ })
77
+ return _obj
78
+
79
+