samsara-api 3.0.0__py3-none-any.whl → 4.0.0__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.0.dist-info/METADATA +238 -0
  1115. samsara_api-4.0.0.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.0.dist-info}/LICENSE +0 -0
  1371. {samsara_api-3.0.0.dist-info → samsara_api-4.0.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,2463 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ..core.api_error import ApiError
7
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ..core.jsonable_encoder import jsonable_encoder
10
+ from ..core.pydantic_utilities import parse_obj_as
11
+ from ..core.request_options import RequestOptions
12
+ from ..core.serialization import convert_and_respect_annotation_metadata
13
+ from ..errors.bad_gateway_error import BadGatewayError
14
+ from ..errors.gateway_timeout_error import GatewayTimeoutError
15
+ from ..errors.internal_server_error import InternalServerError
16
+ from ..errors.method_not_allowed_error import MethodNotAllowedError
17
+ from ..errors.not_found_error import NotFoundError
18
+ from ..errors.not_implemented_error import NotImplementedError
19
+ from ..errors.service_unavailable_error import ServiceUnavailableError
20
+ from ..errors.too_many_requests_error import TooManyRequestsError
21
+ from ..errors.unauthorized_error import UnauthorizedError
22
+ from ..types.asset_data_outputs_patch_asset_data_outputs_response_body import (
23
+ AssetDataOutputsPatchAssetDataOutputsResponseBody,
24
+ )
25
+ from ..types.asset_location import AssetLocation
26
+ from ..types.asset_name import AssetName
27
+ from ..types.custom_metadata import CustomMetadata
28
+ from ..types.data_input_list_response import DataInputListResponse
29
+ from ..types.data_input_snapshot_response import DataInputSnapshotResponse
30
+ from ..types.data_inputs_tiny_response import DataInputsTinyResponse
31
+ from ..types.inline_response_200 import InlineResponse200
32
+ from ..types.inline_response_2008 import InlineResponse2008
33
+ from ..types.list_industrial_assets_response import ListIndustrialAssetsResponse
34
+ from ..types.location_type import LocationType
35
+ from ..types.parent_id import ParentId
36
+ from ..types.standard_delete_response import StandardDeleteResponse
37
+ from ..types.tag_ids import TagIds
38
+ from ..types.v_1_machine_history_response import V1MachineHistoryResponse
39
+ from ..types.v_1_programs_for_the_camera_response import V1ProgramsForTheCameraResponse
40
+ from ..types.v_1_vision_cameras_response import V1VisionCamerasResponse
41
+ from ..types.v_1_vision_run_by_camera_response import V1VisionRunByCameraResponse
42
+ from ..types.v_1_vision_runs_by_camera_and_program_response import V1VisionRunsByCameraAndProgramResponse
43
+ from ..types.v_1_vision_runs_by_camera_response import V1VisionRunsByCameraResponse
44
+ from ..types.v_1_vision_runs_response import V1VisionRunsResponse
45
+
46
+ # this is used as the default value for optional parameters
47
+ OMIT = typing.cast(typing.Any, ...)
48
+
49
+
50
+ class RawIndustrialClient:
51
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
52
+ self._client_wrapper = client_wrapper
53
+
54
+ def get_industrial_assets(
55
+ self,
56
+ *,
57
+ limit: typing.Optional[int] = None,
58
+ after: typing.Optional[str] = None,
59
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
60
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
61
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
62
+ request_options: typing.Optional[RequestOptions] = None,
63
+ ) -> HttpResponse[ListIndustrialAssetsResponse]:
64
+ """
65
+ List all assets in the organization.
66
+
67
+ **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.
68
+
69
+ To use this endpoint, select **Read Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
70
+
71
+ Parameters
72
+ ----------
73
+ limit : typing.Optional[int]
74
+ The limit for how many objects will be in the response. Default and max for this value is 512 objects.
75
+
76
+ after : typing.Optional[str]
77
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
78
+
79
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
80
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
81
+
82
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
83
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
84
+
85
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
86
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
87
+
88
+ request_options : typing.Optional[RequestOptions]
89
+ Request-specific configuration.
90
+
91
+ Returns
92
+ -------
93
+ HttpResponse[ListIndustrialAssetsResponse]
94
+ Assets in the organization.
95
+ """
96
+ _response = self._client_wrapper.httpx_client.request(
97
+ "industrial/assets",
98
+ method="GET",
99
+ params={
100
+ "limit": limit,
101
+ "after": after,
102
+ "parentTagIds": parent_tag_ids,
103
+ "tagIds": tag_ids,
104
+ "assetIds": asset_ids,
105
+ },
106
+ request_options=request_options,
107
+ )
108
+ try:
109
+ if 200 <= _response.status_code < 300:
110
+ _data = typing.cast(
111
+ ListIndustrialAssetsResponse,
112
+ parse_obj_as(
113
+ type_=ListIndustrialAssetsResponse, # type: ignore
114
+ object_=_response.json(),
115
+ ),
116
+ )
117
+ return HttpResponse(response=_response, data=_data)
118
+ _response_json = _response.json()
119
+ except JSONDecodeError:
120
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
121
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
122
+
123
+ def create_industrial_asset(
124
+ self,
125
+ *,
126
+ name: AssetName,
127
+ custom_metadata: typing.Optional[CustomMetadata] = OMIT,
128
+ location: typing.Optional[AssetLocation] = OMIT,
129
+ location_data_input_id: typing.Optional[str] = OMIT,
130
+ location_type: typing.Optional[LocationType] = OMIT,
131
+ parent_id: typing.Optional[ParentId] = OMIT,
132
+ running_status_data_input_id: typing.Optional[str] = OMIT,
133
+ tag_ids: typing.Optional[TagIds] = OMIT,
134
+ request_options: typing.Optional[RequestOptions] = None,
135
+ ) -> HttpResponse[InlineResponse200]:
136
+ """
137
+ Create an asset with optional configuration parameters.
138
+
139
+ **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.
140
+
141
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
142
+
143
+ Parameters
144
+ ----------
145
+ name : AssetName
146
+
147
+ custom_metadata : typing.Optional[CustomMetadata]
148
+
149
+ location : typing.Optional[AssetLocation]
150
+
151
+ location_data_input_id : typing.Optional[str]
152
+ Required if locationType is "dataInput". Specifies the id of a location data input which will determine the asset's location. **The data input will be moved to the new asset.**
153
+
154
+ location_type : typing.Optional[LocationType]
155
+
156
+ parent_id : typing.Optional[ParentId]
157
+
158
+ running_status_data_input_id : typing.Optional[str]
159
+ The asset's isRunning status will be true when the associated data input's value is 1. Data input cannot be of location format. **The data input will be moved to the new asset.**
160
+
161
+ tag_ids : typing.Optional[TagIds]
162
+
163
+ request_options : typing.Optional[RequestOptions]
164
+ Request-specific configuration.
165
+
166
+ Returns
167
+ -------
168
+ HttpResponse[InlineResponse200]
169
+ Newly created asset object
170
+ """
171
+ _response = self._client_wrapper.httpx_client.request(
172
+ "industrial/assets",
173
+ method="POST",
174
+ json={
175
+ "customMetadata": custom_metadata,
176
+ "location": convert_and_respect_annotation_metadata(
177
+ object_=location, annotation=AssetLocation, direction="write"
178
+ ),
179
+ "locationDataInputId": location_data_input_id,
180
+ "locationType": location_type,
181
+ "name": name,
182
+ "parentId": parent_id,
183
+ "runningStatusDataInputId": running_status_data_input_id,
184
+ "tagIds": tag_ids,
185
+ },
186
+ headers={
187
+ "content-type": "application/json",
188
+ },
189
+ request_options=request_options,
190
+ omit=OMIT,
191
+ )
192
+ try:
193
+ if 200 <= _response.status_code < 300:
194
+ _data = typing.cast(
195
+ InlineResponse200,
196
+ parse_obj_as(
197
+ type_=InlineResponse200, # type: ignore
198
+ object_=_response.json(),
199
+ ),
200
+ )
201
+ return HttpResponse(response=_response, data=_data)
202
+ _response_json = _response.json()
203
+ except JSONDecodeError:
204
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
205
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
206
+
207
+ def delete_industrial_asset(
208
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
209
+ ) -> HttpResponse[StandardDeleteResponse]:
210
+ """
211
+ Delete asset.
212
+
213
+ **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.
214
+
215
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
216
+
217
+ Parameters
218
+ ----------
219
+ id : str
220
+ Id of the asset to be deleted.
221
+
222
+ request_options : typing.Optional[RequestOptions]
223
+ Request-specific configuration.
224
+
225
+ Returns
226
+ -------
227
+ HttpResponse[StandardDeleteResponse]
228
+ A successful DELETE response is a 204 with no content.
229
+ """
230
+ _response = self._client_wrapper.httpx_client.request(
231
+ f"industrial/assets/{jsonable_encoder(id)}",
232
+ method="DELETE",
233
+ request_options=request_options,
234
+ )
235
+ try:
236
+ if 200 <= _response.status_code < 300:
237
+ _data = typing.cast(
238
+ StandardDeleteResponse,
239
+ parse_obj_as(
240
+ type_=StandardDeleteResponse, # type: ignore
241
+ object_=_response.json(),
242
+ ),
243
+ )
244
+ return HttpResponse(response=_response, data=_data)
245
+ _response_json = _response.json()
246
+ except JSONDecodeError:
247
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
248
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
249
+
250
+ def patch_industrial_asset(
251
+ self,
252
+ id: str,
253
+ *,
254
+ custom_metadata: typing.Optional[CustomMetadata] = OMIT,
255
+ location: typing.Optional[AssetLocation] = OMIT,
256
+ location_data_input_id: typing.Optional[str] = OMIT,
257
+ location_type: typing.Optional[LocationType] = OMIT,
258
+ name: typing.Optional[AssetName] = OMIT,
259
+ parent_id: typing.Optional[str] = OMIT,
260
+ running_status_data_input_id: typing.Optional[str] = OMIT,
261
+ tag_ids: typing.Optional[TagIds] = OMIT,
262
+ request_options: typing.Optional[RequestOptions] = None,
263
+ ) -> HttpResponse[InlineResponse200]:
264
+ """
265
+ Update an existing asset. Only the provided fields will be updated.
266
+
267
+ **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.
268
+
269
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
270
+
271
+ Parameters
272
+ ----------
273
+ id : str
274
+ Id of the asset to be updated
275
+
276
+ custom_metadata : typing.Optional[CustomMetadata]
277
+
278
+ location : typing.Optional[AssetLocation]
279
+
280
+ location_data_input_id : typing.Optional[str]
281
+ Required if locationType is "dataInput". Specifies the id of a location data input which will determine the asset's location. The data input must be in the asset.
282
+
283
+ location_type : typing.Optional[LocationType]
284
+
285
+ name : typing.Optional[AssetName]
286
+
287
+ parent_id : typing.Optional[str]
288
+ The id of the parent asset that the asset belongs to. Pass in an empty string to remove the child from the parent.
289
+
290
+ running_status_data_input_id : typing.Optional[str]
291
+ The asset's isRunning status will be true when the associated data input's value is 1. Data input cannot be of location format. The data input must be in the asset.
292
+
293
+ tag_ids : typing.Optional[TagIds]
294
+
295
+ request_options : typing.Optional[RequestOptions]
296
+ Request-specific configuration.
297
+
298
+ Returns
299
+ -------
300
+ HttpResponse[InlineResponse200]
301
+ The updated asset
302
+ """
303
+ _response = self._client_wrapper.httpx_client.request(
304
+ f"industrial/assets/{jsonable_encoder(id)}",
305
+ method="PATCH",
306
+ json={
307
+ "customMetadata": custom_metadata,
308
+ "location": convert_and_respect_annotation_metadata(
309
+ object_=location, annotation=AssetLocation, direction="write"
310
+ ),
311
+ "locationDataInputId": location_data_input_id,
312
+ "locationType": location_type,
313
+ "name": name,
314
+ "parentId": parent_id,
315
+ "runningStatusDataInputId": running_status_data_input_id,
316
+ "tagIds": tag_ids,
317
+ },
318
+ headers={
319
+ "content-type": "application/json",
320
+ },
321
+ request_options=request_options,
322
+ omit=OMIT,
323
+ )
324
+ try:
325
+ if 200 <= _response.status_code < 300:
326
+ _data = typing.cast(
327
+ InlineResponse200,
328
+ parse_obj_as(
329
+ type_=InlineResponse200, # type: ignore
330
+ object_=_response.json(),
331
+ ),
332
+ )
333
+ return HttpResponse(response=_response, data=_data)
334
+ _response_json = _response.json()
335
+ except JSONDecodeError:
336
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
337
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
338
+
339
+ def patch_asset_data_outputs(
340
+ self,
341
+ id: str,
342
+ *,
343
+ values: typing.Dict[str, typing.Optional[typing.Any]],
344
+ request_options: typing.Optional[RequestOptions] = None,
345
+ ) -> HttpResponse[AssetDataOutputsPatchAssetDataOutputsResponseBody]:
346
+ """
347
+ Writes values to multiple data outputs on an asset simultaneously. Only the provided data outputs will be updated.
348
+
349
+ <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>).
350
+
351
+ To use this endpoint, select **Write Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
352
+
353
+
354
+ **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.
355
+
356
+ Parameters
357
+ ----------
358
+ id : str
359
+ Asset ID
360
+
361
+ values : typing.Dict[str, typing.Optional[typing.Any]]
362
+ A map of data output IDs to values. All data outputs must belong to the same asset. Only the specified IDs will be written to.
363
+
364
+ request_options : typing.Optional[RequestOptions]
365
+ Request-specific configuration.
366
+
367
+ Returns
368
+ -------
369
+ HttpResponse[AssetDataOutputsPatchAssetDataOutputsResponseBody]
370
+ OK response.
371
+ """
372
+ _response = self._client_wrapper.httpx_client.request(
373
+ f"industrial/assets/{jsonable_encoder(id)}/data-outputs",
374
+ method="PATCH",
375
+ json={
376
+ "values": values,
377
+ },
378
+ headers={
379
+ "content-type": "application/json",
380
+ },
381
+ request_options=request_options,
382
+ omit=OMIT,
383
+ )
384
+ try:
385
+ if 200 <= _response.status_code < 300:
386
+ _data = typing.cast(
387
+ AssetDataOutputsPatchAssetDataOutputsResponseBody,
388
+ parse_obj_as(
389
+ type_=AssetDataOutputsPatchAssetDataOutputsResponseBody, # type: ignore
390
+ object_=_response.json(),
391
+ ),
392
+ )
393
+ return HttpResponse(response=_response, data=_data)
394
+ if _response.status_code == 401:
395
+ raise UnauthorizedError(
396
+ headers=dict(_response.headers),
397
+ body=typing.cast(
398
+ typing.Optional[typing.Any],
399
+ parse_obj_as(
400
+ type_=typing.Optional[typing.Any], # type: ignore
401
+ object_=_response.json(),
402
+ ),
403
+ ),
404
+ )
405
+ if _response.status_code == 404:
406
+ raise NotFoundError(
407
+ headers=dict(_response.headers),
408
+ body=typing.cast(
409
+ typing.Optional[typing.Any],
410
+ parse_obj_as(
411
+ type_=typing.Optional[typing.Any], # type: ignore
412
+ object_=_response.json(),
413
+ ),
414
+ ),
415
+ )
416
+ if _response.status_code == 405:
417
+ raise MethodNotAllowedError(
418
+ headers=dict(_response.headers),
419
+ body=typing.cast(
420
+ typing.Optional[typing.Any],
421
+ parse_obj_as(
422
+ type_=typing.Optional[typing.Any], # type: ignore
423
+ object_=_response.json(),
424
+ ),
425
+ ),
426
+ )
427
+ if _response.status_code == 429:
428
+ raise TooManyRequestsError(
429
+ headers=dict(_response.headers),
430
+ body=typing.cast(
431
+ typing.Optional[typing.Any],
432
+ parse_obj_as(
433
+ type_=typing.Optional[typing.Any], # type: ignore
434
+ object_=_response.json(),
435
+ ),
436
+ ),
437
+ )
438
+ if _response.status_code == 500:
439
+ raise InternalServerError(
440
+ headers=dict(_response.headers),
441
+ body=typing.cast(
442
+ typing.Optional[typing.Any],
443
+ parse_obj_as(
444
+ type_=typing.Optional[typing.Any], # type: ignore
445
+ object_=_response.json(),
446
+ ),
447
+ ),
448
+ )
449
+ if _response.status_code == 501:
450
+ raise NotImplementedError(
451
+ headers=dict(_response.headers),
452
+ body=typing.cast(
453
+ typing.Optional[typing.Any],
454
+ parse_obj_as(
455
+ type_=typing.Optional[typing.Any], # type: ignore
456
+ object_=_response.json(),
457
+ ),
458
+ ),
459
+ )
460
+ if _response.status_code == 502:
461
+ raise BadGatewayError(
462
+ headers=dict(_response.headers),
463
+ body=typing.cast(
464
+ typing.Optional[typing.Any],
465
+ parse_obj_as(
466
+ type_=typing.Optional[typing.Any], # type: ignore
467
+ object_=_response.json(),
468
+ ),
469
+ ),
470
+ )
471
+ if _response.status_code == 503:
472
+ raise ServiceUnavailableError(
473
+ headers=dict(_response.headers),
474
+ body=typing.cast(
475
+ typing.Optional[typing.Any],
476
+ parse_obj_as(
477
+ type_=typing.Optional[typing.Any], # type: ignore
478
+ object_=_response.json(),
479
+ ),
480
+ ),
481
+ )
482
+ if _response.status_code == 504:
483
+ raise GatewayTimeoutError(
484
+ headers=dict(_response.headers),
485
+ body=typing.cast(
486
+ typing.Optional[typing.Any],
487
+ parse_obj_as(
488
+ type_=typing.Optional[typing.Any], # type: ignore
489
+ object_=_response.json(),
490
+ ),
491
+ ),
492
+ )
493
+ _response_json = _response.json()
494
+ except JSONDecodeError:
495
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
496
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
497
+
498
+ def get_data_inputs(
499
+ self,
500
+ *,
501
+ limit: typing.Optional[int] = None,
502
+ after: typing.Optional[str] = None,
503
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
504
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
505
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
506
+ request_options: typing.Optional[RequestOptions] = None,
507
+ ) -> HttpResponse[DataInputsTinyResponse]:
508
+ """
509
+ Returns all data inputs, optionally filtered by tags or asset ids.
510
+
511
+ **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.
512
+
513
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
514
+
515
+ Parameters
516
+ ----------
517
+ limit : typing.Optional[int]
518
+ The limit for how many objects will be in the response. Default and max for this value is 512 objects.
519
+
520
+ after : typing.Optional[str]
521
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
522
+
523
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
524
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
525
+
526
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
527
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
528
+
529
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
530
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
531
+
532
+ request_options : typing.Optional[RequestOptions]
533
+ Request-specific configuration.
534
+
535
+ Returns
536
+ -------
537
+ HttpResponse[DataInputsTinyResponse]
538
+ List of data inputs with names, ids, and other metadata.
539
+ """
540
+ _response = self._client_wrapper.httpx_client.request(
541
+ "industrial/data-inputs",
542
+ method="GET",
543
+ params={
544
+ "limit": limit,
545
+ "after": after,
546
+ "parentTagIds": parent_tag_ids,
547
+ "tagIds": tag_ids,
548
+ "assetIds": asset_ids,
549
+ },
550
+ request_options=request_options,
551
+ )
552
+ try:
553
+ if 200 <= _response.status_code < 300:
554
+ _data = typing.cast(
555
+ DataInputsTinyResponse,
556
+ parse_obj_as(
557
+ type_=DataInputsTinyResponse, # type: ignore
558
+ object_=_response.json(),
559
+ ),
560
+ )
561
+ return HttpResponse(response=_response, data=_data)
562
+ _response_json = _response.json()
563
+ except JSONDecodeError:
564
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
565
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
566
+
567
+ def get_data_input_data_snapshot(
568
+ self,
569
+ *,
570
+ after: typing.Optional[str] = None,
571
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
572
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
573
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
574
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
575
+ request_options: typing.Optional[RequestOptions] = None,
576
+ ) -> HttpResponse[DataInputSnapshotResponse]:
577
+ """
578
+ Returns last known data points for all data inputs. This can be filtered by optional tags, specific data input IDs or asset IDs.
579
+
580
+ **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.
581
+
582
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
583
+
584
+ Parameters
585
+ ----------
586
+ after : typing.Optional[str]
587
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
588
+
589
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
590
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
591
+
592
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
593
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
594
+
595
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
596
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
597
+
598
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
599
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
600
+
601
+ request_options : typing.Optional[RequestOptions]
602
+ Request-specific configuration.
603
+
604
+ Returns
605
+ -------
606
+ HttpResponse[DataInputSnapshotResponse]
607
+ List of last known data input data points and pagination parameters
608
+ """
609
+ _response = self._client_wrapper.httpx_client.request(
610
+ "industrial/data-inputs/data-points",
611
+ method="GET",
612
+ params={
613
+ "after": after,
614
+ "parentTagIds": parent_tag_ids,
615
+ "tagIds": tag_ids,
616
+ "dataInputIds": data_input_ids,
617
+ "assetIds": asset_ids,
618
+ },
619
+ request_options=request_options,
620
+ )
621
+ try:
622
+ if 200 <= _response.status_code < 300:
623
+ _data = typing.cast(
624
+ DataInputSnapshotResponse,
625
+ parse_obj_as(
626
+ type_=DataInputSnapshotResponse, # type: ignore
627
+ object_=_response.json(),
628
+ ),
629
+ )
630
+ return HttpResponse(response=_response, data=_data)
631
+ _response_json = _response.json()
632
+ except JSONDecodeError:
633
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
634
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
635
+
636
+ def get_data_input_data_feed(
637
+ self,
638
+ *,
639
+ after: typing.Optional[str] = None,
640
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
641
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
642
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
643
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
644
+ request_options: typing.Optional[RequestOptions] = None,
645
+ ) -> HttpResponse[DataInputListResponse]:
646
+ """
647
+ Follow a continuous feed of all data input data points.
648
+
649
+ Your first call to this endpoint will provide you with the most recent data points for each data input and a `pagination` object that contains an `endCursor`.
650
+
651
+ You can provide the `endCursor` to the `after` parameter of this endpoint to get data point updates since that `endCursor`.
652
+
653
+ If `hasNextPage` is `false`, no updates are readily available yet. We suggest waiting a minimum of 5 seconds before requesting updates.
654
+
655
+ **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.
656
+
657
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
658
+
659
+ Parameters
660
+ ----------
661
+ after : typing.Optional[str]
662
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
663
+
664
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
665
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
666
+
667
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
668
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
669
+
670
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
671
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
672
+
673
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
674
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
675
+
676
+ request_options : typing.Optional[RequestOptions]
677
+ Request-specific configuration.
678
+
679
+ Returns
680
+ -------
681
+ HttpResponse[DataInputListResponse]
682
+ List of all data points for specified data inputs
683
+ """
684
+ _response = self._client_wrapper.httpx_client.request(
685
+ "industrial/data-inputs/data-points/feed",
686
+ method="GET",
687
+ params={
688
+ "after": after,
689
+ "parentTagIds": parent_tag_ids,
690
+ "tagIds": tag_ids,
691
+ "dataInputIds": data_input_ids,
692
+ "assetIds": asset_ids,
693
+ },
694
+ request_options=request_options,
695
+ )
696
+ try:
697
+ if 200 <= _response.status_code < 300:
698
+ _data = typing.cast(
699
+ DataInputListResponse,
700
+ parse_obj_as(
701
+ type_=DataInputListResponse, # type: ignore
702
+ object_=_response.json(),
703
+ ),
704
+ )
705
+ return HttpResponse(response=_response, data=_data)
706
+ _response_json = _response.json()
707
+ except JSONDecodeError:
708
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
709
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
710
+
711
+ def get_data_input_data_history(
712
+ self,
713
+ *,
714
+ start_time: str,
715
+ end_time: str,
716
+ after: typing.Optional[str] = None,
717
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
718
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
719
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
720
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
721
+ request_options: typing.Optional[RequestOptions] = None,
722
+ ) -> HttpResponse[DataInputListResponse]:
723
+ """
724
+ Returns all known data points during the given time range for all data inputs. This can be filtered by optional tags, specific data input IDs or asset IDs.
725
+
726
+ **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.
727
+
728
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
729
+
730
+ Parameters
731
+ ----------
732
+ start_time : str
733
+ A start time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
734
+
735
+ end_time : str
736
+ An end time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
737
+
738
+ after : typing.Optional[str]
739
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
740
+
741
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
742
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
743
+
744
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
745
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
746
+
747
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
748
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
749
+
750
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
751
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
752
+
753
+ request_options : typing.Optional[RequestOptions]
754
+ Request-specific configuration.
755
+
756
+ Returns
757
+ -------
758
+ HttpResponse[DataInputListResponse]
759
+ List of all data points for the specified data inputs and time range.
760
+ """
761
+ _response = self._client_wrapper.httpx_client.request(
762
+ "industrial/data-inputs/data-points/history",
763
+ method="GET",
764
+ params={
765
+ "startTime": start_time,
766
+ "endTime": end_time,
767
+ "after": after,
768
+ "parentTagIds": parent_tag_ids,
769
+ "tagIds": tag_ids,
770
+ "dataInputIds": data_input_ids,
771
+ "assetIds": asset_ids,
772
+ },
773
+ request_options=request_options,
774
+ )
775
+ try:
776
+ if 200 <= _response.status_code < 300:
777
+ _data = typing.cast(
778
+ DataInputListResponse,
779
+ parse_obj_as(
780
+ type_=DataInputListResponse, # type: ignore
781
+ object_=_response.json(),
782
+ ),
783
+ )
784
+ return HttpResponse(response=_response, data=_data)
785
+ _response_json = _response.json()
786
+ except JSONDecodeError:
787
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
788
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
789
+
790
+ def v_1_get_cameras(
791
+ self, *, request_options: typing.Optional[RequestOptions] = None
792
+ ) -> HttpResponse[V1VisionCamerasResponse]:
793
+ """
794
+ <n class="warning">
795
+ <nh>
796
+ <i class="fa fa-exclamation-circle"></i>
797
+ This endpoint is still on our legacy API.
798
+ </nh>
799
+ </n>
800
+
801
+ Fetch all cameras.
802
+
803
+ **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.
804
+
805
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
806
+
807
+ Parameters
808
+ ----------
809
+ request_options : typing.Optional[RequestOptions]
810
+ Request-specific configuration.
811
+
812
+ Returns
813
+ -------
814
+ HttpResponse[V1VisionCamerasResponse]
815
+ Returns details about a camera.
816
+ """
817
+ _response = self._client_wrapper.httpx_client.request(
818
+ "v1/industrial/vision/cameras",
819
+ method="GET",
820
+ request_options=request_options,
821
+ )
822
+ try:
823
+ if 200 <= _response.status_code < 300:
824
+ _data = typing.cast(
825
+ V1VisionCamerasResponse,
826
+ parse_obj_as(
827
+ type_=V1VisionCamerasResponse, # type: ignore
828
+ object_=_response.json(),
829
+ ),
830
+ )
831
+ return HttpResponse(response=_response, data=_data)
832
+ _response_json = _response.json()
833
+ except JSONDecodeError:
834
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
835
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
836
+
837
+ def v_1_get_vision_programs_by_camera(
838
+ self, camera_id: int, *, request_options: typing.Optional[RequestOptions] = None
839
+ ) -> HttpResponse[V1ProgramsForTheCameraResponse]:
840
+ """
841
+ <n class="warning">
842
+ <nh>
843
+ <i class="fa fa-exclamation-circle"></i>
844
+ This endpoint is still on our legacy API.
845
+ </nh>
846
+ </n>
847
+
848
+ Fetch configured programs on the camera.
849
+
850
+ **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.
851
+
852
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
853
+
854
+ Parameters
855
+ ----------
856
+ camera_id : int
857
+ The camera_id should be valid for the given accessToken.
858
+
859
+ request_options : typing.Optional[RequestOptions]
860
+ Request-specific configuration.
861
+
862
+ Returns
863
+ -------
864
+ HttpResponse[V1ProgramsForTheCameraResponse]
865
+ Returns programs configured on the camera.
866
+ """
867
+ _response = self._client_wrapper.httpx_client.request(
868
+ f"v1/industrial/vision/cameras/{jsonable_encoder(camera_id)}/programs",
869
+ method="GET",
870
+ request_options=request_options,
871
+ )
872
+ try:
873
+ if 200 <= _response.status_code < 300:
874
+ _data = typing.cast(
875
+ V1ProgramsForTheCameraResponse,
876
+ parse_obj_as(
877
+ type_=V1ProgramsForTheCameraResponse, # type: ignore
878
+ object_=_response.json(),
879
+ ),
880
+ )
881
+ return HttpResponse(response=_response, data=_data)
882
+ _response_json = _response.json()
883
+ except JSONDecodeError:
884
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
885
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
886
+
887
+ def v_1_get_vision_latest_run_camera(
888
+ self,
889
+ camera_id: int,
890
+ *,
891
+ program_id: typing.Optional[int] = None,
892
+ started_at_ms: typing.Optional[int] = None,
893
+ include: typing.Optional[str] = None,
894
+ limit: typing.Optional[int] = None,
895
+ request_options: typing.Optional[RequestOptions] = None,
896
+ ) -> HttpResponse[V1VisionRunByCameraResponse]:
897
+ """
898
+ Fetch the latest run for a camera or program by default. If startedAtMs is supplied, fetch the specific run that corresponds to that start time.
899
+
900
+ **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.
901
+
902
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
903
+
904
+ Parameters
905
+ ----------
906
+ camera_id : int
907
+ The camera_id should be valid for the given accessToken.
908
+
909
+ program_id : typing.Optional[int]
910
+ The configured program's ID on the camera.
911
+
912
+ started_at_ms : typing.Optional[int]
913
+ EndMs is an optional param. It will default to the current time.
914
+
915
+ include : typing.Optional[str]
916
+ Include is a filter parameter. Accepts 'pass', 'reject' or 'no_read'.
917
+
918
+ limit : typing.Optional[int]
919
+ Limit is an integer value from 1 to 1,000.
920
+
921
+ request_options : typing.Optional[RequestOptions]
922
+ Request-specific configuration.
923
+
924
+ Returns
925
+ -------
926
+ HttpResponse[V1VisionRunByCameraResponse]
927
+ Returns the details for this run.
928
+ """
929
+ _response = self._client_wrapper.httpx_client.request(
930
+ f"v1/industrial/vision/run/camera/{jsonable_encoder(camera_id)}",
931
+ method="GET",
932
+ params={
933
+ "program_id": program_id,
934
+ "startedAtMs": started_at_ms,
935
+ "include": include,
936
+ "limit": limit,
937
+ },
938
+ request_options=request_options,
939
+ )
940
+ try:
941
+ if 200 <= _response.status_code < 300:
942
+ _data = typing.cast(
943
+ V1VisionRunByCameraResponse,
944
+ parse_obj_as(
945
+ type_=V1VisionRunByCameraResponse, # type: ignore
946
+ object_=_response.json(),
947
+ ),
948
+ )
949
+ return HttpResponse(response=_response, data=_data)
950
+ _response_json = _response.json()
951
+ except JSONDecodeError:
952
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
953
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
954
+
955
+ def v_1_get_vision_runs(
956
+ self,
957
+ *,
958
+ duration_ms: int,
959
+ end_ms: typing.Optional[int] = None,
960
+ request_options: typing.Optional[RequestOptions] = None,
961
+ ) -> HttpResponse[V1VisionRunsResponse]:
962
+ """
963
+ <n class="warning">
964
+ <nh>
965
+ <i class="fa fa-exclamation-circle"></i>
966
+ This endpoint is still on our legacy API.
967
+ </nh>
968
+ </n>
969
+
970
+ Fetch runs.
971
+
972
+ **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.
973
+
974
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
975
+
976
+ Parameters
977
+ ----------
978
+ duration_ms : int
979
+ DurationMs is a required param. This works with the EndMs parameter. Indicates the duration in which the visionRuns will be fetched
980
+
981
+ end_ms : typing.Optional[int]
982
+ EndMs is an optional param. It will default to the current time.
983
+
984
+ request_options : typing.Optional[RequestOptions]
985
+ Request-specific configuration.
986
+
987
+ Returns
988
+ -------
989
+ HttpResponse[V1VisionRunsResponse]
990
+ Return runs.
991
+ """
992
+ _response = self._client_wrapper.httpx_client.request(
993
+ "v1/industrial/vision/runs",
994
+ method="GET",
995
+ params={
996
+ "durationMs": duration_ms,
997
+ "endMs": end_ms,
998
+ },
999
+ request_options=request_options,
1000
+ )
1001
+ try:
1002
+ if 200 <= _response.status_code < 300:
1003
+ _data = typing.cast(
1004
+ V1VisionRunsResponse,
1005
+ parse_obj_as(
1006
+ type_=V1VisionRunsResponse, # type: ignore
1007
+ object_=_response.json(),
1008
+ ),
1009
+ )
1010
+ return HttpResponse(response=_response, data=_data)
1011
+ _response_json = _response.json()
1012
+ except JSONDecodeError:
1013
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1014
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1015
+
1016
+ def get_vision_runs_by_camera(
1017
+ self,
1018
+ camera_id: int,
1019
+ *,
1020
+ duration_ms: int,
1021
+ end_ms: typing.Optional[int] = None,
1022
+ request_options: typing.Optional[RequestOptions] = None,
1023
+ ) -> HttpResponse[V1VisionRunsByCameraResponse]:
1024
+ """
1025
+ <n class="warning">
1026
+ <nh>
1027
+ <i class="fa fa-exclamation-circle"></i>
1028
+ This endpoint is still on our legacy API.
1029
+ </nh>
1030
+ </n>
1031
+
1032
+ Fetch runs by camera.
1033
+
1034
+ **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.
1035
+
1036
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
1037
+
1038
+ Parameters
1039
+ ----------
1040
+ camera_id : int
1041
+ The camera_id should be valid for the given accessToken.
1042
+
1043
+ duration_ms : int
1044
+ DurationMs is a required param. This works with the EndMs parameter. Indicates the duration in which the visionRuns will be fetched
1045
+
1046
+ end_ms : typing.Optional[int]
1047
+ EndMs is an optional param. It will default to the current time.
1048
+
1049
+ request_options : typing.Optional[RequestOptions]
1050
+ Request-specific configuration.
1051
+
1052
+ Returns
1053
+ -------
1054
+ HttpResponse[V1VisionRunsByCameraResponse]
1055
+ Return runs by cameraId.
1056
+ """
1057
+ _response = self._client_wrapper.httpx_client.request(
1058
+ f"v1/industrial/vision/runs/{jsonable_encoder(camera_id)}",
1059
+ method="GET",
1060
+ params={
1061
+ "durationMs": duration_ms,
1062
+ "endMs": end_ms,
1063
+ },
1064
+ request_options=request_options,
1065
+ )
1066
+ try:
1067
+ if 200 <= _response.status_code < 300:
1068
+ _data = typing.cast(
1069
+ V1VisionRunsByCameraResponse,
1070
+ parse_obj_as(
1071
+ type_=V1VisionRunsByCameraResponse, # type: ignore
1072
+ object_=_response.json(),
1073
+ ),
1074
+ )
1075
+ return HttpResponse(response=_response, data=_data)
1076
+ _response_json = _response.json()
1077
+ except JSONDecodeError:
1078
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1079
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1080
+
1081
+ def v_1_get_vision_runs_by_camera_and_program(
1082
+ self,
1083
+ camera_id: int,
1084
+ program_id: int,
1085
+ started_at_ms: int,
1086
+ *,
1087
+ include: typing.Optional[str] = None,
1088
+ request_options: typing.Optional[RequestOptions] = None,
1089
+ ) -> HttpResponse[V1VisionRunsByCameraAndProgramResponse]:
1090
+ """
1091
+ <n class="warning">
1092
+ <nh>
1093
+ <i class="fa fa-exclamation-circle"></i>
1094
+ This endpoint is still on our legacy API.
1095
+ </nh>
1096
+ </n>
1097
+
1098
+ Fetch runs by camera and program.
1099
+
1100
+ **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.
1101
+
1102
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
1103
+
1104
+ Parameters
1105
+ ----------
1106
+ camera_id : int
1107
+ The camera_id should be valid for the given accessToken.
1108
+
1109
+ program_id : int
1110
+ The configured program's ID on the camera.
1111
+
1112
+ started_at_ms : int
1113
+ Started_at_ms is a required param. Indicates the start time of the run to be fetched.
1114
+
1115
+ include : typing.Optional[str]
1116
+ Include is a filter parameter. Accepts 'pass', 'reject' or 'no_read'.
1117
+
1118
+ request_options : typing.Optional[RequestOptions]
1119
+ Request-specific configuration.
1120
+
1121
+ Returns
1122
+ -------
1123
+ HttpResponse[V1VisionRunsByCameraAndProgramResponse]
1124
+ Return runs by camera ID and program ID.
1125
+ """
1126
+ _response = self._client_wrapper.httpx_client.request(
1127
+ f"v1/industrial/vision/runs/{jsonable_encoder(camera_id)}/{jsonable_encoder(program_id)}/{jsonable_encoder(started_at_ms)}",
1128
+ method="GET",
1129
+ params={
1130
+ "include": include,
1131
+ },
1132
+ request_options=request_options,
1133
+ )
1134
+ try:
1135
+ if 200 <= _response.status_code < 300:
1136
+ _data = typing.cast(
1137
+ V1VisionRunsByCameraAndProgramResponse,
1138
+ parse_obj_as(
1139
+ type_=V1VisionRunsByCameraAndProgramResponse, # type: ignore
1140
+ object_=_response.json(),
1141
+ ),
1142
+ )
1143
+ return HttpResponse(response=_response, data=_data)
1144
+ _response_json = _response.json()
1145
+ except JSONDecodeError:
1146
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1147
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1148
+
1149
+ def v_1_get_machines_history(
1150
+ self, *, end_ms: int, start_ms: int, request_options: typing.Optional[RequestOptions] = None
1151
+ ) -> HttpResponse[V1MachineHistoryResponse]:
1152
+ """
1153
+ <n class="warning">
1154
+ <nh>
1155
+ <i class="fa fa-exclamation-circle"></i>
1156
+ This endpoint is still on our legacy API.
1157
+ </nh>
1158
+ </n>
1159
+
1160
+ Get historical data for machine objects. This method returns a set of historical data for all machines.
1161
+
1162
+ **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.
1163
+
1164
+ To use this endpoint, select **Write Industrial** under the Industrial 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>
1165
+
1166
+ Parameters
1167
+ ----------
1168
+ end_ms : int
1169
+ End of the time range, specified in milliseconds UNIX time.
1170
+
1171
+ start_ms : int
1172
+ Beginning of the time range, specified in milliseconds UNIX time.
1173
+
1174
+ request_options : typing.Optional[RequestOptions]
1175
+ Request-specific configuration.
1176
+
1177
+ Returns
1178
+ -------
1179
+ HttpResponse[V1MachineHistoryResponse]
1180
+ List of machine results objects, each containing a time and a datapoint.
1181
+ """
1182
+ _response = self._client_wrapper.httpx_client.request(
1183
+ "v1/machines/history",
1184
+ method="POST",
1185
+ json={
1186
+ "endMs": end_ms,
1187
+ "startMs": start_ms,
1188
+ },
1189
+ headers={
1190
+ "content-type": "application/json",
1191
+ },
1192
+ request_options=request_options,
1193
+ omit=OMIT,
1194
+ )
1195
+ try:
1196
+ if 200 <= _response.status_code < 300:
1197
+ _data = typing.cast(
1198
+ V1MachineHistoryResponse,
1199
+ parse_obj_as(
1200
+ type_=V1MachineHistoryResponse, # type: ignore
1201
+ object_=_response.json(),
1202
+ ),
1203
+ )
1204
+ return HttpResponse(response=_response, data=_data)
1205
+ _response_json = _response.json()
1206
+ except JSONDecodeError:
1207
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1208
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1209
+
1210
+ def v_1_get_machines(
1211
+ self, *, request_options: typing.Optional[RequestOptions] = None
1212
+ ) -> HttpResponse[InlineResponse2008]:
1213
+ """
1214
+ <n class="warning">
1215
+ <nh>
1216
+ <i class="fa fa-exclamation-circle"></i>
1217
+ This endpoint is still on our legacy API.
1218
+ </nh>
1219
+ </n>
1220
+
1221
+ Get machine objects. This method returns a list of the machine objects in the Samsara Cloud and information about them.
1222
+
1223
+ **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.
1224
+
1225
+ To use this endpoint, select **Write Industrial** under the Industrial 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>
1226
+
1227
+ Parameters
1228
+ ----------
1229
+ request_options : typing.Optional[RequestOptions]
1230
+ Request-specific configuration.
1231
+
1232
+ Returns
1233
+ -------
1234
+ HttpResponse[InlineResponse2008]
1235
+ List of machine objects.
1236
+ """
1237
+ _response = self._client_wrapper.httpx_client.request(
1238
+ "v1/machines/list",
1239
+ method="POST",
1240
+ request_options=request_options,
1241
+ )
1242
+ try:
1243
+ if 200 <= _response.status_code < 300:
1244
+ _data = typing.cast(
1245
+ InlineResponse2008,
1246
+ parse_obj_as(
1247
+ type_=InlineResponse2008, # type: ignore
1248
+ object_=_response.json(),
1249
+ ),
1250
+ )
1251
+ return HttpResponse(response=_response, data=_data)
1252
+ _response_json = _response.json()
1253
+ except JSONDecodeError:
1254
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1255
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1256
+
1257
+
1258
+ class AsyncRawIndustrialClient:
1259
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
1260
+ self._client_wrapper = client_wrapper
1261
+
1262
+ async def get_industrial_assets(
1263
+ self,
1264
+ *,
1265
+ limit: typing.Optional[int] = None,
1266
+ after: typing.Optional[str] = None,
1267
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1268
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1269
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1270
+ request_options: typing.Optional[RequestOptions] = None,
1271
+ ) -> AsyncHttpResponse[ListIndustrialAssetsResponse]:
1272
+ """
1273
+ List all assets in the organization.
1274
+
1275
+ **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.
1276
+
1277
+ To use this endpoint, select **Read Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1278
+
1279
+ Parameters
1280
+ ----------
1281
+ limit : typing.Optional[int]
1282
+ The limit for how many objects will be in the response. Default and max for this value is 512 objects.
1283
+
1284
+ after : typing.Optional[str]
1285
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
1286
+
1287
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1288
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
1289
+
1290
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1291
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
1292
+
1293
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1294
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
1295
+
1296
+ request_options : typing.Optional[RequestOptions]
1297
+ Request-specific configuration.
1298
+
1299
+ Returns
1300
+ -------
1301
+ AsyncHttpResponse[ListIndustrialAssetsResponse]
1302
+ Assets in the organization.
1303
+ """
1304
+ _response = await self._client_wrapper.httpx_client.request(
1305
+ "industrial/assets",
1306
+ method="GET",
1307
+ params={
1308
+ "limit": limit,
1309
+ "after": after,
1310
+ "parentTagIds": parent_tag_ids,
1311
+ "tagIds": tag_ids,
1312
+ "assetIds": asset_ids,
1313
+ },
1314
+ request_options=request_options,
1315
+ )
1316
+ try:
1317
+ if 200 <= _response.status_code < 300:
1318
+ _data = typing.cast(
1319
+ ListIndustrialAssetsResponse,
1320
+ parse_obj_as(
1321
+ type_=ListIndustrialAssetsResponse, # type: ignore
1322
+ object_=_response.json(),
1323
+ ),
1324
+ )
1325
+ return AsyncHttpResponse(response=_response, data=_data)
1326
+ _response_json = _response.json()
1327
+ except JSONDecodeError:
1328
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1329
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1330
+
1331
+ async def create_industrial_asset(
1332
+ self,
1333
+ *,
1334
+ name: AssetName,
1335
+ custom_metadata: typing.Optional[CustomMetadata] = OMIT,
1336
+ location: typing.Optional[AssetLocation] = OMIT,
1337
+ location_data_input_id: typing.Optional[str] = OMIT,
1338
+ location_type: typing.Optional[LocationType] = OMIT,
1339
+ parent_id: typing.Optional[ParentId] = OMIT,
1340
+ running_status_data_input_id: typing.Optional[str] = OMIT,
1341
+ tag_ids: typing.Optional[TagIds] = OMIT,
1342
+ request_options: typing.Optional[RequestOptions] = None,
1343
+ ) -> AsyncHttpResponse[InlineResponse200]:
1344
+ """
1345
+ Create an asset with optional configuration parameters.
1346
+
1347
+ **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.
1348
+
1349
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1350
+
1351
+ Parameters
1352
+ ----------
1353
+ name : AssetName
1354
+
1355
+ custom_metadata : typing.Optional[CustomMetadata]
1356
+
1357
+ location : typing.Optional[AssetLocation]
1358
+
1359
+ location_data_input_id : typing.Optional[str]
1360
+ Required if locationType is "dataInput". Specifies the id of a location data input which will determine the asset's location. **The data input will be moved to the new asset.**
1361
+
1362
+ location_type : typing.Optional[LocationType]
1363
+
1364
+ parent_id : typing.Optional[ParentId]
1365
+
1366
+ running_status_data_input_id : typing.Optional[str]
1367
+ The asset's isRunning status will be true when the associated data input's value is 1. Data input cannot be of location format. **The data input will be moved to the new asset.**
1368
+
1369
+ tag_ids : typing.Optional[TagIds]
1370
+
1371
+ request_options : typing.Optional[RequestOptions]
1372
+ Request-specific configuration.
1373
+
1374
+ Returns
1375
+ -------
1376
+ AsyncHttpResponse[InlineResponse200]
1377
+ Newly created asset object
1378
+ """
1379
+ _response = await self._client_wrapper.httpx_client.request(
1380
+ "industrial/assets",
1381
+ method="POST",
1382
+ json={
1383
+ "customMetadata": custom_metadata,
1384
+ "location": convert_and_respect_annotation_metadata(
1385
+ object_=location, annotation=AssetLocation, direction="write"
1386
+ ),
1387
+ "locationDataInputId": location_data_input_id,
1388
+ "locationType": location_type,
1389
+ "name": name,
1390
+ "parentId": parent_id,
1391
+ "runningStatusDataInputId": running_status_data_input_id,
1392
+ "tagIds": tag_ids,
1393
+ },
1394
+ headers={
1395
+ "content-type": "application/json",
1396
+ },
1397
+ request_options=request_options,
1398
+ omit=OMIT,
1399
+ )
1400
+ try:
1401
+ if 200 <= _response.status_code < 300:
1402
+ _data = typing.cast(
1403
+ InlineResponse200,
1404
+ parse_obj_as(
1405
+ type_=InlineResponse200, # type: ignore
1406
+ object_=_response.json(),
1407
+ ),
1408
+ )
1409
+ return AsyncHttpResponse(response=_response, data=_data)
1410
+ _response_json = _response.json()
1411
+ except JSONDecodeError:
1412
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1413
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1414
+
1415
+ async def delete_industrial_asset(
1416
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
1417
+ ) -> AsyncHttpResponse[StandardDeleteResponse]:
1418
+ """
1419
+ Delete asset.
1420
+
1421
+ **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.
1422
+
1423
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1424
+
1425
+ Parameters
1426
+ ----------
1427
+ id : str
1428
+ Id of the asset to be deleted.
1429
+
1430
+ request_options : typing.Optional[RequestOptions]
1431
+ Request-specific configuration.
1432
+
1433
+ Returns
1434
+ -------
1435
+ AsyncHttpResponse[StandardDeleteResponse]
1436
+ A successful DELETE response is a 204 with no content.
1437
+ """
1438
+ _response = await self._client_wrapper.httpx_client.request(
1439
+ f"industrial/assets/{jsonable_encoder(id)}",
1440
+ method="DELETE",
1441
+ request_options=request_options,
1442
+ )
1443
+ try:
1444
+ if 200 <= _response.status_code < 300:
1445
+ _data = typing.cast(
1446
+ StandardDeleteResponse,
1447
+ parse_obj_as(
1448
+ type_=StandardDeleteResponse, # type: ignore
1449
+ object_=_response.json(),
1450
+ ),
1451
+ )
1452
+ return AsyncHttpResponse(response=_response, data=_data)
1453
+ _response_json = _response.json()
1454
+ except JSONDecodeError:
1455
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1456
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1457
+
1458
+ async def patch_industrial_asset(
1459
+ self,
1460
+ id: str,
1461
+ *,
1462
+ custom_metadata: typing.Optional[CustomMetadata] = OMIT,
1463
+ location: typing.Optional[AssetLocation] = OMIT,
1464
+ location_data_input_id: typing.Optional[str] = OMIT,
1465
+ location_type: typing.Optional[LocationType] = OMIT,
1466
+ name: typing.Optional[AssetName] = OMIT,
1467
+ parent_id: typing.Optional[str] = OMIT,
1468
+ running_status_data_input_id: typing.Optional[str] = OMIT,
1469
+ tag_ids: typing.Optional[TagIds] = OMIT,
1470
+ request_options: typing.Optional[RequestOptions] = None,
1471
+ ) -> AsyncHttpResponse[InlineResponse200]:
1472
+ """
1473
+ Update an existing asset. Only the provided fields will be updated.
1474
+
1475
+ **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.
1476
+
1477
+ To use this endpoint, select **Write Equipment** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1478
+
1479
+ Parameters
1480
+ ----------
1481
+ id : str
1482
+ Id of the asset to be updated
1483
+
1484
+ custom_metadata : typing.Optional[CustomMetadata]
1485
+
1486
+ location : typing.Optional[AssetLocation]
1487
+
1488
+ location_data_input_id : typing.Optional[str]
1489
+ Required if locationType is "dataInput". Specifies the id of a location data input which will determine the asset's location. The data input must be in the asset.
1490
+
1491
+ location_type : typing.Optional[LocationType]
1492
+
1493
+ name : typing.Optional[AssetName]
1494
+
1495
+ parent_id : typing.Optional[str]
1496
+ The id of the parent asset that the asset belongs to. Pass in an empty string to remove the child from the parent.
1497
+
1498
+ running_status_data_input_id : typing.Optional[str]
1499
+ The asset's isRunning status will be true when the associated data input's value is 1. Data input cannot be of location format. The data input must be in the asset.
1500
+
1501
+ tag_ids : typing.Optional[TagIds]
1502
+
1503
+ request_options : typing.Optional[RequestOptions]
1504
+ Request-specific configuration.
1505
+
1506
+ Returns
1507
+ -------
1508
+ AsyncHttpResponse[InlineResponse200]
1509
+ The updated asset
1510
+ """
1511
+ _response = await self._client_wrapper.httpx_client.request(
1512
+ f"industrial/assets/{jsonable_encoder(id)}",
1513
+ method="PATCH",
1514
+ json={
1515
+ "customMetadata": custom_metadata,
1516
+ "location": convert_and_respect_annotation_metadata(
1517
+ object_=location, annotation=AssetLocation, direction="write"
1518
+ ),
1519
+ "locationDataInputId": location_data_input_id,
1520
+ "locationType": location_type,
1521
+ "name": name,
1522
+ "parentId": parent_id,
1523
+ "runningStatusDataInputId": running_status_data_input_id,
1524
+ "tagIds": tag_ids,
1525
+ },
1526
+ headers={
1527
+ "content-type": "application/json",
1528
+ },
1529
+ request_options=request_options,
1530
+ omit=OMIT,
1531
+ )
1532
+ try:
1533
+ if 200 <= _response.status_code < 300:
1534
+ _data = typing.cast(
1535
+ InlineResponse200,
1536
+ parse_obj_as(
1537
+ type_=InlineResponse200, # type: ignore
1538
+ object_=_response.json(),
1539
+ ),
1540
+ )
1541
+ return AsyncHttpResponse(response=_response, data=_data)
1542
+ _response_json = _response.json()
1543
+ except JSONDecodeError:
1544
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1545
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1546
+
1547
+ async def patch_asset_data_outputs(
1548
+ self,
1549
+ id: str,
1550
+ *,
1551
+ values: typing.Dict[str, typing.Optional[typing.Any]],
1552
+ request_options: typing.Optional[RequestOptions] = None,
1553
+ ) -> AsyncHttpResponse[AssetDataOutputsPatchAssetDataOutputsResponseBody]:
1554
+ """
1555
+ Writes values to multiple data outputs on an asset simultaneously. Only the provided data outputs will be updated.
1556
+
1557
+ <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>).
1558
+
1559
+ To use this endpoint, select **Write Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1560
+
1561
+
1562
+ **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.
1563
+
1564
+ Parameters
1565
+ ----------
1566
+ id : str
1567
+ Asset ID
1568
+
1569
+ values : typing.Dict[str, typing.Optional[typing.Any]]
1570
+ A map of data output IDs to values. All data outputs must belong to the same asset. Only the specified IDs will be written to.
1571
+
1572
+ request_options : typing.Optional[RequestOptions]
1573
+ Request-specific configuration.
1574
+
1575
+ Returns
1576
+ -------
1577
+ AsyncHttpResponse[AssetDataOutputsPatchAssetDataOutputsResponseBody]
1578
+ OK response.
1579
+ """
1580
+ _response = await self._client_wrapper.httpx_client.request(
1581
+ f"industrial/assets/{jsonable_encoder(id)}/data-outputs",
1582
+ method="PATCH",
1583
+ json={
1584
+ "values": values,
1585
+ },
1586
+ headers={
1587
+ "content-type": "application/json",
1588
+ },
1589
+ request_options=request_options,
1590
+ omit=OMIT,
1591
+ )
1592
+ try:
1593
+ if 200 <= _response.status_code < 300:
1594
+ _data = typing.cast(
1595
+ AssetDataOutputsPatchAssetDataOutputsResponseBody,
1596
+ parse_obj_as(
1597
+ type_=AssetDataOutputsPatchAssetDataOutputsResponseBody, # type: ignore
1598
+ object_=_response.json(),
1599
+ ),
1600
+ )
1601
+ return AsyncHttpResponse(response=_response, data=_data)
1602
+ if _response.status_code == 401:
1603
+ raise UnauthorizedError(
1604
+ headers=dict(_response.headers),
1605
+ body=typing.cast(
1606
+ typing.Optional[typing.Any],
1607
+ parse_obj_as(
1608
+ type_=typing.Optional[typing.Any], # type: ignore
1609
+ object_=_response.json(),
1610
+ ),
1611
+ ),
1612
+ )
1613
+ if _response.status_code == 404:
1614
+ raise NotFoundError(
1615
+ headers=dict(_response.headers),
1616
+ body=typing.cast(
1617
+ typing.Optional[typing.Any],
1618
+ parse_obj_as(
1619
+ type_=typing.Optional[typing.Any], # type: ignore
1620
+ object_=_response.json(),
1621
+ ),
1622
+ ),
1623
+ )
1624
+ if _response.status_code == 405:
1625
+ raise MethodNotAllowedError(
1626
+ headers=dict(_response.headers),
1627
+ body=typing.cast(
1628
+ typing.Optional[typing.Any],
1629
+ parse_obj_as(
1630
+ type_=typing.Optional[typing.Any], # type: ignore
1631
+ object_=_response.json(),
1632
+ ),
1633
+ ),
1634
+ )
1635
+ if _response.status_code == 429:
1636
+ raise TooManyRequestsError(
1637
+ headers=dict(_response.headers),
1638
+ body=typing.cast(
1639
+ typing.Optional[typing.Any],
1640
+ parse_obj_as(
1641
+ type_=typing.Optional[typing.Any], # type: ignore
1642
+ object_=_response.json(),
1643
+ ),
1644
+ ),
1645
+ )
1646
+ if _response.status_code == 500:
1647
+ raise InternalServerError(
1648
+ headers=dict(_response.headers),
1649
+ body=typing.cast(
1650
+ typing.Optional[typing.Any],
1651
+ parse_obj_as(
1652
+ type_=typing.Optional[typing.Any], # type: ignore
1653
+ object_=_response.json(),
1654
+ ),
1655
+ ),
1656
+ )
1657
+ if _response.status_code == 501:
1658
+ raise NotImplementedError(
1659
+ headers=dict(_response.headers),
1660
+ body=typing.cast(
1661
+ typing.Optional[typing.Any],
1662
+ parse_obj_as(
1663
+ type_=typing.Optional[typing.Any], # type: ignore
1664
+ object_=_response.json(),
1665
+ ),
1666
+ ),
1667
+ )
1668
+ if _response.status_code == 502:
1669
+ raise BadGatewayError(
1670
+ headers=dict(_response.headers),
1671
+ body=typing.cast(
1672
+ typing.Optional[typing.Any],
1673
+ parse_obj_as(
1674
+ type_=typing.Optional[typing.Any], # type: ignore
1675
+ object_=_response.json(),
1676
+ ),
1677
+ ),
1678
+ )
1679
+ if _response.status_code == 503:
1680
+ raise ServiceUnavailableError(
1681
+ headers=dict(_response.headers),
1682
+ body=typing.cast(
1683
+ typing.Optional[typing.Any],
1684
+ parse_obj_as(
1685
+ type_=typing.Optional[typing.Any], # type: ignore
1686
+ object_=_response.json(),
1687
+ ),
1688
+ ),
1689
+ )
1690
+ if _response.status_code == 504:
1691
+ raise GatewayTimeoutError(
1692
+ headers=dict(_response.headers),
1693
+ body=typing.cast(
1694
+ typing.Optional[typing.Any],
1695
+ parse_obj_as(
1696
+ type_=typing.Optional[typing.Any], # type: ignore
1697
+ object_=_response.json(),
1698
+ ),
1699
+ ),
1700
+ )
1701
+ _response_json = _response.json()
1702
+ except JSONDecodeError:
1703
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1704
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1705
+
1706
+ async def get_data_inputs(
1707
+ self,
1708
+ *,
1709
+ limit: typing.Optional[int] = None,
1710
+ after: typing.Optional[str] = None,
1711
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1712
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1713
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1714
+ request_options: typing.Optional[RequestOptions] = None,
1715
+ ) -> AsyncHttpResponse[DataInputsTinyResponse]:
1716
+ """
1717
+ Returns all data inputs, optionally filtered by tags or asset ids.
1718
+
1719
+ **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.
1720
+
1721
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1722
+
1723
+ Parameters
1724
+ ----------
1725
+ limit : typing.Optional[int]
1726
+ The limit for how many objects will be in the response. Default and max for this value is 512 objects.
1727
+
1728
+ after : typing.Optional[str]
1729
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
1730
+
1731
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1732
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
1733
+
1734
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1735
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
1736
+
1737
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1738
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
1739
+
1740
+ request_options : typing.Optional[RequestOptions]
1741
+ Request-specific configuration.
1742
+
1743
+ Returns
1744
+ -------
1745
+ AsyncHttpResponse[DataInputsTinyResponse]
1746
+ List of data inputs with names, ids, and other metadata.
1747
+ """
1748
+ _response = await self._client_wrapper.httpx_client.request(
1749
+ "industrial/data-inputs",
1750
+ method="GET",
1751
+ params={
1752
+ "limit": limit,
1753
+ "after": after,
1754
+ "parentTagIds": parent_tag_ids,
1755
+ "tagIds": tag_ids,
1756
+ "assetIds": asset_ids,
1757
+ },
1758
+ request_options=request_options,
1759
+ )
1760
+ try:
1761
+ if 200 <= _response.status_code < 300:
1762
+ _data = typing.cast(
1763
+ DataInputsTinyResponse,
1764
+ parse_obj_as(
1765
+ type_=DataInputsTinyResponse, # type: ignore
1766
+ object_=_response.json(),
1767
+ ),
1768
+ )
1769
+ return AsyncHttpResponse(response=_response, data=_data)
1770
+ _response_json = _response.json()
1771
+ except JSONDecodeError:
1772
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1773
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1774
+
1775
+ async def get_data_input_data_snapshot(
1776
+ self,
1777
+ *,
1778
+ after: typing.Optional[str] = None,
1779
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1780
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1781
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1782
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1783
+ request_options: typing.Optional[RequestOptions] = None,
1784
+ ) -> AsyncHttpResponse[DataInputSnapshotResponse]:
1785
+ """
1786
+ Returns last known data points for all data inputs. This can be filtered by optional tags, specific data input IDs or asset IDs.
1787
+
1788
+ **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.
1789
+
1790
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1791
+
1792
+ Parameters
1793
+ ----------
1794
+ after : typing.Optional[str]
1795
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
1796
+
1797
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1798
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
1799
+
1800
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1801
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
1802
+
1803
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1804
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
1805
+
1806
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1807
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
1808
+
1809
+ request_options : typing.Optional[RequestOptions]
1810
+ Request-specific configuration.
1811
+
1812
+ Returns
1813
+ -------
1814
+ AsyncHttpResponse[DataInputSnapshotResponse]
1815
+ List of last known data input data points and pagination parameters
1816
+ """
1817
+ _response = await self._client_wrapper.httpx_client.request(
1818
+ "industrial/data-inputs/data-points",
1819
+ method="GET",
1820
+ params={
1821
+ "after": after,
1822
+ "parentTagIds": parent_tag_ids,
1823
+ "tagIds": tag_ids,
1824
+ "dataInputIds": data_input_ids,
1825
+ "assetIds": asset_ids,
1826
+ },
1827
+ request_options=request_options,
1828
+ )
1829
+ try:
1830
+ if 200 <= _response.status_code < 300:
1831
+ _data = typing.cast(
1832
+ DataInputSnapshotResponse,
1833
+ parse_obj_as(
1834
+ type_=DataInputSnapshotResponse, # type: ignore
1835
+ object_=_response.json(),
1836
+ ),
1837
+ )
1838
+ return AsyncHttpResponse(response=_response, data=_data)
1839
+ _response_json = _response.json()
1840
+ except JSONDecodeError:
1841
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1842
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1843
+
1844
+ async def get_data_input_data_feed(
1845
+ self,
1846
+ *,
1847
+ after: typing.Optional[str] = None,
1848
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1849
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1850
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1851
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1852
+ request_options: typing.Optional[RequestOptions] = None,
1853
+ ) -> AsyncHttpResponse[DataInputListResponse]:
1854
+ """
1855
+ Follow a continuous feed of all data input data points.
1856
+
1857
+ Your first call to this endpoint will provide you with the most recent data points for each data input and a `pagination` object that contains an `endCursor`.
1858
+
1859
+ You can provide the `endCursor` to the `after` parameter of this endpoint to get data point updates since that `endCursor`.
1860
+
1861
+ If `hasNextPage` is `false`, no updates are readily available yet. We suggest waiting a minimum of 5 seconds before requesting updates.
1862
+
1863
+ **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.
1864
+
1865
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1866
+
1867
+ Parameters
1868
+ ----------
1869
+ after : typing.Optional[str]
1870
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
1871
+
1872
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1873
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
1874
+
1875
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1876
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
1877
+
1878
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1879
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
1880
+
1881
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1882
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
1883
+
1884
+ request_options : typing.Optional[RequestOptions]
1885
+ Request-specific configuration.
1886
+
1887
+ Returns
1888
+ -------
1889
+ AsyncHttpResponse[DataInputListResponse]
1890
+ List of all data points for specified data inputs
1891
+ """
1892
+ _response = await self._client_wrapper.httpx_client.request(
1893
+ "industrial/data-inputs/data-points/feed",
1894
+ method="GET",
1895
+ params={
1896
+ "after": after,
1897
+ "parentTagIds": parent_tag_ids,
1898
+ "tagIds": tag_ids,
1899
+ "dataInputIds": data_input_ids,
1900
+ "assetIds": asset_ids,
1901
+ },
1902
+ request_options=request_options,
1903
+ )
1904
+ try:
1905
+ if 200 <= _response.status_code < 300:
1906
+ _data = typing.cast(
1907
+ DataInputListResponse,
1908
+ parse_obj_as(
1909
+ type_=DataInputListResponse, # type: ignore
1910
+ object_=_response.json(),
1911
+ ),
1912
+ )
1913
+ return AsyncHttpResponse(response=_response, data=_data)
1914
+ _response_json = _response.json()
1915
+ except JSONDecodeError:
1916
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1917
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1918
+
1919
+ async def get_data_input_data_history(
1920
+ self,
1921
+ *,
1922
+ start_time: str,
1923
+ end_time: str,
1924
+ after: typing.Optional[str] = None,
1925
+ parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1926
+ tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1927
+ data_input_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1928
+ asset_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1929
+ request_options: typing.Optional[RequestOptions] = None,
1930
+ ) -> AsyncHttpResponse[DataInputListResponse]:
1931
+ """
1932
+ Returns all known data points during the given time range for all data inputs. This can be filtered by optional tags, specific data input IDs or asset IDs.
1933
+
1934
+ **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.
1935
+
1936
+ To use this endpoint, select **Read Equipment Statistics** under the Equipment category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
1937
+
1938
+ Parameters
1939
+ ----------
1940
+ start_time : str
1941
+ A start time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
1942
+
1943
+ end_time : str
1944
+ An end time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
1945
+
1946
+ after : typing.Optional[str]
1947
+ If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
1948
+
1949
+ parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1950
+ A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
1951
+
1952
+ tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1953
+ A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
1954
+
1955
+ data_input_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1956
+ A comma-separated list of data input IDs. Example: `dataInputIds=1234,5678`
1957
+
1958
+ asset_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1959
+ A comma-separated list of industrial asset UUIDs. Example: `assetIds=076efac2-83b5-47aa-ba36-18428436dcac,6707b3f0-23b9-4fe3-b7be-11be34aea544`
1960
+
1961
+ request_options : typing.Optional[RequestOptions]
1962
+ Request-specific configuration.
1963
+
1964
+ Returns
1965
+ -------
1966
+ AsyncHttpResponse[DataInputListResponse]
1967
+ List of all data points for the specified data inputs and time range.
1968
+ """
1969
+ _response = await self._client_wrapper.httpx_client.request(
1970
+ "industrial/data-inputs/data-points/history",
1971
+ method="GET",
1972
+ params={
1973
+ "startTime": start_time,
1974
+ "endTime": end_time,
1975
+ "after": after,
1976
+ "parentTagIds": parent_tag_ids,
1977
+ "tagIds": tag_ids,
1978
+ "dataInputIds": data_input_ids,
1979
+ "assetIds": asset_ids,
1980
+ },
1981
+ request_options=request_options,
1982
+ )
1983
+ try:
1984
+ if 200 <= _response.status_code < 300:
1985
+ _data = typing.cast(
1986
+ DataInputListResponse,
1987
+ parse_obj_as(
1988
+ type_=DataInputListResponse, # type: ignore
1989
+ object_=_response.json(),
1990
+ ),
1991
+ )
1992
+ return AsyncHttpResponse(response=_response, data=_data)
1993
+ _response_json = _response.json()
1994
+ except JSONDecodeError:
1995
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1996
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1997
+
1998
+ async def v_1_get_cameras(
1999
+ self, *, request_options: typing.Optional[RequestOptions] = None
2000
+ ) -> AsyncHttpResponse[V1VisionCamerasResponse]:
2001
+ """
2002
+ <n class="warning">
2003
+ <nh>
2004
+ <i class="fa fa-exclamation-circle"></i>
2005
+ This endpoint is still on our legacy API.
2006
+ </nh>
2007
+ </n>
2008
+
2009
+ Fetch all cameras.
2010
+
2011
+ **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.
2012
+
2013
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2014
+
2015
+ Parameters
2016
+ ----------
2017
+ request_options : typing.Optional[RequestOptions]
2018
+ Request-specific configuration.
2019
+
2020
+ Returns
2021
+ -------
2022
+ AsyncHttpResponse[V1VisionCamerasResponse]
2023
+ Returns details about a camera.
2024
+ """
2025
+ _response = await self._client_wrapper.httpx_client.request(
2026
+ "v1/industrial/vision/cameras",
2027
+ method="GET",
2028
+ request_options=request_options,
2029
+ )
2030
+ try:
2031
+ if 200 <= _response.status_code < 300:
2032
+ _data = typing.cast(
2033
+ V1VisionCamerasResponse,
2034
+ parse_obj_as(
2035
+ type_=V1VisionCamerasResponse, # type: ignore
2036
+ object_=_response.json(),
2037
+ ),
2038
+ )
2039
+ return AsyncHttpResponse(response=_response, data=_data)
2040
+ _response_json = _response.json()
2041
+ except JSONDecodeError:
2042
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2043
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2044
+
2045
+ async def v_1_get_vision_programs_by_camera(
2046
+ self, camera_id: int, *, request_options: typing.Optional[RequestOptions] = None
2047
+ ) -> AsyncHttpResponse[V1ProgramsForTheCameraResponse]:
2048
+ """
2049
+ <n class="warning">
2050
+ <nh>
2051
+ <i class="fa fa-exclamation-circle"></i>
2052
+ This endpoint is still on our legacy API.
2053
+ </nh>
2054
+ </n>
2055
+
2056
+ Fetch configured programs on the camera.
2057
+
2058
+ **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.
2059
+
2060
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2061
+
2062
+ Parameters
2063
+ ----------
2064
+ camera_id : int
2065
+ The camera_id should be valid for the given accessToken.
2066
+
2067
+ request_options : typing.Optional[RequestOptions]
2068
+ Request-specific configuration.
2069
+
2070
+ Returns
2071
+ -------
2072
+ AsyncHttpResponse[V1ProgramsForTheCameraResponse]
2073
+ Returns programs configured on the camera.
2074
+ """
2075
+ _response = await self._client_wrapper.httpx_client.request(
2076
+ f"v1/industrial/vision/cameras/{jsonable_encoder(camera_id)}/programs",
2077
+ method="GET",
2078
+ request_options=request_options,
2079
+ )
2080
+ try:
2081
+ if 200 <= _response.status_code < 300:
2082
+ _data = typing.cast(
2083
+ V1ProgramsForTheCameraResponse,
2084
+ parse_obj_as(
2085
+ type_=V1ProgramsForTheCameraResponse, # type: ignore
2086
+ object_=_response.json(),
2087
+ ),
2088
+ )
2089
+ return AsyncHttpResponse(response=_response, data=_data)
2090
+ _response_json = _response.json()
2091
+ except JSONDecodeError:
2092
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2093
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2094
+
2095
+ async def v_1_get_vision_latest_run_camera(
2096
+ self,
2097
+ camera_id: int,
2098
+ *,
2099
+ program_id: typing.Optional[int] = None,
2100
+ started_at_ms: typing.Optional[int] = None,
2101
+ include: typing.Optional[str] = None,
2102
+ limit: typing.Optional[int] = None,
2103
+ request_options: typing.Optional[RequestOptions] = None,
2104
+ ) -> AsyncHttpResponse[V1VisionRunByCameraResponse]:
2105
+ """
2106
+ Fetch the latest run for a camera or program by default. If startedAtMs is supplied, fetch the specific run that corresponds to that start time.
2107
+
2108
+ **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.
2109
+
2110
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2111
+
2112
+ Parameters
2113
+ ----------
2114
+ camera_id : int
2115
+ The camera_id should be valid for the given accessToken.
2116
+
2117
+ program_id : typing.Optional[int]
2118
+ The configured program's ID on the camera.
2119
+
2120
+ started_at_ms : typing.Optional[int]
2121
+ EndMs is an optional param. It will default to the current time.
2122
+
2123
+ include : typing.Optional[str]
2124
+ Include is a filter parameter. Accepts 'pass', 'reject' or 'no_read'.
2125
+
2126
+ limit : typing.Optional[int]
2127
+ Limit is an integer value from 1 to 1,000.
2128
+
2129
+ request_options : typing.Optional[RequestOptions]
2130
+ Request-specific configuration.
2131
+
2132
+ Returns
2133
+ -------
2134
+ AsyncHttpResponse[V1VisionRunByCameraResponse]
2135
+ Returns the details for this run.
2136
+ """
2137
+ _response = await self._client_wrapper.httpx_client.request(
2138
+ f"v1/industrial/vision/run/camera/{jsonable_encoder(camera_id)}",
2139
+ method="GET",
2140
+ params={
2141
+ "program_id": program_id,
2142
+ "startedAtMs": started_at_ms,
2143
+ "include": include,
2144
+ "limit": limit,
2145
+ },
2146
+ request_options=request_options,
2147
+ )
2148
+ try:
2149
+ if 200 <= _response.status_code < 300:
2150
+ _data = typing.cast(
2151
+ V1VisionRunByCameraResponse,
2152
+ parse_obj_as(
2153
+ type_=V1VisionRunByCameraResponse, # type: ignore
2154
+ object_=_response.json(),
2155
+ ),
2156
+ )
2157
+ return AsyncHttpResponse(response=_response, data=_data)
2158
+ _response_json = _response.json()
2159
+ except JSONDecodeError:
2160
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2161
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2162
+
2163
+ async def v_1_get_vision_runs(
2164
+ self,
2165
+ *,
2166
+ duration_ms: int,
2167
+ end_ms: typing.Optional[int] = None,
2168
+ request_options: typing.Optional[RequestOptions] = None,
2169
+ ) -> AsyncHttpResponse[V1VisionRunsResponse]:
2170
+ """
2171
+ <n class="warning">
2172
+ <nh>
2173
+ <i class="fa fa-exclamation-circle"></i>
2174
+ This endpoint is still on our legacy API.
2175
+ </nh>
2176
+ </n>
2177
+
2178
+ Fetch runs.
2179
+
2180
+ **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.
2181
+
2182
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2183
+
2184
+ Parameters
2185
+ ----------
2186
+ duration_ms : int
2187
+ DurationMs is a required param. This works with the EndMs parameter. Indicates the duration in which the visionRuns will be fetched
2188
+
2189
+ end_ms : typing.Optional[int]
2190
+ EndMs is an optional param. It will default to the current time.
2191
+
2192
+ request_options : typing.Optional[RequestOptions]
2193
+ Request-specific configuration.
2194
+
2195
+ Returns
2196
+ -------
2197
+ AsyncHttpResponse[V1VisionRunsResponse]
2198
+ Return runs.
2199
+ """
2200
+ _response = await self._client_wrapper.httpx_client.request(
2201
+ "v1/industrial/vision/runs",
2202
+ method="GET",
2203
+ params={
2204
+ "durationMs": duration_ms,
2205
+ "endMs": end_ms,
2206
+ },
2207
+ request_options=request_options,
2208
+ )
2209
+ try:
2210
+ if 200 <= _response.status_code < 300:
2211
+ _data = typing.cast(
2212
+ V1VisionRunsResponse,
2213
+ parse_obj_as(
2214
+ type_=V1VisionRunsResponse, # type: ignore
2215
+ object_=_response.json(),
2216
+ ),
2217
+ )
2218
+ return AsyncHttpResponse(response=_response, data=_data)
2219
+ _response_json = _response.json()
2220
+ except JSONDecodeError:
2221
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2222
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2223
+
2224
+ async def get_vision_runs_by_camera(
2225
+ self,
2226
+ camera_id: int,
2227
+ *,
2228
+ duration_ms: int,
2229
+ end_ms: typing.Optional[int] = None,
2230
+ request_options: typing.Optional[RequestOptions] = None,
2231
+ ) -> AsyncHttpResponse[V1VisionRunsByCameraResponse]:
2232
+ """
2233
+ <n class="warning">
2234
+ <nh>
2235
+ <i class="fa fa-exclamation-circle"></i>
2236
+ This endpoint is still on our legacy API.
2237
+ </nh>
2238
+ </n>
2239
+
2240
+ Fetch runs by camera.
2241
+
2242
+ **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.
2243
+
2244
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2245
+
2246
+ Parameters
2247
+ ----------
2248
+ camera_id : int
2249
+ The camera_id should be valid for the given accessToken.
2250
+
2251
+ duration_ms : int
2252
+ DurationMs is a required param. This works with the EndMs parameter. Indicates the duration in which the visionRuns will be fetched
2253
+
2254
+ end_ms : typing.Optional[int]
2255
+ EndMs is an optional param. It will default to the current time.
2256
+
2257
+ request_options : typing.Optional[RequestOptions]
2258
+ Request-specific configuration.
2259
+
2260
+ Returns
2261
+ -------
2262
+ AsyncHttpResponse[V1VisionRunsByCameraResponse]
2263
+ Return runs by cameraId.
2264
+ """
2265
+ _response = await self._client_wrapper.httpx_client.request(
2266
+ f"v1/industrial/vision/runs/{jsonable_encoder(camera_id)}",
2267
+ method="GET",
2268
+ params={
2269
+ "durationMs": duration_ms,
2270
+ "endMs": end_ms,
2271
+ },
2272
+ request_options=request_options,
2273
+ )
2274
+ try:
2275
+ if 200 <= _response.status_code < 300:
2276
+ _data = typing.cast(
2277
+ V1VisionRunsByCameraResponse,
2278
+ parse_obj_as(
2279
+ type_=V1VisionRunsByCameraResponse, # type: ignore
2280
+ object_=_response.json(),
2281
+ ),
2282
+ )
2283
+ return AsyncHttpResponse(response=_response, data=_data)
2284
+ _response_json = _response.json()
2285
+ except JSONDecodeError:
2286
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2287
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2288
+
2289
+ async def v_1_get_vision_runs_by_camera_and_program(
2290
+ self,
2291
+ camera_id: int,
2292
+ program_id: int,
2293
+ started_at_ms: int,
2294
+ *,
2295
+ include: typing.Optional[str] = None,
2296
+ request_options: typing.Optional[RequestOptions] = None,
2297
+ ) -> AsyncHttpResponse[V1VisionRunsByCameraAndProgramResponse]:
2298
+ """
2299
+ <n class="warning">
2300
+ <nh>
2301
+ <i class="fa fa-exclamation-circle"></i>
2302
+ This endpoint is still on our legacy API.
2303
+ </nh>
2304
+ </n>
2305
+
2306
+ Fetch runs by camera and program.
2307
+
2308
+ **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.
2309
+
2310
+ To use this endpoint, select **Read Industrial** under the Industrial 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>
2311
+
2312
+ Parameters
2313
+ ----------
2314
+ camera_id : int
2315
+ The camera_id should be valid for the given accessToken.
2316
+
2317
+ program_id : int
2318
+ The configured program's ID on the camera.
2319
+
2320
+ started_at_ms : int
2321
+ Started_at_ms is a required param. Indicates the start time of the run to be fetched.
2322
+
2323
+ include : typing.Optional[str]
2324
+ Include is a filter parameter. Accepts 'pass', 'reject' or 'no_read'.
2325
+
2326
+ request_options : typing.Optional[RequestOptions]
2327
+ Request-specific configuration.
2328
+
2329
+ Returns
2330
+ -------
2331
+ AsyncHttpResponse[V1VisionRunsByCameraAndProgramResponse]
2332
+ Return runs by camera ID and program ID.
2333
+ """
2334
+ _response = await self._client_wrapper.httpx_client.request(
2335
+ f"v1/industrial/vision/runs/{jsonable_encoder(camera_id)}/{jsonable_encoder(program_id)}/{jsonable_encoder(started_at_ms)}",
2336
+ method="GET",
2337
+ params={
2338
+ "include": include,
2339
+ },
2340
+ request_options=request_options,
2341
+ )
2342
+ try:
2343
+ if 200 <= _response.status_code < 300:
2344
+ _data = typing.cast(
2345
+ V1VisionRunsByCameraAndProgramResponse,
2346
+ parse_obj_as(
2347
+ type_=V1VisionRunsByCameraAndProgramResponse, # type: ignore
2348
+ object_=_response.json(),
2349
+ ),
2350
+ )
2351
+ return AsyncHttpResponse(response=_response, data=_data)
2352
+ _response_json = _response.json()
2353
+ except JSONDecodeError:
2354
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2355
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2356
+
2357
+ async def v_1_get_machines_history(
2358
+ self, *, end_ms: int, start_ms: int, request_options: typing.Optional[RequestOptions] = None
2359
+ ) -> AsyncHttpResponse[V1MachineHistoryResponse]:
2360
+ """
2361
+ <n class="warning">
2362
+ <nh>
2363
+ <i class="fa fa-exclamation-circle"></i>
2364
+ This endpoint is still on our legacy API.
2365
+ </nh>
2366
+ </n>
2367
+
2368
+ Get historical data for machine objects. This method returns a set of historical data for all machines.
2369
+
2370
+ **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.
2371
+
2372
+ To use this endpoint, select **Write Industrial** under the Industrial 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>
2373
+
2374
+ Parameters
2375
+ ----------
2376
+ end_ms : int
2377
+ End of the time range, specified in milliseconds UNIX time.
2378
+
2379
+ start_ms : int
2380
+ Beginning of the time range, specified in milliseconds UNIX time.
2381
+
2382
+ request_options : typing.Optional[RequestOptions]
2383
+ Request-specific configuration.
2384
+
2385
+ Returns
2386
+ -------
2387
+ AsyncHttpResponse[V1MachineHistoryResponse]
2388
+ List of machine results objects, each containing a time and a datapoint.
2389
+ """
2390
+ _response = await self._client_wrapper.httpx_client.request(
2391
+ "v1/machines/history",
2392
+ method="POST",
2393
+ json={
2394
+ "endMs": end_ms,
2395
+ "startMs": start_ms,
2396
+ },
2397
+ headers={
2398
+ "content-type": "application/json",
2399
+ },
2400
+ request_options=request_options,
2401
+ omit=OMIT,
2402
+ )
2403
+ try:
2404
+ if 200 <= _response.status_code < 300:
2405
+ _data = typing.cast(
2406
+ V1MachineHistoryResponse,
2407
+ parse_obj_as(
2408
+ type_=V1MachineHistoryResponse, # type: ignore
2409
+ object_=_response.json(),
2410
+ ),
2411
+ )
2412
+ return AsyncHttpResponse(response=_response, data=_data)
2413
+ _response_json = _response.json()
2414
+ except JSONDecodeError:
2415
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2416
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2417
+
2418
+ async def v_1_get_machines(
2419
+ self, *, request_options: typing.Optional[RequestOptions] = None
2420
+ ) -> AsyncHttpResponse[InlineResponse2008]:
2421
+ """
2422
+ <n class="warning">
2423
+ <nh>
2424
+ <i class="fa fa-exclamation-circle"></i>
2425
+ This endpoint is still on our legacy API.
2426
+ </nh>
2427
+ </n>
2428
+
2429
+ Get machine objects. This method returns a list of the machine objects in the Samsara Cloud and information about them.
2430
+
2431
+ **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.
2432
+
2433
+ To use this endpoint, select **Write Industrial** under the Industrial 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>
2434
+
2435
+ Parameters
2436
+ ----------
2437
+ request_options : typing.Optional[RequestOptions]
2438
+ Request-specific configuration.
2439
+
2440
+ Returns
2441
+ -------
2442
+ AsyncHttpResponse[InlineResponse2008]
2443
+ List of machine objects.
2444
+ """
2445
+ _response = await self._client_wrapper.httpx_client.request(
2446
+ "v1/machines/list",
2447
+ method="POST",
2448
+ request_options=request_options,
2449
+ )
2450
+ try:
2451
+ if 200 <= _response.status_code < 300:
2452
+ _data = typing.cast(
2453
+ InlineResponse2008,
2454
+ parse_obj_as(
2455
+ type_=InlineResponse2008, # type: ignore
2456
+ object_=_response.json(),
2457
+ ),
2458
+ )
2459
+ return AsyncHttpResponse(response=_response, data=_data)
2460
+ _response_json = _response.json()
2461
+ except JSONDecodeError:
2462
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2463
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)