samsara-api 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- samsara/__init__.py +298 -38
- samsara/alerts/configurations/client.py +25 -11
- samsara/alerts/configurations/raw_client.py +47 -8
- samsara/alerts/incidents/client.py +21 -11
- samsara/alerts/incidents/raw_client.py +43 -9
- samsara/assets/client.py +21 -11
- samsara/assets/location_and_speed/client.py +21 -13
- samsara/assets/location_and_speed/raw_client.py +53 -9
- samsara/assets/raw_client.py +53 -8
- samsara/attributes/client.py +21 -13
- samsara/attributes/raw_client.py +41 -8
- samsara/cameras/media/client.py +2 -2
- samsara/cameras/media/raw_client.py +2 -2
- samsara/cameras/media/retrieval/client.py +2 -12
- samsara/cameras/media/types/media_list_request_trigger_reasons_item.py +8 -1
- samsara/carrier_proposed_assignments/client.py +21 -11
- samsara/carrier_proposed_assignments/raw_client.py +43 -8
- samsara/client.py +15 -6
- samsara/coaching/driver_coach_assignments/client.py +22 -12
- samsara/coaching/driver_coach_assignments/raw_client.py +45 -8
- samsara/coaching/sessions/client.py +21 -13
- samsara/coaching/sessions/raw_client.py +51 -9
- samsara/contacts/client.py +21 -11
- samsara/contacts/raw_client.py +39 -8
- samsara/core/client_wrapper.py +2 -2
- samsara/defect_types/client.py +21 -11
- samsara/defect_types/raw_client.py +41 -9
- samsara/defects/client.py +124 -9
- samsara/defects/raw_client.py +356 -6
- samsara/devices/client.py +21 -11
- samsara/devices/raw_client.py +45 -9
- samsara/document_types/client.py +21 -11
- samsara/document_types/raw_client.py +37 -9
- samsara/documents/client.py +21 -11
- samsara/documents/raw_client.py +45 -8
- samsara/driver_trailer_assignments/client.py +23 -13
- samsara/driver_trailer_assignments/raw_client.py +43 -8
- samsara/drivers/__init__.py +1 -3
- samsara/drivers/client.py +21 -21
- samsara/drivers/raw_client.py +51 -8
- samsara/dvirs/client.py +124 -9
- samsara/dvirs/raw_client.py +356 -6
- samsara/equipment/__init__.py +2 -2
- samsara/equipment/client.py +23 -21
- samsara/equipment/locations/client.py +62 -34
- samsara/equipment/locations/raw_client.py +132 -27
- samsara/equipment/raw_client.py +45 -18
- samsara/equipment/stats/__init__.py +2 -2
- samsara/equipment/stats/client.py +81 -53
- samsara/equipment/stats/raw_client.py +157 -46
- samsara/equipment/stats/types/__init__.py +2 -2
- samsara/equipment/stats/types/{stats_get_request_types_item.py → stats_list_request_types_item.py} +1 -1
- samsara/form_submissions/client.py +46 -54
- samsara/form_submissions/pdf_exports/client.py +14 -22
- samsara/form_submissions/pdf_exports/raw_client.py +10 -18
- samsara/form_submissions/raw_client.py +74 -47
- samsara/forms/client.py +138 -0
- samsara/{beta → forms}/raw_client.py +37 -62
- samsara/function.py +99 -0
- samsara/gateways/client.py +21 -11
- samsara/gateways/raw_client.py +39 -8
- samsara/hos/__init__.py +3 -0
- samsara/hos/client.py +218 -11
- samsara/hos/raw_client.py +485 -8
- samsara/hos/types/__init__.py +7 -0
- samsara/hos/types/hos_daily_logs_request_driver_activation_status.py +5 -0
- samsara/idling/__init__.py +7 -0
- samsara/idling/client.py +287 -0
- samsara/idling/raw_client.py +521 -0
- samsara/idling/types/__init__.py +7 -0
- samsara/idling/types/idling_list_request_pto_state.py +5 -0
- samsara/inputs/client.py +21 -11
- samsara/inputs/raw_client.py +51 -9
- samsara/issues/client.py +27 -29
- samsara/issues/raw_client.py +53 -26
- samsara/live_shares/client.py +21 -13
- samsara/live_shares/raw_client.py +43 -8
- samsara/maintenance/service_tasks/client.py +21 -11
- samsara/maintenance/service_tasks/raw_client.py +41 -8
- samsara/maintenance/work_orders/client.py +40 -22
- samsara/maintenance/work_orders/raw_client.py +84 -16
- samsara/readings/client.py +524 -0
- samsara/readings/raw_client.py +1214 -0
- samsara/reports/drivers/fuel_energy/client.py +6 -6
- samsara/reports/drivers/fuel_energy/raw_client.py +2 -2
- samsara/reports/ifta/__init__.py +4 -4
- samsara/reports/ifta/vehicle/__init__.py +2 -2
- samsara/reports/ifta/vehicle/client.py +21 -21
- samsara/reports/ifta/vehicle/raw_client.py +17 -17
- samsara/reports/ifta/vehicle/types/__init__.py +4 -4
- samsara/reports/ifta/vehicle/types/{vehicle_get_request_fuel_type.py → vehicle_list_request_fuel_type.py} +1 -1
- samsara/reports/ifta/vehicle/types/{vehicle_get_request_month.py → vehicle_list_request_month.py} +1 -1
- samsara/reports/ifta/vehicle/types/vehicle_list_request_quarter.py +5 -0
- samsara/reports/vehicles/__init__.py +2 -2
- samsara/reports/vehicles/fuel_energy/__init__.py +2 -2
- samsara/reports/vehicles/fuel_energy/client.py +11 -11
- samsara/reports/vehicles/fuel_energy/raw_client.py +7 -7
- samsara/reports/vehicles/fuel_energy/types/__init__.py +2 -2
- samsara/reports/vehicles/fuel_energy/types/fuel_energy_list_request_energy_type.py +5 -0
- samsara/reports/vehicles/idling/client.py +27 -15
- samsara/reports/vehicles/idling/raw_client.py +59 -11
- samsara/routes/client.py +21 -11
- samsara/routes/raw_client.py +43 -8
- samsara/safety_events/audit_logs/client.py +21 -13
- samsara/safety_events/audit_logs/raw_client.py +39 -9
- samsara/safety_events/client.py +21 -11
- samsara/safety_events/raw_client.py +47 -9
- samsara/speeding_intervals/client.py +25 -17
- samsara/speeding_intervals/raw_client.py +55 -13
- samsara/tachograph/__init__.py +7 -0
- samsara/tachograph/client.py +44 -0
- samsara/{drivers/tachograph_files → tachograph/driver}/client.py +162 -15
- samsara/{drivers/tachograph_files → tachograph/driver}/raw_client.py +153 -4
- samsara/tachograph/raw_client.py +13 -0
- samsara/{vehicles/tachograph_files → tachograph/vehicles}/client.py +15 -15
- samsara/{vehicles/tachograph_files → tachograph/vehicles}/raw_client.py +4 -4
- samsara/tags/client.py +21 -11
- samsara/tags/raw_client.py +39 -8
- samsara/trailers/client.py +21 -11
- samsara/trailers/raw_client.py +43 -8
- samsara/training_courses/client.py +21 -11
- samsara/training_courses/raw_client.py +43 -9
- samsara/trips/client.py +21 -11
- samsara/trips/raw_client.py +49 -9
- samsara/types/__init__.py +406 -50
- samsara/types/advanced_idling_get_idling_events_bad_gateway_error_response_body.py +33 -0
- samsara/types/advanced_idling_get_idling_events_gateway_timeout_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_internal_server_error_response_body.py → advanced_idling_get_idling_events_internal_server_error_response_body.py} +1 -1
- samsara/types/advanced_idling_get_idling_events_method_not_allowed_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_not_found_error_response_body.py → advanced_idling_get_idling_events_not_found_error_response_body.py} +1 -1
- samsara/types/{hos_daily_logs_update_shipping_docs_not_implemented_error_response_body.py → advanced_idling_get_idling_events_not_implemented_error_response_body.py} +1 -1
- samsara/types/advanced_idling_get_idling_events_response_body.py +26 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_service_unavailable_error_response_body.py → advanced_idling_get_idling_events_service_unavailable_error_response_body.py} +1 -1
- samsara/types/{hos_daily_logs_update_shipping_docs_gateway_timeout_error_response_body.py → advanced_idling_get_idling_events_too_many_requests_error_response_body.py} +2 -2
- samsara/types/advanced_idling_get_idling_events_unauthorized_error_response_body.py +33 -0
- samsara/types/alert_object_asset_response_body.py +63 -0
- samsara/types/{assets_create_asset_response_body_type.py → alert_object_asset_response_body_type.py} +1 -1
- samsara/types/assets_create_asset_response_body.py +2 -87
- samsara/types/assets_update_asset_response_body.py +2 -87
- samsara/types/continuous_reading_alert_threshold_response_body.py +49 -0
- samsara/types/continuous_reading_alert_threshold_response_body_operation.py +7 -0
- samsara/types/continuous_reading_alert_threshold_response_body_unit.py +62 -0
- samsara/types/device_response_response_body.py +1 -1
- samsara/types/device_response_response_body_model.py +1 -0
- samsara/types/dvir_defect_get_defect_bad_gateway_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_gateway_timeout_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_internal_server_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_method_not_allowed_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_not_found_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_not_implemented_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_response_body.py +91 -0
- samsara/types/dvir_defect_get_defect_service_unavailable_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_too_many_requests_error_response_body.py +33 -0
- samsara/types/dvir_defect_get_defect_unauthorized_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_bad_gateway_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_gateway_timeout_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_internal_server_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_method_not_allowed_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_not_found_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_not_implemented_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_response_body.py +99 -0
- samsara/types/dvir_get_dvir_response_body_safety_status.py +5 -0
- samsara/types/dvir_get_dvir_response_body_type.py +5 -0
- samsara/types/dvir_get_dvir_service_unavailable_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_too_many_requests_error_response_body.py +33 -0
- samsara/types/dvir_get_dvir_unauthorized_error_response_body.py +33 -0
- samsara/types/enum_reading_alert_threshold_response_body.py +31 -0
- samsara/types/enum_value_response_body.py +31 -0
- samsara/types/equipment_gateway_engine_seconds.py +1 -1
- samsara/types/equipment_gateway_j_1939_engine_seconds.py +1 -1
- samsara/types/equipment_obd_engine_seconds.py +1 -1
- samsara/types/event_location_response_body.py +31 -0
- samsara/types/form_submission_request_field_input_object_request_body.py +7 -1
- samsara/types/form_submission_request_field_input_object_request_body_type.py +3 -1
- samsara/types/{hos_daily_logs_update_shipping_docs_response_body.py → form_submission_request_geofence_object_request_body.py} +9 -3
- samsara/types/form_submission_request_geofence_value_object_request_body.py +24 -0
- samsara/types/form_submission_response_object_response_body.py +8 -0
- samsara/types/{form_template_reference_object_request_body.py → form_template_request_object_request_body.py} +6 -4
- samsara/types/form_template_response_object_response_body.py +74 -0
- samsara/types/form_template_section_object_response_body.py +47 -0
- samsara/types/form_templates_get_form_templates_bad_gateway_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_gateway_timeout_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_internal_server_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_method_not_allowed_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_not_found_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_not_implemented_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_response_body.py +26 -0
- samsara/types/form_templates_get_form_templates_service_unavailable_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_too_many_requests_error_response_body.py +33 -0
- samsara/types/form_templates_get_form_templates_unauthorized_error_response_body.py +33 -0
- samsara/types/forms_action_object_response_body.py +43 -0
- samsara/types/forms_action_object_response_body_type.py +7 -0
- samsara/types/forms_approval_config_object_response_body.py +32 -0
- samsara/types/forms_asset_object_response_body.py +8 -1
- samsara/types/forms_check_boxes_value_object_response_body.py +7 -0
- samsara/types/forms_condition_object_response_body.py +36 -0
- samsara/types/forms_condition_object_response_body_type.py +7 -0
- samsara/types/forms_conditional_action_object_response_body.py +30 -0
- samsara/types/forms_field_definition_object_response_body.py +143 -0
- samsara/types/forms_field_definition_object_response_body_allowed_asset_types_item.py +7 -0
- samsara/types/forms_field_definition_object_response_body_allowed_date_time_value_type.py +7 -0
- samsara/types/forms_field_definition_object_response_body_type.py +22 -0
- samsara/types/forms_field_input_object_response_body.py +7 -4
- samsara/types/forms_field_input_object_response_body_type.py +20 -0
- samsara/types/forms_geofence_object_response_body.py +53 -0
- samsara/types/forms_geofence_object_response_body_entry_type.py +5 -0
- samsara/types/forms_geofence_value_object_response_body.py +24 -0
- samsara/types/forms_multiple_choice_value_object_response_body.py +8 -1
- samsara/types/forms_product_submission_approval_details_object_response_body.py +26 -0
- samsara/types/forms_select_option_object_response_body.py +47 -0
- samsara/types/forms_single_approval_config_object_response_body.py +33 -0
- samsara/types/forms_table_cell_object_response_body.py +3 -4
- samsara/types/forms_table_cell_object_response_body_type.py +8 -0
- samsara/types/forms_table_column_object_response_body.py +3 -4
- samsara/types/forms_table_column_object_response_body_type.py +8 -0
- samsara/types/forms_table_field_definition_object_response_body.py +91 -0
- samsara/types/forms_table_field_definition_object_response_body_allowed_date_time_value_type.py +7 -0
- samsara/types/forms_table_field_definition_object_response_body_type.py +8 -0
- samsara/types/fuel_cost_object_response_body.py +32 -0
- samsara/types/fuel_cost_object_response_body_currency.py +5 -0
- samsara/types/fuel_volume_response_body.py +28 -0
- samsara/types/fuel_volume_response_body_unit.py +5 -0
- samsara/types/gaseous_fuel_cost_object_response_body.py +32 -0
- samsara/types/gaseous_fuel_cost_object_response_body_currency.py +7 -0
- samsara/types/gateway_details_response_response_body.py +14 -0
- samsara/types/harsh_event_trigger_details_object_request_body_types_item.py +1 -0
- samsara/types/harsh_event_trigger_details_object_response_body_types_item.py +1 -0
- samsara/types/idling_event_object_response_body.py +101 -0
- samsara/types/idling_event_object_response_body_address_type.py +17 -0
- samsara/types/inline_response_2005.py +24 -0
- samsara/types/inline_response_2006.py +24 -0
- samsara/types/reading_definition_response_body.py +59 -0
- samsara/types/reading_history_response_body.py +47 -0
- samsara/types/reading_snapshot_response_body.py +52 -0
- samsara/types/reading_trigger_continuous_value_object_request_body.py +51 -0
- samsara/types/reading_trigger_continuous_value_object_request_body_operation.py +7 -0
- samsara/types/reading_trigger_continuous_value_object_request_body_unit.py +62 -0
- samsara/types/reading_trigger_continuous_value_object_response_body.py +51 -0
- samsara/types/reading_trigger_continuous_value_object_response_body_operation.py +7 -0
- samsara/types/reading_trigger_continuous_value_object_response_body_unit.py +62 -0
- samsara/types/reading_trigger_details_object_request_body.py +48 -0
- samsara/types/reading_trigger_details_object_response_body.py +48 -0
- samsara/types/reading_trigger_details_response_body.py +38 -0
- samsara/types/reading_trigger_enum_value_object_request_body.py +31 -0
- samsara/types/reading_trigger_enum_value_object_response_body.py +31 -0
- samsara/types/reading_type_response_body.py +34 -0
- samsara/types/reading_type_response_body_data_type.py +5 -0
- samsara/types/readings_get_readings_history_bad_gateway_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_bad_gateway_error_response_body.py → readings_get_readings_history_gateway_timeout_error_response_body.py} +2 -2
- samsara/types/readings_get_readings_history_internal_server_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_method_not_allowed_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_not_found_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_not_implemented_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_response_body.py +26 -0
- samsara/types/readings_get_readings_history_service_unavailable_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_too_many_requests_error_response_body.py +33 -0
- samsara/types/readings_get_readings_history_unauthorized_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_bad_gateway_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_gateway_timeout_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_internal_server_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_method_not_allowed_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_not_found_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_not_implemented_error_response_body.py +33 -0
- samsara/types/readings_get_readings_snapshot_response_body.py +26 -0
- samsara/types/readings_get_readings_snapshot_service_unavailable_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_unauthorized_error_response_body.py → readings_get_readings_snapshot_too_many_requests_error_response_body.py} +2 -2
- samsara/types/readings_get_readings_snapshot_unauthorized_error_response_body.py +33 -0
- samsara/types/readings_list_readings_definitions_bad_gateway_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_too_many_requests_error_response_body.py → readings_list_readings_definitions_gateway_timeout_error_response_body.py} +2 -2
- samsara/types/readings_list_readings_definitions_internal_server_error_response_body.py +33 -0
- samsara/types/readings_list_readings_definitions_method_not_allowed_error_response_body.py +33 -0
- samsara/types/readings_list_readings_definitions_not_found_error_response_body.py +33 -0
- samsara/types/readings_list_readings_definitions_not_implemented_error_response_body.py +33 -0
- samsara/types/readings_list_readings_definitions_response_body.py +26 -0
- samsara/types/readings_list_readings_definitions_service_unavailable_error_response_body.py +33 -0
- samsara/types/{hos_daily_logs_update_shipping_docs_method_not_allowed_error_response_body.py → readings_list_readings_definitions_too_many_requests_error_response_body.py} +2 -2
- samsara/types/readings_list_readings_definitions_unauthorized_error_response_body.py +33 -0
- samsara/types/safety_score_configuration_settings_object_response_body.py +7 -0
- samsara/types/single_approval_requirements_object_response_body.py +28 -0
- samsara/types/sudden_fuel_level_drop_response_body.py +33 -0
- samsara/types/sudden_fuel_level_rise_response_body.py +33 -0
- samsara/types/trigger_params_object_request_body.py +2 -0
- samsara/types/trigger_params_object_response_body.py +2 -0
- samsara/types/unit_response_body.py +39 -0
- samsara/types/unit_response_body_base_unit.py +62 -0
- samsara/types/unit_response_body_measurement_type.py +28 -0
- samsara/types/uploaded_media_object_response_body.py +1 -1
- samsara/types/uploaded_media_object_response_body_trigger_reason.py +8 -1
- samsara/types/v_1_message.py +29 -0
- samsara/types/v_1_message_response.py +41 -0
- samsara/types/v_1_message_sender.py +27 -0
- samsara/types/v_1_messages.py +7 -0
- samsara/types/v_1_messages_response.py +7 -0
- samsara/types/webhook_response_response_body_event_types_item.py +1 -0
- samsara/types/webhooks_get_webhook_response_body_event_types_item.py +1 -0
- samsara/types/webhooks_patch_webhook_response_body_event_types_item.py +1 -0
- samsara/types/webhooks_post_webhooks_response_body_event_types_item.py +1 -0
- samsara/types/work_order_item_object_request_body.py +1 -1
- samsara/types/work_order_item_object_request_body_type.py +10 -1
- samsara/types/work_order_item_object_response_body.py +1 -1
- samsara/types/work_order_item_object_response_body_type.py +10 -1
- samsara/types/workflow_geofence_event_response_object_response_body.py +6 -0
- samsara/types/workflow_incident_details_object_response_body.py +2 -0
- samsara/types/workflow_trigger_object_request_body.py +1 -0
- samsara/types/workflow_trigger_object_response_body.py +1 -0
- samsara/user_roles/client.py +21 -11
- samsara/user_roles/raw_client.py +39 -9
- samsara/users/client.py +21 -11
- samsara/users/raw_client.py +39 -8
- samsara/v_1_messages/__init__.py +4 -0
- samsara/v_1_messages/client.py +258 -0
- samsara/v_1_messages/raw_client.py +273 -0
- samsara/vehicles/__init__.py +1 -2
- samsara/vehicles/client.py +31 -16
- samsara/vehicles/immobilizer/client.py +21 -13
- samsara/vehicles/immobilizer/raw_client.py +43 -9
- samsara/vehicles/locations/client.py +60 -32
- samsara/vehicles/locations/raw_client.py +132 -25
- samsara/vehicles/raw_client.py +61 -8
- samsara/vehicles/stats/client.py +66 -38
- samsara/vehicles/stats/raw_client.py +148 -31
- samsara/webhooks/client.py +21 -11
- samsara/webhooks/raw_client.py +41 -8
- samsara/webhooks/types/webhooks_post_webhooks_request_body_event_types_item.py +1 -0
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/METADATA +25 -18
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/RECORD +332 -197
- samsara/beta/client.py +0 -161
- samsara/drivers/tachograph_activity/client.py +0 -186
- samsara/drivers/tachograph_activity/raw_client.py +0 -169
- samsara/hours_of_service/__init__.py +0 -7
- samsara/hours_of_service/client.py +0 -229
- samsara/hours_of_service/raw_client.py +0 -425
- samsara/hours_of_service/types/__init__.py +0 -9
- samsara/hours_of_service/types/hours_of_service_get_daily_logs_request_driver_activation_status.py +0 -7
- samsara/reports/ifta/vehicle/types/vehicle_get_request_quarter.py +0 -5
- samsara/reports/vehicles/fuel_energy/types/fuel_energy_get_request_energy_type.py +0 -5
- samsara/types/assets_create_asset_response_body_regulation_mode.py +0 -7
- samsara/types/assets_update_asset_response_body_regulation_mode.py +0 -7
- samsara/types/assets_update_asset_response_body_type.py +0 -7
- samsara/types/patch_shipping_docs_response_body_response_body.py +0 -93
- /samsara/{beta → forms}/__init__.py +0 -0
- /samsara/{drivers/tachograph_activity → readings}/__init__.py +0 -0
- /samsara/{drivers/tachograph_files → tachograph/driver}/__init__.py +0 -0
- /samsara/{vehicles/tachograph_files → tachograph/vehicles}/__init__.py +0 -0
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/LICENSE +0 -0
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.3.dist-info}/WHEEL +0 -0
|
@@ -7,8 +7,10 @@ from ..core.api_error import ApiError
|
|
|
7
7
|
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
8
|
from ..core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
9
|
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ..core.pagination import AsyncPager, BaseHttpResponse, SyncPager
|
|
10
11
|
from ..core.pydantic_utilities import parse_obj_as
|
|
11
12
|
from ..core.request_options import RequestOptions
|
|
13
|
+
from ..types.carrier_proposed_assignment import CarrierProposedAssignment
|
|
12
14
|
from ..types.carrier_proposed_assignment_response import CarrierProposedAssignmentResponse
|
|
13
15
|
from ..types.list_carrier_proposed_assignment_response import ListCarrierProposedAssignmentResponse
|
|
14
16
|
|
|
@@ -28,7 +30,7 @@ class RawCarrierProposedAssignmentsClient:
|
|
|
28
30
|
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
29
31
|
active_time: typing.Optional[str] = None,
|
|
30
32
|
request_options: typing.Optional[RequestOptions] = None,
|
|
31
|
-
) ->
|
|
33
|
+
) -> SyncPager[CarrierProposedAssignment]:
|
|
32
34
|
"""
|
|
33
35
|
Show the assignments created by the POST fleet/carrier-proposed-assignments. This endpoint will only show the assignments that are active for drivers and currently visible to them in the driver app. Once a proposed assignment has been accepted, the endpoint will not return any data.
|
|
34
36
|
|
|
@@ -55,7 +57,7 @@ class RawCarrierProposedAssignmentsClient:
|
|
|
55
57
|
|
|
56
58
|
Returns
|
|
57
59
|
-------
|
|
58
|
-
|
|
60
|
+
SyncPager[CarrierProposedAssignment]
|
|
59
61
|
Returns the assignments that drivers would see in the future, if any.
|
|
60
62
|
"""
|
|
61
63
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -71,14 +73,29 @@ class RawCarrierProposedAssignmentsClient:
|
|
|
71
73
|
)
|
|
72
74
|
try:
|
|
73
75
|
if 200 <= _response.status_code < 300:
|
|
74
|
-
|
|
76
|
+
_parsed_response = typing.cast(
|
|
75
77
|
ListCarrierProposedAssignmentResponse,
|
|
76
78
|
parse_obj_as(
|
|
77
79
|
type_=ListCarrierProposedAssignmentResponse, # type: ignore
|
|
78
80
|
object_=_response.json(),
|
|
79
81
|
),
|
|
80
82
|
)
|
|
81
|
-
|
|
83
|
+
_items = _parsed_response.data
|
|
84
|
+
_has_next = False
|
|
85
|
+
_get_next = None
|
|
86
|
+
if _parsed_response.pagination is not None:
|
|
87
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
88
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
89
|
+
_get_next = lambda: self.list(
|
|
90
|
+
limit=limit,
|
|
91
|
+
after=_parsed_next,
|
|
92
|
+
driver_ids=driver_ids,
|
|
93
|
+
active_time=active_time,
|
|
94
|
+
request_options=request_options,
|
|
95
|
+
)
|
|
96
|
+
return SyncPager(
|
|
97
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
98
|
+
)
|
|
82
99
|
_response_json = _response.json()
|
|
83
100
|
except JSONDecodeError:
|
|
84
101
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -220,7 +237,7 @@ class AsyncRawCarrierProposedAssignmentsClient:
|
|
|
220
237
|
driver_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
221
238
|
active_time: typing.Optional[str] = None,
|
|
222
239
|
request_options: typing.Optional[RequestOptions] = None,
|
|
223
|
-
) ->
|
|
240
|
+
) -> AsyncPager[CarrierProposedAssignment]:
|
|
224
241
|
"""
|
|
225
242
|
Show the assignments created by the POST fleet/carrier-proposed-assignments. This endpoint will only show the assignments that are active for drivers and currently visible to them in the driver app. Once a proposed assignment has been accepted, the endpoint will not return any data.
|
|
226
243
|
|
|
@@ -247,7 +264,7 @@ class AsyncRawCarrierProposedAssignmentsClient:
|
|
|
247
264
|
|
|
248
265
|
Returns
|
|
249
266
|
-------
|
|
250
|
-
|
|
267
|
+
AsyncPager[CarrierProposedAssignment]
|
|
251
268
|
Returns the assignments that drivers would see in the future, if any.
|
|
252
269
|
"""
|
|
253
270
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -263,14 +280,32 @@ class AsyncRawCarrierProposedAssignmentsClient:
|
|
|
263
280
|
)
|
|
264
281
|
try:
|
|
265
282
|
if 200 <= _response.status_code < 300:
|
|
266
|
-
|
|
283
|
+
_parsed_response = typing.cast(
|
|
267
284
|
ListCarrierProposedAssignmentResponse,
|
|
268
285
|
parse_obj_as(
|
|
269
286
|
type_=ListCarrierProposedAssignmentResponse, # type: ignore
|
|
270
287
|
object_=_response.json(),
|
|
271
288
|
),
|
|
272
289
|
)
|
|
273
|
-
|
|
290
|
+
_items = _parsed_response.data
|
|
291
|
+
_has_next = False
|
|
292
|
+
_get_next = None
|
|
293
|
+
if _parsed_response.pagination is not None:
|
|
294
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
295
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
296
|
+
|
|
297
|
+
async def _get_next():
|
|
298
|
+
return await self.list(
|
|
299
|
+
limit=limit,
|
|
300
|
+
after=_parsed_next,
|
|
301
|
+
driver_ids=driver_ids,
|
|
302
|
+
active_time=active_time,
|
|
303
|
+
request_options=request_options,
|
|
304
|
+
)
|
|
305
|
+
|
|
306
|
+
return AsyncPager(
|
|
307
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
308
|
+
)
|
|
274
309
|
_response_json = _response.json()
|
|
275
310
|
except JSONDecodeError:
|
|
276
311
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
samsara/client.py
CHANGED
|
@@ -9,7 +9,6 @@ from .alerts.client import AlertsClient, AsyncAlertsClient
|
|
|
9
9
|
from .assets.client import AssetsClient, AsyncAssetsClient
|
|
10
10
|
from .attributes.client import AsyncAttributesClient, AttributesClient
|
|
11
11
|
from .auth.client import AsyncAuthClient, AuthClient
|
|
12
|
-
from .beta.client import AsyncBetaClient, BetaClient
|
|
13
12
|
from .cameras.client import AsyncCamerasClient, CamerasClient
|
|
14
13
|
from .carrier_proposed_assignments.client import AsyncCarrierProposedAssignmentsClient, CarrierProposedAssignmentsClient
|
|
15
14
|
from .coaching.client import AsyncCoachingClient, CoachingClient
|
|
@@ -28,10 +27,11 @@ from .dvirs.client import AsyncDvirsClient, DvirsClient
|
|
|
28
27
|
from .environment import SamsaraEnvironment
|
|
29
28
|
from .equipment.client import AsyncEquipmentClient, EquipmentClient
|
|
30
29
|
from .form_submissions.client import AsyncFormSubmissionsClient, FormSubmissionsClient
|
|
30
|
+
from .forms.client import AsyncFormsClient, FormsClient
|
|
31
31
|
from .fuel_purchases.client import AsyncFuelPurchasesClient, FuelPurchasesClient
|
|
32
32
|
from .gateways.client import AsyncGatewaysClient, GatewaysClient
|
|
33
33
|
from .hos.client import AsyncHosClient, HosClient
|
|
34
|
-
from .
|
|
34
|
+
from .idling.client import AsyncIdlingClient, IdlingClient
|
|
35
35
|
from .ifta.client import AsyncIftaClient, IftaClient
|
|
36
36
|
from .inputs.client import AsyncInputsClient, InputsClient
|
|
37
37
|
from .issues.client import AsyncIssuesClient, IssuesClient
|
|
@@ -39,11 +39,13 @@ from .legacy.client import AsyncLegacyClient, LegacyClient
|
|
|
39
39
|
from .live_shares.client import AsyncLiveSharesClient, LiveSharesClient
|
|
40
40
|
from .maintenance.client import AsyncMaintenanceClient, MaintenanceClient
|
|
41
41
|
from .me.client import AsyncMeClient, MeClient
|
|
42
|
+
from .readings.client import AsyncReadingsClient, ReadingsClient
|
|
42
43
|
from .reports.client import AsyncReportsClient, ReportsClient
|
|
43
44
|
from .routes.client import AsyncRoutesClient, RoutesClient
|
|
44
45
|
from .safety_events.client import AsyncSafetyEventsClient, SafetyEventsClient
|
|
45
46
|
from .settings.client import AsyncSettingsClient, SettingsClient
|
|
46
47
|
from .speeding_intervals.client import AsyncSpeedingIntervalsClient, SpeedingIntervalsClient
|
|
48
|
+
from .tachograph.client import AsyncTachographClient, TachographClient
|
|
47
49
|
from .tags.client import AsyncTagsClient, TagsClient
|
|
48
50
|
from .trailers.client import AsyncTrailersClient, TrailersClient
|
|
49
51
|
from .training_assignments.client import AsyncTrainingAssignmentsClient, TrainingAssignmentsClient
|
|
@@ -51,6 +53,7 @@ from .training_courses.client import AsyncTrainingCoursesClient, TrainingCourses
|
|
|
51
53
|
from .trips.client import AsyncTripsClient, TripsClient
|
|
52
54
|
from .user_roles.client import AsyncUserRolesClient, UserRolesClient
|
|
53
55
|
from .users.client import AsyncUsersClient, UsersClient
|
|
56
|
+
from .v_1_messages.client import AsyncV1MessagesClient, V1MessagesClient
|
|
54
57
|
from .vehicles.client import AsyncVehiclesClient, VehiclesClient
|
|
55
58
|
from .webhooks.client import AsyncWebhooksClient, WebhooksClient
|
|
56
59
|
|
|
@@ -134,19 +137,20 @@ class Samsara:
|
|
|
134
137
|
self.drivers = DriversClient(client_wrapper=self._client_wrapper)
|
|
135
138
|
self.equipment = EquipmentClient(client_wrapper=self._client_wrapper)
|
|
136
139
|
self.hos = HosClient(client_wrapper=self._client_wrapper)
|
|
137
|
-
self.hours_of_service = HoursOfServiceClient(client_wrapper=self._client_wrapper)
|
|
138
140
|
self.routes = RoutesClient(client_wrapper=self._client_wrapper)
|
|
139
141
|
self.safety_events = SafetyEventsClient(client_wrapper=self._client_wrapper)
|
|
140
142
|
self.trailers = TrailersClient(client_wrapper=self._client_wrapper)
|
|
141
143
|
self.vehicles = VehiclesClient(client_wrapper=self._client_wrapper)
|
|
142
144
|
self.legacy = LegacyClient(client_wrapper=self._client_wrapper)
|
|
143
145
|
self.form_submissions = FormSubmissionsClient(client_wrapper=self._client_wrapper)
|
|
146
|
+
self.forms = FormsClient(client_wrapper=self._client_wrapper)
|
|
144
147
|
self.fuel_purchases = FuelPurchasesClient(client_wrapper=self._client_wrapper)
|
|
145
148
|
self.gateways = GatewaysClient(client_wrapper=self._client_wrapper)
|
|
146
|
-
self.
|
|
149
|
+
self.idling = IdlingClient(client_wrapper=self._client_wrapper)
|
|
147
150
|
self.issues = IssuesClient(client_wrapper=self._client_wrapper)
|
|
148
151
|
self.live_shares = LiveSharesClient(client_wrapper=self._client_wrapper)
|
|
149
152
|
self.me = MeClient(client_wrapper=self._client_wrapper)
|
|
153
|
+
self.readings = ReadingsClient(client_wrapper=self._client_wrapper)
|
|
150
154
|
self.speeding_intervals = SpeedingIntervalsClient(client_wrapper=self._client_wrapper)
|
|
151
155
|
self.tags = TagsClient(client_wrapper=self._client_wrapper)
|
|
152
156
|
self.training_assignments = TrainingAssignmentsClient(client_wrapper=self._client_wrapper)
|
|
@@ -154,6 +158,7 @@ class Samsara:
|
|
|
154
158
|
self.trips = TripsClient(client_wrapper=self._client_wrapper)
|
|
155
159
|
self.user_roles = UserRolesClient(client_wrapper=self._client_wrapper)
|
|
156
160
|
self.users = UsersClient(client_wrapper=self._client_wrapper)
|
|
161
|
+
self.v_1_messages = V1MessagesClient(client_wrapper=self._client_wrapper)
|
|
157
162
|
self.webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
|
|
158
163
|
self.auth = AuthClient(client_wrapper=self._client_wrapper)
|
|
159
164
|
self.alerts = AlertsClient(client_wrapper=self._client_wrapper)
|
|
@@ -163,6 +168,7 @@ class Samsara:
|
|
|
163
168
|
self.maintenance = MaintenanceClient(client_wrapper=self._client_wrapper)
|
|
164
169
|
self.reports = ReportsClient(client_wrapper=self._client_wrapper)
|
|
165
170
|
self.settings = SettingsClient(client_wrapper=self._client_wrapper)
|
|
171
|
+
self.tachograph = TachographClient(client_wrapper=self._client_wrapper)
|
|
166
172
|
|
|
167
173
|
|
|
168
174
|
class AsyncSamsara:
|
|
@@ -244,19 +250,20 @@ class AsyncSamsara:
|
|
|
244
250
|
self.drivers = AsyncDriversClient(client_wrapper=self._client_wrapper)
|
|
245
251
|
self.equipment = AsyncEquipmentClient(client_wrapper=self._client_wrapper)
|
|
246
252
|
self.hos = AsyncHosClient(client_wrapper=self._client_wrapper)
|
|
247
|
-
self.hours_of_service = AsyncHoursOfServiceClient(client_wrapper=self._client_wrapper)
|
|
248
253
|
self.routes = AsyncRoutesClient(client_wrapper=self._client_wrapper)
|
|
249
254
|
self.safety_events = AsyncSafetyEventsClient(client_wrapper=self._client_wrapper)
|
|
250
255
|
self.trailers = AsyncTrailersClient(client_wrapper=self._client_wrapper)
|
|
251
256
|
self.vehicles = AsyncVehiclesClient(client_wrapper=self._client_wrapper)
|
|
252
257
|
self.legacy = AsyncLegacyClient(client_wrapper=self._client_wrapper)
|
|
253
258
|
self.form_submissions = AsyncFormSubmissionsClient(client_wrapper=self._client_wrapper)
|
|
259
|
+
self.forms = AsyncFormsClient(client_wrapper=self._client_wrapper)
|
|
254
260
|
self.fuel_purchases = AsyncFuelPurchasesClient(client_wrapper=self._client_wrapper)
|
|
255
261
|
self.gateways = AsyncGatewaysClient(client_wrapper=self._client_wrapper)
|
|
256
|
-
self.
|
|
262
|
+
self.idling = AsyncIdlingClient(client_wrapper=self._client_wrapper)
|
|
257
263
|
self.issues = AsyncIssuesClient(client_wrapper=self._client_wrapper)
|
|
258
264
|
self.live_shares = AsyncLiveSharesClient(client_wrapper=self._client_wrapper)
|
|
259
265
|
self.me = AsyncMeClient(client_wrapper=self._client_wrapper)
|
|
266
|
+
self.readings = AsyncReadingsClient(client_wrapper=self._client_wrapper)
|
|
260
267
|
self.speeding_intervals = AsyncSpeedingIntervalsClient(client_wrapper=self._client_wrapper)
|
|
261
268
|
self.tags = AsyncTagsClient(client_wrapper=self._client_wrapper)
|
|
262
269
|
self.training_assignments = AsyncTrainingAssignmentsClient(client_wrapper=self._client_wrapper)
|
|
@@ -264,6 +271,7 @@ class AsyncSamsara:
|
|
|
264
271
|
self.trips = AsyncTripsClient(client_wrapper=self._client_wrapper)
|
|
265
272
|
self.user_roles = AsyncUserRolesClient(client_wrapper=self._client_wrapper)
|
|
266
273
|
self.users = AsyncUsersClient(client_wrapper=self._client_wrapper)
|
|
274
|
+
self.v_1_messages = AsyncV1MessagesClient(client_wrapper=self._client_wrapper)
|
|
267
275
|
self.webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
|
|
268
276
|
self.auth = AsyncAuthClient(client_wrapper=self._client_wrapper)
|
|
269
277
|
self.alerts = AsyncAlertsClient(client_wrapper=self._client_wrapper)
|
|
@@ -273,6 +281,7 @@ class AsyncSamsara:
|
|
|
273
281
|
self.maintenance = AsyncMaintenanceClient(client_wrapper=self._client_wrapper)
|
|
274
282
|
self.reports = AsyncReportsClient(client_wrapper=self._client_wrapper)
|
|
275
283
|
self.settings = AsyncSettingsClient(client_wrapper=self._client_wrapper)
|
|
284
|
+
self.tachograph = AsyncTachographClient(client_wrapper=self._client_wrapper)
|
|
276
285
|
|
|
277
286
|
|
|
278
287
|
def _get_base_url(*, base_url: typing.Optional[str] = None, environment: SamsaraEnvironment) -> str:
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ...core.pagination import AsyncPager, SyncPager
|
|
6
7
|
from ...core.request_options import RequestOptions
|
|
7
|
-
from ...types.
|
|
8
|
-
|
|
8
|
+
from ...types.coach_assignment_with_driver_external_ids_response_response_body import (
|
|
9
|
+
CoachAssignmentWithDriverExternalIdsResponseResponseBody,
|
|
9
10
|
)
|
|
10
11
|
from ...types.driver_coach_assignments_put_driver_coach_assignment_response_body import (
|
|
11
12
|
DriverCoachAssignmentsPutDriverCoachAssignmentResponseBody,
|
|
@@ -36,7 +37,7 @@ class DriverCoachAssignmentsClient:
|
|
|
36
37
|
include_external_ids: typing.Optional[bool] = None,
|
|
37
38
|
after: typing.Optional[str] = None,
|
|
38
39
|
request_options: typing.Optional[RequestOptions] = None,
|
|
39
|
-
) ->
|
|
40
|
+
) -> SyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]:
|
|
40
41
|
"""
|
|
41
42
|
This endpoint will return coach assignments for your organization based on the parameters passed in. Results are paginated.
|
|
42
43
|
|
|
@@ -66,7 +67,7 @@ class DriverCoachAssignmentsClient:
|
|
|
66
67
|
|
|
67
68
|
Returns
|
|
68
69
|
-------
|
|
69
|
-
|
|
70
|
+
SyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]
|
|
70
71
|
OK response.
|
|
71
72
|
|
|
72
73
|
Examples
|
|
@@ -76,16 +77,20 @@ class DriverCoachAssignmentsClient:
|
|
|
76
77
|
client = Samsara(
|
|
77
78
|
token="YOUR_TOKEN",
|
|
78
79
|
)
|
|
79
|
-
client.coaching.driver_coach_assignments.list()
|
|
80
|
+
response = client.coaching.driver_coach_assignments.list()
|
|
81
|
+
for item in response:
|
|
82
|
+
yield item
|
|
83
|
+
# alternatively, you can paginate page-by-page
|
|
84
|
+
for page in response.iter_pages():
|
|
85
|
+
yield page
|
|
80
86
|
"""
|
|
81
|
-
|
|
87
|
+
return self._raw_client.list(
|
|
82
88
|
driver_ids=driver_ids,
|
|
83
89
|
coach_ids=coach_ids,
|
|
84
90
|
include_external_ids=include_external_ids,
|
|
85
91
|
after=after,
|
|
86
92
|
request_options=request_options,
|
|
87
93
|
)
|
|
88
|
-
return _response.data
|
|
89
94
|
|
|
90
95
|
def update(
|
|
91
96
|
self,
|
|
@@ -158,7 +163,7 @@ class AsyncDriverCoachAssignmentsClient:
|
|
|
158
163
|
include_external_ids: typing.Optional[bool] = None,
|
|
159
164
|
after: typing.Optional[str] = None,
|
|
160
165
|
request_options: typing.Optional[RequestOptions] = None,
|
|
161
|
-
) ->
|
|
166
|
+
) -> AsyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]:
|
|
162
167
|
"""
|
|
163
168
|
This endpoint will return coach assignments for your organization based on the parameters passed in. Results are paginated.
|
|
164
169
|
|
|
@@ -188,7 +193,7 @@ class AsyncDriverCoachAssignmentsClient:
|
|
|
188
193
|
|
|
189
194
|
Returns
|
|
190
195
|
-------
|
|
191
|
-
|
|
196
|
+
AsyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]
|
|
192
197
|
OK response.
|
|
193
198
|
|
|
194
199
|
Examples
|
|
@@ -203,19 +208,24 @@ class AsyncDriverCoachAssignmentsClient:
|
|
|
203
208
|
|
|
204
209
|
|
|
205
210
|
async def main() -> None:
|
|
206
|
-
await client.coaching.driver_coach_assignments.list()
|
|
211
|
+
response = await client.coaching.driver_coach_assignments.list()
|
|
212
|
+
async for item in response:
|
|
213
|
+
yield item
|
|
214
|
+
|
|
215
|
+
# alternatively, you can paginate page-by-page
|
|
216
|
+
async for page in response.iter_pages():
|
|
217
|
+
yield page
|
|
207
218
|
|
|
208
219
|
|
|
209
220
|
asyncio.run(main())
|
|
210
221
|
"""
|
|
211
|
-
|
|
222
|
+
return await self._raw_client.list(
|
|
212
223
|
driver_ids=driver_ids,
|
|
213
224
|
coach_ids=coach_ids,
|
|
214
225
|
include_external_ids=include_external_ids,
|
|
215
226
|
after=after,
|
|
216
227
|
request_options=request_options,
|
|
217
228
|
)
|
|
218
|
-
return _response.data
|
|
219
229
|
|
|
220
230
|
async def update(
|
|
221
231
|
self,
|
|
@@ -6,6 +6,7 @@ from json.decoder import JSONDecodeError
|
|
|
6
6
|
from ...core.api_error import ApiError
|
|
7
7
|
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
8
|
from ...core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ...core.pagination import AsyncPager, BaseHttpResponse, SyncPager
|
|
9
10
|
from ...core.pydantic_utilities import parse_obj_as
|
|
10
11
|
from ...core.request_options import RequestOptions
|
|
11
12
|
from ...errors.bad_gateway_error import BadGatewayError
|
|
@@ -17,6 +18,9 @@ from ...errors.not_implemented_error import NotImplementedError
|
|
|
17
18
|
from ...errors.service_unavailable_error import ServiceUnavailableError
|
|
18
19
|
from ...errors.too_many_requests_error import TooManyRequestsError
|
|
19
20
|
from ...errors.unauthorized_error import UnauthorizedError
|
|
21
|
+
from ...types.coach_assignment_with_driver_external_ids_response_response_body import (
|
|
22
|
+
CoachAssignmentWithDriverExternalIdsResponseResponseBody,
|
|
23
|
+
)
|
|
20
24
|
from ...types.driver_coach_assignments_get_driver_coach_assignment_response_body import (
|
|
21
25
|
DriverCoachAssignmentsGetDriverCoachAssignmentResponseBody,
|
|
22
26
|
)
|
|
@@ -37,7 +41,7 @@ class RawDriverCoachAssignmentsClient:
|
|
|
37
41
|
include_external_ids: typing.Optional[bool] = None,
|
|
38
42
|
after: typing.Optional[str] = None,
|
|
39
43
|
request_options: typing.Optional[RequestOptions] = None,
|
|
40
|
-
) ->
|
|
44
|
+
) -> SyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]:
|
|
41
45
|
"""
|
|
42
46
|
This endpoint will return coach assignments for your organization based on the parameters passed in. Results are paginated.
|
|
43
47
|
|
|
@@ -67,7 +71,7 @@ class RawDriverCoachAssignmentsClient:
|
|
|
67
71
|
|
|
68
72
|
Returns
|
|
69
73
|
-------
|
|
70
|
-
|
|
74
|
+
SyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]
|
|
71
75
|
OK response.
|
|
72
76
|
"""
|
|
73
77
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -83,14 +87,29 @@ class RawDriverCoachAssignmentsClient:
|
|
|
83
87
|
)
|
|
84
88
|
try:
|
|
85
89
|
if 200 <= _response.status_code < 300:
|
|
86
|
-
|
|
90
|
+
_parsed_response = typing.cast(
|
|
87
91
|
DriverCoachAssignmentsGetDriverCoachAssignmentResponseBody,
|
|
88
92
|
parse_obj_as(
|
|
89
93
|
type_=DriverCoachAssignmentsGetDriverCoachAssignmentResponseBody, # type: ignore
|
|
90
94
|
object_=_response.json(),
|
|
91
95
|
),
|
|
92
96
|
)
|
|
93
|
-
|
|
97
|
+
_items = _parsed_response.data
|
|
98
|
+
_has_next = False
|
|
99
|
+
_get_next = None
|
|
100
|
+
if _parsed_response.pagination is not None:
|
|
101
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
102
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
103
|
+
_get_next = lambda: self.list(
|
|
104
|
+
driver_ids=driver_ids,
|
|
105
|
+
coach_ids=coach_ids,
|
|
106
|
+
include_external_ids=include_external_ids,
|
|
107
|
+
after=_parsed_next,
|
|
108
|
+
request_options=request_options,
|
|
109
|
+
)
|
|
110
|
+
return SyncPager(
|
|
111
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
112
|
+
)
|
|
94
113
|
if _response.status_code == 401:
|
|
95
114
|
raise UnauthorizedError(
|
|
96
115
|
headers=dict(_response.headers),
|
|
@@ -364,7 +383,7 @@ class AsyncRawDriverCoachAssignmentsClient:
|
|
|
364
383
|
include_external_ids: typing.Optional[bool] = None,
|
|
365
384
|
after: typing.Optional[str] = None,
|
|
366
385
|
request_options: typing.Optional[RequestOptions] = None,
|
|
367
|
-
) ->
|
|
386
|
+
) -> AsyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]:
|
|
368
387
|
"""
|
|
369
388
|
This endpoint will return coach assignments for your organization based on the parameters passed in. Results are paginated.
|
|
370
389
|
|
|
@@ -394,7 +413,7 @@ class AsyncRawDriverCoachAssignmentsClient:
|
|
|
394
413
|
|
|
395
414
|
Returns
|
|
396
415
|
-------
|
|
397
|
-
|
|
416
|
+
AsyncPager[CoachAssignmentWithDriverExternalIdsResponseResponseBody]
|
|
398
417
|
OK response.
|
|
399
418
|
"""
|
|
400
419
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -410,14 +429,32 @@ class AsyncRawDriverCoachAssignmentsClient:
|
|
|
410
429
|
)
|
|
411
430
|
try:
|
|
412
431
|
if 200 <= _response.status_code < 300:
|
|
413
|
-
|
|
432
|
+
_parsed_response = typing.cast(
|
|
414
433
|
DriverCoachAssignmentsGetDriverCoachAssignmentResponseBody,
|
|
415
434
|
parse_obj_as(
|
|
416
435
|
type_=DriverCoachAssignmentsGetDriverCoachAssignmentResponseBody, # type: ignore
|
|
417
436
|
object_=_response.json(),
|
|
418
437
|
),
|
|
419
438
|
)
|
|
420
|
-
|
|
439
|
+
_items = _parsed_response.data
|
|
440
|
+
_has_next = False
|
|
441
|
+
_get_next = None
|
|
442
|
+
if _parsed_response.pagination is not None:
|
|
443
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
444
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
445
|
+
|
|
446
|
+
async def _get_next():
|
|
447
|
+
return await self.list(
|
|
448
|
+
driver_ids=driver_ids,
|
|
449
|
+
coach_ids=coach_ids,
|
|
450
|
+
include_external_ids=include_external_ids,
|
|
451
|
+
after=_parsed_next,
|
|
452
|
+
request_options=request_options,
|
|
453
|
+
)
|
|
454
|
+
|
|
455
|
+
return AsyncPager(
|
|
456
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
457
|
+
)
|
|
421
458
|
if _response.status_code == 401:
|
|
422
459
|
raise UnauthorizedError(
|
|
423
460
|
headers=dict(_response.headers),
|
|
@@ -4,10 +4,9 @@ import datetime as dt
|
|
|
4
4
|
import typing
|
|
5
5
|
|
|
6
6
|
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
7
|
+
from ...core.pagination import AsyncPager, SyncPager
|
|
7
8
|
from ...core.request_options import RequestOptions
|
|
8
|
-
from ...types.
|
|
9
|
-
CoachingSessionsGetCoachingSessionsResponseBody,
|
|
10
|
-
)
|
|
9
|
+
from ...types.coaching_sessions_response_response_body import CoachingSessionsResponseResponseBody
|
|
11
10
|
from .raw_client import AsyncRawSessionsClient, RawSessionsClient
|
|
12
11
|
|
|
13
12
|
|
|
@@ -38,7 +37,7 @@ class SessionsClient:
|
|
|
38
37
|
after: typing.Optional[str] = None,
|
|
39
38
|
include_external_ids: typing.Optional[bool] = None,
|
|
40
39
|
request_options: typing.Optional[RequestOptions] = None,
|
|
41
|
-
) ->
|
|
40
|
+
) -> SyncPager[CoachingSessionsResponseResponseBody]:
|
|
42
41
|
"""
|
|
43
42
|
This endpoint will return coaching sessions for your organization based on the time parameters passed in. Results are paginated by sessions. If you include an endTime, the endpoint will return data up until that point. If you don’t include an endTime, you can continue to poll the API real-time with the pagination cursor that gets returned on every call.
|
|
44
43
|
|
|
@@ -80,7 +79,7 @@ class SessionsClient:
|
|
|
80
79
|
|
|
81
80
|
Returns
|
|
82
81
|
-------
|
|
83
|
-
|
|
82
|
+
SyncPager[CoachingSessionsResponseResponseBody]
|
|
84
83
|
OK response.
|
|
85
84
|
|
|
86
85
|
Examples
|
|
@@ -92,13 +91,18 @@ class SessionsClient:
|
|
|
92
91
|
client = Samsara(
|
|
93
92
|
token="YOUR_TOKEN",
|
|
94
93
|
)
|
|
95
|
-
client.coaching.sessions.stream(
|
|
94
|
+
response = client.coaching.sessions.stream(
|
|
96
95
|
start_time=datetime.datetime.fromisoformat(
|
|
97
96
|
"2024-01-15 09:30:00+00:00",
|
|
98
97
|
),
|
|
99
98
|
)
|
|
99
|
+
for item in response:
|
|
100
|
+
yield item
|
|
101
|
+
# alternatively, you can paginate page-by-page
|
|
102
|
+
for page in response.iter_pages():
|
|
103
|
+
yield page
|
|
100
104
|
"""
|
|
101
|
-
|
|
105
|
+
return self._raw_client.stream(
|
|
102
106
|
start_time=start_time,
|
|
103
107
|
driver_ids=driver_ids,
|
|
104
108
|
coach_ids=coach_ids,
|
|
@@ -109,7 +113,6 @@ class SessionsClient:
|
|
|
109
113
|
include_external_ids=include_external_ids,
|
|
110
114
|
request_options=request_options,
|
|
111
115
|
)
|
|
112
|
-
return _response.data
|
|
113
116
|
|
|
114
117
|
|
|
115
118
|
class AsyncSessionsClient:
|
|
@@ -139,7 +142,7 @@ class AsyncSessionsClient:
|
|
|
139
142
|
after: typing.Optional[str] = None,
|
|
140
143
|
include_external_ids: typing.Optional[bool] = None,
|
|
141
144
|
request_options: typing.Optional[RequestOptions] = None,
|
|
142
|
-
) ->
|
|
145
|
+
) -> AsyncPager[CoachingSessionsResponseResponseBody]:
|
|
143
146
|
"""
|
|
144
147
|
This endpoint will return coaching sessions for your organization based on the time parameters passed in. Results are paginated by sessions. If you include an endTime, the endpoint will return data up until that point. If you don’t include an endTime, you can continue to poll the API real-time with the pagination cursor that gets returned on every call.
|
|
145
148
|
|
|
@@ -181,7 +184,7 @@ class AsyncSessionsClient:
|
|
|
181
184
|
|
|
182
185
|
Returns
|
|
183
186
|
-------
|
|
184
|
-
|
|
187
|
+
AsyncPager[CoachingSessionsResponseResponseBody]
|
|
185
188
|
OK response.
|
|
186
189
|
|
|
187
190
|
Examples
|
|
@@ -197,16 +200,22 @@ class AsyncSessionsClient:
|
|
|
197
200
|
|
|
198
201
|
|
|
199
202
|
async def main() -> None:
|
|
200
|
-
await client.coaching.sessions.stream(
|
|
203
|
+
response = await client.coaching.sessions.stream(
|
|
201
204
|
start_time=datetime.datetime.fromisoformat(
|
|
202
205
|
"2024-01-15 09:30:00+00:00",
|
|
203
206
|
),
|
|
204
207
|
)
|
|
208
|
+
async for item in response:
|
|
209
|
+
yield item
|
|
210
|
+
|
|
211
|
+
# alternatively, you can paginate page-by-page
|
|
212
|
+
async for page in response.iter_pages():
|
|
213
|
+
yield page
|
|
205
214
|
|
|
206
215
|
|
|
207
216
|
asyncio.run(main())
|
|
208
217
|
"""
|
|
209
|
-
|
|
218
|
+
return await self._raw_client.stream(
|
|
210
219
|
start_time=start_time,
|
|
211
220
|
driver_ids=driver_ids,
|
|
212
221
|
coach_ids=coach_ids,
|
|
@@ -217,4 +226,3 @@ class AsyncSessionsClient:
|
|
|
217
226
|
include_external_ids=include_external_ids,
|
|
218
227
|
request_options=request_options,
|
|
219
228
|
)
|
|
220
|
-
return _response.data
|