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
@@ -3,8 +3,9 @@
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.equipment_list_response import EquipmentListResponse
8
+ from ..types.equipment_object import EquipmentObject
8
9
  from ..types.equipment_response import EquipmentResponse
9
10
  from .locations.client import AsyncLocationsClient, LocationsClient
10
11
  from .raw_client import AsyncRawEquipmentClient, RawEquipmentClient
@@ -37,13 +38,9 @@ class EquipmentClient:
37
38
  parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
38
39
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
39
40
  request_options: typing.Optional[RequestOptions] = None,
40
- ) -> EquipmentListResponse:
41
+ ) -> SyncPager[EquipmentObject]:
41
42
  """
42
- Returns a list of all equipment in an organization. Equipment objects represent powered assets connected to a [Samsara AG26](https://www.samsara.com/products/models/ag26) via an APWR, CAT, or J1939 cable. They are automatically created with a unique Samsara Equipment ID whenever an AG26 is activated in your organization.
43
-
44
- **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.
45
-
46
- To use this endpoint, select **Read Equipment** under the Equipment 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>
43
+ Returns a list of all equipment in an organization.
47
44
 
48
45
  Parameters
49
46
  ----------
@@ -64,7 +61,7 @@ class EquipmentClient:
64
61
 
65
62
  Returns
66
63
  -------
67
- EquipmentListResponse
64
+ SyncPager[EquipmentObject]
68
65
  List of all equipment objects, and pagination information
69
66
 
70
67
  Examples
@@ -74,12 +71,16 @@ class EquipmentClient:
74
71
  client = Samsara(
75
72
  token="YOUR_TOKEN",
76
73
  )
77
- client.equipment.list()
74
+ response = client.equipment.list()
75
+ for item in response:
76
+ yield item
77
+ # alternatively, you can paginate page-by-page
78
+ for page in response.iter_pages():
79
+ yield page
78
80
  """
79
- _response = self._raw_client.list(
81
+ return self._raw_client.list(
80
82
  limit=limit, after=after, parent_tag_ids=parent_tag_ids, tag_ids=tag_ids, request_options=request_options
81
83
  )
82
- return _response.data
83
84
 
84
85
  def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EquipmentResponse:
85
86
  """
@@ -143,13 +144,9 @@ class AsyncEquipmentClient:
143
144
  parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
144
145
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
145
146
  request_options: typing.Optional[RequestOptions] = None,
146
- ) -> EquipmentListResponse:
147
+ ) -> AsyncPager[EquipmentObject]:
147
148
  """
148
- Returns a list of all equipment in an organization. Equipment objects represent powered assets connected to a [Samsara AG26](https://www.samsara.com/products/models/ag26) via an APWR, CAT, or J1939 cable. They are automatically created with a unique Samsara Equipment ID whenever an AG26 is activated in your organization.
149
-
150
- **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.
151
-
152
- To use this endpoint, select **Read Equipment** under the Equipment 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>
149
+ Returns a list of all equipment in an organization.
153
150
 
154
151
  Parameters
155
152
  ----------
@@ -170,7 +167,7 @@ class AsyncEquipmentClient:
170
167
 
171
168
  Returns
172
169
  -------
173
- EquipmentListResponse
170
+ AsyncPager[EquipmentObject]
174
171
  List of all equipment objects, and pagination information
175
172
 
176
173
  Examples
@@ -185,15 +182,20 @@ class AsyncEquipmentClient:
185
182
 
186
183
 
187
184
  async def main() -> None:
188
- await client.equipment.list()
185
+ response = await client.equipment.list()
186
+ async for item in response:
187
+ yield item
188
+
189
+ # alternatively, you can paginate page-by-page
190
+ async for page in response.iter_pages():
191
+ yield page
189
192
 
190
193
 
191
194
  asyncio.run(main())
192
195
  """
193
- _response = await self._raw_client.list(
196
+ return await self._raw_client.list(
194
197
  limit=limit, after=after, parent_tag_ids=parent_tag_ids, tag_ids=tag_ids, request_options=request_options
195
198
  )
196
- return _response.data
197
199
 
198
200
  async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EquipmentResponse:
199
201
  """
@@ -3,9 +3,10 @@
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.equipment_locations_list_response import EquipmentLocationsListResponse
8
- from ...types.equipment_locations_response import EquipmentLocationsResponse
8
+ from ...types.equipment_locations_list_response_data import EquipmentLocationsListResponseData
9
+ from ...types.equipment_locations_response_data import EquipmentLocationsResponseData
9
10
  from .raw_client import AsyncRawLocationsClient, RawLocationsClient
10
11
 
11
12
 
@@ -32,7 +33,7 @@ class LocationsClient:
32
33
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
33
34
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
34
35
  request_options: typing.Optional[RequestOptions] = None,
35
- ) -> EquipmentLocationsResponse:
36
+ ) -> SyncPager[EquipmentLocationsResponseData]:
36
37
  """
37
38
  Returns last known locations for all equipment. This can be optionally filtered by tags or specific equipment IDs.
38
39
 
@@ -59,7 +60,7 @@ class LocationsClient:
59
60
 
60
61
  Returns
61
62
  -------
62
- EquipmentLocationsResponse
63
+ SyncPager[EquipmentLocationsResponseData]
63
64
  The most recent equipment locations and pagination information
64
65
 
65
66
  Examples
@@ -69,16 +70,20 @@ class LocationsClient:
69
70
  client = Samsara(
70
71
  token="YOUR_TOKEN",
71
72
  )
72
- client.equipment.locations.list()
73
+ response = client.equipment.locations.list()
74
+ for item in response:
75
+ yield item
76
+ # alternatively, you can paginate page-by-page
77
+ for page in response.iter_pages():
78
+ yield page
73
79
  """
74
- _response = self._raw_client.list(
80
+ return self._raw_client.list(
75
81
  after=after,
76
82
  parent_tag_ids=parent_tag_ids,
77
83
  tag_ids=tag_ids,
78
84
  equipment_ids=equipment_ids,
79
85
  request_options=request_options,
80
86
  )
81
- return _response.data
82
87
 
83
88
  def feed(
84
89
  self,
@@ -88,9 +93,9 @@ class LocationsClient:
88
93
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
89
94
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
90
95
  request_options: typing.Optional[RequestOptions] = None,
91
- ) -> EquipmentLocationsListResponse:
96
+ ) -> SyncPager[EquipmentLocationsListResponseData]:
92
97
  """
93
- Follow a continuous feed of all equipment locations from Samsara AG26s.
98
+ Follow a continuous feed of all equipment locations.
94
99
 
95
100
  Your first call to this endpoint will provide you with the most recent location for each unit of equipment and a `pagination` object that contains an `endCursor`.
96
101
 
@@ -121,7 +126,7 @@ class LocationsClient:
121
126
 
122
127
  Returns
123
128
  -------
124
- EquipmentLocationsListResponse
129
+ SyncPager[EquipmentLocationsListResponseData]
125
130
  The feed of equipment locations and pagination information
126
131
 
127
132
  Examples
@@ -131,16 +136,20 @@ class LocationsClient:
131
136
  client = Samsara(
132
137
  token="YOUR_TOKEN",
133
138
  )
134
- client.equipment.locations.feed()
139
+ response = client.equipment.locations.feed()
140
+ for item in response:
141
+ yield item
142
+ # alternatively, you can paginate page-by-page
143
+ for page in response.iter_pages():
144
+ yield page
135
145
  """
136
- _response = self._raw_client.feed(
146
+ return self._raw_client.feed(
137
147
  after=after,
138
148
  parent_tag_ids=parent_tag_ids,
139
149
  tag_ids=tag_ids,
140
150
  equipment_ids=equipment_ids,
141
151
  request_options=request_options,
142
152
  )
143
- return _response.data
144
153
 
145
154
  def history(
146
155
  self,
@@ -152,7 +161,7 @@ class LocationsClient:
152
161
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
153
162
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
154
163
  request_options: typing.Optional[RequestOptions] = None,
155
- ) -> EquipmentLocationsListResponse:
164
+ ) -> SyncPager[EquipmentLocationsListResponseData]:
156
165
  """
157
166
  Returns historical equipment locations during the given time range. This can be optionally filtered by tags or specific equipment IDs.
158
167
 
@@ -185,7 +194,7 @@ class LocationsClient:
185
194
 
186
195
  Returns
187
196
  -------
188
- EquipmentLocationsListResponse
197
+ SyncPager[EquipmentLocationsListResponseData]
189
198
  Historical equipment locations and pagination information
190
199
 
191
200
  Examples
@@ -195,12 +204,17 @@ class LocationsClient:
195
204
  client = Samsara(
196
205
  token="YOUR_TOKEN",
197
206
  )
198
- client.equipment.locations.history(
207
+ response = client.equipment.locations.history(
199
208
  start_time="startTime",
200
209
  end_time="endTime",
201
210
  )
211
+ for item in response:
212
+ yield item
213
+ # alternatively, you can paginate page-by-page
214
+ for page in response.iter_pages():
215
+ yield page
202
216
  """
203
- _response = self._raw_client.history(
217
+ return self._raw_client.history(
204
218
  start_time=start_time,
205
219
  end_time=end_time,
206
220
  after=after,
@@ -209,7 +223,6 @@ class LocationsClient:
209
223
  equipment_ids=equipment_ids,
210
224
  request_options=request_options,
211
225
  )
212
- return _response.data
213
226
 
214
227
 
215
228
  class AsyncLocationsClient:
@@ -235,7 +248,7 @@ class AsyncLocationsClient:
235
248
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
236
249
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
237
250
  request_options: typing.Optional[RequestOptions] = None,
238
- ) -> EquipmentLocationsResponse:
251
+ ) -> AsyncPager[EquipmentLocationsResponseData]:
239
252
  """
240
253
  Returns last known locations for all equipment. This can be optionally filtered by tags or specific equipment IDs.
241
254
 
@@ -262,7 +275,7 @@ class AsyncLocationsClient:
262
275
 
263
276
  Returns
264
277
  -------
265
- EquipmentLocationsResponse
278
+ AsyncPager[EquipmentLocationsResponseData]
266
279
  The most recent equipment locations and pagination information
267
280
 
268
281
  Examples
@@ -277,19 +290,24 @@ class AsyncLocationsClient:
277
290
 
278
291
 
279
292
  async def main() -> None:
280
- await client.equipment.locations.list()
293
+ response = await client.equipment.locations.list()
294
+ async for item in response:
295
+ yield item
296
+
297
+ # alternatively, you can paginate page-by-page
298
+ async for page in response.iter_pages():
299
+ yield page
281
300
 
282
301
 
283
302
  asyncio.run(main())
284
303
  """
285
- _response = await self._raw_client.list(
304
+ return await self._raw_client.list(
286
305
  after=after,
287
306
  parent_tag_ids=parent_tag_ids,
288
307
  tag_ids=tag_ids,
289
308
  equipment_ids=equipment_ids,
290
309
  request_options=request_options,
291
310
  )
292
- return _response.data
293
311
 
294
312
  async def feed(
295
313
  self,
@@ -299,9 +317,9 @@ class AsyncLocationsClient:
299
317
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
300
318
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
301
319
  request_options: typing.Optional[RequestOptions] = None,
302
- ) -> EquipmentLocationsListResponse:
320
+ ) -> AsyncPager[EquipmentLocationsListResponseData]:
303
321
  """
304
- Follow a continuous feed of all equipment locations from Samsara AG26s.
322
+ Follow a continuous feed of all equipment locations.
305
323
 
306
324
  Your first call to this endpoint will provide you with the most recent location for each unit of equipment and a `pagination` object that contains an `endCursor`.
307
325
 
@@ -332,7 +350,7 @@ class AsyncLocationsClient:
332
350
 
333
351
  Returns
334
352
  -------
335
- EquipmentLocationsListResponse
353
+ AsyncPager[EquipmentLocationsListResponseData]
336
354
  The feed of equipment locations and pagination information
337
355
 
338
356
  Examples
@@ -347,19 +365,24 @@ class AsyncLocationsClient:
347
365
 
348
366
 
349
367
  async def main() -> None:
350
- await client.equipment.locations.feed()
368
+ response = await client.equipment.locations.feed()
369
+ async for item in response:
370
+ yield item
371
+
372
+ # alternatively, you can paginate page-by-page
373
+ async for page in response.iter_pages():
374
+ yield page
351
375
 
352
376
 
353
377
  asyncio.run(main())
354
378
  """
355
- _response = await self._raw_client.feed(
379
+ return await self._raw_client.feed(
356
380
  after=after,
357
381
  parent_tag_ids=parent_tag_ids,
358
382
  tag_ids=tag_ids,
359
383
  equipment_ids=equipment_ids,
360
384
  request_options=request_options,
361
385
  )
362
- return _response.data
363
386
 
364
387
  async def history(
365
388
  self,
@@ -371,7 +394,7 @@ class AsyncLocationsClient:
371
394
  tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
372
395
  equipment_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
373
396
  request_options: typing.Optional[RequestOptions] = None,
374
- ) -> EquipmentLocationsListResponse:
397
+ ) -> AsyncPager[EquipmentLocationsListResponseData]:
375
398
  """
376
399
  Returns historical equipment locations during the given time range. This can be optionally filtered by tags or specific equipment IDs.
377
400
 
@@ -404,7 +427,7 @@ class AsyncLocationsClient:
404
427
 
405
428
  Returns
406
429
  -------
407
- EquipmentLocationsListResponse
430
+ AsyncPager[EquipmentLocationsListResponseData]
408
431
  Historical equipment locations and pagination information
409
432
 
410
433
  Examples
@@ -419,15 +442,21 @@ class AsyncLocationsClient:
419
442
 
420
443
 
421
444
  async def main() -> None:
422
- await client.equipment.locations.history(
445
+ response = await client.equipment.locations.history(
423
446
  start_time="startTime",
424
447
  end_time="endTime",
425
448
  )
449
+ async for item in response:
450
+ yield item
451
+
452
+ # alternatively, you can paginate page-by-page
453
+ async for page in response.iter_pages():
454
+ yield page
426
455
 
427
456
 
428
457
  asyncio.run(main())
429
458
  """
430
- _response = await self._raw_client.history(
459
+ return await self._raw_client.history(
431
460
  start_time=start_time,
432
461
  end_time=end_time,
433
462
  after=after,
@@ -436,4 +465,3 @@ class AsyncLocationsClient:
436
465
  equipment_ids=equipment_ids,
437
466
  request_options=request_options,
438
467
  )
439
- return _response.data