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/hos/raw_client.py CHANGED
@@ -6,6 +6,7 @@ from json.decoder import JSONDecodeError
6
6
  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
+ from ..core.pagination import AsyncPager, BaseHttpResponse, SyncPager
9
10
  from ..core.pydantic_utilities import parse_obj_as
10
11
  from ..core.request_options import RequestOptions
11
12
  from ..errors.bad_gateway_error import BadGatewayError
@@ -18,8 +19,12 @@ from ..errors.service_unavailable_error import ServiceUnavailableError
18
19
  from ..errors.too_many_requests_error import TooManyRequestsError
19
20
  from ..errors.unauthorized_error import UnauthorizedError
20
21
  from ..types.hos_clocks_response import HosClocksResponse
22
+ from ..types.hos_daily_logs_get_hos_daily_logs_response_body import HosDailyLogsGetHosDailyLogsResponseBody
23
+ from ..types.hos_daily_logs_object_response_body import HosDailyLogsObjectResponseBody
21
24
  from ..types.hos_logs_response import HosLogsResponse
22
25
  from ..types.hos_violations_get_hos_violations_response_body import HosViolationsGetHosViolationsResponseBody
26
+ from ..types.hos_violations_object_response_body import HosViolationsObjectResponseBody
27
+ from .types.hos_daily_logs_request_driver_activation_status import HosDailyLogsRequestDriverActivationStatus
23
28
 
24
29
 
25
30
  class RawHosClient:
@@ -95,6 +100,221 @@ class RawHosClient:
95
100
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
96
101
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
97
102
 
103
+ def daily_logs(
104
+ self,
105
+ *,
106
+ driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
107
+ start_date: typing.Optional[str] = None,
108
+ end_date: typing.Optional[str] = None,
109
+ tag_ids: typing.Optional[str] = None,
110
+ parent_tag_ids: typing.Optional[str] = None,
111
+ driver_activation_status: typing.Optional[HosDailyLogsRequestDriverActivationStatus] = None,
112
+ after: typing.Optional[str] = None,
113
+ expand: typing.Optional[typing.Literal["vehicle"]] = None,
114
+ request_options: typing.Optional[RequestOptions] = None,
115
+ ) -> SyncPager[HosDailyLogsObjectResponseBody]:
116
+ """
117
+ Get summarized daily Hours of Service charts for the specified drivers.
118
+
119
+ The time range for a log is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
120
+
121
+ The `startDate` and `endDate` parameters indicate the date range you'd like to retrieve daily logs for. A daily log will be returned if its `startTime` is on any of the days within in this date range (inclusive of `startDate` and `endDate`).
122
+
123
+ **Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
124
+
125
+ If you are using the legacy version of this endpoint and looking for its documentation, you can find it [here](https://www.samsara.com/api-legacy#operation/getFleetDriversHosDailyLogs).
126
+
127
+ <b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
128
+
129
+ To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance 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>
130
+
131
+
132
+ **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.
133
+
134
+ Parameters
135
+ ----------
136
+ driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
137
+ A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
138
+
139
+ start_date : typing.Optional[str]
140
+ A start date in YYYY-MM-DD. This is a date only without an associated time. Example: `2019-06-13`. This is a required field
141
+
142
+ end_date : typing.Optional[str]
143
+ An end date in YYYY-MM-DD. This is a date only without an associated time. Must be greater than or equal to the start date. Example: `2019-07-21`. This is a required field
144
+
145
+ tag_ids : typing.Optional[str]
146
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
147
+
148
+ parent_tag_ids : typing.Optional[str]
149
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
150
+
151
+ driver_activation_status : typing.Optional[HosDailyLogsRequestDriverActivationStatus]
152
+ If value is `deactivated`, only drivers that are deactivated will appear in the response. This parameter will default to `active` if not provided (fetching only active drivers). Valid values: `active`, `deactivated`
153
+
154
+ after : typing.Optional[str]
155
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
156
+
157
+ expand : typing.Optional[typing.Literal["vehicle"]]
158
+ Expands the specified value(s) in the response object. Expansion populates additional fields in an object, if supported. Unsupported fields are ignored. To expand multiple fields, input a comma-separated list.
159
+
160
+ Valid value: `vehicle` Valid values: `vehicle`
161
+
162
+ request_options : typing.Optional[RequestOptions]
163
+ Request-specific configuration.
164
+
165
+ Returns
166
+ -------
167
+ SyncPager[HosDailyLogsObjectResponseBody]
168
+ OK response.
169
+ """
170
+ _response = self._client_wrapper.httpx_client.request(
171
+ "fleet/hos/daily-logs",
172
+ method="GET",
173
+ params={
174
+ "driverIds": driver_ids,
175
+ "startDate": start_date,
176
+ "endDate": end_date,
177
+ "tagIds": tag_ids,
178
+ "parentTagIds": parent_tag_ids,
179
+ "driverActivationStatus": driver_activation_status,
180
+ "after": after,
181
+ "expand": expand,
182
+ },
183
+ request_options=request_options,
184
+ )
185
+ try:
186
+ if 200 <= _response.status_code < 300:
187
+ _parsed_response = typing.cast(
188
+ HosDailyLogsGetHosDailyLogsResponseBody,
189
+ parse_obj_as(
190
+ type_=HosDailyLogsGetHosDailyLogsResponseBody, # type: ignore
191
+ object_=_response.json(),
192
+ ),
193
+ )
194
+ _items = _parsed_response.data
195
+ _has_next = False
196
+ _get_next = None
197
+ if _parsed_response.pagination is not None:
198
+ _parsed_next = _parsed_response.pagination.end_cursor
199
+ _has_next = _parsed_next is not None and _parsed_next != ""
200
+ _get_next = lambda: self.daily_logs(
201
+ driver_ids=driver_ids,
202
+ start_date=start_date,
203
+ end_date=end_date,
204
+ tag_ids=tag_ids,
205
+ parent_tag_ids=parent_tag_ids,
206
+ driver_activation_status=driver_activation_status,
207
+ after=_parsed_next,
208
+ expand=expand,
209
+ request_options=request_options,
210
+ )
211
+ return SyncPager(
212
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
213
+ )
214
+ if _response.status_code == 401:
215
+ raise UnauthorizedError(
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
+ if _response.status_code == 404:
226
+ raise NotFoundError(
227
+ headers=dict(_response.headers),
228
+ body=typing.cast(
229
+ typing.Optional[typing.Any],
230
+ parse_obj_as(
231
+ type_=typing.Optional[typing.Any], # type: ignore
232
+ object_=_response.json(),
233
+ ),
234
+ ),
235
+ )
236
+ if _response.status_code == 405:
237
+ raise MethodNotAllowedError(
238
+ headers=dict(_response.headers),
239
+ body=typing.cast(
240
+ typing.Optional[typing.Any],
241
+ parse_obj_as(
242
+ type_=typing.Optional[typing.Any], # type: ignore
243
+ object_=_response.json(),
244
+ ),
245
+ ),
246
+ )
247
+ if _response.status_code == 429:
248
+ raise TooManyRequestsError(
249
+ headers=dict(_response.headers),
250
+ body=typing.cast(
251
+ typing.Optional[typing.Any],
252
+ parse_obj_as(
253
+ type_=typing.Optional[typing.Any], # type: ignore
254
+ object_=_response.json(),
255
+ ),
256
+ ),
257
+ )
258
+ if _response.status_code == 500:
259
+ raise InternalServerError(
260
+ headers=dict(_response.headers),
261
+ body=typing.cast(
262
+ typing.Optional[typing.Any],
263
+ parse_obj_as(
264
+ type_=typing.Optional[typing.Any], # type: ignore
265
+ object_=_response.json(),
266
+ ),
267
+ ),
268
+ )
269
+ if _response.status_code == 501:
270
+ raise NotImplementedError(
271
+ headers=dict(_response.headers),
272
+ body=typing.cast(
273
+ typing.Optional[typing.Any],
274
+ parse_obj_as(
275
+ type_=typing.Optional[typing.Any], # type: ignore
276
+ object_=_response.json(),
277
+ ),
278
+ ),
279
+ )
280
+ if _response.status_code == 502:
281
+ raise BadGatewayError(
282
+ headers=dict(_response.headers),
283
+ body=typing.cast(
284
+ typing.Optional[typing.Any],
285
+ parse_obj_as(
286
+ type_=typing.Optional[typing.Any], # type: ignore
287
+ object_=_response.json(),
288
+ ),
289
+ ),
290
+ )
291
+ if _response.status_code == 503:
292
+ raise ServiceUnavailableError(
293
+ headers=dict(_response.headers),
294
+ body=typing.cast(
295
+ typing.Optional[typing.Any],
296
+ parse_obj_as(
297
+ type_=typing.Optional[typing.Any], # type: ignore
298
+ object_=_response.json(),
299
+ ),
300
+ ),
301
+ )
302
+ if _response.status_code == 504:
303
+ raise GatewayTimeoutError(
304
+ headers=dict(_response.headers),
305
+ body=typing.cast(
306
+ typing.Optional[typing.Any],
307
+ parse_obj_as(
308
+ type_=typing.Optional[typing.Any], # type: ignore
309
+ object_=_response.json(),
310
+ ),
311
+ ),
312
+ )
313
+ _response_json = _response.json()
314
+ except JSONDecodeError:
315
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
316
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
317
+
98
318
  def logs(
99
319
  self,
100
320
  *,
@@ -184,7 +404,7 @@ class RawHosClient:
184
404
  types: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
185
405
  after: typing.Optional[str] = None,
186
406
  request_options: typing.Optional[RequestOptions] = None,
187
- ) -> HttpResponse[HosViolationsGetHosViolationsResponseBody]:
407
+ ) -> SyncPager[HosViolationsObjectResponseBody]:
188
408
  """
189
409
  Get active Hours of Service violations for the specified drivers.
190
410
 
@@ -229,7 +449,7 @@ class RawHosClient:
229
449
 
230
450
  Returns
231
451
  -------
232
- HttpResponse[HosViolationsGetHosViolationsResponseBody]
452
+ SyncPager[HosViolationsObjectResponseBody]
233
453
  OK response.
234
454
  """
235
455
  _response = self._client_wrapper.httpx_client.request(
@@ -248,14 +468,32 @@ class RawHosClient:
248
468
  )
249
469
  try:
250
470
  if 200 <= _response.status_code < 300:
251
- _data = typing.cast(
471
+ _parsed_response = typing.cast(
252
472
  HosViolationsGetHosViolationsResponseBody,
253
473
  parse_obj_as(
254
474
  type_=HosViolationsGetHosViolationsResponseBody, # type: ignore
255
475
  object_=_response.json(),
256
476
  ),
257
477
  )
258
- return HttpResponse(response=_response, data=_data)
478
+ _items = _parsed_response.data
479
+ _has_next = False
480
+ _get_next = None
481
+ if _parsed_response.pagination is not None:
482
+ _parsed_next = _parsed_response.pagination.end_cursor
483
+ _has_next = _parsed_next is not None and _parsed_next != ""
484
+ _get_next = lambda: self.violations(
485
+ driver_ids=driver_ids,
486
+ start_time=start_time,
487
+ end_time=end_time,
488
+ tag_ids=tag_ids,
489
+ parent_tag_ids=parent_tag_ids,
490
+ types=types,
491
+ after=_parsed_next,
492
+ request_options=request_options,
493
+ )
494
+ return SyncPager(
495
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
496
+ )
259
497
  if _response.status_code == 401:
260
498
  raise UnauthorizedError(
261
499
  headers=dict(_response.headers),
@@ -434,6 +672,224 @@ class AsyncRawHosClient:
434
672
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
435
673
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
436
674
 
675
+ async def daily_logs(
676
+ self,
677
+ *,
678
+ driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
679
+ start_date: typing.Optional[str] = None,
680
+ end_date: typing.Optional[str] = None,
681
+ tag_ids: typing.Optional[str] = None,
682
+ parent_tag_ids: typing.Optional[str] = None,
683
+ driver_activation_status: typing.Optional[HosDailyLogsRequestDriverActivationStatus] = None,
684
+ after: typing.Optional[str] = None,
685
+ expand: typing.Optional[typing.Literal["vehicle"]] = None,
686
+ request_options: typing.Optional[RequestOptions] = None,
687
+ ) -> AsyncPager[HosDailyLogsObjectResponseBody]:
688
+ """
689
+ Get summarized daily Hours of Service charts for the specified drivers.
690
+
691
+ The time range for a log is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
692
+
693
+ The `startDate` and `endDate` parameters indicate the date range you'd like to retrieve daily logs for. A daily log will be returned if its `startTime` is on any of the days within in this date range (inclusive of `startDate` and `endDate`).
694
+
695
+ **Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
696
+
697
+ If you are using the legacy version of this endpoint and looking for its documentation, you can find it [here](https://www.samsara.com/api-legacy#operation/getFleetDriversHosDailyLogs).
698
+
699
+ <b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
700
+
701
+ To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance 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>
702
+
703
+
704
+ **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.
705
+
706
+ Parameters
707
+ ----------
708
+ driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
709
+ A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
710
+
711
+ start_date : typing.Optional[str]
712
+ A start date in YYYY-MM-DD. This is a date only without an associated time. Example: `2019-06-13`. This is a required field
713
+
714
+ end_date : typing.Optional[str]
715
+ An end date in YYYY-MM-DD. This is a date only without an associated time. Must be greater than or equal to the start date. Example: `2019-07-21`. This is a required field
716
+
717
+ tag_ids : typing.Optional[str]
718
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
719
+
720
+ parent_tag_ids : typing.Optional[str]
721
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
722
+
723
+ driver_activation_status : typing.Optional[HosDailyLogsRequestDriverActivationStatus]
724
+ If value is `deactivated`, only drivers that are deactivated will appear in the response. This parameter will default to `active` if not provided (fetching only active drivers). Valid values: `active`, `deactivated`
725
+
726
+ after : typing.Optional[str]
727
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
728
+
729
+ expand : typing.Optional[typing.Literal["vehicle"]]
730
+ Expands the specified value(s) in the response object. Expansion populates additional fields in an object, if supported. Unsupported fields are ignored. To expand multiple fields, input a comma-separated list.
731
+
732
+ Valid value: `vehicle` Valid values: `vehicle`
733
+
734
+ request_options : typing.Optional[RequestOptions]
735
+ Request-specific configuration.
736
+
737
+ Returns
738
+ -------
739
+ AsyncPager[HosDailyLogsObjectResponseBody]
740
+ OK response.
741
+ """
742
+ _response = await self._client_wrapper.httpx_client.request(
743
+ "fleet/hos/daily-logs",
744
+ method="GET",
745
+ params={
746
+ "driverIds": driver_ids,
747
+ "startDate": start_date,
748
+ "endDate": end_date,
749
+ "tagIds": tag_ids,
750
+ "parentTagIds": parent_tag_ids,
751
+ "driverActivationStatus": driver_activation_status,
752
+ "after": after,
753
+ "expand": expand,
754
+ },
755
+ request_options=request_options,
756
+ )
757
+ try:
758
+ if 200 <= _response.status_code < 300:
759
+ _parsed_response = typing.cast(
760
+ HosDailyLogsGetHosDailyLogsResponseBody,
761
+ parse_obj_as(
762
+ type_=HosDailyLogsGetHosDailyLogsResponseBody, # type: ignore
763
+ object_=_response.json(),
764
+ ),
765
+ )
766
+ _items = _parsed_response.data
767
+ _has_next = False
768
+ _get_next = None
769
+ if _parsed_response.pagination is not None:
770
+ _parsed_next = _parsed_response.pagination.end_cursor
771
+ _has_next = _parsed_next is not None and _parsed_next != ""
772
+
773
+ async def _get_next():
774
+ return await self.daily_logs(
775
+ driver_ids=driver_ids,
776
+ start_date=start_date,
777
+ end_date=end_date,
778
+ tag_ids=tag_ids,
779
+ parent_tag_ids=parent_tag_ids,
780
+ driver_activation_status=driver_activation_status,
781
+ after=_parsed_next,
782
+ expand=expand,
783
+ request_options=request_options,
784
+ )
785
+
786
+ return AsyncPager(
787
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
788
+ )
789
+ if _response.status_code == 401:
790
+ raise UnauthorizedError(
791
+ headers=dict(_response.headers),
792
+ body=typing.cast(
793
+ typing.Optional[typing.Any],
794
+ parse_obj_as(
795
+ type_=typing.Optional[typing.Any], # type: ignore
796
+ object_=_response.json(),
797
+ ),
798
+ ),
799
+ )
800
+ if _response.status_code == 404:
801
+ raise NotFoundError(
802
+ headers=dict(_response.headers),
803
+ body=typing.cast(
804
+ typing.Optional[typing.Any],
805
+ parse_obj_as(
806
+ type_=typing.Optional[typing.Any], # type: ignore
807
+ object_=_response.json(),
808
+ ),
809
+ ),
810
+ )
811
+ if _response.status_code == 405:
812
+ raise MethodNotAllowedError(
813
+ headers=dict(_response.headers),
814
+ body=typing.cast(
815
+ typing.Optional[typing.Any],
816
+ parse_obj_as(
817
+ type_=typing.Optional[typing.Any], # type: ignore
818
+ object_=_response.json(),
819
+ ),
820
+ ),
821
+ )
822
+ if _response.status_code == 429:
823
+ raise TooManyRequestsError(
824
+ headers=dict(_response.headers),
825
+ body=typing.cast(
826
+ typing.Optional[typing.Any],
827
+ parse_obj_as(
828
+ type_=typing.Optional[typing.Any], # type: ignore
829
+ object_=_response.json(),
830
+ ),
831
+ ),
832
+ )
833
+ if _response.status_code == 500:
834
+ raise InternalServerError(
835
+ headers=dict(_response.headers),
836
+ body=typing.cast(
837
+ typing.Optional[typing.Any],
838
+ parse_obj_as(
839
+ type_=typing.Optional[typing.Any], # type: ignore
840
+ object_=_response.json(),
841
+ ),
842
+ ),
843
+ )
844
+ if _response.status_code == 501:
845
+ raise NotImplementedError(
846
+ headers=dict(_response.headers),
847
+ body=typing.cast(
848
+ typing.Optional[typing.Any],
849
+ parse_obj_as(
850
+ type_=typing.Optional[typing.Any], # type: ignore
851
+ object_=_response.json(),
852
+ ),
853
+ ),
854
+ )
855
+ if _response.status_code == 502:
856
+ raise BadGatewayError(
857
+ headers=dict(_response.headers),
858
+ body=typing.cast(
859
+ typing.Optional[typing.Any],
860
+ parse_obj_as(
861
+ type_=typing.Optional[typing.Any], # type: ignore
862
+ object_=_response.json(),
863
+ ),
864
+ ),
865
+ )
866
+ if _response.status_code == 503:
867
+ raise ServiceUnavailableError(
868
+ headers=dict(_response.headers),
869
+ body=typing.cast(
870
+ typing.Optional[typing.Any],
871
+ parse_obj_as(
872
+ type_=typing.Optional[typing.Any], # type: ignore
873
+ object_=_response.json(),
874
+ ),
875
+ ),
876
+ )
877
+ if _response.status_code == 504:
878
+ raise GatewayTimeoutError(
879
+ headers=dict(_response.headers),
880
+ body=typing.cast(
881
+ typing.Optional[typing.Any],
882
+ parse_obj_as(
883
+ type_=typing.Optional[typing.Any], # type: ignore
884
+ object_=_response.json(),
885
+ ),
886
+ ),
887
+ )
888
+ _response_json = _response.json()
889
+ except JSONDecodeError:
890
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
891
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
892
+
437
893
  async def logs(
438
894
  self,
439
895
  *,
@@ -523,7 +979,7 @@ class AsyncRawHosClient:
523
979
  types: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
524
980
  after: typing.Optional[str] = None,
525
981
  request_options: typing.Optional[RequestOptions] = None,
526
- ) -> AsyncHttpResponse[HosViolationsGetHosViolationsResponseBody]:
982
+ ) -> AsyncPager[HosViolationsObjectResponseBody]:
527
983
  """
528
984
  Get active Hours of Service violations for the specified drivers.
529
985
 
@@ -568,7 +1024,7 @@ class AsyncRawHosClient:
568
1024
 
569
1025
  Returns
570
1026
  -------
571
- AsyncHttpResponse[HosViolationsGetHosViolationsResponseBody]
1027
+ AsyncPager[HosViolationsObjectResponseBody]
572
1028
  OK response.
573
1029
  """
574
1030
  _response = await self._client_wrapper.httpx_client.request(
@@ -587,14 +1043,35 @@ class AsyncRawHosClient:
587
1043
  )
588
1044
  try:
589
1045
  if 200 <= _response.status_code < 300:
590
- _data = typing.cast(
1046
+ _parsed_response = typing.cast(
591
1047
  HosViolationsGetHosViolationsResponseBody,
592
1048
  parse_obj_as(
593
1049
  type_=HosViolationsGetHosViolationsResponseBody, # type: ignore
594
1050
  object_=_response.json(),
595
1051
  ),
596
1052
  )
597
- return AsyncHttpResponse(response=_response, data=_data)
1053
+ _items = _parsed_response.data
1054
+ _has_next = False
1055
+ _get_next = None
1056
+ if _parsed_response.pagination is not None:
1057
+ _parsed_next = _parsed_response.pagination.end_cursor
1058
+ _has_next = _parsed_next is not None and _parsed_next != ""
1059
+
1060
+ async def _get_next():
1061
+ return await self.violations(
1062
+ driver_ids=driver_ids,
1063
+ start_time=start_time,
1064
+ end_time=end_time,
1065
+ tag_ids=tag_ids,
1066
+ parent_tag_ids=parent_tag_ids,
1067
+ types=types,
1068
+ after=_parsed_next,
1069
+ request_options=request_options,
1070
+ )
1071
+
1072
+ return AsyncPager(
1073
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
1074
+ )
598
1075
  if _response.status_code == 401:
599
1076
  raise UnauthorizedError(
600
1077
  headers=dict(_response.headers),
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .hos_daily_logs_request_driver_activation_status import HosDailyLogsRequestDriverActivationStatus
6
+
7
+ __all__ = ["HosDailyLogsRequestDriverActivationStatus"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ HosDailyLogsRequestDriverActivationStatus = typing.Union[typing.Literal["active", "deactivated"], typing.Any]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .types import IdlingListRequestPtoState
6
+
7
+ __all__ = ["IdlingListRequestPtoState"]