samsara-api 0.0.1__py3-none-any.whl → 0.0.3__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 (346) hide show
  1. samsara/__init__.py +298 -38
  2. samsara/alerts/configurations/client.py +25 -11
  3. samsara/alerts/configurations/raw_client.py +47 -8
  4. samsara/alerts/incidents/client.py +21 -11
  5. samsara/alerts/incidents/raw_client.py +43 -9
  6. samsara/assets/client.py +21 -11
  7. samsara/assets/location_and_speed/client.py +21 -13
  8. samsara/assets/location_and_speed/raw_client.py +53 -9
  9. samsara/assets/raw_client.py +53 -8
  10. samsara/attributes/client.py +21 -13
  11. samsara/attributes/raw_client.py +41 -8
  12. samsara/cameras/media/client.py +2 -2
  13. samsara/cameras/media/raw_client.py +2 -2
  14. samsara/cameras/media/retrieval/client.py +2 -12
  15. samsara/cameras/media/types/media_list_request_trigger_reasons_item.py +8 -1
  16. samsara/carrier_proposed_assignments/client.py +21 -11
  17. samsara/carrier_proposed_assignments/raw_client.py +43 -8
  18. samsara/client.py +15 -6
  19. samsara/coaching/driver_coach_assignments/client.py +22 -12
  20. samsara/coaching/driver_coach_assignments/raw_client.py +45 -8
  21. samsara/coaching/sessions/client.py +21 -13
  22. samsara/coaching/sessions/raw_client.py +51 -9
  23. samsara/contacts/client.py +21 -11
  24. samsara/contacts/raw_client.py +39 -8
  25. samsara/core/client_wrapper.py +2 -2
  26. samsara/defect_types/client.py +21 -11
  27. samsara/defect_types/raw_client.py +41 -9
  28. samsara/defects/client.py +124 -9
  29. samsara/defects/raw_client.py +356 -6
  30. samsara/devices/client.py +21 -11
  31. samsara/devices/raw_client.py +45 -9
  32. samsara/document_types/client.py +21 -11
  33. samsara/document_types/raw_client.py +37 -9
  34. samsara/documents/client.py +21 -11
  35. samsara/documents/raw_client.py +45 -8
  36. samsara/driver_trailer_assignments/client.py +23 -13
  37. samsara/driver_trailer_assignments/raw_client.py +43 -8
  38. samsara/drivers/__init__.py +1 -3
  39. samsara/drivers/client.py +21 -21
  40. samsara/drivers/raw_client.py +51 -8
  41. samsara/dvirs/client.py +124 -9
  42. samsara/dvirs/raw_client.py +356 -6
  43. samsara/equipment/__init__.py +2 -2
  44. samsara/equipment/client.py +23 -21
  45. samsara/equipment/locations/client.py +62 -34
  46. samsara/equipment/locations/raw_client.py +132 -27
  47. samsara/equipment/raw_client.py +45 -18
  48. samsara/equipment/stats/__init__.py +2 -2
  49. samsara/equipment/stats/client.py +81 -53
  50. samsara/equipment/stats/raw_client.py +157 -46
  51. samsara/equipment/stats/types/__init__.py +2 -2
  52. samsara/equipment/stats/types/{stats_get_request_types_item.py → stats_list_request_types_item.py} +1 -1
  53. samsara/form_submissions/client.py +46 -54
  54. samsara/form_submissions/pdf_exports/client.py +14 -22
  55. samsara/form_submissions/pdf_exports/raw_client.py +10 -18
  56. samsara/form_submissions/raw_client.py +74 -47
  57. samsara/forms/client.py +138 -0
  58. samsara/{beta → forms}/raw_client.py +37 -62
  59. samsara/function.py +99 -0
  60. samsara/gateways/client.py +21 -11
  61. samsara/gateways/raw_client.py +39 -8
  62. samsara/hos/__init__.py +3 -0
  63. samsara/hos/client.py +218 -11
  64. samsara/hos/raw_client.py +485 -8
  65. samsara/hos/types/__init__.py +7 -0
  66. samsara/hos/types/hos_daily_logs_request_driver_activation_status.py +5 -0
  67. samsara/idling/__init__.py +7 -0
  68. samsara/idling/client.py +287 -0
  69. samsara/idling/raw_client.py +521 -0
  70. samsara/idling/types/__init__.py +7 -0
  71. samsara/idling/types/idling_list_request_pto_state.py +5 -0
  72. samsara/inputs/client.py +21 -11
  73. samsara/inputs/raw_client.py +51 -9
  74. samsara/issues/client.py +27 -29
  75. samsara/issues/raw_client.py +53 -26
  76. samsara/live_shares/client.py +21 -13
  77. samsara/live_shares/raw_client.py +43 -8
  78. samsara/maintenance/service_tasks/client.py +21 -11
  79. samsara/maintenance/service_tasks/raw_client.py +41 -8
  80. samsara/maintenance/work_orders/client.py +40 -22
  81. samsara/maintenance/work_orders/raw_client.py +84 -16
  82. samsara/readings/client.py +524 -0
  83. samsara/readings/raw_client.py +1214 -0
  84. samsara/reports/drivers/fuel_energy/client.py +6 -6
  85. samsara/reports/drivers/fuel_energy/raw_client.py +2 -2
  86. samsara/reports/ifta/__init__.py +4 -4
  87. samsara/reports/ifta/vehicle/__init__.py +2 -2
  88. samsara/reports/ifta/vehicle/client.py +21 -21
  89. samsara/reports/ifta/vehicle/raw_client.py +17 -17
  90. samsara/reports/ifta/vehicle/types/__init__.py +4 -4
  91. samsara/reports/ifta/vehicle/types/{vehicle_get_request_fuel_type.py → vehicle_list_request_fuel_type.py} +1 -1
  92. samsara/reports/ifta/vehicle/types/{vehicle_get_request_month.py → vehicle_list_request_month.py} +1 -1
  93. samsara/reports/ifta/vehicle/types/vehicle_list_request_quarter.py +5 -0
  94. samsara/reports/vehicles/__init__.py +2 -2
  95. samsara/reports/vehicles/fuel_energy/__init__.py +2 -2
  96. samsara/reports/vehicles/fuel_energy/client.py +11 -11
  97. samsara/reports/vehicles/fuel_energy/raw_client.py +7 -7
  98. samsara/reports/vehicles/fuel_energy/types/__init__.py +2 -2
  99. samsara/reports/vehicles/fuel_energy/types/fuel_energy_list_request_energy_type.py +5 -0
  100. samsara/reports/vehicles/idling/client.py +27 -15
  101. samsara/reports/vehicles/idling/raw_client.py +59 -11
  102. samsara/routes/client.py +21 -11
  103. samsara/routes/raw_client.py +43 -8
  104. samsara/safety_events/audit_logs/client.py +21 -13
  105. samsara/safety_events/audit_logs/raw_client.py +39 -9
  106. samsara/safety_events/client.py +21 -11
  107. samsara/safety_events/raw_client.py +47 -9
  108. samsara/speeding_intervals/client.py +25 -17
  109. samsara/speeding_intervals/raw_client.py +55 -13
  110. samsara/tachograph/__init__.py +7 -0
  111. samsara/tachograph/client.py +44 -0
  112. samsara/{drivers/tachograph_files → tachograph/driver}/client.py +162 -15
  113. samsara/{drivers/tachograph_files → tachograph/driver}/raw_client.py +153 -4
  114. samsara/tachograph/raw_client.py +13 -0
  115. samsara/{vehicles/tachograph_files → tachograph/vehicles}/client.py +15 -15
  116. samsara/{vehicles/tachograph_files → tachograph/vehicles}/raw_client.py +4 -4
  117. samsara/tags/client.py +21 -11
  118. samsara/tags/raw_client.py +39 -8
  119. samsara/trailers/client.py +21 -11
  120. samsara/trailers/raw_client.py +43 -8
  121. samsara/training_courses/client.py +21 -11
  122. samsara/training_courses/raw_client.py +43 -9
  123. samsara/trips/client.py +21 -11
  124. samsara/trips/raw_client.py +49 -9
  125. samsara/types/__init__.py +406 -50
  126. samsara/types/advanced_idling_get_idling_events_bad_gateway_error_response_body.py +33 -0
  127. samsara/types/advanced_idling_get_idling_events_gateway_timeout_error_response_body.py +33 -0
  128. samsara/types/{hos_daily_logs_update_shipping_docs_internal_server_error_response_body.py → advanced_idling_get_idling_events_internal_server_error_response_body.py} +1 -1
  129. samsara/types/advanced_idling_get_idling_events_method_not_allowed_error_response_body.py +33 -0
  130. samsara/types/{hos_daily_logs_update_shipping_docs_not_found_error_response_body.py → advanced_idling_get_idling_events_not_found_error_response_body.py} +1 -1
  131. samsara/types/{hos_daily_logs_update_shipping_docs_not_implemented_error_response_body.py → advanced_idling_get_idling_events_not_implemented_error_response_body.py} +1 -1
  132. samsara/types/advanced_idling_get_idling_events_response_body.py +26 -0
  133. samsara/types/{hos_daily_logs_update_shipping_docs_service_unavailable_error_response_body.py → advanced_idling_get_idling_events_service_unavailable_error_response_body.py} +1 -1
  134. samsara/types/{hos_daily_logs_update_shipping_docs_gateway_timeout_error_response_body.py → advanced_idling_get_idling_events_too_many_requests_error_response_body.py} +2 -2
  135. samsara/types/advanced_idling_get_idling_events_unauthorized_error_response_body.py +33 -0
  136. samsara/types/alert_object_asset_response_body.py +63 -0
  137. samsara/types/{assets_create_asset_response_body_type.py → alert_object_asset_response_body_type.py} +1 -1
  138. samsara/types/assets_create_asset_response_body.py +2 -87
  139. samsara/types/assets_update_asset_response_body.py +2 -87
  140. samsara/types/continuous_reading_alert_threshold_response_body.py +49 -0
  141. samsara/types/continuous_reading_alert_threshold_response_body_operation.py +7 -0
  142. samsara/types/continuous_reading_alert_threshold_response_body_unit.py +62 -0
  143. samsara/types/device_response_response_body.py +1 -1
  144. samsara/types/device_response_response_body_model.py +1 -0
  145. samsara/types/dvir_defect_get_defect_bad_gateway_error_response_body.py +33 -0
  146. samsara/types/dvir_defect_get_defect_gateway_timeout_error_response_body.py +33 -0
  147. samsara/types/dvir_defect_get_defect_internal_server_error_response_body.py +33 -0
  148. samsara/types/dvir_defect_get_defect_method_not_allowed_error_response_body.py +33 -0
  149. samsara/types/dvir_defect_get_defect_not_found_error_response_body.py +33 -0
  150. samsara/types/dvir_defect_get_defect_not_implemented_error_response_body.py +33 -0
  151. samsara/types/dvir_defect_get_defect_response_body.py +91 -0
  152. samsara/types/dvir_defect_get_defect_service_unavailable_error_response_body.py +33 -0
  153. samsara/types/dvir_defect_get_defect_too_many_requests_error_response_body.py +33 -0
  154. samsara/types/dvir_defect_get_defect_unauthorized_error_response_body.py +33 -0
  155. samsara/types/dvir_get_dvir_bad_gateway_error_response_body.py +33 -0
  156. samsara/types/dvir_get_dvir_gateway_timeout_error_response_body.py +33 -0
  157. samsara/types/dvir_get_dvir_internal_server_error_response_body.py +33 -0
  158. samsara/types/dvir_get_dvir_method_not_allowed_error_response_body.py +33 -0
  159. samsara/types/dvir_get_dvir_not_found_error_response_body.py +33 -0
  160. samsara/types/dvir_get_dvir_not_implemented_error_response_body.py +33 -0
  161. samsara/types/dvir_get_dvir_response_body.py +99 -0
  162. samsara/types/dvir_get_dvir_response_body_safety_status.py +5 -0
  163. samsara/types/dvir_get_dvir_response_body_type.py +5 -0
  164. samsara/types/dvir_get_dvir_service_unavailable_error_response_body.py +33 -0
  165. samsara/types/dvir_get_dvir_too_many_requests_error_response_body.py +33 -0
  166. samsara/types/dvir_get_dvir_unauthorized_error_response_body.py +33 -0
  167. samsara/types/enum_reading_alert_threshold_response_body.py +31 -0
  168. samsara/types/enum_value_response_body.py +31 -0
  169. samsara/types/equipment_gateway_engine_seconds.py +1 -1
  170. samsara/types/equipment_gateway_j_1939_engine_seconds.py +1 -1
  171. samsara/types/equipment_obd_engine_seconds.py +1 -1
  172. samsara/types/event_location_response_body.py +31 -0
  173. samsara/types/form_submission_request_field_input_object_request_body.py +7 -1
  174. samsara/types/form_submission_request_field_input_object_request_body_type.py +3 -1
  175. samsara/types/{hos_daily_logs_update_shipping_docs_response_body.py → form_submission_request_geofence_object_request_body.py} +9 -3
  176. samsara/types/form_submission_request_geofence_value_object_request_body.py +24 -0
  177. samsara/types/form_submission_response_object_response_body.py +8 -0
  178. samsara/types/{form_template_reference_object_request_body.py → form_template_request_object_request_body.py} +6 -4
  179. samsara/types/form_template_response_object_response_body.py +74 -0
  180. samsara/types/form_template_section_object_response_body.py +47 -0
  181. samsara/types/form_templates_get_form_templates_bad_gateway_error_response_body.py +33 -0
  182. samsara/types/form_templates_get_form_templates_gateway_timeout_error_response_body.py +33 -0
  183. samsara/types/form_templates_get_form_templates_internal_server_error_response_body.py +33 -0
  184. samsara/types/form_templates_get_form_templates_method_not_allowed_error_response_body.py +33 -0
  185. samsara/types/form_templates_get_form_templates_not_found_error_response_body.py +33 -0
  186. samsara/types/form_templates_get_form_templates_not_implemented_error_response_body.py +33 -0
  187. samsara/types/form_templates_get_form_templates_response_body.py +26 -0
  188. samsara/types/form_templates_get_form_templates_service_unavailable_error_response_body.py +33 -0
  189. samsara/types/form_templates_get_form_templates_too_many_requests_error_response_body.py +33 -0
  190. samsara/types/form_templates_get_form_templates_unauthorized_error_response_body.py +33 -0
  191. samsara/types/forms_action_object_response_body.py +43 -0
  192. samsara/types/forms_action_object_response_body_type.py +7 -0
  193. samsara/types/forms_approval_config_object_response_body.py +32 -0
  194. samsara/types/forms_asset_object_response_body.py +8 -1
  195. samsara/types/forms_check_boxes_value_object_response_body.py +7 -0
  196. samsara/types/forms_condition_object_response_body.py +36 -0
  197. samsara/types/forms_condition_object_response_body_type.py +7 -0
  198. samsara/types/forms_conditional_action_object_response_body.py +30 -0
  199. samsara/types/forms_field_definition_object_response_body.py +143 -0
  200. samsara/types/forms_field_definition_object_response_body_allowed_asset_types_item.py +7 -0
  201. samsara/types/forms_field_definition_object_response_body_allowed_date_time_value_type.py +7 -0
  202. samsara/types/forms_field_definition_object_response_body_type.py +22 -0
  203. samsara/types/forms_field_input_object_response_body.py +7 -4
  204. samsara/types/forms_field_input_object_response_body_type.py +20 -0
  205. samsara/types/forms_geofence_object_response_body.py +53 -0
  206. samsara/types/forms_geofence_object_response_body_entry_type.py +5 -0
  207. samsara/types/forms_geofence_value_object_response_body.py +24 -0
  208. samsara/types/forms_multiple_choice_value_object_response_body.py +8 -1
  209. samsara/types/forms_product_submission_approval_details_object_response_body.py +26 -0
  210. samsara/types/forms_select_option_object_response_body.py +47 -0
  211. samsara/types/forms_single_approval_config_object_response_body.py +33 -0
  212. samsara/types/forms_table_cell_object_response_body.py +3 -4
  213. samsara/types/forms_table_cell_object_response_body_type.py +8 -0
  214. samsara/types/forms_table_column_object_response_body.py +3 -4
  215. samsara/types/forms_table_column_object_response_body_type.py +8 -0
  216. samsara/types/forms_table_field_definition_object_response_body.py +91 -0
  217. samsara/types/forms_table_field_definition_object_response_body_allowed_date_time_value_type.py +7 -0
  218. samsara/types/forms_table_field_definition_object_response_body_type.py +8 -0
  219. samsara/types/fuel_cost_object_response_body.py +32 -0
  220. samsara/types/fuel_cost_object_response_body_currency.py +5 -0
  221. samsara/types/fuel_volume_response_body.py +28 -0
  222. samsara/types/fuel_volume_response_body_unit.py +5 -0
  223. samsara/types/gaseous_fuel_cost_object_response_body.py +32 -0
  224. samsara/types/gaseous_fuel_cost_object_response_body_currency.py +7 -0
  225. samsara/types/gateway_details_response_response_body.py +14 -0
  226. samsara/types/harsh_event_trigger_details_object_request_body_types_item.py +1 -0
  227. samsara/types/harsh_event_trigger_details_object_response_body_types_item.py +1 -0
  228. samsara/types/idling_event_object_response_body.py +101 -0
  229. samsara/types/idling_event_object_response_body_address_type.py +17 -0
  230. samsara/types/inline_response_2005.py +24 -0
  231. samsara/types/inline_response_2006.py +24 -0
  232. samsara/types/reading_definition_response_body.py +59 -0
  233. samsara/types/reading_history_response_body.py +47 -0
  234. samsara/types/reading_snapshot_response_body.py +52 -0
  235. samsara/types/reading_trigger_continuous_value_object_request_body.py +51 -0
  236. samsara/types/reading_trigger_continuous_value_object_request_body_operation.py +7 -0
  237. samsara/types/reading_trigger_continuous_value_object_request_body_unit.py +62 -0
  238. samsara/types/reading_trigger_continuous_value_object_response_body.py +51 -0
  239. samsara/types/reading_trigger_continuous_value_object_response_body_operation.py +7 -0
  240. samsara/types/reading_trigger_continuous_value_object_response_body_unit.py +62 -0
  241. samsara/types/reading_trigger_details_object_request_body.py +48 -0
  242. samsara/types/reading_trigger_details_object_response_body.py +48 -0
  243. samsara/types/reading_trigger_details_response_body.py +38 -0
  244. samsara/types/reading_trigger_enum_value_object_request_body.py +31 -0
  245. samsara/types/reading_trigger_enum_value_object_response_body.py +31 -0
  246. samsara/types/reading_type_response_body.py +34 -0
  247. samsara/types/reading_type_response_body_data_type.py +5 -0
  248. samsara/types/readings_get_readings_history_bad_gateway_error_response_body.py +33 -0
  249. samsara/types/{hos_daily_logs_update_shipping_docs_bad_gateway_error_response_body.py → readings_get_readings_history_gateway_timeout_error_response_body.py} +2 -2
  250. samsara/types/readings_get_readings_history_internal_server_error_response_body.py +33 -0
  251. samsara/types/readings_get_readings_history_method_not_allowed_error_response_body.py +33 -0
  252. samsara/types/readings_get_readings_history_not_found_error_response_body.py +33 -0
  253. samsara/types/readings_get_readings_history_not_implemented_error_response_body.py +33 -0
  254. samsara/types/readings_get_readings_history_response_body.py +26 -0
  255. samsara/types/readings_get_readings_history_service_unavailable_error_response_body.py +33 -0
  256. samsara/types/readings_get_readings_history_too_many_requests_error_response_body.py +33 -0
  257. samsara/types/readings_get_readings_history_unauthorized_error_response_body.py +33 -0
  258. samsara/types/readings_get_readings_snapshot_bad_gateway_error_response_body.py +33 -0
  259. samsara/types/readings_get_readings_snapshot_gateway_timeout_error_response_body.py +33 -0
  260. samsara/types/readings_get_readings_snapshot_internal_server_error_response_body.py +33 -0
  261. samsara/types/readings_get_readings_snapshot_method_not_allowed_error_response_body.py +33 -0
  262. samsara/types/readings_get_readings_snapshot_not_found_error_response_body.py +33 -0
  263. samsara/types/readings_get_readings_snapshot_not_implemented_error_response_body.py +33 -0
  264. samsara/types/readings_get_readings_snapshot_response_body.py +26 -0
  265. samsara/types/readings_get_readings_snapshot_service_unavailable_error_response_body.py +33 -0
  266. samsara/types/{hos_daily_logs_update_shipping_docs_unauthorized_error_response_body.py → readings_get_readings_snapshot_too_many_requests_error_response_body.py} +2 -2
  267. samsara/types/readings_get_readings_snapshot_unauthorized_error_response_body.py +33 -0
  268. samsara/types/readings_list_readings_definitions_bad_gateway_error_response_body.py +33 -0
  269. samsara/types/{hos_daily_logs_update_shipping_docs_too_many_requests_error_response_body.py → readings_list_readings_definitions_gateway_timeout_error_response_body.py} +2 -2
  270. samsara/types/readings_list_readings_definitions_internal_server_error_response_body.py +33 -0
  271. samsara/types/readings_list_readings_definitions_method_not_allowed_error_response_body.py +33 -0
  272. samsara/types/readings_list_readings_definitions_not_found_error_response_body.py +33 -0
  273. samsara/types/readings_list_readings_definitions_not_implemented_error_response_body.py +33 -0
  274. samsara/types/readings_list_readings_definitions_response_body.py +26 -0
  275. samsara/types/readings_list_readings_definitions_service_unavailable_error_response_body.py +33 -0
  276. samsara/types/{hos_daily_logs_update_shipping_docs_method_not_allowed_error_response_body.py → readings_list_readings_definitions_too_many_requests_error_response_body.py} +2 -2
  277. samsara/types/readings_list_readings_definitions_unauthorized_error_response_body.py +33 -0
  278. samsara/types/safety_score_configuration_settings_object_response_body.py +7 -0
  279. samsara/types/single_approval_requirements_object_response_body.py +28 -0
  280. samsara/types/sudden_fuel_level_drop_response_body.py +33 -0
  281. samsara/types/sudden_fuel_level_rise_response_body.py +33 -0
  282. samsara/types/trigger_params_object_request_body.py +2 -0
  283. samsara/types/trigger_params_object_response_body.py +2 -0
  284. samsara/types/unit_response_body.py +39 -0
  285. samsara/types/unit_response_body_base_unit.py +62 -0
  286. samsara/types/unit_response_body_measurement_type.py +28 -0
  287. samsara/types/uploaded_media_object_response_body.py +1 -1
  288. samsara/types/uploaded_media_object_response_body_trigger_reason.py +8 -1
  289. samsara/types/v_1_message.py +29 -0
  290. samsara/types/v_1_message_response.py +41 -0
  291. samsara/types/v_1_message_sender.py +27 -0
  292. samsara/types/v_1_messages.py +7 -0
  293. samsara/types/v_1_messages_response.py +7 -0
  294. samsara/types/webhook_response_response_body_event_types_item.py +1 -0
  295. samsara/types/webhooks_get_webhook_response_body_event_types_item.py +1 -0
  296. samsara/types/webhooks_patch_webhook_response_body_event_types_item.py +1 -0
  297. samsara/types/webhooks_post_webhooks_response_body_event_types_item.py +1 -0
  298. samsara/types/work_order_item_object_request_body.py +1 -1
  299. samsara/types/work_order_item_object_request_body_type.py +10 -1
  300. samsara/types/work_order_item_object_response_body.py +1 -1
  301. samsara/types/work_order_item_object_response_body_type.py +10 -1
  302. samsara/types/workflow_geofence_event_response_object_response_body.py +6 -0
  303. samsara/types/workflow_incident_details_object_response_body.py +2 -0
  304. samsara/types/workflow_trigger_object_request_body.py +1 -0
  305. samsara/types/workflow_trigger_object_response_body.py +1 -0
  306. samsara/user_roles/client.py +21 -11
  307. samsara/user_roles/raw_client.py +39 -9
  308. samsara/users/client.py +21 -11
  309. samsara/users/raw_client.py +39 -8
  310. samsara/v_1_messages/__init__.py +4 -0
  311. samsara/v_1_messages/client.py +258 -0
  312. samsara/v_1_messages/raw_client.py +273 -0
  313. samsara/vehicles/__init__.py +1 -2
  314. samsara/vehicles/client.py +31 -16
  315. samsara/vehicles/immobilizer/client.py +21 -13
  316. samsara/vehicles/immobilizer/raw_client.py +43 -9
  317. samsara/vehicles/locations/client.py +60 -32
  318. samsara/vehicles/locations/raw_client.py +132 -25
  319. samsara/vehicles/raw_client.py +61 -8
  320. samsara/vehicles/stats/client.py +66 -38
  321. samsara/vehicles/stats/raw_client.py +148 -31
  322. samsara/webhooks/client.py +21 -11
  323. samsara/webhooks/raw_client.py +41 -8
  324. samsara/webhooks/types/webhooks_post_webhooks_request_body_event_types_item.py +1 -0
  325. {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/METADATA +25 -18
  326. {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/RECORD +332 -197
  327. samsara/beta/client.py +0 -161
  328. samsara/drivers/tachograph_activity/client.py +0 -186
  329. samsara/drivers/tachograph_activity/raw_client.py +0 -169
  330. samsara/hours_of_service/__init__.py +0 -7
  331. samsara/hours_of_service/client.py +0 -229
  332. samsara/hours_of_service/raw_client.py +0 -425
  333. samsara/hours_of_service/types/__init__.py +0 -9
  334. samsara/hours_of_service/types/hours_of_service_get_daily_logs_request_driver_activation_status.py +0 -7
  335. samsara/reports/ifta/vehicle/types/vehicle_get_request_quarter.py +0 -5
  336. samsara/reports/vehicles/fuel_energy/types/fuel_energy_get_request_energy_type.py +0 -5
  337. samsara/types/assets_create_asset_response_body_regulation_mode.py +0 -7
  338. samsara/types/assets_update_asset_response_body_regulation_mode.py +0 -7
  339. samsara/types/assets_update_asset_response_body_type.py +0 -7
  340. samsara/types/patch_shipping_docs_response_body_response_body.py +0 -93
  341. /samsara/{beta → forms}/__init__.py +0 -0
  342. /samsara/{drivers/tachograph_activity → readings}/__init__.py +0 -0
  343. /samsara/{drivers/tachograph_files → tachograph/driver}/__init__.py +0 -0
  344. /samsara/{vehicles/tachograph_files → tachograph/vehicles}/__init__.py +0 -0
  345. {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/LICENSE +0 -0
  346. {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/WHEEL +0 -0
@@ -0,0 +1,59 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .enum_value_response_body import EnumValueResponseBody
10
+ from .reading_type_response_body import ReadingTypeResponseBody
11
+
12
+
13
+ class ReadingDefinitionResponseBody(UniversalBaseModel):
14
+ """
15
+ Definition of a reading.
16
+ """
17
+
18
+ category: str = pydantic.Field()
19
+ """
20
+ The category enumeration that this reading belongs to.
21
+ """
22
+
23
+ description: str = pydantic.Field()
24
+ """
25
+ The human readable description for this reading. Translated to English.
26
+ """
27
+
28
+ entity_type: typing_extensions.Annotated[str, FieldMetadata(alias="entityType")] = pydantic.Field()
29
+ """
30
+ Entity type of this reading.
31
+ """
32
+
33
+ enum_values: typing_extensions.Annotated[
34
+ typing.Optional[typing.List[EnumValueResponseBody]], FieldMetadata(alias="enumValues")
35
+ ] = pydantic.Field(default=None)
36
+ """
37
+ Array of enumeration values
38
+ """
39
+
40
+ label: str = pydantic.Field()
41
+ """
42
+ The label for this reading that is suitable to show to a user. Translated to English.
43
+ """
44
+
45
+ reading_id: typing_extensions.Annotated[str, FieldMetadata(alias="readingId")] = pydantic.Field()
46
+ """
47
+ The ID of the reading used to fetch time series data in other endpoints.
48
+ """
49
+
50
+ type: ReadingTypeResponseBody
51
+
52
+ if IS_PYDANTIC_V2:
53
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
54
+ else:
55
+
56
+ class Config:
57
+ frozen = True
58
+ smart_union = True
59
+ extra = pydantic.Extra.allow
@@ -0,0 +1,47 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class ReadingHistoryResponseBody(UniversalBaseModel):
12
+ """
13
+ A history of reading values for an entity.
14
+ """
15
+
16
+ entity_id: typing_extensions.Annotated[str, FieldMetadata(alias="entityId")] = pydantic.Field()
17
+ """
18
+ The ID of the entity this readings is for.
19
+ """
20
+
21
+ external_ids: typing_extensions.Annotated[
22
+ typing.Optional[typing.Dict[str, str]], FieldMetadata(alias="externalIds")
23
+ ] = pydantic.Field(default=None)
24
+ """
25
+ A map of external ids
26
+ """
27
+
28
+ happened_at_time: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="happenedAtTime")] = (
29
+ pydantic.Field(default=None)
30
+ )
31
+ """
32
+ The time in RFC 3339 format when the reading was measured.
33
+ """
34
+
35
+ value: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
36
+ """
37
+ The value of the reading.
38
+ """
39
+
40
+ if IS_PYDANTIC_V2:
41
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
42
+ else:
43
+
44
+ class Config:
45
+ frozen = True
46
+ smart_union = True
47
+ extra = pydantic.Extra.allow
@@ -0,0 +1,52 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class ReadingSnapshotResponseBody(UniversalBaseModel):
12
+ """
13
+ A snapshot of a reading value at a point in time.
14
+ """
15
+
16
+ entity_id: typing_extensions.Annotated[str, FieldMetadata(alias="entityId")] = pydantic.Field()
17
+ """
18
+ The ID of the entity this readings is for.
19
+ """
20
+
21
+ external_ids: typing_extensions.Annotated[
22
+ typing.Optional[typing.Dict[str, str]], FieldMetadata(alias="externalIds")
23
+ ] = pydantic.Field(default=None)
24
+ """
25
+ A map of external ids
26
+ """
27
+
28
+ happened_at_time: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="happenedAtTime")] = (
29
+ pydantic.Field(default=None)
30
+ )
31
+ """
32
+ The time in RFC 3339 format when the reading was measured.
33
+ """
34
+
35
+ reading_id: typing_extensions.Annotated[str, FieldMetadata(alias="readingId")] = pydantic.Field()
36
+ """
37
+ The ID of the reading for which the data is being returned.
38
+ """
39
+
40
+ value: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
41
+ """
42
+ The value of the reading.
43
+ """
44
+
45
+ if IS_PYDANTIC_V2:
46
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
47
+ else:
48
+
49
+ class Config:
50
+ frozen = True
51
+ smart_union = True
52
+ extra = pydantic.Extra.allow
@@ -0,0 +1,51 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .reading_trigger_continuous_value_object_request_body_operation import (
10
+ ReadingTriggerContinuousValueObjectRequestBodyOperation,
11
+ )
12
+ from .reading_trigger_continuous_value_object_request_body_unit import (
13
+ ReadingTriggerContinuousValueObjectRequestBodyUnit,
14
+ )
15
+
16
+
17
+ class ReadingTriggerContinuousValueObjectRequestBody(UniversalBaseModel):
18
+ """
19
+ Threshold to alert on if reading is continuous, either enum or continuous threshold may be set.
20
+ """
21
+
22
+ operation: ReadingTriggerContinuousValueObjectRequestBodyOperation = pydantic.Field()
23
+ """
24
+ The operation to use when comparing the value to the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
25
+ """
26
+
27
+ threshold: int = pydantic.Field()
28
+ """
29
+ The lower threshold of criticality.
30
+ """
31
+
32
+ unit: typing.Optional[ReadingTriggerContinuousValueObjectRequestBodyUnit] = pydantic.Field(default=None)
33
+ """
34
+ The unit of the threshold defined by reading type. If not provided base unit of the reading will be used. Valid values: `bar`, `celsius`, `fahrenheit`, `foot`, `gallon`, `galpermi`, `gforce`, `gperliter`, `gperm`, `hour`, `impgallon`, `impgalpermi`, `inch`, `kelvin`, `kgper100kmgaseousfuel`, `kgpergallon`, `kgperkm`, `kgperliter`, `kgpermi`, `kilogram`, `kilogramgaseousfuel`, `kilometer`, `kilopascal`, `kilowatthour`, `kmperhr`, `lbpermi`, `liter`, `litergaseousfuel`, `lper100km`, `lper100kmgaseousfuel`, `lperkm`, `lperm`, `meter`, `meterspersec`, `mile`, `milliknot`, `millisecond`, `millivolt`, `mipergal`, `miperhr`, `miperimpgal`, `mpgusgalgaseousfuel`, `mpkggaseousfuel`, `percent`, `pound`, `poundsPerSquareInch`, `poundspergallon`, `poundsperliter`, `second`, `usd`, `usgallongaseousfuel`, `volt`, `watthour`
35
+ """
36
+
37
+ upper_threshold: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="upperThreshold")] = (
38
+ pydantic.Field(default=None)
39
+ )
40
+ """
41
+ The upper threshold of criticality. Required for RANGE operations.
42
+ """
43
+
44
+ if IS_PYDANTIC_V2:
45
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
46
+ else:
47
+
48
+ class Config:
49
+ frozen = True
50
+ smart_union = True
51
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReadingTriggerContinuousValueObjectRequestBodyOperation = typing.Union[
6
+ typing.Literal["GREATER", "INSIDE_RANGE", "LESS", "OUTSIDE_RANGE"], typing.Any
7
+ ]
@@ -0,0 +1,62 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReadingTriggerContinuousValueObjectRequestBodyUnit = typing.Union[
6
+ typing.Literal[
7
+ "bar",
8
+ "celsius",
9
+ "fahrenheit",
10
+ "foot",
11
+ "gallon",
12
+ "galpermi",
13
+ "gforce",
14
+ "gperliter",
15
+ "gperm",
16
+ "hour",
17
+ "impgallon",
18
+ "impgalpermi",
19
+ "inch",
20
+ "kelvin",
21
+ "kgper100kmgaseousfuel",
22
+ "kgpergallon",
23
+ "kgperkm",
24
+ "kgperliter",
25
+ "kgpermi",
26
+ "kilogram",
27
+ "kilogramgaseousfuel",
28
+ "kilometer",
29
+ "kilopascal",
30
+ "kilowatthour",
31
+ "kmperhr",
32
+ "lbpermi",
33
+ "liter",
34
+ "litergaseousfuel",
35
+ "lper100km",
36
+ "lper100kmgaseousfuel",
37
+ "lperkm",
38
+ "lperm",
39
+ "meter",
40
+ "meterspersec",
41
+ "mile",
42
+ "milliknot",
43
+ "millisecond",
44
+ "millivolt",
45
+ "mipergal",
46
+ "miperhr",
47
+ "miperimpgal",
48
+ "mpgusgalgaseousfuel",
49
+ "mpkggaseousfuel",
50
+ "percent",
51
+ "pound",
52
+ "poundsPerSquareInch",
53
+ "poundspergallon",
54
+ "poundsperliter",
55
+ "second",
56
+ "usd",
57
+ "usgallongaseousfuel",
58
+ "volt",
59
+ "watthour",
60
+ ],
61
+ typing.Any,
62
+ ]
@@ -0,0 +1,51 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .reading_trigger_continuous_value_object_response_body_operation import (
10
+ ReadingTriggerContinuousValueObjectResponseBodyOperation,
11
+ )
12
+ from .reading_trigger_continuous_value_object_response_body_unit import (
13
+ ReadingTriggerContinuousValueObjectResponseBodyUnit,
14
+ )
15
+
16
+
17
+ class ReadingTriggerContinuousValueObjectResponseBody(UniversalBaseModel):
18
+ """
19
+ Threshold to alert on if reading is continuous, either enum or continuous threshold may be set.
20
+ """
21
+
22
+ operation: ReadingTriggerContinuousValueObjectResponseBodyOperation = pydantic.Field()
23
+ """
24
+ The operation to use when comparing the value to the threshold. Valid values: `GREATER`, `INSIDE_RANGE`, `LESS`, `OUTSIDE_RANGE`
25
+ """
26
+
27
+ threshold: int = pydantic.Field()
28
+ """
29
+ The lower threshold of criticality.
30
+ """
31
+
32
+ unit: typing.Optional[ReadingTriggerContinuousValueObjectResponseBodyUnit] = pydantic.Field(default=None)
33
+ """
34
+ The unit of the threshold defined by reading type. If not provided base unit of the reading will be used. Valid values: `bar`, `celsius`, `fahrenheit`, `foot`, `gallon`, `galpermi`, `gforce`, `gperliter`, `gperm`, `hour`, `impgallon`, `impgalpermi`, `inch`, `kelvin`, `kgper100kmgaseousfuel`, `kgpergallon`, `kgperkm`, `kgperliter`, `kgpermi`, `kilogram`, `kilogramgaseousfuel`, `kilometer`, `kilopascal`, `kilowatthour`, `kmperhr`, `lbpermi`, `liter`, `litergaseousfuel`, `lper100km`, `lper100kmgaseousfuel`, `lperkm`, `lperm`, `meter`, `meterspersec`, `mile`, `milliknot`, `millisecond`, `millivolt`, `mipergal`, `miperhr`, `miperimpgal`, `mpgusgalgaseousfuel`, `mpkggaseousfuel`, `percent`, `pound`, `poundsPerSquareInch`, `poundspergallon`, `poundsperliter`, `second`, `usd`, `usgallongaseousfuel`, `volt`, `watthour`
35
+ """
36
+
37
+ upper_threshold: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="upperThreshold")] = (
38
+ pydantic.Field(default=None)
39
+ )
40
+ """
41
+ The upper threshold of criticality. Required for RANGE operations.
42
+ """
43
+
44
+ if IS_PYDANTIC_V2:
45
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
46
+ else:
47
+
48
+ class Config:
49
+ frozen = True
50
+ smart_union = True
51
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReadingTriggerContinuousValueObjectResponseBodyOperation = typing.Union[
6
+ typing.Literal["GREATER", "INSIDE_RANGE", "LESS", "OUTSIDE_RANGE"], typing.Any
7
+ ]
@@ -0,0 +1,62 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReadingTriggerContinuousValueObjectResponseBodyUnit = typing.Union[
6
+ typing.Literal[
7
+ "bar",
8
+ "celsius",
9
+ "fahrenheit",
10
+ "foot",
11
+ "gallon",
12
+ "galpermi",
13
+ "gforce",
14
+ "gperliter",
15
+ "gperm",
16
+ "hour",
17
+ "impgallon",
18
+ "impgalpermi",
19
+ "inch",
20
+ "kelvin",
21
+ "kgper100kmgaseousfuel",
22
+ "kgpergallon",
23
+ "kgperkm",
24
+ "kgperliter",
25
+ "kgpermi",
26
+ "kilogram",
27
+ "kilogramgaseousfuel",
28
+ "kilometer",
29
+ "kilopascal",
30
+ "kilowatthour",
31
+ "kmperhr",
32
+ "lbpermi",
33
+ "liter",
34
+ "litergaseousfuel",
35
+ "lper100km",
36
+ "lper100kmgaseousfuel",
37
+ "lperkm",
38
+ "lperm",
39
+ "meter",
40
+ "meterspersec",
41
+ "mile",
42
+ "milliknot",
43
+ "millisecond",
44
+ "millivolt",
45
+ "mipergal",
46
+ "miperhr",
47
+ "miperimpgal",
48
+ "mpgusgalgaseousfuel",
49
+ "mpkggaseousfuel",
50
+ "percent",
51
+ "pound",
52
+ "poundsPerSquareInch",
53
+ "poundspergallon",
54
+ "poundsperliter",
55
+ "second",
56
+ "usd",
57
+ "usgallongaseousfuel",
58
+ "volt",
59
+ "watthour",
60
+ ],
61
+ typing.Any,
62
+ ]
@@ -0,0 +1,48 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .reading_trigger_continuous_value_object_request_body import ReadingTriggerContinuousValueObjectRequestBody
10
+ from .reading_trigger_enum_value_object_request_body import ReadingTriggerEnumValueObjectRequestBody
11
+
12
+
13
+ class ReadingTriggerDetailsObjectRequestBody(UniversalBaseModel):
14
+ """
15
+ Details specific to reading based Trigger, readings can be discovered through the Readings API.
16
+ """
17
+
18
+ continuous_threshold: typing_extensions.Annotated[
19
+ typing.Optional[ReadingTriggerContinuousValueObjectRequestBody], FieldMetadata(alias="continuousThreshold")
20
+ ] = None
21
+ entity_type: typing_extensions.Annotated[str, FieldMetadata(alias="entityType")] = pydantic.Field()
22
+ """
23
+ The type of the entity associated with the reading.
24
+ """
25
+
26
+ enum_threshold: typing_extensions.Annotated[
27
+ typing.Optional[ReadingTriggerEnumValueObjectRequestBody], FieldMetadata(alias="enumThreshold")
28
+ ] = None
29
+ id: str = pydantic.Field()
30
+ """
31
+ The ID of the reading.
32
+ """
33
+
34
+ min_duration_milliseconds: typing_extensions.Annotated[int, FieldMetadata(alias="minDurationMilliseconds")] = (
35
+ pydantic.Field()
36
+ )
37
+ """
38
+ The number of milliseconds the trigger needs to stay active before alerting.
39
+ """
40
+
41
+ if IS_PYDANTIC_V2:
42
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
43
+ else:
44
+
45
+ class Config:
46
+ frozen = True
47
+ smart_union = True
48
+ extra = pydantic.Extra.allow
@@ -0,0 +1,48 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .reading_trigger_continuous_value_object_response_body import ReadingTriggerContinuousValueObjectResponseBody
10
+ from .reading_trigger_enum_value_object_response_body import ReadingTriggerEnumValueObjectResponseBody
11
+
12
+
13
+ class ReadingTriggerDetailsObjectResponseBody(UniversalBaseModel):
14
+ """
15
+ Details specific to reading based Trigger, readings can be discovered through the Readings API.
16
+ """
17
+
18
+ continuous_threshold: typing_extensions.Annotated[
19
+ typing.Optional[ReadingTriggerContinuousValueObjectResponseBody], FieldMetadata(alias="continuousThreshold")
20
+ ] = None
21
+ entity_type: typing_extensions.Annotated[str, FieldMetadata(alias="entityType")] = pydantic.Field()
22
+ """
23
+ The type of the entity associated with the reading.
24
+ """
25
+
26
+ enum_threshold: typing_extensions.Annotated[
27
+ typing.Optional[ReadingTriggerEnumValueObjectResponseBody], FieldMetadata(alias="enumThreshold")
28
+ ] = None
29
+ id: str = pydantic.Field()
30
+ """
31
+ The ID of the reading.
32
+ """
33
+
34
+ min_duration_milliseconds: typing_extensions.Annotated[int, FieldMetadata(alias="minDurationMilliseconds")] = (
35
+ pydantic.Field()
36
+ )
37
+ """
38
+ The number of milliseconds the trigger needs to stay active before alerting.
39
+ """
40
+
41
+ if IS_PYDANTIC_V2:
42
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
43
+ else:
44
+
45
+ class Config:
46
+ frozen = True
47
+ smart_union = True
48
+ extra = pydantic.Extra.allow
@@ -0,0 +1,38 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .alert_object_asset_response_body import AlertObjectAssetResponseBody
10
+ from .continuous_reading_alert_threshold_response_body import ContinuousReadingAlertThresholdResponseBody
11
+ from .enum_reading_alert_threshold_response_body import EnumReadingAlertThresholdResponseBody
12
+
13
+
14
+ class ReadingTriggerDetailsResponseBody(UniversalBaseModel):
15
+ """
16
+ Details specific to Reading Triggers.
17
+ """
18
+
19
+ asset: typing.Optional[AlertObjectAssetResponseBody] = None
20
+ continuous_threshold: typing_extensions.Annotated[
21
+ typing.Optional[ContinuousReadingAlertThresholdResponseBody], FieldMetadata(alias="continuousThreshold")
22
+ ] = None
23
+ enum_threshold: typing_extensions.Annotated[
24
+ typing.Optional[EnumReadingAlertThresholdResponseBody], FieldMetadata(alias="enumThreshold")
25
+ ] = None
26
+ id: str = pydantic.Field()
27
+ """
28
+ The ID of the reading.
29
+ """
30
+
31
+ if IS_PYDANTIC_V2:
32
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
33
+ else:
34
+
35
+ class Config:
36
+ frozen = True
37
+ smart_union = True
38
+ extra = pydantic.Extra.allow
@@ -0,0 +1,31 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class ReadingTriggerEnumValueObjectRequestBody(UniversalBaseModel):
10
+ """
11
+ Enum value to alert on if reading is discrete, either enum or continuous threshold may be set.
12
+ """
13
+
14
+ number: typing.Optional[int] = pydantic.Field(default=None)
15
+ """
16
+ The numeric representation of the enum value.
17
+ """
18
+
19
+ symbol: typing.Optional[str] = pydantic.Field(default=None)
20
+ """
21
+ The symbol representation of the enum value.
22
+ """
23
+
24
+ if IS_PYDANTIC_V2:
25
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
26
+ else:
27
+
28
+ class Config:
29
+ frozen = True
30
+ smart_union = True
31
+ extra = pydantic.Extra.allow
@@ -0,0 +1,31 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class ReadingTriggerEnumValueObjectResponseBody(UniversalBaseModel):
10
+ """
11
+ Enum value to alert on if reading is discrete, either enum or continuous threshold may be set.
12
+ """
13
+
14
+ number: typing.Optional[int] = pydantic.Field(default=None)
15
+ """
16
+ The numeric representation of the enum value.
17
+ """
18
+
19
+ symbol: typing.Optional[str] = pydantic.Field(default=None)
20
+ """
21
+ The symbol representation of the enum value.
22
+ """
23
+
24
+ if IS_PYDANTIC_V2:
25
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
26
+ else:
27
+
28
+ class Config:
29
+ frozen = True
30
+ smart_union = True
31
+ extra = pydantic.Extra.allow
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .reading_type_response_body_data_type import ReadingTypeResponseBodyDataType
10
+ from .unit_response_body import UnitResponseBody
11
+
12
+
13
+ class ReadingTypeResponseBody(UniversalBaseModel):
14
+ """
15
+ Type information for the reading.
16
+ """
17
+
18
+ data_type: typing_extensions.Annotated[ReadingTypeResponseBodyDataType, FieldMetadata(alias="dataType")] = (
19
+ pydantic.Field()
20
+ )
21
+ """
22
+ The data type of the reading. Valid values: `integer`, `float`, `string`
23
+ """
24
+
25
+ unit: typing.Optional[UnitResponseBody] = None
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReadingTypeResponseBodyDataType = typing.Union[typing.Literal["integer", "float", "string"], typing.Any]