samsara-api 0.0.1__py3-none-any.whl → 0.0.2__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/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.2.dist-info/METADATA +29 -0
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.2.dist-info}/RECORD +328 -193
- 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_api-0.0.1.dist-info/METADATA +0 -214
- /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.2.dist-info}/LICENSE +0 -0
- {samsara_api-0.0.1.dist-info → samsara_api-0.0.2.dist-info}/WHEEL +0 -0
|
@@ -17,75 +17,61 @@ 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.
|
|
20
|
+
from ..types.form_templates_get_form_templates_response_body import FormTemplatesGetFormTemplatesResponseBody
|
|
21
21
|
|
|
22
|
-
# this is used as the default value for optional parameters
|
|
23
|
-
OMIT = typing.cast(typing.Any, ...)
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
class RawBetaClient:
|
|
23
|
+
class RawFormsClient:
|
|
27
24
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
28
25
|
self._client_wrapper = client_wrapper
|
|
29
26
|
|
|
30
|
-
def
|
|
27
|
+
def get_form_templates(
|
|
31
28
|
self,
|
|
32
29
|
*,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
shipping_docs: str,
|
|
30
|
+
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
31
|
+
after: typing.Optional[str] = None,
|
|
36
32
|
request_options: typing.Optional[RequestOptions] = None,
|
|
37
|
-
) -> HttpResponse[
|
|
33
|
+
) -> HttpResponse[FormTemplatesGetFormTemplatesResponseBody]:
|
|
38
34
|
"""
|
|
39
|
-
|
|
35
|
+
Returns a list of the organization's form templates for the specified list of IDs. If no IDs are provided, all form templates for the organization will be returned.
|
|
40
36
|
|
|
41
37
|
<b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
|
|
42
38
|
|
|
43
|
-
To use this endpoint, select **
|
|
39
|
+
To use this endpoint, select **Read Form Submissions** under the Forms category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
44
40
|
|
|
45
41
|
|
|
46
42
|
**Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
|
|
47
43
|
|
|
48
44
|
Parameters
|
|
49
45
|
----------
|
|
50
|
-
|
|
51
|
-
A
|
|
52
|
-
|
|
53
|
-
driver_id : str
|
|
54
|
-
ID of the driver for whom the duty status is being set.
|
|
46
|
+
ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
47
|
+
A comma-separated list containing up to 100 template IDs to filter on.
|
|
55
48
|
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
after : typing.Optional[str]
|
|
50
|
+
If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
|
|
58
51
|
|
|
59
52
|
request_options : typing.Optional[RequestOptions]
|
|
60
53
|
Request-specific configuration.
|
|
61
54
|
|
|
62
55
|
Returns
|
|
63
56
|
-------
|
|
64
|
-
HttpResponse[
|
|
57
|
+
HttpResponse[FormTemplatesGetFormTemplatesResponseBody]
|
|
65
58
|
OK response.
|
|
66
59
|
"""
|
|
67
60
|
_response = self._client_wrapper.httpx_client.request(
|
|
68
|
-
"
|
|
69
|
-
method="
|
|
61
|
+
"form-templates",
|
|
62
|
+
method="GET",
|
|
70
63
|
params={
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
},
|
|
74
|
-
json={
|
|
75
|
-
"shippingDocs": shipping_docs,
|
|
76
|
-
},
|
|
77
|
-
headers={
|
|
78
|
-
"content-type": "application/json",
|
|
64
|
+
"ids": ids,
|
|
65
|
+
"after": after,
|
|
79
66
|
},
|
|
80
67
|
request_options=request_options,
|
|
81
|
-
omit=OMIT,
|
|
82
68
|
)
|
|
83
69
|
try:
|
|
84
70
|
if 200 <= _response.status_code < 300:
|
|
85
71
|
_data = typing.cast(
|
|
86
|
-
|
|
72
|
+
FormTemplatesGetFormTemplatesResponseBody,
|
|
87
73
|
parse_obj_as(
|
|
88
|
-
type_=
|
|
74
|
+
type_=FormTemplatesGetFormTemplatesResponseBody, # type: ignore
|
|
89
75
|
object_=_response.json(),
|
|
90
76
|
),
|
|
91
77
|
)
|
|
@@ -195,69 +181,58 @@ class RawBetaClient:
|
|
|
195
181
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
196
182
|
|
|
197
183
|
|
|
198
|
-
class
|
|
184
|
+
class AsyncRawFormsClient:
|
|
199
185
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
200
186
|
self._client_wrapper = client_wrapper
|
|
201
187
|
|
|
202
|
-
async def
|
|
188
|
+
async def get_form_templates(
|
|
203
189
|
self,
|
|
204
190
|
*,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
shipping_docs: str,
|
|
191
|
+
ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
192
|
+
after: typing.Optional[str] = None,
|
|
208
193
|
request_options: typing.Optional[RequestOptions] = None,
|
|
209
|
-
) -> AsyncHttpResponse[
|
|
194
|
+
) -> AsyncHttpResponse[FormTemplatesGetFormTemplatesResponseBody]:
|
|
210
195
|
"""
|
|
211
|
-
|
|
196
|
+
Returns a list of the organization's form templates for the specified list of IDs. If no IDs are provided, all form templates for the organization will be returned.
|
|
212
197
|
|
|
213
198
|
<b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).
|
|
214
199
|
|
|
215
|
-
To use this endpoint, select **
|
|
200
|
+
To use this endpoint, select **Read Form Submissions** under the Forms category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
|
|
216
201
|
|
|
217
202
|
|
|
218
203
|
**Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.
|
|
219
204
|
|
|
220
205
|
Parameters
|
|
221
206
|
----------
|
|
222
|
-
|
|
223
|
-
A
|
|
207
|
+
ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
208
|
+
A comma-separated list containing up to 100 template IDs to filter on.
|
|
224
209
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
shipping_docs : str
|
|
229
|
-
ShippingDocs associated with the driver for the day.
|
|
210
|
+
after : typing.Optional[str]
|
|
211
|
+
If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.
|
|
230
212
|
|
|
231
213
|
request_options : typing.Optional[RequestOptions]
|
|
232
214
|
Request-specific configuration.
|
|
233
215
|
|
|
234
216
|
Returns
|
|
235
217
|
-------
|
|
236
|
-
AsyncHttpResponse[
|
|
218
|
+
AsyncHttpResponse[FormTemplatesGetFormTemplatesResponseBody]
|
|
237
219
|
OK response.
|
|
238
220
|
"""
|
|
239
221
|
_response = await self._client_wrapper.httpx_client.request(
|
|
240
|
-
"
|
|
241
|
-
method="
|
|
222
|
+
"form-templates",
|
|
223
|
+
method="GET",
|
|
242
224
|
params={
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
},
|
|
246
|
-
json={
|
|
247
|
-
"shippingDocs": shipping_docs,
|
|
248
|
-
},
|
|
249
|
-
headers={
|
|
250
|
-
"content-type": "application/json",
|
|
225
|
+
"ids": ids,
|
|
226
|
+
"after": after,
|
|
251
227
|
},
|
|
252
228
|
request_options=request_options,
|
|
253
|
-
omit=OMIT,
|
|
254
229
|
)
|
|
255
230
|
try:
|
|
256
231
|
if 200 <= _response.status_code < 300:
|
|
257
232
|
_data = typing.cast(
|
|
258
|
-
|
|
233
|
+
FormTemplatesGetFormTemplatesResponseBody,
|
|
259
234
|
parse_obj_as(
|
|
260
|
-
type_=
|
|
235
|
+
type_=FormTemplatesGetFormTemplatesResponseBody, # type: ignore
|
|
261
236
|
object_=_response.json(),
|
|
262
237
|
),
|
|
263
238
|
)
|
samsara/function.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
from typing import Dict, Any, Optional, Protocol
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SSMClientProtocol(Protocol):
|
|
7
|
+
"""Protocol defining the SSM client interface we need."""
|
|
8
|
+
|
|
9
|
+
def get_parameter(self, Name: str, WithDecryption: bool) -> Dict[str, Any]:
|
|
10
|
+
"""Get parameter from SSM."""
|
|
11
|
+
...
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Secrets:
|
|
15
|
+
"""
|
|
16
|
+
Handles loading secrets from either local environment or AWS Parameter Store.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, client: Optional[SSMClientProtocol]) -> None:
|
|
20
|
+
"""
|
|
21
|
+
Initialize the Secrets handler.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
client: SSM client for accessing AWS Parameter Store, or None for local development
|
|
25
|
+
"""
|
|
26
|
+
self.__client = client
|
|
27
|
+
|
|
28
|
+
def load(self) -> Dict[str, Any]:
|
|
29
|
+
"""
|
|
30
|
+
Load secrets from the appropriate source based on environment.
|
|
31
|
+
|
|
32
|
+
When running locally, secrets are loaded from the
|
|
33
|
+
'SamsaraFunctionLocalSecretsJson' environment variable.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dict containing the parsed secrets
|
|
37
|
+
"""
|
|
38
|
+
if self.__client is None:
|
|
39
|
+
return json.loads(os.environ.get("SamsaraFunctionLocalSecretsJson", "{}"))
|
|
40
|
+
|
|
41
|
+
res = self.__client.get_parameter(
|
|
42
|
+
Name=os.environ["SamsaraFunctionSecretsPath"], WithDecryption=True
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
value = res["Parameter"]["Value"]
|
|
46
|
+
if value == "null":
|
|
47
|
+
return {}
|
|
48
|
+
|
|
49
|
+
return json.loads(value)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class Function:
|
|
53
|
+
"""
|
|
54
|
+
Handles environment detection and secrets management.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
def __init__(
|
|
58
|
+
self, is_local: bool = os.environ.get("AWS_EXECUTION_ENV", "") == ""
|
|
59
|
+
) -> None:
|
|
60
|
+
"""
|
|
61
|
+
Initialize the function with appropriate configuration based on environment.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
is_local: Flag indicating if running in local development environment
|
|
65
|
+
|
|
66
|
+
Note:
|
|
67
|
+
The is_local parameter doesn't need to be set explicitly as it defaults to
|
|
68
|
+
checking if AWS_EXECUTION_ENV is empty. This environment variable is automatically
|
|
69
|
+
set by AWS Lambda when running in the cloud, but will be empty during local
|
|
70
|
+
development, making the detection automatic in most cases.
|
|
71
|
+
"""
|
|
72
|
+
if is_local:
|
|
73
|
+
self.__secrets = Secrets(None)
|
|
74
|
+
else:
|
|
75
|
+
# boto3 is always available in the execution enviroment and not required in development.
|
|
76
|
+
import boto3 # type: ignore
|
|
77
|
+
|
|
78
|
+
sts = boto3.client("sts")
|
|
79
|
+
res = sts.assume_role(
|
|
80
|
+
RoleArn=os.environ["SamsaraFunctionExecRoleArn"],
|
|
81
|
+
RoleSessionName=os.environ["SamsaraFunctionName"],
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
credentials = {
|
|
85
|
+
"aws_access_key_id": res["Credentials"]["AccessKeyId"],
|
|
86
|
+
"aws_secret_access_key": res["Credentials"]["SecretAccessKey"],
|
|
87
|
+
"aws_session_token": res["Credentials"]["SessionToken"],
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
self.__secrets = Secrets(boto3.client("ssm", **credentials))
|
|
91
|
+
|
|
92
|
+
def secrets(self) -> Secrets:
|
|
93
|
+
"""
|
|
94
|
+
Get the secrets handler.
|
|
95
|
+
|
|
96
|
+
Returns:
|
|
97
|
+
The configured Secrets instance
|
|
98
|
+
"""
|
|
99
|
+
return self.__secrets
|
samsara/gateways/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.gateway_response_object_response_body import GatewayResponseObjectResponseBody
|
|
8
9
|
from ..types.gateways_post_gateway_response_body import GatewaysPostGatewayResponseBody
|
|
9
10
|
from .raw_client import AsyncRawGatewaysClient, RawGatewaysClient
|
|
10
11
|
|
|
@@ -33,7 +34,7 @@ class GatewaysClient:
|
|
|
33
34
|
models: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
34
35
|
after: typing.Optional[str] = None,
|
|
35
36
|
request_options: typing.Optional[RequestOptions] = None,
|
|
36
|
-
) ->
|
|
37
|
+
) -> SyncPager[GatewayResponseObjectResponseBody]:
|
|
37
38
|
"""
|
|
38
39
|
List all gateways
|
|
39
40
|
|
|
@@ -57,7 +58,7 @@ class GatewaysClient:
|
|
|
57
58
|
|
|
58
59
|
Returns
|
|
59
60
|
-------
|
|
60
|
-
|
|
61
|
+
SyncPager[GatewayResponseObjectResponseBody]
|
|
61
62
|
OK response.
|
|
62
63
|
|
|
63
64
|
Examples
|
|
@@ -67,10 +68,14 @@ class GatewaysClient:
|
|
|
67
68
|
client = Samsara(
|
|
68
69
|
token="YOUR_TOKEN",
|
|
69
70
|
)
|
|
70
|
-
client.gateways.list()
|
|
71
|
+
response = client.gateways.list()
|
|
72
|
+
for item in response:
|
|
73
|
+
yield item
|
|
74
|
+
# alternatively, you can paginate page-by-page
|
|
75
|
+
for page in response.iter_pages():
|
|
76
|
+
yield page
|
|
71
77
|
"""
|
|
72
|
-
|
|
73
|
-
return _response.data
|
|
78
|
+
return self._raw_client.list(models=models, after=after, request_options=request_options)
|
|
74
79
|
|
|
75
80
|
def create(
|
|
76
81
|
self, *, serial: str, request_options: typing.Optional[RequestOptions] = None
|
|
@@ -171,7 +176,7 @@ class AsyncGatewaysClient:
|
|
|
171
176
|
models: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
172
177
|
after: typing.Optional[str] = None,
|
|
173
178
|
request_options: typing.Optional[RequestOptions] = None,
|
|
174
|
-
) ->
|
|
179
|
+
) -> AsyncPager[GatewayResponseObjectResponseBody]:
|
|
175
180
|
"""
|
|
176
181
|
List all gateways
|
|
177
182
|
|
|
@@ -195,7 +200,7 @@ class AsyncGatewaysClient:
|
|
|
195
200
|
|
|
196
201
|
Returns
|
|
197
202
|
-------
|
|
198
|
-
|
|
203
|
+
AsyncPager[GatewayResponseObjectResponseBody]
|
|
199
204
|
OK response.
|
|
200
205
|
|
|
201
206
|
Examples
|
|
@@ -210,13 +215,18 @@ class AsyncGatewaysClient:
|
|
|
210
215
|
|
|
211
216
|
|
|
212
217
|
async def main() -> None:
|
|
213
|
-
await client.gateways.list()
|
|
218
|
+
response = await client.gateways.list()
|
|
219
|
+
async for item in response:
|
|
220
|
+
yield item
|
|
221
|
+
|
|
222
|
+
# alternatively, you can paginate page-by-page
|
|
223
|
+
async for page in response.iter_pages():
|
|
224
|
+
yield page
|
|
214
225
|
|
|
215
226
|
|
|
216
227
|
asyncio.run(main())
|
|
217
228
|
"""
|
|
218
|
-
|
|
219
|
-
return _response.data
|
|
229
|
+
return await self._raw_client.list(models=models, after=after, request_options=request_options)
|
|
220
230
|
|
|
221
231
|
async def create(
|
|
222
232
|
self, *, serial: str, request_options: typing.Optional[RequestOptions] = None
|
samsara/gateways/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 ..errors.bad_gateway_error import BadGatewayError
|
|
@@ -18,6 +19,7 @@ from ..errors.not_implemented_error import NotImplementedError
|
|
|
18
19
|
from ..errors.service_unavailable_error import ServiceUnavailableError
|
|
19
20
|
from ..errors.too_many_requests_error import TooManyRequestsError
|
|
20
21
|
from ..errors.unauthorized_error import UnauthorizedError
|
|
22
|
+
from ..types.gateway_response_object_response_body import GatewayResponseObjectResponseBody
|
|
21
23
|
from ..types.gateways_get_gateways_response_body import GatewaysGetGatewaysResponseBody
|
|
22
24
|
from ..types.gateways_post_gateway_response_body import GatewaysPostGatewayResponseBody
|
|
23
25
|
|
|
@@ -35,7 +37,7 @@ class RawGatewaysClient:
|
|
|
35
37
|
models: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
36
38
|
after: typing.Optional[str] = None,
|
|
37
39
|
request_options: typing.Optional[RequestOptions] = None,
|
|
38
|
-
) ->
|
|
40
|
+
) -> SyncPager[GatewayResponseObjectResponseBody]:
|
|
39
41
|
"""
|
|
40
42
|
List all gateways
|
|
41
43
|
|
|
@@ -59,7 +61,7 @@ class RawGatewaysClient:
|
|
|
59
61
|
|
|
60
62
|
Returns
|
|
61
63
|
-------
|
|
62
|
-
|
|
64
|
+
SyncPager[GatewayResponseObjectResponseBody]
|
|
63
65
|
OK response.
|
|
64
66
|
"""
|
|
65
67
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -73,14 +75,27 @@ class RawGatewaysClient:
|
|
|
73
75
|
)
|
|
74
76
|
try:
|
|
75
77
|
if 200 <= _response.status_code < 300:
|
|
76
|
-
|
|
78
|
+
_parsed_response = typing.cast(
|
|
77
79
|
GatewaysGetGatewaysResponseBody,
|
|
78
80
|
parse_obj_as(
|
|
79
81
|
type_=GatewaysGetGatewaysResponseBody, # type: ignore
|
|
80
82
|
object_=_response.json(),
|
|
81
83
|
),
|
|
82
84
|
)
|
|
83
|
-
|
|
85
|
+
_items = _parsed_response.data
|
|
86
|
+
_has_next = False
|
|
87
|
+
_get_next = None
|
|
88
|
+
if _parsed_response.pagination is not None:
|
|
89
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
90
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
91
|
+
_get_next = lambda: self.list(
|
|
92
|
+
models=models,
|
|
93
|
+
after=_parsed_next,
|
|
94
|
+
request_options=request_options,
|
|
95
|
+
)
|
|
96
|
+
return SyncPager(
|
|
97
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
98
|
+
)
|
|
84
99
|
if _response.status_code == 401:
|
|
85
100
|
raise UnauthorizedError(
|
|
86
101
|
headers=dict(_response.headers),
|
|
@@ -483,7 +498,7 @@ class AsyncRawGatewaysClient:
|
|
|
483
498
|
models: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
484
499
|
after: typing.Optional[str] = None,
|
|
485
500
|
request_options: typing.Optional[RequestOptions] = None,
|
|
486
|
-
) ->
|
|
501
|
+
) -> AsyncPager[GatewayResponseObjectResponseBody]:
|
|
487
502
|
"""
|
|
488
503
|
List all gateways
|
|
489
504
|
|
|
@@ -507,7 +522,7 @@ class AsyncRawGatewaysClient:
|
|
|
507
522
|
|
|
508
523
|
Returns
|
|
509
524
|
-------
|
|
510
|
-
|
|
525
|
+
AsyncPager[GatewayResponseObjectResponseBody]
|
|
511
526
|
OK response.
|
|
512
527
|
"""
|
|
513
528
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -521,14 +536,30 @@ class AsyncRawGatewaysClient:
|
|
|
521
536
|
)
|
|
522
537
|
try:
|
|
523
538
|
if 200 <= _response.status_code < 300:
|
|
524
|
-
|
|
539
|
+
_parsed_response = typing.cast(
|
|
525
540
|
GatewaysGetGatewaysResponseBody,
|
|
526
541
|
parse_obj_as(
|
|
527
542
|
type_=GatewaysGetGatewaysResponseBody, # type: ignore
|
|
528
543
|
object_=_response.json(),
|
|
529
544
|
),
|
|
530
545
|
)
|
|
531
|
-
|
|
546
|
+
_items = _parsed_response.data
|
|
547
|
+
_has_next = False
|
|
548
|
+
_get_next = None
|
|
549
|
+
if _parsed_response.pagination is not None:
|
|
550
|
+
_parsed_next = _parsed_response.pagination.end_cursor
|
|
551
|
+
_has_next = _parsed_next is not None and _parsed_next != ""
|
|
552
|
+
|
|
553
|
+
async def _get_next():
|
|
554
|
+
return await self.list(
|
|
555
|
+
models=models,
|
|
556
|
+
after=_parsed_next,
|
|
557
|
+
request_options=request_options,
|
|
558
|
+
)
|
|
559
|
+
|
|
560
|
+
return AsyncPager(
|
|
561
|
+
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
|
|
562
|
+
)
|
|
532
563
|
if _response.status_code == 401:
|
|
533
564
|
raise UnauthorizedError(
|
|
534
565
|
headers=dict(_response.headers),
|