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
@@ -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 ..core.serialization import convert_and_respect_annotation_metadata
@@ -21,6 +22,7 @@ from ..errors.unauthorized_error import UnauthorizedError
21
22
  from ..types.assets_location_link_config_object import AssetsLocationLinkConfigObject
22
23
  from ..types.assets_near_location_link_config_object import AssetsNearLocationLinkConfigObject
23
24
  from ..types.assets_on_route_link_config_object import AssetsOnRouteLinkConfigObject
25
+ from ..types.live_sharing_link_full_response_object_response_body import LiveSharingLinkFullResponseObjectResponseBody
24
26
  from ..types.live_sharing_links_create_live_sharing_link_response_body import (
25
27
  LiveSharingLinksCreateLiveSharingLinkResponseBody,
26
28
  )
@@ -51,7 +53,7 @@ class RawLiveSharesClient:
51
53
  limit: typing.Optional[int] = None,
52
54
  after: typing.Optional[str] = None,
53
55
  request_options: typing.Optional[RequestOptions] = None,
54
- ) -> HttpResponse[LiveSharingLinksGetLiveSharingLinksResponseBody]:
56
+ ) -> SyncPager[LiveSharingLinkFullResponseObjectResponseBody]:
55
57
  """
56
58
  Returns all non-expired Live Sharing Links.
57
59
 
@@ -81,7 +83,7 @@ class RawLiveSharesClient:
81
83
 
82
84
  Returns
83
85
  -------
84
- HttpResponse[LiveSharingLinksGetLiveSharingLinksResponseBody]
86
+ SyncPager[LiveSharingLinkFullResponseObjectResponseBody]
85
87
  OK response.
86
88
  """
87
89
  _response = self._client_wrapper.httpx_client.request(
@@ -97,14 +99,29 @@ class RawLiveSharesClient:
97
99
  )
98
100
  try:
99
101
  if 200 <= _response.status_code < 300:
100
- _data = typing.cast(
102
+ _parsed_response = typing.cast(
101
103
  LiveSharingLinksGetLiveSharingLinksResponseBody,
102
104
  parse_obj_as(
103
105
  type_=LiveSharingLinksGetLiveSharingLinksResponseBody, # type: ignore
104
106
  object_=_response.json(),
105
107
  ),
106
108
  )
107
- return HttpResponse(response=_response, data=_data)
109
+ _items = _parsed_response.data
110
+ _has_next = False
111
+ _get_next = None
112
+ if _parsed_response.pagination is not None:
113
+ _parsed_next = _parsed_response.pagination.end_cursor
114
+ _has_next = _parsed_next is not None and _parsed_next != ""
115
+ _get_next = lambda: self.list(
116
+ ids=ids,
117
+ type=type,
118
+ limit=limit,
119
+ after=_parsed_next,
120
+ request_options=request_options,
121
+ )
122
+ return SyncPager(
123
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
124
+ )
108
125
  if _response.status_code == 401:
109
126
  raise UnauthorizedError(
110
127
  headers=dict(_response.headers),
@@ -722,7 +739,7 @@ class AsyncRawLiveSharesClient:
722
739
  limit: typing.Optional[int] = None,
723
740
  after: typing.Optional[str] = None,
724
741
  request_options: typing.Optional[RequestOptions] = None,
725
- ) -> AsyncHttpResponse[LiveSharingLinksGetLiveSharingLinksResponseBody]:
742
+ ) -> AsyncPager[LiveSharingLinkFullResponseObjectResponseBody]:
726
743
  """
727
744
  Returns all non-expired Live Sharing Links.
728
745
 
@@ -752,7 +769,7 @@ class AsyncRawLiveSharesClient:
752
769
 
753
770
  Returns
754
771
  -------
755
- AsyncHttpResponse[LiveSharingLinksGetLiveSharingLinksResponseBody]
772
+ AsyncPager[LiveSharingLinkFullResponseObjectResponseBody]
756
773
  OK response.
757
774
  """
758
775
  _response = await self._client_wrapper.httpx_client.request(
@@ -768,14 +785,32 @@ class AsyncRawLiveSharesClient:
768
785
  )
769
786
  try:
770
787
  if 200 <= _response.status_code < 300:
771
- _data = typing.cast(
788
+ _parsed_response = typing.cast(
772
789
  LiveSharingLinksGetLiveSharingLinksResponseBody,
773
790
  parse_obj_as(
774
791
  type_=LiveSharingLinksGetLiveSharingLinksResponseBody, # type: ignore
775
792
  object_=_response.json(),
776
793
  ),
777
794
  )
778
- return AsyncHttpResponse(response=_response, data=_data)
795
+ _items = _parsed_response.data
796
+ _has_next = False
797
+ _get_next = None
798
+ if _parsed_response.pagination is not None:
799
+ _parsed_next = _parsed_response.pagination.end_cursor
800
+ _has_next = _parsed_next is not None and _parsed_next != ""
801
+
802
+ async def _get_next():
803
+ return await self.list(
804
+ ids=ids,
805
+ type=type,
806
+ limit=limit,
807
+ after=_parsed_next,
808
+ request_options=request_options,
809
+ )
810
+
811
+ return AsyncPager(
812
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
813
+ )
779
814
  if _response.status_code == 401:
780
815
  raise UnauthorizedError(
781
816
  headers=dict(_response.headers),
@@ -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.work_orders_get_service_tasks_response_body import WorkOrdersGetServiceTasksResponseBody
8
+ from ...types.service_task_definition_object_response_body import ServiceTaskDefinitionObjectResponseBody
8
9
  from .raw_client import AsyncRawServiceTasksClient, RawServiceTasksClient
9
10
 
10
11
 
@@ -30,7 +31,7 @@ class ServiceTasksClient:
30
31
  include_archived: typing.Optional[bool] = None,
31
32
  after: typing.Optional[str] = None,
32
33
  request_options: typing.Optional[RequestOptions] = None,
33
- ) -> WorkOrdersGetServiceTasksResponseBody:
34
+ ) -> SyncPager[ServiceTaskDefinitionObjectResponseBody]:
34
35
  """
35
36
  Gets service tasks.
36
37
 
@@ -57,7 +58,7 @@ class ServiceTasksClient:
57
58
 
58
59
  Returns
59
60
  -------
60
- WorkOrdersGetServiceTasksResponseBody
61
+ SyncPager[ServiceTaskDefinitionObjectResponseBody]
61
62
  OK response.
62
63
 
63
64
  Examples
@@ -67,12 +68,16 @@ class ServiceTasksClient:
67
68
  client = Samsara(
68
69
  token="YOUR_TOKEN",
69
70
  )
70
- client.maintenance.service_tasks.list()
71
+ response = client.maintenance.service_tasks.list()
72
+ for item in response:
73
+ yield item
74
+ # alternatively, you can paginate page-by-page
75
+ for page in response.iter_pages():
76
+ yield page
71
77
  """
72
- _response = self._raw_client.list(
78
+ return self._raw_client.list(
73
79
  ids=ids, include_archived=include_archived, after=after, request_options=request_options
74
80
  )
75
- return _response.data
76
81
 
77
82
  def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
78
83
  """
@@ -166,7 +171,7 @@ class AsyncServiceTasksClient:
166
171
  include_archived: typing.Optional[bool] = None,
167
172
  after: typing.Optional[str] = None,
168
173
  request_options: typing.Optional[RequestOptions] = None,
169
- ) -> WorkOrdersGetServiceTasksResponseBody:
174
+ ) -> AsyncPager[ServiceTaskDefinitionObjectResponseBody]:
170
175
  """
171
176
  Gets service tasks.
172
177
 
@@ -193,7 +198,7 @@ class AsyncServiceTasksClient:
193
198
 
194
199
  Returns
195
200
  -------
196
- WorkOrdersGetServiceTasksResponseBody
201
+ AsyncPager[ServiceTaskDefinitionObjectResponseBody]
197
202
  OK response.
198
203
 
199
204
  Examples
@@ -208,15 +213,20 @@ class AsyncServiceTasksClient:
208
213
 
209
214
 
210
215
  async def main() -> None:
211
- await client.maintenance.service_tasks.list()
216
+ response = await client.maintenance.service_tasks.list()
217
+ async for item in response:
218
+ yield item
219
+
220
+ # alternatively, you can paginate page-by-page
221
+ async for page in response.iter_pages():
222
+ yield page
212
223
 
213
224
 
214
225
  asyncio.run(main())
215
226
  """
216
- _response = await self._raw_client.list(
227
+ return await self._raw_client.list(
217
228
  ids=ids, include_archived=include_archived, after=after, request_options=request_options
218
229
  )
219
- return _response.data
220
230
 
221
231
  async def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
222
232
  """
@@ -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
@@ -17,6 +18,7 @@ from ...errors.not_implemented_error import NotImplementedError
17
18
  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
21
+ from ...types.service_task_definition_object_response_body import ServiceTaskDefinitionObjectResponseBody
20
22
  from ...types.work_orders_get_service_tasks_response_body import WorkOrdersGetServiceTasksResponseBody
21
23
 
22
24
 
@@ -31,7 +33,7 @@ class RawServiceTasksClient:
31
33
  include_archived: typing.Optional[bool] = None,
32
34
  after: typing.Optional[str] = None,
33
35
  request_options: typing.Optional[RequestOptions] = None,
34
- ) -> HttpResponse[WorkOrdersGetServiceTasksResponseBody]:
36
+ ) -> SyncPager[ServiceTaskDefinitionObjectResponseBody]:
35
37
  """
36
38
  Gets service tasks.
37
39
 
@@ -58,7 +60,7 @@ class RawServiceTasksClient:
58
60
 
59
61
  Returns
60
62
  -------
61
- HttpResponse[WorkOrdersGetServiceTasksResponseBody]
63
+ SyncPager[ServiceTaskDefinitionObjectResponseBody]
62
64
  OK response.
63
65
  """
64
66
  _response = self._client_wrapper.httpx_client.request(
@@ -73,14 +75,28 @@ class RawServiceTasksClient:
73
75
  )
74
76
  try:
75
77
  if 200 <= _response.status_code < 300:
76
- _data = typing.cast(
78
+ _parsed_response = typing.cast(
77
79
  WorkOrdersGetServiceTasksResponseBody,
78
80
  parse_obj_as(
79
81
  type_=WorkOrdersGetServiceTasksResponseBody, # type: ignore
80
82
  object_=_response.json(),
81
83
  ),
82
84
  )
83
- return HttpResponse(response=_response, data=_data)
85
+ _items = _parsed_response.data
86
+ _has_next = False
87
+ _get_next = None
88
+ if _parsed_response.pagination is not None:
89
+ _parsed_next = _parsed_response.pagination.end_cursor
90
+ _has_next = _parsed_next is not None and _parsed_next != ""
91
+ _get_next = lambda: self.list(
92
+ ids=ids,
93
+ include_archived=include_archived,
94
+ after=_parsed_next,
95
+ request_options=request_options,
96
+ )
97
+ return SyncPager(
98
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
99
+ )
84
100
  if _response.status_code == 401:
85
101
  raise UnauthorizedError(
86
102
  headers=dict(_response.headers),
@@ -269,7 +285,7 @@ class AsyncRawServiceTasksClient:
269
285
  include_archived: typing.Optional[bool] = None,
270
286
  after: typing.Optional[str] = None,
271
287
  request_options: typing.Optional[RequestOptions] = None,
272
- ) -> AsyncHttpResponse[WorkOrdersGetServiceTasksResponseBody]:
288
+ ) -> AsyncPager[ServiceTaskDefinitionObjectResponseBody]:
273
289
  """
274
290
  Gets service tasks.
275
291
 
@@ -296,7 +312,7 @@ class AsyncRawServiceTasksClient:
296
312
 
297
313
  Returns
298
314
  -------
299
- AsyncHttpResponse[WorkOrdersGetServiceTasksResponseBody]
315
+ AsyncPager[ServiceTaskDefinitionObjectResponseBody]
300
316
  OK response.
301
317
  """
302
318
  _response = await self._client_wrapper.httpx_client.request(
@@ -311,14 +327,31 @@ class AsyncRawServiceTasksClient:
311
327
  )
312
328
  try:
313
329
  if 200 <= _response.status_code < 300:
314
- _data = typing.cast(
330
+ _parsed_response = typing.cast(
315
331
  WorkOrdersGetServiceTasksResponseBody,
316
332
  parse_obj_as(
317
333
  type_=WorkOrdersGetServiceTasksResponseBody, # type: ignore
318
334
  object_=_response.json(),
319
335
  ),
320
336
  )
321
- return AsyncHttpResponse(response=_response, data=_data)
337
+ _items = _parsed_response.data
338
+ _has_next = False
339
+ _get_next = None
340
+ if _parsed_response.pagination is not None:
341
+ _parsed_next = _parsed_response.pagination.end_cursor
342
+ _has_next = _parsed_next is not None and _parsed_next != ""
343
+
344
+ async def _get_next():
345
+ return await self.list(
346
+ ids=ids,
347
+ include_archived=include_archived,
348
+ after=_parsed_next,
349
+ request_options=request_options,
350
+ )
351
+
352
+ return AsyncPager(
353
+ has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
354
+ )
322
355
  if _response.status_code == 401:
323
356
  raise UnauthorizedError(
324
357
  headers=dict(_response.headers),
@@ -4,15 +4,15 @@ import datetime as dt
4
4
  import typing
5
5
 
6
6
  from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
+ from ...core.pagination import AsyncPager, SyncPager
7
8
  from ...core.request_options import RequestOptions
8
9
  from ...types.service_task_instance_input_object_request_body import ServiceTaskInstanceInputObjectRequestBody
9
10
  from ...types.work_order_discount_object_request_body import WorkOrderDiscountObjectRequestBody
10
11
  from ...types.work_order_item_object_request_body import WorkOrderItemObjectRequestBody
12
+ from ...types.work_order_object_response_body import WorkOrderObjectResponseBody
11
13
  from ...types.work_order_tax_object_request_body import WorkOrderTaxObjectRequestBody
12
- from ...types.work_orders_get_work_orders_response_body import WorkOrdersGetWorkOrdersResponseBody
13
14
  from ...types.work_orders_patch_work_orders_response_body import WorkOrdersPatchWorkOrdersResponseBody
14
15
  from ...types.work_orders_post_work_orders_response_body import WorkOrdersPostWorkOrdersResponseBody
15
- from ...types.work_orders_stream_work_orders_response_body import WorkOrdersStreamWorkOrdersResponseBody
16
16
  from .raw_client import AsyncRawWorkOrdersClient, RawWorkOrdersClient
17
17
  from .types.work_orders_patch_work_orders_request_body_category import WorkOrdersPatchWorkOrdersRequestBodyCategory
18
18
  from .types.work_orders_patch_work_orders_request_body_priority import WorkOrdersPatchWorkOrdersRequestBodyPriority
@@ -46,7 +46,7 @@ class WorkOrdersClient:
46
46
  ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
47
47
  after: typing.Optional[str] = None,
48
48
  request_options: typing.Optional[RequestOptions] = None,
49
- ) -> WorkOrdersGetWorkOrdersResponseBody:
49
+ ) -> SyncPager[WorkOrderObjectResponseBody]:
50
50
  """
51
51
  Gets work orders.
52
52
 
@@ -70,7 +70,7 @@ class WorkOrdersClient:
70
70
 
71
71
  Returns
72
72
  -------
73
- WorkOrdersGetWorkOrdersResponseBody
73
+ SyncPager[WorkOrderObjectResponseBody]
74
74
  OK response.
75
75
 
76
76
  Examples
@@ -80,10 +80,14 @@ class WorkOrdersClient:
80
80
  client = Samsara(
81
81
  token="YOUR_TOKEN",
82
82
  )
83
- client.maintenance.work_orders.list()
83
+ response = client.maintenance.work_orders.list()
84
+ for item in response:
85
+ yield item
86
+ # alternatively, you can paginate page-by-page
87
+ for page in response.iter_pages():
88
+ yield page
84
89
  """
85
- _response = self._raw_client.list(ids=ids, after=after, request_options=request_options)
86
- return _response.data
90
+ return self._raw_client.list(ids=ids, after=after, request_options=request_options)
87
91
 
88
92
  def create(
89
93
  self,
@@ -355,7 +359,7 @@ class WorkOrdersClient:
355
359
  asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
356
360
  assigned_user_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
357
361
  request_options: typing.Optional[RequestOptions] = None,
358
- ) -> WorkOrdersStreamWorkOrdersResponseBody:
362
+ ) -> SyncPager[WorkOrderObjectResponseBody]:
359
363
  """
360
364
  Stream work orders.
361
365
 
@@ -391,7 +395,7 @@ class WorkOrdersClient:
391
395
 
392
396
  Returns
393
397
  -------
394
- WorkOrdersStreamWorkOrdersResponseBody
398
+ SyncPager[WorkOrderObjectResponseBody]
395
399
  OK response.
396
400
 
397
401
  Examples
@@ -401,11 +405,16 @@ class WorkOrdersClient:
401
405
  client = Samsara(
402
406
  token="YOUR_TOKEN",
403
407
  )
404
- client.maintenance.work_orders.stream(
408
+ response = client.maintenance.work_orders.stream(
405
409
  start_time="startTime",
406
410
  )
411
+ for item in response:
412
+ yield item
413
+ # alternatively, you can paginate page-by-page
414
+ for page in response.iter_pages():
415
+ yield page
407
416
  """
408
- _response = self._raw_client.stream(
417
+ return self._raw_client.stream(
409
418
  start_time=start_time,
410
419
  after=after,
411
420
  end_time=end_time,
@@ -414,7 +423,6 @@ class WorkOrdersClient:
414
423
  assigned_user_ids=assigned_user_ids,
415
424
  request_options=request_options,
416
425
  )
417
- return _response.data
418
426
 
419
427
 
420
428
  class AsyncWorkOrdersClient:
@@ -438,7 +446,7 @@ class AsyncWorkOrdersClient:
438
446
  ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
439
447
  after: typing.Optional[str] = None,
440
448
  request_options: typing.Optional[RequestOptions] = None,
441
- ) -> WorkOrdersGetWorkOrdersResponseBody:
449
+ ) -> AsyncPager[WorkOrderObjectResponseBody]:
442
450
  """
443
451
  Gets work orders.
444
452
 
@@ -462,7 +470,7 @@ class AsyncWorkOrdersClient:
462
470
 
463
471
  Returns
464
472
  -------
465
- WorkOrdersGetWorkOrdersResponseBody
473
+ AsyncPager[WorkOrderObjectResponseBody]
466
474
  OK response.
467
475
 
468
476
  Examples
@@ -477,13 +485,18 @@ class AsyncWorkOrdersClient:
477
485
 
478
486
 
479
487
  async def main() -> None:
480
- await client.maintenance.work_orders.list()
488
+ response = await client.maintenance.work_orders.list()
489
+ async for item in response:
490
+ yield item
491
+
492
+ # alternatively, you can paginate page-by-page
493
+ async for page in response.iter_pages():
494
+ yield page
481
495
 
482
496
 
483
497
  asyncio.run(main())
484
498
  """
485
- _response = await self._raw_client.list(ids=ids, after=after, request_options=request_options)
486
- return _response.data
499
+ return await self._raw_client.list(ids=ids, after=after, request_options=request_options)
487
500
 
488
501
  async def create(
489
502
  self,
@@ -779,7 +792,7 @@ class AsyncWorkOrdersClient:
779
792
  asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
780
793
  assigned_user_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
781
794
  request_options: typing.Optional[RequestOptions] = None,
782
- ) -> WorkOrdersStreamWorkOrdersResponseBody:
795
+ ) -> AsyncPager[WorkOrderObjectResponseBody]:
783
796
  """
784
797
  Stream work orders.
785
798
 
@@ -815,7 +828,7 @@ class AsyncWorkOrdersClient:
815
828
 
816
829
  Returns
817
830
  -------
818
- WorkOrdersStreamWorkOrdersResponseBody
831
+ AsyncPager[WorkOrderObjectResponseBody]
819
832
  OK response.
820
833
 
821
834
  Examples
@@ -830,14 +843,20 @@ class AsyncWorkOrdersClient:
830
843
 
831
844
 
832
845
  async def main() -> None:
833
- await client.maintenance.work_orders.stream(
846
+ response = await client.maintenance.work_orders.stream(
834
847
  start_time="startTime",
835
848
  )
849
+ async for item in response:
850
+ yield item
851
+
852
+ # alternatively, you can paginate page-by-page
853
+ async for page in response.iter_pages():
854
+ yield page
836
855
 
837
856
 
838
857
  asyncio.run(main())
839
858
  """
840
- _response = await self._raw_client.stream(
859
+ return await self._raw_client.stream(
841
860
  start_time=start_time,
842
861
  after=after,
843
862
  end_time=end_time,
@@ -846,4 +865,3 @@ class AsyncWorkOrdersClient:
846
865
  assigned_user_ids=assigned_user_ids,
847
866
  request_options=request_options,
848
867
  )
849
- return _response.data