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,74 @@
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, StrictInt
23
+ from ourskyai_node_platform_api.models.v1_filter_type import V1FilterType
24
+
25
+ class V1Filter(BaseModel):
26
+ """
27
+ Represents a filter installed in a specific position of the filter wheel. # noqa: E501
28
+ """
29
+ position: StrictInt = Field(..., description="The slot position of this filter in the wheel as a zero-based index.")
30
+ type: V1FilterType = Field(...)
31
+ __properties = ["position", "type"]
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) -> V1Filter:
48
+ """Create an instance of V1Filter 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) -> V1Filter:
61
+ """Create an instance of V1Filter from a dict"""
62
+ if obj is None:
63
+ return None
64
+
65
+ if not isinstance(obj, dict):
66
+ return V1Filter.parse_obj(obj)
67
+
68
+ _obj = V1Filter.parse_obj({
69
+ "position": obj.get("position"),
70
+ "type": obj.get("type")
71
+ })
72
+ return _obj
73
+
74
+
@@ -0,0 +1,65 @@
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 V1FilterType(str, Enum):
25
+ """
26
+ Enumeration of supported astronomical filter types. NONE indicates an empty slot. RGB filters (RED, BLUE, GREEN) are for color imaging. UV and IR are for ultraviolet and infrared. LUMINANCE captures broadband light. Narrowband filters (H_ALPHA, H_BETA, S_II, O_III) isolate specific emission lines. PHOTO_JOHNSON and PHOTO_COUSINS are standard photometric systems. PHOTO_SLOAN filters follow the SDSS photometric system. DUAL_BAND, TRIPLE_BAND, and QUAD_BAND are multi-narrowband filters. DARK blocks all light for calibration frames. OTHER covers non-standard filters.
27
+ """
28
+
29
+ """
30
+ allowed enum values
31
+ """
32
+ NONE = 'NONE'
33
+ RED = 'RED'
34
+ BLUE = 'BLUE'
35
+ GREEN = 'GREEN'
36
+ UV = 'UV'
37
+ IR = 'IR'
38
+ LUMINANCE = 'LUMINANCE'
39
+ ENHANCED_LUMINANCE = 'ENHANCED_LUMINANCE'
40
+ H_ALPHA = 'H_ALPHA'
41
+ H_BETA = 'H_BETA'
42
+ S_II = 'S_II'
43
+ O_III = 'O_III'
44
+ DUAL_BAND = 'DUAL_BAND'
45
+ PHOTO_JOHNSON_U = 'PHOTO_JOHNSON_U'
46
+ PHOTO_JOHNSON_B = 'PHOTO_JOHNSON_B'
47
+ PHOTO_JOHNSON_V = 'PHOTO_JOHNSON_V'
48
+ PHOTO_COUSINS_R = 'PHOTO_COUSINS_R'
49
+ PHOTO_COUSINS_I = 'PHOTO_COUSINS_I'
50
+ PHOTO_SLOAN_U = 'PHOTO_SLOAN_U'
51
+ PHOTO_SLOAN_G = 'PHOTO_SLOAN_G'
52
+ PHOTO_SLOAN_R = 'PHOTO_SLOAN_R'
53
+ PHOTO_SLOAN_I = 'PHOTO_SLOAN_I'
54
+ PHOTO_SLOAN_Z = 'PHOTO_SLOAN_Z'
55
+ TRIPLE_BAND = 'TRIPLE_BAND'
56
+ QUAD_BAND = 'QUAD_BAND'
57
+ DARK = 'DARK'
58
+ OTHER = 'OTHER'
59
+
60
+ @classmethod
61
+ def from_json(cls, json_str: str) -> V1FilterType:
62
+ """Create an instance of V1FilterType from a JSON string"""
63
+ return V1FilterType(json.loads(json_str))
64
+
65
+
@@ -0,0 +1,85 @@
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, StrictBool, StrictInt, conlist
23
+ from ourskyai_node_platform_api.models.v1_filter import V1Filter
24
+
25
+ class V1FilterWheelStatus(BaseModel):
26
+ """
27
+ Current status of the filter wheel including connection state, current position, and configuration of all filter slots. # noqa: E501
28
+ """
29
+ connected: StrictBool = Field(..., description="Indicates whether communication with the filter wheel is active. When false, the filter wheel cannot be controlled and position data may be stale.")
30
+ position: StrictInt = Field(..., description="Current filter wheel position as a zero-based slot index. This indicates which filter is currently in the optical path.")
31
+ capacity: StrictInt = Field(..., description="Total number of filter slots available in the wheel. Positions range from 0 to (capacity - 1).")
32
+ filters: Optional[conlist(V1Filter)] = Field(None, description="Array of filter configurations for each slot in the wheel. May not include all positions if some slots have not been configured.")
33
+ __properties = ["connected", "position", "capacity", "filters"]
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) -> V1FilterWheelStatus:
50
+ """Create an instance of V1FilterWheelStatus 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 filters (list)
60
+ _items = []
61
+ if self.filters:
62
+ for _item in self.filters:
63
+ if _item:
64
+ _items.append(_item.to_dict())
65
+ _dict['filters'] = _items
66
+ return _dict
67
+
68
+ @classmethod
69
+ def from_dict(cls, obj: dict) -> V1FilterWheelStatus:
70
+ """Create an instance of V1FilterWheelStatus from a dict"""
71
+ if obj is None:
72
+ return None
73
+
74
+ if not isinstance(obj, dict):
75
+ return V1FilterWheelStatus.parse_obj(obj)
76
+
77
+ _obj = V1FilterWheelStatus.parse_obj({
78
+ "connected": obj.get("connected"),
79
+ "position": obj.get("position"),
80
+ "capacity": obj.get("capacity"),
81
+ "filters": [V1Filter.from_dict(_item) for _item in obj.get("filters")] if obj.get("filters") is not None else None
82
+ })
83
+ return _obj
84
+
85
+
@@ -0,0 +1,73 @@
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, StrictInt
23
+
24
+ class V1FocuserLimit(BaseModel):
25
+ """
26
+ Physical travel limits of the focuser discovered by the findLimit calibration routine. # noqa: E501
27
+ """
28
+ min: StrictInt = Field(..., description="Minimum focuser position in steps, representing the fully retracted (inward) position.")
29
+ max: StrictInt = Field(..., description="Maximum focuser position in steps, representing the fully extended (outward) position.")
30
+ __properties = ["min", "max"]
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) -> V1FocuserLimit:
47
+ """Create an instance of V1FocuserLimit 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
+ return _dict
57
+
58
+ @classmethod
59
+ def from_dict(cls, obj: dict) -> V1FocuserLimit:
60
+ """Create an instance of V1FocuserLimit from a dict"""
61
+ if obj is None:
62
+ return None
63
+
64
+ if not isinstance(obj, dict):
65
+ return V1FocuserLimit.parse_obj(obj)
66
+
67
+ _obj = V1FocuserLimit.parse_obj({
68
+ "min": obj.get("min"),
69
+ "max": obj.get("max")
70
+ })
71
+ return _obj
72
+
73
+
@@ -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 Optional
22
+ from pydantic import BaseModel, Field, StrictBool
23
+ from ourskyai_node_platform_api.models.focuser_position import FocuserPosition
24
+
25
+ class V1FocuserStatus(BaseModel):
26
+ """
27
+ Current status of the telescope focuser including connection state, movement status, and position information. # noqa: E501
28
+ """
29
+ connected: StrictBool = Field(..., description="Indicates whether the focuser hardware is connected and communicating. A false value means the focuser cannot be controlled until connection is restored.")
30
+ moving: StrictBool = Field(..., description="Indicates whether the focuser is currently in motion. Wait for this to become false before capturing images or starting autofocus routines.")
31
+ position: Optional[FocuserPosition] = None
32
+ __properties = ["connected", "moving", "position"]
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) -> V1FocuserStatus:
49
+ """Create an instance of V1FocuserStatus 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
+ # override the default output from pydantic by calling `to_dict()` of position
59
+ if self.position:
60
+ _dict['position'] = self.position.to_dict()
61
+ return _dict
62
+
63
+ @classmethod
64
+ def from_dict(cls, obj: dict) -> V1FocuserStatus:
65
+ """Create an instance of V1FocuserStatus from a dict"""
66
+ if obj is None:
67
+ return None
68
+
69
+ if not isinstance(obj, dict):
70
+ return V1FocuserStatus.parse_obj(obj)
71
+
72
+ _obj = V1FocuserStatus.parse_obj({
73
+ "connected": obj.get("connected"),
74
+ "moving": obj.get("moving"),
75
+ "position": FocuserPosition.from_dict(obj.get("position")) if obj.get("position") is not None else None
76
+ })
77
+ return _obj
78
+
79
+
@@ -0,0 +1,73 @@
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
+
24
+ class V1FollowTLERequest(BaseModel):
25
+ """
26
+ Request to track a satellite using Two-Line Element (TLE) orbital data. The mount will continuously compute and follow the satellite trajectory. # noqa: E501
27
+ """
28
+ tle_line1: StrictStr = Field(..., alias="tleLine1", description="First line of the TLE data set containing the satellite catalog number, classification, launch info, and epoch. Standard 69-character format from NORAD.")
29
+ tle_line2: StrictStr = Field(..., alias="tleLine2", description="Second line of the TLE data set containing the orbital elements including inclination, eccentricity, and mean motion. Standard 69-character format from NORAD.")
30
+ __properties = ["tleLine1", "tleLine2"]
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) -> V1FollowTLERequest:
47
+ """Create an instance of V1FollowTLERequest 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
+ return _dict
57
+
58
+ @classmethod
59
+ def from_dict(cls, obj: dict) -> V1FollowTLERequest:
60
+ """Create an instance of V1FollowTLERequest from a dict"""
61
+ if obj is None:
62
+ return None
63
+
64
+ if not isinstance(obj, dict):
65
+ return V1FollowTLERequest.parse_obj(obj)
66
+
67
+ _obj = V1FollowTLERequest.parse_obj({
68
+ "tle_line1": obj.get("tleLine1"),
69
+ "tle_line2": obj.get("tleLine2")
70
+ })
71
+ return _obj
72
+
73
+
@@ -0,0 +1,145 @@
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.optical_tube_status import OpticalTubeStatus
24
+ from ourskyai_node_platform_api.models.relays_status import RelaysStatus
25
+ from ourskyai_node_platform_api.models.roof_status import RoofStatus
26
+ from ourskyai_node_platform_api.models.v1_camera_status import V1CameraStatus
27
+ from ourskyai_node_platform_api.models.v1_enclosure_status import V1EnclosureStatus
28
+ from ourskyai_node_platform_api.models.v1_enclosure_window_status import V1EnclosureWindowStatus
29
+ from ourskyai_node_platform_api.models.v1_filter_wheel_status import V1FilterWheelStatus
30
+ from ourskyai_node_platform_api.models.v1_focuser_status import V1FocuserStatus
31
+ from ourskyai_node_platform_api.models.v1_mount_status import V1MountStatus
32
+ from ourskyai_node_platform_api.models.v1_rotator_status import V1RotatorStatus
33
+ from ourskyai_node_platform_api.models.v1_safety_status import V1SafetyStatus
34
+ from ourskyai_node_platform_api.models.v1_weather_station_status import V1WeatherStationStatus
35
+
36
+ class V1GetComponentStatusResponse(BaseModel):
37
+ """
38
+ DEPRECATED: Comprehensive status of all telescope hardware components. Use V1SystemStatus from system_query.yaml instead for improved structure and additional component support. # noqa: E501
39
+ """
40
+ camera_statuses: conlist(V1CameraStatus) = Field(..., alias="cameraStatuses", description="Array of status objects for all connected cameras including imaging and guide cameras.")
41
+ mount_status: V1MountStatus = Field(..., alias="mountStatus")
42
+ focuser_status: V1FocuserStatus = Field(..., alias="focuserStatus")
43
+ rotator_status: Optional[V1RotatorStatus] = Field(None, alias="rotatorStatus")
44
+ optical_tube_status: OpticalTubeStatus = Field(..., alias="opticalTubeStatus")
45
+ weather_station_status: V1WeatherStationStatus = Field(..., alias="weatherStationStatus")
46
+ relays_status: RelaysStatus = Field(..., alias="relaysStatus")
47
+ roof_status: RoofStatus = Field(..., alias="roofStatus")
48
+ enclosure_status: Optional[V1EnclosureStatus] = Field(None, alias="enclosureStatus")
49
+ enclosure_window_status: Optional[V1EnclosureWindowStatus] = Field(None, alias="enclosureWindowStatus")
50
+ safety_status: V1SafetyStatus = Field(..., alias="safetyStatus")
51
+ filter_wheel_status: V1FilterWheelStatus = Field(..., alias="filterWheelStatus")
52
+ __properties = ["cameraStatuses", "mountStatus", "focuserStatus", "rotatorStatus", "opticalTubeStatus", "weatherStationStatus", "relaysStatus", "roofStatus", "enclosureStatus", "enclosureWindowStatus", "safetyStatus", "filterWheelStatus"]
53
+
54
+ class Config:
55
+ """Pydantic configuration"""
56
+ allow_population_by_field_name = True
57
+ validate_assignment = True
58
+
59
+ def to_str(self) -> str:
60
+ """Returns the string representation of the model using alias"""
61
+ return pprint.pformat(self.dict(by_alias=True))
62
+
63
+ def to_json(self) -> str:
64
+ """Returns the JSON representation of the model using alias"""
65
+ return json.dumps(self.to_dict())
66
+
67
+ @classmethod
68
+ def from_json(cls, json_str: str) -> V1GetComponentStatusResponse:
69
+ """Create an instance of V1GetComponentStatusResponse from a JSON string"""
70
+ return cls.from_dict(json.loads(json_str))
71
+
72
+ def to_dict(self):
73
+ """Returns the dictionary representation of the model using alias"""
74
+ _dict = self.dict(by_alias=True,
75
+ exclude={
76
+ },
77
+ exclude_none=True)
78
+ # override the default output from pydantic by calling `to_dict()` of each item in camera_statuses (list)
79
+ _items = []
80
+ if self.camera_statuses:
81
+ for _item in self.camera_statuses:
82
+ if _item:
83
+ _items.append(_item.to_dict())
84
+ _dict['cameraStatuses'] = _items
85
+ # override the default output from pydantic by calling `to_dict()` of mount_status
86
+ if self.mount_status:
87
+ _dict['mountStatus'] = self.mount_status.to_dict()
88
+ # override the default output from pydantic by calling `to_dict()` of focuser_status
89
+ if self.focuser_status:
90
+ _dict['focuserStatus'] = self.focuser_status.to_dict()
91
+ # override the default output from pydantic by calling `to_dict()` of rotator_status
92
+ if self.rotator_status:
93
+ _dict['rotatorStatus'] = self.rotator_status.to_dict()
94
+ # override the default output from pydantic by calling `to_dict()` of optical_tube_status
95
+ if self.optical_tube_status:
96
+ _dict['opticalTubeStatus'] = self.optical_tube_status.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of weather_station_status
98
+ if self.weather_station_status:
99
+ _dict['weatherStationStatus'] = self.weather_station_status.to_dict()
100
+ # override the default output from pydantic by calling `to_dict()` of relays_status
101
+ if self.relays_status:
102
+ _dict['relaysStatus'] = self.relays_status.to_dict()
103
+ # override the default output from pydantic by calling `to_dict()` of roof_status
104
+ if self.roof_status:
105
+ _dict['roofStatus'] = self.roof_status.to_dict()
106
+ # override the default output from pydantic by calling `to_dict()` of enclosure_status
107
+ if self.enclosure_status:
108
+ _dict['enclosureStatus'] = self.enclosure_status.to_dict()
109
+ # override the default output from pydantic by calling `to_dict()` of enclosure_window_status
110
+ if self.enclosure_window_status:
111
+ _dict['enclosureWindowStatus'] = self.enclosure_window_status.to_dict()
112
+ # override the default output from pydantic by calling `to_dict()` of safety_status
113
+ if self.safety_status:
114
+ _dict['safetyStatus'] = self.safety_status.to_dict()
115
+ # override the default output from pydantic by calling `to_dict()` of filter_wheel_status
116
+ if self.filter_wheel_status:
117
+ _dict['filterWheelStatus'] = self.filter_wheel_status.to_dict()
118
+ return _dict
119
+
120
+ @classmethod
121
+ def from_dict(cls, obj: dict) -> V1GetComponentStatusResponse:
122
+ """Create an instance of V1GetComponentStatusResponse from a dict"""
123
+ if obj is None:
124
+ return None
125
+
126
+ if not isinstance(obj, dict):
127
+ return V1GetComponentStatusResponse.parse_obj(obj)
128
+
129
+ _obj = V1GetComponentStatusResponse.parse_obj({
130
+ "camera_statuses": [V1CameraStatus.from_dict(_item) for _item in obj.get("cameraStatuses")] if obj.get("cameraStatuses") is not None else None,
131
+ "mount_status": V1MountStatus.from_dict(obj.get("mountStatus")) if obj.get("mountStatus") is not None else None,
132
+ "focuser_status": V1FocuserStatus.from_dict(obj.get("focuserStatus")) if obj.get("focuserStatus") is not None else None,
133
+ "rotator_status": V1RotatorStatus.from_dict(obj.get("rotatorStatus")) if obj.get("rotatorStatus") is not None else None,
134
+ "optical_tube_status": OpticalTubeStatus.from_dict(obj.get("opticalTubeStatus")) if obj.get("opticalTubeStatus") is not None else None,
135
+ "weather_station_status": V1WeatherStationStatus.from_dict(obj.get("weatherStationStatus")) if obj.get("weatherStationStatus") is not None else None,
136
+ "relays_status": RelaysStatus.from_dict(obj.get("relaysStatus")) if obj.get("relaysStatus") is not None else None,
137
+ "roof_status": RoofStatus.from_dict(obj.get("roofStatus")) if obj.get("roofStatus") is not None else None,
138
+ "enclosure_status": V1EnclosureStatus.from_dict(obj.get("enclosureStatus")) if obj.get("enclosureStatus") is not None else None,
139
+ "enclosure_window_status": V1EnclosureWindowStatus.from_dict(obj.get("enclosureWindowStatus")) if obj.get("enclosureWindowStatus") is not None else None,
140
+ "safety_status": V1SafetyStatus.from_dict(obj.get("safetyStatus")) if obj.get("safetyStatus") is not None else None,
141
+ "filter_wheel_status": V1FilterWheelStatus.from_dict(obj.get("filterWheelStatus")) if obj.get("filterWheelStatus") is not None else None
142
+ })
143
+ return _obj
144
+
145
+
@@ -0,0 +1,83 @@
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
22
+ from pydantic import BaseModel, Field, StrictBool, StrictStr
23
+
24
+ class V1GetHealthCheckResponse(BaseModel):
25
+ """
26
+ Health status and version information for the edge controller. Used for monitoring system health and verifying firmware compatibility during integration. # noqa: E501
27
+ """
28
+ healthy: StrictBool = Field(..., description="True if the edge controller is healthy and operating normally. False indicates a problem requiring attention.")
29
+ message: StrictStr = Field(..., description="Human-readable message providing additional context about the health status. Contains diagnostic details when healthy is false.")
30
+ version: StrictStr = Field(..., description="Semantic version string of the edge controller software. Use for compatibility checks and support requests.")
31
+ hardware_version: StrictStr = Field(..., alias="hardwareVersion", description="Hardware revision identifier of the edge controller board. Important for hardware-specific feature support.")
32
+ habitat_firmware_version: StrictStr = Field(..., alias="habitatFirmwareVersion", description="Firmware version of the habitat controller subsystem. Should be compatible with the main software version.")
33
+ lineage_id: Optional[StrictStr] = Field(None, alias="lineageId", description="Unique identifier for the lineage or configuration version of this system. Used for tracking configuration changes.")
34
+ serial_number: Optional[StrictStr] = Field(None, alias="serialNumber", description="Hardware serial number of the edge controller unit. Useful for inventory tracking and support identification.")
35
+ __properties = ["healthy", "message", "version", "hardwareVersion", "habitatFirmwareVersion", "lineageId", "serialNumber"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> V1GetHealthCheckResponse:
52
+ """Create an instance of V1GetHealthCheckResponse from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ return _dict
62
+
63
+ @classmethod
64
+ def from_dict(cls, obj: dict) -> V1GetHealthCheckResponse:
65
+ """Create an instance of V1GetHealthCheckResponse from a dict"""
66
+ if obj is None:
67
+ return None
68
+
69
+ if not isinstance(obj, dict):
70
+ return V1GetHealthCheckResponse.parse_obj(obj)
71
+
72
+ _obj = V1GetHealthCheckResponse.parse_obj({
73
+ "healthy": obj.get("healthy"),
74
+ "message": obj.get("message"),
75
+ "version": obj.get("version"),
76
+ "hardware_version": obj.get("hardwareVersion"),
77
+ "habitat_firmware_version": obj.get("habitatFirmwareVersion"),
78
+ "lineage_id": obj.get("lineageId"),
79
+ "serial_number": obj.get("serialNumber")
80
+ })
81
+ return _obj
82
+
83
+