samsara-api 0.0.1__py3-none-any.whl → 0.0.2__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 (343) 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/workflow_geofence_event_response_object_response_body.py +6 -0
  299. samsara/types/workflow_incident_details_object_response_body.py +2 -0
  300. samsara/types/workflow_trigger_object_request_body.py +1 -0
  301. samsara/types/workflow_trigger_object_response_body.py +1 -0
  302. samsara/user_roles/client.py +21 -11
  303. samsara/user_roles/raw_client.py +39 -9
  304. samsara/users/client.py +21 -11
  305. samsara/users/raw_client.py +39 -8
  306. samsara/v_1_messages/__init__.py +4 -0
  307. samsara/v_1_messages/client.py +258 -0
  308. samsara/v_1_messages/raw_client.py +273 -0
  309. samsara/vehicles/__init__.py +1 -2
  310. samsara/vehicles/client.py +31 -16
  311. samsara/vehicles/immobilizer/client.py +21 -13
  312. samsara/vehicles/immobilizer/raw_client.py +43 -9
  313. samsara/vehicles/locations/client.py +60 -32
  314. samsara/vehicles/locations/raw_client.py +132 -25
  315. samsara/vehicles/raw_client.py +61 -8
  316. samsara/vehicles/stats/client.py +66 -38
  317. samsara/vehicles/stats/raw_client.py +148 -31
  318. samsara/webhooks/client.py +21 -11
  319. samsara/webhooks/raw_client.py +41 -8
  320. samsara/webhooks/types/webhooks_post_webhooks_request_body_event_types_item.py +1 -0
  321. samsara_api-0.0.2.dist-info/METADATA +29 -0
  322. {samsara_api-0.0.1.dist-info → samsara_api-0.0.2.dist-info}/RECORD +328 -193
  323. samsara/beta/client.py +0 -161
  324. samsara/drivers/tachograph_activity/client.py +0 -186
  325. samsara/drivers/tachograph_activity/raw_client.py +0 -169
  326. samsara/hours_of_service/__init__.py +0 -7
  327. samsara/hours_of_service/client.py +0 -229
  328. samsara/hours_of_service/raw_client.py +0 -425
  329. samsara/hours_of_service/types/__init__.py +0 -9
  330. samsara/hours_of_service/types/hours_of_service_get_daily_logs_request_driver_activation_status.py +0 -7
  331. samsara/reports/ifta/vehicle/types/vehicle_get_request_quarter.py +0 -5
  332. samsara/reports/vehicles/fuel_energy/types/fuel_energy_get_request_energy_type.py +0 -5
  333. samsara/types/assets_create_asset_response_body_regulation_mode.py +0 -7
  334. samsara/types/assets_update_asset_response_body_regulation_mode.py +0 -7
  335. samsara/types/assets_update_asset_response_body_type.py +0 -7
  336. samsara/types/patch_shipping_docs_response_body_response_body.py +0 -93
  337. samsara_api-0.0.1.dist-info/METADATA +0 -214
  338. /samsara/{beta → forms}/__init__.py +0 -0
  339. /samsara/{drivers/tachograph_activity → readings}/__init__.py +0 -0
  340. /samsara/{drivers/tachograph_files → tachograph/driver}/__init__.py +0 -0
  341. /samsara/{vehicles/tachograph_files → tachograph/vehicles}/__init__.py +0 -0
  342. {samsara_api-0.0.1.dist-info → samsara_api-0.0.2.dist-info}/LICENSE +0 -0
  343. {samsara_api-0.0.1.dist-info → samsara_api-0.0.2.dist-info}/WHEEL +0 -0
samsara/dvirs/client.py CHANGED
@@ -3,9 +3,11 @@
3
3
  import typing
4
4
 
5
5
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ..core.pagination import AsyncPager, SyncPager
6
7
  from ..core.request_options import RequestOptions
7
- from ..types.dvir_get_dvirs_response_body import DvirGetDvirsResponseBody
8
+ from ..types.dvir_get_dvir_response_body import DvirGetDvirResponseBody
8
9
  from ..types.dvir_response import DvirResponse
10
+ from ..types.dvir_stream_response_data_response_body import DvirStreamResponseDataResponseBody
9
11
  from ..types.dvirs_list_response import DvirsListResponse
10
12
  from .raw_client import AsyncRawDvirsClient, RawDvirsClient
11
13
  from .types.create_dvir_request_safety_status import CreateDvirRequestSafetyStatus
@@ -39,7 +41,7 @@ class DvirsClient:
39
41
  end_time: typing.Optional[str] = None,
40
42
  safety_status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
41
43
  request_options: typing.Optional[RequestOptions] = None,
42
- ) -> DvirGetDvirsResponseBody:
44
+ ) -> SyncPager[DvirStreamResponseDataResponseBody]:
43
45
  """
44
46
  Returns a history/feed of changed DVIRs by updatedAtTime between startTime and endTime parameters. In case of missing `endTime` parameter it will return a never ending stream of data.
45
47
 
@@ -75,7 +77,7 @@ class DvirsClient:
75
77
 
76
78
  Returns
77
79
  -------
78
- DvirGetDvirsResponseBody
80
+ SyncPager[DvirStreamResponseDataResponseBody]
79
81
  OK response.
80
82
 
81
83
  Examples
@@ -85,11 +87,16 @@ class DvirsClient:
85
87
  client = Samsara(
86
88
  token="YOUR_TOKEN",
87
89
  )
88
- client.dvirs.stream(
90
+ response = client.dvirs.stream(
89
91
  start_time="startTime",
90
92
  )
93
+ for item in response:
94
+ yield item
95
+ # alternatively, you can paginate page-by-page
96
+ for page in response.iter_pages():
97
+ yield page
91
98
  """
92
- _response = self._raw_client.stream(
99
+ return self._raw_client.stream(
93
100
  start_time=start_time,
94
101
  after=after,
95
102
  limit=limit,
@@ -98,6 +105,52 @@ class DvirsClient:
98
105
  safety_status=safety_status,
99
106
  request_options=request_options,
100
107
  )
108
+
109
+ def get(
110
+ self,
111
+ id: str,
112
+ *,
113
+ include_external_ids: typing.Optional[bool] = None,
114
+ request_options: typing.Optional[RequestOptions] = None,
115
+ ) -> DvirGetDvirResponseBody:
116
+ """
117
+ Get a single DVIR by ID.
118
+
119
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
120
+
121
+ To use this endpoint, select **Read DVIRs** under the Maintenance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
122
+
123
+
124
+ **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
125
+
126
+ Parameters
127
+ ----------
128
+ id : str
129
+ Id of the DVIR.
130
+
131
+ include_external_ids : typing.Optional[bool]
132
+ Optional boolean indicating whether to return external IDs on supported entities
133
+
134
+ request_options : typing.Optional[RequestOptions]
135
+ Request-specific configuration.
136
+
137
+ Returns
138
+ -------
139
+ DvirGetDvirResponseBody
140
+ OK response.
141
+
142
+ Examples
143
+ --------
144
+ from samsara import Samsara
145
+
146
+ client = Samsara(
147
+ token="YOUR_TOKEN",
148
+ )
149
+ client.dvirs.get(
150
+ id="id",
151
+ )
152
+ """
153
+ _response = self._raw_client.get(id, include_external_ids=include_external_ids, request_options=request_options)
101
154
  return _response.data
102
155
 
103
156
  def create(
@@ -346,7 +399,7 @@ class AsyncDvirsClient:
346
399
  end_time: typing.Optional[str] = None,
347
400
  safety_status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
348
401
  request_options: typing.Optional[RequestOptions] = None,
349
- ) -> DvirGetDvirsResponseBody:
402
+ ) -> AsyncPager[DvirStreamResponseDataResponseBody]:
350
403
  """
351
404
  Returns a history/feed of changed DVIRs by updatedAtTime between startTime and endTime parameters. In case of missing `endTime` parameter it will return a never ending stream of data.
352
405
 
@@ -382,7 +435,7 @@ class AsyncDvirsClient:
382
435
 
383
436
  Returns
384
437
  -------
385
- DvirGetDvirsResponseBody
438
+ AsyncPager[DvirStreamResponseDataResponseBody]
386
439
  OK response.
387
440
 
388
441
  Examples
@@ -397,14 +450,20 @@ class AsyncDvirsClient:
397
450
 
398
451
 
399
452
  async def main() -> None:
400
- await client.dvirs.stream(
453
+ response = await client.dvirs.stream(
401
454
  start_time="startTime",
402
455
  )
456
+ async for item in response:
457
+ yield item
458
+
459
+ # alternatively, you can paginate page-by-page
460
+ async for page in response.iter_pages():
461
+ yield page
403
462
 
404
463
 
405
464
  asyncio.run(main())
406
465
  """
407
- _response = await self._raw_client.stream(
466
+ return await self._raw_client.stream(
408
467
  start_time=start_time,
409
468
  after=after,
410
469
  limit=limit,
@@ -413,6 +472,62 @@ class AsyncDvirsClient:
413
472
  safety_status=safety_status,
414
473
  request_options=request_options,
415
474
  )
475
+
476
+ async def get(
477
+ self,
478
+ id: str,
479
+ *,
480
+ include_external_ids: typing.Optional[bool] = None,
481
+ request_options: typing.Optional[RequestOptions] = None,
482
+ ) -> DvirGetDvirResponseBody:
483
+ """
484
+ Get a single DVIR by ID.
485
+
486
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
487
+
488
+ To use this endpoint, select **Read DVIRs** under the Maintenance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
489
+
490
+
491
+ **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
492
+
493
+ Parameters
494
+ ----------
495
+ id : str
496
+ Id of the DVIR.
497
+
498
+ include_external_ids : typing.Optional[bool]
499
+ Optional boolean indicating whether to return external IDs on supported entities
500
+
501
+ request_options : typing.Optional[RequestOptions]
502
+ Request-specific configuration.
503
+
504
+ Returns
505
+ -------
506
+ DvirGetDvirResponseBody
507
+ OK response.
508
+
509
+ Examples
510
+ --------
511
+ import asyncio
512
+
513
+ from samsara import AsyncSamsara
514
+
515
+ client = AsyncSamsara(
516
+ token="YOUR_TOKEN",
517
+ )
518
+
519
+
520
+ async def main() -> None:
521
+ await client.dvirs.get(
522
+ id="id",
523
+ )
524
+
525
+
526
+ asyncio.run(main())
527
+ """
528
+ _response = await self._raw_client.get(
529
+ id, include_external_ids=include_external_ids, request_options=request_options
530
+ )
416
531
  return _response.data
417
532
 
418
533
  async def create(
@@ -7,6 +7,7 @@ from ..core.api_error import ApiError
7
7
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
8
  from ..core.http_response import AsyncHttpResponse, HttpResponse
9
9
  from ..core.jsonable_encoder import jsonable_encoder
10
+ from ..core.pagination import AsyncPager, BaseHttpResponse, SyncPager
10
11
  from ..core.pydantic_utilities import parse_obj_as
11
12
  from ..core.request_options import RequestOptions
12
13
  from ..errors.bad_gateway_error import BadGatewayError
@@ -18,8 +19,10 @@ from ..errors.not_implemented_error import NotImplementedError
18
19
  from ..errors.service_unavailable_error import ServiceUnavailableError
19
20
  from ..errors.too_many_requests_error import TooManyRequestsError
20
21
  from ..errors.unauthorized_error import UnauthorizedError
22
+ from ..types.dvir_get_dvir_response_body import DvirGetDvirResponseBody
21
23
  from ..types.dvir_get_dvirs_response_body import DvirGetDvirsResponseBody
22
24
  from ..types.dvir_response import DvirResponse
25
+ from ..types.dvir_stream_response_data_response_body import DvirStreamResponseDataResponseBody
23
26
  from ..types.dvirs_list_response import DvirsListResponse
24
27
  from .types.create_dvir_request_safety_status import CreateDvirRequestSafetyStatus
25
28
 
@@ -41,7 +44,7 @@ class RawDvirsClient:
41
44
  end_time: typing.Optional[str] = None,
42
45
  safety_status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
43
46
  request_options: typing.Optional[RequestOptions] = None,
44
- ) -> HttpResponse[DvirGetDvirsResponseBody]:
47
+ ) -> SyncPager[DvirStreamResponseDataResponseBody]:
45
48
  """
46
49
  Returns a history/feed of changed DVIRs by updatedAtTime between startTime and endTime parameters. In case of missing `endTime` parameter it will return a never ending stream of data.
47
50
 
@@ -77,7 +80,7 @@ class RawDvirsClient:
77
80
 
78
81
  Returns
79
82
  -------
80
- HttpResponse[DvirGetDvirsResponseBody]
83
+ SyncPager[DvirStreamResponseDataResponseBody]
81
84
  OK response.
82
85
  """
83
86
  _response = self._client_wrapper.httpx_client.request(
@@ -95,13 +98,185 @@ class RawDvirsClient:
95
98
  )
96
99
  try:
97
100
  if 200 <= _response.status_code < 300:
98
- _data = typing.cast(
101
+ _parsed_response = typing.cast(
99
102
  DvirGetDvirsResponseBody,
100
103
  parse_obj_as(
101
104
  type_=DvirGetDvirsResponseBody, # type: ignore
102
105
  object_=_response.json(),
103
106
  ),
104
107
  )
108
+ _items = _parsed_response.data
109
+ _has_next = False
110
+ _get_next = None
111
+ if _parsed_response.pagination is not None:
112
+ _parsed_next = _parsed_response.pagination.end_cursor
113
+ _has_next = _parsed_next is not None and _parsed_next != ""
114
+ _get_next = lambda: self.stream(
115
+ start_time=start_time,
116
+ after=_parsed_next,
117
+ limit=limit,
118
+ include_external_ids=include_external_ids,
119
+ end_time=end_time,
120
+ safety_status=safety_status,
121
+ request_options=request_options,
122
+ )
123
+ return SyncPager(
124
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
125
+ )
126
+ if _response.status_code == 401:
127
+ raise UnauthorizedError(
128
+ headers=dict(_response.headers),
129
+ body=typing.cast(
130
+ typing.Optional[typing.Any],
131
+ parse_obj_as(
132
+ type_=typing.Optional[typing.Any], # type: ignore
133
+ object_=_response.json(),
134
+ ),
135
+ ),
136
+ )
137
+ if _response.status_code == 404:
138
+ raise NotFoundError(
139
+ headers=dict(_response.headers),
140
+ body=typing.cast(
141
+ typing.Optional[typing.Any],
142
+ parse_obj_as(
143
+ type_=typing.Optional[typing.Any], # type: ignore
144
+ object_=_response.json(),
145
+ ),
146
+ ),
147
+ )
148
+ if _response.status_code == 405:
149
+ raise MethodNotAllowedError(
150
+ headers=dict(_response.headers),
151
+ body=typing.cast(
152
+ typing.Optional[typing.Any],
153
+ parse_obj_as(
154
+ type_=typing.Optional[typing.Any], # type: ignore
155
+ object_=_response.json(),
156
+ ),
157
+ ),
158
+ )
159
+ if _response.status_code == 429:
160
+ raise TooManyRequestsError(
161
+ headers=dict(_response.headers),
162
+ body=typing.cast(
163
+ typing.Optional[typing.Any],
164
+ parse_obj_as(
165
+ type_=typing.Optional[typing.Any], # type: ignore
166
+ object_=_response.json(),
167
+ ),
168
+ ),
169
+ )
170
+ if _response.status_code == 500:
171
+ raise InternalServerError(
172
+ headers=dict(_response.headers),
173
+ body=typing.cast(
174
+ typing.Optional[typing.Any],
175
+ parse_obj_as(
176
+ type_=typing.Optional[typing.Any], # type: ignore
177
+ object_=_response.json(),
178
+ ),
179
+ ),
180
+ )
181
+ if _response.status_code == 501:
182
+ raise NotImplementedError(
183
+ headers=dict(_response.headers),
184
+ body=typing.cast(
185
+ typing.Optional[typing.Any],
186
+ parse_obj_as(
187
+ type_=typing.Optional[typing.Any], # type: ignore
188
+ object_=_response.json(),
189
+ ),
190
+ ),
191
+ )
192
+ if _response.status_code == 502:
193
+ raise BadGatewayError(
194
+ headers=dict(_response.headers),
195
+ body=typing.cast(
196
+ typing.Optional[typing.Any],
197
+ parse_obj_as(
198
+ type_=typing.Optional[typing.Any], # type: ignore
199
+ object_=_response.json(),
200
+ ),
201
+ ),
202
+ )
203
+ if _response.status_code == 503:
204
+ raise ServiceUnavailableError(
205
+ headers=dict(_response.headers),
206
+ body=typing.cast(
207
+ typing.Optional[typing.Any],
208
+ parse_obj_as(
209
+ type_=typing.Optional[typing.Any], # type: ignore
210
+ object_=_response.json(),
211
+ ),
212
+ ),
213
+ )
214
+ if _response.status_code == 504:
215
+ raise GatewayTimeoutError(
216
+ headers=dict(_response.headers),
217
+ body=typing.cast(
218
+ typing.Optional[typing.Any],
219
+ parse_obj_as(
220
+ type_=typing.Optional[typing.Any], # type: ignore
221
+ object_=_response.json(),
222
+ ),
223
+ ),
224
+ )
225
+ _response_json = _response.json()
226
+ except JSONDecodeError:
227
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
228
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
229
+
230
+ def get(
231
+ self,
232
+ id: str,
233
+ *,
234
+ include_external_ids: typing.Optional[bool] = None,
235
+ request_options: typing.Optional[RequestOptions] = None,
236
+ ) -> HttpResponse[DvirGetDvirResponseBody]:
237
+ """
238
+ Get a single DVIR by ID.
239
+
240
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
241
+
242
+ To use this endpoint, select **Read DVIRs** under the Maintenance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
243
+
244
+
245
+ **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
246
+
247
+ Parameters
248
+ ----------
249
+ id : str
250
+ Id of the DVIR.
251
+
252
+ include_external_ids : typing.Optional[bool]
253
+ Optional boolean indicating whether to return external IDs on supported entities
254
+
255
+ request_options : typing.Optional[RequestOptions]
256
+ Request-specific configuration.
257
+
258
+ Returns
259
+ -------
260
+ HttpResponse[DvirGetDvirResponseBody]
261
+ OK response.
262
+ """
263
+ _response = self._client_wrapper.httpx_client.request(
264
+ f"dvirs/{jsonable_encoder(id)}",
265
+ method="GET",
266
+ params={
267
+ "includeExternalIds": include_external_ids,
268
+ },
269
+ request_options=request_options,
270
+ )
271
+ try:
272
+ if 200 <= _response.status_code < 300:
273
+ _data = typing.cast(
274
+ DvirGetDvirResponseBody,
275
+ parse_obj_as(
276
+ type_=DvirGetDvirResponseBody, # type: ignore
277
+ object_=_response.json(),
278
+ ),
279
+ )
105
280
  return HttpResponse(response=_response, data=_data)
106
281
  if _response.status_code == 401:
107
282
  raise UnauthorizedError(
@@ -464,7 +639,7 @@ class AsyncRawDvirsClient:
464
639
  end_time: typing.Optional[str] = None,
465
640
  safety_status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
466
641
  request_options: typing.Optional[RequestOptions] = None,
467
- ) -> AsyncHttpResponse[DvirGetDvirsResponseBody]:
642
+ ) -> AsyncPager[DvirStreamResponseDataResponseBody]:
468
643
  """
469
644
  Returns a history/feed of changed DVIRs by updatedAtTime between startTime and endTime parameters. In case of missing `endTime` parameter it will return a never ending stream of data.
470
645
 
@@ -500,7 +675,7 @@ class AsyncRawDvirsClient:
500
675
 
501
676
  Returns
502
677
  -------
503
- AsyncHttpResponse[DvirGetDvirsResponseBody]
678
+ AsyncPager[DvirStreamResponseDataResponseBody]
504
679
  OK response.
505
680
  """
506
681
  _response = await self._client_wrapper.httpx_client.request(
@@ -518,13 +693,188 @@ class AsyncRawDvirsClient:
518
693
  )
519
694
  try:
520
695
  if 200 <= _response.status_code < 300:
521
- _data = typing.cast(
696
+ _parsed_response = typing.cast(
522
697
  DvirGetDvirsResponseBody,
523
698
  parse_obj_as(
524
699
  type_=DvirGetDvirsResponseBody, # type: ignore
525
700
  object_=_response.json(),
526
701
  ),
527
702
  )
703
+ _items = _parsed_response.data
704
+ _has_next = False
705
+ _get_next = None
706
+ if _parsed_response.pagination is not None:
707
+ _parsed_next = _parsed_response.pagination.end_cursor
708
+ _has_next = _parsed_next is not None and _parsed_next != ""
709
+
710
+ async def _get_next():
711
+ return await self.stream(
712
+ start_time=start_time,
713
+ after=_parsed_next,
714
+ limit=limit,
715
+ include_external_ids=include_external_ids,
716
+ end_time=end_time,
717
+ safety_status=safety_status,
718
+ request_options=request_options,
719
+ )
720
+
721
+ return AsyncPager(
722
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
723
+ )
724
+ if _response.status_code == 401:
725
+ raise UnauthorizedError(
726
+ headers=dict(_response.headers),
727
+ body=typing.cast(
728
+ typing.Optional[typing.Any],
729
+ parse_obj_as(
730
+ type_=typing.Optional[typing.Any], # type: ignore
731
+ object_=_response.json(),
732
+ ),
733
+ ),
734
+ )
735
+ if _response.status_code == 404:
736
+ raise NotFoundError(
737
+ headers=dict(_response.headers),
738
+ body=typing.cast(
739
+ typing.Optional[typing.Any],
740
+ parse_obj_as(
741
+ type_=typing.Optional[typing.Any], # type: ignore
742
+ object_=_response.json(),
743
+ ),
744
+ ),
745
+ )
746
+ if _response.status_code == 405:
747
+ raise MethodNotAllowedError(
748
+ headers=dict(_response.headers),
749
+ body=typing.cast(
750
+ typing.Optional[typing.Any],
751
+ parse_obj_as(
752
+ type_=typing.Optional[typing.Any], # type: ignore
753
+ object_=_response.json(),
754
+ ),
755
+ ),
756
+ )
757
+ if _response.status_code == 429:
758
+ raise TooManyRequestsError(
759
+ headers=dict(_response.headers),
760
+ body=typing.cast(
761
+ typing.Optional[typing.Any],
762
+ parse_obj_as(
763
+ type_=typing.Optional[typing.Any], # type: ignore
764
+ object_=_response.json(),
765
+ ),
766
+ ),
767
+ )
768
+ if _response.status_code == 500:
769
+ raise InternalServerError(
770
+ headers=dict(_response.headers),
771
+ body=typing.cast(
772
+ typing.Optional[typing.Any],
773
+ parse_obj_as(
774
+ type_=typing.Optional[typing.Any], # type: ignore
775
+ object_=_response.json(),
776
+ ),
777
+ ),
778
+ )
779
+ if _response.status_code == 501:
780
+ raise NotImplementedError(
781
+ headers=dict(_response.headers),
782
+ body=typing.cast(
783
+ typing.Optional[typing.Any],
784
+ parse_obj_as(
785
+ type_=typing.Optional[typing.Any], # type: ignore
786
+ object_=_response.json(),
787
+ ),
788
+ ),
789
+ )
790
+ if _response.status_code == 502:
791
+ raise BadGatewayError(
792
+ headers=dict(_response.headers),
793
+ body=typing.cast(
794
+ typing.Optional[typing.Any],
795
+ parse_obj_as(
796
+ type_=typing.Optional[typing.Any], # type: ignore
797
+ object_=_response.json(),
798
+ ),
799
+ ),
800
+ )
801
+ if _response.status_code == 503:
802
+ raise ServiceUnavailableError(
803
+ headers=dict(_response.headers),
804
+ body=typing.cast(
805
+ typing.Optional[typing.Any],
806
+ parse_obj_as(
807
+ type_=typing.Optional[typing.Any], # type: ignore
808
+ object_=_response.json(),
809
+ ),
810
+ ),
811
+ )
812
+ if _response.status_code == 504:
813
+ raise GatewayTimeoutError(
814
+ headers=dict(_response.headers),
815
+ body=typing.cast(
816
+ typing.Optional[typing.Any],
817
+ parse_obj_as(
818
+ type_=typing.Optional[typing.Any], # type: ignore
819
+ object_=_response.json(),
820
+ ),
821
+ ),
822
+ )
823
+ _response_json = _response.json()
824
+ except JSONDecodeError:
825
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
826
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
827
+
828
+ async def get(
829
+ self,
830
+ id: str,
831
+ *,
832
+ include_external_ids: typing.Optional[bool] = None,
833
+ request_options: typing.Optional[RequestOptions] = None,
834
+ ) -> AsyncHttpResponse[DvirGetDvirResponseBody]:
835
+ """
836
+ Get a single DVIR by ID.
837
+
838
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
839
+
840
+ To use this endpoint, select **Read DVIRs** under the Maintenance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
841
+
842
+
843
+ **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
844
+
845
+ Parameters
846
+ ----------
847
+ id : str
848
+ Id of the DVIR.
849
+
850
+ include_external_ids : typing.Optional[bool]
851
+ Optional boolean indicating whether to return external IDs on supported entities
852
+
853
+ request_options : typing.Optional[RequestOptions]
854
+ Request-specific configuration.
855
+
856
+ Returns
857
+ -------
858
+ AsyncHttpResponse[DvirGetDvirResponseBody]
859
+ OK response.
860
+ """
861
+ _response = await self._client_wrapper.httpx_client.request(
862
+ f"dvirs/{jsonable_encoder(id)}",
863
+ method="GET",
864
+ params={
865
+ "includeExternalIds": include_external_ids,
866
+ },
867
+ request_options=request_options,
868
+ )
869
+ try:
870
+ if 200 <= _response.status_code < 300:
871
+ _data = typing.cast(
872
+ DvirGetDvirResponseBody,
873
+ parse_obj_as(
874
+ type_=DvirGetDvirResponseBody, # type: ignore
875
+ object_=_response.json(),
876
+ ),
877
+ )
528
878
  return AsyncHttpResponse(response=_response, data=_data)
529
879
  if _response.status_code == 401:
530
880
  raise UnauthorizedError(
@@ -3,12 +3,12 @@
3
3
  # isort: skip_file
4
4
 
5
5
  from . import locations, stats
6
- from .stats import StatsFeedRequestTypesItem, StatsGetRequestTypesItem, StatsHistoryRequestTypesItem
6
+ from .stats import StatsFeedRequestTypesItem, StatsHistoryRequestTypesItem, StatsListRequestTypesItem
7
7
 
8
8
  __all__ = [
9
9
  "StatsFeedRequestTypesItem",
10
- "StatsGetRequestTypesItem",
11
10
  "StatsHistoryRequestTypesItem",
11
+ "StatsListRequestTypesItem",
12
12
  "locations",
13
13
  "stats",
14
14
  ]