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
|
@@ -5,11 +5,13 @@ from json.decoder import JSONDecodeError
|
|
|
5
5
|
|
|
6
6
|
from ...core.api_error import ApiError
|
|
7
7
|
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
-
from ...core.
|
|
8
|
+
from ...core.pagination import AsyncPager, BaseHttpResponse, SyncPager
|
|
9
9
|
from ...core.pydantic_utilities import parse_obj_as
|
|
10
10
|
from ...core.request_options import RequestOptions
|
|
11
11
|
from ...types.vehicle_stats_list_response import VehicleStatsListResponse
|
|
12
|
+
from ...types.vehicle_stats_list_response_data import VehicleStatsListResponseData
|
|
12
13
|
from ...types.vehicle_stats_response import VehicleStatsResponse
|
|
14
|
+
from ...types.vehicle_stats_response_data import VehicleStatsResponseData
|
|
13
15
|
from .types.stats_feed_request_decorations_item import StatsFeedRequestDecorationsItem
|
|
14
16
|
from .types.stats_feed_request_types_item import StatsFeedRequestTypesItem
|
|
15
17
|
from .types.stats_history_request_decorations_item import StatsHistoryRequestDecorationsItem
|
|
@@ -33,7 +35,7 @@ class RawStatsClient:
|
|
|
33
35
|
typing.Union[StatsListRequestTypesItem, typing.Sequence[StatsListRequestTypesItem]]
|
|
34
36
|
] = None,
|
|
35
37
|
request_options: typing.Optional[RequestOptions] = None,
|
|
36
|
-
) ->
|
|
38
|
+
) -> SyncPager[VehicleStatsResponseData]:
|
|
37
39
|
"""
|
|
38
40
|
Returns the last known stats of all vehicles at the given `time`. If no `time` is specified, the current time is used.
|
|
39
41
|
|
|
@@ -63,7 +65,7 @@ class RawStatsClient:
|
|
|
63
65
|
types : typing.Optional[typing.Union[StatsListRequestTypesItem, typing.Sequence[StatsListRequestTypesItem]]]
|
|
64
66
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
65
67
|
|
|
66
|
-
You may list ***up to
|
|
68
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
67
69
|
|
|
68
70
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
69
71
|
|
|
@@ -120,7 +122,7 @@ class RawStatsClient:
|
|
|
120
122
|
|
|
121
123
|
Returns
|
|
122
124
|
-------
|
|
123
|
-
|
|
125
|
+
SyncPager[VehicleStatsResponseData]
|
|
124
126
|
Vehicle stats snapshot
|
|
125
127
|
"""
|
|
126
128
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -138,14 +140,31 @@ class RawStatsClient:
|
|
|
138
140
|
)
|
|
139
141
|
try:
|
|
140
142
|
if 200 <= _response.status_code < 300:
|
|
141
|
-
|
|
143
|
+
_parsed_response = typing.cast(
|
|
142
144
|
VehicleStatsResponse,
|
|
143
145
|
parse_obj_as(
|
|
144
146
|
type_=VehicleStatsResponse, # type: ignore
|
|
145
147
|
object_=_response.json(),
|
|
146
148
|
),
|
|
147
149
|
)
|
|
148
|
-
|
|
150
|
+
_items = _parsed_response.data
|
|
151
|
+
_has_next = False
|
|
152
|
+
_get_next = None
|
|
153
|
+
if _parsed_response.pagination is not None:
|
|
154
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
155
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
156
|
+
_get_next = lambda: self.list(
|
|
157
|
+
after=_parsed_next,
|
|
158
|
+
time=time,
|
|
159
|
+
parent_tag_ids=parent_tag_ids,
|
|
160
|
+
tag_ids=tag_ids,
|
|
161
|
+
vehicle_ids=vehicle_ids,
|
|
162
|
+
types=types,
|
|
163
|
+
request_options=request_options,
|
|
164
|
+
)
|
|
165
|
+
return SyncPager(
|
|
166
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
167
|
+
)
|
|
149
168
|
_response_json = _response.json()
|
|
150
169
|
except JSONDecodeError:
|
|
151
170
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -165,7 +184,7 @@ class RawStatsClient:
|
|
|
165
184
|
typing.Union[StatsFeedRequestDecorationsItem, typing.Sequence[StatsFeedRequestDecorationsItem]]
|
|
166
185
|
] = None,
|
|
167
186
|
request_options: typing.Optional[RequestOptions] = None,
|
|
168
|
-
) ->
|
|
187
|
+
) -> SyncPager[VehicleStatsListResponseData]:
|
|
169
188
|
"""
|
|
170
189
|
Follow a feed of vehicle stats.
|
|
171
190
|
|
|
@@ -198,7 +217,7 @@ class RawStatsClient:
|
|
|
198
217
|
types : typing.Optional[typing.Union[StatsFeedRequestTypesItem, typing.Sequence[StatsFeedRequestTypesItem]]]
|
|
199
218
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
200
219
|
|
|
201
|
-
You may list ***up to
|
|
220
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
202
221
|
|
|
203
222
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
204
223
|
|
|
@@ -308,7 +327,7 @@ class RawStatsClient:
|
|
|
308
327
|
|
|
309
328
|
Returns
|
|
310
329
|
-------
|
|
311
|
-
|
|
330
|
+
SyncPager[VehicleStatsListResponseData]
|
|
312
331
|
List of stat events for the specified vehicles and stat types.
|
|
313
332
|
"""
|
|
314
333
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -326,14 +345,31 @@ class RawStatsClient:
|
|
|
326
345
|
)
|
|
327
346
|
try:
|
|
328
347
|
if 200 <= _response.status_code < 300:
|
|
329
|
-
|
|
348
|
+
_parsed_response = typing.cast(
|
|
330
349
|
VehicleStatsListResponse,
|
|
331
350
|
parse_obj_as(
|
|
332
351
|
type_=VehicleStatsListResponse, # type: ignore
|
|
333
352
|
object_=_response.json(),
|
|
334
353
|
),
|
|
335
354
|
)
|
|
336
|
-
|
|
355
|
+
_items = _parsed_response.data
|
|
356
|
+
_has_next = False
|
|
357
|
+
_get_next = None
|
|
358
|
+
if _parsed_response.pagination is not None:
|
|
359
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
360
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
361
|
+
_get_next = lambda: self.feed(
|
|
362
|
+
after=_parsed_next,
|
|
363
|
+
parent_tag_ids=parent_tag_ids,
|
|
364
|
+
tag_ids=tag_ids,
|
|
365
|
+
vehicle_ids=vehicle_ids,
|
|
366
|
+
types=types,
|
|
367
|
+
decorations=decorations,
|
|
368
|
+
request_options=request_options,
|
|
369
|
+
)
|
|
370
|
+
return SyncPager(
|
|
371
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
372
|
+
)
|
|
337
373
|
_response_json = _response.json()
|
|
338
374
|
except JSONDecodeError:
|
|
339
375
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -355,7 +391,7 @@ class RawStatsClient:
|
|
|
355
391
|
typing.Union[StatsHistoryRequestDecorationsItem, typing.Sequence[StatsHistoryRequestDecorationsItem]]
|
|
356
392
|
] = None,
|
|
357
393
|
request_options: typing.Optional[RequestOptions] = None,
|
|
358
|
-
) ->
|
|
394
|
+
) -> SyncPager[VehicleStatsListResponseData]:
|
|
359
395
|
"""
|
|
360
396
|
Returns vehicle stats during the given time range for all vehicles. This can be optionally filtered by tags or specific vehicle IDs.
|
|
361
397
|
|
|
@@ -388,7 +424,7 @@ class RawStatsClient:
|
|
|
388
424
|
types : typing.Optional[typing.Union[StatsHistoryRequestTypesItem, typing.Sequence[StatsHistoryRequestTypesItem]]]
|
|
389
425
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
390
426
|
|
|
391
|
-
You may list ***up to
|
|
427
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
392
428
|
|
|
393
429
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
394
430
|
|
|
@@ -498,7 +534,7 @@ class RawStatsClient:
|
|
|
498
534
|
|
|
499
535
|
Returns
|
|
500
536
|
-------
|
|
501
|
-
|
|
537
|
+
SyncPager[VehicleStatsListResponseData]
|
|
502
538
|
List of vehicle stats for the specified vehicles, stat type, and time range.
|
|
503
539
|
"""
|
|
504
540
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -518,14 +554,33 @@ class RawStatsClient:
|
|
|
518
554
|
)
|
|
519
555
|
try:
|
|
520
556
|
if 200 <= _response.status_code < 300:
|
|
521
|
-
|
|
557
|
+
_parsed_response = typing.cast(
|
|
522
558
|
VehicleStatsListResponse,
|
|
523
559
|
parse_obj_as(
|
|
524
560
|
type_=VehicleStatsListResponse, # type: ignore
|
|
525
561
|
object_=_response.json(),
|
|
526
562
|
),
|
|
527
563
|
)
|
|
528
|
-
|
|
564
|
+
_items = _parsed_response.data
|
|
565
|
+
_has_next = False
|
|
566
|
+
_get_next = None
|
|
567
|
+
if _parsed_response.pagination is not None:
|
|
568
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
569
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
570
|
+
_get_next = lambda: self.history(
|
|
571
|
+
start_time=start_time,
|
|
572
|
+
end_time=end_time,
|
|
573
|
+
after=_parsed_next,
|
|
574
|
+
parent_tag_ids=parent_tag_ids,
|
|
575
|
+
tag_ids=tag_ids,
|
|
576
|
+
vehicle_ids=vehicle_ids,
|
|
577
|
+
types=types,
|
|
578
|
+
decorations=decorations,
|
|
579
|
+
request_options=request_options,
|
|
580
|
+
)
|
|
581
|
+
return SyncPager(
|
|
582
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
583
|
+
)
|
|
529
584
|
_response_json = _response.json()
|
|
530
585
|
except JSONDecodeError:
|
|
531
586
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -548,7 +603,7 @@ class AsyncRawStatsClient:
|
|
|
548
603
|
typing.Union[StatsListRequestTypesItem, typing.Sequence[StatsListRequestTypesItem]]
|
|
549
604
|
] = None,
|
|
550
605
|
request_options: typing.Optional[RequestOptions] = None,
|
|
551
|
-
) ->
|
|
606
|
+
) -> AsyncPager[VehicleStatsResponseData]:
|
|
552
607
|
"""
|
|
553
608
|
Returns the last known stats of all vehicles at the given `time`. If no `time` is specified, the current time is used.
|
|
554
609
|
|
|
@@ -578,7 +633,7 @@ class AsyncRawStatsClient:
|
|
|
578
633
|
types : typing.Optional[typing.Union[StatsListRequestTypesItem, typing.Sequence[StatsListRequestTypesItem]]]
|
|
579
634
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
580
635
|
|
|
581
|
-
You may list ***up to
|
|
636
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
582
637
|
|
|
583
638
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
584
639
|
|
|
@@ -635,7 +690,7 @@ class AsyncRawStatsClient:
|
|
|
635
690
|
|
|
636
691
|
Returns
|
|
637
692
|
-------
|
|
638
|
-
|
|
693
|
+
AsyncPager[VehicleStatsResponseData]
|
|
639
694
|
Vehicle stats snapshot
|
|
640
695
|
"""
|
|
641
696
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -653,14 +708,34 @@ class AsyncRawStatsClient:
|
|
|
653
708
|
)
|
|
654
709
|
try:
|
|
655
710
|
if 200 <= _response.status_code < 300:
|
|
656
|
-
|
|
711
|
+
_parsed_response = typing.cast(
|
|
657
712
|
VehicleStatsResponse,
|
|
658
713
|
parse_obj_as(
|
|
659
714
|
type_=VehicleStatsResponse, # type: ignore
|
|
660
715
|
object_=_response.json(),
|
|
661
716
|
),
|
|
662
717
|
)
|
|
663
|
-
|
|
718
|
+
_items = _parsed_response.data
|
|
719
|
+
_has_next = False
|
|
720
|
+
_get_next = None
|
|
721
|
+
if _parsed_response.pagination is not None:
|
|
722
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
723
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
724
|
+
|
|
725
|
+
async def _get_next():
|
|
726
|
+
return await self.list(
|
|
727
|
+
after=_parsed_next,
|
|
728
|
+
time=time,
|
|
729
|
+
parent_tag_ids=parent_tag_ids,
|
|
730
|
+
tag_ids=tag_ids,
|
|
731
|
+
vehicle_ids=vehicle_ids,
|
|
732
|
+
types=types,
|
|
733
|
+
request_options=request_options,
|
|
734
|
+
)
|
|
735
|
+
|
|
736
|
+
return AsyncPager(
|
|
737
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
738
|
+
)
|
|
664
739
|
_response_json = _response.json()
|
|
665
740
|
except JSONDecodeError:
|
|
666
741
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -680,7 +755,7 @@ class AsyncRawStatsClient:
|
|
|
680
755
|
typing.Union[StatsFeedRequestDecorationsItem, typing.Sequence[StatsFeedRequestDecorationsItem]]
|
|
681
756
|
] = None,
|
|
682
757
|
request_options: typing.Optional[RequestOptions] = None,
|
|
683
|
-
) ->
|
|
758
|
+
) -> AsyncPager[VehicleStatsListResponseData]:
|
|
684
759
|
"""
|
|
685
760
|
Follow a feed of vehicle stats.
|
|
686
761
|
|
|
@@ -713,7 +788,7 @@ class AsyncRawStatsClient:
|
|
|
713
788
|
types : typing.Optional[typing.Union[StatsFeedRequestTypesItem, typing.Sequence[StatsFeedRequestTypesItem]]]
|
|
714
789
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
715
790
|
|
|
716
|
-
You may list ***up to
|
|
791
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
717
792
|
|
|
718
793
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
719
794
|
|
|
@@ -823,7 +898,7 @@ class AsyncRawStatsClient:
|
|
|
823
898
|
|
|
824
899
|
Returns
|
|
825
900
|
-------
|
|
826
|
-
|
|
901
|
+
AsyncPager[VehicleStatsListResponseData]
|
|
827
902
|
List of stat events for the specified vehicles and stat types.
|
|
828
903
|
"""
|
|
829
904
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -841,14 +916,34 @@ class AsyncRawStatsClient:
|
|
|
841
916
|
)
|
|
842
917
|
try:
|
|
843
918
|
if 200 <= _response.status_code < 300:
|
|
844
|
-
|
|
919
|
+
_parsed_response = typing.cast(
|
|
845
920
|
VehicleStatsListResponse,
|
|
846
921
|
parse_obj_as(
|
|
847
922
|
type_=VehicleStatsListResponse, # type: ignore
|
|
848
923
|
object_=_response.json(),
|
|
849
924
|
),
|
|
850
925
|
)
|
|
851
|
-
|
|
926
|
+
_items = _parsed_response.data
|
|
927
|
+
_has_next = False
|
|
928
|
+
_get_next = None
|
|
929
|
+
if _parsed_response.pagination is not None:
|
|
930
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
931
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
932
|
+
|
|
933
|
+
async def _get_next():
|
|
934
|
+
return await self.feed(
|
|
935
|
+
after=_parsed_next,
|
|
936
|
+
parent_tag_ids=parent_tag_ids,
|
|
937
|
+
tag_ids=tag_ids,
|
|
938
|
+
vehicle_ids=vehicle_ids,
|
|
939
|
+
types=types,
|
|
940
|
+
decorations=decorations,
|
|
941
|
+
request_options=request_options,
|
|
942
|
+
)
|
|
943
|
+
|
|
944
|
+
return AsyncPager(
|
|
945
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
946
|
+
)
|
|
852
947
|
_response_json = _response.json()
|
|
853
948
|
except JSONDecodeError:
|
|
854
949
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -870,7 +965,7 @@ class AsyncRawStatsClient:
|
|
|
870
965
|
typing.Union[StatsHistoryRequestDecorationsItem, typing.Sequence[StatsHistoryRequestDecorationsItem]]
|
|
871
966
|
] = None,
|
|
872
967
|
request_options: typing.Optional[RequestOptions] = None,
|
|
873
|
-
) ->
|
|
968
|
+
) -> AsyncPager[VehicleStatsListResponseData]:
|
|
874
969
|
"""
|
|
875
970
|
Returns vehicle stats during the given time range for all vehicles. This can be optionally filtered by tags or specific vehicle IDs.
|
|
876
971
|
|
|
@@ -903,7 +998,7 @@ class AsyncRawStatsClient:
|
|
|
903
998
|
types : typing.Optional[typing.Union[StatsHistoryRequestTypesItem, typing.Sequence[StatsHistoryRequestTypesItem]]]
|
|
904
999
|
The stat types you want this endpoint to return information on. See also the <a href="/docs/telematics#query-parameters" target="_blank">Telematics</a> guide for more details.
|
|
905
1000
|
|
|
906
|
-
You may list ***up to
|
|
1001
|
+
You may list ***up to 4*** types using comma-separated format. For example: `types=gps,engineStates,obdOdometerMeters`.
|
|
907
1002
|
|
|
908
1003
|
*Note:* `auxInput3`-`auxInput10` count as a single type against the limit of 3. For example, you could list `types=engineStates,obdOdometerMeters,auxInput3,auxInput4` because `auxInput3` and `auxInput4` count as a single stat type. `auxInput1` and `auxInput2` still count as their own individual types.
|
|
909
1004
|
|
|
@@ -1013,7 +1108,7 @@ class AsyncRawStatsClient:
|
|
|
1013
1108
|
|
|
1014
1109
|
Returns
|
|
1015
1110
|
-------
|
|
1016
|
-
|
|
1111
|
+
AsyncPager[VehicleStatsListResponseData]
|
|
1017
1112
|
List of vehicle stats for the specified vehicles, stat type, and time range.
|
|
1018
1113
|
"""
|
|
1019
1114
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -1033,14 +1128,36 @@ class AsyncRawStatsClient:
|
|
|
1033
1128
|
)
|
|
1034
1129
|
try:
|
|
1035
1130
|
if 200 <= _response.status_code < 300:
|
|
1036
|
-
|
|
1131
|
+
_parsed_response = typing.cast(
|
|
1037
1132
|
VehicleStatsListResponse,
|
|
1038
1133
|
parse_obj_as(
|
|
1039
1134
|
type_=VehicleStatsListResponse, # type: ignore
|
|
1040
1135
|
object_=_response.json(),
|
|
1041
1136
|
),
|
|
1042
1137
|
)
|
|
1043
|
-
|
|
1138
|
+
_items = _parsed_response.data
|
|
1139
|
+
_has_next = False
|
|
1140
|
+
_get_next = None
|
|
1141
|
+
if _parsed_response.pagination is not None:
|
|
1142
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
1143
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
1144
|
+
|
|
1145
|
+
async def _get_next():
|
|
1146
|
+
return await self.history(
|
|
1147
|
+
start_time=start_time,
|
|
1148
|
+
end_time=end_time,
|
|
1149
|
+
after=_parsed_next,
|
|
1150
|
+
parent_tag_ids=parent_tag_ids,
|
|
1151
|
+
tag_ids=tag_ids,
|
|
1152
|
+
vehicle_ids=vehicle_ids,
|
|
1153
|
+
types=types,
|
|
1154
|
+
decorations=decorations,
|
|
1155
|
+
request_options=request_options,
|
|
1156
|
+
)
|
|
1157
|
+
|
|
1158
|
+
return AsyncPager(
|
|
1159
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
1160
|
+
)
|
|
1044
1161
|
_response_json = _response.json()
|
|
1045
1162
|
except JSONDecodeError:
|
|
1046
1163
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
samsara/webhooks/client.py
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
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
8
|
from ..types.custom_headers_object_request_body import CustomHeadersObjectRequestBody
|
|
9
|
+
from ..types.webhook_response_response_body import WebhookResponseResponseBody
|
|
8
10
|
from ..types.webhooks_get_webhook_response_body import WebhooksGetWebhookResponseBody
|
|
9
|
-
from ..types.webhooks_list_webhooks_response_body import WebhooksListWebhooksResponseBody
|
|
10
11
|
from ..types.webhooks_patch_webhook_response_body import WebhooksPatchWebhookResponseBody
|
|
11
12
|
from ..types.webhooks_post_webhooks_response_body import WebhooksPostWebhooksResponseBody
|
|
12
13
|
from .raw_client import AsyncRawWebhooksClient, RawWebhooksClient
|
|
@@ -40,7 +41,7 @@ class WebhooksClient:
|
|
|
40
41
|
limit: typing.Optional[int] = None,
|
|
41
42
|
after: typing.Optional[str] = None,
|
|
42
43
|
request_options: typing.Optional[RequestOptions] = None,
|
|
43
|
-
) ->
|
|
44
|
+
) -> SyncPager[WebhookResponseResponseBody]:
|
|
44
45
|
"""
|
|
45
46
|
List all webhooks belonging to a specific org.
|
|
46
47
|
|
|
@@ -67,7 +68,7 @@ class WebhooksClient:
|
|
|
67
68
|
|
|
68
69
|
Returns
|
|
69
70
|
-------
|
|
70
|
-
|
|
71
|
+
SyncPager[WebhookResponseResponseBody]
|
|
71
72
|
OK response.
|
|
72
73
|
|
|
73
74
|
Examples
|
|
@@ -77,10 +78,14 @@ class WebhooksClient:
|
|
|
77
78
|
client = Samsara(
|
|
78
79
|
token="YOUR_TOKEN",
|
|
79
80
|
)
|
|
80
|
-
client.webhooks.list()
|
|
81
|
+
response = client.webhooks.list()
|
|
82
|
+
for item in response:
|
|
83
|
+
yield item
|
|
84
|
+
# alternatively, you can paginate page-by-page
|
|
85
|
+
for page in response.iter_pages():
|
|
86
|
+
yield page
|
|
81
87
|
"""
|
|
82
|
-
|
|
83
|
-
return _response.data
|
|
88
|
+
return self._raw_client.list(ids=ids, limit=limit, after=after, request_options=request_options)
|
|
84
89
|
|
|
85
90
|
def create(
|
|
86
91
|
self,
|
|
@@ -312,7 +317,7 @@ class AsyncWebhooksClient:
|
|
|
312
317
|
limit: typing.Optional[int] = None,
|
|
313
318
|
after: typing.Optional[str] = None,
|
|
314
319
|
request_options: typing.Optional[RequestOptions] = None,
|
|
315
|
-
) ->
|
|
320
|
+
) -> AsyncPager[WebhookResponseResponseBody]:
|
|
316
321
|
"""
|
|
317
322
|
List all webhooks belonging to a specific org.
|
|
318
323
|
|
|
@@ -339,7 +344,7 @@ class AsyncWebhooksClient:
|
|
|
339
344
|
|
|
340
345
|
Returns
|
|
341
346
|
-------
|
|
342
|
-
|
|
347
|
+
AsyncPager[WebhookResponseResponseBody]
|
|
343
348
|
OK response.
|
|
344
349
|
|
|
345
350
|
Examples
|
|
@@ -354,13 +359,18 @@ class AsyncWebhooksClient:
|
|
|
354
359
|
|
|
355
360
|
|
|
356
361
|
async def main() -> None:
|
|
357
|
-
await client.webhooks.list()
|
|
362
|
+
response = await client.webhooks.list()
|
|
363
|
+
async for item in response:
|
|
364
|
+
yield item
|
|
365
|
+
|
|
366
|
+
# alternatively, you can paginate page-by-page
|
|
367
|
+
async for page in response.iter_pages():
|
|
368
|
+
yield page
|
|
358
369
|
|
|
359
370
|
|
|
360
371
|
asyncio.run(main())
|
|
361
372
|
"""
|
|
362
|
-
|
|
363
|
-
return _response.data
|
|
373
|
+
return await self._raw_client.list(ids=ids, limit=limit, after=after, request_options=request_options)
|
|
364
374
|
|
|
365
375
|
async def create(
|
|
366
376
|
self,
|
samsara/webhooks/raw_client.py
CHANGED
|
@@ -7,6 +7,7 @@ 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
|
|
12
13
|
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
@@ -20,6 +21,7 @@ from ..errors.service_unavailable_error import ServiceUnavailableError
|
|
|
20
21
|
from ..errors.too_many_requests_error import TooManyRequestsError
|
|
21
22
|
from ..errors.unauthorized_error import UnauthorizedError
|
|
22
23
|
from ..types.custom_headers_object_request_body import CustomHeadersObjectRequestBody
|
|
24
|
+
from ..types.webhook_response_response_body import WebhookResponseResponseBody
|
|
23
25
|
from ..types.webhooks_get_webhook_response_body import WebhooksGetWebhookResponseBody
|
|
24
26
|
from ..types.webhooks_list_webhooks_response_body import WebhooksListWebhooksResponseBody
|
|
25
27
|
from ..types.webhooks_patch_webhook_response_body import WebhooksPatchWebhookResponseBody
|
|
@@ -43,7 +45,7 @@ class RawWebhooksClient:
|
|
|
43
45
|
limit: typing.Optional[int] = None,
|
|
44
46
|
after: typing.Optional[str] = None,
|
|
45
47
|
request_options: typing.Optional[RequestOptions] = None,
|
|
46
|
-
) ->
|
|
48
|
+
) -> SyncPager[WebhookResponseResponseBody]:
|
|
47
49
|
"""
|
|
48
50
|
List all webhooks belonging to a specific org.
|
|
49
51
|
|
|
@@ -70,7 +72,7 @@ class RawWebhooksClient:
|
|
|
70
72
|
|
|
71
73
|
Returns
|
|
72
74
|
-------
|
|
73
|
-
|
|
75
|
+
SyncPager[WebhookResponseResponseBody]
|
|
74
76
|
OK response.
|
|
75
77
|
"""
|
|
76
78
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -85,14 +87,28 @@ class RawWebhooksClient:
|
|
|
85
87
|
)
|
|
86
88
|
try:
|
|
87
89
|
if 200 <= _response.status_code < 300:
|
|
88
|
-
|
|
90
|
+
_parsed_response = typing.cast(
|
|
89
91
|
WebhooksListWebhooksResponseBody,
|
|
90
92
|
parse_obj_as(
|
|
91
93
|
type_=WebhooksListWebhooksResponseBody, # type: ignore
|
|
92
94
|
object_=_response.json(),
|
|
93
95
|
),
|
|
94
96
|
)
|
|
95
|
-
|
|
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
|
+
ids=ids,
|
|
105
|
+
limit=limit,
|
|
106
|
+
after=_parsed_next,
|
|
107
|
+
request_options=request_options,
|
|
108
|
+
)
|
|
109
|
+
return SyncPager(
|
|
110
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
111
|
+
)
|
|
96
112
|
if _response.status_code == 401:
|
|
97
113
|
raise UnauthorizedError(
|
|
98
114
|
headers=dict(_response.headers),
|
|
@@ -848,7 +864,7 @@ class AsyncRawWebhooksClient:
|
|
|
848
864
|
limit: typing.Optional[int] = None,
|
|
849
865
|
after: typing.Optional[str] = None,
|
|
850
866
|
request_options: typing.Optional[RequestOptions] = None,
|
|
851
|
-
) ->
|
|
867
|
+
) -> AsyncPager[WebhookResponseResponseBody]:
|
|
852
868
|
"""
|
|
853
869
|
List all webhooks belonging to a specific org.
|
|
854
870
|
|
|
@@ -875,7 +891,7 @@ class AsyncRawWebhooksClient:
|
|
|
875
891
|
|
|
876
892
|
Returns
|
|
877
893
|
-------
|
|
878
|
-
|
|
894
|
+
AsyncPager[WebhookResponseResponseBody]
|
|
879
895
|
OK response.
|
|
880
896
|
"""
|
|
881
897
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -890,14 +906,31 @@ class AsyncRawWebhooksClient:
|
|
|
890
906
|
)
|
|
891
907
|
try:
|
|
892
908
|
if 200 <= _response.status_code < 300:
|
|
893
|
-
|
|
909
|
+
_parsed_response = typing.cast(
|
|
894
910
|
WebhooksListWebhooksResponseBody,
|
|
895
911
|
parse_obj_as(
|
|
896
912
|
type_=WebhooksListWebhooksResponseBody, # type: ignore
|
|
897
913
|
object_=_response.json(),
|
|
898
914
|
),
|
|
899
915
|
)
|
|
900
|
-
|
|
916
|
+
_items = _parsed_response.data
|
|
917
|
+
_has_next = False
|
|
918
|
+
_get_next = None
|
|
919
|
+
if _parsed_response.pagination is not None:
|
|
920
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
921
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
922
|
+
|
|
923
|
+
async def _get_next():
|
|
924
|
+
return await self.list(
|
|
925
|
+
ids=ids,
|
|
926
|
+
limit=limit,
|
|
927
|
+
after=_parsed_next,
|
|
928
|
+
request_options=request_options,
|
|
929
|
+
)
|
|
930
|
+
|
|
931
|
+
return AsyncPager(
|
|
932
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
933
|
+
)
|
|
901
934
|
if _response.status_code == 401:
|
|
902
935
|
raise UnauthorizedError(
|
|
903
936
|
headers=dict(_response.headers),
|