samsara-api 3.0.0__py3-none-any.whl → 4.0.1__py3-none-any.whl

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