samsara-api 3.0.0__py3-none-any.whl → 4.0.1__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 (1371) hide show
  1. samsara/__init__.py +7438 -2443
  2. samsara/addresses/__init__.py +31 -1
  3. samsara/addresses/client.py +19 -12
  4. samsara/addresses/raw_client.py +13 -16
  5. samsara/addresses/types/__init__.py +32 -2
  6. samsara/addresses/types/create_address_request_address_types_item.py +9 -1
  7. samsara/addresses/types/update_address_request_address_types_item.py +9 -1
  8. samsara/alerts/__init__.py +29 -3
  9. samsara/alerts/client.py +811 -8
  10. samsara/alerts/raw_client.py +1837 -0
  11. samsara/alerts/types/__init__.py +34 -0
  12. samsara/alerts/types/get_configurations_request_status.py +5 -0
  13. samsara/assets/__init__.py +40 -9
  14. samsara/assets/client.py +710 -23
  15. samsara/assets/raw_client.py +673 -6
  16. samsara/assets/types/__init__.py +38 -5
  17. samsara/attributes/__init__.py +50 -16
  18. samsara/attributes/client.py +82 -96
  19. samsara/attributes/raw_client.py +57 -104
  20. samsara/attributes/types/__init__.py +48 -14
  21. samsara/attributes/types/create_attribute_request_attribute_type.py +3 -1
  22. samsara/attributes/types/create_attribute_request_unit.py +42 -0
  23. samsara/attributes/types/delete_attribute_request_entity_type.py +5 -0
  24. samsara/attributes/types/get_attribute_request_entity_type.py +5 -0
  25. samsara/attributes/types/get_attributes_by_entity_type_request_entity_type.py +5 -0
  26. samsara/attributes/types/update_attribute_request_attribute_type.py +3 -1
  27. samsara/beta_ap_is/__init__.py +70 -0
  28. samsara/beta_ap_is/client.py +7119 -0
  29. samsara/beta_ap_is/raw_client.py +16518 -0
  30. samsara/beta_ap_is/types/__init__.py +70 -0
  31. samsara/beta_ap_is/types/functions_start_function_run_request_body_params_override.py +21 -0
  32. samsara/beta_ap_is/types/get_assets_inputs_request_type.py +27 -0
  33. samsara/beta_ap_is/types/get_driver_efficiency_request_driver_activation_status.py +5 -0
  34. samsara/beta_ap_is/types/get_hos_eld_events_request_driver_activation_status.py +5 -0
  35. samsara/beta_ap_is/types/get_jobs_request_status.py +5 -0
  36. samsara/beta_ap_is/types/get_qualification_records_stream_request_entity_type.py +5 -0
  37. samsara/beta_ap_is/types/get_qualification_types_request_entity_type.py +5 -0
  38. samsara/beta_ap_is/types/get_tag_group_safety_scores_request_score_type.py +5 -0
  39. samsara/beta_ap_is/types/get_tag_safety_scores_request_score_type.py +5 -0
  40. samsara/beta_ap_is/types/get_trips_request_completion_status.py +5 -0
  41. samsara/beta_ap_is/types/get_trips_request_query_by.py +5 -0
  42. samsara/carrier_proposed_assignments/client.py +38 -39
  43. samsara/carrier_proposed_assignments/raw_client.py +23 -61
  44. samsara/client.py +950 -152
  45. samsara/coaching/__init__.py +0 -3
  46. samsara/coaching/client.py +442 -8
  47. samsara/coaching/raw_client.py +1043 -0
  48. samsara/contacts/client.py +48 -51
  49. samsara/contacts/raw_client.py +29 -61
  50. samsara/core/__init__.py +76 -21
  51. samsara/core/client_wrapper.py +20 -10
  52. samsara/core/force_multipart.py +4 -2
  53. samsara/core/http_response.py +1 -1
  54. samsara/core/pagination.py +1 -1
  55. samsara/core/pydantic_utilities.py +7 -4
  56. samsara/documents/__init__.py +29 -3
  57. samsara/documents/client.py +294 -44
  58. samsara/documents/raw_client.py +503 -53
  59. samsara/documents/types/__init__.py +30 -1
  60. samsara/driver_qr_codes/client.py +306 -0
  61. samsara/driver_qr_codes/raw_client.py +928 -0
  62. samsara/driver_vehicle_assignments/__init__.py +32 -2
  63. samsara/driver_vehicle_assignments/client.py +47 -35
  64. samsara/driver_vehicle_assignments/raw_client.py +19 -19
  65. samsara/driver_vehicle_assignments/types/__init__.py +33 -3
  66. samsara/driver_vehicle_assignments/types/get_driver_vehicle_assignments_request_assignment_type.py +10 -0
  67. samsara/driver_vehicle_assignments/types/get_driver_vehicle_assignments_request_filter_by.py +5 -0
  68. samsara/drivers/__init__.py +38 -11
  69. samsara/drivers/client.py +139 -20
  70. samsara/drivers/raw_client.py +111 -6
  71. samsara/drivers/types/__init__.py +36 -4
  72. samsara/equipment/__init__.py +39 -7
  73. samsara/equipment/client.py +1001 -62
  74. samsara/equipment/raw_client.py +1010 -70
  75. samsara/equipment/types/__init__.py +44 -0
  76. samsara/equipment/types/get_equipment_stats_feed_request_types_item.py +19 -0
  77. samsara/equipment/types/get_equipment_stats_history_request_types_item.py +19 -0
  78. samsara/equipment/types/get_equipment_stats_request_types_item.py +19 -0
  79. samsara/errors/__init__.py +46 -9
  80. samsara/fleet/__init__.py +34 -0
  81. samsara/fleet/attributes/client.py +101 -0
  82. samsara/fleet/attributes/raw_client.py +74 -0
  83. samsara/fleet/client.py +63 -0
  84. samsara/fleet/raw_client.py +13 -0
  85. samsara/forms/__init__.py +30 -0
  86. samsara/forms/client.py +815 -2
  87. samsara/forms/raw_client.py +2091 -15
  88. samsara/forms/types/__init__.py +38 -0
  89. samsara/fuel_and_energy/__init__.py +46 -0
  90. samsara/fuel_and_energy/client.py +960 -0
  91. samsara/fuel_and_energy/raw_client.py +1925 -0
  92. samsara/fuel_and_energy/types/__init__.py +48 -0
  93. samsara/fuel_and_energy/types/fuel_purchase_post_fuel_purchase_request_body_fuel_grade.py +7 -0
  94. samsara/fuel_and_energy/types/get_fuel_energy_vehicle_reports_request_energy_type.py +5 -0
  95. samsara/gateways/client.py +29 -35
  96. samsara/gateways/raw_client.py +14 -45
  97. samsara/hours_of_service/__init__.py +34 -0
  98. samsara/hours_of_service/client.py +1002 -0
  99. samsara/hours_of_service/raw_client.py +1381 -0
  100. samsara/hours_of_service/types/__init__.py +36 -0
  101. samsara/hours_of_service/types/get_hos_daily_logs_request_driver_activation_status.py +5 -0
  102. samsara/hubs/client.py +1073 -0
  103. samsara/hubs/raw_client.py +2106 -0
  104. samsara/idling/__init__.py +29 -2
  105. samsara/idling/client.py +36 -30
  106. samsara/idling/raw_client.py +18 -72
  107. samsara/idling/types/__init__.py +29 -2
  108. samsara/idling/types/get_idling_events_request_pto_state.py +5 -0
  109. samsara/ifta/__init__.py +50 -2
  110. samsara/ifta/client.py +634 -3
  111. samsara/ifta/raw_client.py +1432 -0
  112. samsara/ifta/types/__init__.py +53 -0
  113. samsara/ifta/types/get_ifta_jurisdiction_reports_request_fuel_type.py +25 -0
  114. samsara/ifta/types/get_ifta_jurisdiction_reports_request_month.py +21 -0
  115. samsara/ifta/types/get_ifta_jurisdiction_reports_request_quarter.py +5 -0
  116. samsara/ifta/types/get_ifta_vehicle_reports_request_fuel_type.py +25 -0
  117. samsara/ifta/types/get_ifta_vehicle_reports_request_month.py +21 -0
  118. samsara/ifta/types/get_ifta_vehicle_reports_request_quarter.py +5 -0
  119. samsara/industrial/client.py +2167 -0
  120. samsara/industrial/raw_client.py +2463 -0
  121. samsara/issues/__init__.py +28 -1
  122. samsara/issues/client.py +39 -35
  123. samsara/issues/raw_client.py +24 -53
  124. samsara/issues/types/__init__.py +30 -1
  125. samsara/legacy/client.py +21 -95
  126. samsara/legacy/raw_client.py +25 -304
  127. samsara/legacy_ap_is/__init__.py +34 -0
  128. samsara/legacy_ap_is/client.py +879 -0
  129. samsara/legacy_ap_is/raw_client.py +1433 -0
  130. samsara/legacy_ap_is/types/__init__.py +38 -0
  131. samsara/legacy_ap_is/types/get_drivers_vehicle_assignments_request_driver_activation_status.py +7 -0
  132. samsara/live_sharing_links/__init__.py +37 -0
  133. samsara/live_sharing_links/client.py +548 -0
  134. samsara/live_sharing_links/raw_client.py +1389 -0
  135. samsara/live_sharing_links/types/__init__.py +40 -0
  136. samsara/live_sharing_links/types/get_live_sharing_links_request_type.py +7 -0
  137. samsara/location_and_speed/client.py +236 -0
  138. samsara/location_and_speed/raw_client.py +414 -0
  139. samsara/maintenance/__init__.py +30 -20
  140. samsara/maintenance/client.py +1198 -8
  141. samsara/maintenance/raw_client.py +2249 -0
  142. samsara/maintenance/types/__init__.py +34 -0
  143. samsara/media/__init__.py +52 -0
  144. samsara/media/client.py +500 -0
  145. samsara/media/raw_client.py +1082 -0
  146. samsara/media/types/__init__.py +54 -0
  147. samsara/media/types/list_uploaded_media_request_inputs_item.py +7 -0
  148. samsara/media/types/list_uploaded_media_request_media_types_item.py +5 -0
  149. samsara/media/types/list_uploaded_media_request_trigger_reasons_item.py +17 -0
  150. samsara/media/types/media_retrieval_post_media_retrieval_request_body_inputs_item.py +7 -0
  151. samsara/messages/client.py +272 -0
  152. samsara/messages/raw_client.py +273 -0
  153. samsara/organization_info/client.py +112 -0
  154. samsara/organization_info/raw_client.py +101 -0
  155. samsara/plans/client.py +312 -0
  156. samsara/plans/raw_client.py +700 -0
  157. samsara/preview_ap_is/client.py +367 -0
  158. samsara/preview_ap_is/raw_client.py +956 -0
  159. samsara/routes/__init__.py +0 -3
  160. samsara/routes/client.py +459 -50
  161. samsara/routes/raw_client.py +913 -140
  162. samsara/safety/client.py +662 -0
  163. samsara/safety/raw_client.py +869 -0
  164. samsara/sensors/__init__.py +34 -0
  165. samsara/sensors/client.py +680 -0
  166. samsara/sensors/raw_client.py +746 -0
  167. samsara/sensors/types/__init__.py +34 -0
  168. samsara/sensors/types/inline_object_6_fill_missing.py +5 -0
  169. samsara/settings/__init__.py +0 -3
  170. samsara/settings/client.py +579 -13
  171. samsara/settings/raw_client.py +1655 -0
  172. samsara/speeding_intervals/__init__.py +29 -2
  173. samsara/speeding_intervals/client.py +20 -28
  174. samsara/speeding_intervals/raw_client.py +16 -58
  175. samsara/speeding_intervals/types/__init__.py +31 -2
  176. samsara/speeding_intervals/types/get_speeding_intervals_request_query_by.py +5 -0
  177. samsara/tachograph_eu_only/client.py +494 -0
  178. samsara/tachograph_eu_only/raw_client.py +475 -0
  179. samsara/tags/client.py +53 -58
  180. samsara/tags/raw_client.py +29 -63
  181. samsara/trailer_assignments/client.py +331 -0
  182. samsara/trailer_assignments/raw_client.py +313 -0
  183. samsara/trailers/client.py +47 -47
  184. samsara/trailers/raw_client.py +18 -53
  185. samsara/trips/__init__.py +0 -3
  186. samsara/trips/client.py +55 -111
  187. samsara/trips/raw_client.py +58 -349
  188. samsara/types/__init__.py +10049 -4134
  189. samsara/types/address.py +5 -5
  190. samsara/types/address_address_types_item.py +9 -1
  191. samsara/types/address_external_ids.py +21 -0
  192. samsara/types/aemp_equipment_get_aemp_equipment_list_bad_gateway_error_response_body.py +33 -0
  193. samsara/types/aemp_equipment_get_aemp_equipment_list_gateway_timeout_error_response_body.py +33 -0
  194. samsara/types/aemp_equipment_get_aemp_equipment_list_internal_server_error_response_body.py +33 -0
  195. samsara/types/aemp_equipment_get_aemp_equipment_list_method_not_allowed_error_response_body.py +33 -0
  196. samsara/types/aemp_equipment_get_aemp_equipment_list_not_found_error_response_body.py +33 -0
  197. samsara/types/aemp_equipment_get_aemp_equipment_list_not_implemented_error_response_body.py +33 -0
  198. samsara/types/aemp_equipment_get_aemp_equipment_list_response_body.py +22 -0
  199. samsara/types/aemp_equipment_get_aemp_equipment_list_service_unavailable_error_response_body.py +33 -0
  200. samsara/types/aemp_equipment_get_aemp_equipment_list_too_many_requests_error_response_body.py +33 -0
  201. samsara/types/aemp_equipment_get_aemp_equipment_list_unauthorized_error_response_body.py +33 -0
  202. samsara/types/aemp_equipment_with_additional_fields_response_body.py +48 -0
  203. samsara/types/aemp_fleet_list_response_body.py +49 -0
  204. samsara/types/aemp_link_response_body.py +31 -0
  205. samsara/types/anticipation_brake_event_count.py +3 -0
  206. samsara/types/appointment_window_request_body.py +34 -0
  207. samsara/types/appointment_window_response_body.py +34 -0
  208. samsara/types/asset_data_input.py +45 -0
  209. samsara/types/asset_data_input_last_point.py +28 -0
  210. samsara/types/asset_data_output.py +45 -0
  211. samsara/types/asset_data_outputs_patch_asset_data_outputs_bad_gateway_error_response_body.py +33 -0
  212. samsara/types/asset_data_outputs_patch_asset_data_outputs_gateway_timeout_error_response_body.py +33 -0
  213. samsara/types/asset_data_outputs_patch_asset_data_outputs_internal_server_error_response_body.py +33 -0
  214. samsara/types/asset_data_outputs_patch_asset_data_outputs_method_not_allowed_error_response_body.py +33 -0
  215. samsara/types/asset_data_outputs_patch_asset_data_outputs_not_found_error_response_body.py +33 -0
  216. samsara/types/asset_data_outputs_patch_asset_data_outputs_not_implemented_error_response_body.py +33 -0
  217. samsara/types/asset_data_outputs_patch_asset_data_outputs_response_body.py +23 -0
  218. samsara/types/asset_data_outputs_patch_asset_data_outputs_service_unavailable_error_response_body.py +33 -0
  219. samsara/types/asset_data_outputs_patch_asset_data_outputs_too_many_requests_error_response_body.py +33 -0
  220. samsara/types/asset_data_outputs_patch_asset_data_outputs_unauthorized_error_response_body.py +33 -0
  221. samsara/types/asset_location.py +35 -0
  222. samsara/types/asset_name.py +3 -0
  223. samsara/types/asset_response.py +71 -0
  224. samsara/types/asset_response_body.py +7 -0
  225. samsara/types/asset_response_location_data_input.py +26 -0
  226. samsara/types/asset_response_parent_asset.py +26 -0
  227. samsara/types/asset_response_running_status_data_input.py +26 -0
  228. samsara/types/assets_location_link_request_config_object.py +39 -0
  229. samsara/types/assets_location_link_response_config_object_response_body.py +40 -0
  230. samsara/types/attribute.py +10 -12
  231. samsara/types/attribute_attribute_type.py +3 -1
  232. samsara/types/attribute_entity.py +3 -3
  233. samsara/types/attribute_unit.py +42 -0
  234. samsara/types/base_route_response_object_response_body.py +7 -0
  235. samsara/types/coasting_duration_ms.py +3 -0
  236. samsara/types/continuous_reading_alert_threshold_response_body.py +1 -1
  237. samsara/types/continuous_reading_alert_threshold_response_body_unit.py +15 -0
  238. samsara/types/create_driver_auth_token_response_response_body.py +33 -0
  239. samsara/types/cruise_control_duration_ms.py +3 -0
  240. samsara/types/cumulative_operating_hours_response_body.py +35 -0
  241. samsara/types/custom_metadata.py +5 -0
  242. samsara/types/data_input_list_response.py +26 -0
  243. samsara/types/data_input_response.py +19 -0
  244. samsara/types/data_input_response_all_of.py +59 -0
  245. samsara/types/data_input_snapshot.py +19 -0
  246. samsara/types/data_input_snapshot_all_of.py +40 -0
  247. samsara/types/data_input_snapshot_response.py +26 -0
  248. samsara/types/data_input_tiny_response.py +52 -0
  249. samsara/types/data_inputs_tiny_response.py +26 -0
  250. samsara/types/def_remaining_response_body.py +35 -0
  251. samsara/types/detection_log_asset_object_response_body.py +43 -0
  252. samsara/types/detection_log_detection_object_response_body.py +65 -0
  253. samsara/types/detection_log_detection_object_response_body_trigger_detection_label.py +33 -0
  254. samsara/types/detection_log_driver_object_response_body.py +52 -0
  255. samsara/types/detection_log_get_detections_bad_gateway_error_response_body.py +33 -0
  256. samsara/types/detection_log_get_detections_gateway_timeout_error_response_body.py +33 -0
  257. samsara/types/detection_log_get_detections_internal_server_error_response_body.py +33 -0
  258. samsara/types/detection_log_get_detections_method_not_allowed_error_response_body.py +33 -0
  259. samsara/types/detection_log_get_detections_not_found_error_response_body.py +33 -0
  260. samsara/types/detection_log_get_detections_not_implemented_error_response_body.py +33 -0
  261. samsara/types/detection_log_get_detections_response_body.py +26 -0
  262. samsara/types/detection_log_get_detections_service_unavailable_error_response_body.py +33 -0
  263. samsara/types/detection_log_get_detections_too_many_requests_error_response_body.py +33 -0
  264. samsara/types/detection_log_get_detections_unauthorized_error_response_body.py +33 -0
  265. samsara/types/detection_log_safety_event_object_response_body.py +39 -0
  266. samsara/types/detection_log_safety_event_object_response_body_inbox_filter_reason.py +21 -0
  267. samsara/types/device_response_response_body.py +1 -1
  268. samsara/types/device_response_response_body_model.py +5 -0
  269. samsara/types/distance_driven_meters.py +3 -0
  270. samsara/types/distance_response_body.py +42 -0
  271. samsara/types/drive_time_duration_ms.py +3 -0
  272. samsara/types/driver.py +8 -0
  273. samsara/types/driver_app_sign_in_response_body.py +6 -0
  274. samsara/types/driver_efficiencies_response.py +26 -0
  275. samsara/types/driver_efficiencies_response_data.py +42 -0
  276. samsara/types/driver_efficiency.py +79 -0
  277. samsara/types/driver_efficiency_data_object_response_body.py +84 -0
  278. samsara/types/driver_efficiency_difficulty_score_data_object_response_body.py +44 -0
  279. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_bad_gateway_error_response_body.py +33 -0
  280. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_gateway_timeout_error_response_body.py +33 -0
  281. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_internal_server_error_response_body.py +33 -0
  282. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_method_not_allowed_error_response_body.py +33 -0
  283. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_not_found_error_response_body.py +33 -0
  284. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_not_implemented_error_response_body.py +33 -0
  285. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_response_body.py +28 -0
  286. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_service_unavailable_error_response_body.py +33 -0
  287. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_too_many_requests_error_response_body.py +33 -0
  288. samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_unauthorized_error_response_body.py +33 -0
  289. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_bad_gateway_error_response_body.py +33 -0
  290. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_gateway_timeout_error_response_body.py +33 -0
  291. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_internal_server_error_response_body.py +33 -0
  292. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_method_not_allowed_error_response_body.py +33 -0
  293. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_not_found_error_response_body.py +33 -0
  294. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_not_implemented_error_response_body.py +33 -0
  295. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_response_body.py +28 -0
  296. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_service_unavailable_error_response_body.py +33 -0
  297. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_too_many_requests_error_response_body.py +33 -0
  298. samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_unauthorized_error_response_body.py +33 -0
  299. samsara/types/driver_efficiency_percentage_data_object_response_body.py +84 -0
  300. samsara/types/driver_efficiency_raw_data_object_response_body.py +119 -0
  301. samsara/types/driver_has_vehicle_unpinning_enabled.py +3 -0
  302. samsara/types/driver_profile_image_base_64.py +3 -0
  303. samsara/types/driver_profile_image_url.py +3 -0
  304. samsara/types/driver_safety_score_response_body.py +59 -0
  305. samsara/types/drivers_auth_token_create_driver_auth_token_bad_gateway_error_response_body.py +33 -0
  306. samsara/types/drivers_auth_token_create_driver_auth_token_gateway_timeout_error_response_body.py +33 -0
  307. samsara/types/drivers_auth_token_create_driver_auth_token_internal_server_error_response_body.py +33 -0
  308. samsara/types/drivers_auth_token_create_driver_auth_token_method_not_allowed_error_response_body.py +33 -0
  309. samsara/types/drivers_auth_token_create_driver_auth_token_not_found_error_response_body.py +33 -0
  310. samsara/types/drivers_auth_token_create_driver_auth_token_not_implemented_error_response_body.py +33 -0
  311. samsara/types/drivers_auth_token_create_driver_auth_token_response_body.py +20 -0
  312. samsara/types/drivers_auth_token_create_driver_auth_token_service_unavailable_error_response_body.py +33 -0
  313. samsara/types/drivers_auth_token_create_driver_auth_token_too_many_requests_error_response_body.py +33 -0
  314. samsara/types/drivers_auth_token_create_driver_auth_token_unauthorized_error_response_body.py +33 -0
  315. samsara/types/engine_immobilizer_update_engine_immobilizer_state_bad_gateway_error_response_body.py +33 -0
  316. samsara/types/engine_immobilizer_update_engine_immobilizer_state_gateway_timeout_error_response_body.py +33 -0
  317. samsara/types/engine_immobilizer_update_engine_immobilizer_state_internal_server_error_response_body.py +33 -0
  318. samsara/types/engine_immobilizer_update_engine_immobilizer_state_method_not_allowed_error_response_body.py +33 -0
  319. samsara/types/engine_immobilizer_update_engine_immobilizer_state_not_found_error_response_body.py +33 -0
  320. samsara/types/engine_immobilizer_update_engine_immobilizer_state_not_implemented_error_response_body.py +33 -0
  321. samsara/types/engine_immobilizer_update_engine_immobilizer_state_service_unavailable_error_response_body.py +33 -0
  322. samsara/types/engine_immobilizer_update_engine_immobilizer_state_too_many_requests_error_response_body.py +33 -0
  323. samsara/types/engine_immobilizer_update_engine_immobilizer_state_unauthorized_error_response_body.py +33 -0
  324. samsara/types/engine_status_response_body.py +35 -0
  325. samsara/types/equipment_header_with_additional_fields_response_body.py +63 -0
  326. samsara/types/equipment_patch_equipment_bad_gateway_error_response_body.py +33 -0
  327. samsara/types/equipment_patch_equipment_gateway_timeout_error_response_body.py +33 -0
  328. samsara/types/equipment_patch_equipment_internal_server_error_response_body.py +33 -0
  329. samsara/types/equipment_patch_equipment_method_not_allowed_error_response_body.py +33 -0
  330. samsara/types/equipment_patch_equipment_not_found_error_response_body.py +33 -0
  331. samsara/types/equipment_patch_equipment_not_implemented_error_response_body.py +33 -0
  332. samsara/types/equipment_patch_equipment_response_body.py +20 -0
  333. samsara/types/equipment_patch_equipment_service_unavailable_error_response_body.py +33 -0
  334. samsara/types/equipment_patch_equipment_too_many_requests_error_response_body.py +33 -0
  335. samsara/types/equipment_patch_equipment_unauthorized_error_response_body.py +33 -0
  336. samsara/types/equipment_with_attributes_response_object_response_body.py +68 -0
  337. samsara/types/extended_driver_tiny_response.py +46 -0
  338. samsara/types/extended_driver_tiny_response_external_ids.py +21 -0
  339. samsara/types/fft_spectra_data_point.py +30 -0
  340. samsara/types/fft_spectra_data_point_fft_spectra.py +41 -0
  341. samsara/types/fleet_device_object_response_body.py +31 -0
  342. samsara/types/form_submission_request_media_item_object_request_body.py +33 -0
  343. samsara/types/form_submission_request_media_value_object_request_body.py +31 -0
  344. samsara/types/form_submission_request_signature_value_object_request_body.py +24 -0
  345. samsara/types/form_template_response_object_response_body.py +10 -0
  346. samsara/types/form_template_response_object_response_body_form_category.py +7 -0
  347. samsara/types/form_updated_response_body.py +24 -0
  348. samsara/types/fuel_consumed_ml.py +3 -0
  349. samsara/types/fuel_remaining_response_body.py +35 -0
  350. samsara/types/functions_start_function_run_bad_gateway_error_response_body.py +33 -0
  351. samsara/types/functions_start_function_run_gateway_timeout_error_response_body.py +33 -0
  352. samsara/types/functions_start_function_run_internal_server_error_response_body.py +33 -0
  353. samsara/types/functions_start_function_run_method_not_allowed_error_response_body.py +33 -0
  354. samsara/types/functions_start_function_run_not_found_error_response_body.py +33 -0
  355. samsara/types/functions_start_function_run_not_implemented_error_response_body.py +33 -0
  356. samsara/types/functions_start_function_run_response_body.py +20 -0
  357. samsara/types/functions_start_function_run_service_unavailable_error_response_body.py +33 -0
  358. samsara/types/functions_start_function_run_too_many_requests_error_response_body.py +33 -0
  359. samsara/types/functions_start_function_run_unauthorized_error_response_body.py +33 -0
  360. samsara/types/gateway_details_response_response_body.py +1 -1
  361. samsara/types/gateway_details_response_response_body_gateway_battery_state.py +3 -1
  362. samsara/types/goa_attribute_tiny.py +47 -0
  363. samsara/types/goa_form_tiny_response_response_body.py +26 -0
  364. samsara/types/goa_issue_tiny_response_response_body.py +26 -0
  365. samsara/types/green_band_driving_duration_ms.py +3 -0
  366. samsara/types/harsh_event_trigger_details_object_request_body_types_item.py +2 -0
  367. samsara/types/harsh_event_trigger_details_object_response_body_types_item.py +2 -0
  368. samsara/types/health_response_response_body.py +11 -1
  369. samsara/types/health_response_response_body_recommended_action.py +10 -0
  370. samsara/types/high_torque_ms.py +3 -0
  371. samsara/types/hos_daily_logs_update_shipping_docs_bad_gateway_error_response_body.py +33 -0
  372. samsara/types/hos_daily_logs_update_shipping_docs_gateway_timeout_error_response_body.py +33 -0
  373. samsara/types/hos_daily_logs_update_shipping_docs_internal_server_error_response_body.py +33 -0
  374. samsara/types/hos_daily_logs_update_shipping_docs_method_not_allowed_error_response_body.py +33 -0
  375. samsara/types/hos_daily_logs_update_shipping_docs_not_found_error_response_body.py +33 -0
  376. samsara/types/hos_daily_logs_update_shipping_docs_not_implemented_error_response_body.py +33 -0
  377. samsara/types/hos_daily_logs_update_shipping_docs_response_body.py +20 -0
  378. samsara/types/hos_daily_logs_update_shipping_docs_service_unavailable_error_response_body.py +33 -0
  379. samsara/types/hos_daily_logs_update_shipping_docs_too_many_requests_error_response_body.py +33 -0
  380. samsara/types/hos_daily_logs_update_shipping_docs_unauthorized_error_response_body.py +33 -0
  381. samsara/types/hos_drivers_eld_event_object_response_body.py +54 -0
  382. samsara/types/hos_drivers_eld_event_object_response_body_driver_activation_status.py +7 -0
  383. samsara/types/hos_eld_event_location_object_response_body.py +46 -0
  384. samsara/types/hos_eld_event_object_response_body.py +98 -0
  385. samsara/types/hos_eld_event_object_response_body_malfunction_diagnostic_code.py +7 -0
  386. samsara/types/hos_eld_event_remark_object_response_body.py +36 -0
  387. samsara/types/hos_eld_events_get_hos_eld_events_bad_gateway_error_response_body.py +33 -0
  388. samsara/types/hos_eld_events_get_hos_eld_events_gateway_timeout_error_response_body.py +33 -0
  389. samsara/types/hos_eld_events_get_hos_eld_events_internal_server_error_response_body.py +33 -0
  390. samsara/types/hos_eld_events_get_hos_eld_events_method_not_allowed_error_response_body.py +33 -0
  391. samsara/types/hos_eld_events_get_hos_eld_events_not_found_error_response_body.py +33 -0
  392. samsara/types/hos_eld_events_get_hos_eld_events_not_implemented_error_response_body.py +33 -0
  393. samsara/types/hos_eld_events_get_hos_eld_events_response_body.py +26 -0
  394. samsara/types/hos_eld_events_get_hos_eld_events_service_unavailable_error_response_body.py +33 -0
  395. samsara/types/hos_eld_events_get_hos_eld_events_too_many_requests_error_response_body.py +33 -0
  396. samsara/types/hos_eld_events_get_hos_eld_events_unauthorized_error_response_body.py +33 -0
  397. samsara/types/hub_capacities_list_hub_capacities_bad_gateway_error_response_body.py +33 -0
  398. samsara/types/hub_capacities_list_hub_capacities_gateway_timeout_error_response_body.py +33 -0
  399. samsara/types/hub_capacities_list_hub_capacities_internal_server_error_response_body.py +33 -0
  400. samsara/types/hub_capacities_list_hub_capacities_method_not_allowed_error_response_body.py +33 -0
  401. samsara/types/hub_capacities_list_hub_capacities_not_found_error_response_body.py +33 -0
  402. samsara/types/hub_capacities_list_hub_capacities_not_implemented_error_response_body.py +33 -0
  403. samsara/types/hub_capacities_list_hub_capacities_response_body.py +26 -0
  404. samsara/types/hub_capacities_list_hub_capacities_service_unavailable_error_response_body.py +33 -0
  405. samsara/types/hub_capacities_list_hub_capacities_too_many_requests_error_response_body.py +33 -0
  406. samsara/types/hub_capacities_list_hub_capacities_unauthorized_error_response_body.py +33 -0
  407. samsara/types/hub_capacity_object_response_body.py +54 -0
  408. samsara/types/hub_location_created_object_response_body.py +105 -0
  409. samsara/types/hub_location_input_object_request_body.py +94 -0
  410. samsara/types/hub_location_object_response_body.py +105 -0
  411. samsara/types/hub_location_service_window_input_request_body.py +38 -0
  412. samsara/types/hub_location_updated_object_response_body.py +105 -0
  413. samsara/types/hub_locations_create_hub_locations_bad_gateway_error_response_body.py +33 -0
  414. samsara/types/hub_locations_create_hub_locations_gateway_timeout_error_response_body.py +33 -0
  415. samsara/types/hub_locations_create_hub_locations_internal_server_error_response_body.py +33 -0
  416. samsara/types/hub_locations_create_hub_locations_method_not_allowed_error_response_body.py +33 -0
  417. samsara/types/hub_locations_create_hub_locations_not_found_error_response_body.py +33 -0
  418. samsara/types/hub_locations_create_hub_locations_not_implemented_error_response_body.py +33 -0
  419. samsara/types/hub_locations_create_hub_locations_response_body.py +23 -0
  420. samsara/types/hub_locations_create_hub_locations_service_unavailable_error_response_body.py +33 -0
  421. samsara/types/hub_locations_create_hub_locations_too_many_requests_error_response_body.py +33 -0
  422. samsara/types/hub_locations_create_hub_locations_unauthorized_error_response_body.py +33 -0
  423. samsara/types/hub_locations_list_hub_locations_bad_gateway_error_response_body.py +33 -0
  424. samsara/types/hub_locations_list_hub_locations_gateway_timeout_error_response_body.py +33 -0
  425. samsara/types/hub_locations_list_hub_locations_internal_server_error_response_body.py +33 -0
  426. samsara/types/hub_locations_list_hub_locations_method_not_allowed_error_response_body.py +33 -0
  427. samsara/types/hub_locations_list_hub_locations_not_found_error_response_body.py +33 -0
  428. samsara/types/hub_locations_list_hub_locations_not_implemented_error_response_body.py +33 -0
  429. samsara/types/hub_locations_list_hub_locations_response_body.py +26 -0
  430. samsara/types/hub_locations_list_hub_locations_service_unavailable_error_response_body.py +33 -0
  431. samsara/types/hub_locations_list_hub_locations_too_many_requests_error_response_body.py +33 -0
  432. samsara/types/hub_locations_list_hub_locations_unauthorized_error_response_body.py +33 -0
  433. samsara/types/hub_locations_update_hub_location_bad_gateway_error_response_body.py +33 -0
  434. samsara/types/hub_locations_update_hub_location_gateway_timeout_error_response_body.py +33 -0
  435. samsara/types/hub_locations_update_hub_location_internal_server_error_response_body.py +33 -0
  436. samsara/types/hub_locations_update_hub_location_method_not_allowed_error_response_body.py +33 -0
  437. samsara/types/hub_locations_update_hub_location_not_found_error_response_body.py +33 -0
  438. samsara/types/hub_locations_update_hub_location_not_implemented_error_response_body.py +33 -0
  439. samsara/types/hub_locations_update_hub_location_response_body.py +20 -0
  440. samsara/types/hub_locations_update_hub_location_service_unavailable_error_response_body.py +33 -0
  441. samsara/types/hub_locations_update_hub_location_too_many_requests_error_response_body.py +33 -0
  442. samsara/types/hub_locations_update_hub_location_unauthorized_error_response_body.py +33 -0
  443. samsara/types/hub_object_response_body.py +49 -0
  444. samsara/types/hub_plan_routes_list_hub_plan_routes_bad_gateway_error_response_body.py +33 -0
  445. samsara/types/hub_plan_routes_list_hub_plan_routes_gateway_timeout_error_response_body.py +33 -0
  446. samsara/types/hub_plan_routes_list_hub_plan_routes_internal_server_error_response_body.py +33 -0
  447. samsara/types/hub_plan_routes_list_hub_plan_routes_method_not_allowed_error_response_body.py +33 -0
  448. samsara/types/hub_plan_routes_list_hub_plan_routes_not_found_error_response_body.py +33 -0
  449. samsara/types/hub_plan_routes_list_hub_plan_routes_not_implemented_error_response_body.py +33 -0
  450. samsara/types/hub_plan_routes_list_hub_plan_routes_response_body.py +26 -0
  451. samsara/types/hub_plan_routes_list_hub_plan_routes_service_unavailable_error_response_body.py +33 -0
  452. samsara/types/hub_plan_routes_list_hub_plan_routes_too_many_requests_error_response_body.py +33 -0
  453. samsara/types/hub_plan_routes_list_hub_plan_routes_unauthorized_error_response_body.py +33 -0
  454. samsara/types/hub_plans_create_hub_plan_bad_gateway_error_response_body.py +33 -0
  455. samsara/types/hub_plans_create_hub_plan_gateway_timeout_error_response_body.py +33 -0
  456. samsara/types/hub_plans_create_hub_plan_internal_server_error_response_body.py +33 -0
  457. samsara/types/hub_plans_create_hub_plan_method_not_allowed_error_response_body.py +33 -0
  458. samsara/types/hub_plans_create_hub_plan_not_found_error_response_body.py +33 -0
  459. samsara/types/hub_plans_create_hub_plan_not_implemented_error_response_body.py +33 -0
  460. samsara/types/hub_plans_create_hub_plan_response_body.py +20 -0
  461. samsara/types/hub_plans_create_hub_plan_service_unavailable_error_response_body.py +33 -0
  462. samsara/types/hub_plans_create_hub_plan_too_many_requests_error_response_body.py +33 -0
  463. samsara/types/hub_plans_create_hub_plan_unauthorized_error_response_body.py +33 -0
  464. samsara/types/hub_plans_list_hub_plans_bad_gateway_error_response_body.py +33 -0
  465. samsara/types/hub_plans_list_hub_plans_gateway_timeout_error_response_body.py +33 -0
  466. samsara/types/hub_plans_list_hub_plans_internal_server_error_response_body.py +33 -0
  467. samsara/types/hub_plans_list_hub_plans_method_not_allowed_error_response_body.py +33 -0
  468. samsara/types/hub_plans_list_hub_plans_not_found_error_response_body.py +33 -0
  469. samsara/types/hub_plans_list_hub_plans_not_implemented_error_response_body.py +33 -0
  470. samsara/types/hub_plans_list_hub_plans_response_body.py +26 -0
  471. samsara/types/hub_plans_list_hub_plans_service_unavailable_error_response_body.py +33 -0
  472. samsara/types/hub_plans_list_hub_plans_too_many_requests_error_response_body.py +33 -0
  473. samsara/types/hub_plans_list_hub_plans_unauthorized_error_response_body.py +33 -0
  474. samsara/types/hub_skill_object_response_body.py +49 -0
  475. samsara/types/hub_skills_list_hub_skills_bad_gateway_error_response_body.py +33 -0
  476. samsara/types/hub_skills_list_hub_skills_gateway_timeout_error_response_body.py +33 -0
  477. samsara/types/hub_skills_list_hub_skills_internal_server_error_response_body.py +33 -0
  478. samsara/types/hub_skills_list_hub_skills_method_not_allowed_error_response_body.py +33 -0
  479. samsara/types/hub_skills_list_hub_skills_not_found_error_response_body.py +33 -0
  480. samsara/types/hub_skills_list_hub_skills_not_implemented_error_response_body.py +33 -0
  481. samsara/types/hub_skills_list_hub_skills_response_body.py +26 -0
  482. samsara/types/hub_skills_list_hub_skills_service_unavailable_error_response_body.py +33 -0
  483. samsara/types/hub_skills_list_hub_skills_too_many_requests_error_response_body.py +33 -0
  484. samsara/types/hub_skills_list_hub_skills_unauthorized_error_response_body.py +33 -0
  485. samsara/types/hubs_list_hubs_bad_gateway_error_response_body.py +33 -0
  486. samsara/types/hubs_list_hubs_gateway_timeout_error_response_body.py +33 -0
  487. samsara/types/hubs_list_hubs_internal_server_error_response_body.py +33 -0
  488. samsara/types/hubs_list_hubs_method_not_allowed_error_response_body.py +33 -0
  489. samsara/types/hubs_list_hubs_not_found_error_response_body.py +33 -0
  490. samsara/types/hubs_list_hubs_not_implemented_error_response_body.py +33 -0
  491. samsara/types/hubs_list_hubs_response_body.py +26 -0
  492. samsara/types/hubs_list_hubs_service_unavailable_error_response_body.py +33 -0
  493. samsara/types/hubs_list_hubs_too_many_requests_error_response_body.py +33 -0
  494. samsara/types/hubs_list_hubs_unauthorized_error_response_body.py +33 -0
  495. samsara/types/idle_time_duration_ms.py +3 -0
  496. samsara/types/idling_event_object_response_body.py +1 -1
  497. samsara/types/idling_event_object_response_body_address_type.py +2 -0
  498. samsara/types/industrial_asset_object_response_body.py +31 -0
  499. samsara/types/inline_response_200.py +20 -0
  500. samsara/types/inline_response_2001.py +20 -0
  501. samsara/types/inline_response_2002.py +22 -0
  502. samsara/types/inline_response_2003.py +22 -0
  503. samsara/types/inline_response_2004.py +20 -0
  504. samsara/types/inline_response_2007.py +22 -0
  505. samsara/types/inline_response_2008.py +20 -0
  506. samsara/types/inline_response_2009.py +20 -0
  507. samsara/types/j_1939_d_1_status_data_point.py +29 -0
  508. samsara/types/j_1939_d_1_status_data_point_value.py +34 -0
  509. samsara/types/job_location_response_object_response_body.py +41 -0
  510. samsara/types/job_response_object_response_body.py +106 -0
  511. samsara/types/job_response_object_response_body_status.py +5 -0
  512. samsara/types/jobs_create_job_bad_gateway_error_response_body.py +33 -0
  513. samsara/types/jobs_create_job_gateway_timeout_error_response_body.py +33 -0
  514. samsara/types/jobs_create_job_internal_server_error_response_body.py +33 -0
  515. samsara/types/jobs_create_job_method_not_allowed_error_response_body.py +33 -0
  516. samsara/types/jobs_create_job_not_found_error_response_body.py +33 -0
  517. samsara/types/jobs_create_job_not_implemented_error_response_body.py +33 -0
  518. samsara/types/jobs_create_job_response_body.py +31 -0
  519. samsara/types/jobs_create_job_service_unavailable_error_response_body.py +33 -0
  520. samsara/types/jobs_create_job_too_many_requests_error_response_body.py +33 -0
  521. samsara/types/jobs_create_job_unauthorized_error_response_body.py +33 -0
  522. samsara/types/jobs_delete_job_bad_gateway_error_response_body.py +33 -0
  523. samsara/types/jobs_delete_job_gateway_timeout_error_response_body.py +33 -0
  524. samsara/types/jobs_delete_job_internal_server_error_response_body.py +33 -0
  525. samsara/types/jobs_delete_job_method_not_allowed_error_response_body.py +33 -0
  526. samsara/types/jobs_delete_job_not_found_error_response_body.py +33 -0
  527. samsara/types/jobs_delete_job_not_implemented_error_response_body.py +33 -0
  528. samsara/types/jobs_delete_job_response_body.py +29 -0
  529. samsara/types/jobs_delete_job_service_unavailable_error_response_body.py +33 -0
  530. samsara/types/jobs_delete_job_too_many_requests_error_response_body.py +33 -0
  531. samsara/types/jobs_delete_job_unauthorized_error_response_body.py +33 -0
  532. samsara/types/jobs_get_jobs_bad_gateway_error_response_body.py +33 -0
  533. samsara/types/jobs_get_jobs_gateway_timeout_error_response_body.py +33 -0
  534. samsara/types/jobs_get_jobs_internal_server_error_response_body.py +33 -0
  535. samsara/types/jobs_get_jobs_method_not_allowed_error_response_body.py +33 -0
  536. samsara/types/jobs_get_jobs_not_found_error_response_body.py +33 -0
  537. samsara/types/jobs_get_jobs_not_implemented_error_response_body.py +33 -0
  538. samsara/types/jobs_get_jobs_response_body.py +37 -0
  539. samsara/types/jobs_get_jobs_service_unavailable_error_response_body.py +33 -0
  540. samsara/types/jobs_get_jobs_too_many_requests_error_response_body.py +33 -0
  541. samsara/types/jobs_get_jobs_unauthorized_error_response_body.py +33 -0
  542. samsara/types/jobs_patch_job_bad_gateway_error_response_body.py +33 -0
  543. samsara/types/jobs_patch_job_gateway_timeout_error_response_body.py +33 -0
  544. samsara/types/jobs_patch_job_internal_server_error_response_body.py +33 -0
  545. samsara/types/jobs_patch_job_method_not_allowed_error_response_body.py +33 -0
  546. samsara/types/jobs_patch_job_not_found_error_response_body.py +33 -0
  547. samsara/types/jobs_patch_job_not_implemented_error_response_body.py +33 -0
  548. samsara/types/jobs_patch_job_response_body.py +31 -0
  549. samsara/types/jobs_patch_job_service_unavailable_error_response_body.py +33 -0
  550. samsara/types/jobs_patch_job_too_many_requests_error_response_body.py +33 -0
  551. samsara/types/jobs_patch_job_unauthorized_error_response_body.py +33 -0
  552. samsara/types/latitude.py +3 -0
  553. samsara/types/list_hub_capacities_response_pagination_response_body.py +35 -0
  554. samsara/types/list_hub_locations_response_pagination_response_body.py +35 -0
  555. samsara/types/list_hub_plan_routes_response_pagination_response_body.py +35 -0
  556. samsara/types/list_hub_plans_response_pagination_response_body.py +35 -0
  557. samsara/types/list_hub_skills_response_pagination_response_body.py +35 -0
  558. samsara/types/list_hubs_response_pagination_response_body.py +35 -0
  559. samsara/types/list_industrial_assets_response.py +22 -0
  560. samsara/types/live_sharing_link_full_response_object_response_body.py +5 -2
  561. samsara/types/location_data_point.py +30 -0
  562. samsara/types/location_data_point_gps_location.py +57 -0
  563. samsara/types/location_data_point_gps_location_place.py +60 -0
  564. samsara/types/location_object_request_body_address_types_item.py +2 -0
  565. samsara/types/location_object_response_body_address_types_item.py +2 -0
  566. samsara/types/location_response_body.py +42 -0
  567. samsara/types/location_type.py +5 -0
  568. samsara/types/longitude.py +3 -0
  569. samsara/types/media_object_response_body.py +10 -2
  570. samsara/types/media_object_response_body_camera_role.py +28 -0
  571. samsara/types/media_object_response_body_input.py +3 -1
  572. samsara/types/media_object_response_body_status.py +3 -1
  573. samsara/types/number_data_point.py +28 -0
  574. samsara/types/order_input_object_request_body.py +59 -0
  575. samsara/types/order_object_response_body.py +75 -0
  576. samsara/types/order_quantity_input_request_body.py +33 -0
  577. samsara/types/order_quantity_response_body.py +33 -0
  578. samsara/types/order_task_object_response_body.py +54 -0
  579. samsara/types/order_task_request_body.py +67 -0
  580. samsara/types/order_task_request_body_position.py +5 -0
  581. samsara/types/order_task_response_body.py +67 -0
  582. samsara/types/order_task_response_body_position.py +5 -0
  583. samsara/types/order_task_skill_object_response_body.py +31 -0
  584. samsara/types/over_speed_ms.py +3 -0
  585. samsara/types/parent_id.py +3 -0
  586. samsara/types/part_instance_input_object_request_body.py +45 -0
  587. samsara/types/part_instance_object_response_body.py +45 -0
  588. samsara/types/patch_asset_data_outputs_single_response_response_body.py +40 -0
  589. samsara/types/patch_job_object_request_body.py +89 -0
  590. samsara/types/patch_job_objectjob_location_request_object_request_body.py +41 -0
  591. samsara/types/patch_shipping_docs_response_body_response_body.py +93 -0
  592. samsara/types/plan_object_response_body.py +49 -0
  593. samsara/types/plan_orders_create_plan_orders_bad_gateway_error_response_body.py +33 -0
  594. samsara/types/plan_orders_create_plan_orders_gateway_timeout_error_response_body.py +33 -0
  595. samsara/types/plan_orders_create_plan_orders_internal_server_error_response_body.py +33 -0
  596. samsara/types/plan_orders_create_plan_orders_method_not_allowed_error_response_body.py +33 -0
  597. samsara/types/plan_orders_create_plan_orders_not_found_error_response_body.py +33 -0
  598. samsara/types/plan_orders_create_plan_orders_not_implemented_error_response_body.py +33 -0
  599. samsara/types/plan_orders_create_plan_orders_response_body.py +23 -0
  600. samsara/types/plan_orders_create_plan_orders_service_unavailable_error_response_body.py +33 -0
  601. samsara/types/plan_orders_create_plan_orders_too_many_requests_error_response_body.py +33 -0
  602. samsara/types/plan_orders_create_plan_orders_unauthorized_error_response_body.py +33 -0
  603. samsara/types/post_fuel_purchase_request_body_discount_request_body.py +34 -0
  604. samsara/types/post_fuel_purchase_request_body_discount_request_body_currency.py +7 -0
  605. samsara/types/post_job_object_request_body.py +85 -0
  606. samsara/types/post_job_objectjob_location_request_object_request_body.py +41 -0
  607. samsara/types/power_take_off_duration_ms.py +3 -0
  608. samsara/types/qualification_field_input_object_response_body.py +75 -0
  609. samsara/types/qualification_field_input_object_response_body_type.py +8 -0
  610. samsara/types/qualification_owner_object_response_body.py +43 -0
  611. samsara/types/qualification_owner_object_response_body_entity_type.py +5 -0
  612. samsara/types/qualification_owner_request_object_request_body.py +38 -0
  613. samsara/types/qualification_owner_request_object_request_body_entity_type.py +5 -0
  614. samsara/types/qualification_record_request_field_input_object_request_body.py +77 -0
  615. samsara/types/qualification_record_request_field_input_object_request_body_type.py +8 -0
  616. samsara/types/qualification_record_response_object_response_body.py +84 -0
  617. samsara/types/qualification_record_response_object_response_body_record_status.py +7 -0
  618. samsara/types/qualification_type_reference_object_response_body.py +40 -0
  619. samsara/types/qualification_type_request_object_request_body.py +26 -0
  620. samsara/types/qualification_type_response_object_response_body.py +69 -0
  621. samsara/types/qualification_type_response_object_response_body_entity_type.py +5 -0
  622. samsara/types/qualifications_archive_qualification_record_bad_gateway_error_response_body.py +33 -0
  623. samsara/types/qualifications_archive_qualification_record_gateway_timeout_error_response_body.py +33 -0
  624. samsara/types/qualifications_archive_qualification_record_internal_server_error_response_body.py +33 -0
  625. samsara/types/qualifications_archive_qualification_record_method_not_allowed_error_response_body.py +33 -0
  626. samsara/types/qualifications_archive_qualification_record_not_found_error_response_body.py +33 -0
  627. samsara/types/qualifications_archive_qualification_record_not_implemented_error_response_body.py +33 -0
  628. samsara/types/qualifications_archive_qualification_record_service_unavailable_error_response_body.py +33 -0
  629. samsara/types/qualifications_archive_qualification_record_too_many_requests_error_response_body.py +33 -0
  630. samsara/types/qualifications_archive_qualification_record_unauthorized_error_response_body.py +33 -0
  631. samsara/types/qualifications_delete_qualification_record_bad_gateway_error_response_body.py +33 -0
  632. samsara/types/qualifications_delete_qualification_record_gateway_timeout_error_response_body.py +33 -0
  633. samsara/types/qualifications_delete_qualification_record_internal_server_error_response_body.py +33 -0
  634. samsara/types/qualifications_delete_qualification_record_method_not_allowed_error_response_body.py +33 -0
  635. samsara/types/qualifications_delete_qualification_record_not_found_error_response_body.py +33 -0
  636. samsara/types/qualifications_delete_qualification_record_not_implemented_error_response_body.py +33 -0
  637. samsara/types/qualifications_delete_qualification_record_service_unavailable_error_response_body.py +33 -0
  638. samsara/types/qualifications_delete_qualification_record_too_many_requests_error_response_body.py +33 -0
  639. samsara/types/qualifications_delete_qualification_record_unauthorized_error_response_body.py +33 -0
  640. samsara/types/qualifications_get_qualification_records_bad_gateway_error_response_body.py +33 -0
  641. samsara/types/qualifications_get_qualification_records_gateway_timeout_error_response_body.py +33 -0
  642. samsara/types/qualifications_get_qualification_records_internal_server_error_response_body.py +33 -0
  643. samsara/types/qualifications_get_qualification_records_method_not_allowed_error_response_body.py +33 -0
  644. samsara/types/qualifications_get_qualification_records_not_found_error_response_body.py +33 -0
  645. samsara/types/qualifications_get_qualification_records_not_implemented_error_response_body.py +33 -0
  646. samsara/types/qualifications_get_qualification_records_response_body.py +23 -0
  647. samsara/types/qualifications_get_qualification_records_service_unavailable_error_response_body.py +33 -0
  648. samsara/types/qualifications_get_qualification_records_stream_bad_gateway_error_response_body.py +33 -0
  649. samsara/types/qualifications_get_qualification_records_stream_gateway_timeout_error_response_body.py +33 -0
  650. samsara/types/qualifications_get_qualification_records_stream_internal_server_error_response_body.py +33 -0
  651. samsara/types/qualifications_get_qualification_records_stream_method_not_allowed_error_response_body.py +33 -0
  652. samsara/types/qualifications_get_qualification_records_stream_not_found_error_response_body.py +33 -0
  653. samsara/types/qualifications_get_qualification_records_stream_not_implemented_error_response_body.py +33 -0
  654. samsara/types/qualifications_get_qualification_records_stream_response_body.py +26 -0
  655. samsara/types/qualifications_get_qualification_records_stream_service_unavailable_error_response_body.py +33 -0
  656. samsara/types/qualifications_get_qualification_records_stream_too_many_requests_error_response_body.py +33 -0
  657. samsara/types/qualifications_get_qualification_records_stream_unauthorized_error_response_body.py +33 -0
  658. samsara/types/qualifications_get_qualification_records_too_many_requests_error_response_body.py +33 -0
  659. samsara/types/qualifications_get_qualification_records_unauthorized_error_response_body.py +33 -0
  660. samsara/types/qualifications_get_qualification_types_bad_gateway_error_response_body.py +33 -0
  661. samsara/types/qualifications_get_qualification_types_gateway_timeout_error_response_body.py +33 -0
  662. samsara/types/qualifications_get_qualification_types_internal_server_error_response_body.py +33 -0
  663. samsara/types/qualifications_get_qualification_types_method_not_allowed_error_response_body.py +33 -0
  664. samsara/types/qualifications_get_qualification_types_not_found_error_response_body.py +33 -0
  665. samsara/types/qualifications_get_qualification_types_not_implemented_error_response_body.py +33 -0
  666. samsara/types/qualifications_get_qualification_types_response_body.py +26 -0
  667. samsara/types/qualifications_get_qualification_types_service_unavailable_error_response_body.py +33 -0
  668. samsara/types/qualifications_get_qualification_types_too_many_requests_error_response_body.py +33 -0
  669. samsara/types/qualifications_get_qualification_types_unauthorized_error_response_body.py +33 -0
  670. samsara/types/qualifications_patch_qualification_record_bad_gateway_error_response_body.py +33 -0
  671. samsara/types/qualifications_patch_qualification_record_gateway_timeout_error_response_body.py +33 -0
  672. samsara/types/qualifications_patch_qualification_record_internal_server_error_response_body.py +33 -0
  673. samsara/types/qualifications_patch_qualification_record_method_not_allowed_error_response_body.py +33 -0
  674. samsara/types/qualifications_patch_qualification_record_not_found_error_response_body.py +33 -0
  675. samsara/types/qualifications_patch_qualification_record_not_implemented_error_response_body.py +33 -0
  676. samsara/types/qualifications_patch_qualification_record_response_body.py +20 -0
  677. samsara/types/qualifications_patch_qualification_record_service_unavailable_error_response_body.py +33 -0
  678. samsara/types/qualifications_patch_qualification_record_too_many_requests_error_response_body.py +33 -0
  679. samsara/types/qualifications_patch_qualification_record_unauthorized_error_response_body.py +33 -0
  680. samsara/types/qualifications_post_qualification_record_bad_gateway_error_response_body.py +33 -0
  681. samsara/types/qualifications_post_qualification_record_gateway_timeout_error_response_body.py +33 -0
  682. samsara/types/qualifications_post_qualification_record_internal_server_error_response_body.py +33 -0
  683. samsara/types/qualifications_post_qualification_record_method_not_allowed_error_response_body.py +33 -0
  684. samsara/types/qualifications_post_qualification_record_not_found_error_response_body.py +33 -0
  685. samsara/types/qualifications_post_qualification_record_not_implemented_error_response_body.py +33 -0
  686. samsara/types/qualifications_post_qualification_record_response_body.py +20 -0
  687. samsara/types/qualifications_post_qualification_record_service_unavailable_error_response_body.py +33 -0
  688. samsara/types/qualifications_post_qualification_record_too_many_requests_error_response_body.py +33 -0
  689. samsara/types/qualifications_post_qualification_record_unauthorized_error_response_body.py +33 -0
  690. samsara/types/qualifications_unarchive_qualification_record_bad_gateway_error_response_body.py +33 -0
  691. samsara/types/qualifications_unarchive_qualification_record_gateway_timeout_error_response_body.py +33 -0
  692. samsara/types/qualifications_unarchive_qualification_record_internal_server_error_response_body.py +33 -0
  693. samsara/types/qualifications_unarchive_qualification_record_method_not_allowed_error_response_body.py +33 -0
  694. samsara/types/qualifications_unarchive_qualification_record_not_found_error_response_body.py +33 -0
  695. samsara/types/qualifications_unarchive_qualification_record_not_implemented_error_response_body.py +33 -0
  696. samsara/types/qualifications_unarchive_qualification_record_service_unavailable_error_response_body.py +33 -0
  697. samsara/types/qualifications_unarchive_qualification_record_too_many_requests_error_response_body.py +33 -0
  698. samsara/types/qualifications_unarchive_qualification_record_unauthorized_error_response_body.py +33 -0
  699. samsara/types/quantity_object_response_body.py +33 -0
  700. samsara/types/reading_datapoint_request_body.py +50 -0
  701. samsara/types/reading_definition_response_body.py +5 -0
  702. samsara/types/reading_trigger_continuous_value_object_request_body.py +1 -1
  703. samsara/types/reading_trigger_continuous_value_object_request_body_unit.py +15 -0
  704. samsara/types/reading_trigger_continuous_value_object_response_body.py +1 -1
  705. samsara/types/reading_trigger_continuous_value_object_response_body_unit.py +15 -0
  706. samsara/types/readings_post_readings_bad_gateway_error_response_body.py +33 -0
  707. samsara/types/readings_post_readings_gateway_timeout_error_response_body.py +33 -0
  708. samsara/types/readings_post_readings_internal_server_error_response_body.py +33 -0
  709. samsara/types/readings_post_readings_method_not_allowed_error_response_body.py +33 -0
  710. samsara/types/readings_post_readings_not_found_error_response_body.py +33 -0
  711. samsara/types/readings_post_readings_not_implemented_error_response_body.py +33 -0
  712. samsara/types/readings_post_readings_service_unavailable_error_response_body.py +33 -0
  713. samsara/types/readings_post_readings_too_many_requests_error_response_body.py +33 -0
  714. samsara/types/readings_post_readings_unauthorized_error_response_body.py +33 -0
  715. samsara/types/reverse_geo_object_response_body.py +30 -0
  716. samsara/types/route_object_response_body.py +124 -0
  717. samsara/types/route_stop_object_response_body.py +71 -0
  718. samsara/types/routes_single_use_address_object_request_body.py +9 -0
  719. samsara/types/routes_single_use_address_object_response_body.py +9 -0
  720. samsara/types/routes_stop_response_object_response_body.py +12 -0
  721. samsara/types/safety_event_behavior_labels_response_body.py +1 -1
  722. samsara/types/safety_event_behavior_labels_response_body_type.py +1 -0
  723. samsara/types/safety_event_dismissal_reason_response_body.py +32 -0
  724. samsara/types/safety_event_dismissal_reason_response_body_code.py +7 -0
  725. samsara/types/safety_event_v_2_asset_object_response_body.py +63 -0
  726. samsara/types/safety_event_v_2_asset_object_response_body_type.py +7 -0
  727. samsara/types/safety_event_v_2_behavior_labels_response_body.py +33 -0
  728. samsara/types/safety_event_v_2_behavior_labels_response_body_label.py +64 -0
  729. samsara/types/safety_event_v_2_behavior_labels_response_body_source.py +5 -0
  730. samsara/types/safety_event_v_2_context_labels_response_body.py +38 -0
  731. samsara/types/safety_event_v_2_driver_object_response_body.py +52 -0
  732. samsara/types/safety_event_v_2_object_response_body.py +134 -0
  733. samsara/types/safety_event_v_2_object_response_body_event_state.py +10 -0
  734. samsara/types/safety_events_v_2_get_safety_events_v_2_bad_gateway_error_response_body.py +33 -0
  735. samsara/types/safety_events_v_2_get_safety_events_v_2_gateway_timeout_error_response_body.py +33 -0
  736. samsara/types/safety_events_v_2_get_safety_events_v_2_internal_server_error_response_body.py +33 -0
  737. samsara/types/safety_events_v_2_get_safety_events_v_2_method_not_allowed_error_response_body.py +33 -0
  738. samsara/types/safety_events_v_2_get_safety_events_v_2_not_found_error_response_body.py +33 -0
  739. samsara/types/safety_events_v_2_get_safety_events_v_2_not_implemented_error_response_body.py +33 -0
  740. samsara/types/safety_events_v_2_get_safety_events_v_2_response_body.py +26 -0
  741. samsara/types/safety_events_v_2_get_safety_events_v_2_service_unavailable_error_response_body.py +33 -0
  742. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_bad_gateway_error_response_body.py +33 -0
  743. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_gateway_timeout_error_response_body.py +33 -0
  744. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_internal_server_error_response_body.py +33 -0
  745. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_method_not_allowed_error_response_body.py +33 -0
  746. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_not_found_error_response_body.py +33 -0
  747. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_not_implemented_error_response_body.py +33 -0
  748. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_response_body.py +26 -0
  749. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_service_unavailable_error_response_body.py +33 -0
  750. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_too_many_requests_error_response_body.py +33 -0
  751. samsara/types/safety_events_v_2_get_safety_events_v_2_stream_unauthorized_error_response_body.py +33 -0
  752. samsara/types/safety_events_v_2_get_safety_events_v_2_too_many_requests_error_response_body.py +33 -0
  753. samsara/types/safety_events_v_2_get_safety_events_v_2_unauthorized_error_response_body.py +33 -0
  754. samsara/types/safety_score_behavior_object_response_body.py +41 -0
  755. samsara/types/safety_score_behavior_object_response_body_behavior_type.py +34 -0
  756. samsara/types/safety_score_speeding_object_response_body.py +43 -0
  757. samsara/types/safety_score_speeding_object_response_body_speeding_type.py +7 -0
  758. samsara/types/safety_scores_get_driver_safety_score_trips_bad_gateway_error_response_body.py +33 -0
  759. samsara/types/safety_scores_get_driver_safety_score_trips_gateway_timeout_error_response_body.py +33 -0
  760. samsara/types/safety_scores_get_driver_safety_score_trips_internal_server_error_response_body.py +33 -0
  761. samsara/types/safety_scores_get_driver_safety_score_trips_method_not_allowed_error_response_body.py +33 -0
  762. samsara/types/safety_scores_get_driver_safety_score_trips_not_found_error_response_body.py +33 -0
  763. samsara/types/safety_scores_get_driver_safety_score_trips_not_implemented_error_response_body.py +33 -0
  764. samsara/types/safety_scores_get_driver_safety_score_trips_response_body.py +26 -0
  765. samsara/types/safety_scores_get_driver_safety_score_trips_service_unavailable_error_response_body.py +33 -0
  766. samsara/types/safety_scores_get_driver_safety_score_trips_too_many_requests_error_response_body.py +33 -0
  767. samsara/types/safety_scores_get_driver_safety_score_trips_unauthorized_error_response_body.py +33 -0
  768. samsara/types/safety_scores_get_driver_safety_scores_bad_gateway_error_response_body.py +33 -0
  769. samsara/types/safety_scores_get_driver_safety_scores_gateway_timeout_error_response_body.py +33 -0
  770. samsara/types/safety_scores_get_driver_safety_scores_internal_server_error_response_body.py +33 -0
  771. samsara/types/safety_scores_get_driver_safety_scores_method_not_allowed_error_response_body.py +33 -0
  772. samsara/types/safety_scores_get_driver_safety_scores_not_found_error_response_body.py +33 -0
  773. samsara/types/safety_scores_get_driver_safety_scores_not_implemented_error_response_body.py +33 -0
  774. samsara/types/safety_scores_get_driver_safety_scores_response_body.py +26 -0
  775. samsara/types/safety_scores_get_driver_safety_scores_service_unavailable_error_response_body.py +33 -0
  776. samsara/types/safety_scores_get_driver_safety_scores_too_many_requests_error_response_body.py +33 -0
  777. samsara/types/safety_scores_get_driver_safety_scores_unauthorized_error_response_body.py +33 -0
  778. samsara/types/safety_scores_get_tag_group_safety_scores_bad_gateway_error_response_body.py +33 -0
  779. samsara/types/safety_scores_get_tag_group_safety_scores_gateway_timeout_error_response_body.py +33 -0
  780. samsara/types/safety_scores_get_tag_group_safety_scores_internal_server_error_response_body.py +33 -0
  781. samsara/types/safety_scores_get_tag_group_safety_scores_method_not_allowed_error_response_body.py +33 -0
  782. samsara/types/safety_scores_get_tag_group_safety_scores_not_found_error_response_body.py +33 -0
  783. samsara/types/safety_scores_get_tag_group_safety_scores_not_implemented_error_response_body.py +33 -0
  784. samsara/types/safety_scores_get_tag_group_safety_scores_response_body.py +20 -0
  785. samsara/types/safety_scores_get_tag_group_safety_scores_service_unavailable_error_response_body.py +33 -0
  786. samsara/types/safety_scores_get_tag_group_safety_scores_too_many_requests_error_response_body.py +33 -0
  787. samsara/types/safety_scores_get_tag_group_safety_scores_unauthorized_error_response_body.py +33 -0
  788. samsara/types/safety_scores_get_tag_safety_scores_bad_gateway_error_response_body.py +33 -0
  789. samsara/types/safety_scores_get_tag_safety_scores_gateway_timeout_error_response_body.py +33 -0
  790. samsara/types/safety_scores_get_tag_safety_scores_internal_server_error_response_body.py +33 -0
  791. samsara/types/safety_scores_get_tag_safety_scores_method_not_allowed_error_response_body.py +33 -0
  792. samsara/types/safety_scores_get_tag_safety_scores_not_found_error_response_body.py +33 -0
  793. samsara/types/safety_scores_get_tag_safety_scores_not_implemented_error_response_body.py +33 -0
  794. samsara/types/safety_scores_get_tag_safety_scores_response_body.py +26 -0
  795. samsara/types/safety_scores_get_tag_safety_scores_service_unavailable_error_response_body.py +33 -0
  796. samsara/types/safety_scores_get_tag_safety_scores_too_many_requests_error_response_body.py +33 -0
  797. samsara/types/safety_scores_get_tag_safety_scores_unauthorized_error_response_body.py +33 -0
  798. samsara/types/safety_scores_get_vehicle_safety_score_trips_bad_gateway_error_response_body.py +33 -0
  799. samsara/types/safety_scores_get_vehicle_safety_score_trips_gateway_timeout_error_response_body.py +33 -0
  800. samsara/types/safety_scores_get_vehicle_safety_score_trips_internal_server_error_response_body.py +33 -0
  801. samsara/types/safety_scores_get_vehicle_safety_score_trips_method_not_allowed_error_response_body.py +33 -0
  802. samsara/types/safety_scores_get_vehicle_safety_score_trips_not_found_error_response_body.py +33 -0
  803. samsara/types/safety_scores_get_vehicle_safety_score_trips_not_implemented_error_response_body.py +33 -0
  804. samsara/types/safety_scores_get_vehicle_safety_score_trips_response_body.py +26 -0
  805. samsara/types/safety_scores_get_vehicle_safety_score_trips_service_unavailable_error_response_body.py +33 -0
  806. samsara/types/safety_scores_get_vehicle_safety_score_trips_too_many_requests_error_response_body.py +33 -0
  807. samsara/types/safety_scores_get_vehicle_safety_score_trips_unauthorized_error_response_body.py +33 -0
  808. samsara/types/safety_scores_get_vehicle_safety_scores_bad_gateway_error_response_body.py +33 -0
  809. samsara/types/safety_scores_get_vehicle_safety_scores_gateway_timeout_error_response_body.py +33 -0
  810. samsara/types/safety_scores_get_vehicle_safety_scores_internal_server_error_response_body.py +33 -0
  811. samsara/types/safety_scores_get_vehicle_safety_scores_method_not_allowed_error_response_body.py +33 -0
  812. samsara/types/safety_scores_get_vehicle_safety_scores_not_found_error_response_body.py +33 -0
  813. samsara/types/safety_scores_get_vehicle_safety_scores_not_implemented_error_response_body.py +33 -0
  814. samsara/types/safety_scores_get_vehicle_safety_scores_response_body.py +26 -0
  815. samsara/types/safety_scores_get_vehicle_safety_scores_service_unavailable_error_response_body.py +33 -0
  816. samsara/types/safety_scores_get_vehicle_safety_scores_too_many_requests_error_response_body.py +33 -0
  817. samsara/types/safety_scores_get_vehicle_safety_scores_unauthorized_error_response_body.py +33 -0
  818. samsara/types/service_task_instance_input_object_request_body.py +6 -0
  819. samsara/types/service_task_instance_object_response_body.py +6 -0
  820. samsara/types/service_window_object_response_body.py +38 -0
  821. samsara/types/single_driver_efficiency_by_driver_data_object_response_body.py +47 -0
  822. samsara/types/single_driver_efficiency_by_vehicle_data_object_response_body.py +46 -0
  823. samsara/types/single_use_location_object_response_body.py +36 -0
  824. samsara/types/skill_object_response_body.py +31 -0
  825. samsara/types/standard_delete_response.py +3 -0
  826. samsara/types/start_function_run_response_body_response_body.py +28 -0
  827. samsara/types/string_data_point.py +28 -0
  828. samsara/types/tag_group_safety_score_response_body.py +54 -0
  829. samsara/types/tag_ids.py +5 -0
  830. samsara/types/tag_safety_score_response_body.py +59 -0
  831. samsara/types/tire_fault_code_details_object_request_body_specific_tire_fault_codes_item.py +2 -0
  832. samsara/types/tire_fault_code_details_object_response_body_specific_tire_fault_codes_item.py +2 -0
  833. samsara/types/total_brake_event_count.py +3 -0
  834. samsara/types/trailer_stat_decoration_response_body.py +145 -0
  835. samsara/types/trailer_stat_gps_odometer_meters_type_response_body.py +31 -0
  836. samsara/types/trailer_stat_gps_odometer_meters_with_decorations_type_response_body.py +33 -0
  837. samsara/types/trailer_stat_gps_type_response_body.py +56 -0
  838. samsara/types/trailer_stat_gps_with_decorations_type_response_body.py +58 -0
  839. samsara/types/trailer_stat_reefer_alarm_response_body.py +39 -0
  840. samsara/types/trailer_stat_reefer_alarm_type_response_body.py +32 -0
  841. samsara/types/trailer_stat_reefer_alarm_with_decorations_type_response_body.py +34 -0
  842. samsara/types/trailer_stat_reefer_ambient_air_temperature_milli_c_type_response_body.py +31 -0
  843. samsara/types/trailer_stat_reefer_ambient_air_temperature_with_decorations_type_response_body.py +33 -0
  844. samsara/types/trailer_stat_reefer_door_state_zone_1_type_response_body.py +34 -0
  845. samsara/types/trailer_stat_reefer_door_state_zone_1_type_response_body_value.py +5 -0
  846. samsara/types/trailer_stat_reefer_door_state_zone_1_with_decorations_type_response_body.py +36 -0
  847. samsara/types/trailer_stat_reefer_door_state_zone_1_with_decorations_type_response_body_value.py +7 -0
  848. samsara/types/trailer_stat_reefer_door_state_zone_2_type_response_body.py +34 -0
  849. samsara/types/trailer_stat_reefer_door_state_zone_2_type_response_body_value.py +5 -0
  850. samsara/types/trailer_stat_reefer_door_state_zone_2_with_decorations_type_response_body.py +36 -0
  851. samsara/types/trailer_stat_reefer_door_state_zone_2_with_decorations_type_response_body_value.py +7 -0
  852. samsara/types/trailer_stat_reefer_door_state_zone_3_type_response_body.py +34 -0
  853. samsara/types/trailer_stat_reefer_door_state_zone_3_type_response_body_value.py +5 -0
  854. samsara/types/trailer_stat_reefer_door_state_zone_3_with_decorations_type_response_body.py +36 -0
  855. samsara/types/trailer_stat_reefer_door_state_zone_3_with_decorations_type_response_body_value.py +7 -0
  856. samsara/types/trailer_stat_reefer_fuel_percent_type_response_body.py +31 -0
  857. samsara/types/trailer_stat_reefer_fuel_percent_with_decorations_type_response_body.py +33 -0
  858. samsara/types/trailer_stat_reefer_obd_engine_seconds_type_response_body.py +31 -0
  859. samsara/types/trailer_stat_reefer_obd_engine_seconds_with_decorations_type_response_body.py +33 -0
  860. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_1_type_response_body.py +31 -0
  861. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
  862. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_2_type_response_body.py +31 -0
  863. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
  864. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_3_type_response_body.py +31 -0
  865. samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
  866. samsara/types/trailer_stat_reefer_run_mode_type_response_body.py +31 -0
  867. samsara/types/trailer_stat_reefer_run_mode_with_decorations_type_response_body.py +33 -0
  868. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_1_type_response_body.py +31 -0
  869. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
  870. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_2_type_response_body.py +31 -0
  871. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
  872. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_3_type_response_body.py +31 -0
  873. samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
  874. samsara/types/trailer_stat_reefer_state_type_response_body.py +40 -0
  875. samsara/types/trailer_stat_reefer_state_with_decorations_type_response_body.py +42 -0
  876. samsara/types/trailer_stat_reefer_state_zone_1_type_response_body.py +40 -0
  877. samsara/types/trailer_stat_reefer_state_zone_1_with_decorations_type_response_body.py +42 -0
  878. samsara/types/trailer_stat_reefer_state_zone_2_type_response_body.py +40 -0
  879. samsara/types/trailer_stat_reefer_state_zone_2_with_decorations_type_response_body.py +42 -0
  880. samsara/types/trailer_stat_reefer_state_zone_3_type_response_body.py +40 -0
  881. samsara/types/trailer_stat_reefer_state_zone_3_with_decorations_type_response_body.py +42 -0
  882. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_1_type_response_body.py +31 -0
  883. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
  884. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_2_type_response_body.py +31 -0
  885. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
  886. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_3_type_response_body.py +31 -0
  887. samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
  888. samsara/types/trailer_stats_get_trailer_stats_feed_bad_gateway_error_response_body.py +33 -0
  889. samsara/types/trailer_stats_get_trailer_stats_feed_gateway_timeout_error_response_body.py +33 -0
  890. samsara/types/trailer_stats_get_trailer_stats_feed_internal_server_error_response_body.py +33 -0
  891. samsara/types/trailer_stats_get_trailer_stats_feed_method_not_allowed_error_response_body.py +33 -0
  892. samsara/types/trailer_stats_get_trailer_stats_feed_not_found_error_response_body.py +33 -0
  893. samsara/types/trailer_stats_get_trailer_stats_feed_not_implemented_error_response_body.py +33 -0
  894. samsara/types/trailer_stats_get_trailer_stats_feed_response_body.py +26 -0
  895. samsara/types/trailer_stats_get_trailer_stats_feed_service_unavailable_error_response_body.py +33 -0
  896. samsara/types/trailer_stats_get_trailer_stats_feed_too_many_requests_error_response_body.py +33 -0
  897. samsara/types/trailer_stats_get_trailer_stats_feed_unauthorized_error_response_body.py +33 -0
  898. samsara/types/trailer_stats_get_trailer_stats_history_bad_gateway_error_response_body.py +33 -0
  899. samsara/types/trailer_stats_get_trailer_stats_history_gateway_timeout_error_response_body.py +33 -0
  900. samsara/types/trailer_stats_get_trailer_stats_history_internal_server_error_response_body.py +33 -0
  901. samsara/types/trailer_stats_get_trailer_stats_history_method_not_allowed_error_response_body.py +33 -0
  902. samsara/types/trailer_stats_get_trailer_stats_history_not_found_error_response_body.py +33 -0
  903. samsara/types/trailer_stats_get_trailer_stats_history_not_implemented_error_response_body.py +33 -0
  904. samsara/types/trailer_stats_get_trailer_stats_history_response_body.py +26 -0
  905. samsara/types/trailer_stats_get_trailer_stats_history_service_unavailable_error_response_body.py +33 -0
  906. samsara/types/trailer_stats_get_trailer_stats_history_too_many_requests_error_response_body.py +33 -0
  907. samsara/types/trailer_stats_get_trailer_stats_history_unauthorized_error_response_body.py +33 -0
  908. samsara/types/trailer_stats_get_trailer_stats_snapshot_bad_gateway_error_response_body.py +33 -0
  909. samsara/types/trailer_stats_get_trailer_stats_snapshot_gateway_timeout_error_response_body.py +33 -0
  910. samsara/types/trailer_stats_get_trailer_stats_snapshot_internal_server_error_response_body.py +33 -0
  911. samsara/types/trailer_stats_get_trailer_stats_snapshot_method_not_allowed_error_response_body.py +33 -0
  912. samsara/types/trailer_stats_get_trailer_stats_snapshot_not_found_error_response_body.py +33 -0
  913. samsara/types/trailer_stats_get_trailer_stats_snapshot_not_implemented_error_response_body.py +33 -0
  914. samsara/types/trailer_stats_get_trailer_stats_snapshot_response_body.py +26 -0
  915. samsara/types/trailer_stats_get_trailer_stats_snapshot_service_unavailable_error_response_body.py +33 -0
  916. samsara/types/trailer_stats_get_trailer_stats_snapshot_too_many_requests_error_response_body.py +33 -0
  917. samsara/types/trailer_stats_get_trailer_stats_snapshot_unauthorized_error_response_body.py +33 -0
  918. samsara/types/trailer_stats_object_response_body.py +281 -0
  919. samsara/types/trailer_stats_snapshot_object_response_body.py +155 -0
  920. samsara/types/trips_breakdown_response_body.py +67 -0
  921. samsara/types/unit_response_body.py +2 -2
  922. samsara/types/unit_response_body_base_unit.py +15 -0
  923. samsara/types/unit_response_body_measurement_type.py +4 -0
  924. samsara/types/update_engine_immobilizer_relay_state_request_body_request_body.py +36 -0
  925. samsara/types/update_engine_immobilizer_relay_state_request_body_request_body_id.py +5 -0
  926. samsara/types/update_hub_location_request_body_request_body.py +93 -0
  927. samsara/types/uploaded_media_object_response_body.py +9 -1
  928. samsara/types/uploaded_media_object_response_body_camera_role.py +28 -0
  929. samsara/types/uploaded_media_object_response_body_input.py +2 -1
  930. samsara/types/v_1_asset.py +56 -0
  931. samsara/types/v_1_asset_cable.py +30 -0
  932. samsara/types/v_1_asset_current_location.py +52 -0
  933. samsara/types/v_1_asset_current_locations_response.py +55 -0
  934. samsara/types/v_1_asset_location_response.py +7 -0
  935. samsara/types/v_1_asset_location_response_item.py +50 -0
  936. samsara/types/v_1_asset_reefer_response.py +45 -0
  937. samsara/types/v_1_asset_reefer_response_reefer_stats.py +67 -0
  938. samsara/types/v_1_asset_reefer_response_reefer_stats_alarms.py +43 -0
  939. samsara/types/v_1_asset_reefer_response_reefer_stats_alarms_1.py +28 -0
  940. samsara/types/v_1_asset_reefer_response_reefer_stats_engine_hours.py +33 -0
  941. samsara/types/v_1_asset_reefer_response_reefer_stats_fuel_percentage.py +33 -0
  942. samsara/types/v_1_asset_reefer_response_reefer_stats_power_status.py +31 -0
  943. samsara/types/v_1_asset_reefer_response_reefer_stats_return_air_temp.py +33 -0
  944. samsara/types/v_1_asset_reefer_response_reefer_stats_set_point.py +33 -0
  945. samsara/types/v_1_assets_reefer.py +45 -0
  946. samsara/types/v_1_assets_reefer_reefer_stats.py +91 -0
  947. samsara/types/v_1_assets_reefer_reefer_stats_ambient_air_temperature.py +33 -0
  948. samsara/types/v_1_assets_reefer_reefer_stats_discharge_air_temperature.py +33 -0
  949. samsara/types/v_1_assets_reefer_reefer_stats_power_status.py +32 -0
  950. samsara/types/v_1_assets_reefer_reefer_stats_power_status_status.py +7 -0
  951. samsara/types/v_1_cargo_response.py +33 -0
  952. samsara/types/v_1_cargo_response_sensors.py +64 -0
  953. samsara/types/v_1_door_response.py +33 -0
  954. samsara/types/v_1_door_response_sensors.py +57 -0
  955. samsara/types/v_1_driver_safety_score_response.py +104 -0
  956. samsara/types/v_1_hos_authentication_logs_response.py +25 -0
  957. samsara/types/v_1_hos_authentication_logs_response_authentication_logs.py +55 -0
  958. samsara/types/v_1_humidity_response.py +33 -0
  959. samsara/types/v_1_humidity_response_sensors.py +55 -0
  960. samsara/types/v_1_machine.py +36 -0
  961. samsara/types/v_1_machine_history_response.py +24 -0
  962. samsara/types/v_1_machine_history_response_machines.py +33 -0
  963. samsara/types/v_1_machine_history_response_vibrations.py +24 -0
  964. samsara/types/v_1_pagination.py +39 -0
  965. samsara/types/v_1_programs_for_the_camera_response.py +7 -0
  966. samsara/types/v_1_programs_for_the_camera_response_item.py +22 -0
  967. samsara/types/v_1_safety_report_harsh_event.py +44 -0
  968. samsara/types/v_1_sensor.py +40 -0
  969. samsara/types/v_1_sensor_history_response.py +24 -0
  970. samsara/types/v_1_sensor_history_response_results.py +31 -0
  971. samsara/types/v_1_sensors_history_series.py +34 -0
  972. samsara/types/v_1_sensors_history_series_field.py +25 -0
  973. samsara/types/v_1_temperature_response.py +33 -0
  974. samsara/types/v_1_temperature_response_sensors.py +71 -0
  975. samsara/types/v_1_trailer_assignment_response.py +40 -0
  976. samsara/types/v_1_trailer_assignments_response.py +19 -0
  977. samsara/types/v_1_trailer_assignments_response_all_of.py +24 -0
  978. samsara/types/v_1_trailer_base.py +27 -0
  979. samsara/types/v_1_trip_response.py +24 -0
  980. samsara/types/v_1_trip_response_end_address.py +36 -0
  981. samsara/types/v_1_trip_response_end_coordinates.py +24 -0
  982. samsara/types/v_1_trip_response_start_address.py +36 -0
  983. samsara/types/v_1_trip_response_start_coordinates.py +24 -0
  984. samsara/types/v_1_trip_response_trips.py +119 -0
  985. samsara/types/v_1_vehicle_harsh_event_response.py +64 -0
  986. samsara/types/v_1_vehicle_harsh_event_response_location.py +32 -0
  987. samsara/types/v_1_vehicle_maintenance.py +33 -0
  988. samsara/types/v_1_vehicle_maintenance_j_1939.py +36 -0
  989. samsara/types/v_1_vehicle_maintenance_j_1939_check_engine_light.py +28 -0
  990. samsara/types/v_1_vehicle_maintenance_j_1939_diagnostic_trouble_codes.py +26 -0
  991. samsara/types/v_1_vehicle_maintenance_passenger.py +38 -0
  992. samsara/types/v_1_vehicle_maintenance_passenger_check_engine_light.py +25 -0
  993. samsara/types/v_1_vehicle_maintenance_passenger_diagnostic_trouble_codes.py +23 -0
  994. samsara/types/v_1_vehicle_safety_score_response.py +104 -0
  995. samsara/types/v_1_vision_cameras_response.py +7 -0
  996. samsara/types/v_1_vision_cameras_response_item.py +24 -0
  997. samsara/types/v_1_vision_run_by_camera_response.py +35 -0
  998. samsara/types/v_1_vision_run_by_camera_response_inspection_results.py +26 -0
  999. samsara/types/v_1_vision_run_by_camera_response_program.py +20 -0
  1000. samsara/types/v_1_vision_run_by_camera_response_run_summary.py +24 -0
  1001. samsara/types/v_1_vision_runs_by_camera_and_program_response.py +30 -0
  1002. samsara/types/v_1_vision_runs_by_camera_response.py +7 -0
  1003. samsara/types/v_1_vision_runs_by_camera_response_item.py +29 -0
  1004. samsara/types/v_1_vision_runs_by_camera_response_item_program.py +20 -0
  1005. samsara/types/v_1_vision_runs_by_camera_response_item_report_metadata.py +24 -0
  1006. samsara/types/v_1_vision_runs_response.py +24 -0
  1007. samsara/types/v_1_vision_runs_response_report_metadata.py +51 -0
  1008. samsara/types/v_1_vision_runs_response_vision_runs.py +28 -0
  1009. samsara/types/v_1_vision_step_results.py +7 -0
  1010. samsara/types/v_1_vision_step_results_item.py +68 -0
  1011. samsara/types/v_1_vision_step_results_item_angle_check.py +48 -0
  1012. samsara/types/v_1_vision_step_results_item_angle_check_angle_configured.py +24 -0
  1013. samsara/types/v_1_vision_step_results_item_barcode_item.py +23 -0
  1014. samsara/types/v_1_vision_step_results_item_boolean_logic.py +21 -0
  1015. samsara/types/v_1_vision_step_results_item_boolean_logic_steps_item.py +20 -0
  1016. samsara/types/v_1_vision_step_results_item_caliper.py +85 -0
  1017. samsara/types/v_1_vision_step_results_item_caliper_angle_range.py +24 -0
  1018. samsara/types/v_1_vision_step_results_item_caliper_contrast_range.py +24 -0
  1019. samsara/types/v_1_vision_step_results_item_caliper_filter_polarity.py +7 -0
  1020. samsara/types/v_1_vision_step_results_item_caliper_sharpness_range.py +24 -0
  1021. samsara/types/v_1_vision_step_results_item_caliper_straightness_range.py +24 -0
  1022. samsara/types/v_1_vision_step_results_item_contour.py +47 -0
  1023. samsara/types/v_1_vision_step_results_item_distance.py +87 -0
  1024. samsara/types/v_1_vision_step_results_item_expiration_date.py +23 -0
  1025. samsara/types/v_1_vision_step_results_item_find_copies.py +52 -0
  1026. samsara/types/v_1_vision_step_results_item_find_edge.py +86 -0
  1027. samsara/types/v_1_vision_step_results_item_find_edge_angle_range.py +24 -0
  1028. samsara/types/v_1_vision_step_results_item_find_edge_contrast_range.py +24 -0
  1029. samsara/types/v_1_vision_step_results_item_find_edge_sharpness_range.py +24 -0
  1030. samsara/types/v_1_vision_step_results_item_find_edge_straightness_range.py +24 -0
  1031. samsara/types/v_1_vision_step_results_item_find_shapes.py +23 -0
  1032. samsara/types/v_1_vision_step_results_item_fixture.py +24 -0
  1033. samsara/types/v_1_vision_step_results_item_fixture_coordinates.py +20 -0
  1034. samsara/types/v_1_vision_step_results_item_label_match.py +20 -0
  1035. samsara/types/v_1_vision_step_results_item_presence_absence.py +55 -0
  1036. samsara/types/v_1_vision_step_results_item_presence_absence_blue_range.py +20 -0
  1037. samsara/types/v_1_vision_step_results_item_presence_absence_grayscale_range.py +20 -0
  1038. samsara/types/v_1_vision_step_results_item_presence_absence_green_range.py +20 -0
  1039. samsara/types/v_1_vision_step_results_item_presence_absence_hue_range.py +20 -0
  1040. samsara/types/v_1_vision_step_results_item_presence_absence_red_range.py +20 -0
  1041. samsara/types/v_1_vision_step_results_item_presence_absence_saturation_range.py +20 -0
  1042. samsara/types/v_1_vision_step_results_item_presence_absence_value_range.py +20 -0
  1043. samsara/types/v_1_vision_step_results_item_text_match.py +22 -0
  1044. samsara/types/vehicle_fault_code_details_object_request_body.py +7 -0
  1045. samsara/types/vehicle_fault_code_details_object_response_body.py +7 -0
  1046. samsara/types/vehicle_safety_score_response_body.py +59 -0
  1047. samsara/types/vehicle_stats_decorations.py +9 -0
  1048. samsara/types/vehicle_stats_decorations_fuel_consumed_milliliters.py +20 -0
  1049. samsara/types/vehicle_stats_decorations_idling_duration_milliseconds.py +20 -0
  1050. samsara/types/vehicle_stats_fuel_consumed_milliliters.py +28 -0
  1051. samsara/types/vehicle_stats_fuel_consumed_milliliters_value.py +3 -0
  1052. samsara/types/vehicle_stats_fuel_consumed_milliliters_with_decoration.py +30 -0
  1053. samsara/types/vehicle_stats_idling_duration_milliseconds.py +28 -0
  1054. samsara/types/vehicle_stats_idling_duration_milliseconds_value.py +3 -0
  1055. samsara/types/vehicle_stats_idling_duration_milliseconds_with_decoration.py +30 -0
  1056. samsara/types/vehicle_stats_list_response_data.py +20 -0
  1057. samsara/types/vehicle_stats_response_data.py +8 -0
  1058. samsara/types/vehicle_stats_synthetic_engine_seconds.py +1 -1
  1059. samsara/types/vehicle_summary.py +68 -0
  1060. samsara/types/vehicles_lock_lock_vehicle_bad_gateway_error_response_body.py +33 -0
  1061. samsara/types/vehicles_lock_lock_vehicle_gateway_timeout_error_response_body.py +33 -0
  1062. samsara/types/vehicles_lock_lock_vehicle_internal_server_error_response_body.py +33 -0
  1063. samsara/types/vehicles_lock_lock_vehicle_method_not_allowed_error_response_body.py +33 -0
  1064. samsara/types/vehicles_lock_lock_vehicle_not_found_error_response_body.py +33 -0
  1065. samsara/types/vehicles_lock_lock_vehicle_not_implemented_error_response_body.py +33 -0
  1066. samsara/types/vehicles_lock_lock_vehicle_service_unavailable_error_response_body.py +33 -0
  1067. samsara/types/vehicles_lock_lock_vehicle_too_many_requests_error_response_body.py +33 -0
  1068. samsara/types/vehicles_lock_lock_vehicle_unauthorized_error_response_body.py +33 -0
  1069. samsara/types/vehicles_lock_unlock_vehicle_bad_gateway_error_response_body.py +33 -0
  1070. samsara/types/vehicles_lock_unlock_vehicle_gateway_timeout_error_response_body.py +33 -0
  1071. samsara/types/vehicles_lock_unlock_vehicle_internal_server_error_response_body.py +33 -0
  1072. samsara/types/vehicles_lock_unlock_vehicle_method_not_allowed_error_response_body.py +33 -0
  1073. samsara/types/vehicles_lock_unlock_vehicle_not_found_error_response_body.py +33 -0
  1074. samsara/types/vehicles_lock_unlock_vehicle_not_implemented_error_response_body.py +33 -0
  1075. samsara/types/vehicles_lock_unlock_vehicle_service_unavailable_error_response_body.py +33 -0
  1076. samsara/types/vehicles_lock_unlock_vehicle_too_many_requests_error_response_body.py +33 -0
  1077. samsara/types/vehicles_lock_unlock_vehicle_unauthorized_error_response_body.py +33 -0
  1078. samsara/types/webhook_response_response_body_event_types_item.py +2 -0
  1079. samsara/types/webhooks_get_webhook_response_body_event_types_item.py +2 -0
  1080. samsara/types/webhooks_patch_webhook_response_body_event_types_item.py +2 -0
  1081. samsara/types/webhooks_post_webhooks_response_body_event_types_item.py +2 -0
  1082. samsara/types/work_order_object_response_body.py +21 -0
  1083. samsara/types/work_order_tax_create_object_request_body.py +33 -0
  1084. samsara/types/workflow_incident_details_object_response_body.py +4 -0
  1085. samsara/users/__init__.py +28 -1
  1086. samsara/users/client.py +147 -51
  1087. samsara/users/raw_client.py +138 -61
  1088. samsara/users/types/__init__.py +32 -2
  1089. samsara/vehicle_locations/client.py +485 -0
  1090. samsara/vehicle_locations/raw_client.py +472 -0
  1091. samsara/vehicle_stats/__init__.py +52 -0
  1092. samsara/vehicle_stats/client.py +1092 -0
  1093. samsara/vehicle_stats/raw_client.py +1091 -0
  1094. samsara/vehicle_stats/types/__init__.py +50 -0
  1095. samsara/vehicle_stats/types/get_vehicle_stats_feed_request_decorations_item.py +57 -0
  1096. samsara/vehicle_stats/types/get_vehicle_stats_feed_request_types_item.py +71 -0
  1097. samsara/vehicle_stats/types/get_vehicle_stats_history_request_decorations_item.py +57 -0
  1098. samsara/vehicle_stats/types/get_vehicle_stats_history_request_types_item.py +71 -0
  1099. samsara/vehicle_stats/types/get_vehicle_stats_request_types_item.py +71 -0
  1100. samsara/vehicles/__init__.py +58 -32
  1101. samsara/vehicles/client.py +20 -17
  1102. samsara/vehicles/raw_client.py +2 -2
  1103. samsara/vehicles/types/__init__.py +56 -14
  1104. samsara/webhooks/__init__.py +36 -5
  1105. samsara/webhooks/client.py +47 -47
  1106. samsara/webhooks/raw_client.py +18 -51
  1107. samsara/webhooks/types/__init__.py +34 -3
  1108. samsara/webhooks/types/webhooks_post_webhooks_request_body_event_types_item.py +2 -0
  1109. samsara/work_orders/__init__.py +55 -0
  1110. samsara/work_orders/client.py +995 -0
  1111. samsara/work_orders/raw_client.py +2258 -0
  1112. samsara/work_orders/types/__init__.py +53 -0
  1113. samsara/work_orders/types/stream_work_orders_request_work_order_statuses_item.py +18 -0
  1114. samsara_api-4.0.1.dist-info/METADATA +670 -0
  1115. samsara_api-4.0.1.dist-info/RECORD +3387 -0
  1116. samsara/alerts/configurations/__init__.py +0 -7
  1117. samsara/alerts/configurations/client.py +0 -720
  1118. samsara/alerts/configurations/raw_client.py +0 -1552
  1119. samsara/alerts/configurations/types/__init__.py +0 -7
  1120. samsara/alerts/configurations/types/configurations_list_request_status.py +0 -5
  1121. samsara/alerts/incidents/client.py +0 -180
  1122. samsara/alerts/incidents/raw_client.py +0 -396
  1123. samsara/assets/location_and_speed/client.py +0 -226
  1124. samsara/assets/location_and_speed/raw_client.py +0 -458
  1125. samsara/attributes/types/attributes_delete_request_entity_type.py +0 -5
  1126. samsara/attributes/types/attributes_get_request_entity_type.py +0 -5
  1127. samsara/attributes/types/attributes_list_request_entity_type.py +0 -5
  1128. samsara/attributes/types/create_attribute_request_attribute_value_quantity.py +0 -5
  1129. samsara/attributes/types/update_attribute_request_attribute_value_quantity.py +0 -5
  1130. samsara/auth/__init__.py +0 -8
  1131. samsara/auth/client.py +0 -39
  1132. samsara/auth/raw_client.py +0 -13
  1133. samsara/auth/tokens/__init__.py +0 -7
  1134. samsara/auth/tokens/client.py +0 -185
  1135. samsara/auth/tokens/raw_client.py +0 -210
  1136. samsara/auth/tokens/types/__init__.py +0 -7
  1137. samsara/auth/tokens/types/create_tokens_response.py +0 -23
  1138. samsara/cameras/__init__.py +0 -13
  1139. samsara/cameras/client.py +0 -39
  1140. samsara/cameras/media/__init__.py +0 -19
  1141. samsara/cameras/media/client.py +0 -232
  1142. samsara/cameras/media/raw_client.py +0 -417
  1143. samsara/cameras/media/retrieval/__init__.py +0 -13
  1144. samsara/cameras/media/retrieval/client.py +0 -286
  1145. samsara/cameras/media/retrieval/raw_client.py +0 -686
  1146. samsara/cameras/media/retrieval/types/__init__.py +0 -15
  1147. samsara/cameras/media/retrieval/types/media_retrieval_post_media_retrieval_request_body_inputs_item.py +0 -7
  1148. samsara/cameras/media/types/__init__.py +0 -9
  1149. samsara/cameras/media/types/media_list_request_inputs_item.py +0 -7
  1150. samsara/cameras/media/types/media_list_request_media_types_item.py +0 -5
  1151. samsara/cameras/media/types/media_list_request_trigger_reasons_item.py +0 -17
  1152. samsara/cameras/raw_client.py +0 -13
  1153. samsara/coaching/driver_coach_assignments/client.py +0 -285
  1154. samsara/coaching/driver_coach_assignments/raw_client.py +0 -716
  1155. samsara/coaching/sessions/client.py +0 -228
  1156. samsara/coaching/sessions/raw_client.py +0 -448
  1157. samsara/defect_types/client.py +0 -156
  1158. samsara/defect_types/raw_client.py +0 -384
  1159. samsara/defects/client.py +0 -583
  1160. samsara/defects/raw_client.py +0 -1028
  1161. samsara/devices/client.py +0 -190
  1162. samsara/devices/raw_client.py +0 -412
  1163. samsara/document_types/client.py +0 -134
  1164. samsara/document_types/raw_client.py +0 -354
  1165. samsara/documents/pdfs/client.py +0 -206
  1166. samsara/documents/pdfs/raw_client.py +0 -212
  1167. samsara/driver_trailer_assignments/client.py +0 -389
  1168. samsara/driver_trailer_assignments/raw_client.py +0 -1044
  1169. samsara/driver_vehicle_assignments/types/driver_vehicle_assignments_get_request_assignment_type.py +0 -10
  1170. samsara/driver_vehicle_assignments/types/driver_vehicle_assignments_get_request_filter_by.py +0 -5
  1171. samsara/drivers/qr_codes/client.py +0 -304
  1172. samsara/drivers/qr_codes/raw_client.py +0 -926
  1173. samsara/drivers/vehicle_assignments/__init__.py +0 -7
  1174. samsara/drivers/vehicle_assignments/client.py +0 -201
  1175. samsara/drivers/vehicle_assignments/raw_client.py +0 -397
  1176. samsara/drivers/vehicle_assignments/types/__init__.py +0 -9
  1177. samsara/drivers/vehicle_assignments/types/vehicle_assignments_list_request_driver_activation_status.py +0 -5
  1178. samsara/dvirs/__init__.py +0 -7
  1179. samsara/dvirs/client.py +0 -775
  1180. samsara/dvirs/raw_client.py +0 -1223
  1181. samsara/dvirs/types/__init__.py +0 -7
  1182. samsara/equipment/locations/client.py +0 -467
  1183. samsara/equipment/locations/raw_client.py +0 -543
  1184. samsara/equipment/stats/__init__.py +0 -7
  1185. samsara/equipment/stats/client.py +0 -602
  1186. samsara/equipment/stats/raw_client.py +0 -684
  1187. samsara/equipment/stats/types/__init__.py +0 -9
  1188. samsara/equipment/stats/types/stats_feed_request_types_item.py +0 -19
  1189. samsara/equipment/stats/types/stats_history_request_types_item.py +0 -19
  1190. samsara/equipment/stats/types/stats_list_request_types_item.py +0 -19
  1191. samsara/form_submissions/__init__.py +0 -8
  1192. samsara/form_submissions/client.py +0 -669
  1193. samsara/form_submissions/pdf_exports/client.py +0 -221
  1194. samsara/form_submissions/pdf_exports/raw_client.py +0 -627
  1195. samsara/form_submissions/raw_client.py +0 -1550
  1196. samsara/form_submissions/types/__init__.py +0 -9
  1197. samsara/fuel_purchases/__init__.py +0 -7
  1198. samsara/fuel_purchases/client.py +0 -219
  1199. samsara/fuel_purchases/raw_client.py +0 -410
  1200. samsara/fuel_purchases/types/__init__.py +0 -9
  1201. samsara/hos/__init__.py +0 -7
  1202. samsara/hos/client.py +0 -695
  1203. samsara/hos/raw_client.py +0 -1177
  1204. samsara/hos/types/__init__.py +0 -7
  1205. samsara/hos/types/hos_daily_logs_request_driver_activation_status.py +0 -5
  1206. samsara/idling/types/idling_list_request_pto_state.py +0 -5
  1207. samsara/ifta/csv/__init__.py +0 -4
  1208. samsara/ifta/csv/client.py +0 -274
  1209. samsara/ifta/csv/raw_client.py +0 -675
  1210. samsara/inputs/__init__.py +0 -7
  1211. samsara/inputs/client.py +0 -223
  1212. samsara/inputs/raw_client.py +0 -445
  1213. samsara/inputs/types/__init__.py +0 -7
  1214. samsara/inputs/types/inputs_stream_request_type.py +0 -27
  1215. samsara/live_shares/__init__.py +0 -7
  1216. samsara/live_shares/client.py +0 -544
  1217. samsara/live_shares/raw_client.py +0 -1418
  1218. samsara/live_shares/types/__init__.py +0 -10
  1219. samsara/live_shares/types/live_shares_list_request_type.py +0 -7
  1220. samsara/maintenance/service_tasks/__init__.py +0 -4
  1221. samsara/maintenance/service_tasks/client.py +0 -322
  1222. samsara/maintenance/service_tasks/raw_client.py +0 -529
  1223. samsara/maintenance/work_orders/__init__.py +0 -21
  1224. samsara/maintenance/work_orders/client.py +0 -867
  1225. samsara/maintenance/work_orders/raw_client.py +0 -1980
  1226. samsara/maintenance/work_orders/types/__init__.py +0 -19
  1227. samsara/maintenance/work_orders/types/work_orders_stream_request_work_order_statuses_item.py +0 -18
  1228. samsara/me/__init__.py +0 -4
  1229. samsara/me/client.py +0 -108
  1230. samsara/me/raw_client.py +0 -99
  1231. samsara/readings/__init__.py +0 -4
  1232. samsara/readings/client.py +0 -524
  1233. samsara/readings/raw_client.py +0 -1214
  1234. samsara/reports/__init__.py +0 -7
  1235. samsara/reports/client.py +0 -49
  1236. samsara/reports/drivers/__init__.py +0 -7
  1237. samsara/reports/drivers/client.py +0 -39
  1238. samsara/reports/drivers/fuel_energy/__init__.py +0 -4
  1239. samsara/reports/drivers/fuel_energy/client.py +0 -194
  1240. samsara/reports/drivers/fuel_energy/raw_client.py +0 -384
  1241. samsara/reports/drivers/raw_client.py +0 -13
  1242. samsara/reports/ifta/__init__.py +0 -18
  1243. samsara/reports/ifta/client.py +0 -44
  1244. samsara/reports/ifta/jurisdiction/__init__.py +0 -7
  1245. samsara/reports/ifta/jurisdiction/client.py +0 -217
  1246. samsara/reports/ifta/jurisdiction/raw_client.py +0 -409
  1247. samsara/reports/ifta/jurisdiction/types/__init__.py +0 -9
  1248. samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_fuel_type.py +0 -25
  1249. samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_month.py +0 -21
  1250. samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_quarter.py +0 -5
  1251. samsara/reports/ifta/raw_client.py +0 -13
  1252. samsara/reports/ifta/vehicle/__init__.py +0 -7
  1253. samsara/reports/ifta/vehicle/client.py +0 -227
  1254. samsara/reports/ifta/vehicle/raw_client.py +0 -419
  1255. samsara/reports/ifta/vehicle/types/__init__.py +0 -9
  1256. samsara/reports/ifta/vehicle/types/vehicle_list_request_fuel_type.py +0 -25
  1257. samsara/reports/ifta/vehicle/types/vehicle_list_request_month.py +0 -21
  1258. samsara/reports/ifta/vehicle/types/vehicle_list_request_quarter.py +0 -5
  1259. samsara/reports/raw_client.py +0 -13
  1260. samsara/reports/vehicles/__init__.py +0 -8
  1261. samsara/reports/vehicles/client.py +0 -44
  1262. samsara/reports/vehicles/fuel_energy/__init__.py +0 -7
  1263. samsara/reports/vehicles/fuel_energy/client.py +0 -205
  1264. samsara/reports/vehicles/fuel_energy/raw_client.py +0 -395
  1265. samsara/reports/vehicles/fuel_energy/types/__init__.py +0 -7
  1266. samsara/reports/vehicles/fuel_energy/types/fuel_energy_list_request_energy_type.py +0 -5
  1267. samsara/reports/vehicles/idling/__init__.py +0 -4
  1268. samsara/reports/vehicles/idling/client.py +0 -236
  1269. samsara/reports/vehicles/idling/raw_client.py +0 -462
  1270. samsara/reports/vehicles/raw_client.py +0 -13
  1271. samsara/routes/audit_logs/__init__.py +0 -4
  1272. samsara/routes/audit_logs/client.py +0 -146
  1273. samsara/routes/audit_logs/raw_client.py +0 -350
  1274. samsara/safety_events/__init__.py +0 -7
  1275. samsara/safety_events/audit_logs/__init__.py +0 -4
  1276. samsara/safety_events/audit_logs/client.py +0 -160
  1277. samsara/safety_events/audit_logs/raw_client.py +0 -386
  1278. samsara/safety_events/client.py +0 -199
  1279. samsara/safety_events/raw_client.py +0 -207
  1280. samsara/settings/compliance/__init__.py +0 -4
  1281. samsara/settings/compliance/client.py +0 -308
  1282. samsara/settings/compliance/raw_client.py +0 -718
  1283. samsara/settings/driver_app/__init__.py +0 -4
  1284. samsara/settings/driver_app/client.py +0 -270
  1285. samsara/settings/driver_app/raw_client.py +0 -697
  1286. samsara/settings/safety/__init__.py +0 -4
  1287. samsara/settings/safety/client.py +0 -118
  1288. samsara/settings/safety/raw_client.py +0 -314
  1289. samsara/speeding_intervals/types/speeding_intervals_stream_request_query_by.py +0 -5
  1290. samsara/tachograph/__init__.py +0 -7
  1291. samsara/tachograph/client.py +0 -44
  1292. samsara/tachograph/driver/__init__.py +0 -4
  1293. samsara/tachograph/driver/client.py +0 -337
  1294. samsara/tachograph/driver/raw_client.py +0 -322
  1295. samsara/tachograph/raw_client.py +0 -13
  1296. samsara/tachograph/vehicles/__init__.py +0 -4
  1297. samsara/tachograph/vehicles/client.py +0 -190
  1298. samsara/tachograph/vehicles/raw_client.py +0 -173
  1299. samsara/training_assignments/__init__.py +0 -4
  1300. samsara/training_assignments/client.py +0 -520
  1301. samsara/training_assignments/raw_client.py +0 -1326
  1302. samsara/training_courses/__init__.py +0 -4
  1303. samsara/training_courses/client.py +0 -178
  1304. samsara/training_courses/raw_client.py +0 -398
  1305. samsara/trips/types/__init__.py +0 -8
  1306. samsara/trips/types/trips_stream_request_completion_status.py +0 -5
  1307. samsara/trips/types/trips_stream_request_query_by.py +0 -5
  1308. samsara/types/alert_event.py +0 -74
  1309. samsara/types/alert_event_alert_condition_id.py +0 -40
  1310. samsara/types/alert_event_device.py +0 -37
  1311. samsara/types/alert_event_driver.py +0 -27
  1312. samsara/types/alert_event_dvir.py +0 -52
  1313. samsara/types/alert_event_dvir_defects_item.py +0 -44
  1314. samsara/types/alert_event_dvir_driver.py +0 -27
  1315. samsara/types/alert_event_dvir_inspection_type.py +0 -7
  1316. samsara/types/alert_event_dvir_safety_status.py +0 -5
  1317. samsara/types/alert_event_dvir_trailer.py +0 -27
  1318. samsara/types/alert_event_dvir_vehicle.py +0 -27
  1319. samsara/types/assets_location_link_config_object.py +0 -31
  1320. samsara/types/assets_location_link_config_object_response_body.py +0 -33
  1321. samsara/types/attribute_attribute_value_quantity.py +0 -5
  1322. samsara/types/external_ids.py +0 -5
  1323. samsara/types/webhook_event.py +0 -37
  1324. samsara/user_roles/__init__.py +0 -4
  1325. samsara/user_roles/client.py +0 -142
  1326. samsara/user_roles/raw_client.py +0 -159
  1327. samsara/v_1_messages/__init__.py +0 -4
  1328. samsara/v_1_messages/client.py +0 -258
  1329. samsara/v_1_messages/raw_client.py +0 -273
  1330. samsara/vehicles/immobilizer/__init__.py +0 -4
  1331. samsara/vehicles/immobilizer/client.py +0 -182
  1332. samsara/vehicles/immobilizer/raw_client.py +0 -398
  1333. samsara/vehicles/locations/__init__.py +0 -4
  1334. samsara/vehicles/locations/client.py +0 -501
  1335. samsara/vehicles/locations/raw_client.py +0 -579
  1336. samsara/vehicles/stats/__init__.py +0 -19
  1337. samsara/vehicles/stats/client.py +0 -1076
  1338. samsara/vehicles/stats/raw_client.py +0 -1164
  1339. samsara/vehicles/stats/types/__init__.py +0 -17
  1340. samsara/vehicles/stats/types/stats_feed_request_decorations_item.py +0 -54
  1341. samsara/vehicles/stats/types/stats_feed_request_types_item.py +0 -68
  1342. samsara/vehicles/stats/types/stats_history_request_decorations_item.py +0 -54
  1343. samsara/vehicles/stats/types/stats_history_request_types_item.py +0 -68
  1344. samsara/vehicles/stats/types/stats_list_request_types_item.py +0 -68
  1345. samsara_api-3.0.0.dist-info/METADATA +0 -238
  1346. samsara_api-3.0.0.dist-info/RECORD +0 -2664
  1347. /samsara/{alerts/incidents → driver_qr_codes}/__init__.py +0 -0
  1348. /samsara/{assets/location_and_speed → fleet/attributes}/__init__.py +0 -0
  1349. /samsara/{form_submissions → forms}/types/form_submissions_patch_form_submission_request_body_status.py +0 -0
  1350. /samsara/{fuel_purchases → fuel_and_energy}/types/fuel_purchase_post_fuel_purchase_request_body_ifta_fuel_type.py +0 -0
  1351. /samsara/{coaching/driver_coach_assignments → hubs}/__init__.py +0 -0
  1352. /samsara/{coaching/sessions → industrial}/__init__.py +0 -0
  1353. /samsara/{live_shares → live_sharing_links}/types/live_sharing_links_create_live_sharing_link_request_body_type.py +0 -0
  1354. /samsara/{defect_types → location_and_speed}/__init__.py +0 -0
  1355. /samsara/{dvirs → maintenance}/types/create_dvir_request_safety_status.py +0 -0
  1356. /samsara/{cameras/media/retrieval → media}/types/media_retrieval_post_media_retrieval_request_body_media_type.py +0 -0
  1357. /samsara/{defects → messages}/__init__.py +0 -0
  1358. /samsara/{devices → organization_info}/__init__.py +0 -0
  1359. /samsara/{document_types → plans}/__init__.py +0 -0
  1360. /samsara/{documents/pdfs → preview_ap_is}/__init__.py +0 -0
  1361. /samsara/{driver_trailer_assignments → safety}/__init__.py +0 -0
  1362. /samsara/{drivers/qr_codes → tachograph_eu_only}/__init__.py +0 -0
  1363. /samsara/{equipment/locations → trailer_assignments}/__init__.py +0 -0
  1364. /samsara/{form_submissions/pdf_exports → vehicle_locations}/__init__.py +0 -0
  1365. /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_category.py +0 -0
  1366. /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_priority.py +0 -0
  1367. /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_status.py +0 -0
  1368. /samsara/{maintenance/work_orders → work_orders}/types/work_orders_post_work_orders_request_body_category.py +0 -0
  1369. /samsara/{maintenance/work_orders → work_orders}/types/work_orders_post_work_orders_request_body_priority.py +0 -0
  1370. {samsara_api-3.0.0.dist-info → samsara_api-4.0.1.dist-info}/LICENSE +0 -0
  1371. {samsara_api-3.0.0.dist-info → samsara_api-4.0.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,2106 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+ from json.decoder import JSONDecodeError
6
+
7
+ from ..core.api_error import ApiError
8
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ..core.datetime_utils import serialize_datetime
10
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
11
+ from ..core.jsonable_encoder import jsonable_encoder
12
+ from ..core.pydantic_utilities import parse_obj_as
13
+ from ..core.request_options import RequestOptions
14
+ from ..core.serialization import convert_and_respect_annotation_metadata
15
+ from ..errors.bad_gateway_error import BadGatewayError
16
+ from ..errors.gateway_timeout_error import GatewayTimeoutError
17
+ from ..errors.internal_server_error import InternalServerError
18
+ from ..errors.method_not_allowed_error import MethodNotAllowedError
19
+ from ..errors.not_found_error import NotFoundError
20
+ from ..errors.not_implemented_error import NotImplementedError
21
+ from ..errors.service_unavailable_error import ServiceUnavailableError
22
+ from ..errors.too_many_requests_error import TooManyRequestsError
23
+ from ..errors.unauthorized_error import UnauthorizedError
24
+ from ..types.hub_capacities_list_hub_capacities_response_body import HubCapacitiesListHubCapacitiesResponseBody
25
+ from ..types.hub_location_input_object_request_body import HubLocationInputObjectRequestBody
26
+ from ..types.hub_locations_create_hub_locations_response_body import HubLocationsCreateHubLocationsResponseBody
27
+ from ..types.hub_locations_list_hub_locations_response_body import HubLocationsListHubLocationsResponseBody
28
+ from ..types.hub_locations_update_hub_location_response_body import HubLocationsUpdateHubLocationResponseBody
29
+ from ..types.hub_skills_list_hub_skills_response_body import HubSkillsListHubSkillsResponseBody
30
+ from ..types.hubs_list_hubs_response_body import HubsListHubsResponseBody
31
+ from ..types.update_hub_location_request_body_request_body import UpdateHubLocationRequestBodyRequestBody
32
+
33
+ # this is used as the default value for optional parameters
34
+ OMIT = typing.cast(typing.Any, ...)
35
+
36
+
37
+ class RawHubsClient:
38
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
39
+ self._client_wrapper = client_wrapper
40
+
41
+ def list_hub_capacities(
42
+ self,
43
+ *,
44
+ hub_id: str,
45
+ capacity_ids: typing.Optional[str] = None,
46
+ capacity_names: typing.Optional[str] = None,
47
+ start_time: typing.Optional[dt.datetime] = None,
48
+ end_time: typing.Optional[dt.datetime] = None,
49
+ after: typing.Optional[str] = None,
50
+ limit: typing.Optional[int] = None,
51
+ request_options: typing.Optional[RequestOptions] = None,
52
+ ) -> HttpResponse[HubCapacitiesListHubCapacitiesResponseBody]:
53
+ """
54
+ Retrieve capacity types for a specific hub.
55
+
56
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
57
+
58
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
59
+
60
+
61
+ **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.
62
+
63
+ Parameters
64
+ ----------
65
+ hub_id : str
66
+ The hub identifier
67
+
68
+ capacity_ids : typing.Optional[str]
69
+ Comma-separated list of capacity IDs for filtering.
70
+
71
+ capacity_names : typing.Optional[str]
72
+ Comma-separated list of capacity names for filtering.
73
+
74
+ start_time : typing.Optional[dt.datetime]
75
+ Time filter of when the capacity was updated, in RFC 3339 format
76
+
77
+ end_time : typing.Optional[dt.datetime]
78
+ Time filter of when the capacity was updated, in RFC 3339 format
79
+
80
+ after : typing.Optional[str]
81
+ If specified, should be the endCursor 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.
82
+
83
+ limit : typing.Optional[int]
84
+ Maximum number of objects to return. Default and maximum is 100
85
+
86
+ request_options : typing.Optional[RequestOptions]
87
+ Request-specific configuration.
88
+
89
+ Returns
90
+ -------
91
+ HttpResponse[HubCapacitiesListHubCapacitiesResponseBody]
92
+ OK response.
93
+ """
94
+ _response = self._client_wrapper.httpx_client.request(
95
+ "hub/capacities",
96
+ method="GET",
97
+ params={
98
+ "hubId": hub_id,
99
+ "capacityIds": capacity_ids,
100
+ "capacityNames": capacity_names,
101
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
102
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
103
+ "after": after,
104
+ "limit": limit,
105
+ },
106
+ request_options=request_options,
107
+ )
108
+ try:
109
+ if 200 <= _response.status_code < 300:
110
+ _data = typing.cast(
111
+ HubCapacitiesListHubCapacitiesResponseBody,
112
+ parse_obj_as(
113
+ type_=HubCapacitiesListHubCapacitiesResponseBody, # type: ignore
114
+ object_=_response.json(),
115
+ ),
116
+ )
117
+ return HttpResponse(response=_response, data=_data)
118
+ if _response.status_code == 401:
119
+ raise UnauthorizedError(
120
+ headers=dict(_response.headers),
121
+ body=typing.cast(
122
+ typing.Optional[typing.Any],
123
+ parse_obj_as(
124
+ type_=typing.Optional[typing.Any], # type: ignore
125
+ object_=_response.json(),
126
+ ),
127
+ ),
128
+ )
129
+ if _response.status_code == 404:
130
+ raise NotFoundError(
131
+ headers=dict(_response.headers),
132
+ body=typing.cast(
133
+ typing.Optional[typing.Any],
134
+ parse_obj_as(
135
+ type_=typing.Optional[typing.Any], # type: ignore
136
+ object_=_response.json(),
137
+ ),
138
+ ),
139
+ )
140
+ if _response.status_code == 405:
141
+ raise MethodNotAllowedError(
142
+ headers=dict(_response.headers),
143
+ body=typing.cast(
144
+ typing.Optional[typing.Any],
145
+ parse_obj_as(
146
+ type_=typing.Optional[typing.Any], # type: ignore
147
+ object_=_response.json(),
148
+ ),
149
+ ),
150
+ )
151
+ if _response.status_code == 429:
152
+ raise TooManyRequestsError(
153
+ headers=dict(_response.headers),
154
+ body=typing.cast(
155
+ typing.Optional[typing.Any],
156
+ parse_obj_as(
157
+ type_=typing.Optional[typing.Any], # type: ignore
158
+ object_=_response.json(),
159
+ ),
160
+ ),
161
+ )
162
+ if _response.status_code == 500:
163
+ raise InternalServerError(
164
+ headers=dict(_response.headers),
165
+ body=typing.cast(
166
+ typing.Optional[typing.Any],
167
+ parse_obj_as(
168
+ type_=typing.Optional[typing.Any], # type: ignore
169
+ object_=_response.json(),
170
+ ),
171
+ ),
172
+ )
173
+ if _response.status_code == 501:
174
+ raise NotImplementedError(
175
+ headers=dict(_response.headers),
176
+ body=typing.cast(
177
+ typing.Optional[typing.Any],
178
+ parse_obj_as(
179
+ type_=typing.Optional[typing.Any], # type: ignore
180
+ object_=_response.json(),
181
+ ),
182
+ ),
183
+ )
184
+ if _response.status_code == 502:
185
+ raise BadGatewayError(
186
+ headers=dict(_response.headers),
187
+ body=typing.cast(
188
+ typing.Optional[typing.Any],
189
+ parse_obj_as(
190
+ type_=typing.Optional[typing.Any], # type: ignore
191
+ object_=_response.json(),
192
+ ),
193
+ ),
194
+ )
195
+ if _response.status_code == 503:
196
+ raise ServiceUnavailableError(
197
+ headers=dict(_response.headers),
198
+ body=typing.cast(
199
+ typing.Optional[typing.Any],
200
+ parse_obj_as(
201
+ type_=typing.Optional[typing.Any], # type: ignore
202
+ object_=_response.json(),
203
+ ),
204
+ ),
205
+ )
206
+ if _response.status_code == 504:
207
+ raise GatewayTimeoutError(
208
+ headers=dict(_response.headers),
209
+ body=typing.cast(
210
+ typing.Optional[typing.Any],
211
+ parse_obj_as(
212
+ type_=typing.Optional[typing.Any], # type: ignore
213
+ object_=_response.json(),
214
+ ),
215
+ ),
216
+ )
217
+ _response_json = _response.json()
218
+ except JSONDecodeError:
219
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
220
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
221
+
222
+ def update_hub_location(
223
+ self,
224
+ id: str,
225
+ *,
226
+ data: UpdateHubLocationRequestBodyRequestBody,
227
+ request_options: typing.Optional[RequestOptions] = None,
228
+ ) -> HttpResponse[HubLocationsUpdateHubLocationResponseBody]:
229
+ """
230
+ Update existing location by ID.
231
+
232
+ <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
233
+
234
+ To use this endpoint, select **Write Routes** under the Driver Workflow 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>
235
+
236
+
237
+ **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.
238
+
239
+ Parameters
240
+ ----------
241
+ id : str
242
+ The unique Samsara ID of the hub location to update
243
+
244
+ data : UpdateHubLocationRequestBodyRequestBody
245
+
246
+ request_options : typing.Optional[RequestOptions]
247
+ Request-specific configuration.
248
+
249
+ Returns
250
+ -------
251
+ HttpResponse[HubLocationsUpdateHubLocationResponseBody]
252
+ OK response.
253
+ """
254
+ _response = self._client_wrapper.httpx_client.request(
255
+ f"hub/location/{jsonable_encoder(id)}",
256
+ method="PATCH",
257
+ json={
258
+ "data": convert_and_respect_annotation_metadata(
259
+ object_=data, annotation=UpdateHubLocationRequestBodyRequestBody, direction="write"
260
+ ),
261
+ },
262
+ headers={
263
+ "content-type": "application/json",
264
+ },
265
+ request_options=request_options,
266
+ omit=OMIT,
267
+ )
268
+ try:
269
+ if 200 <= _response.status_code < 300:
270
+ _data = typing.cast(
271
+ HubLocationsUpdateHubLocationResponseBody,
272
+ parse_obj_as(
273
+ type_=HubLocationsUpdateHubLocationResponseBody, # type: ignore
274
+ object_=_response.json(),
275
+ ),
276
+ )
277
+ return HttpResponse(response=_response, data=_data)
278
+ if _response.status_code == 401:
279
+ raise UnauthorizedError(
280
+ headers=dict(_response.headers),
281
+ body=typing.cast(
282
+ typing.Optional[typing.Any],
283
+ parse_obj_as(
284
+ type_=typing.Optional[typing.Any], # type: ignore
285
+ object_=_response.json(),
286
+ ),
287
+ ),
288
+ )
289
+ if _response.status_code == 404:
290
+ raise NotFoundError(
291
+ headers=dict(_response.headers),
292
+ body=typing.cast(
293
+ typing.Optional[typing.Any],
294
+ parse_obj_as(
295
+ type_=typing.Optional[typing.Any], # type: ignore
296
+ object_=_response.json(),
297
+ ),
298
+ ),
299
+ )
300
+ if _response.status_code == 405:
301
+ raise MethodNotAllowedError(
302
+ headers=dict(_response.headers),
303
+ body=typing.cast(
304
+ typing.Optional[typing.Any],
305
+ parse_obj_as(
306
+ type_=typing.Optional[typing.Any], # type: ignore
307
+ object_=_response.json(),
308
+ ),
309
+ ),
310
+ )
311
+ if _response.status_code == 429:
312
+ raise TooManyRequestsError(
313
+ headers=dict(_response.headers),
314
+ body=typing.cast(
315
+ typing.Optional[typing.Any],
316
+ parse_obj_as(
317
+ type_=typing.Optional[typing.Any], # type: ignore
318
+ object_=_response.json(),
319
+ ),
320
+ ),
321
+ )
322
+ if _response.status_code == 500:
323
+ raise InternalServerError(
324
+ headers=dict(_response.headers),
325
+ body=typing.cast(
326
+ typing.Optional[typing.Any],
327
+ parse_obj_as(
328
+ type_=typing.Optional[typing.Any], # type: ignore
329
+ object_=_response.json(),
330
+ ),
331
+ ),
332
+ )
333
+ if _response.status_code == 501:
334
+ raise NotImplementedError(
335
+ headers=dict(_response.headers),
336
+ body=typing.cast(
337
+ typing.Optional[typing.Any],
338
+ parse_obj_as(
339
+ type_=typing.Optional[typing.Any], # type: ignore
340
+ object_=_response.json(),
341
+ ),
342
+ ),
343
+ )
344
+ if _response.status_code == 502:
345
+ raise BadGatewayError(
346
+ headers=dict(_response.headers),
347
+ body=typing.cast(
348
+ typing.Optional[typing.Any],
349
+ parse_obj_as(
350
+ type_=typing.Optional[typing.Any], # type: ignore
351
+ object_=_response.json(),
352
+ ),
353
+ ),
354
+ )
355
+ if _response.status_code == 503:
356
+ raise ServiceUnavailableError(
357
+ headers=dict(_response.headers),
358
+ body=typing.cast(
359
+ typing.Optional[typing.Any],
360
+ parse_obj_as(
361
+ type_=typing.Optional[typing.Any], # type: ignore
362
+ object_=_response.json(),
363
+ ),
364
+ ),
365
+ )
366
+ if _response.status_code == 504:
367
+ raise GatewayTimeoutError(
368
+ headers=dict(_response.headers),
369
+ body=typing.cast(
370
+ typing.Optional[typing.Any],
371
+ parse_obj_as(
372
+ type_=typing.Optional[typing.Any], # type: ignore
373
+ object_=_response.json(),
374
+ ),
375
+ ),
376
+ )
377
+ _response_json = _response.json()
378
+ except JSONDecodeError:
379
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
380
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
381
+
382
+ def list_hub_locations(
383
+ self,
384
+ *,
385
+ hub_id: str,
386
+ location_ids: typing.Optional[str] = None,
387
+ customer_location_ids: typing.Optional[str] = None,
388
+ start_time: typing.Optional[dt.datetime] = None,
389
+ end_time: typing.Optional[dt.datetime] = None,
390
+ after: typing.Optional[str] = None,
391
+ limit: typing.Optional[int] = None,
392
+ request_options: typing.Optional[RequestOptions] = None,
393
+ ) -> HttpResponse[HubLocationsListHubLocationsResponseBody]:
394
+ """
395
+ Retrieve locations for a specific hub.
396
+
397
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
398
+
399
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
400
+
401
+
402
+ **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.
403
+
404
+ Parameters
405
+ ----------
406
+ hub_id : str
407
+ The hub identifier
408
+
409
+ location_ids : typing.Optional[str]
410
+ A comma-separated list of location IDs that can be used for filtering
411
+
412
+ customer_location_ids : typing.Optional[str]
413
+ A comma-separated list of customer provided location IDs that can be used for filtering
414
+
415
+ start_time : typing.Optional[dt.datetime]
416
+ Time filter of when the location was updated, in RFC 3339 format
417
+
418
+ end_time : typing.Optional[dt.datetime]
419
+ Time filter of when the location was updated, in RFC 3339 format
420
+
421
+ after : typing.Optional[str]
422
+ If specified, should be the endCursor 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.
423
+
424
+ limit : typing.Optional[int]
425
+ Maximum number of objects to return. Default and maximum is 100
426
+
427
+ request_options : typing.Optional[RequestOptions]
428
+ Request-specific configuration.
429
+
430
+ Returns
431
+ -------
432
+ HttpResponse[HubLocationsListHubLocationsResponseBody]
433
+ OK response.
434
+ """
435
+ _response = self._client_wrapper.httpx_client.request(
436
+ "hub/locations",
437
+ method="GET",
438
+ params={
439
+ "hubId": hub_id,
440
+ "locationIds": location_ids,
441
+ "customerLocationIds": customer_location_ids,
442
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
443
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
444
+ "after": after,
445
+ "limit": limit,
446
+ },
447
+ request_options=request_options,
448
+ )
449
+ try:
450
+ if 200 <= _response.status_code < 300:
451
+ _data = typing.cast(
452
+ HubLocationsListHubLocationsResponseBody,
453
+ parse_obj_as(
454
+ type_=HubLocationsListHubLocationsResponseBody, # type: ignore
455
+ object_=_response.json(),
456
+ ),
457
+ )
458
+ return HttpResponse(response=_response, data=_data)
459
+ if _response.status_code == 401:
460
+ raise UnauthorizedError(
461
+ headers=dict(_response.headers),
462
+ body=typing.cast(
463
+ typing.Optional[typing.Any],
464
+ parse_obj_as(
465
+ type_=typing.Optional[typing.Any], # type: ignore
466
+ object_=_response.json(),
467
+ ),
468
+ ),
469
+ )
470
+ if _response.status_code == 404:
471
+ raise NotFoundError(
472
+ headers=dict(_response.headers),
473
+ body=typing.cast(
474
+ typing.Optional[typing.Any],
475
+ parse_obj_as(
476
+ type_=typing.Optional[typing.Any], # type: ignore
477
+ object_=_response.json(),
478
+ ),
479
+ ),
480
+ )
481
+ if _response.status_code == 405:
482
+ raise MethodNotAllowedError(
483
+ headers=dict(_response.headers),
484
+ body=typing.cast(
485
+ typing.Optional[typing.Any],
486
+ parse_obj_as(
487
+ type_=typing.Optional[typing.Any], # type: ignore
488
+ object_=_response.json(),
489
+ ),
490
+ ),
491
+ )
492
+ if _response.status_code == 429:
493
+ raise TooManyRequestsError(
494
+ headers=dict(_response.headers),
495
+ body=typing.cast(
496
+ typing.Optional[typing.Any],
497
+ parse_obj_as(
498
+ type_=typing.Optional[typing.Any], # type: ignore
499
+ object_=_response.json(),
500
+ ),
501
+ ),
502
+ )
503
+ if _response.status_code == 500:
504
+ raise InternalServerError(
505
+ headers=dict(_response.headers),
506
+ body=typing.cast(
507
+ typing.Optional[typing.Any],
508
+ parse_obj_as(
509
+ type_=typing.Optional[typing.Any], # type: ignore
510
+ object_=_response.json(),
511
+ ),
512
+ ),
513
+ )
514
+ if _response.status_code == 501:
515
+ raise NotImplementedError(
516
+ headers=dict(_response.headers),
517
+ body=typing.cast(
518
+ typing.Optional[typing.Any],
519
+ parse_obj_as(
520
+ type_=typing.Optional[typing.Any], # type: ignore
521
+ object_=_response.json(),
522
+ ),
523
+ ),
524
+ )
525
+ if _response.status_code == 502:
526
+ raise BadGatewayError(
527
+ headers=dict(_response.headers),
528
+ body=typing.cast(
529
+ typing.Optional[typing.Any],
530
+ parse_obj_as(
531
+ type_=typing.Optional[typing.Any], # type: ignore
532
+ object_=_response.json(),
533
+ ),
534
+ ),
535
+ )
536
+ if _response.status_code == 503:
537
+ raise ServiceUnavailableError(
538
+ headers=dict(_response.headers),
539
+ body=typing.cast(
540
+ typing.Optional[typing.Any],
541
+ parse_obj_as(
542
+ type_=typing.Optional[typing.Any], # type: ignore
543
+ object_=_response.json(),
544
+ ),
545
+ ),
546
+ )
547
+ if _response.status_code == 504:
548
+ raise GatewayTimeoutError(
549
+ headers=dict(_response.headers),
550
+ body=typing.cast(
551
+ typing.Optional[typing.Any],
552
+ parse_obj_as(
553
+ type_=typing.Optional[typing.Any], # type: ignore
554
+ object_=_response.json(),
555
+ ),
556
+ ),
557
+ )
558
+ _response_json = _response.json()
559
+ except JSONDecodeError:
560
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
561
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
562
+
563
+ def create_hub_locations(
564
+ self,
565
+ *,
566
+ data: typing.Sequence[HubLocationInputObjectRequestBody],
567
+ request_options: typing.Optional[RequestOptions] = None,
568
+ ) -> HttpResponse[HubLocationsCreateHubLocationsResponseBody]:
569
+ """
570
+ Create new locations.
571
+
572
+ <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
573
+
574
+ To use this endpoint, select **Write Routes** under the Driver Workflow 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>
575
+
576
+
577
+ **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.
578
+
579
+ Parameters
580
+ ----------
581
+ data : typing.Sequence[HubLocationInputObjectRequestBody]
582
+ An array of location objects to be created or updated
583
+
584
+ request_options : typing.Optional[RequestOptions]
585
+ Request-specific configuration.
586
+
587
+ Returns
588
+ -------
589
+ HttpResponse[HubLocationsCreateHubLocationsResponseBody]
590
+ OK response.
591
+ """
592
+ _response = self._client_wrapper.httpx_client.request(
593
+ "hub/locations",
594
+ method="POST",
595
+ json={
596
+ "data": convert_and_respect_annotation_metadata(
597
+ object_=data, annotation=typing.Sequence[HubLocationInputObjectRequestBody], direction="write"
598
+ ),
599
+ },
600
+ headers={
601
+ "content-type": "application/json",
602
+ },
603
+ request_options=request_options,
604
+ omit=OMIT,
605
+ )
606
+ try:
607
+ if 200 <= _response.status_code < 300:
608
+ _data = typing.cast(
609
+ HubLocationsCreateHubLocationsResponseBody,
610
+ parse_obj_as(
611
+ type_=HubLocationsCreateHubLocationsResponseBody, # type: ignore
612
+ object_=_response.json(),
613
+ ),
614
+ )
615
+ return HttpResponse(response=_response, data=_data)
616
+ if _response.status_code == 401:
617
+ raise UnauthorizedError(
618
+ headers=dict(_response.headers),
619
+ body=typing.cast(
620
+ typing.Optional[typing.Any],
621
+ parse_obj_as(
622
+ type_=typing.Optional[typing.Any], # type: ignore
623
+ object_=_response.json(),
624
+ ),
625
+ ),
626
+ )
627
+ if _response.status_code == 404:
628
+ raise NotFoundError(
629
+ headers=dict(_response.headers),
630
+ body=typing.cast(
631
+ typing.Optional[typing.Any],
632
+ parse_obj_as(
633
+ type_=typing.Optional[typing.Any], # type: ignore
634
+ object_=_response.json(),
635
+ ),
636
+ ),
637
+ )
638
+ if _response.status_code == 405:
639
+ raise MethodNotAllowedError(
640
+ headers=dict(_response.headers),
641
+ body=typing.cast(
642
+ typing.Optional[typing.Any],
643
+ parse_obj_as(
644
+ type_=typing.Optional[typing.Any], # type: ignore
645
+ object_=_response.json(),
646
+ ),
647
+ ),
648
+ )
649
+ if _response.status_code == 429:
650
+ raise TooManyRequestsError(
651
+ headers=dict(_response.headers),
652
+ body=typing.cast(
653
+ typing.Optional[typing.Any],
654
+ parse_obj_as(
655
+ type_=typing.Optional[typing.Any], # type: ignore
656
+ object_=_response.json(),
657
+ ),
658
+ ),
659
+ )
660
+ if _response.status_code == 500:
661
+ raise InternalServerError(
662
+ headers=dict(_response.headers),
663
+ body=typing.cast(
664
+ typing.Optional[typing.Any],
665
+ parse_obj_as(
666
+ type_=typing.Optional[typing.Any], # type: ignore
667
+ object_=_response.json(),
668
+ ),
669
+ ),
670
+ )
671
+ if _response.status_code == 501:
672
+ raise NotImplementedError(
673
+ headers=dict(_response.headers),
674
+ body=typing.cast(
675
+ typing.Optional[typing.Any],
676
+ parse_obj_as(
677
+ type_=typing.Optional[typing.Any], # type: ignore
678
+ object_=_response.json(),
679
+ ),
680
+ ),
681
+ )
682
+ if _response.status_code == 502:
683
+ raise BadGatewayError(
684
+ headers=dict(_response.headers),
685
+ body=typing.cast(
686
+ typing.Optional[typing.Any],
687
+ parse_obj_as(
688
+ type_=typing.Optional[typing.Any], # type: ignore
689
+ object_=_response.json(),
690
+ ),
691
+ ),
692
+ )
693
+ if _response.status_code == 503:
694
+ raise ServiceUnavailableError(
695
+ headers=dict(_response.headers),
696
+ body=typing.cast(
697
+ typing.Optional[typing.Any],
698
+ parse_obj_as(
699
+ type_=typing.Optional[typing.Any], # type: ignore
700
+ object_=_response.json(),
701
+ ),
702
+ ),
703
+ )
704
+ if _response.status_code == 504:
705
+ raise GatewayTimeoutError(
706
+ headers=dict(_response.headers),
707
+ body=typing.cast(
708
+ typing.Optional[typing.Any],
709
+ parse_obj_as(
710
+ type_=typing.Optional[typing.Any], # type: ignore
711
+ object_=_response.json(),
712
+ ),
713
+ ),
714
+ )
715
+ _response_json = _response.json()
716
+ except JSONDecodeError:
717
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
718
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
719
+
720
+ def list_hub_skills(
721
+ self,
722
+ *,
723
+ hub_id: str,
724
+ skill_ids: typing.Optional[str] = None,
725
+ skill_names: typing.Optional[str] = None,
726
+ start_time: typing.Optional[dt.datetime] = None,
727
+ end_time: typing.Optional[dt.datetime] = None,
728
+ after: typing.Optional[str] = None,
729
+ limit: typing.Optional[int] = None,
730
+ request_options: typing.Optional[RequestOptions] = None,
731
+ ) -> HttpResponse[HubSkillsListHubSkillsResponseBody]:
732
+ """
733
+ Retrieve skills for a specific hub.
734
+
735
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
736
+
737
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
738
+
739
+
740
+ **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.
741
+
742
+ Parameters
743
+ ----------
744
+ hub_id : str
745
+ The hub identifier
746
+
747
+ skill_ids : typing.Optional[str]
748
+ A comma-separated list of skill IDs that can be used for filtering.
749
+
750
+ skill_names : typing.Optional[str]
751
+ A comma-separated list of skill namess that can be used for filtering.
752
+
753
+ start_time : typing.Optional[dt.datetime]
754
+ Time filter of when the skill was updated, in RFC 3339 format
755
+
756
+ end_time : typing.Optional[dt.datetime]
757
+ Time filter of when the skill was updated, in RFC 3339 format
758
+
759
+ after : typing.Optional[str]
760
+ If specified, should be the endCursor 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.
761
+
762
+ limit : typing.Optional[int]
763
+ Maximum number of objects to return. Default and maximum is 100
764
+
765
+ request_options : typing.Optional[RequestOptions]
766
+ Request-specific configuration.
767
+
768
+ Returns
769
+ -------
770
+ HttpResponse[HubSkillsListHubSkillsResponseBody]
771
+ OK response.
772
+ """
773
+ _response = self._client_wrapper.httpx_client.request(
774
+ "hub/skills",
775
+ method="GET",
776
+ params={
777
+ "hubId": hub_id,
778
+ "skillIds": skill_ids,
779
+ "skillNames": skill_names,
780
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
781
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
782
+ "after": after,
783
+ "limit": limit,
784
+ },
785
+ request_options=request_options,
786
+ )
787
+ try:
788
+ if 200 <= _response.status_code < 300:
789
+ _data = typing.cast(
790
+ HubSkillsListHubSkillsResponseBody,
791
+ parse_obj_as(
792
+ type_=HubSkillsListHubSkillsResponseBody, # type: ignore
793
+ object_=_response.json(),
794
+ ),
795
+ )
796
+ return HttpResponse(response=_response, data=_data)
797
+ if _response.status_code == 401:
798
+ raise UnauthorizedError(
799
+ headers=dict(_response.headers),
800
+ body=typing.cast(
801
+ typing.Optional[typing.Any],
802
+ parse_obj_as(
803
+ type_=typing.Optional[typing.Any], # type: ignore
804
+ object_=_response.json(),
805
+ ),
806
+ ),
807
+ )
808
+ if _response.status_code == 404:
809
+ raise NotFoundError(
810
+ headers=dict(_response.headers),
811
+ body=typing.cast(
812
+ typing.Optional[typing.Any],
813
+ parse_obj_as(
814
+ type_=typing.Optional[typing.Any], # type: ignore
815
+ object_=_response.json(),
816
+ ),
817
+ ),
818
+ )
819
+ if _response.status_code == 405:
820
+ raise MethodNotAllowedError(
821
+ headers=dict(_response.headers),
822
+ body=typing.cast(
823
+ typing.Optional[typing.Any],
824
+ parse_obj_as(
825
+ type_=typing.Optional[typing.Any], # type: ignore
826
+ object_=_response.json(),
827
+ ),
828
+ ),
829
+ )
830
+ if _response.status_code == 429:
831
+ raise TooManyRequestsError(
832
+ headers=dict(_response.headers),
833
+ body=typing.cast(
834
+ typing.Optional[typing.Any],
835
+ parse_obj_as(
836
+ type_=typing.Optional[typing.Any], # type: ignore
837
+ object_=_response.json(),
838
+ ),
839
+ ),
840
+ )
841
+ if _response.status_code == 500:
842
+ raise InternalServerError(
843
+ headers=dict(_response.headers),
844
+ body=typing.cast(
845
+ typing.Optional[typing.Any],
846
+ parse_obj_as(
847
+ type_=typing.Optional[typing.Any], # type: ignore
848
+ object_=_response.json(),
849
+ ),
850
+ ),
851
+ )
852
+ if _response.status_code == 501:
853
+ raise NotImplementedError(
854
+ headers=dict(_response.headers),
855
+ body=typing.cast(
856
+ typing.Optional[typing.Any],
857
+ parse_obj_as(
858
+ type_=typing.Optional[typing.Any], # type: ignore
859
+ object_=_response.json(),
860
+ ),
861
+ ),
862
+ )
863
+ if _response.status_code == 502:
864
+ raise BadGatewayError(
865
+ headers=dict(_response.headers),
866
+ body=typing.cast(
867
+ typing.Optional[typing.Any],
868
+ parse_obj_as(
869
+ type_=typing.Optional[typing.Any], # type: ignore
870
+ object_=_response.json(),
871
+ ),
872
+ ),
873
+ )
874
+ if _response.status_code == 503:
875
+ raise ServiceUnavailableError(
876
+ headers=dict(_response.headers),
877
+ body=typing.cast(
878
+ typing.Optional[typing.Any],
879
+ parse_obj_as(
880
+ type_=typing.Optional[typing.Any], # type: ignore
881
+ object_=_response.json(),
882
+ ),
883
+ ),
884
+ )
885
+ if _response.status_code == 504:
886
+ raise GatewayTimeoutError(
887
+ headers=dict(_response.headers),
888
+ body=typing.cast(
889
+ typing.Optional[typing.Any],
890
+ parse_obj_as(
891
+ type_=typing.Optional[typing.Any], # type: ignore
892
+ object_=_response.json(),
893
+ ),
894
+ ),
895
+ )
896
+ _response_json = _response.json()
897
+ except JSONDecodeError:
898
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
899
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
900
+
901
+ def list_hubs(
902
+ self,
903
+ *,
904
+ hub_ids: typing.Optional[str] = None,
905
+ start_time: typing.Optional[dt.datetime] = None,
906
+ end_time: typing.Optional[dt.datetime] = None,
907
+ after: typing.Optional[str] = None,
908
+ limit: typing.Optional[int] = None,
909
+ request_options: typing.Optional[RequestOptions] = None,
910
+ ) -> HttpResponse[HubsListHubsResponseBody]:
911
+ """
912
+ Retrieve all hubs (planners) in the organization. This endpoint supports pagination and filtering based on hub IDs and update times.
913
+
914
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
915
+
916
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
917
+
918
+
919
+ **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.
920
+
921
+ Parameters
922
+ ----------
923
+ hub_ids : typing.Optional[str]
924
+ A comma-separated list of hub IDs for filtering results.
925
+
926
+ start_time : typing.Optional[dt.datetime]
927
+ Returns hubs updated after the specified time in UTC
928
+
929
+ end_time : typing.Optional[dt.datetime]
930
+ Returns hubs updated before the specified time in UTC
931
+
932
+ after : typing.Optional[str]
933
+ If specified, should be the endCursor 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.
934
+
935
+ limit : typing.Optional[int]
936
+ Maximum number of objects to return. Default and maximum is 100
937
+
938
+ request_options : typing.Optional[RequestOptions]
939
+ Request-specific configuration.
940
+
941
+ Returns
942
+ -------
943
+ HttpResponse[HubsListHubsResponseBody]
944
+ OK response.
945
+ """
946
+ _response = self._client_wrapper.httpx_client.request(
947
+ "hubs",
948
+ method="GET",
949
+ params={
950
+ "hubIds": hub_ids,
951
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
952
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
953
+ "after": after,
954
+ "limit": limit,
955
+ },
956
+ request_options=request_options,
957
+ )
958
+ try:
959
+ if 200 <= _response.status_code < 300:
960
+ _data = typing.cast(
961
+ HubsListHubsResponseBody,
962
+ parse_obj_as(
963
+ type_=HubsListHubsResponseBody, # type: ignore
964
+ object_=_response.json(),
965
+ ),
966
+ )
967
+ return HttpResponse(response=_response, data=_data)
968
+ if _response.status_code == 401:
969
+ raise UnauthorizedError(
970
+ headers=dict(_response.headers),
971
+ body=typing.cast(
972
+ typing.Optional[typing.Any],
973
+ parse_obj_as(
974
+ type_=typing.Optional[typing.Any], # type: ignore
975
+ object_=_response.json(),
976
+ ),
977
+ ),
978
+ )
979
+ if _response.status_code == 404:
980
+ raise NotFoundError(
981
+ headers=dict(_response.headers),
982
+ body=typing.cast(
983
+ typing.Optional[typing.Any],
984
+ parse_obj_as(
985
+ type_=typing.Optional[typing.Any], # type: ignore
986
+ object_=_response.json(),
987
+ ),
988
+ ),
989
+ )
990
+ if _response.status_code == 405:
991
+ raise MethodNotAllowedError(
992
+ headers=dict(_response.headers),
993
+ body=typing.cast(
994
+ typing.Optional[typing.Any],
995
+ parse_obj_as(
996
+ type_=typing.Optional[typing.Any], # type: ignore
997
+ object_=_response.json(),
998
+ ),
999
+ ),
1000
+ )
1001
+ if _response.status_code == 429:
1002
+ raise TooManyRequestsError(
1003
+ headers=dict(_response.headers),
1004
+ body=typing.cast(
1005
+ typing.Optional[typing.Any],
1006
+ parse_obj_as(
1007
+ type_=typing.Optional[typing.Any], # type: ignore
1008
+ object_=_response.json(),
1009
+ ),
1010
+ ),
1011
+ )
1012
+ if _response.status_code == 500:
1013
+ raise InternalServerError(
1014
+ headers=dict(_response.headers),
1015
+ body=typing.cast(
1016
+ typing.Optional[typing.Any],
1017
+ parse_obj_as(
1018
+ type_=typing.Optional[typing.Any], # type: ignore
1019
+ object_=_response.json(),
1020
+ ),
1021
+ ),
1022
+ )
1023
+ if _response.status_code == 501:
1024
+ raise NotImplementedError(
1025
+ headers=dict(_response.headers),
1026
+ body=typing.cast(
1027
+ typing.Optional[typing.Any],
1028
+ parse_obj_as(
1029
+ type_=typing.Optional[typing.Any], # type: ignore
1030
+ object_=_response.json(),
1031
+ ),
1032
+ ),
1033
+ )
1034
+ if _response.status_code == 502:
1035
+ raise BadGatewayError(
1036
+ headers=dict(_response.headers),
1037
+ body=typing.cast(
1038
+ typing.Optional[typing.Any],
1039
+ parse_obj_as(
1040
+ type_=typing.Optional[typing.Any], # type: ignore
1041
+ object_=_response.json(),
1042
+ ),
1043
+ ),
1044
+ )
1045
+ if _response.status_code == 503:
1046
+ raise ServiceUnavailableError(
1047
+ headers=dict(_response.headers),
1048
+ body=typing.cast(
1049
+ typing.Optional[typing.Any],
1050
+ parse_obj_as(
1051
+ type_=typing.Optional[typing.Any], # type: ignore
1052
+ object_=_response.json(),
1053
+ ),
1054
+ ),
1055
+ )
1056
+ if _response.status_code == 504:
1057
+ raise GatewayTimeoutError(
1058
+ headers=dict(_response.headers),
1059
+ body=typing.cast(
1060
+ typing.Optional[typing.Any],
1061
+ parse_obj_as(
1062
+ type_=typing.Optional[typing.Any], # type: ignore
1063
+ object_=_response.json(),
1064
+ ),
1065
+ ),
1066
+ )
1067
+ _response_json = _response.json()
1068
+ except JSONDecodeError:
1069
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1070
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1071
+
1072
+
1073
+ class AsyncRawHubsClient:
1074
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
1075
+ self._client_wrapper = client_wrapper
1076
+
1077
+ async def list_hub_capacities(
1078
+ self,
1079
+ *,
1080
+ hub_id: str,
1081
+ capacity_ids: typing.Optional[str] = None,
1082
+ capacity_names: typing.Optional[str] = None,
1083
+ start_time: typing.Optional[dt.datetime] = None,
1084
+ end_time: typing.Optional[dt.datetime] = None,
1085
+ after: typing.Optional[str] = None,
1086
+ limit: typing.Optional[int] = None,
1087
+ request_options: typing.Optional[RequestOptions] = None,
1088
+ ) -> AsyncHttpResponse[HubCapacitiesListHubCapacitiesResponseBody]:
1089
+ """
1090
+ Retrieve capacity types for a specific hub.
1091
+
1092
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1093
+
1094
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
1095
+
1096
+
1097
+ **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.
1098
+
1099
+ Parameters
1100
+ ----------
1101
+ hub_id : str
1102
+ The hub identifier
1103
+
1104
+ capacity_ids : typing.Optional[str]
1105
+ Comma-separated list of capacity IDs for filtering.
1106
+
1107
+ capacity_names : typing.Optional[str]
1108
+ Comma-separated list of capacity names for filtering.
1109
+
1110
+ start_time : typing.Optional[dt.datetime]
1111
+ Time filter of when the capacity was updated, in RFC 3339 format
1112
+
1113
+ end_time : typing.Optional[dt.datetime]
1114
+ Time filter of when the capacity was updated, in RFC 3339 format
1115
+
1116
+ after : typing.Optional[str]
1117
+ If specified, should be the endCursor 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.
1118
+
1119
+ limit : typing.Optional[int]
1120
+ Maximum number of objects to return. Default and maximum is 100
1121
+
1122
+ request_options : typing.Optional[RequestOptions]
1123
+ Request-specific configuration.
1124
+
1125
+ Returns
1126
+ -------
1127
+ AsyncHttpResponse[HubCapacitiesListHubCapacitiesResponseBody]
1128
+ OK response.
1129
+ """
1130
+ _response = await self._client_wrapper.httpx_client.request(
1131
+ "hub/capacities",
1132
+ method="GET",
1133
+ params={
1134
+ "hubId": hub_id,
1135
+ "capacityIds": capacity_ids,
1136
+ "capacityNames": capacity_names,
1137
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
1138
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
1139
+ "after": after,
1140
+ "limit": limit,
1141
+ },
1142
+ request_options=request_options,
1143
+ )
1144
+ try:
1145
+ if 200 <= _response.status_code < 300:
1146
+ _data = typing.cast(
1147
+ HubCapacitiesListHubCapacitiesResponseBody,
1148
+ parse_obj_as(
1149
+ type_=HubCapacitiesListHubCapacitiesResponseBody, # type: ignore
1150
+ object_=_response.json(),
1151
+ ),
1152
+ )
1153
+ return AsyncHttpResponse(response=_response, data=_data)
1154
+ if _response.status_code == 401:
1155
+ raise UnauthorizedError(
1156
+ headers=dict(_response.headers),
1157
+ body=typing.cast(
1158
+ typing.Optional[typing.Any],
1159
+ parse_obj_as(
1160
+ type_=typing.Optional[typing.Any], # type: ignore
1161
+ object_=_response.json(),
1162
+ ),
1163
+ ),
1164
+ )
1165
+ if _response.status_code == 404:
1166
+ raise NotFoundError(
1167
+ headers=dict(_response.headers),
1168
+ body=typing.cast(
1169
+ typing.Optional[typing.Any],
1170
+ parse_obj_as(
1171
+ type_=typing.Optional[typing.Any], # type: ignore
1172
+ object_=_response.json(),
1173
+ ),
1174
+ ),
1175
+ )
1176
+ if _response.status_code == 405:
1177
+ raise MethodNotAllowedError(
1178
+ headers=dict(_response.headers),
1179
+ body=typing.cast(
1180
+ typing.Optional[typing.Any],
1181
+ parse_obj_as(
1182
+ type_=typing.Optional[typing.Any], # type: ignore
1183
+ object_=_response.json(),
1184
+ ),
1185
+ ),
1186
+ )
1187
+ if _response.status_code == 429:
1188
+ raise TooManyRequestsError(
1189
+ headers=dict(_response.headers),
1190
+ body=typing.cast(
1191
+ typing.Optional[typing.Any],
1192
+ parse_obj_as(
1193
+ type_=typing.Optional[typing.Any], # type: ignore
1194
+ object_=_response.json(),
1195
+ ),
1196
+ ),
1197
+ )
1198
+ if _response.status_code == 500:
1199
+ raise InternalServerError(
1200
+ headers=dict(_response.headers),
1201
+ body=typing.cast(
1202
+ typing.Optional[typing.Any],
1203
+ parse_obj_as(
1204
+ type_=typing.Optional[typing.Any], # type: ignore
1205
+ object_=_response.json(),
1206
+ ),
1207
+ ),
1208
+ )
1209
+ if _response.status_code == 501:
1210
+ raise NotImplementedError(
1211
+ headers=dict(_response.headers),
1212
+ body=typing.cast(
1213
+ typing.Optional[typing.Any],
1214
+ parse_obj_as(
1215
+ type_=typing.Optional[typing.Any], # type: ignore
1216
+ object_=_response.json(),
1217
+ ),
1218
+ ),
1219
+ )
1220
+ if _response.status_code == 502:
1221
+ raise BadGatewayError(
1222
+ headers=dict(_response.headers),
1223
+ body=typing.cast(
1224
+ typing.Optional[typing.Any],
1225
+ parse_obj_as(
1226
+ type_=typing.Optional[typing.Any], # type: ignore
1227
+ object_=_response.json(),
1228
+ ),
1229
+ ),
1230
+ )
1231
+ if _response.status_code == 503:
1232
+ raise ServiceUnavailableError(
1233
+ headers=dict(_response.headers),
1234
+ body=typing.cast(
1235
+ typing.Optional[typing.Any],
1236
+ parse_obj_as(
1237
+ type_=typing.Optional[typing.Any], # type: ignore
1238
+ object_=_response.json(),
1239
+ ),
1240
+ ),
1241
+ )
1242
+ if _response.status_code == 504:
1243
+ raise GatewayTimeoutError(
1244
+ headers=dict(_response.headers),
1245
+ body=typing.cast(
1246
+ typing.Optional[typing.Any],
1247
+ parse_obj_as(
1248
+ type_=typing.Optional[typing.Any], # type: ignore
1249
+ object_=_response.json(),
1250
+ ),
1251
+ ),
1252
+ )
1253
+ _response_json = _response.json()
1254
+ except JSONDecodeError:
1255
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1256
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1257
+
1258
+ async def update_hub_location(
1259
+ self,
1260
+ id: str,
1261
+ *,
1262
+ data: UpdateHubLocationRequestBodyRequestBody,
1263
+ request_options: typing.Optional[RequestOptions] = None,
1264
+ ) -> AsyncHttpResponse[HubLocationsUpdateHubLocationResponseBody]:
1265
+ """
1266
+ Update existing location by ID.
1267
+
1268
+ <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1269
+
1270
+ To use this endpoint, select **Write Routes** under the Driver Workflow 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>
1271
+
1272
+
1273
+ **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.
1274
+
1275
+ Parameters
1276
+ ----------
1277
+ id : str
1278
+ The unique Samsara ID of the hub location to update
1279
+
1280
+ data : UpdateHubLocationRequestBodyRequestBody
1281
+
1282
+ request_options : typing.Optional[RequestOptions]
1283
+ Request-specific configuration.
1284
+
1285
+ Returns
1286
+ -------
1287
+ AsyncHttpResponse[HubLocationsUpdateHubLocationResponseBody]
1288
+ OK response.
1289
+ """
1290
+ _response = await self._client_wrapper.httpx_client.request(
1291
+ f"hub/location/{jsonable_encoder(id)}",
1292
+ method="PATCH",
1293
+ json={
1294
+ "data": convert_and_respect_annotation_metadata(
1295
+ object_=data, annotation=UpdateHubLocationRequestBodyRequestBody, direction="write"
1296
+ ),
1297
+ },
1298
+ headers={
1299
+ "content-type": "application/json",
1300
+ },
1301
+ request_options=request_options,
1302
+ omit=OMIT,
1303
+ )
1304
+ try:
1305
+ if 200 <= _response.status_code < 300:
1306
+ _data = typing.cast(
1307
+ HubLocationsUpdateHubLocationResponseBody,
1308
+ parse_obj_as(
1309
+ type_=HubLocationsUpdateHubLocationResponseBody, # type: ignore
1310
+ object_=_response.json(),
1311
+ ),
1312
+ )
1313
+ return AsyncHttpResponse(response=_response, data=_data)
1314
+ if _response.status_code == 401:
1315
+ raise UnauthorizedError(
1316
+ headers=dict(_response.headers),
1317
+ body=typing.cast(
1318
+ typing.Optional[typing.Any],
1319
+ parse_obj_as(
1320
+ type_=typing.Optional[typing.Any], # type: ignore
1321
+ object_=_response.json(),
1322
+ ),
1323
+ ),
1324
+ )
1325
+ if _response.status_code == 404:
1326
+ raise NotFoundError(
1327
+ headers=dict(_response.headers),
1328
+ body=typing.cast(
1329
+ typing.Optional[typing.Any],
1330
+ parse_obj_as(
1331
+ type_=typing.Optional[typing.Any], # type: ignore
1332
+ object_=_response.json(),
1333
+ ),
1334
+ ),
1335
+ )
1336
+ if _response.status_code == 405:
1337
+ raise MethodNotAllowedError(
1338
+ headers=dict(_response.headers),
1339
+ body=typing.cast(
1340
+ typing.Optional[typing.Any],
1341
+ parse_obj_as(
1342
+ type_=typing.Optional[typing.Any], # type: ignore
1343
+ object_=_response.json(),
1344
+ ),
1345
+ ),
1346
+ )
1347
+ if _response.status_code == 429:
1348
+ raise TooManyRequestsError(
1349
+ headers=dict(_response.headers),
1350
+ body=typing.cast(
1351
+ typing.Optional[typing.Any],
1352
+ parse_obj_as(
1353
+ type_=typing.Optional[typing.Any], # type: ignore
1354
+ object_=_response.json(),
1355
+ ),
1356
+ ),
1357
+ )
1358
+ if _response.status_code == 500:
1359
+ raise InternalServerError(
1360
+ headers=dict(_response.headers),
1361
+ body=typing.cast(
1362
+ typing.Optional[typing.Any],
1363
+ parse_obj_as(
1364
+ type_=typing.Optional[typing.Any], # type: ignore
1365
+ object_=_response.json(),
1366
+ ),
1367
+ ),
1368
+ )
1369
+ if _response.status_code == 501:
1370
+ raise NotImplementedError(
1371
+ headers=dict(_response.headers),
1372
+ body=typing.cast(
1373
+ typing.Optional[typing.Any],
1374
+ parse_obj_as(
1375
+ type_=typing.Optional[typing.Any], # type: ignore
1376
+ object_=_response.json(),
1377
+ ),
1378
+ ),
1379
+ )
1380
+ if _response.status_code == 502:
1381
+ raise BadGatewayError(
1382
+ headers=dict(_response.headers),
1383
+ body=typing.cast(
1384
+ typing.Optional[typing.Any],
1385
+ parse_obj_as(
1386
+ type_=typing.Optional[typing.Any], # type: ignore
1387
+ object_=_response.json(),
1388
+ ),
1389
+ ),
1390
+ )
1391
+ if _response.status_code == 503:
1392
+ raise ServiceUnavailableError(
1393
+ headers=dict(_response.headers),
1394
+ body=typing.cast(
1395
+ typing.Optional[typing.Any],
1396
+ parse_obj_as(
1397
+ type_=typing.Optional[typing.Any], # type: ignore
1398
+ object_=_response.json(),
1399
+ ),
1400
+ ),
1401
+ )
1402
+ if _response.status_code == 504:
1403
+ raise GatewayTimeoutError(
1404
+ headers=dict(_response.headers),
1405
+ body=typing.cast(
1406
+ typing.Optional[typing.Any],
1407
+ parse_obj_as(
1408
+ type_=typing.Optional[typing.Any], # type: ignore
1409
+ object_=_response.json(),
1410
+ ),
1411
+ ),
1412
+ )
1413
+ _response_json = _response.json()
1414
+ except JSONDecodeError:
1415
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1416
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1417
+
1418
+ async def list_hub_locations(
1419
+ self,
1420
+ *,
1421
+ hub_id: str,
1422
+ location_ids: typing.Optional[str] = None,
1423
+ customer_location_ids: typing.Optional[str] = None,
1424
+ start_time: typing.Optional[dt.datetime] = None,
1425
+ end_time: typing.Optional[dt.datetime] = None,
1426
+ after: typing.Optional[str] = None,
1427
+ limit: typing.Optional[int] = None,
1428
+ request_options: typing.Optional[RequestOptions] = None,
1429
+ ) -> AsyncHttpResponse[HubLocationsListHubLocationsResponseBody]:
1430
+ """
1431
+ Retrieve locations for a specific hub.
1432
+
1433
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1434
+
1435
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
1436
+
1437
+
1438
+ **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.
1439
+
1440
+ Parameters
1441
+ ----------
1442
+ hub_id : str
1443
+ The hub identifier
1444
+
1445
+ location_ids : typing.Optional[str]
1446
+ A comma-separated list of location IDs that can be used for filtering
1447
+
1448
+ customer_location_ids : typing.Optional[str]
1449
+ A comma-separated list of customer provided location IDs that can be used for filtering
1450
+
1451
+ start_time : typing.Optional[dt.datetime]
1452
+ Time filter of when the location was updated, in RFC 3339 format
1453
+
1454
+ end_time : typing.Optional[dt.datetime]
1455
+ Time filter of when the location was updated, in RFC 3339 format
1456
+
1457
+ after : typing.Optional[str]
1458
+ If specified, should be the endCursor 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.
1459
+
1460
+ limit : typing.Optional[int]
1461
+ Maximum number of objects to return. Default and maximum is 100
1462
+
1463
+ request_options : typing.Optional[RequestOptions]
1464
+ Request-specific configuration.
1465
+
1466
+ Returns
1467
+ -------
1468
+ AsyncHttpResponse[HubLocationsListHubLocationsResponseBody]
1469
+ OK response.
1470
+ """
1471
+ _response = await self._client_wrapper.httpx_client.request(
1472
+ "hub/locations",
1473
+ method="GET",
1474
+ params={
1475
+ "hubId": hub_id,
1476
+ "locationIds": location_ids,
1477
+ "customerLocationIds": customer_location_ids,
1478
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
1479
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
1480
+ "after": after,
1481
+ "limit": limit,
1482
+ },
1483
+ request_options=request_options,
1484
+ )
1485
+ try:
1486
+ if 200 <= _response.status_code < 300:
1487
+ _data = typing.cast(
1488
+ HubLocationsListHubLocationsResponseBody,
1489
+ parse_obj_as(
1490
+ type_=HubLocationsListHubLocationsResponseBody, # type: ignore
1491
+ object_=_response.json(),
1492
+ ),
1493
+ )
1494
+ return AsyncHttpResponse(response=_response, data=_data)
1495
+ if _response.status_code == 401:
1496
+ raise UnauthorizedError(
1497
+ headers=dict(_response.headers),
1498
+ body=typing.cast(
1499
+ typing.Optional[typing.Any],
1500
+ parse_obj_as(
1501
+ type_=typing.Optional[typing.Any], # type: ignore
1502
+ object_=_response.json(),
1503
+ ),
1504
+ ),
1505
+ )
1506
+ if _response.status_code == 404:
1507
+ raise NotFoundError(
1508
+ headers=dict(_response.headers),
1509
+ body=typing.cast(
1510
+ typing.Optional[typing.Any],
1511
+ parse_obj_as(
1512
+ type_=typing.Optional[typing.Any], # type: ignore
1513
+ object_=_response.json(),
1514
+ ),
1515
+ ),
1516
+ )
1517
+ if _response.status_code == 405:
1518
+ raise MethodNotAllowedError(
1519
+ headers=dict(_response.headers),
1520
+ body=typing.cast(
1521
+ typing.Optional[typing.Any],
1522
+ parse_obj_as(
1523
+ type_=typing.Optional[typing.Any], # type: ignore
1524
+ object_=_response.json(),
1525
+ ),
1526
+ ),
1527
+ )
1528
+ if _response.status_code == 429:
1529
+ raise TooManyRequestsError(
1530
+ headers=dict(_response.headers),
1531
+ body=typing.cast(
1532
+ typing.Optional[typing.Any],
1533
+ parse_obj_as(
1534
+ type_=typing.Optional[typing.Any], # type: ignore
1535
+ object_=_response.json(),
1536
+ ),
1537
+ ),
1538
+ )
1539
+ if _response.status_code == 500:
1540
+ raise InternalServerError(
1541
+ headers=dict(_response.headers),
1542
+ body=typing.cast(
1543
+ typing.Optional[typing.Any],
1544
+ parse_obj_as(
1545
+ type_=typing.Optional[typing.Any], # type: ignore
1546
+ object_=_response.json(),
1547
+ ),
1548
+ ),
1549
+ )
1550
+ if _response.status_code == 501:
1551
+ raise NotImplementedError(
1552
+ headers=dict(_response.headers),
1553
+ body=typing.cast(
1554
+ typing.Optional[typing.Any],
1555
+ parse_obj_as(
1556
+ type_=typing.Optional[typing.Any], # type: ignore
1557
+ object_=_response.json(),
1558
+ ),
1559
+ ),
1560
+ )
1561
+ if _response.status_code == 502:
1562
+ raise BadGatewayError(
1563
+ headers=dict(_response.headers),
1564
+ body=typing.cast(
1565
+ typing.Optional[typing.Any],
1566
+ parse_obj_as(
1567
+ type_=typing.Optional[typing.Any], # type: ignore
1568
+ object_=_response.json(),
1569
+ ),
1570
+ ),
1571
+ )
1572
+ if _response.status_code == 503:
1573
+ raise ServiceUnavailableError(
1574
+ headers=dict(_response.headers),
1575
+ body=typing.cast(
1576
+ typing.Optional[typing.Any],
1577
+ parse_obj_as(
1578
+ type_=typing.Optional[typing.Any], # type: ignore
1579
+ object_=_response.json(),
1580
+ ),
1581
+ ),
1582
+ )
1583
+ if _response.status_code == 504:
1584
+ raise GatewayTimeoutError(
1585
+ headers=dict(_response.headers),
1586
+ body=typing.cast(
1587
+ typing.Optional[typing.Any],
1588
+ parse_obj_as(
1589
+ type_=typing.Optional[typing.Any], # type: ignore
1590
+ object_=_response.json(),
1591
+ ),
1592
+ ),
1593
+ )
1594
+ _response_json = _response.json()
1595
+ except JSONDecodeError:
1596
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1597
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1598
+
1599
+ async def create_hub_locations(
1600
+ self,
1601
+ *,
1602
+ data: typing.Sequence[HubLocationInputObjectRequestBody],
1603
+ request_options: typing.Optional[RequestOptions] = None,
1604
+ ) -> AsyncHttpResponse[HubLocationsCreateHubLocationsResponseBody]:
1605
+ """
1606
+ Create new locations.
1607
+
1608
+ <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1609
+
1610
+ To use this endpoint, select **Write Routes** under the Driver Workflow 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>
1611
+
1612
+
1613
+ **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.
1614
+
1615
+ Parameters
1616
+ ----------
1617
+ data : typing.Sequence[HubLocationInputObjectRequestBody]
1618
+ An array of location objects to be created or updated
1619
+
1620
+ request_options : typing.Optional[RequestOptions]
1621
+ Request-specific configuration.
1622
+
1623
+ Returns
1624
+ -------
1625
+ AsyncHttpResponse[HubLocationsCreateHubLocationsResponseBody]
1626
+ OK response.
1627
+ """
1628
+ _response = await self._client_wrapper.httpx_client.request(
1629
+ "hub/locations",
1630
+ method="POST",
1631
+ json={
1632
+ "data": convert_and_respect_annotation_metadata(
1633
+ object_=data, annotation=typing.Sequence[HubLocationInputObjectRequestBody], direction="write"
1634
+ ),
1635
+ },
1636
+ headers={
1637
+ "content-type": "application/json",
1638
+ },
1639
+ request_options=request_options,
1640
+ omit=OMIT,
1641
+ )
1642
+ try:
1643
+ if 200 <= _response.status_code < 300:
1644
+ _data = typing.cast(
1645
+ HubLocationsCreateHubLocationsResponseBody,
1646
+ parse_obj_as(
1647
+ type_=HubLocationsCreateHubLocationsResponseBody, # type: ignore
1648
+ object_=_response.json(),
1649
+ ),
1650
+ )
1651
+ return AsyncHttpResponse(response=_response, data=_data)
1652
+ if _response.status_code == 401:
1653
+ raise UnauthorizedError(
1654
+ headers=dict(_response.headers),
1655
+ body=typing.cast(
1656
+ typing.Optional[typing.Any],
1657
+ parse_obj_as(
1658
+ type_=typing.Optional[typing.Any], # type: ignore
1659
+ object_=_response.json(),
1660
+ ),
1661
+ ),
1662
+ )
1663
+ if _response.status_code == 404:
1664
+ raise NotFoundError(
1665
+ headers=dict(_response.headers),
1666
+ body=typing.cast(
1667
+ typing.Optional[typing.Any],
1668
+ parse_obj_as(
1669
+ type_=typing.Optional[typing.Any], # type: ignore
1670
+ object_=_response.json(),
1671
+ ),
1672
+ ),
1673
+ )
1674
+ if _response.status_code == 405:
1675
+ raise MethodNotAllowedError(
1676
+ headers=dict(_response.headers),
1677
+ body=typing.cast(
1678
+ typing.Optional[typing.Any],
1679
+ parse_obj_as(
1680
+ type_=typing.Optional[typing.Any], # type: ignore
1681
+ object_=_response.json(),
1682
+ ),
1683
+ ),
1684
+ )
1685
+ if _response.status_code == 429:
1686
+ raise TooManyRequestsError(
1687
+ headers=dict(_response.headers),
1688
+ body=typing.cast(
1689
+ typing.Optional[typing.Any],
1690
+ parse_obj_as(
1691
+ type_=typing.Optional[typing.Any], # type: ignore
1692
+ object_=_response.json(),
1693
+ ),
1694
+ ),
1695
+ )
1696
+ if _response.status_code == 500:
1697
+ raise InternalServerError(
1698
+ headers=dict(_response.headers),
1699
+ body=typing.cast(
1700
+ typing.Optional[typing.Any],
1701
+ parse_obj_as(
1702
+ type_=typing.Optional[typing.Any], # type: ignore
1703
+ object_=_response.json(),
1704
+ ),
1705
+ ),
1706
+ )
1707
+ if _response.status_code == 501:
1708
+ raise NotImplementedError(
1709
+ headers=dict(_response.headers),
1710
+ body=typing.cast(
1711
+ typing.Optional[typing.Any],
1712
+ parse_obj_as(
1713
+ type_=typing.Optional[typing.Any], # type: ignore
1714
+ object_=_response.json(),
1715
+ ),
1716
+ ),
1717
+ )
1718
+ if _response.status_code == 502:
1719
+ raise BadGatewayError(
1720
+ headers=dict(_response.headers),
1721
+ body=typing.cast(
1722
+ typing.Optional[typing.Any],
1723
+ parse_obj_as(
1724
+ type_=typing.Optional[typing.Any], # type: ignore
1725
+ object_=_response.json(),
1726
+ ),
1727
+ ),
1728
+ )
1729
+ if _response.status_code == 503:
1730
+ raise ServiceUnavailableError(
1731
+ headers=dict(_response.headers),
1732
+ body=typing.cast(
1733
+ typing.Optional[typing.Any],
1734
+ parse_obj_as(
1735
+ type_=typing.Optional[typing.Any], # type: ignore
1736
+ object_=_response.json(),
1737
+ ),
1738
+ ),
1739
+ )
1740
+ if _response.status_code == 504:
1741
+ raise GatewayTimeoutError(
1742
+ headers=dict(_response.headers),
1743
+ body=typing.cast(
1744
+ typing.Optional[typing.Any],
1745
+ parse_obj_as(
1746
+ type_=typing.Optional[typing.Any], # type: ignore
1747
+ object_=_response.json(),
1748
+ ),
1749
+ ),
1750
+ )
1751
+ _response_json = _response.json()
1752
+ except JSONDecodeError:
1753
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1754
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1755
+
1756
+ async def list_hub_skills(
1757
+ self,
1758
+ *,
1759
+ hub_id: str,
1760
+ skill_ids: typing.Optional[str] = None,
1761
+ skill_names: typing.Optional[str] = None,
1762
+ start_time: typing.Optional[dt.datetime] = None,
1763
+ end_time: typing.Optional[dt.datetime] = None,
1764
+ after: typing.Optional[str] = None,
1765
+ limit: typing.Optional[int] = None,
1766
+ request_options: typing.Optional[RequestOptions] = None,
1767
+ ) -> AsyncHttpResponse[HubSkillsListHubSkillsResponseBody]:
1768
+ """
1769
+ Retrieve skills for a specific hub.
1770
+
1771
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1772
+
1773
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
1774
+
1775
+
1776
+ **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.
1777
+
1778
+ Parameters
1779
+ ----------
1780
+ hub_id : str
1781
+ The hub identifier
1782
+
1783
+ skill_ids : typing.Optional[str]
1784
+ A comma-separated list of skill IDs that can be used for filtering.
1785
+
1786
+ skill_names : typing.Optional[str]
1787
+ A comma-separated list of skill namess that can be used for filtering.
1788
+
1789
+ start_time : typing.Optional[dt.datetime]
1790
+ Time filter of when the skill was updated, in RFC 3339 format
1791
+
1792
+ end_time : typing.Optional[dt.datetime]
1793
+ Time filter of when the skill was updated, in RFC 3339 format
1794
+
1795
+ after : typing.Optional[str]
1796
+ If specified, should be the endCursor 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.
1797
+
1798
+ limit : typing.Optional[int]
1799
+ Maximum number of objects to return. Default and maximum is 100
1800
+
1801
+ request_options : typing.Optional[RequestOptions]
1802
+ Request-specific configuration.
1803
+
1804
+ Returns
1805
+ -------
1806
+ AsyncHttpResponse[HubSkillsListHubSkillsResponseBody]
1807
+ OK response.
1808
+ """
1809
+ _response = await self._client_wrapper.httpx_client.request(
1810
+ "hub/skills",
1811
+ method="GET",
1812
+ params={
1813
+ "hubId": hub_id,
1814
+ "skillIds": skill_ids,
1815
+ "skillNames": skill_names,
1816
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
1817
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
1818
+ "after": after,
1819
+ "limit": limit,
1820
+ },
1821
+ request_options=request_options,
1822
+ )
1823
+ try:
1824
+ if 200 <= _response.status_code < 300:
1825
+ _data = typing.cast(
1826
+ HubSkillsListHubSkillsResponseBody,
1827
+ parse_obj_as(
1828
+ type_=HubSkillsListHubSkillsResponseBody, # type: ignore
1829
+ object_=_response.json(),
1830
+ ),
1831
+ )
1832
+ return AsyncHttpResponse(response=_response, data=_data)
1833
+ if _response.status_code == 401:
1834
+ raise UnauthorizedError(
1835
+ headers=dict(_response.headers),
1836
+ body=typing.cast(
1837
+ typing.Optional[typing.Any],
1838
+ parse_obj_as(
1839
+ type_=typing.Optional[typing.Any], # type: ignore
1840
+ object_=_response.json(),
1841
+ ),
1842
+ ),
1843
+ )
1844
+ if _response.status_code == 404:
1845
+ raise NotFoundError(
1846
+ headers=dict(_response.headers),
1847
+ body=typing.cast(
1848
+ typing.Optional[typing.Any],
1849
+ parse_obj_as(
1850
+ type_=typing.Optional[typing.Any], # type: ignore
1851
+ object_=_response.json(),
1852
+ ),
1853
+ ),
1854
+ )
1855
+ if _response.status_code == 405:
1856
+ raise MethodNotAllowedError(
1857
+ headers=dict(_response.headers),
1858
+ body=typing.cast(
1859
+ typing.Optional[typing.Any],
1860
+ parse_obj_as(
1861
+ type_=typing.Optional[typing.Any], # type: ignore
1862
+ object_=_response.json(),
1863
+ ),
1864
+ ),
1865
+ )
1866
+ if _response.status_code == 429:
1867
+ raise TooManyRequestsError(
1868
+ headers=dict(_response.headers),
1869
+ body=typing.cast(
1870
+ typing.Optional[typing.Any],
1871
+ parse_obj_as(
1872
+ type_=typing.Optional[typing.Any], # type: ignore
1873
+ object_=_response.json(),
1874
+ ),
1875
+ ),
1876
+ )
1877
+ if _response.status_code == 500:
1878
+ raise InternalServerError(
1879
+ headers=dict(_response.headers),
1880
+ body=typing.cast(
1881
+ typing.Optional[typing.Any],
1882
+ parse_obj_as(
1883
+ type_=typing.Optional[typing.Any], # type: ignore
1884
+ object_=_response.json(),
1885
+ ),
1886
+ ),
1887
+ )
1888
+ if _response.status_code == 501:
1889
+ raise NotImplementedError(
1890
+ headers=dict(_response.headers),
1891
+ body=typing.cast(
1892
+ typing.Optional[typing.Any],
1893
+ parse_obj_as(
1894
+ type_=typing.Optional[typing.Any], # type: ignore
1895
+ object_=_response.json(),
1896
+ ),
1897
+ ),
1898
+ )
1899
+ if _response.status_code == 502:
1900
+ raise BadGatewayError(
1901
+ headers=dict(_response.headers),
1902
+ body=typing.cast(
1903
+ typing.Optional[typing.Any],
1904
+ parse_obj_as(
1905
+ type_=typing.Optional[typing.Any], # type: ignore
1906
+ object_=_response.json(),
1907
+ ),
1908
+ ),
1909
+ )
1910
+ if _response.status_code == 503:
1911
+ raise ServiceUnavailableError(
1912
+ headers=dict(_response.headers),
1913
+ body=typing.cast(
1914
+ typing.Optional[typing.Any],
1915
+ parse_obj_as(
1916
+ type_=typing.Optional[typing.Any], # type: ignore
1917
+ object_=_response.json(),
1918
+ ),
1919
+ ),
1920
+ )
1921
+ if _response.status_code == 504:
1922
+ raise GatewayTimeoutError(
1923
+ headers=dict(_response.headers),
1924
+ body=typing.cast(
1925
+ typing.Optional[typing.Any],
1926
+ parse_obj_as(
1927
+ type_=typing.Optional[typing.Any], # type: ignore
1928
+ object_=_response.json(),
1929
+ ),
1930
+ ),
1931
+ )
1932
+ _response_json = _response.json()
1933
+ except JSONDecodeError:
1934
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1935
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1936
+
1937
+ async def list_hubs(
1938
+ self,
1939
+ *,
1940
+ hub_ids: typing.Optional[str] = None,
1941
+ start_time: typing.Optional[dt.datetime] = None,
1942
+ end_time: typing.Optional[dt.datetime] = None,
1943
+ after: typing.Optional[str] = None,
1944
+ limit: typing.Optional[int] = None,
1945
+ request_options: typing.Optional[RequestOptions] = None,
1946
+ ) -> AsyncHttpResponse[HubsListHubsResponseBody]:
1947
+ """
1948
+ Retrieve all hubs (planners) in the organization. This endpoint supports pagination and filtering based on hub IDs and update times.
1949
+
1950
+ <b>Rate limit:</b> 10 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
1951
+
1952
+ To use this endpoint, select **Read Routes** under the Driver Workflow 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>
1953
+
1954
+
1955
+ **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.
1956
+
1957
+ Parameters
1958
+ ----------
1959
+ hub_ids : typing.Optional[str]
1960
+ A comma-separated list of hub IDs for filtering results.
1961
+
1962
+ start_time : typing.Optional[dt.datetime]
1963
+ Returns hubs updated after the specified time in UTC
1964
+
1965
+ end_time : typing.Optional[dt.datetime]
1966
+ Returns hubs updated before the specified time in UTC
1967
+
1968
+ after : typing.Optional[str]
1969
+ If specified, should be the endCursor 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.
1970
+
1971
+ limit : typing.Optional[int]
1972
+ Maximum number of objects to return. Default and maximum is 100
1973
+
1974
+ request_options : typing.Optional[RequestOptions]
1975
+ Request-specific configuration.
1976
+
1977
+ Returns
1978
+ -------
1979
+ AsyncHttpResponse[HubsListHubsResponseBody]
1980
+ OK response.
1981
+ """
1982
+ _response = await self._client_wrapper.httpx_client.request(
1983
+ "hubs",
1984
+ method="GET",
1985
+ params={
1986
+ "hubIds": hub_ids,
1987
+ "startTime": serialize_datetime(start_time) if start_time is not None else None,
1988
+ "endTime": serialize_datetime(end_time) if end_time is not None else None,
1989
+ "after": after,
1990
+ "limit": limit,
1991
+ },
1992
+ request_options=request_options,
1993
+ )
1994
+ try:
1995
+ if 200 <= _response.status_code < 300:
1996
+ _data = typing.cast(
1997
+ HubsListHubsResponseBody,
1998
+ parse_obj_as(
1999
+ type_=HubsListHubsResponseBody, # type: ignore
2000
+ object_=_response.json(),
2001
+ ),
2002
+ )
2003
+ return AsyncHttpResponse(response=_response, data=_data)
2004
+ if _response.status_code == 401:
2005
+ raise UnauthorizedError(
2006
+ headers=dict(_response.headers),
2007
+ body=typing.cast(
2008
+ typing.Optional[typing.Any],
2009
+ parse_obj_as(
2010
+ type_=typing.Optional[typing.Any], # type: ignore
2011
+ object_=_response.json(),
2012
+ ),
2013
+ ),
2014
+ )
2015
+ if _response.status_code == 404:
2016
+ raise NotFoundError(
2017
+ headers=dict(_response.headers),
2018
+ body=typing.cast(
2019
+ typing.Optional[typing.Any],
2020
+ parse_obj_as(
2021
+ type_=typing.Optional[typing.Any], # type: ignore
2022
+ object_=_response.json(),
2023
+ ),
2024
+ ),
2025
+ )
2026
+ if _response.status_code == 405:
2027
+ raise MethodNotAllowedError(
2028
+ headers=dict(_response.headers),
2029
+ body=typing.cast(
2030
+ typing.Optional[typing.Any],
2031
+ parse_obj_as(
2032
+ type_=typing.Optional[typing.Any], # type: ignore
2033
+ object_=_response.json(),
2034
+ ),
2035
+ ),
2036
+ )
2037
+ if _response.status_code == 429:
2038
+ raise TooManyRequestsError(
2039
+ headers=dict(_response.headers),
2040
+ body=typing.cast(
2041
+ typing.Optional[typing.Any],
2042
+ parse_obj_as(
2043
+ type_=typing.Optional[typing.Any], # type: ignore
2044
+ object_=_response.json(),
2045
+ ),
2046
+ ),
2047
+ )
2048
+ if _response.status_code == 500:
2049
+ raise InternalServerError(
2050
+ headers=dict(_response.headers),
2051
+ body=typing.cast(
2052
+ typing.Optional[typing.Any],
2053
+ parse_obj_as(
2054
+ type_=typing.Optional[typing.Any], # type: ignore
2055
+ object_=_response.json(),
2056
+ ),
2057
+ ),
2058
+ )
2059
+ if _response.status_code == 501:
2060
+ raise NotImplementedError(
2061
+ headers=dict(_response.headers),
2062
+ body=typing.cast(
2063
+ typing.Optional[typing.Any],
2064
+ parse_obj_as(
2065
+ type_=typing.Optional[typing.Any], # type: ignore
2066
+ object_=_response.json(),
2067
+ ),
2068
+ ),
2069
+ )
2070
+ if _response.status_code == 502:
2071
+ raise BadGatewayError(
2072
+ headers=dict(_response.headers),
2073
+ body=typing.cast(
2074
+ typing.Optional[typing.Any],
2075
+ parse_obj_as(
2076
+ type_=typing.Optional[typing.Any], # type: ignore
2077
+ object_=_response.json(),
2078
+ ),
2079
+ ),
2080
+ )
2081
+ if _response.status_code == 503:
2082
+ raise ServiceUnavailableError(
2083
+ headers=dict(_response.headers),
2084
+ body=typing.cast(
2085
+ typing.Optional[typing.Any],
2086
+ parse_obj_as(
2087
+ type_=typing.Optional[typing.Any], # type: ignore
2088
+ object_=_response.json(),
2089
+ ),
2090
+ ),
2091
+ )
2092
+ if _response.status_code == 504:
2093
+ raise GatewayTimeoutError(
2094
+ headers=dict(_response.headers),
2095
+ body=typing.cast(
2096
+ typing.Optional[typing.Any],
2097
+ parse_obj_as(
2098
+ type_=typing.Optional[typing.Any], # type: ignore
2099
+ object_=_response.json(),
2100
+ ),
2101
+ ),
2102
+ )
2103
+ _response_json = _response.json()
2104
+ except JSONDecodeError:
2105
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2106
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)