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,33 @@
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 ReadingsListReadingsDefinitionsInternalServerErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ An internal server error occurred
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
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 ReadingsListReadingsDefinitionsMethodNotAllowedErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ Method not allowed
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
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 ReadingsListReadingsDefinitionsNotFoundErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ Resource not found
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
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 ReadingsListReadingsDefinitionsNotImplementedErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ Requested endpoint is not yet implemented
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
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
+ from .goa_pagination_response_response_body import GoaPaginationResponseResponseBody
8
+ from .reading_definition_response_body import ReadingDefinitionResponseBody
9
+
10
+
11
+ class ReadingsListReadingsDefinitionsResponseBody(UniversalBaseModel):
12
+ data: typing.List[ReadingDefinitionResponseBody] = pydantic.Field()
13
+ """
14
+ A list of reading definitions.
15
+ """
16
+
17
+ pagination: GoaPaginationResponseResponseBody
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
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 ReadingsListReadingsDefinitionsServiceUnavailableErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ Service unavailable
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -8,9 +8,9 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
  from ..core.serialization import FieldMetadata
9
9
 
10
10
 
11
- class HosDailyLogsUpdateShippingDocsMethodNotAllowedErrorResponseBody(UniversalBaseModel):
11
+ class ReadingsListReadingsDefinitionsTooManyRequestsErrorResponseBody(UniversalBaseModel):
12
12
  """
13
- Method not allowed
13
+ Too many requests
14
14
  """
15
15
 
16
16
  message: str = pydantic.Field()
@@ -0,0 +1,33 @@
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 ReadingsListReadingsDefinitionsUnauthorizedErrorResponseBody(UniversalBaseModel):
12
+ """
13
+ Unauthorized
14
+ """
15
+
16
+ message: str = pydantic.Field()
17
+ """
18
+ Message of error
19
+ """
20
+
21
+ request_id: typing_extensions.Annotated[str, FieldMetadata(alias="requestId")] = pydantic.Field()
22
+ """
23
+ The request ID; used when reaching out to support for issues with requests.
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -216,6 +216,13 @@ class SafetyScoreConfigurationSettingsObjectResponseBody(UniversalBaseModel):
216
216
  Score weight for manual speeding event.
217
217
  """
218
218
 
219
+ vulnerable_road_user_weight: typing_extensions.Annotated[
220
+ typing.Optional[int], FieldMetadata(alias="vulnerableRoadUserWeight")
221
+ ] = pydantic.Field(default=None)
222
+ """
223
+ Score weight for vulnerable road user behavior.
224
+ """
225
+
219
226
  if IS_PYDANTIC_V2:
220
227
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
221
228
  else:
@@ -0,0 +1,28 @@
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 SingleApprovalRequirementsObjectResponseBody(UniversalBaseModel):
12
+ """
13
+ Single approval requirements object.
14
+ """
15
+
16
+ role_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="roleIds")] = pydantic.Field()
17
+ """
18
+ List of role IDs representing which user roles can be approvers.
19
+ """
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
@@ -1,11 +1,15 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
7
+ import typing_extensions
6
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
7
10
  from .alert_object_driver_response_body import AlertObjectDriverResponseBody
8
11
  from .alert_object_vehicle_response_body import AlertObjectVehicleResponseBody
12
+ from .event_location_response_body import EventLocationResponseBody
9
13
 
10
14
 
11
15
  class SuddenFuelLevelDropResponseBody(UniversalBaseModel):
@@ -13,7 +17,36 @@ class SuddenFuelLevelDropResponseBody(UniversalBaseModel):
13
17
  Details specific to Sudden Fuel Level Drop.
14
18
  """
15
19
 
20
+ change_end_time: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="changeEndTime")] = (
21
+ pydantic.Field(default=None)
22
+ )
23
+ """
24
+ The end time of the fuel level change in RFC 3339 format.
25
+ """
26
+
27
+ change_start_time: typing_extensions.Annotated[
28
+ typing.Optional[dt.datetime], FieldMetadata(alias="changeStartTime")
29
+ ] = pydantic.Field(default=None)
30
+ """
31
+ The start time of the fuel level change in RFC 3339 format.
32
+ """
33
+
16
34
  driver: typing.Optional[AlertObjectDriverResponseBody] = None
35
+ fuel_level_after_millipercent: typing_extensions.Annotated[
36
+ typing.Optional[int], FieldMetadata(alias="fuelLevelAfterMillipercent")
37
+ ] = pydantic.Field(default=None)
38
+ """
39
+ The fuel level after the sudden fuel level drop in millipercents.
40
+ """
41
+
42
+ fuel_level_before_millipercent: typing_extensions.Annotated[
43
+ typing.Optional[int], FieldMetadata(alias="fuelLevelBeforeMillipercent")
44
+ ] = pydantic.Field(default=None)
45
+ """
46
+ The fuel level before the sudden fuel level drop in millipercents.
47
+ """
48
+
49
+ location: typing.Optional[EventLocationResponseBody] = None
17
50
  vehicle: typing.Optional[AlertObjectVehicleResponseBody] = None
18
51
 
19
52
  if IS_PYDANTIC_V2:
@@ -1,11 +1,15 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
7
+ import typing_extensions
6
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
7
10
  from .alert_object_driver_response_body import AlertObjectDriverResponseBody
8
11
  from .alert_object_vehicle_response_body import AlertObjectVehicleResponseBody
12
+ from .event_location_response_body import EventLocationResponseBody
9
13
 
10
14
 
11
15
  class SuddenFuelLevelRiseResponseBody(UniversalBaseModel):
@@ -13,7 +17,36 @@ class SuddenFuelLevelRiseResponseBody(UniversalBaseModel):
13
17
  Details specific to Sudden Fuel Level Rise.
14
18
  """
15
19
 
20
+ change_end_time: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="changeEndTime")] = (
21
+ pydantic.Field(default=None)
22
+ )
23
+ """
24
+ The end time of the fuel level change in RFC 3339 format.
25
+ """
26
+
27
+ change_start_time: typing_extensions.Annotated[
28
+ typing.Optional[dt.datetime], FieldMetadata(alias="changeStartTime")
29
+ ] = pydantic.Field(default=None)
30
+ """
31
+ The start time of the fuel level change in RFC 3339 format.
32
+ """
33
+
16
34
  driver: typing.Optional[AlertObjectDriverResponseBody] = None
35
+ fuel_level_after_millipercent: typing_extensions.Annotated[
36
+ typing.Optional[int], FieldMetadata(alias="fuelLevelAfterMillipercent")
37
+ ] = pydantic.Field(default=None)
38
+ """
39
+ The fuel level after the sudden fuel level rise in millipercents.
40
+ """
41
+
42
+ fuel_level_before_millipercent: typing_extensions.Annotated[
43
+ typing.Optional[int], FieldMetadata(alias="fuelLevelBeforeMillipercent")
44
+ ] = pydantic.Field(default=None)
45
+ """
46
+ The fuel level before the sudden fuel level rise in millipercents.
47
+ """
48
+
49
+ location: typing.Optional[EventLocationResponseBody] = None
17
50
  vehicle: typing.Optional[AlertObjectVehicleResponseBody] = None
18
51
 
19
52
  if IS_PYDANTIC_V2:
@@ -29,6 +29,7 @@ from .inside_geofence_trigger_details_object_request_body import InsideGeofenceT
29
29
  from .out_of_route_details_object_request_body import OutOfRouteDetailsObjectRequestBody
30
30
  from .outside_geofence_trigger_details_object_request_body import OutsideGeofenceTriggerDetailsObjectRequestBody
31
31
  from .panic_button_details_object_request_body import PanicButtonDetailsObjectRequestBody
32
+ from .reading_trigger_details_object_request_body import ReadingTriggerDetailsObjectRequestBody
32
33
  from .route_stop_estimated_arrival_details_object_request_body import RouteStopEstimatedArrivalDetailsObjectRequestBody
33
34
  from .scheduled_maintenance_by_engine_hours_details_object_request_body import (
34
35
  ScheduledMaintenanceByEngineHoursDetailsObjectRequestBody,
@@ -123,6 +124,7 @@ class TriggerParamsObjectRequestBody(UniversalBaseModel):
123
124
  panic_button: typing_extensions.Annotated[
124
125
  typing.Optional[PanicButtonDetailsObjectRequestBody], FieldMetadata(alias="panicButton")
125
126
  ] = None
127
+ reading: typing.Optional[ReadingTriggerDetailsObjectRequestBody] = None
126
128
  route_stop_estimated_arrival: typing_extensions.Annotated[
127
129
  typing.Optional[RouteStopEstimatedArrivalDetailsObjectRequestBody],
128
130
  FieldMetadata(alias="routeStopEstimatedArrival"),
@@ -29,6 +29,7 @@ from .inside_geofence_trigger_details_object_response_body import InsideGeofence
29
29
  from .out_of_route_details_object_response_body import OutOfRouteDetailsObjectResponseBody
30
30
  from .outside_geofence_trigger_details_object_response_body import OutsideGeofenceTriggerDetailsObjectResponseBody
31
31
  from .panic_button_details_object_response_body import PanicButtonDetailsObjectResponseBody
32
+ from .reading_trigger_details_object_response_body import ReadingTriggerDetailsObjectResponseBody
32
33
  from .route_stop_estimated_arrival_details_object_response_body import (
33
34
  RouteStopEstimatedArrivalDetailsObjectResponseBody,
34
35
  )
@@ -125,6 +126,7 @@ class TriggerParamsObjectResponseBody(UniversalBaseModel):
125
126
  panic_button: typing_extensions.Annotated[
126
127
  typing.Optional[PanicButtonDetailsObjectResponseBody], FieldMetadata(alias="panicButton")
127
128
  ] = None
129
+ reading: typing.Optional[ReadingTriggerDetailsObjectResponseBody] = None
128
130
  route_stop_estimated_arrival: typing_extensions.Annotated[
129
131
  typing.Optional[RouteStopEstimatedArrivalDetailsObjectResponseBody],
130
132
  FieldMetadata(alias="routeStopEstimatedArrival"),
@@ -0,0 +1,39 @@
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 .unit_response_body_base_unit import UnitResponseBodyBaseUnit
10
+ from .unit_response_body_measurement_type import UnitResponseBodyMeasurementType
11
+
12
+
13
+ class UnitResponseBody(UniversalBaseModel):
14
+ """
15
+ Unit information
16
+ """
17
+
18
+ base_unit: typing_extensions.Annotated[
19
+ typing.Optional[UnitResponseBodyBaseUnit], FieldMetadata(alias="baseUnit")
20
+ ] = pydantic.Field(default=None)
21
+ """
22
+ Unit of measurement 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`
23
+ """
24
+
25
+ measurement_type: typing_extensions.Annotated[
26
+ typing.Optional[UnitResponseBodyMeasurementType], FieldMetadata(alias="measurementType")
27
+ ] = pydantic.Field(default=None)
28
+ """
29
+ Type of measurement Valid values: `acceleration`, `co2EmissionsPerVolumeRate`, `currency`, `distance`, `drySpreadRate`, `duration`, `energy`, `fuelEconomy`, `gaseousFuel`, `gaseousFuelEconomy`, `pressure`, `ratio`, `speed`, `temperature`, `time`, `voltage`, `volume`, `weight`, `wetSpreadRate`
30
+ """
31
+
32
+ if IS_PYDANTIC_V2:
33
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
34
+ else:
35
+
36
+ class Config:
37
+ frozen = True
38
+ smart_union = True
39
+ extra = pydantic.Extra.allow
@@ -0,0 +1,62 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ UnitResponseBodyBaseUnit = 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,28 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ UnitResponseBodyMeasurementType = typing.Union[
6
+ typing.Literal[
7
+ "acceleration",
8
+ "co2EmissionsPerVolumeRate",
9
+ "currency",
10
+ "distance",
11
+ "drySpreadRate",
12
+ "duration",
13
+ "energy",
14
+ "fuelEconomy",
15
+ "gaseousFuel",
16
+ "gaseousFuelEconomy",
17
+ "pressure",
18
+ "ratio",
19
+ "speed",
20
+ "temperature",
21
+ "time",
22
+ "voltage",
23
+ "volume",
24
+ "weight",
25
+ "wetSpreadRate",
26
+ ],
27
+ typing.Any,
28
+ ]
@@ -44,7 +44,7 @@ class UploadedMediaObjectResponseBody(UniversalBaseModel):
44
44
  UploadedMediaObjectResponseBodyTriggerReason, FieldMetadata(alias="triggerReason")
45
45
  ] = pydantic.Field()
46
46
  """
47
- Trigger reason for this media capture. Valid values: `api`, `panicButton`, `periodicStill`, `safetyEvent`, `tripEndStill`, `tripStartStill`, `videoRetrieval`
47
+ Trigger reason for this media capture. Valid values: `api`, `panicButton`, `periodicStill`, `rfidEvent`, `safetyEvent`, `tripEndStill`, `tripStartStill`, `videoRetrieval`
48
48
  """
49
49
 
50
50
  url_info: typing_extensions.Annotated[
@@ -4,7 +4,14 @@ import typing
4
4
 
5
5
  UploadedMediaObjectResponseBodyTriggerReason = typing.Union[
6
6
  typing.Literal[
7
- "api", "panicButton", "periodicStill", "safetyEvent", "tripEndStill", "tripStartStill", "videoRetrieval"
7
+ "api",
8
+ "panicButton",
9
+ "periodicStill",
10
+ "rfidEvent",
11
+ "safetyEvent",
12
+ "tripEndStill",
13
+ "tripStartStill",
14
+ "videoRetrieval",
8
15
  ],
9
16
  typing.Any,
10
17
  ]
@@ -0,0 +1,29 @@
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 V1Message(UniversalBaseModel):
12
+ driver_id: typing_extensions.Annotated[int, FieldMetadata(alias="driverId")] = pydantic.Field()
13
+ """
14
+ ID of the driver for whom the message is sent to or sent by.
15
+ """
16
+
17
+ text: str = pydantic.Field()
18
+ """
19
+ The text sent in the message.
20
+ """
21
+
22
+ if IS_PYDANTIC_V2:
23
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
24
+ else:
25
+
26
+ class Config:
27
+ frozen = True
28
+ smart_union = True
29
+ extra = pydantic.Extra.allow
@@ -0,0 +1,41 @@
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 .v_1_message_sender import V1MessageSender
10
+
11
+
12
+ class V1MessageResponse(UniversalBaseModel):
13
+ driver_id: typing_extensions.Annotated[int, FieldMetadata(alias="driverId")] = pydantic.Field()
14
+ """
15
+ ID of the driver for whom the message is sent to or sent by.
16
+ """
17
+
18
+ is_read: typing_extensions.Annotated[bool, FieldMetadata(alias="isRead")] = pydantic.Field()
19
+ """
20
+ True if the message was read by the recipient.
21
+ """
22
+
23
+ sender: V1MessageSender
24
+ sent_at_ms: typing_extensions.Annotated[int, FieldMetadata(alias="sentAtMs")] = pydantic.Field()
25
+ """
26
+ The time in Unix epoch milliseconds that the message is sent to the recipient.
27
+ """
28
+
29
+ text: str = pydantic.Field()
30
+ """
31
+ The text sent in the message.
32
+ """
33
+
34
+ if IS_PYDANTIC_V2:
35
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
36
+ else:
37
+
38
+ class Config:
39
+ frozen = True
40
+ smart_union = True
41
+ extra = pydantic.Extra.allow