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
samsara/tags/raw_client.py
CHANGED
|
@@ -7,9 +7,11 @@ 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 ..types.list_tags_response import ListTagsResponse
|
|
14
|
+
from ..types.tag import Tag
|
|
13
15
|
from ..types.tag_response import TagResponse
|
|
14
16
|
from ..types.tagged_object_id import TaggedObjectId
|
|
15
17
|
|
|
@@ -27,7 +29,7 @@ class RawTagsClient:
|
|
|
27
29
|
limit: typing.Optional[int] = None,
|
|
28
30
|
after: typing.Optional[str] = None,
|
|
29
31
|
request_options: typing.Optional[RequestOptions] = None,
|
|
30
|
-
) ->
|
|
32
|
+
) -> SyncPager[Tag]:
|
|
31
33
|
"""
|
|
32
34
|
Return all of the tags for an organization.
|
|
33
35
|
|
|
@@ -48,7 +50,7 @@ class RawTagsClient:
|
|
|
48
50
|
|
|
49
51
|
Returns
|
|
50
52
|
-------
|
|
51
|
-
|
|
53
|
+
SyncPager[Tag]
|
|
52
54
|
List of tags.
|
|
53
55
|
"""
|
|
54
56
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -62,14 +64,27 @@ class RawTagsClient:
|
|
|
62
64
|
)
|
|
63
65
|
try:
|
|
64
66
|
if 200 <= _response.status_code < 300:
|
|
65
|
-
|
|
67
|
+
_parsed_response = typing.cast(
|
|
66
68
|
ListTagsResponse,
|
|
67
69
|
parse_obj_as(
|
|
68
70
|
type_=ListTagsResponse, # type: ignore
|
|
69
71
|
object_=_response.json(),
|
|
70
72
|
),
|
|
71
73
|
)
|
|
72
|
-
|
|
74
|
+
_items = _parsed_response.data
|
|
75
|
+
_has_next = False
|
|
76
|
+
_get_next = None
|
|
77
|
+
if _parsed_response.pagination is not None:
|
|
78
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
79
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
80
|
+
_get_next = lambda: self.list(
|
|
81
|
+
limit=limit,
|
|
82
|
+
after=_parsed_next,
|
|
83
|
+
request_options=request_options,
|
|
84
|
+
)
|
|
85
|
+
return SyncPager(
|
|
86
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
87
|
+
)
|
|
73
88
|
_response_json = _response.json()
|
|
74
89
|
except JSONDecodeError:
|
|
75
90
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -458,7 +473,7 @@ class AsyncRawTagsClient:
|
|
|
458
473
|
limit: typing.Optional[int] = None,
|
|
459
474
|
after: typing.Optional[str] = None,
|
|
460
475
|
request_options: typing.Optional[RequestOptions] = None,
|
|
461
|
-
) ->
|
|
476
|
+
) -> AsyncPager[Tag]:
|
|
462
477
|
"""
|
|
463
478
|
Return all of the tags for an organization.
|
|
464
479
|
|
|
@@ -479,7 +494,7 @@ class AsyncRawTagsClient:
|
|
|
479
494
|
|
|
480
495
|
Returns
|
|
481
496
|
-------
|
|
482
|
-
|
|
497
|
+
AsyncPager[Tag]
|
|
483
498
|
List of tags.
|
|
484
499
|
"""
|
|
485
500
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -493,14 +508,30 @@ class AsyncRawTagsClient:
|
|
|
493
508
|
)
|
|
494
509
|
try:
|
|
495
510
|
if 200 <= _response.status_code < 300:
|
|
496
|
-
|
|
511
|
+
_parsed_response = typing.cast(
|
|
497
512
|
ListTagsResponse,
|
|
498
513
|
parse_obj_as(
|
|
499
514
|
type_=ListTagsResponse, # type: ignore
|
|
500
515
|
object_=_response.json(),
|
|
501
516
|
),
|
|
502
517
|
)
|
|
503
|
-
|
|
518
|
+
_items = _parsed_response.data
|
|
519
|
+
_has_next = False
|
|
520
|
+
_get_next = None
|
|
521
|
+
if _parsed_response.pagination is not None:
|
|
522
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
523
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
524
|
+
|
|
525
|
+
async def _get_next():
|
|
526
|
+
return await self.list(
|
|
527
|
+
limit=limit,
|
|
528
|
+
after=_parsed_next,
|
|
529
|
+
request_options=request_options,
|
|
530
|
+
)
|
|
531
|
+
|
|
532
|
+
return AsyncPager(
|
|
533
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
534
|
+
)
|
|
504
535
|
_response_json = _response.json()
|
|
505
536
|
except JSONDecodeError:
|
|
506
537
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
samsara/trailers/client.py
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
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.goa_attribute_tiny_request_body import GoaAttributeTinyRequestBody
|
|
9
|
+
from ..types.trailer_response_object_response_body import TrailerResponseObjectResponseBody
|
|
8
10
|
from ..types.trailers_create_trailer_response_body import TrailersCreateTrailerResponseBody
|
|
9
11
|
from ..types.trailers_get_trailer_response_body import TrailersGetTrailerResponseBody
|
|
10
|
-
from ..types.trailers_list_trailers_response_body import TrailersListTrailersResponseBody
|
|
11
12
|
from ..types.trailers_update_trailer_response_body import TrailersUpdateTrailerResponseBody
|
|
12
13
|
from .raw_client import AsyncRawTrailersClient, RawTrailersClient
|
|
13
14
|
|
|
@@ -38,7 +39,7 @@ class TrailersClient:
|
|
|
38
39
|
limit: typing.Optional[int] = None,
|
|
39
40
|
after: typing.Optional[str] = None,
|
|
40
41
|
request_options: typing.Optional[RequestOptions] = None,
|
|
41
|
-
) ->
|
|
42
|
+
) -> SyncPager[TrailerResponseObjectResponseBody]:
|
|
42
43
|
"""
|
|
43
44
|
List all trailers.
|
|
44
45
|
|
|
@@ -68,7 +69,7 @@ class TrailersClient:
|
|
|
68
69
|
|
|
69
70
|
Returns
|
|
70
71
|
-------
|
|
71
|
-
|
|
72
|
+
SyncPager[TrailerResponseObjectResponseBody]
|
|
72
73
|
OK response.
|
|
73
74
|
|
|
74
75
|
Examples
|
|
@@ -78,12 +79,16 @@ class TrailersClient:
|
|
|
78
79
|
client = Samsara(
|
|
79
80
|
token="YOUR_TOKEN",
|
|
80
81
|
)
|
|
81
|
-
client.trailers.list()
|
|
82
|
+
response = client.trailers.list()
|
|
83
|
+
for item in response:
|
|
84
|
+
yield item
|
|
85
|
+
# alternatively, you can paginate page-by-page
|
|
86
|
+
for page in response.iter_pages():
|
|
87
|
+
yield page
|
|
82
88
|
"""
|
|
83
|
-
|
|
89
|
+
return self._raw_client.list(
|
|
84
90
|
tag_ids=tag_ids, parent_tag_ids=parent_tag_ids, limit=limit, after=after, request_options=request_options
|
|
85
91
|
)
|
|
86
|
-
return _response.data
|
|
87
92
|
|
|
88
93
|
def create(
|
|
89
94
|
self,
|
|
@@ -360,7 +365,7 @@ class AsyncTrailersClient:
|
|
|
360
365
|
limit: typing.Optional[int] = None,
|
|
361
366
|
after: typing.Optional[str] = None,
|
|
362
367
|
request_options: typing.Optional[RequestOptions] = None,
|
|
363
|
-
) ->
|
|
368
|
+
) -> AsyncPager[TrailerResponseObjectResponseBody]:
|
|
364
369
|
"""
|
|
365
370
|
List all trailers.
|
|
366
371
|
|
|
@@ -390,7 +395,7 @@ class AsyncTrailersClient:
|
|
|
390
395
|
|
|
391
396
|
Returns
|
|
392
397
|
-------
|
|
393
|
-
|
|
398
|
+
AsyncPager[TrailerResponseObjectResponseBody]
|
|
394
399
|
OK response.
|
|
395
400
|
|
|
396
401
|
Examples
|
|
@@ -405,15 +410,20 @@ class AsyncTrailersClient:
|
|
|
405
410
|
|
|
406
411
|
|
|
407
412
|
async def main() -> None:
|
|
408
|
-
await client.trailers.list()
|
|
413
|
+
response = await client.trailers.list()
|
|
414
|
+
async for item in response:
|
|
415
|
+
yield item
|
|
416
|
+
|
|
417
|
+
# alternatively, you can paginate page-by-page
|
|
418
|
+
async for page in response.iter_pages():
|
|
419
|
+
yield page
|
|
409
420
|
|
|
410
421
|
|
|
411
422
|
asyncio.run(main())
|
|
412
423
|
"""
|
|
413
|
-
|
|
424
|
+
return await self._raw_client.list(
|
|
414
425
|
tag_ids=tag_ids, parent_tag_ids=parent_tag_ids, limit=limit, after=after, request_options=request_options
|
|
415
426
|
)
|
|
416
|
-
return _response.data
|
|
417
427
|
|
|
418
428
|
async def create(
|
|
419
429
|
self,
|
samsara/trailers/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.goa_attribute_tiny_request_body import GoaAttributeTinyRequestBody
|
|
24
|
+
from ..types.trailer_response_object_response_body import TrailerResponseObjectResponseBody
|
|
23
25
|
from ..types.trailers_create_trailer_response_body import TrailersCreateTrailerResponseBody
|
|
24
26
|
from ..types.trailers_get_trailer_response_body import TrailersGetTrailerResponseBody
|
|
25
27
|
from ..types.trailers_list_trailers_response_body import TrailersListTrailersResponseBody
|
|
@@ -41,7 +43,7 @@ class RawTrailersClient:
|
|
|
41
43
|
limit: typing.Optional[int] = None,
|
|
42
44
|
after: typing.Optional[str] = None,
|
|
43
45
|
request_options: typing.Optional[RequestOptions] = None,
|
|
44
|
-
) ->
|
|
46
|
+
) -> SyncPager[TrailerResponseObjectResponseBody]:
|
|
45
47
|
"""
|
|
46
48
|
List all trailers.
|
|
47
49
|
|
|
@@ -71,7 +73,7 @@ class RawTrailersClient:
|
|
|
71
73
|
|
|
72
74
|
Returns
|
|
73
75
|
-------
|
|
74
|
-
|
|
76
|
+
SyncPager[TrailerResponseObjectResponseBody]
|
|
75
77
|
OK response.
|
|
76
78
|
"""
|
|
77
79
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -87,14 +89,29 @@ class RawTrailersClient:
|
|
|
87
89
|
)
|
|
88
90
|
try:
|
|
89
91
|
if 200 <= _response.status_code < 300:
|
|
90
|
-
|
|
92
|
+
_parsed_response = typing.cast(
|
|
91
93
|
TrailersListTrailersResponseBody,
|
|
92
94
|
parse_obj_as(
|
|
93
95
|
type_=TrailersListTrailersResponseBody, # type: ignore
|
|
94
96
|
object_=_response.json(),
|
|
95
97
|
),
|
|
96
98
|
)
|
|
97
|
-
|
|
99
|
+
_items = _parsed_response.data
|
|
100
|
+
_has_next = False
|
|
101
|
+
_get_next = None
|
|
102
|
+
if _parsed_response.pagination is not None:
|
|
103
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
104
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
105
|
+
_get_next = lambda: self.list(
|
|
106
|
+
tag_ids=tag_ids,
|
|
107
|
+
parent_tag_ids=parent_tag_ids,
|
|
108
|
+
limit=limit,
|
|
109
|
+
after=_parsed_next,
|
|
110
|
+
request_options=request_options,
|
|
111
|
+
)
|
|
112
|
+
return SyncPager(
|
|
113
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
114
|
+
)
|
|
98
115
|
if _response.status_code == 401:
|
|
99
116
|
raise UnauthorizedError(
|
|
100
117
|
headers=dict(_response.headers),
|
|
@@ -887,7 +904,7 @@ class AsyncRawTrailersClient:
|
|
|
887
904
|
limit: typing.Optional[int] = None,
|
|
888
905
|
after: typing.Optional[str] = None,
|
|
889
906
|
request_options: typing.Optional[RequestOptions] = None,
|
|
890
|
-
) ->
|
|
907
|
+
) -> AsyncPager[TrailerResponseObjectResponseBody]:
|
|
891
908
|
"""
|
|
892
909
|
List all trailers.
|
|
893
910
|
|
|
@@ -917,7 +934,7 @@ class AsyncRawTrailersClient:
|
|
|
917
934
|
|
|
918
935
|
Returns
|
|
919
936
|
-------
|
|
920
|
-
|
|
937
|
+
AsyncPager[TrailerResponseObjectResponseBody]
|
|
921
938
|
OK response.
|
|
922
939
|
"""
|
|
923
940
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -933,14 +950,32 @@ class AsyncRawTrailersClient:
|
|
|
933
950
|
)
|
|
934
951
|
try:
|
|
935
952
|
if 200 <= _response.status_code < 300:
|
|
936
|
-
|
|
953
|
+
_parsed_response = typing.cast(
|
|
937
954
|
TrailersListTrailersResponseBody,
|
|
938
955
|
parse_obj_as(
|
|
939
956
|
type_=TrailersListTrailersResponseBody, # type: ignore
|
|
940
957
|
object_=_response.json(),
|
|
941
958
|
),
|
|
942
959
|
)
|
|
943
|
-
|
|
960
|
+
_items = _parsed_response.data
|
|
961
|
+
_has_next = False
|
|
962
|
+
_get_next = None
|
|
963
|
+
if _parsed_response.pagination is not None:
|
|
964
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
965
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
966
|
+
|
|
967
|
+
async def _get_next():
|
|
968
|
+
return await self.list(
|
|
969
|
+
tag_ids=tag_ids,
|
|
970
|
+
parent_tag_ids=parent_tag_ids,
|
|
971
|
+
limit=limit,
|
|
972
|
+
after=_parsed_next,
|
|
973
|
+
request_options=request_options,
|
|
974
|
+
)
|
|
975
|
+
|
|
976
|
+
return AsyncPager(
|
|
977
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
978
|
+
)
|
|
944
979
|
if _response.status_code == 401:
|
|
945
980
|
raise UnauthorizedError(
|
|
946
981
|
headers=dict(_response.headers),
|
|
@@ -3,8 +3,9 @@
|
|
|
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
|
+
from ..types.training_course_response_object_response_body import TrainingCourseResponseObjectResponseBody
|
|
8
9
|
from .raw_client import AsyncRawTrainingCoursesClient, RawTrainingCoursesClient
|
|
9
10
|
|
|
10
11
|
|
|
@@ -31,7 +32,7 @@ class TrainingCoursesClient:
|
|
|
31
32
|
category_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
32
33
|
status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
33
34
|
request_options: typing.Optional[RequestOptions] = None,
|
|
34
|
-
) ->
|
|
35
|
+
) -> SyncPager[TrainingCourseResponseObjectResponseBody]:
|
|
35
36
|
"""
|
|
36
37
|
Returns all training courses data. Results are paginated.
|
|
37
38
|
Courses in the ‘draft’ status are excluded from the data returned by this endpoint.
|
|
@@ -62,7 +63,7 @@ class TrainingCoursesClient:
|
|
|
62
63
|
|
|
63
64
|
Returns
|
|
64
65
|
-------
|
|
65
|
-
|
|
66
|
+
SyncPager[TrainingCourseResponseObjectResponseBody]
|
|
66
67
|
OK response.
|
|
67
68
|
|
|
68
69
|
Examples
|
|
@@ -72,16 +73,20 @@ class TrainingCoursesClient:
|
|
|
72
73
|
client = Samsara(
|
|
73
74
|
token="YOUR_TOKEN",
|
|
74
75
|
)
|
|
75
|
-
client.training_courses.list()
|
|
76
|
+
response = client.training_courses.list()
|
|
77
|
+
for item in response:
|
|
78
|
+
yield item
|
|
79
|
+
# alternatively, you can paginate page-by-page
|
|
80
|
+
for page in response.iter_pages():
|
|
81
|
+
yield page
|
|
76
82
|
"""
|
|
77
|
-
|
|
83
|
+
return self._raw_client.list(
|
|
78
84
|
after=after,
|
|
79
85
|
course_ids=course_ids,
|
|
80
86
|
category_ids=category_ids,
|
|
81
87
|
status=status,
|
|
82
88
|
request_options=request_options,
|
|
83
89
|
)
|
|
84
|
-
return _response.data
|
|
85
90
|
|
|
86
91
|
|
|
87
92
|
class AsyncTrainingCoursesClient:
|
|
@@ -107,7 +112,7 @@ class AsyncTrainingCoursesClient:
|
|
|
107
112
|
category_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
108
113
|
status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
109
114
|
request_options: typing.Optional[RequestOptions] = None,
|
|
110
|
-
) ->
|
|
115
|
+
) -> AsyncPager[TrainingCourseResponseObjectResponseBody]:
|
|
111
116
|
"""
|
|
112
117
|
Returns all training courses data. Results are paginated.
|
|
113
118
|
Courses in the ‘draft’ status are excluded from the data returned by this endpoint.
|
|
@@ -138,7 +143,7 @@ class AsyncTrainingCoursesClient:
|
|
|
138
143
|
|
|
139
144
|
Returns
|
|
140
145
|
-------
|
|
141
|
-
|
|
146
|
+
AsyncPager[TrainingCourseResponseObjectResponseBody]
|
|
142
147
|
OK response.
|
|
143
148
|
|
|
144
149
|
Examples
|
|
@@ -153,16 +158,21 @@ class AsyncTrainingCoursesClient:
|
|
|
153
158
|
|
|
154
159
|
|
|
155
160
|
async def main() -> None:
|
|
156
|
-
await client.training_courses.list()
|
|
161
|
+
response = await client.training_courses.list()
|
|
162
|
+
async for item in response:
|
|
163
|
+
yield item
|
|
164
|
+
|
|
165
|
+
# alternatively, you can paginate page-by-page
|
|
166
|
+
async for page in response.iter_pages():
|
|
167
|
+
yield page
|
|
157
168
|
|
|
158
169
|
|
|
159
170
|
asyncio.run(main())
|
|
160
171
|
"""
|
|
161
|
-
|
|
172
|
+
return await self._raw_client.list(
|
|
162
173
|
after=after,
|
|
163
174
|
course_ids=course_ids,
|
|
164
175
|
category_ids=category_ids,
|
|
165
176
|
status=status,
|
|
166
177
|
request_options=request_options,
|
|
167
178
|
)
|
|
168
|
-
return _response.data
|
|
@@ -5,7 +5,7 @@ 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 ..errors.bad_gateway_error import BadGatewayError
|
|
@@ -17,6 +17,7 @@ from ..errors.not_implemented_error import NotImplementedError
|
|
|
17
17
|
from ..errors.service_unavailable_error import ServiceUnavailableError
|
|
18
18
|
from ..errors.too_many_requests_error import TooManyRequestsError
|
|
19
19
|
from ..errors.unauthorized_error import UnauthorizedError
|
|
20
|
+
from ..types.training_course_response_object_response_body import TrainingCourseResponseObjectResponseBody
|
|
20
21
|
from ..types.training_courses_get_training_courses_response_body import TrainingCoursesGetTrainingCoursesResponseBody
|
|
21
22
|
|
|
22
23
|
|
|
@@ -32,7 +33,7 @@ class RawTrainingCoursesClient:
|
|
|
32
33
|
category_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
33
34
|
status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
34
35
|
request_options: typing.Optional[RequestOptions] = None,
|
|
35
|
-
) ->
|
|
36
|
+
) -> SyncPager[TrainingCourseResponseObjectResponseBody]:
|
|
36
37
|
"""
|
|
37
38
|
Returns all training courses data. Results are paginated.
|
|
38
39
|
Courses in the ‘draft’ status are excluded from the data returned by this endpoint.
|
|
@@ -63,7 +64,7 @@ class RawTrainingCoursesClient:
|
|
|
63
64
|
|
|
64
65
|
Returns
|
|
65
66
|
-------
|
|
66
|
-
|
|
67
|
+
SyncPager[TrainingCourseResponseObjectResponseBody]
|
|
67
68
|
OK response.
|
|
68
69
|
"""
|
|
69
70
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -79,14 +80,29 @@ class RawTrainingCoursesClient:
|
|
|
79
80
|
)
|
|
80
81
|
try:
|
|
81
82
|
if 200 <= _response.status_code < 300:
|
|
82
|
-
|
|
83
|
+
_parsed_response = typing.cast(
|
|
83
84
|
TrainingCoursesGetTrainingCoursesResponseBody,
|
|
84
85
|
parse_obj_as(
|
|
85
86
|
type_=TrainingCoursesGetTrainingCoursesResponseBody, # type: ignore
|
|
86
87
|
object_=_response.json(),
|
|
87
88
|
),
|
|
88
89
|
)
|
|
89
|
-
|
|
90
|
+
_items = _parsed_response.data
|
|
91
|
+
_has_next = False
|
|
92
|
+
_get_next = None
|
|
93
|
+
if _parsed_response.pagination is not None:
|
|
94
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
95
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
96
|
+
_get_next = lambda: self.list(
|
|
97
|
+
after=_parsed_next,
|
|
98
|
+
course_ids=course_ids,
|
|
99
|
+
category_ids=category_ids,
|
|
100
|
+
status=status,
|
|
101
|
+
request_options=request_options,
|
|
102
|
+
)
|
|
103
|
+
return SyncPager(
|
|
104
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
105
|
+
)
|
|
90
106
|
if _response.status_code == 401:
|
|
91
107
|
raise UnauthorizedError(
|
|
92
108
|
headers=dict(_response.headers),
|
|
@@ -204,7 +220,7 @@ class AsyncRawTrainingCoursesClient:
|
|
|
204
220
|
category_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
205
221
|
status: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
206
222
|
request_options: typing.Optional[RequestOptions] = None,
|
|
207
|
-
) ->
|
|
223
|
+
) -> AsyncPager[TrainingCourseResponseObjectResponseBody]:
|
|
208
224
|
"""
|
|
209
225
|
Returns all training courses data. Results are paginated.
|
|
210
226
|
Courses in the ‘draft’ status are excluded from the data returned by this endpoint.
|
|
@@ -235,7 +251,7 @@ class AsyncRawTrainingCoursesClient:
|
|
|
235
251
|
|
|
236
252
|
Returns
|
|
237
253
|
-------
|
|
238
|
-
|
|
254
|
+
AsyncPager[TrainingCourseResponseObjectResponseBody]
|
|
239
255
|
OK response.
|
|
240
256
|
"""
|
|
241
257
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -251,14 +267,32 @@ class AsyncRawTrainingCoursesClient:
|
|
|
251
267
|
)
|
|
252
268
|
try:
|
|
253
269
|
if 200 <= _response.status_code < 300:
|
|
254
|
-
|
|
270
|
+
_parsed_response = typing.cast(
|
|
255
271
|
TrainingCoursesGetTrainingCoursesResponseBody,
|
|
256
272
|
parse_obj_as(
|
|
257
273
|
type_=TrainingCoursesGetTrainingCoursesResponseBody, # type: ignore
|
|
258
274
|
object_=_response.json(),
|
|
259
275
|
),
|
|
260
276
|
)
|
|
261
|
-
|
|
277
|
+
_items = _parsed_response.data
|
|
278
|
+
_has_next = False
|
|
279
|
+
_get_next = None
|
|
280
|
+
if _parsed_response.pagination is not None:
|
|
281
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
282
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
283
|
+
|
|
284
|
+
async def _get_next():
|
|
285
|
+
return await self.list(
|
|
286
|
+
after=_parsed_next,
|
|
287
|
+
course_ids=course_ids,
|
|
288
|
+
category_ids=category_ids,
|
|
289
|
+
status=status,
|
|
290
|
+
request_options=request_options,
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
return AsyncPager(
|
|
294
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
295
|
+
)
|
|
262
296
|
if _response.status_code == 401:
|
|
263
297
|
raise UnauthorizedError(
|
|
264
298
|
headers=dict(_response.headers),
|
samsara/trips/client.py
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
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
|
+
from ..types.trip_response_body import TripResponseBody
|
|
8
9
|
from .raw_client import AsyncRawTripsClient, RawTripsClient
|
|
9
10
|
from .types.trips_stream_request_completion_status import TripsStreamRequestCompletionStatus
|
|
10
11
|
from .types.trips_stream_request_query_by import TripsStreamRequestQueryBy
|
|
@@ -36,7 +37,7 @@ class TripsClient:
|
|
|
36
37
|
after: typing.Optional[str] = None,
|
|
37
38
|
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
38
39
|
request_options: typing.Optional[RequestOptions] = None,
|
|
39
|
-
) ->
|
|
40
|
+
) -> SyncPager[TripResponseBody]:
|
|
40
41
|
"""
|
|
41
42
|
This endpoint will return trips that have been collected for your organization based on the time parameters passed in. Results are paginated. Reach out to your Samsara Representative to have this API enabled for your organization.
|
|
42
43
|
|
|
@@ -75,7 +76,7 @@ class TripsClient:
|
|
|
75
76
|
|
|
76
77
|
Returns
|
|
77
78
|
-------
|
|
78
|
-
|
|
79
|
+
SyncPager[TripResponseBody]
|
|
79
80
|
OK response.
|
|
80
81
|
|
|
81
82
|
Examples
|
|
@@ -85,11 +86,16 @@ class TripsClient:
|
|
|
85
86
|
client = Samsara(
|
|
86
87
|
token="YOUR_TOKEN",
|
|
87
88
|
)
|
|
88
|
-
client.trips.stream(
|
|
89
|
+
response = client.trips.stream(
|
|
89
90
|
start_time="startTime",
|
|
90
91
|
)
|
|
92
|
+
for item in response:
|
|
93
|
+
yield item
|
|
94
|
+
# alternatively, you can paginate page-by-page
|
|
95
|
+
for page in response.iter_pages():
|
|
96
|
+
yield page
|
|
91
97
|
"""
|
|
92
|
-
|
|
98
|
+
return self._raw_client.stream(
|
|
93
99
|
start_time=start_time,
|
|
94
100
|
include_asset=include_asset,
|
|
95
101
|
completion_status=completion_status,
|
|
@@ -99,7 +105,6 @@ class TripsClient:
|
|
|
99
105
|
ids=ids,
|
|
100
106
|
request_options=request_options,
|
|
101
107
|
)
|
|
102
|
-
return _response.data
|
|
103
108
|
|
|
104
109
|
|
|
105
110
|
class AsyncTripsClient:
|
|
@@ -128,7 +133,7 @@ class AsyncTripsClient:
|
|
|
128
133
|
after: typing.Optional[str] = None,
|
|
129
134
|
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
130
135
|
request_options: typing.Optional[RequestOptions] = None,
|
|
131
|
-
) ->
|
|
136
|
+
) -> AsyncPager[TripResponseBody]:
|
|
132
137
|
"""
|
|
133
138
|
This endpoint will return trips that have been collected for your organization based on the time parameters passed in. Results are paginated. Reach out to your Samsara Representative to have this API enabled for your organization.
|
|
134
139
|
|
|
@@ -167,7 +172,7 @@ class AsyncTripsClient:
|
|
|
167
172
|
|
|
168
173
|
Returns
|
|
169
174
|
-------
|
|
170
|
-
|
|
175
|
+
AsyncPager[TripResponseBody]
|
|
171
176
|
OK response.
|
|
172
177
|
|
|
173
178
|
Examples
|
|
@@ -182,14 +187,20 @@ class AsyncTripsClient:
|
|
|
182
187
|
|
|
183
188
|
|
|
184
189
|
async def main() -> None:
|
|
185
|
-
await client.trips.stream(
|
|
190
|
+
response = await client.trips.stream(
|
|
186
191
|
start_time="startTime",
|
|
187
192
|
)
|
|
193
|
+
async for item in response:
|
|
194
|
+
yield item
|
|
195
|
+
|
|
196
|
+
# alternatively, you can paginate page-by-page
|
|
197
|
+
async for page in response.iter_pages():
|
|
198
|
+
yield page
|
|
188
199
|
|
|
189
200
|
|
|
190
201
|
asyncio.run(main())
|
|
191
202
|
"""
|
|
192
|
-
|
|
203
|
+
return await self._raw_client.stream(
|
|
193
204
|
start_time=start_time,
|
|
194
205
|
include_asset=include_asset,
|
|
195
206
|
completion_status=completion_status,
|
|
@@ -199,4 +210,3 @@ class AsyncTripsClient:
|
|
|
199
210
|
ids=ids,
|
|
200
211
|
request_options=request_options,
|
|
201
212
|
)
|
|
202
|
-
return _response.data
|