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.
- samsara/__init__.py +7438 -2443
- samsara/addresses/__init__.py +31 -1
- samsara/addresses/client.py +19 -12
- samsara/addresses/raw_client.py +13 -16
- samsara/addresses/types/__init__.py +32 -2
- samsara/addresses/types/create_address_request_address_types_item.py +9 -1
- samsara/addresses/types/update_address_request_address_types_item.py +9 -1
- samsara/alerts/__init__.py +29 -3
- samsara/alerts/client.py +811 -8
- samsara/alerts/raw_client.py +1837 -0
- samsara/alerts/types/__init__.py +34 -0
- samsara/alerts/types/get_configurations_request_status.py +5 -0
- samsara/assets/__init__.py +40 -9
- samsara/assets/client.py +710 -23
- samsara/assets/raw_client.py +673 -6
- samsara/assets/types/__init__.py +38 -5
- samsara/attributes/__init__.py +50 -16
- samsara/attributes/client.py +82 -96
- samsara/attributes/raw_client.py +57 -104
- samsara/attributes/types/__init__.py +48 -14
- samsara/attributes/types/create_attribute_request_attribute_type.py +3 -1
- samsara/attributes/types/create_attribute_request_unit.py +42 -0
- samsara/attributes/types/delete_attribute_request_entity_type.py +5 -0
- samsara/attributes/types/get_attribute_request_entity_type.py +5 -0
- samsara/attributes/types/get_attributes_by_entity_type_request_entity_type.py +5 -0
- samsara/attributes/types/update_attribute_request_attribute_type.py +3 -1
- samsara/beta_ap_is/__init__.py +70 -0
- samsara/beta_ap_is/client.py +7119 -0
- samsara/beta_ap_is/raw_client.py +16518 -0
- samsara/beta_ap_is/types/__init__.py +70 -0
- samsara/beta_ap_is/types/functions_start_function_run_request_body_params_override.py +21 -0
- samsara/beta_ap_is/types/get_assets_inputs_request_type.py +27 -0
- samsara/beta_ap_is/types/get_driver_efficiency_request_driver_activation_status.py +5 -0
- samsara/beta_ap_is/types/get_hos_eld_events_request_driver_activation_status.py +5 -0
- samsara/beta_ap_is/types/get_jobs_request_status.py +5 -0
- samsara/beta_ap_is/types/get_qualification_records_stream_request_entity_type.py +5 -0
- samsara/beta_ap_is/types/get_qualification_types_request_entity_type.py +5 -0
- samsara/beta_ap_is/types/get_tag_group_safety_scores_request_score_type.py +5 -0
- samsara/beta_ap_is/types/get_tag_safety_scores_request_score_type.py +5 -0
- samsara/beta_ap_is/types/get_trips_request_completion_status.py +5 -0
- samsara/beta_ap_is/types/get_trips_request_query_by.py +5 -0
- samsara/carrier_proposed_assignments/client.py +38 -39
- samsara/carrier_proposed_assignments/raw_client.py +23 -61
- samsara/client.py +950 -152
- samsara/coaching/__init__.py +0 -3
- samsara/coaching/client.py +442 -8
- samsara/coaching/raw_client.py +1043 -0
- samsara/contacts/client.py +48 -51
- samsara/contacts/raw_client.py +29 -61
- samsara/core/__init__.py +76 -21
- samsara/core/client_wrapper.py +20 -10
- samsara/core/force_multipart.py +4 -2
- samsara/core/http_response.py +1 -1
- samsara/core/pagination.py +1 -1
- samsara/core/pydantic_utilities.py +7 -4
- samsara/documents/__init__.py +29 -3
- samsara/documents/client.py +294 -44
- samsara/documents/raw_client.py +503 -53
- samsara/documents/types/__init__.py +30 -1
- samsara/driver_qr_codes/client.py +306 -0
- samsara/driver_qr_codes/raw_client.py +928 -0
- samsara/driver_vehicle_assignments/__init__.py +32 -2
- samsara/driver_vehicle_assignments/client.py +47 -35
- samsara/driver_vehicle_assignments/raw_client.py +19 -19
- samsara/driver_vehicle_assignments/types/__init__.py +33 -3
- samsara/driver_vehicle_assignments/types/get_driver_vehicle_assignments_request_assignment_type.py +10 -0
- samsara/driver_vehicle_assignments/types/get_driver_vehicle_assignments_request_filter_by.py +5 -0
- samsara/drivers/__init__.py +38 -11
- samsara/drivers/client.py +139 -20
- samsara/drivers/raw_client.py +111 -6
- samsara/drivers/types/__init__.py +36 -4
- samsara/equipment/__init__.py +39 -7
- samsara/equipment/client.py +1001 -62
- samsara/equipment/raw_client.py +1010 -70
- samsara/equipment/types/__init__.py +44 -0
- samsara/equipment/types/get_equipment_stats_feed_request_types_item.py +19 -0
- samsara/equipment/types/get_equipment_stats_history_request_types_item.py +19 -0
- samsara/equipment/types/get_equipment_stats_request_types_item.py +19 -0
- samsara/errors/__init__.py +46 -9
- samsara/fleet/__init__.py +34 -0
- samsara/fleet/attributes/client.py +101 -0
- samsara/fleet/attributes/raw_client.py +74 -0
- samsara/fleet/client.py +63 -0
- samsara/fleet/raw_client.py +13 -0
- samsara/forms/__init__.py +30 -0
- samsara/forms/client.py +815 -2
- samsara/forms/raw_client.py +2091 -15
- samsara/forms/types/__init__.py +38 -0
- samsara/fuel_and_energy/__init__.py +46 -0
- samsara/fuel_and_energy/client.py +960 -0
- samsara/fuel_and_energy/raw_client.py +1925 -0
- samsara/fuel_and_energy/types/__init__.py +48 -0
- samsara/fuel_and_energy/types/fuel_purchase_post_fuel_purchase_request_body_fuel_grade.py +7 -0
- samsara/fuel_and_energy/types/get_fuel_energy_vehicle_reports_request_energy_type.py +5 -0
- samsara/gateways/client.py +29 -35
- samsara/gateways/raw_client.py +14 -45
- samsara/hours_of_service/__init__.py +34 -0
- samsara/hours_of_service/client.py +1002 -0
- samsara/hours_of_service/raw_client.py +1381 -0
- samsara/hours_of_service/types/__init__.py +36 -0
- samsara/hours_of_service/types/get_hos_daily_logs_request_driver_activation_status.py +5 -0
- samsara/hubs/client.py +1073 -0
- samsara/hubs/raw_client.py +2106 -0
- samsara/idling/__init__.py +29 -2
- samsara/idling/client.py +36 -30
- samsara/idling/raw_client.py +18 -72
- samsara/idling/types/__init__.py +29 -2
- samsara/idling/types/get_idling_events_request_pto_state.py +5 -0
- samsara/ifta/__init__.py +50 -2
- samsara/ifta/client.py +634 -3
- samsara/ifta/raw_client.py +1432 -0
- samsara/ifta/types/__init__.py +53 -0
- samsara/ifta/types/get_ifta_jurisdiction_reports_request_fuel_type.py +25 -0
- samsara/ifta/types/get_ifta_jurisdiction_reports_request_month.py +21 -0
- samsara/ifta/types/get_ifta_jurisdiction_reports_request_quarter.py +5 -0
- samsara/ifta/types/get_ifta_vehicle_reports_request_fuel_type.py +25 -0
- samsara/ifta/types/get_ifta_vehicle_reports_request_month.py +21 -0
- samsara/ifta/types/get_ifta_vehicle_reports_request_quarter.py +5 -0
- samsara/industrial/client.py +2167 -0
- samsara/industrial/raw_client.py +2463 -0
- samsara/issues/__init__.py +28 -1
- samsara/issues/client.py +39 -35
- samsara/issues/raw_client.py +24 -53
- samsara/issues/types/__init__.py +30 -1
- samsara/legacy/client.py +21 -95
- samsara/legacy/raw_client.py +25 -304
- samsara/legacy_ap_is/__init__.py +34 -0
- samsara/legacy_ap_is/client.py +879 -0
- samsara/legacy_ap_is/raw_client.py +1433 -0
- samsara/legacy_ap_is/types/__init__.py +38 -0
- samsara/legacy_ap_is/types/get_drivers_vehicle_assignments_request_driver_activation_status.py +7 -0
- samsara/live_sharing_links/__init__.py +37 -0
- samsara/live_sharing_links/client.py +548 -0
- samsara/live_sharing_links/raw_client.py +1389 -0
- samsara/live_sharing_links/types/__init__.py +40 -0
- samsara/live_sharing_links/types/get_live_sharing_links_request_type.py +7 -0
- samsara/location_and_speed/client.py +236 -0
- samsara/location_and_speed/raw_client.py +414 -0
- samsara/maintenance/__init__.py +30 -20
- samsara/maintenance/client.py +1198 -8
- samsara/maintenance/raw_client.py +2249 -0
- samsara/maintenance/types/__init__.py +34 -0
- samsara/media/__init__.py +52 -0
- samsara/media/client.py +500 -0
- samsara/media/raw_client.py +1082 -0
- samsara/media/types/__init__.py +54 -0
- samsara/media/types/list_uploaded_media_request_inputs_item.py +7 -0
- samsara/media/types/list_uploaded_media_request_media_types_item.py +5 -0
- samsara/media/types/list_uploaded_media_request_trigger_reasons_item.py +17 -0
- samsara/media/types/media_retrieval_post_media_retrieval_request_body_inputs_item.py +7 -0
- samsara/messages/client.py +272 -0
- samsara/messages/raw_client.py +273 -0
- samsara/organization_info/client.py +112 -0
- samsara/organization_info/raw_client.py +101 -0
- samsara/plans/client.py +312 -0
- samsara/plans/raw_client.py +700 -0
- samsara/preview_ap_is/client.py +367 -0
- samsara/preview_ap_is/raw_client.py +956 -0
- samsara/routes/__init__.py +0 -3
- samsara/routes/client.py +459 -50
- samsara/routes/raw_client.py +913 -140
- samsara/safety/client.py +662 -0
- samsara/safety/raw_client.py +869 -0
- samsara/sensors/__init__.py +34 -0
- samsara/sensors/client.py +680 -0
- samsara/sensors/raw_client.py +746 -0
- samsara/sensors/types/__init__.py +34 -0
- samsara/sensors/types/inline_object_6_fill_missing.py +5 -0
- samsara/settings/__init__.py +0 -3
- samsara/settings/client.py +579 -13
- samsara/settings/raw_client.py +1655 -0
- samsara/speeding_intervals/__init__.py +29 -2
- samsara/speeding_intervals/client.py +20 -28
- samsara/speeding_intervals/raw_client.py +16 -58
- samsara/speeding_intervals/types/__init__.py +31 -2
- samsara/speeding_intervals/types/get_speeding_intervals_request_query_by.py +5 -0
- samsara/tachograph_eu_only/client.py +494 -0
- samsara/tachograph_eu_only/raw_client.py +475 -0
- samsara/tags/client.py +53 -58
- samsara/tags/raw_client.py +29 -63
- samsara/trailer_assignments/client.py +331 -0
- samsara/trailer_assignments/raw_client.py +313 -0
- samsara/trailers/client.py +47 -47
- samsara/trailers/raw_client.py +18 -53
- samsara/trips/__init__.py +0 -3
- samsara/trips/client.py +55 -111
- samsara/trips/raw_client.py +58 -349
- samsara/types/__init__.py +10049 -4134
- samsara/types/address.py +5 -5
- samsara/types/address_address_types_item.py +9 -1
- samsara/types/address_external_ids.py +21 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_bad_gateway_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_gateway_timeout_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_internal_server_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_method_not_allowed_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_not_found_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_not_implemented_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_response_body.py +22 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_service_unavailable_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_too_many_requests_error_response_body.py +33 -0
- samsara/types/aemp_equipment_get_aemp_equipment_list_unauthorized_error_response_body.py +33 -0
- samsara/types/aemp_equipment_with_additional_fields_response_body.py +48 -0
- samsara/types/aemp_fleet_list_response_body.py +49 -0
- samsara/types/aemp_link_response_body.py +31 -0
- samsara/types/anticipation_brake_event_count.py +3 -0
- samsara/types/appointment_window_request_body.py +34 -0
- samsara/types/appointment_window_response_body.py +34 -0
- samsara/types/asset_data_input.py +45 -0
- samsara/types/asset_data_input_last_point.py +28 -0
- samsara/types/asset_data_output.py +45 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_bad_gateway_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_gateway_timeout_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_internal_server_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_method_not_allowed_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_not_found_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_not_implemented_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_response_body.py +23 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_service_unavailable_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_too_many_requests_error_response_body.py +33 -0
- samsara/types/asset_data_outputs_patch_asset_data_outputs_unauthorized_error_response_body.py +33 -0
- samsara/types/asset_location.py +35 -0
- samsara/types/asset_name.py +3 -0
- samsara/types/asset_response.py +71 -0
- samsara/types/asset_response_body.py +7 -0
- samsara/types/asset_response_location_data_input.py +26 -0
- samsara/types/asset_response_parent_asset.py +26 -0
- samsara/types/asset_response_running_status_data_input.py +26 -0
- samsara/types/assets_location_link_request_config_object.py +39 -0
- samsara/types/assets_location_link_response_config_object_response_body.py +40 -0
- samsara/types/attribute.py +10 -12
- samsara/types/attribute_attribute_type.py +3 -1
- samsara/types/attribute_entity.py +3 -3
- samsara/types/attribute_unit.py +42 -0
- samsara/types/base_route_response_object_response_body.py +7 -0
- samsara/types/coasting_duration_ms.py +3 -0
- samsara/types/continuous_reading_alert_threshold_response_body.py +1 -1
- samsara/types/continuous_reading_alert_threshold_response_body_unit.py +15 -0
- samsara/types/create_driver_auth_token_response_response_body.py +33 -0
- samsara/types/cruise_control_duration_ms.py +3 -0
- samsara/types/cumulative_operating_hours_response_body.py +35 -0
- samsara/types/custom_metadata.py +5 -0
- samsara/types/data_input_list_response.py +26 -0
- samsara/types/data_input_response.py +19 -0
- samsara/types/data_input_response_all_of.py +59 -0
- samsara/types/data_input_snapshot.py +19 -0
- samsara/types/data_input_snapshot_all_of.py +40 -0
- samsara/types/data_input_snapshot_response.py +26 -0
- samsara/types/data_input_tiny_response.py +52 -0
- samsara/types/data_inputs_tiny_response.py +26 -0
- samsara/types/def_remaining_response_body.py +35 -0
- samsara/types/detection_log_asset_object_response_body.py +43 -0
- samsara/types/detection_log_detection_object_response_body.py +65 -0
- samsara/types/detection_log_detection_object_response_body_trigger_detection_label.py +33 -0
- samsara/types/detection_log_driver_object_response_body.py +52 -0
- samsara/types/detection_log_get_detections_bad_gateway_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_gateway_timeout_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_internal_server_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_method_not_allowed_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_not_found_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_not_implemented_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_response_body.py +26 -0
- samsara/types/detection_log_get_detections_service_unavailable_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_too_many_requests_error_response_body.py +33 -0
- samsara/types/detection_log_get_detections_unauthorized_error_response_body.py +33 -0
- samsara/types/detection_log_safety_event_object_response_body.py +39 -0
- samsara/types/detection_log_safety_event_object_response_body_inbox_filter_reason.py +21 -0
- samsara/types/device_response_response_body.py +1 -1
- samsara/types/device_response_response_body_model.py +5 -0
- samsara/types/distance_driven_meters.py +3 -0
- samsara/types/distance_response_body.py +42 -0
- samsara/types/drive_time_duration_ms.py +3 -0
- samsara/types/driver.py +8 -0
- samsara/types/driver_app_sign_in_response_body.py +6 -0
- samsara/types/driver_efficiencies_response.py +26 -0
- samsara/types/driver_efficiencies_response_data.py +42 -0
- samsara/types/driver_efficiency.py +79 -0
- samsara/types/driver_efficiency_data_object_response_body.py +84 -0
- samsara/types/driver_efficiency_difficulty_score_data_object_response_body.py +44 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_bad_gateway_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_gateway_timeout_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_internal_server_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_method_not_allowed_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_not_found_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_not_implemented_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_response_body.py +28 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_service_unavailable_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_too_many_requests_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_drivers_unauthorized_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_bad_gateway_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_gateway_timeout_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_internal_server_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_method_not_allowed_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_not_found_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_not_implemented_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_response_body.py +28 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_service_unavailable_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_too_many_requests_error_response_body.py +33 -0
- samsara/types/driver_efficiency_get_driver_efficiency_by_vehicles_unauthorized_error_response_body.py +33 -0
- samsara/types/driver_efficiency_percentage_data_object_response_body.py +84 -0
- samsara/types/driver_efficiency_raw_data_object_response_body.py +119 -0
- samsara/types/driver_has_vehicle_unpinning_enabled.py +3 -0
- samsara/types/driver_profile_image_base_64.py +3 -0
- samsara/types/driver_profile_image_url.py +3 -0
- samsara/types/driver_safety_score_response_body.py +59 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_bad_gateway_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_gateway_timeout_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_internal_server_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_method_not_allowed_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_not_found_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_not_implemented_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_response_body.py +20 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_service_unavailable_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_too_many_requests_error_response_body.py +33 -0
- samsara/types/drivers_auth_token_create_driver_auth_token_unauthorized_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_bad_gateway_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_gateway_timeout_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_internal_server_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_method_not_allowed_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_not_found_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_not_implemented_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_service_unavailable_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_too_many_requests_error_response_body.py +33 -0
- samsara/types/engine_immobilizer_update_engine_immobilizer_state_unauthorized_error_response_body.py +33 -0
- samsara/types/engine_status_response_body.py +35 -0
- samsara/types/equipment_header_with_additional_fields_response_body.py +63 -0
- samsara/types/equipment_patch_equipment_bad_gateway_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_gateway_timeout_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_internal_server_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_method_not_allowed_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_not_found_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_not_implemented_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_response_body.py +20 -0
- samsara/types/equipment_patch_equipment_service_unavailable_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_too_many_requests_error_response_body.py +33 -0
- samsara/types/equipment_patch_equipment_unauthorized_error_response_body.py +33 -0
- samsara/types/equipment_with_attributes_response_object_response_body.py +68 -0
- samsara/types/extended_driver_tiny_response.py +46 -0
- samsara/types/extended_driver_tiny_response_external_ids.py +21 -0
- samsara/types/fft_spectra_data_point.py +30 -0
- samsara/types/fft_spectra_data_point_fft_spectra.py +41 -0
- samsara/types/fleet_device_object_response_body.py +31 -0
- samsara/types/form_submission_request_media_item_object_request_body.py +33 -0
- samsara/types/form_submission_request_media_value_object_request_body.py +31 -0
- samsara/types/form_submission_request_signature_value_object_request_body.py +24 -0
- samsara/types/form_template_response_object_response_body.py +10 -0
- samsara/types/form_template_response_object_response_body_form_category.py +7 -0
- samsara/types/form_updated_response_body.py +24 -0
- samsara/types/fuel_consumed_ml.py +3 -0
- samsara/types/fuel_remaining_response_body.py +35 -0
- samsara/types/functions_start_function_run_bad_gateway_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_gateway_timeout_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_internal_server_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_method_not_allowed_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_not_found_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_not_implemented_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_response_body.py +20 -0
- samsara/types/functions_start_function_run_service_unavailable_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_too_many_requests_error_response_body.py +33 -0
- samsara/types/functions_start_function_run_unauthorized_error_response_body.py +33 -0
- samsara/types/gateway_details_response_response_body.py +1 -1
- samsara/types/gateway_details_response_response_body_gateway_battery_state.py +3 -1
- samsara/types/goa_attribute_tiny.py +47 -0
- samsara/types/goa_form_tiny_response_response_body.py +26 -0
- samsara/types/goa_issue_tiny_response_response_body.py +26 -0
- samsara/types/green_band_driving_duration_ms.py +3 -0
- samsara/types/harsh_event_trigger_details_object_request_body_types_item.py +2 -0
- samsara/types/harsh_event_trigger_details_object_response_body_types_item.py +2 -0
- samsara/types/health_response_response_body.py +11 -1
- samsara/types/health_response_response_body_recommended_action.py +10 -0
- samsara/types/high_torque_ms.py +3 -0
- samsara/types/hos_daily_logs_update_shipping_docs_bad_gateway_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_internal_server_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_not_found_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_not_implemented_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_response_body.py +20 -0
- samsara/types/hos_daily_logs_update_shipping_docs_service_unavailable_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_too_many_requests_error_response_body.py +33 -0
- samsara/types/hos_daily_logs_update_shipping_docs_unauthorized_error_response_body.py +33 -0
- samsara/types/hos_drivers_eld_event_object_response_body.py +54 -0
- samsara/types/hos_drivers_eld_event_object_response_body_driver_activation_status.py +7 -0
- samsara/types/hos_eld_event_location_object_response_body.py +46 -0
- samsara/types/hos_eld_event_object_response_body.py +98 -0
- samsara/types/hos_eld_event_object_response_body_malfunction_diagnostic_code.py +7 -0
- samsara/types/hos_eld_event_remark_object_response_body.py +36 -0
- samsara/types/hos_eld_events_get_hos_eld_events_bad_gateway_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_internal_server_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_not_found_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_not_implemented_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_response_body.py +26 -0
- samsara/types/hos_eld_events_get_hos_eld_events_service_unavailable_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_too_many_requests_error_response_body.py +33 -0
- samsara/types/hos_eld_events_get_hos_eld_events_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_internal_server_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_not_found_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_response_body.py +26 -0
- samsara/types/hub_capacities_list_hub_capacities_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_capacities_list_hub_capacities_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_capacity_object_response_body.py +54 -0
- samsara/types/hub_location_created_object_response_body.py +105 -0
- samsara/types/hub_location_input_object_request_body.py +94 -0
- samsara/types/hub_location_object_response_body.py +105 -0
- samsara/types/hub_location_service_window_input_request_body.py +38 -0
- samsara/types/hub_location_updated_object_response_body.py +105 -0
- samsara/types/hub_locations_create_hub_locations_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_internal_server_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_not_found_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_response_body.py +23 -0
- samsara/types/hub_locations_create_hub_locations_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_locations_create_hub_locations_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_internal_server_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_not_found_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_response_body.py +26 -0
- samsara/types/hub_locations_list_hub_locations_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_locations_list_hub_locations_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_internal_server_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_not_found_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_response_body.py +20 -0
- samsara/types/hub_locations_update_hub_location_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_locations_update_hub_location_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_object_response_body.py +49 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_internal_server_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_not_found_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_response_body.py +26 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_plan_routes_list_hub_plan_routes_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_internal_server_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_not_found_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_response_body.py +20 -0
- samsara/types/hub_plans_create_hub_plan_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_plans_create_hub_plan_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_internal_server_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_not_found_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_response_body.py +26 -0
- samsara/types/hub_plans_list_hub_plans_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_plans_list_hub_plans_unauthorized_error_response_body.py +33 -0
- samsara/types/hub_skill_object_response_body.py +49 -0
- samsara/types/hub_skills_list_hub_skills_bad_gateway_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_internal_server_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_not_found_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_not_implemented_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_response_body.py +26 -0
- samsara/types/hub_skills_list_hub_skills_service_unavailable_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_too_many_requests_error_response_body.py +33 -0
- samsara/types/hub_skills_list_hub_skills_unauthorized_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_bad_gateway_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_gateway_timeout_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_internal_server_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_method_not_allowed_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_not_found_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_not_implemented_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_response_body.py +26 -0
- samsara/types/hubs_list_hubs_service_unavailable_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_too_many_requests_error_response_body.py +33 -0
- samsara/types/hubs_list_hubs_unauthorized_error_response_body.py +33 -0
- samsara/types/idle_time_duration_ms.py +3 -0
- samsara/types/idling_event_object_response_body.py +1 -1
- samsara/types/idling_event_object_response_body_address_type.py +2 -0
- samsara/types/industrial_asset_object_response_body.py +31 -0
- samsara/types/inline_response_200.py +20 -0
- samsara/types/inline_response_2001.py +20 -0
- samsara/types/inline_response_2002.py +22 -0
- samsara/types/inline_response_2003.py +22 -0
- samsara/types/inline_response_2004.py +20 -0
- samsara/types/inline_response_2007.py +22 -0
- samsara/types/inline_response_2008.py +20 -0
- samsara/types/inline_response_2009.py +20 -0
- samsara/types/j_1939_d_1_status_data_point.py +29 -0
- samsara/types/j_1939_d_1_status_data_point_value.py +34 -0
- samsara/types/job_location_response_object_response_body.py +41 -0
- samsara/types/job_response_object_response_body.py +106 -0
- samsara/types/job_response_object_response_body_status.py +5 -0
- samsara/types/jobs_create_job_bad_gateway_error_response_body.py +33 -0
- samsara/types/jobs_create_job_gateway_timeout_error_response_body.py +33 -0
- samsara/types/jobs_create_job_internal_server_error_response_body.py +33 -0
- samsara/types/jobs_create_job_method_not_allowed_error_response_body.py +33 -0
- samsara/types/jobs_create_job_not_found_error_response_body.py +33 -0
- samsara/types/jobs_create_job_not_implemented_error_response_body.py +33 -0
- samsara/types/jobs_create_job_response_body.py +31 -0
- samsara/types/jobs_create_job_service_unavailable_error_response_body.py +33 -0
- samsara/types/jobs_create_job_too_many_requests_error_response_body.py +33 -0
- samsara/types/jobs_create_job_unauthorized_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_bad_gateway_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_gateway_timeout_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_internal_server_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_method_not_allowed_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_not_found_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_not_implemented_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_response_body.py +29 -0
- samsara/types/jobs_delete_job_service_unavailable_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_too_many_requests_error_response_body.py +33 -0
- samsara/types/jobs_delete_job_unauthorized_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_bad_gateway_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_gateway_timeout_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_internal_server_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_method_not_allowed_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_not_found_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_not_implemented_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_response_body.py +37 -0
- samsara/types/jobs_get_jobs_service_unavailable_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_too_many_requests_error_response_body.py +33 -0
- samsara/types/jobs_get_jobs_unauthorized_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_bad_gateway_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_gateway_timeout_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_internal_server_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_method_not_allowed_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_not_found_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_not_implemented_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_response_body.py +31 -0
- samsara/types/jobs_patch_job_service_unavailable_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_too_many_requests_error_response_body.py +33 -0
- samsara/types/jobs_patch_job_unauthorized_error_response_body.py +33 -0
- samsara/types/latitude.py +3 -0
- samsara/types/list_hub_capacities_response_pagination_response_body.py +35 -0
- samsara/types/list_hub_locations_response_pagination_response_body.py +35 -0
- samsara/types/list_hub_plan_routes_response_pagination_response_body.py +35 -0
- samsara/types/list_hub_plans_response_pagination_response_body.py +35 -0
- samsara/types/list_hub_skills_response_pagination_response_body.py +35 -0
- samsara/types/list_hubs_response_pagination_response_body.py +35 -0
- samsara/types/list_industrial_assets_response.py +22 -0
- samsara/types/live_sharing_link_full_response_object_response_body.py +5 -2
- samsara/types/location_data_point.py +30 -0
- samsara/types/location_data_point_gps_location.py +57 -0
- samsara/types/location_data_point_gps_location_place.py +60 -0
- samsara/types/location_object_request_body_address_types_item.py +2 -0
- samsara/types/location_object_response_body_address_types_item.py +2 -0
- samsara/types/location_response_body.py +42 -0
- samsara/types/location_type.py +5 -0
- samsara/types/longitude.py +3 -0
- samsara/types/media_object_response_body.py +10 -2
- samsara/types/media_object_response_body_camera_role.py +28 -0
- samsara/types/media_object_response_body_input.py +3 -1
- samsara/types/media_object_response_body_status.py +3 -1
- samsara/types/number_data_point.py +28 -0
- samsara/types/order_input_object_request_body.py +59 -0
- samsara/types/order_object_response_body.py +75 -0
- samsara/types/order_quantity_input_request_body.py +33 -0
- samsara/types/order_quantity_response_body.py +33 -0
- samsara/types/order_task_object_response_body.py +54 -0
- samsara/types/order_task_request_body.py +67 -0
- samsara/types/order_task_request_body_position.py +5 -0
- samsara/types/order_task_response_body.py +67 -0
- samsara/types/order_task_response_body_position.py +5 -0
- samsara/types/order_task_skill_object_response_body.py +31 -0
- samsara/types/over_speed_ms.py +3 -0
- samsara/types/parent_id.py +3 -0
- samsara/types/part_instance_input_object_request_body.py +45 -0
- samsara/types/part_instance_object_response_body.py +45 -0
- samsara/types/patch_asset_data_outputs_single_response_response_body.py +40 -0
- samsara/types/patch_job_object_request_body.py +89 -0
- samsara/types/patch_job_objectjob_location_request_object_request_body.py +41 -0
- samsara/types/patch_shipping_docs_response_body_response_body.py +93 -0
- samsara/types/plan_object_response_body.py +49 -0
- samsara/types/plan_orders_create_plan_orders_bad_gateway_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_gateway_timeout_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_internal_server_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_method_not_allowed_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_not_found_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_not_implemented_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_response_body.py +23 -0
- samsara/types/plan_orders_create_plan_orders_service_unavailable_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_too_many_requests_error_response_body.py +33 -0
- samsara/types/plan_orders_create_plan_orders_unauthorized_error_response_body.py +33 -0
- samsara/types/post_fuel_purchase_request_body_discount_request_body.py +34 -0
- samsara/types/post_fuel_purchase_request_body_discount_request_body_currency.py +7 -0
- samsara/types/post_job_object_request_body.py +85 -0
- samsara/types/post_job_objectjob_location_request_object_request_body.py +41 -0
- samsara/types/power_take_off_duration_ms.py +3 -0
- samsara/types/qualification_field_input_object_response_body.py +75 -0
- samsara/types/qualification_field_input_object_response_body_type.py +8 -0
- samsara/types/qualification_owner_object_response_body.py +43 -0
- samsara/types/qualification_owner_object_response_body_entity_type.py +5 -0
- samsara/types/qualification_owner_request_object_request_body.py +38 -0
- samsara/types/qualification_owner_request_object_request_body_entity_type.py +5 -0
- samsara/types/qualification_record_request_field_input_object_request_body.py +77 -0
- samsara/types/qualification_record_request_field_input_object_request_body_type.py +8 -0
- samsara/types/qualification_record_response_object_response_body.py +84 -0
- samsara/types/qualification_record_response_object_response_body_record_status.py +7 -0
- samsara/types/qualification_type_reference_object_response_body.py +40 -0
- samsara/types/qualification_type_request_object_request_body.py +26 -0
- samsara/types/qualification_type_response_object_response_body.py +69 -0
- samsara/types/qualification_type_response_object_response_body_entity_type.py +5 -0
- samsara/types/qualifications_archive_qualification_record_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_archive_qualification_record_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_delete_qualification_record_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_response_body.py +23 -0
- samsara/types/qualifications_get_qualification_records_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_response_body.py +26 -0
- samsara/types/qualifications_get_qualification_records_stream_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_stream_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_records_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_response_body.py +26 -0
- samsara/types/qualifications_get_qualification_types_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_get_qualification_types_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_response_body.py +20 -0
- samsara/types/qualifications_patch_qualification_record_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_patch_qualification_record_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_response_body.py +20 -0
- samsara/types/qualifications_post_qualification_record_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_post_qualification_record_unauthorized_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_bad_gateway_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_gateway_timeout_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_internal_server_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_method_not_allowed_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_not_found_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_not_implemented_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_service_unavailable_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_too_many_requests_error_response_body.py +33 -0
- samsara/types/qualifications_unarchive_qualification_record_unauthorized_error_response_body.py +33 -0
- samsara/types/quantity_object_response_body.py +33 -0
- samsara/types/reading_datapoint_request_body.py +50 -0
- samsara/types/reading_definition_response_body.py +5 -0
- samsara/types/reading_trigger_continuous_value_object_request_body.py +1 -1
- samsara/types/reading_trigger_continuous_value_object_request_body_unit.py +15 -0
- samsara/types/reading_trigger_continuous_value_object_response_body.py +1 -1
- samsara/types/reading_trigger_continuous_value_object_response_body_unit.py +15 -0
- samsara/types/readings_post_readings_bad_gateway_error_response_body.py +33 -0
- samsara/types/readings_post_readings_gateway_timeout_error_response_body.py +33 -0
- samsara/types/readings_post_readings_internal_server_error_response_body.py +33 -0
- samsara/types/readings_post_readings_method_not_allowed_error_response_body.py +33 -0
- samsara/types/readings_post_readings_not_found_error_response_body.py +33 -0
- samsara/types/readings_post_readings_not_implemented_error_response_body.py +33 -0
- samsara/types/readings_post_readings_service_unavailable_error_response_body.py +33 -0
- samsara/types/readings_post_readings_too_many_requests_error_response_body.py +33 -0
- samsara/types/readings_post_readings_unauthorized_error_response_body.py +33 -0
- samsara/types/reverse_geo_object_response_body.py +30 -0
- samsara/types/route_object_response_body.py +124 -0
- samsara/types/route_stop_object_response_body.py +71 -0
- samsara/types/routes_single_use_address_object_request_body.py +9 -0
- samsara/types/routes_single_use_address_object_response_body.py +9 -0
- samsara/types/routes_stop_response_object_response_body.py +12 -0
- samsara/types/safety_event_behavior_labels_response_body.py +1 -1
- samsara/types/safety_event_behavior_labels_response_body_type.py +1 -0
- samsara/types/safety_event_dismissal_reason_response_body.py +32 -0
- samsara/types/safety_event_dismissal_reason_response_body_code.py +7 -0
- samsara/types/safety_event_v_2_asset_object_response_body.py +63 -0
- samsara/types/safety_event_v_2_asset_object_response_body_type.py +7 -0
- samsara/types/safety_event_v_2_behavior_labels_response_body.py +33 -0
- samsara/types/safety_event_v_2_behavior_labels_response_body_label.py +64 -0
- samsara/types/safety_event_v_2_behavior_labels_response_body_source.py +5 -0
- samsara/types/safety_event_v_2_context_labels_response_body.py +38 -0
- samsara/types/safety_event_v_2_driver_object_response_body.py +52 -0
- samsara/types/safety_event_v_2_object_response_body.py +134 -0
- samsara/types/safety_event_v_2_object_response_body_event_state.py +10 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_internal_server_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_not_found_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_response_body.py +26 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_internal_server_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_not_found_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_response_body.py +26 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_stream_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_events_v_2_get_safety_events_v_2_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_score_behavior_object_response_body.py +41 -0
- samsara/types/safety_score_behavior_object_response_body_behavior_type.py +34 -0
- samsara/types/safety_score_speeding_object_response_body.py +43 -0
- samsara/types/safety_score_speeding_object_response_body_speeding_type.py +7 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_response_body.py +26 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_score_trips_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_response_body.py +26 -0
- samsara/types/safety_scores_get_driver_safety_scores_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_driver_safety_scores_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_response_body.py +20 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_group_safety_scores_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_response_body.py +26 -0
- samsara/types/safety_scores_get_tag_safety_scores_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_tag_safety_scores_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_response_body.py +26 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_score_trips_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_bad_gateway_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_gateway_timeout_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_internal_server_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_method_not_allowed_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_not_found_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_not_implemented_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_response_body.py +26 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_service_unavailable_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_too_many_requests_error_response_body.py +33 -0
- samsara/types/safety_scores_get_vehicle_safety_scores_unauthorized_error_response_body.py +33 -0
- samsara/types/service_task_instance_input_object_request_body.py +6 -0
- samsara/types/service_task_instance_object_response_body.py +6 -0
- samsara/types/service_window_object_response_body.py +38 -0
- samsara/types/single_driver_efficiency_by_driver_data_object_response_body.py +47 -0
- samsara/types/single_driver_efficiency_by_vehicle_data_object_response_body.py +46 -0
- samsara/types/single_use_location_object_response_body.py +36 -0
- samsara/types/skill_object_response_body.py +31 -0
- samsara/types/standard_delete_response.py +3 -0
- samsara/types/start_function_run_response_body_response_body.py +28 -0
- samsara/types/string_data_point.py +28 -0
- samsara/types/tag_group_safety_score_response_body.py +54 -0
- samsara/types/tag_ids.py +5 -0
- samsara/types/tag_safety_score_response_body.py +59 -0
- samsara/types/tire_fault_code_details_object_request_body_specific_tire_fault_codes_item.py +2 -0
- samsara/types/tire_fault_code_details_object_response_body_specific_tire_fault_codes_item.py +2 -0
- samsara/types/total_brake_event_count.py +3 -0
- samsara/types/trailer_stat_decoration_response_body.py +145 -0
- samsara/types/trailer_stat_gps_odometer_meters_type_response_body.py +31 -0
- samsara/types/trailer_stat_gps_odometer_meters_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_gps_type_response_body.py +56 -0
- samsara/types/trailer_stat_gps_with_decorations_type_response_body.py +58 -0
- samsara/types/trailer_stat_reefer_alarm_response_body.py +39 -0
- samsara/types/trailer_stat_reefer_alarm_type_response_body.py +32 -0
- samsara/types/trailer_stat_reefer_alarm_with_decorations_type_response_body.py +34 -0
- samsara/types/trailer_stat_reefer_ambient_air_temperature_milli_c_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_ambient_air_temperature_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_door_state_zone_1_type_response_body.py +34 -0
- samsara/types/trailer_stat_reefer_door_state_zone_1_type_response_body_value.py +5 -0
- samsara/types/trailer_stat_reefer_door_state_zone_1_with_decorations_type_response_body.py +36 -0
- samsara/types/trailer_stat_reefer_door_state_zone_1_with_decorations_type_response_body_value.py +7 -0
- samsara/types/trailer_stat_reefer_door_state_zone_2_type_response_body.py +34 -0
- samsara/types/trailer_stat_reefer_door_state_zone_2_type_response_body_value.py +5 -0
- samsara/types/trailer_stat_reefer_door_state_zone_2_with_decorations_type_response_body.py +36 -0
- samsara/types/trailer_stat_reefer_door_state_zone_2_with_decorations_type_response_body_value.py +7 -0
- samsara/types/trailer_stat_reefer_door_state_zone_3_type_response_body.py +34 -0
- samsara/types/trailer_stat_reefer_door_state_zone_3_type_response_body_value.py +5 -0
- samsara/types/trailer_stat_reefer_door_state_zone_3_with_decorations_type_response_body.py +36 -0
- samsara/types/trailer_stat_reefer_door_state_zone_3_with_decorations_type_response_body_value.py +7 -0
- samsara/types/trailer_stat_reefer_fuel_percent_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_fuel_percent_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_obd_engine_seconds_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_obd_engine_seconds_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_1_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_2_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_3_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_return_air_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_run_mode_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_run_mode_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_1_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_2_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_3_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_set_point_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_state_type_response_body.py +40 -0
- samsara/types/trailer_stat_reefer_state_with_decorations_type_response_body.py +42 -0
- samsara/types/trailer_stat_reefer_state_zone_1_type_response_body.py +40 -0
- samsara/types/trailer_stat_reefer_state_zone_1_with_decorations_type_response_body.py +42 -0
- samsara/types/trailer_stat_reefer_state_zone_2_type_response_body.py +40 -0
- samsara/types/trailer_stat_reefer_state_zone_2_with_decorations_type_response_body.py +42 -0
- samsara/types/trailer_stat_reefer_state_zone_3_type_response_body.py +40 -0
- samsara/types/trailer_stat_reefer_state_zone_3_with_decorations_type_response_body.py +42 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_1_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_1_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_2_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_2_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_3_type_response_body.py +31 -0
- samsara/types/trailer_stat_reefer_supply_air_temperature_milli_c_zone_3_with_decorations_type_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_bad_gateway_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_gateway_timeout_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_internal_server_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_method_not_allowed_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_not_found_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_not_implemented_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_response_body.py +26 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_service_unavailable_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_too_many_requests_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_feed_unauthorized_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_bad_gateway_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_gateway_timeout_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_internal_server_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_method_not_allowed_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_not_found_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_not_implemented_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_response_body.py +26 -0
- samsara/types/trailer_stats_get_trailer_stats_history_service_unavailable_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_too_many_requests_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_history_unauthorized_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_bad_gateway_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_gateway_timeout_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_internal_server_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_method_not_allowed_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_not_found_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_not_implemented_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_response_body.py +26 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_service_unavailable_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_too_many_requests_error_response_body.py +33 -0
- samsara/types/trailer_stats_get_trailer_stats_snapshot_unauthorized_error_response_body.py +33 -0
- samsara/types/trailer_stats_object_response_body.py +281 -0
- samsara/types/trailer_stats_snapshot_object_response_body.py +155 -0
- samsara/types/trips_breakdown_response_body.py +67 -0
- samsara/types/unit_response_body.py +2 -2
- samsara/types/unit_response_body_base_unit.py +15 -0
- samsara/types/unit_response_body_measurement_type.py +4 -0
- samsara/types/update_engine_immobilizer_relay_state_request_body_request_body.py +36 -0
- samsara/types/update_engine_immobilizer_relay_state_request_body_request_body_id.py +5 -0
- samsara/types/update_hub_location_request_body_request_body.py +93 -0
- samsara/types/uploaded_media_object_response_body.py +9 -1
- samsara/types/uploaded_media_object_response_body_camera_role.py +28 -0
- samsara/types/uploaded_media_object_response_body_input.py +2 -1
- samsara/types/v_1_asset.py +56 -0
- samsara/types/v_1_asset_cable.py +30 -0
- samsara/types/v_1_asset_current_location.py +52 -0
- samsara/types/v_1_asset_current_locations_response.py +55 -0
- samsara/types/v_1_asset_location_response.py +7 -0
- samsara/types/v_1_asset_location_response_item.py +50 -0
- samsara/types/v_1_asset_reefer_response.py +45 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats.py +67 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_alarms.py +43 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_alarms_1.py +28 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_engine_hours.py +33 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_fuel_percentage.py +33 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_power_status.py +31 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_return_air_temp.py +33 -0
- samsara/types/v_1_asset_reefer_response_reefer_stats_set_point.py +33 -0
- samsara/types/v_1_assets_reefer.py +45 -0
- samsara/types/v_1_assets_reefer_reefer_stats.py +91 -0
- samsara/types/v_1_assets_reefer_reefer_stats_ambient_air_temperature.py +33 -0
- samsara/types/v_1_assets_reefer_reefer_stats_discharge_air_temperature.py +33 -0
- samsara/types/v_1_assets_reefer_reefer_stats_power_status.py +32 -0
- samsara/types/v_1_assets_reefer_reefer_stats_power_status_status.py +7 -0
- samsara/types/v_1_cargo_response.py +33 -0
- samsara/types/v_1_cargo_response_sensors.py +64 -0
- samsara/types/v_1_door_response.py +33 -0
- samsara/types/v_1_door_response_sensors.py +57 -0
- samsara/types/v_1_driver_safety_score_response.py +104 -0
- samsara/types/v_1_hos_authentication_logs_response.py +25 -0
- samsara/types/v_1_hos_authentication_logs_response_authentication_logs.py +55 -0
- samsara/types/v_1_humidity_response.py +33 -0
- samsara/types/v_1_humidity_response_sensors.py +55 -0
- samsara/types/v_1_machine.py +36 -0
- samsara/types/v_1_machine_history_response.py +24 -0
- samsara/types/v_1_machine_history_response_machines.py +33 -0
- samsara/types/v_1_machine_history_response_vibrations.py +24 -0
- samsara/types/v_1_pagination.py +39 -0
- samsara/types/v_1_programs_for_the_camera_response.py +7 -0
- samsara/types/v_1_programs_for_the_camera_response_item.py +22 -0
- samsara/types/v_1_safety_report_harsh_event.py +44 -0
- samsara/types/v_1_sensor.py +40 -0
- samsara/types/v_1_sensor_history_response.py +24 -0
- samsara/types/v_1_sensor_history_response_results.py +31 -0
- samsara/types/v_1_sensors_history_series.py +34 -0
- samsara/types/v_1_sensors_history_series_field.py +25 -0
- samsara/types/v_1_temperature_response.py +33 -0
- samsara/types/v_1_temperature_response_sensors.py +71 -0
- samsara/types/v_1_trailer_assignment_response.py +40 -0
- samsara/types/v_1_trailer_assignments_response.py +19 -0
- samsara/types/v_1_trailer_assignments_response_all_of.py +24 -0
- samsara/types/v_1_trailer_base.py +27 -0
- samsara/types/v_1_trip_response.py +24 -0
- samsara/types/v_1_trip_response_end_address.py +36 -0
- samsara/types/v_1_trip_response_end_coordinates.py +24 -0
- samsara/types/v_1_trip_response_start_address.py +36 -0
- samsara/types/v_1_trip_response_start_coordinates.py +24 -0
- samsara/types/v_1_trip_response_trips.py +119 -0
- samsara/types/v_1_vehicle_harsh_event_response.py +64 -0
- samsara/types/v_1_vehicle_harsh_event_response_location.py +32 -0
- samsara/types/v_1_vehicle_maintenance.py +33 -0
- samsara/types/v_1_vehicle_maintenance_j_1939.py +36 -0
- samsara/types/v_1_vehicle_maintenance_j_1939_check_engine_light.py +28 -0
- samsara/types/v_1_vehicle_maintenance_j_1939_diagnostic_trouble_codes.py +26 -0
- samsara/types/v_1_vehicle_maintenance_passenger.py +38 -0
- samsara/types/v_1_vehicle_maintenance_passenger_check_engine_light.py +25 -0
- samsara/types/v_1_vehicle_maintenance_passenger_diagnostic_trouble_codes.py +23 -0
- samsara/types/v_1_vehicle_safety_score_response.py +104 -0
- samsara/types/v_1_vision_cameras_response.py +7 -0
- samsara/types/v_1_vision_cameras_response_item.py +24 -0
- samsara/types/v_1_vision_run_by_camera_response.py +35 -0
- samsara/types/v_1_vision_run_by_camera_response_inspection_results.py +26 -0
- samsara/types/v_1_vision_run_by_camera_response_program.py +20 -0
- samsara/types/v_1_vision_run_by_camera_response_run_summary.py +24 -0
- samsara/types/v_1_vision_runs_by_camera_and_program_response.py +30 -0
- samsara/types/v_1_vision_runs_by_camera_response.py +7 -0
- samsara/types/v_1_vision_runs_by_camera_response_item.py +29 -0
- samsara/types/v_1_vision_runs_by_camera_response_item_program.py +20 -0
- samsara/types/v_1_vision_runs_by_camera_response_item_report_metadata.py +24 -0
- samsara/types/v_1_vision_runs_response.py +24 -0
- samsara/types/v_1_vision_runs_response_report_metadata.py +51 -0
- samsara/types/v_1_vision_runs_response_vision_runs.py +28 -0
- samsara/types/v_1_vision_step_results.py +7 -0
- samsara/types/v_1_vision_step_results_item.py +68 -0
- samsara/types/v_1_vision_step_results_item_angle_check.py +48 -0
- samsara/types/v_1_vision_step_results_item_angle_check_angle_configured.py +24 -0
- samsara/types/v_1_vision_step_results_item_barcode_item.py +23 -0
- samsara/types/v_1_vision_step_results_item_boolean_logic.py +21 -0
- samsara/types/v_1_vision_step_results_item_boolean_logic_steps_item.py +20 -0
- samsara/types/v_1_vision_step_results_item_caliper.py +85 -0
- samsara/types/v_1_vision_step_results_item_caliper_angle_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_caliper_contrast_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_caliper_filter_polarity.py +7 -0
- samsara/types/v_1_vision_step_results_item_caliper_sharpness_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_caliper_straightness_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_contour.py +47 -0
- samsara/types/v_1_vision_step_results_item_distance.py +87 -0
- samsara/types/v_1_vision_step_results_item_expiration_date.py +23 -0
- samsara/types/v_1_vision_step_results_item_find_copies.py +52 -0
- samsara/types/v_1_vision_step_results_item_find_edge.py +86 -0
- samsara/types/v_1_vision_step_results_item_find_edge_angle_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_find_edge_contrast_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_find_edge_sharpness_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_find_edge_straightness_range.py +24 -0
- samsara/types/v_1_vision_step_results_item_find_shapes.py +23 -0
- samsara/types/v_1_vision_step_results_item_fixture.py +24 -0
- samsara/types/v_1_vision_step_results_item_fixture_coordinates.py +20 -0
- samsara/types/v_1_vision_step_results_item_label_match.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence.py +55 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_blue_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_grayscale_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_green_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_hue_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_red_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_saturation_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_presence_absence_value_range.py +20 -0
- samsara/types/v_1_vision_step_results_item_text_match.py +22 -0
- samsara/types/vehicle_fault_code_details_object_request_body.py +7 -0
- samsara/types/vehicle_fault_code_details_object_response_body.py +7 -0
- samsara/types/vehicle_safety_score_response_body.py +59 -0
- samsara/types/vehicle_stats_decorations.py +9 -0
- samsara/types/vehicle_stats_decorations_fuel_consumed_milliliters.py +20 -0
- samsara/types/vehicle_stats_decorations_idling_duration_milliseconds.py +20 -0
- samsara/types/vehicle_stats_fuel_consumed_milliliters.py +28 -0
- samsara/types/vehicle_stats_fuel_consumed_milliliters_value.py +3 -0
- samsara/types/vehicle_stats_fuel_consumed_milliliters_with_decoration.py +30 -0
- samsara/types/vehicle_stats_idling_duration_milliseconds.py +28 -0
- samsara/types/vehicle_stats_idling_duration_milliseconds_value.py +3 -0
- samsara/types/vehicle_stats_idling_duration_milliseconds_with_decoration.py +30 -0
- samsara/types/vehicle_stats_list_response_data.py +20 -0
- samsara/types/vehicle_stats_response_data.py +8 -0
- samsara/types/vehicle_stats_synthetic_engine_seconds.py +1 -1
- samsara/types/vehicle_summary.py +68 -0
- samsara/types/vehicles_lock_lock_vehicle_bad_gateway_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_gateway_timeout_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_internal_server_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_method_not_allowed_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_not_found_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_not_implemented_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_service_unavailable_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_too_many_requests_error_response_body.py +33 -0
- samsara/types/vehicles_lock_lock_vehicle_unauthorized_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_bad_gateway_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_gateway_timeout_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_internal_server_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_method_not_allowed_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_not_found_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_not_implemented_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_service_unavailable_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_too_many_requests_error_response_body.py +33 -0
- samsara/types/vehicles_lock_unlock_vehicle_unauthorized_error_response_body.py +33 -0
- samsara/types/webhook_response_response_body_event_types_item.py +2 -0
- samsara/types/webhooks_get_webhook_response_body_event_types_item.py +2 -0
- samsara/types/webhooks_patch_webhook_response_body_event_types_item.py +2 -0
- samsara/types/webhooks_post_webhooks_response_body_event_types_item.py +2 -0
- samsara/types/work_order_object_response_body.py +21 -0
- samsara/types/work_order_tax_create_object_request_body.py +33 -0
- samsara/types/workflow_incident_details_object_response_body.py +4 -0
- samsara/users/__init__.py +28 -1
- samsara/users/client.py +147 -51
- samsara/users/raw_client.py +138 -61
- samsara/users/types/__init__.py +32 -2
- samsara/vehicle_locations/client.py +485 -0
- samsara/vehicle_locations/raw_client.py +472 -0
- samsara/vehicle_stats/__init__.py +52 -0
- samsara/vehicle_stats/client.py +1092 -0
- samsara/vehicle_stats/raw_client.py +1091 -0
- samsara/vehicle_stats/types/__init__.py +50 -0
- samsara/vehicle_stats/types/get_vehicle_stats_feed_request_decorations_item.py +57 -0
- samsara/vehicle_stats/types/get_vehicle_stats_feed_request_types_item.py +71 -0
- samsara/vehicle_stats/types/get_vehicle_stats_history_request_decorations_item.py +57 -0
- samsara/vehicle_stats/types/get_vehicle_stats_history_request_types_item.py +71 -0
- samsara/vehicle_stats/types/get_vehicle_stats_request_types_item.py +71 -0
- samsara/vehicles/__init__.py +58 -32
- samsara/vehicles/client.py +20 -17
- samsara/vehicles/raw_client.py +2 -2
- samsara/vehicles/types/__init__.py +56 -14
- samsara/webhooks/__init__.py +36 -5
- samsara/webhooks/client.py +47 -47
- samsara/webhooks/raw_client.py +18 -51
- samsara/webhooks/types/__init__.py +34 -3
- samsara/webhooks/types/webhooks_post_webhooks_request_body_event_types_item.py +2 -0
- samsara/work_orders/__init__.py +55 -0
- samsara/work_orders/client.py +995 -0
- samsara/work_orders/raw_client.py +2258 -0
- samsara/work_orders/types/__init__.py +53 -0
- samsara/work_orders/types/stream_work_orders_request_work_order_statuses_item.py +18 -0
- samsara_api-4.0.1.dist-info/METADATA +670 -0
- samsara_api-4.0.1.dist-info/RECORD +3387 -0
- samsara/alerts/configurations/__init__.py +0 -7
- samsara/alerts/configurations/client.py +0 -720
- samsara/alerts/configurations/raw_client.py +0 -1552
- samsara/alerts/configurations/types/__init__.py +0 -7
- samsara/alerts/configurations/types/configurations_list_request_status.py +0 -5
- samsara/alerts/incidents/client.py +0 -180
- samsara/alerts/incidents/raw_client.py +0 -396
- samsara/assets/location_and_speed/client.py +0 -226
- samsara/assets/location_and_speed/raw_client.py +0 -458
- samsara/attributes/types/attributes_delete_request_entity_type.py +0 -5
- samsara/attributes/types/attributes_get_request_entity_type.py +0 -5
- samsara/attributes/types/attributes_list_request_entity_type.py +0 -5
- samsara/attributes/types/create_attribute_request_attribute_value_quantity.py +0 -5
- samsara/attributes/types/update_attribute_request_attribute_value_quantity.py +0 -5
- samsara/auth/__init__.py +0 -8
- samsara/auth/client.py +0 -39
- samsara/auth/raw_client.py +0 -13
- samsara/auth/tokens/__init__.py +0 -7
- samsara/auth/tokens/client.py +0 -185
- samsara/auth/tokens/raw_client.py +0 -210
- samsara/auth/tokens/types/__init__.py +0 -7
- samsara/auth/tokens/types/create_tokens_response.py +0 -23
- samsara/cameras/__init__.py +0 -13
- samsara/cameras/client.py +0 -39
- samsara/cameras/media/__init__.py +0 -19
- samsara/cameras/media/client.py +0 -232
- samsara/cameras/media/raw_client.py +0 -417
- samsara/cameras/media/retrieval/__init__.py +0 -13
- samsara/cameras/media/retrieval/client.py +0 -286
- samsara/cameras/media/retrieval/raw_client.py +0 -686
- samsara/cameras/media/retrieval/types/__init__.py +0 -15
- samsara/cameras/media/retrieval/types/media_retrieval_post_media_retrieval_request_body_inputs_item.py +0 -7
- samsara/cameras/media/types/__init__.py +0 -9
- samsara/cameras/media/types/media_list_request_inputs_item.py +0 -7
- samsara/cameras/media/types/media_list_request_media_types_item.py +0 -5
- samsara/cameras/media/types/media_list_request_trigger_reasons_item.py +0 -17
- samsara/cameras/raw_client.py +0 -13
- samsara/coaching/driver_coach_assignments/client.py +0 -285
- samsara/coaching/driver_coach_assignments/raw_client.py +0 -716
- samsara/coaching/sessions/client.py +0 -228
- samsara/coaching/sessions/raw_client.py +0 -448
- samsara/defect_types/client.py +0 -156
- samsara/defect_types/raw_client.py +0 -384
- samsara/defects/client.py +0 -583
- samsara/defects/raw_client.py +0 -1028
- samsara/devices/client.py +0 -190
- samsara/devices/raw_client.py +0 -412
- samsara/document_types/client.py +0 -134
- samsara/document_types/raw_client.py +0 -354
- samsara/documents/pdfs/client.py +0 -206
- samsara/documents/pdfs/raw_client.py +0 -212
- samsara/driver_trailer_assignments/client.py +0 -389
- samsara/driver_trailer_assignments/raw_client.py +0 -1044
- samsara/driver_vehicle_assignments/types/driver_vehicle_assignments_get_request_assignment_type.py +0 -10
- samsara/driver_vehicle_assignments/types/driver_vehicle_assignments_get_request_filter_by.py +0 -5
- samsara/drivers/qr_codes/client.py +0 -304
- samsara/drivers/qr_codes/raw_client.py +0 -926
- samsara/drivers/vehicle_assignments/__init__.py +0 -7
- samsara/drivers/vehicle_assignments/client.py +0 -201
- samsara/drivers/vehicle_assignments/raw_client.py +0 -397
- samsara/drivers/vehicle_assignments/types/__init__.py +0 -9
- samsara/drivers/vehicle_assignments/types/vehicle_assignments_list_request_driver_activation_status.py +0 -5
- samsara/dvirs/__init__.py +0 -7
- samsara/dvirs/client.py +0 -775
- samsara/dvirs/raw_client.py +0 -1223
- samsara/dvirs/types/__init__.py +0 -7
- samsara/equipment/locations/client.py +0 -467
- samsara/equipment/locations/raw_client.py +0 -543
- samsara/equipment/stats/__init__.py +0 -7
- samsara/equipment/stats/client.py +0 -602
- samsara/equipment/stats/raw_client.py +0 -684
- samsara/equipment/stats/types/__init__.py +0 -9
- samsara/equipment/stats/types/stats_feed_request_types_item.py +0 -19
- samsara/equipment/stats/types/stats_history_request_types_item.py +0 -19
- samsara/equipment/stats/types/stats_list_request_types_item.py +0 -19
- samsara/form_submissions/__init__.py +0 -8
- samsara/form_submissions/client.py +0 -669
- samsara/form_submissions/pdf_exports/client.py +0 -221
- samsara/form_submissions/pdf_exports/raw_client.py +0 -627
- samsara/form_submissions/raw_client.py +0 -1550
- samsara/form_submissions/types/__init__.py +0 -9
- samsara/fuel_purchases/__init__.py +0 -7
- samsara/fuel_purchases/client.py +0 -219
- samsara/fuel_purchases/raw_client.py +0 -410
- samsara/fuel_purchases/types/__init__.py +0 -9
- samsara/hos/__init__.py +0 -7
- samsara/hos/client.py +0 -695
- samsara/hos/raw_client.py +0 -1177
- samsara/hos/types/__init__.py +0 -7
- samsara/hos/types/hos_daily_logs_request_driver_activation_status.py +0 -5
- samsara/idling/types/idling_list_request_pto_state.py +0 -5
- samsara/ifta/csv/__init__.py +0 -4
- samsara/ifta/csv/client.py +0 -274
- samsara/ifta/csv/raw_client.py +0 -675
- samsara/inputs/__init__.py +0 -7
- samsara/inputs/client.py +0 -223
- samsara/inputs/raw_client.py +0 -445
- samsara/inputs/types/__init__.py +0 -7
- samsara/inputs/types/inputs_stream_request_type.py +0 -27
- samsara/live_shares/__init__.py +0 -7
- samsara/live_shares/client.py +0 -544
- samsara/live_shares/raw_client.py +0 -1418
- samsara/live_shares/types/__init__.py +0 -10
- samsara/live_shares/types/live_shares_list_request_type.py +0 -7
- samsara/maintenance/service_tasks/__init__.py +0 -4
- samsara/maintenance/service_tasks/client.py +0 -322
- samsara/maintenance/service_tasks/raw_client.py +0 -529
- samsara/maintenance/work_orders/__init__.py +0 -21
- samsara/maintenance/work_orders/client.py +0 -867
- samsara/maintenance/work_orders/raw_client.py +0 -1980
- samsara/maintenance/work_orders/types/__init__.py +0 -19
- samsara/maintenance/work_orders/types/work_orders_stream_request_work_order_statuses_item.py +0 -18
- samsara/me/__init__.py +0 -4
- samsara/me/client.py +0 -108
- samsara/me/raw_client.py +0 -99
- samsara/readings/__init__.py +0 -4
- samsara/readings/client.py +0 -524
- samsara/readings/raw_client.py +0 -1214
- samsara/reports/__init__.py +0 -7
- samsara/reports/client.py +0 -49
- samsara/reports/drivers/__init__.py +0 -7
- samsara/reports/drivers/client.py +0 -39
- samsara/reports/drivers/fuel_energy/__init__.py +0 -4
- samsara/reports/drivers/fuel_energy/client.py +0 -194
- samsara/reports/drivers/fuel_energy/raw_client.py +0 -384
- samsara/reports/drivers/raw_client.py +0 -13
- samsara/reports/ifta/__init__.py +0 -18
- samsara/reports/ifta/client.py +0 -44
- samsara/reports/ifta/jurisdiction/__init__.py +0 -7
- samsara/reports/ifta/jurisdiction/client.py +0 -217
- samsara/reports/ifta/jurisdiction/raw_client.py +0 -409
- samsara/reports/ifta/jurisdiction/types/__init__.py +0 -9
- samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_fuel_type.py +0 -25
- samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_month.py +0 -21
- samsara/reports/ifta/jurisdiction/types/jurisdiction_get_request_quarter.py +0 -5
- samsara/reports/ifta/raw_client.py +0 -13
- samsara/reports/ifta/vehicle/__init__.py +0 -7
- samsara/reports/ifta/vehicle/client.py +0 -227
- samsara/reports/ifta/vehicle/raw_client.py +0 -419
- samsara/reports/ifta/vehicle/types/__init__.py +0 -9
- samsara/reports/ifta/vehicle/types/vehicle_list_request_fuel_type.py +0 -25
- samsara/reports/ifta/vehicle/types/vehicle_list_request_month.py +0 -21
- samsara/reports/ifta/vehicle/types/vehicle_list_request_quarter.py +0 -5
- samsara/reports/raw_client.py +0 -13
- samsara/reports/vehicles/__init__.py +0 -8
- samsara/reports/vehicles/client.py +0 -44
- samsara/reports/vehicles/fuel_energy/__init__.py +0 -7
- samsara/reports/vehicles/fuel_energy/client.py +0 -205
- samsara/reports/vehicles/fuel_energy/raw_client.py +0 -395
- samsara/reports/vehicles/fuel_energy/types/__init__.py +0 -7
- samsara/reports/vehicles/fuel_energy/types/fuel_energy_list_request_energy_type.py +0 -5
- samsara/reports/vehicles/idling/__init__.py +0 -4
- samsara/reports/vehicles/idling/client.py +0 -236
- samsara/reports/vehicles/idling/raw_client.py +0 -462
- samsara/reports/vehicles/raw_client.py +0 -13
- samsara/routes/audit_logs/__init__.py +0 -4
- samsara/routes/audit_logs/client.py +0 -146
- samsara/routes/audit_logs/raw_client.py +0 -350
- samsara/safety_events/__init__.py +0 -7
- samsara/safety_events/audit_logs/__init__.py +0 -4
- samsara/safety_events/audit_logs/client.py +0 -160
- samsara/safety_events/audit_logs/raw_client.py +0 -386
- samsara/safety_events/client.py +0 -199
- samsara/safety_events/raw_client.py +0 -207
- samsara/settings/compliance/__init__.py +0 -4
- samsara/settings/compliance/client.py +0 -308
- samsara/settings/compliance/raw_client.py +0 -718
- samsara/settings/driver_app/__init__.py +0 -4
- samsara/settings/driver_app/client.py +0 -270
- samsara/settings/driver_app/raw_client.py +0 -697
- samsara/settings/safety/__init__.py +0 -4
- samsara/settings/safety/client.py +0 -118
- samsara/settings/safety/raw_client.py +0 -314
- samsara/speeding_intervals/types/speeding_intervals_stream_request_query_by.py +0 -5
- samsara/tachograph/__init__.py +0 -7
- samsara/tachograph/client.py +0 -44
- samsara/tachograph/driver/__init__.py +0 -4
- samsara/tachograph/driver/client.py +0 -337
- samsara/tachograph/driver/raw_client.py +0 -322
- samsara/tachograph/raw_client.py +0 -13
- samsara/tachograph/vehicles/__init__.py +0 -4
- samsara/tachograph/vehicles/client.py +0 -190
- samsara/tachograph/vehicles/raw_client.py +0 -173
- samsara/training_assignments/__init__.py +0 -4
- samsara/training_assignments/client.py +0 -520
- samsara/training_assignments/raw_client.py +0 -1326
- samsara/training_courses/__init__.py +0 -4
- samsara/training_courses/client.py +0 -178
- samsara/training_courses/raw_client.py +0 -398
- samsara/trips/types/__init__.py +0 -8
- samsara/trips/types/trips_stream_request_completion_status.py +0 -5
- samsara/trips/types/trips_stream_request_query_by.py +0 -5
- samsara/types/alert_event.py +0 -74
- samsara/types/alert_event_alert_condition_id.py +0 -40
- samsara/types/alert_event_device.py +0 -37
- samsara/types/alert_event_driver.py +0 -27
- samsara/types/alert_event_dvir.py +0 -52
- samsara/types/alert_event_dvir_defects_item.py +0 -44
- samsara/types/alert_event_dvir_driver.py +0 -27
- samsara/types/alert_event_dvir_inspection_type.py +0 -7
- samsara/types/alert_event_dvir_safety_status.py +0 -5
- samsara/types/alert_event_dvir_trailer.py +0 -27
- samsara/types/alert_event_dvir_vehicle.py +0 -27
- samsara/types/assets_location_link_config_object.py +0 -31
- samsara/types/assets_location_link_config_object_response_body.py +0 -33
- samsara/types/attribute_attribute_value_quantity.py +0 -5
- samsara/types/external_ids.py +0 -5
- samsara/types/webhook_event.py +0 -37
- samsara/user_roles/__init__.py +0 -4
- samsara/user_roles/client.py +0 -142
- samsara/user_roles/raw_client.py +0 -159
- samsara/v_1_messages/__init__.py +0 -4
- samsara/v_1_messages/client.py +0 -258
- samsara/v_1_messages/raw_client.py +0 -273
- samsara/vehicles/immobilizer/__init__.py +0 -4
- samsara/vehicles/immobilizer/client.py +0 -182
- samsara/vehicles/immobilizer/raw_client.py +0 -398
- samsara/vehicles/locations/__init__.py +0 -4
- samsara/vehicles/locations/client.py +0 -501
- samsara/vehicles/locations/raw_client.py +0 -579
- samsara/vehicles/stats/__init__.py +0 -19
- samsara/vehicles/stats/client.py +0 -1076
- samsara/vehicles/stats/raw_client.py +0 -1164
- samsara/vehicles/stats/types/__init__.py +0 -17
- samsara/vehicles/stats/types/stats_feed_request_decorations_item.py +0 -54
- samsara/vehicles/stats/types/stats_feed_request_types_item.py +0 -68
- samsara/vehicles/stats/types/stats_history_request_decorations_item.py +0 -54
- samsara/vehicles/stats/types/stats_history_request_types_item.py +0 -68
- samsara/vehicles/stats/types/stats_list_request_types_item.py +0 -68
- samsara_api-3.0.0.dist-info/METADATA +0 -238
- samsara_api-3.0.0.dist-info/RECORD +0 -2664
- /samsara/{alerts/incidents → driver_qr_codes}/__init__.py +0 -0
- /samsara/{assets/location_and_speed → fleet/attributes}/__init__.py +0 -0
- /samsara/{form_submissions → forms}/types/form_submissions_patch_form_submission_request_body_status.py +0 -0
- /samsara/{fuel_purchases → fuel_and_energy}/types/fuel_purchase_post_fuel_purchase_request_body_ifta_fuel_type.py +0 -0
- /samsara/{coaching/driver_coach_assignments → hubs}/__init__.py +0 -0
- /samsara/{coaching/sessions → industrial}/__init__.py +0 -0
- /samsara/{live_shares → live_sharing_links}/types/live_sharing_links_create_live_sharing_link_request_body_type.py +0 -0
- /samsara/{defect_types → location_and_speed}/__init__.py +0 -0
- /samsara/{dvirs → maintenance}/types/create_dvir_request_safety_status.py +0 -0
- /samsara/{cameras/media/retrieval → media}/types/media_retrieval_post_media_retrieval_request_body_media_type.py +0 -0
- /samsara/{defects → messages}/__init__.py +0 -0
- /samsara/{devices → organization_info}/__init__.py +0 -0
- /samsara/{document_types → plans}/__init__.py +0 -0
- /samsara/{documents/pdfs → preview_ap_is}/__init__.py +0 -0
- /samsara/{driver_trailer_assignments → safety}/__init__.py +0 -0
- /samsara/{drivers/qr_codes → tachograph_eu_only}/__init__.py +0 -0
- /samsara/{equipment/locations → trailer_assignments}/__init__.py +0 -0
- /samsara/{form_submissions/pdf_exports → vehicle_locations}/__init__.py +0 -0
- /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_category.py +0 -0
- /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_priority.py +0 -0
- /samsara/{maintenance/work_orders → work_orders}/types/work_orders_patch_work_orders_request_body_status.py +0 -0
- /samsara/{maintenance/work_orders → work_orders}/types/work_orders_post_work_orders_request_body_category.py +0 -0
- /samsara/{maintenance/work_orders → work_orders}/types/work_orders_post_work_orders_request_body_priority.py +0 -0
- {samsara_api-3.0.0.dist-info → samsara_api-4.0.1.dist-info}/LICENSE +0 -0
- {samsara_api-3.0.0.dist-info → samsara_api-4.0.1.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,1381 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from ..core.api_error import ApiError
|
|
7
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ..core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ..core.pydantic_utilities import parse_obj_as
|
|
11
|
+
from ..core.request_options import RequestOptions
|
|
12
|
+
from ..errors.bad_gateway_error import BadGatewayError
|
|
13
|
+
from ..errors.gateway_timeout_error import GatewayTimeoutError
|
|
14
|
+
from ..errors.internal_server_error import InternalServerError
|
|
15
|
+
from ..errors.method_not_allowed_error import MethodNotAllowedError
|
|
16
|
+
from ..errors.not_found_error import NotFoundError
|
|
17
|
+
from ..errors.not_implemented_error import NotImplementedError
|
|
18
|
+
from ..errors.service_unavailable_error import ServiceUnavailableError
|
|
19
|
+
from ..errors.too_many_requests_error import TooManyRequestsError
|
|
20
|
+
from ..errors.unauthorized_error import UnauthorizedError
|
|
21
|
+
from ..types.hos_clocks_response import HosClocksResponse
|
|
22
|
+
from ..types.hos_daily_logs_get_hos_daily_logs_response_body import HosDailyLogsGetHosDailyLogsResponseBody
|
|
23
|
+
from ..types.hos_logs_response import HosLogsResponse
|
|
24
|
+
from ..types.hos_violations_get_hos_violations_response_body import HosViolationsGetHosViolationsResponseBody
|
|
25
|
+
from ..types.v_1_hos_authentication_logs_response import V1HosAuthenticationLogsResponse
|
|
26
|
+
from .types.get_hos_daily_logs_request_driver_activation_status import GetHosDailyLogsRequestDriverActivationStatus
|
|
27
|
+
|
|
28
|
+
# this is used as the default value for optional parameters
|
|
29
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class RawHoursOfServiceClient:
|
|
33
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
34
|
+
self._client_wrapper = client_wrapper
|
|
35
|
+
|
|
36
|
+
def get_hos_clocks(
|
|
37
|
+
self,
|
|
38
|
+
*,
|
|
39
|
+
tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
40
|
+
parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
41
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
42
|
+
after: typing.Optional[str] = None,
|
|
43
|
+
limit: typing.Optional[int] = None,
|
|
44
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
45
|
+
) -> HttpResponse[HosClocksResponse]:
|
|
46
|
+
"""
|
|
47
|
+
Get the current HOS status for all drivers. Note that this includes inactive as well as active drivers. The legacy version of this endpoint can be found at [samsara.com/api-legacy](https://www.samsara.com/api-legacy#operation/getFleetHosLogsSummary).
|
|
48
|
+
|
|
49
|
+
**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.
|
|
50
|
+
|
|
51
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
52
|
+
|
|
53
|
+
Parameters
|
|
54
|
+
----------
|
|
55
|
+
tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
56
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
57
|
+
|
|
58
|
+
parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
59
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
60
|
+
|
|
61
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
62
|
+
A filter on the data based on this comma-separated list of driver IDs. Example: `driverIds=1234,5678`
|
|
63
|
+
|
|
64
|
+
after : typing.Optional[str]
|
|
65
|
+
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.
|
|
66
|
+
|
|
67
|
+
limit : typing.Optional[int]
|
|
68
|
+
The limit for how many objects will be in the response. Default and max for this value is 512 objects.
|
|
69
|
+
|
|
70
|
+
request_options : typing.Optional[RequestOptions]
|
|
71
|
+
Request-specific configuration.
|
|
72
|
+
|
|
73
|
+
Returns
|
|
74
|
+
-------
|
|
75
|
+
HttpResponse[HosClocksResponse]
|
|
76
|
+
List of current HOS clock information for the specified drivers.
|
|
77
|
+
"""
|
|
78
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
79
|
+
"fleet/hos/clocks",
|
|
80
|
+
method="GET",
|
|
81
|
+
params={
|
|
82
|
+
"tagIds": tag_ids,
|
|
83
|
+
"parentTagIds": parent_tag_ids,
|
|
84
|
+
"driverIds": driver_ids,
|
|
85
|
+
"after": after,
|
|
86
|
+
"limit": limit,
|
|
87
|
+
},
|
|
88
|
+
request_options=request_options,
|
|
89
|
+
)
|
|
90
|
+
try:
|
|
91
|
+
if 200 <= _response.status_code < 300:
|
|
92
|
+
_data = typing.cast(
|
|
93
|
+
HosClocksResponse,
|
|
94
|
+
parse_obj_as(
|
|
95
|
+
type_=HosClocksResponse, # type: ignore
|
|
96
|
+
object_=_response.json(),
|
|
97
|
+
),
|
|
98
|
+
)
|
|
99
|
+
return HttpResponse(response=_response, data=_data)
|
|
100
|
+
_response_json = _response.json()
|
|
101
|
+
except JSONDecodeError:
|
|
102
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
103
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
104
|
+
|
|
105
|
+
def get_hos_daily_logs(
|
|
106
|
+
self,
|
|
107
|
+
*,
|
|
108
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
109
|
+
start_date: typing.Optional[str] = None,
|
|
110
|
+
end_date: typing.Optional[str] = None,
|
|
111
|
+
tag_ids: typing.Optional[str] = None,
|
|
112
|
+
parent_tag_ids: typing.Optional[str] = None,
|
|
113
|
+
driver_activation_status: typing.Optional[GetHosDailyLogsRequestDriverActivationStatus] = None,
|
|
114
|
+
after: typing.Optional[str] = None,
|
|
115
|
+
expand: typing.Optional[typing.Literal["vehicle"]] = None,
|
|
116
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
117
|
+
) -> HttpResponse[HosDailyLogsGetHosDailyLogsResponseBody]:
|
|
118
|
+
"""
|
|
119
|
+
Get summarized daily Hours of Service charts for the specified drivers.
|
|
120
|
+
|
|
121
|
+
The time range for a log is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
|
|
122
|
+
|
|
123
|
+
The `startDate` and `endDate` parameters indicate the date range you'd like to retrieve daily logs for. A daily log will be returned if its `startTime` is on any of the days within in this date range (inclusive of `startDate` and `endDate`).
|
|
124
|
+
|
|
125
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
126
|
+
|
|
127
|
+
If you are using the legacy version of this endpoint and looking for its documentation, you can find it [here](https://www.samsara.com/api-legacy#operation/getFleetDriversHosDailyLogs).
|
|
128
|
+
|
|
129
|
+
<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>).
|
|
130
|
+
|
|
131
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
**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.
|
|
135
|
+
|
|
136
|
+
Parameters
|
|
137
|
+
----------
|
|
138
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
139
|
+
A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
|
|
140
|
+
|
|
141
|
+
start_date : typing.Optional[str]
|
|
142
|
+
A start date in YYYY-MM-DD. This is a date only without an associated time. Example: `2019-06-13`. This is a required field
|
|
143
|
+
|
|
144
|
+
end_date : typing.Optional[str]
|
|
145
|
+
An end date in YYYY-MM-DD. This is a date only without an associated time. Must be greater than or equal to the start date. Example: `2019-07-21`. This is a required field
|
|
146
|
+
|
|
147
|
+
tag_ids : typing.Optional[str]
|
|
148
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
149
|
+
|
|
150
|
+
parent_tag_ids : typing.Optional[str]
|
|
151
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
152
|
+
|
|
153
|
+
driver_activation_status : typing.Optional[GetHosDailyLogsRequestDriverActivationStatus]
|
|
154
|
+
If value is `deactivated`, only drivers that are deactivated will appear in the response. This parameter will default to `active` if not provided (fetching only active drivers). Valid values: `active`, `deactivated`
|
|
155
|
+
|
|
156
|
+
after : typing.Optional[str]
|
|
157
|
+
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.
|
|
158
|
+
|
|
159
|
+
expand : typing.Optional[typing.Literal["vehicle"]]
|
|
160
|
+
Expands the specified value(s) in the response object. Expansion populates additional fields in an object, if supported. Unsupported fields are ignored. To expand multiple fields, input a comma-separated list.
|
|
161
|
+
|
|
162
|
+
Valid value: `vehicle` Valid values: `vehicle`
|
|
163
|
+
|
|
164
|
+
request_options : typing.Optional[RequestOptions]
|
|
165
|
+
Request-specific configuration.
|
|
166
|
+
|
|
167
|
+
Returns
|
|
168
|
+
-------
|
|
169
|
+
HttpResponse[HosDailyLogsGetHosDailyLogsResponseBody]
|
|
170
|
+
OK response.
|
|
171
|
+
"""
|
|
172
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
173
|
+
"fleet/hos/daily-logs",
|
|
174
|
+
method="GET",
|
|
175
|
+
params={
|
|
176
|
+
"driverIds": driver_ids,
|
|
177
|
+
"startDate": start_date,
|
|
178
|
+
"endDate": end_date,
|
|
179
|
+
"tagIds": tag_ids,
|
|
180
|
+
"parentTagIds": parent_tag_ids,
|
|
181
|
+
"driverActivationStatus": driver_activation_status,
|
|
182
|
+
"after": after,
|
|
183
|
+
"expand": expand,
|
|
184
|
+
},
|
|
185
|
+
request_options=request_options,
|
|
186
|
+
)
|
|
187
|
+
try:
|
|
188
|
+
if 200 <= _response.status_code < 300:
|
|
189
|
+
_data = typing.cast(
|
|
190
|
+
HosDailyLogsGetHosDailyLogsResponseBody,
|
|
191
|
+
parse_obj_as(
|
|
192
|
+
type_=HosDailyLogsGetHosDailyLogsResponseBody, # type: ignore
|
|
193
|
+
object_=_response.json(),
|
|
194
|
+
),
|
|
195
|
+
)
|
|
196
|
+
return HttpResponse(response=_response, data=_data)
|
|
197
|
+
if _response.status_code == 401:
|
|
198
|
+
raise UnauthorizedError(
|
|
199
|
+
headers=dict(_response.headers),
|
|
200
|
+
body=typing.cast(
|
|
201
|
+
typing.Optional[typing.Any],
|
|
202
|
+
parse_obj_as(
|
|
203
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
204
|
+
object_=_response.json(),
|
|
205
|
+
),
|
|
206
|
+
),
|
|
207
|
+
)
|
|
208
|
+
if _response.status_code == 404:
|
|
209
|
+
raise NotFoundError(
|
|
210
|
+
headers=dict(_response.headers),
|
|
211
|
+
body=typing.cast(
|
|
212
|
+
typing.Optional[typing.Any],
|
|
213
|
+
parse_obj_as(
|
|
214
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
215
|
+
object_=_response.json(),
|
|
216
|
+
),
|
|
217
|
+
),
|
|
218
|
+
)
|
|
219
|
+
if _response.status_code == 405:
|
|
220
|
+
raise MethodNotAllowedError(
|
|
221
|
+
headers=dict(_response.headers),
|
|
222
|
+
body=typing.cast(
|
|
223
|
+
typing.Optional[typing.Any],
|
|
224
|
+
parse_obj_as(
|
|
225
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
226
|
+
object_=_response.json(),
|
|
227
|
+
),
|
|
228
|
+
),
|
|
229
|
+
)
|
|
230
|
+
if _response.status_code == 429:
|
|
231
|
+
raise TooManyRequestsError(
|
|
232
|
+
headers=dict(_response.headers),
|
|
233
|
+
body=typing.cast(
|
|
234
|
+
typing.Optional[typing.Any],
|
|
235
|
+
parse_obj_as(
|
|
236
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
237
|
+
object_=_response.json(),
|
|
238
|
+
),
|
|
239
|
+
),
|
|
240
|
+
)
|
|
241
|
+
if _response.status_code == 500:
|
|
242
|
+
raise InternalServerError(
|
|
243
|
+
headers=dict(_response.headers),
|
|
244
|
+
body=typing.cast(
|
|
245
|
+
typing.Optional[typing.Any],
|
|
246
|
+
parse_obj_as(
|
|
247
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
248
|
+
object_=_response.json(),
|
|
249
|
+
),
|
|
250
|
+
),
|
|
251
|
+
)
|
|
252
|
+
if _response.status_code == 501:
|
|
253
|
+
raise NotImplementedError(
|
|
254
|
+
headers=dict(_response.headers),
|
|
255
|
+
body=typing.cast(
|
|
256
|
+
typing.Optional[typing.Any],
|
|
257
|
+
parse_obj_as(
|
|
258
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
259
|
+
object_=_response.json(),
|
|
260
|
+
),
|
|
261
|
+
),
|
|
262
|
+
)
|
|
263
|
+
if _response.status_code == 502:
|
|
264
|
+
raise BadGatewayError(
|
|
265
|
+
headers=dict(_response.headers),
|
|
266
|
+
body=typing.cast(
|
|
267
|
+
typing.Optional[typing.Any],
|
|
268
|
+
parse_obj_as(
|
|
269
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
270
|
+
object_=_response.json(),
|
|
271
|
+
),
|
|
272
|
+
),
|
|
273
|
+
)
|
|
274
|
+
if _response.status_code == 503:
|
|
275
|
+
raise ServiceUnavailableError(
|
|
276
|
+
headers=dict(_response.headers),
|
|
277
|
+
body=typing.cast(
|
|
278
|
+
typing.Optional[typing.Any],
|
|
279
|
+
parse_obj_as(
|
|
280
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
281
|
+
object_=_response.json(),
|
|
282
|
+
),
|
|
283
|
+
),
|
|
284
|
+
)
|
|
285
|
+
if _response.status_code == 504:
|
|
286
|
+
raise GatewayTimeoutError(
|
|
287
|
+
headers=dict(_response.headers),
|
|
288
|
+
body=typing.cast(
|
|
289
|
+
typing.Optional[typing.Any],
|
|
290
|
+
parse_obj_as(
|
|
291
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
292
|
+
object_=_response.json(),
|
|
293
|
+
),
|
|
294
|
+
),
|
|
295
|
+
)
|
|
296
|
+
_response_json = _response.json()
|
|
297
|
+
except JSONDecodeError:
|
|
298
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
299
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
300
|
+
|
|
301
|
+
def get_hos_logs(
|
|
302
|
+
self,
|
|
303
|
+
*,
|
|
304
|
+
tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
305
|
+
parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
306
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
307
|
+
start_time: typing.Optional[str] = None,
|
|
308
|
+
end_time: typing.Optional[str] = None,
|
|
309
|
+
after: typing.Optional[str] = None,
|
|
310
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
311
|
+
) -> HttpResponse[HosLogsResponse]:
|
|
312
|
+
"""
|
|
313
|
+
Returns HOS logs between a given `startTime` and `endTime`. The logs can be further filtered using tags or by providing a list of driver IDs (including external IDs). The legacy version of this endpoint can be found at [samsara.com/api-legacy](https://www.samsara.com/api-legacy#operation/getFleetHosLogs).
|
|
314
|
+
|
|
315
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
316
|
+
|
|
317
|
+
<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>).
|
|
318
|
+
|
|
319
|
+
**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.
|
|
320
|
+
|
|
321
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
322
|
+
|
|
323
|
+
Parameters
|
|
324
|
+
----------
|
|
325
|
+
tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
326
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
327
|
+
|
|
328
|
+
parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
329
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
330
|
+
|
|
331
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
332
|
+
A filter on the data based on this comma-separated list of driver IDs. Example: `driverIds=1234,5678`
|
|
333
|
+
|
|
334
|
+
start_time : typing.Optional[str]
|
|
335
|
+
A start time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
336
|
+
|
|
337
|
+
end_time : typing.Optional[str]
|
|
338
|
+
An end time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
339
|
+
|
|
340
|
+
after : typing.Optional[str]
|
|
341
|
+
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.
|
|
342
|
+
|
|
343
|
+
request_options : typing.Optional[RequestOptions]
|
|
344
|
+
Request-specific configuration.
|
|
345
|
+
|
|
346
|
+
Returns
|
|
347
|
+
-------
|
|
348
|
+
HttpResponse[HosLogsResponse]
|
|
349
|
+
List of the last known HOS log entries for the specified drivers.
|
|
350
|
+
"""
|
|
351
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
352
|
+
"fleet/hos/logs",
|
|
353
|
+
method="GET",
|
|
354
|
+
params={
|
|
355
|
+
"tagIds": tag_ids,
|
|
356
|
+
"parentTagIds": parent_tag_ids,
|
|
357
|
+
"driverIds": driver_ids,
|
|
358
|
+
"startTime": start_time,
|
|
359
|
+
"endTime": end_time,
|
|
360
|
+
"after": after,
|
|
361
|
+
},
|
|
362
|
+
request_options=request_options,
|
|
363
|
+
)
|
|
364
|
+
try:
|
|
365
|
+
if 200 <= _response.status_code < 300:
|
|
366
|
+
_data = typing.cast(
|
|
367
|
+
HosLogsResponse,
|
|
368
|
+
parse_obj_as(
|
|
369
|
+
type_=HosLogsResponse, # type: ignore
|
|
370
|
+
object_=_response.json(),
|
|
371
|
+
),
|
|
372
|
+
)
|
|
373
|
+
return HttpResponse(response=_response, data=_data)
|
|
374
|
+
_response_json = _response.json()
|
|
375
|
+
except JSONDecodeError:
|
|
376
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
377
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
378
|
+
|
|
379
|
+
def get_hos_violations(
|
|
380
|
+
self,
|
|
381
|
+
*,
|
|
382
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
383
|
+
start_time: typing.Optional[str] = None,
|
|
384
|
+
end_time: typing.Optional[str] = None,
|
|
385
|
+
tag_ids: typing.Optional[str] = None,
|
|
386
|
+
parent_tag_ids: typing.Optional[str] = None,
|
|
387
|
+
types: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
388
|
+
after: typing.Optional[str] = None,
|
|
389
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
390
|
+
) -> HttpResponse[HosViolationsGetHosViolationsResponseBody]:
|
|
391
|
+
"""
|
|
392
|
+
Get active Hours of Service violations for the specified drivers.
|
|
393
|
+
|
|
394
|
+
The day object time range for a violation is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
|
|
395
|
+
|
|
396
|
+
The `startTime` and `endTime` parameters indicate the datetime range you'd like to retrieve violations for. A violation will be returned if its `violationStartTime` falls within this datetime range (inclusive of `startTime` and `endTime`)
|
|
397
|
+
|
|
398
|
+
**Note:** The following are all the violation types with a short explanation about what each of them means: `californiaMealbreakMissed` (Missed California Meal Break), `cycleHoursOn` (Cycle Limit), `cycleOffHoursAfterOnDutyHours` (Cycle 2 Limit), `dailyDrivingHours` (Daily Driving Limit), `dailyOffDutyDeferralAddToDay2Consecutive` (Daily Off-Duty Deferral: Add To Day2 Consecutive), `dailyOffDutyDeferralNotPartMandatory` (Daily Off-Duty Deferral: Not Part Of Mandatory), `dailyOffDutyDeferralTwoDayDrivingLimit` (Daily Off-Duty Deferral: 2 Day Driving Limit), `dailyOffDutyDeferralTwoDayOffDuty` (Daily Off-Duty Deferral: 2 Day Off Duty), `dailyOffDutyNonResetHours` (Daily Off-Duty Time: Non-Reset), `dailyOffDutyTotalHours` (Daily Off-Duty Time), `dailyOnDutyHours` (Daily On-Duty Limit), `mandatory24HoursOffDuty` (24 Hours of Off Duty required), `restbreakMissed` (Missed Rest Break), `shiftDrivingHours` (Shift Driving Limit), `shiftHours` (Shift Duty Limit), `shiftOnDutyHours` (Shift On-Duty Limit), `unsubmittedLogs` (Missing Driver Certification)
|
|
399
|
+
|
|
400
|
+
<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>).
|
|
401
|
+
|
|
402
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
**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.
|
|
406
|
+
|
|
407
|
+
Parameters
|
|
408
|
+
----------
|
|
409
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
410
|
+
A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
|
|
411
|
+
|
|
412
|
+
start_time : typing.Optional[str]
|
|
413
|
+
A start time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
414
|
+
|
|
415
|
+
end_time : typing.Optional[str]
|
|
416
|
+
An end time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
417
|
+
|
|
418
|
+
tag_ids : typing.Optional[str]
|
|
419
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
420
|
+
|
|
421
|
+
parent_tag_ids : typing.Optional[str]
|
|
422
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
423
|
+
|
|
424
|
+
types : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
425
|
+
A filter on violations data based on the violation type enum. Supported types: `NONE, californiaMealbreakMissed, cycleHoursOn, cycleOffHoursAfterOnDutyHours, dailyDrivingHours, dailyOffDutyDeferralAddToDay2Consecutive, dailyOffDutyDeferralNotPartMandatory, dailyOffDutyDeferralTwoDayDrivingLimit, dailyOffDutyDeferralTwoDayOffDuty, dailyOffDutyNonResetHours, dailyOffDutyTotalHours, dailyOnDutyHours, mandatory24HoursOffDuty, restbreakMissed, shiftDrivingHours, shiftHours, shiftOnDutyHours, unsubmittedLogs`
|
|
426
|
+
|
|
427
|
+
after : typing.Optional[str]
|
|
428
|
+
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.
|
|
429
|
+
|
|
430
|
+
request_options : typing.Optional[RequestOptions]
|
|
431
|
+
Request-specific configuration.
|
|
432
|
+
|
|
433
|
+
Returns
|
|
434
|
+
-------
|
|
435
|
+
HttpResponse[HosViolationsGetHosViolationsResponseBody]
|
|
436
|
+
OK response.
|
|
437
|
+
"""
|
|
438
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
439
|
+
"fleet/hos/violations",
|
|
440
|
+
method="GET",
|
|
441
|
+
params={
|
|
442
|
+
"driverIds": driver_ids,
|
|
443
|
+
"startTime": start_time,
|
|
444
|
+
"endTime": end_time,
|
|
445
|
+
"tagIds": tag_ids,
|
|
446
|
+
"parentTagIds": parent_tag_ids,
|
|
447
|
+
"types": types,
|
|
448
|
+
"after": after,
|
|
449
|
+
},
|
|
450
|
+
request_options=request_options,
|
|
451
|
+
)
|
|
452
|
+
try:
|
|
453
|
+
if 200 <= _response.status_code < 300:
|
|
454
|
+
_data = typing.cast(
|
|
455
|
+
HosViolationsGetHosViolationsResponseBody,
|
|
456
|
+
parse_obj_as(
|
|
457
|
+
type_=HosViolationsGetHosViolationsResponseBody, # type: ignore
|
|
458
|
+
object_=_response.json(),
|
|
459
|
+
),
|
|
460
|
+
)
|
|
461
|
+
return HttpResponse(response=_response, data=_data)
|
|
462
|
+
if _response.status_code == 401:
|
|
463
|
+
raise UnauthorizedError(
|
|
464
|
+
headers=dict(_response.headers),
|
|
465
|
+
body=typing.cast(
|
|
466
|
+
typing.Optional[typing.Any],
|
|
467
|
+
parse_obj_as(
|
|
468
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
469
|
+
object_=_response.json(),
|
|
470
|
+
),
|
|
471
|
+
),
|
|
472
|
+
)
|
|
473
|
+
if _response.status_code == 404:
|
|
474
|
+
raise NotFoundError(
|
|
475
|
+
headers=dict(_response.headers),
|
|
476
|
+
body=typing.cast(
|
|
477
|
+
typing.Optional[typing.Any],
|
|
478
|
+
parse_obj_as(
|
|
479
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
480
|
+
object_=_response.json(),
|
|
481
|
+
),
|
|
482
|
+
),
|
|
483
|
+
)
|
|
484
|
+
if _response.status_code == 405:
|
|
485
|
+
raise MethodNotAllowedError(
|
|
486
|
+
headers=dict(_response.headers),
|
|
487
|
+
body=typing.cast(
|
|
488
|
+
typing.Optional[typing.Any],
|
|
489
|
+
parse_obj_as(
|
|
490
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
491
|
+
object_=_response.json(),
|
|
492
|
+
),
|
|
493
|
+
),
|
|
494
|
+
)
|
|
495
|
+
if _response.status_code == 429:
|
|
496
|
+
raise TooManyRequestsError(
|
|
497
|
+
headers=dict(_response.headers),
|
|
498
|
+
body=typing.cast(
|
|
499
|
+
typing.Optional[typing.Any],
|
|
500
|
+
parse_obj_as(
|
|
501
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
502
|
+
object_=_response.json(),
|
|
503
|
+
),
|
|
504
|
+
),
|
|
505
|
+
)
|
|
506
|
+
if _response.status_code == 500:
|
|
507
|
+
raise InternalServerError(
|
|
508
|
+
headers=dict(_response.headers),
|
|
509
|
+
body=typing.cast(
|
|
510
|
+
typing.Optional[typing.Any],
|
|
511
|
+
parse_obj_as(
|
|
512
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
513
|
+
object_=_response.json(),
|
|
514
|
+
),
|
|
515
|
+
),
|
|
516
|
+
)
|
|
517
|
+
if _response.status_code == 501:
|
|
518
|
+
raise NotImplementedError(
|
|
519
|
+
headers=dict(_response.headers),
|
|
520
|
+
body=typing.cast(
|
|
521
|
+
typing.Optional[typing.Any],
|
|
522
|
+
parse_obj_as(
|
|
523
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
524
|
+
object_=_response.json(),
|
|
525
|
+
),
|
|
526
|
+
),
|
|
527
|
+
)
|
|
528
|
+
if _response.status_code == 502:
|
|
529
|
+
raise BadGatewayError(
|
|
530
|
+
headers=dict(_response.headers),
|
|
531
|
+
body=typing.cast(
|
|
532
|
+
typing.Optional[typing.Any],
|
|
533
|
+
parse_obj_as(
|
|
534
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
535
|
+
object_=_response.json(),
|
|
536
|
+
),
|
|
537
|
+
),
|
|
538
|
+
)
|
|
539
|
+
if _response.status_code == 503:
|
|
540
|
+
raise ServiceUnavailableError(
|
|
541
|
+
headers=dict(_response.headers),
|
|
542
|
+
body=typing.cast(
|
|
543
|
+
typing.Optional[typing.Any],
|
|
544
|
+
parse_obj_as(
|
|
545
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
546
|
+
object_=_response.json(),
|
|
547
|
+
),
|
|
548
|
+
),
|
|
549
|
+
)
|
|
550
|
+
if _response.status_code == 504:
|
|
551
|
+
raise GatewayTimeoutError(
|
|
552
|
+
headers=dict(_response.headers),
|
|
553
|
+
body=typing.cast(
|
|
554
|
+
typing.Optional[typing.Any],
|
|
555
|
+
parse_obj_as(
|
|
556
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
557
|
+
object_=_response.json(),
|
|
558
|
+
),
|
|
559
|
+
),
|
|
560
|
+
)
|
|
561
|
+
_response_json = _response.json()
|
|
562
|
+
except JSONDecodeError:
|
|
563
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
564
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
565
|
+
|
|
566
|
+
def set_current_duty_status(
|
|
567
|
+
self,
|
|
568
|
+
driver_id: int,
|
|
569
|
+
*,
|
|
570
|
+
duty_status: str,
|
|
571
|
+
location: typing.Optional[str] = OMIT,
|
|
572
|
+
remark: typing.Optional[str] = OMIT,
|
|
573
|
+
status_change_at_ms: typing.Optional[int] = OMIT,
|
|
574
|
+
vehicle_id: typing.Optional[int] = OMIT,
|
|
575
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
576
|
+
) -> HttpResponse[None]:
|
|
577
|
+
"""
|
|
578
|
+
<n class="warning">
|
|
579
|
+
<nh>
|
|
580
|
+
<i class="fa fa-exclamation-circle"></i>
|
|
581
|
+
This endpoint is still on our legacy API.
|
|
582
|
+
</nh>
|
|
583
|
+
</n>
|
|
584
|
+
|
|
585
|
+
Set an individual driver’s current duty status to 'On Duty' or 'Off Duty'.
|
|
586
|
+
|
|
587
|
+
To ensure compliance with the ELD Mandate, only authenticated drivers can make direct duty status changes on their own logbook. Any system external to the Samsara Driver App using this endpoint to trigger duty status changes must ensure that such changes are only triggered directly by the driver in question and that the driver has been properly authenticated. This endpoint should not be used to algorithmically trigger duty status changes nor should it be used by personnel besides the driver to trigger duty status changes on the driver’s behalf. Carriers and their drivers are ultimately responsible for maintaining accurate logs and should confirm that their use of the endpoint is compliant with the ELD Mandate.
|
|
588
|
+
|
|
589
|
+
**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.
|
|
590
|
+
|
|
591
|
+
To use this endpoint, select **Write ELD Hours of Service (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
592
|
+
|
|
593
|
+
Parameters
|
|
594
|
+
----------
|
|
595
|
+
driver_id : int
|
|
596
|
+
ID of the driver for whom the duty status is being set.
|
|
597
|
+
|
|
598
|
+
duty_status : str
|
|
599
|
+
Duty status to set the driver to. The only supported values are 'ON_DUTY' and 'OFF_DUTY'.
|
|
600
|
+
|
|
601
|
+
location : typing.Optional[str]
|
|
602
|
+
Location to associate the duty status change with.
|
|
603
|
+
|
|
604
|
+
remark : typing.Optional[str]
|
|
605
|
+
Remark to associate the duty status change with.
|
|
606
|
+
|
|
607
|
+
status_change_at_ms : typing.Optional[int]
|
|
608
|
+
Timestamp that the duty status will begin at specified in milliseconds UNIX time. Defaults to the current time if left blank. This can only be set to up to 8 hours in the past.
|
|
609
|
+
|
|
610
|
+
vehicle_id : typing.Optional[int]
|
|
611
|
+
Vehicle ID to associate the duty status change with.
|
|
612
|
+
|
|
613
|
+
request_options : typing.Optional[RequestOptions]
|
|
614
|
+
Request-specific configuration.
|
|
615
|
+
|
|
616
|
+
Returns
|
|
617
|
+
-------
|
|
618
|
+
HttpResponse[None]
|
|
619
|
+
"""
|
|
620
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
621
|
+
f"v1/fleet/drivers/{jsonable_encoder(driver_id)}/hos/duty_status",
|
|
622
|
+
method="POST",
|
|
623
|
+
json={
|
|
624
|
+
"duty_status": duty_status,
|
|
625
|
+
"location": location,
|
|
626
|
+
"remark": remark,
|
|
627
|
+
"status_change_at_ms": status_change_at_ms,
|
|
628
|
+
"vehicle_id": vehicle_id,
|
|
629
|
+
},
|
|
630
|
+
headers={
|
|
631
|
+
"content-type": "application/json",
|
|
632
|
+
},
|
|
633
|
+
request_options=request_options,
|
|
634
|
+
omit=OMIT,
|
|
635
|
+
)
|
|
636
|
+
try:
|
|
637
|
+
if 200 <= _response.status_code < 300:
|
|
638
|
+
return HttpResponse(response=_response, data=None)
|
|
639
|
+
_response_json = _response.json()
|
|
640
|
+
except JSONDecodeError:
|
|
641
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
642
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
643
|
+
|
|
644
|
+
def v_1_get_fleet_hos_authentication_logs(
|
|
645
|
+
self, *, driver_id: int, start_ms: int, end_ms: int, request_options: typing.Optional[RequestOptions] = None
|
|
646
|
+
) -> HttpResponse[V1HosAuthenticationLogsResponse]:
|
|
647
|
+
"""
|
|
648
|
+
<n class="warning">
|
|
649
|
+
<nh>
|
|
650
|
+
<i class="fa fa-exclamation-circle"></i>
|
|
651
|
+
This endpoint is still on our legacy API.
|
|
652
|
+
</nh>
|
|
653
|
+
</n>
|
|
654
|
+
|
|
655
|
+
Get the HOS (hours of service) signin and signout logs for the specified driver. The response includes 4 fields that are now deprecated.
|
|
656
|
+
|
|
657
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
658
|
+
|
|
659
|
+
**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.
|
|
660
|
+
|
|
661
|
+
To use this endpoint, select **Read ELD Hours of Service (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
662
|
+
|
|
663
|
+
Parameters
|
|
664
|
+
----------
|
|
665
|
+
driver_id : int
|
|
666
|
+
Driver ID to query.
|
|
667
|
+
|
|
668
|
+
start_ms : int
|
|
669
|
+
Beginning of the time range, specified in milliseconds UNIX time.
|
|
670
|
+
|
|
671
|
+
end_ms : int
|
|
672
|
+
End of the time range, specified in milliseconds UNIX time.
|
|
673
|
+
|
|
674
|
+
request_options : typing.Optional[RequestOptions]
|
|
675
|
+
Request-specific configuration.
|
|
676
|
+
|
|
677
|
+
Returns
|
|
678
|
+
-------
|
|
679
|
+
HttpResponse[V1HosAuthenticationLogsResponse]
|
|
680
|
+
HOS authentication logs for the specified driver.
|
|
681
|
+
"""
|
|
682
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
683
|
+
"v1/fleet/hos_authentication_logs",
|
|
684
|
+
method="GET",
|
|
685
|
+
params={
|
|
686
|
+
"driverId": driver_id,
|
|
687
|
+
"startMs": start_ms,
|
|
688
|
+
"endMs": end_ms,
|
|
689
|
+
},
|
|
690
|
+
request_options=request_options,
|
|
691
|
+
)
|
|
692
|
+
try:
|
|
693
|
+
if 200 <= _response.status_code < 300:
|
|
694
|
+
_data = typing.cast(
|
|
695
|
+
V1HosAuthenticationLogsResponse,
|
|
696
|
+
parse_obj_as(
|
|
697
|
+
type_=V1HosAuthenticationLogsResponse, # type: ignore
|
|
698
|
+
object_=_response.json(),
|
|
699
|
+
),
|
|
700
|
+
)
|
|
701
|
+
return HttpResponse(response=_response, data=_data)
|
|
702
|
+
_response_json = _response.json()
|
|
703
|
+
except JSONDecodeError:
|
|
704
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
705
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
class AsyncRawHoursOfServiceClient:
|
|
709
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
710
|
+
self._client_wrapper = client_wrapper
|
|
711
|
+
|
|
712
|
+
async def get_hos_clocks(
|
|
713
|
+
self,
|
|
714
|
+
*,
|
|
715
|
+
tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
716
|
+
parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
717
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
718
|
+
after: typing.Optional[str] = None,
|
|
719
|
+
limit: typing.Optional[int] = None,
|
|
720
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
721
|
+
) -> AsyncHttpResponse[HosClocksResponse]:
|
|
722
|
+
"""
|
|
723
|
+
Get the current HOS status for all drivers. Note that this includes inactive as well as active drivers. The legacy version of this endpoint can be found at [samsara.com/api-legacy](https://www.samsara.com/api-legacy#operation/getFleetHosLogsSummary).
|
|
724
|
+
|
|
725
|
+
**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.
|
|
726
|
+
|
|
727
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
728
|
+
|
|
729
|
+
Parameters
|
|
730
|
+
----------
|
|
731
|
+
tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
732
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
733
|
+
|
|
734
|
+
parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
735
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
736
|
+
|
|
737
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
738
|
+
A filter on the data based on this comma-separated list of driver IDs. Example: `driverIds=1234,5678`
|
|
739
|
+
|
|
740
|
+
after : typing.Optional[str]
|
|
741
|
+
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.
|
|
742
|
+
|
|
743
|
+
limit : typing.Optional[int]
|
|
744
|
+
The limit for how many objects will be in the response. Default and max for this value is 512 objects.
|
|
745
|
+
|
|
746
|
+
request_options : typing.Optional[RequestOptions]
|
|
747
|
+
Request-specific configuration.
|
|
748
|
+
|
|
749
|
+
Returns
|
|
750
|
+
-------
|
|
751
|
+
AsyncHttpResponse[HosClocksResponse]
|
|
752
|
+
List of current HOS clock information for the specified drivers.
|
|
753
|
+
"""
|
|
754
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
755
|
+
"fleet/hos/clocks",
|
|
756
|
+
method="GET",
|
|
757
|
+
params={
|
|
758
|
+
"tagIds": tag_ids,
|
|
759
|
+
"parentTagIds": parent_tag_ids,
|
|
760
|
+
"driverIds": driver_ids,
|
|
761
|
+
"after": after,
|
|
762
|
+
"limit": limit,
|
|
763
|
+
},
|
|
764
|
+
request_options=request_options,
|
|
765
|
+
)
|
|
766
|
+
try:
|
|
767
|
+
if 200 <= _response.status_code < 300:
|
|
768
|
+
_data = typing.cast(
|
|
769
|
+
HosClocksResponse,
|
|
770
|
+
parse_obj_as(
|
|
771
|
+
type_=HosClocksResponse, # type: ignore
|
|
772
|
+
object_=_response.json(),
|
|
773
|
+
),
|
|
774
|
+
)
|
|
775
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
776
|
+
_response_json = _response.json()
|
|
777
|
+
except JSONDecodeError:
|
|
778
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
779
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
780
|
+
|
|
781
|
+
async def get_hos_daily_logs(
|
|
782
|
+
self,
|
|
783
|
+
*,
|
|
784
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
785
|
+
start_date: typing.Optional[str] = None,
|
|
786
|
+
end_date: typing.Optional[str] = None,
|
|
787
|
+
tag_ids: typing.Optional[str] = None,
|
|
788
|
+
parent_tag_ids: typing.Optional[str] = None,
|
|
789
|
+
driver_activation_status: typing.Optional[GetHosDailyLogsRequestDriverActivationStatus] = None,
|
|
790
|
+
after: typing.Optional[str] = None,
|
|
791
|
+
expand: typing.Optional[typing.Literal["vehicle"]] = None,
|
|
792
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
793
|
+
) -> AsyncHttpResponse[HosDailyLogsGetHosDailyLogsResponseBody]:
|
|
794
|
+
"""
|
|
795
|
+
Get summarized daily Hours of Service charts for the specified drivers.
|
|
796
|
+
|
|
797
|
+
The time range for a log is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
|
|
798
|
+
|
|
799
|
+
The `startDate` and `endDate` parameters indicate the date range you'd like to retrieve daily logs for. A daily log will be returned if its `startTime` is on any of the days within in this date range (inclusive of `startDate` and `endDate`).
|
|
800
|
+
|
|
801
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
802
|
+
|
|
803
|
+
If you are using the legacy version of this endpoint and looking for its documentation, you can find it [here](https://www.samsara.com/api-legacy#operation/getFleetDriversHosDailyLogs).
|
|
804
|
+
|
|
805
|
+
<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>).
|
|
806
|
+
|
|
807
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
**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.
|
|
811
|
+
|
|
812
|
+
Parameters
|
|
813
|
+
----------
|
|
814
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
815
|
+
A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
|
|
816
|
+
|
|
817
|
+
start_date : typing.Optional[str]
|
|
818
|
+
A start date in YYYY-MM-DD. This is a date only without an associated time. Example: `2019-06-13`. This is a required field
|
|
819
|
+
|
|
820
|
+
end_date : typing.Optional[str]
|
|
821
|
+
An end date in YYYY-MM-DD. This is a date only without an associated time. Must be greater than or equal to the start date. Example: `2019-07-21`. This is a required field
|
|
822
|
+
|
|
823
|
+
tag_ids : typing.Optional[str]
|
|
824
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
825
|
+
|
|
826
|
+
parent_tag_ids : typing.Optional[str]
|
|
827
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
828
|
+
|
|
829
|
+
driver_activation_status : typing.Optional[GetHosDailyLogsRequestDriverActivationStatus]
|
|
830
|
+
If value is `deactivated`, only drivers that are deactivated will appear in the response. This parameter will default to `active` if not provided (fetching only active drivers). Valid values: `active`, `deactivated`
|
|
831
|
+
|
|
832
|
+
after : typing.Optional[str]
|
|
833
|
+
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.
|
|
834
|
+
|
|
835
|
+
expand : typing.Optional[typing.Literal["vehicle"]]
|
|
836
|
+
Expands the specified value(s) in the response object. Expansion populates additional fields in an object, if supported. Unsupported fields are ignored. To expand multiple fields, input a comma-separated list.
|
|
837
|
+
|
|
838
|
+
Valid value: `vehicle` Valid values: `vehicle`
|
|
839
|
+
|
|
840
|
+
request_options : typing.Optional[RequestOptions]
|
|
841
|
+
Request-specific configuration.
|
|
842
|
+
|
|
843
|
+
Returns
|
|
844
|
+
-------
|
|
845
|
+
AsyncHttpResponse[HosDailyLogsGetHosDailyLogsResponseBody]
|
|
846
|
+
OK response.
|
|
847
|
+
"""
|
|
848
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
849
|
+
"fleet/hos/daily-logs",
|
|
850
|
+
method="GET",
|
|
851
|
+
params={
|
|
852
|
+
"driverIds": driver_ids,
|
|
853
|
+
"startDate": start_date,
|
|
854
|
+
"endDate": end_date,
|
|
855
|
+
"tagIds": tag_ids,
|
|
856
|
+
"parentTagIds": parent_tag_ids,
|
|
857
|
+
"driverActivationStatus": driver_activation_status,
|
|
858
|
+
"after": after,
|
|
859
|
+
"expand": expand,
|
|
860
|
+
},
|
|
861
|
+
request_options=request_options,
|
|
862
|
+
)
|
|
863
|
+
try:
|
|
864
|
+
if 200 <= _response.status_code < 300:
|
|
865
|
+
_data = typing.cast(
|
|
866
|
+
HosDailyLogsGetHosDailyLogsResponseBody,
|
|
867
|
+
parse_obj_as(
|
|
868
|
+
type_=HosDailyLogsGetHosDailyLogsResponseBody, # type: ignore
|
|
869
|
+
object_=_response.json(),
|
|
870
|
+
),
|
|
871
|
+
)
|
|
872
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
873
|
+
if _response.status_code == 401:
|
|
874
|
+
raise UnauthorizedError(
|
|
875
|
+
headers=dict(_response.headers),
|
|
876
|
+
body=typing.cast(
|
|
877
|
+
typing.Optional[typing.Any],
|
|
878
|
+
parse_obj_as(
|
|
879
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
880
|
+
object_=_response.json(),
|
|
881
|
+
),
|
|
882
|
+
),
|
|
883
|
+
)
|
|
884
|
+
if _response.status_code == 404:
|
|
885
|
+
raise NotFoundError(
|
|
886
|
+
headers=dict(_response.headers),
|
|
887
|
+
body=typing.cast(
|
|
888
|
+
typing.Optional[typing.Any],
|
|
889
|
+
parse_obj_as(
|
|
890
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
891
|
+
object_=_response.json(),
|
|
892
|
+
),
|
|
893
|
+
),
|
|
894
|
+
)
|
|
895
|
+
if _response.status_code == 405:
|
|
896
|
+
raise MethodNotAllowedError(
|
|
897
|
+
headers=dict(_response.headers),
|
|
898
|
+
body=typing.cast(
|
|
899
|
+
typing.Optional[typing.Any],
|
|
900
|
+
parse_obj_as(
|
|
901
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
902
|
+
object_=_response.json(),
|
|
903
|
+
),
|
|
904
|
+
),
|
|
905
|
+
)
|
|
906
|
+
if _response.status_code == 429:
|
|
907
|
+
raise TooManyRequestsError(
|
|
908
|
+
headers=dict(_response.headers),
|
|
909
|
+
body=typing.cast(
|
|
910
|
+
typing.Optional[typing.Any],
|
|
911
|
+
parse_obj_as(
|
|
912
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
913
|
+
object_=_response.json(),
|
|
914
|
+
),
|
|
915
|
+
),
|
|
916
|
+
)
|
|
917
|
+
if _response.status_code == 500:
|
|
918
|
+
raise InternalServerError(
|
|
919
|
+
headers=dict(_response.headers),
|
|
920
|
+
body=typing.cast(
|
|
921
|
+
typing.Optional[typing.Any],
|
|
922
|
+
parse_obj_as(
|
|
923
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
924
|
+
object_=_response.json(),
|
|
925
|
+
),
|
|
926
|
+
),
|
|
927
|
+
)
|
|
928
|
+
if _response.status_code == 501:
|
|
929
|
+
raise NotImplementedError(
|
|
930
|
+
headers=dict(_response.headers),
|
|
931
|
+
body=typing.cast(
|
|
932
|
+
typing.Optional[typing.Any],
|
|
933
|
+
parse_obj_as(
|
|
934
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
935
|
+
object_=_response.json(),
|
|
936
|
+
),
|
|
937
|
+
),
|
|
938
|
+
)
|
|
939
|
+
if _response.status_code == 502:
|
|
940
|
+
raise BadGatewayError(
|
|
941
|
+
headers=dict(_response.headers),
|
|
942
|
+
body=typing.cast(
|
|
943
|
+
typing.Optional[typing.Any],
|
|
944
|
+
parse_obj_as(
|
|
945
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
946
|
+
object_=_response.json(),
|
|
947
|
+
),
|
|
948
|
+
),
|
|
949
|
+
)
|
|
950
|
+
if _response.status_code == 503:
|
|
951
|
+
raise ServiceUnavailableError(
|
|
952
|
+
headers=dict(_response.headers),
|
|
953
|
+
body=typing.cast(
|
|
954
|
+
typing.Optional[typing.Any],
|
|
955
|
+
parse_obj_as(
|
|
956
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
957
|
+
object_=_response.json(),
|
|
958
|
+
),
|
|
959
|
+
),
|
|
960
|
+
)
|
|
961
|
+
if _response.status_code == 504:
|
|
962
|
+
raise GatewayTimeoutError(
|
|
963
|
+
headers=dict(_response.headers),
|
|
964
|
+
body=typing.cast(
|
|
965
|
+
typing.Optional[typing.Any],
|
|
966
|
+
parse_obj_as(
|
|
967
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
968
|
+
object_=_response.json(),
|
|
969
|
+
),
|
|
970
|
+
),
|
|
971
|
+
)
|
|
972
|
+
_response_json = _response.json()
|
|
973
|
+
except JSONDecodeError:
|
|
974
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
975
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
976
|
+
|
|
977
|
+
async def get_hos_logs(
|
|
978
|
+
self,
|
|
979
|
+
*,
|
|
980
|
+
tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
981
|
+
parent_tag_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
982
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
983
|
+
start_time: typing.Optional[str] = None,
|
|
984
|
+
end_time: typing.Optional[str] = None,
|
|
985
|
+
after: typing.Optional[str] = None,
|
|
986
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
987
|
+
) -> AsyncHttpResponse[HosLogsResponse]:
|
|
988
|
+
"""
|
|
989
|
+
Returns HOS logs between a given `startTime` and `endTime`. The logs can be further filtered using tags or by providing a list of driver IDs (including external IDs). The legacy version of this endpoint can be found at [samsara.com/api-legacy](https://www.samsara.com/api-legacy#operation/getFleetHosLogs).
|
|
990
|
+
|
|
991
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
992
|
+
|
|
993
|
+
<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>).
|
|
994
|
+
|
|
995
|
+
**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.
|
|
996
|
+
|
|
997
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
998
|
+
|
|
999
|
+
Parameters
|
|
1000
|
+
----------
|
|
1001
|
+
tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1002
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
1003
|
+
|
|
1004
|
+
parent_tag_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1005
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
1006
|
+
|
|
1007
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1008
|
+
A filter on the data based on this comma-separated list of driver IDs. Example: `driverIds=1234,5678`
|
|
1009
|
+
|
|
1010
|
+
start_time : typing.Optional[str]
|
|
1011
|
+
A start time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
1012
|
+
|
|
1013
|
+
end_time : typing.Optional[str]
|
|
1014
|
+
An end time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
1015
|
+
|
|
1016
|
+
after : typing.Optional[str]
|
|
1017
|
+
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.
|
|
1018
|
+
|
|
1019
|
+
request_options : typing.Optional[RequestOptions]
|
|
1020
|
+
Request-specific configuration.
|
|
1021
|
+
|
|
1022
|
+
Returns
|
|
1023
|
+
-------
|
|
1024
|
+
AsyncHttpResponse[HosLogsResponse]
|
|
1025
|
+
List of the last known HOS log entries for the specified drivers.
|
|
1026
|
+
"""
|
|
1027
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1028
|
+
"fleet/hos/logs",
|
|
1029
|
+
method="GET",
|
|
1030
|
+
params={
|
|
1031
|
+
"tagIds": tag_ids,
|
|
1032
|
+
"parentTagIds": parent_tag_ids,
|
|
1033
|
+
"driverIds": driver_ids,
|
|
1034
|
+
"startTime": start_time,
|
|
1035
|
+
"endTime": end_time,
|
|
1036
|
+
"after": after,
|
|
1037
|
+
},
|
|
1038
|
+
request_options=request_options,
|
|
1039
|
+
)
|
|
1040
|
+
try:
|
|
1041
|
+
if 200 <= _response.status_code < 300:
|
|
1042
|
+
_data = typing.cast(
|
|
1043
|
+
HosLogsResponse,
|
|
1044
|
+
parse_obj_as(
|
|
1045
|
+
type_=HosLogsResponse, # type: ignore
|
|
1046
|
+
object_=_response.json(),
|
|
1047
|
+
),
|
|
1048
|
+
)
|
|
1049
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1050
|
+
_response_json = _response.json()
|
|
1051
|
+
except JSONDecodeError:
|
|
1052
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1053
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1054
|
+
|
|
1055
|
+
async def get_hos_violations(
|
|
1056
|
+
self,
|
|
1057
|
+
*,
|
|
1058
|
+
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
1059
|
+
start_time: typing.Optional[str] = None,
|
|
1060
|
+
end_time: typing.Optional[str] = None,
|
|
1061
|
+
tag_ids: typing.Optional[str] = None,
|
|
1062
|
+
parent_tag_ids: typing.Optional[str] = None,
|
|
1063
|
+
types: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
1064
|
+
after: typing.Optional[str] = None,
|
|
1065
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1066
|
+
) -> AsyncHttpResponse[HosViolationsGetHosViolationsResponseBody]:
|
|
1067
|
+
"""
|
|
1068
|
+
Get active Hours of Service violations for the specified drivers.
|
|
1069
|
+
|
|
1070
|
+
The day object time range for a violation is defined by the `driver`'s `eldDayStartHour`. This value is configurable per driver.
|
|
1071
|
+
|
|
1072
|
+
The `startTime` and `endTime` parameters indicate the datetime range you'd like to retrieve violations for. A violation will be returned if its `violationStartTime` falls within this datetime range (inclusive of `startTime` and `endTime`)
|
|
1073
|
+
|
|
1074
|
+
**Note:** The following are all the violation types with a short explanation about what each of them means: `californiaMealbreakMissed` (Missed California Meal Break), `cycleHoursOn` (Cycle Limit), `cycleOffHoursAfterOnDutyHours` (Cycle 2 Limit), `dailyDrivingHours` (Daily Driving Limit), `dailyOffDutyDeferralAddToDay2Consecutive` (Daily Off-Duty Deferral: Add To Day2 Consecutive), `dailyOffDutyDeferralNotPartMandatory` (Daily Off-Duty Deferral: Not Part Of Mandatory), `dailyOffDutyDeferralTwoDayDrivingLimit` (Daily Off-Duty Deferral: 2 Day Driving Limit), `dailyOffDutyDeferralTwoDayOffDuty` (Daily Off-Duty Deferral: 2 Day Off Duty), `dailyOffDutyNonResetHours` (Daily Off-Duty Time: Non-Reset), `dailyOffDutyTotalHours` (Daily Off-Duty Time), `dailyOnDutyHours` (Daily On-Duty Limit), `mandatory24HoursOffDuty` (24 Hours of Off Duty required), `restbreakMissed` (Missed Rest Break), `shiftDrivingHours` (Shift Driving Limit), `shiftHours` (Shift Duty Limit), `shiftOnDutyHours` (Shift On-Duty Limit), `unsubmittedLogs` (Missing Driver Certification)
|
|
1075
|
+
|
|
1076
|
+
<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>).
|
|
1077
|
+
|
|
1078
|
+
To use this endpoint, select **Read ELD Compliance Settings (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
**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.
|
|
1082
|
+
|
|
1083
|
+
Parameters
|
|
1084
|
+
----------
|
|
1085
|
+
driver_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1086
|
+
A filter on the data based on this comma-separated list of driver IDs and externalIds. Example: `driverIds=1234,5678,payroll:4841`
|
|
1087
|
+
|
|
1088
|
+
start_time : typing.Optional[str]
|
|
1089
|
+
A start time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
1090
|
+
|
|
1091
|
+
end_time : typing.Optional[str]
|
|
1092
|
+
An end time in RFC 3339 format. Defaults to now if not provided. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
|
|
1093
|
+
|
|
1094
|
+
tag_ids : typing.Optional[str]
|
|
1095
|
+
A filter on the data based on this comma-separated list of tag IDs. Example: `tagIds=1234,5678`
|
|
1096
|
+
|
|
1097
|
+
parent_tag_ids : typing.Optional[str]
|
|
1098
|
+
A filter on the data based on this comma-separated list of parent tag IDs, for use by orgs with tag hierarchies. Specifying a parent tag will implicitly include all descendent tags of the parent tag. Example: `parentTagIds=345,678`
|
|
1099
|
+
|
|
1100
|
+
types : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1101
|
+
A filter on violations data based on the violation type enum. Supported types: `NONE, californiaMealbreakMissed, cycleHoursOn, cycleOffHoursAfterOnDutyHours, dailyDrivingHours, dailyOffDutyDeferralAddToDay2Consecutive, dailyOffDutyDeferralNotPartMandatory, dailyOffDutyDeferralTwoDayDrivingLimit, dailyOffDutyDeferralTwoDayOffDuty, dailyOffDutyNonResetHours, dailyOffDutyTotalHours, dailyOnDutyHours, mandatory24HoursOffDuty, restbreakMissed, shiftDrivingHours, shiftHours, shiftOnDutyHours, unsubmittedLogs`
|
|
1102
|
+
|
|
1103
|
+
after : typing.Optional[str]
|
|
1104
|
+
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.
|
|
1105
|
+
|
|
1106
|
+
request_options : typing.Optional[RequestOptions]
|
|
1107
|
+
Request-specific configuration.
|
|
1108
|
+
|
|
1109
|
+
Returns
|
|
1110
|
+
-------
|
|
1111
|
+
AsyncHttpResponse[HosViolationsGetHosViolationsResponseBody]
|
|
1112
|
+
OK response.
|
|
1113
|
+
"""
|
|
1114
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1115
|
+
"fleet/hos/violations",
|
|
1116
|
+
method="GET",
|
|
1117
|
+
params={
|
|
1118
|
+
"driverIds": driver_ids,
|
|
1119
|
+
"startTime": start_time,
|
|
1120
|
+
"endTime": end_time,
|
|
1121
|
+
"tagIds": tag_ids,
|
|
1122
|
+
"parentTagIds": parent_tag_ids,
|
|
1123
|
+
"types": types,
|
|
1124
|
+
"after": after,
|
|
1125
|
+
},
|
|
1126
|
+
request_options=request_options,
|
|
1127
|
+
)
|
|
1128
|
+
try:
|
|
1129
|
+
if 200 <= _response.status_code < 300:
|
|
1130
|
+
_data = typing.cast(
|
|
1131
|
+
HosViolationsGetHosViolationsResponseBody,
|
|
1132
|
+
parse_obj_as(
|
|
1133
|
+
type_=HosViolationsGetHosViolationsResponseBody, # type: ignore
|
|
1134
|
+
object_=_response.json(),
|
|
1135
|
+
),
|
|
1136
|
+
)
|
|
1137
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1138
|
+
if _response.status_code == 401:
|
|
1139
|
+
raise UnauthorizedError(
|
|
1140
|
+
headers=dict(_response.headers),
|
|
1141
|
+
body=typing.cast(
|
|
1142
|
+
typing.Optional[typing.Any],
|
|
1143
|
+
parse_obj_as(
|
|
1144
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1145
|
+
object_=_response.json(),
|
|
1146
|
+
),
|
|
1147
|
+
),
|
|
1148
|
+
)
|
|
1149
|
+
if _response.status_code == 404:
|
|
1150
|
+
raise NotFoundError(
|
|
1151
|
+
headers=dict(_response.headers),
|
|
1152
|
+
body=typing.cast(
|
|
1153
|
+
typing.Optional[typing.Any],
|
|
1154
|
+
parse_obj_as(
|
|
1155
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1156
|
+
object_=_response.json(),
|
|
1157
|
+
),
|
|
1158
|
+
),
|
|
1159
|
+
)
|
|
1160
|
+
if _response.status_code == 405:
|
|
1161
|
+
raise MethodNotAllowedError(
|
|
1162
|
+
headers=dict(_response.headers),
|
|
1163
|
+
body=typing.cast(
|
|
1164
|
+
typing.Optional[typing.Any],
|
|
1165
|
+
parse_obj_as(
|
|
1166
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1167
|
+
object_=_response.json(),
|
|
1168
|
+
),
|
|
1169
|
+
),
|
|
1170
|
+
)
|
|
1171
|
+
if _response.status_code == 429:
|
|
1172
|
+
raise TooManyRequestsError(
|
|
1173
|
+
headers=dict(_response.headers),
|
|
1174
|
+
body=typing.cast(
|
|
1175
|
+
typing.Optional[typing.Any],
|
|
1176
|
+
parse_obj_as(
|
|
1177
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1178
|
+
object_=_response.json(),
|
|
1179
|
+
),
|
|
1180
|
+
),
|
|
1181
|
+
)
|
|
1182
|
+
if _response.status_code == 500:
|
|
1183
|
+
raise InternalServerError(
|
|
1184
|
+
headers=dict(_response.headers),
|
|
1185
|
+
body=typing.cast(
|
|
1186
|
+
typing.Optional[typing.Any],
|
|
1187
|
+
parse_obj_as(
|
|
1188
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1189
|
+
object_=_response.json(),
|
|
1190
|
+
),
|
|
1191
|
+
),
|
|
1192
|
+
)
|
|
1193
|
+
if _response.status_code == 501:
|
|
1194
|
+
raise NotImplementedError(
|
|
1195
|
+
headers=dict(_response.headers),
|
|
1196
|
+
body=typing.cast(
|
|
1197
|
+
typing.Optional[typing.Any],
|
|
1198
|
+
parse_obj_as(
|
|
1199
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1200
|
+
object_=_response.json(),
|
|
1201
|
+
),
|
|
1202
|
+
),
|
|
1203
|
+
)
|
|
1204
|
+
if _response.status_code == 502:
|
|
1205
|
+
raise BadGatewayError(
|
|
1206
|
+
headers=dict(_response.headers),
|
|
1207
|
+
body=typing.cast(
|
|
1208
|
+
typing.Optional[typing.Any],
|
|
1209
|
+
parse_obj_as(
|
|
1210
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1211
|
+
object_=_response.json(),
|
|
1212
|
+
),
|
|
1213
|
+
),
|
|
1214
|
+
)
|
|
1215
|
+
if _response.status_code == 503:
|
|
1216
|
+
raise ServiceUnavailableError(
|
|
1217
|
+
headers=dict(_response.headers),
|
|
1218
|
+
body=typing.cast(
|
|
1219
|
+
typing.Optional[typing.Any],
|
|
1220
|
+
parse_obj_as(
|
|
1221
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1222
|
+
object_=_response.json(),
|
|
1223
|
+
),
|
|
1224
|
+
),
|
|
1225
|
+
)
|
|
1226
|
+
if _response.status_code == 504:
|
|
1227
|
+
raise GatewayTimeoutError(
|
|
1228
|
+
headers=dict(_response.headers),
|
|
1229
|
+
body=typing.cast(
|
|
1230
|
+
typing.Optional[typing.Any],
|
|
1231
|
+
parse_obj_as(
|
|
1232
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1233
|
+
object_=_response.json(),
|
|
1234
|
+
),
|
|
1235
|
+
),
|
|
1236
|
+
)
|
|
1237
|
+
_response_json = _response.json()
|
|
1238
|
+
except JSONDecodeError:
|
|
1239
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1240
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1241
|
+
|
|
1242
|
+
async def set_current_duty_status(
|
|
1243
|
+
self,
|
|
1244
|
+
driver_id: int,
|
|
1245
|
+
*,
|
|
1246
|
+
duty_status: str,
|
|
1247
|
+
location: typing.Optional[str] = OMIT,
|
|
1248
|
+
remark: typing.Optional[str] = OMIT,
|
|
1249
|
+
status_change_at_ms: typing.Optional[int] = OMIT,
|
|
1250
|
+
vehicle_id: typing.Optional[int] = OMIT,
|
|
1251
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1252
|
+
) -> AsyncHttpResponse[None]:
|
|
1253
|
+
"""
|
|
1254
|
+
<n class="warning">
|
|
1255
|
+
<nh>
|
|
1256
|
+
<i class="fa fa-exclamation-circle"></i>
|
|
1257
|
+
This endpoint is still on our legacy API.
|
|
1258
|
+
</nh>
|
|
1259
|
+
</n>
|
|
1260
|
+
|
|
1261
|
+
Set an individual driver’s current duty status to 'On Duty' or 'Off Duty'.
|
|
1262
|
+
|
|
1263
|
+
To ensure compliance with the ELD Mandate, only authenticated drivers can make direct duty status changes on their own logbook. Any system external to the Samsara Driver App using this endpoint to trigger duty status changes must ensure that such changes are only triggered directly by the driver in question and that the driver has been properly authenticated. This endpoint should not be used to algorithmically trigger duty status changes nor should it be used by personnel besides the driver to trigger duty status changes on the driver’s behalf. Carriers and their drivers are ultimately responsible for maintaining accurate logs and should confirm that their use of the endpoint is compliant with the ELD Mandate.
|
|
1264
|
+
|
|
1265
|
+
**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.
|
|
1266
|
+
|
|
1267
|
+
To use this endpoint, select **Write ELD Hours of Service (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
1268
|
+
|
|
1269
|
+
Parameters
|
|
1270
|
+
----------
|
|
1271
|
+
driver_id : int
|
|
1272
|
+
ID of the driver for whom the duty status is being set.
|
|
1273
|
+
|
|
1274
|
+
duty_status : str
|
|
1275
|
+
Duty status to set the driver to. The only supported values are 'ON_DUTY' and 'OFF_DUTY'.
|
|
1276
|
+
|
|
1277
|
+
location : typing.Optional[str]
|
|
1278
|
+
Location to associate the duty status change with.
|
|
1279
|
+
|
|
1280
|
+
remark : typing.Optional[str]
|
|
1281
|
+
Remark to associate the duty status change with.
|
|
1282
|
+
|
|
1283
|
+
status_change_at_ms : typing.Optional[int]
|
|
1284
|
+
Timestamp that the duty status will begin at specified in milliseconds UNIX time. Defaults to the current time if left blank. This can only be set to up to 8 hours in the past.
|
|
1285
|
+
|
|
1286
|
+
vehicle_id : typing.Optional[int]
|
|
1287
|
+
Vehicle ID to associate the duty status change with.
|
|
1288
|
+
|
|
1289
|
+
request_options : typing.Optional[RequestOptions]
|
|
1290
|
+
Request-specific configuration.
|
|
1291
|
+
|
|
1292
|
+
Returns
|
|
1293
|
+
-------
|
|
1294
|
+
AsyncHttpResponse[None]
|
|
1295
|
+
"""
|
|
1296
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1297
|
+
f"v1/fleet/drivers/{jsonable_encoder(driver_id)}/hos/duty_status",
|
|
1298
|
+
method="POST",
|
|
1299
|
+
json={
|
|
1300
|
+
"duty_status": duty_status,
|
|
1301
|
+
"location": location,
|
|
1302
|
+
"remark": remark,
|
|
1303
|
+
"status_change_at_ms": status_change_at_ms,
|
|
1304
|
+
"vehicle_id": vehicle_id,
|
|
1305
|
+
},
|
|
1306
|
+
headers={
|
|
1307
|
+
"content-type": "application/json",
|
|
1308
|
+
},
|
|
1309
|
+
request_options=request_options,
|
|
1310
|
+
omit=OMIT,
|
|
1311
|
+
)
|
|
1312
|
+
try:
|
|
1313
|
+
if 200 <= _response.status_code < 300:
|
|
1314
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1315
|
+
_response_json = _response.json()
|
|
1316
|
+
except JSONDecodeError:
|
|
1317
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1318
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1319
|
+
|
|
1320
|
+
async def v_1_get_fleet_hos_authentication_logs(
|
|
1321
|
+
self, *, driver_id: int, start_ms: int, end_ms: int, request_options: typing.Optional[RequestOptions] = None
|
|
1322
|
+
) -> AsyncHttpResponse[V1HosAuthenticationLogsResponse]:
|
|
1323
|
+
"""
|
|
1324
|
+
<n class="warning">
|
|
1325
|
+
<nh>
|
|
1326
|
+
<i class="fa fa-exclamation-circle"></i>
|
|
1327
|
+
This endpoint is still on our legacy API.
|
|
1328
|
+
</nh>
|
|
1329
|
+
</n>
|
|
1330
|
+
|
|
1331
|
+
Get the HOS (hours of service) signin and signout logs for the specified driver. The response includes 4 fields that are now deprecated.
|
|
1332
|
+
|
|
1333
|
+
**Note:** If data is still being uploaded from the Samsara Driver App, it may not be completely reflected in the response from this endpoint. The best practice is to wait a couple of days before querying this endpoint to make sure that all data from the Samsara Driver App has been uploaded.
|
|
1334
|
+
|
|
1335
|
+
**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.
|
|
1336
|
+
|
|
1337
|
+
To use this endpoint, select **Read ELD Hours of Service (US)** under the Compliance category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
1338
|
+
|
|
1339
|
+
Parameters
|
|
1340
|
+
----------
|
|
1341
|
+
driver_id : int
|
|
1342
|
+
Driver ID to query.
|
|
1343
|
+
|
|
1344
|
+
start_ms : int
|
|
1345
|
+
Beginning of the time range, specified in milliseconds UNIX time.
|
|
1346
|
+
|
|
1347
|
+
end_ms : int
|
|
1348
|
+
End of the time range, specified in milliseconds UNIX time.
|
|
1349
|
+
|
|
1350
|
+
request_options : typing.Optional[RequestOptions]
|
|
1351
|
+
Request-specific configuration.
|
|
1352
|
+
|
|
1353
|
+
Returns
|
|
1354
|
+
-------
|
|
1355
|
+
AsyncHttpResponse[V1HosAuthenticationLogsResponse]
|
|
1356
|
+
HOS authentication logs for the specified driver.
|
|
1357
|
+
"""
|
|
1358
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1359
|
+
"v1/fleet/hos_authentication_logs",
|
|
1360
|
+
method="GET",
|
|
1361
|
+
params={
|
|
1362
|
+
"driverId": driver_id,
|
|
1363
|
+
"startMs": start_ms,
|
|
1364
|
+
"endMs": end_ms,
|
|
1365
|
+
},
|
|
1366
|
+
request_options=request_options,
|
|
1367
|
+
)
|
|
1368
|
+
try:
|
|
1369
|
+
if 200 <= _response.status_code < 300:
|
|
1370
|
+
_data = typing.cast(
|
|
1371
|
+
V1HosAuthenticationLogsResponse,
|
|
1372
|
+
parse_obj_as(
|
|
1373
|
+
type_=V1HosAuthenticationLogsResponse, # type: ignore
|
|
1374
|
+
object_=_response.json(),
|
|
1375
|
+
),
|
|
1376
|
+
)
|
|
1377
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1378
|
+
_response_json = _response.json()
|
|
1379
|
+
except JSONDecodeError:
|
|
1380
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1381
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|