telnyx 3.2.0a0__py3-none-any.whl → 3.3.0__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.
Potentially problematic release.
This version of telnyx might be problematic. Click here for more details.
- telnyx/__init__.py +3 -1
- telnyx/_base_client.py +12 -12
- telnyx/_client.py +68 -762
- telnyx/_compat.py +48 -48
- telnyx/_models.py +50 -44
- telnyx/_qs.py +7 -7
- telnyx/_types.py +53 -12
- telnyx/_utils/__init__.py +9 -2
- telnyx/_utils/_compat.py +45 -0
- telnyx/_utils/_datetime_parse.py +136 -0
- telnyx/_utils/_transform.py +13 -3
- telnyx/_utils/_typing.py +6 -1
- telnyx/_utils/_utils.py +4 -5
- telnyx/_version.py +1 -1
- telnyx/resources/__init__.py +73 -0
- telnyx/resources/access_ip_address.py +15 -15
- telnyx/resources/access_ip_ranges.py +13 -13
- telnyx/resources/actions/purchase.py +13 -14
- telnyx/resources/actions/register.py +11 -12
- telnyx/resources/addresses/actions.py +13 -13
- telnyx/resources/addresses/addresses.py +33 -35
- telnyx/resources/advanced_orders.py +102 -106
- telnyx/resources/ai/ai.py +7 -7
- telnyx/resources/ai/assistants/assistants.py +89 -89
- telnyx/resources/ai/assistants/canary_deploys.py +9 -9
- telnyx/resources/ai/assistants/scheduled_events.py +21 -21
- telnyx/resources/ai/assistants/tests/runs.py +13 -13
- telnyx/resources/ai/assistants/tests/test_suites/runs.py +13 -13
- telnyx/resources/ai/assistants/tests/test_suites/test_suites.py +3 -3
- telnyx/resources/ai/assistants/tests/tests.py +43 -43
- telnyx/resources/ai/assistants/tools.py +7 -7
- telnyx/resources/ai/assistants/versions.py +45 -45
- telnyx/resources/ai/audio.py +11 -11
- telnyx/resources/ai/chat.py +48 -48
- telnyx/resources/ai/clusters.py +27 -29
- telnyx/resources/ai/conversations/conversations.py +179 -45
- telnyx/resources/ai/conversations/insight_groups/insight_groups.py +23 -23
- telnyx/resources/ai/conversations/insight_groups/insights.py +5 -5
- telnyx/resources/ai/conversations/insights.py +25 -25
- telnyx/resources/ai/conversations/messages.py +3 -136
- telnyx/resources/ai/embeddings/buckets.py +7 -7
- telnyx/resources/ai/embeddings/embeddings.py +23 -24
- telnyx/resources/ai/fine_tuning/jobs.py +13 -13
- telnyx/resources/audit_events.py +9 -9
- telnyx/resources/authentication_providers.py +29 -29
- telnyx/resources/available_phone_number_blocks.py +5 -5
- telnyx/resources/available_phone_numbers.py +5 -5
- telnyx/resources/balance.py +3 -3
- telnyx/resources/billing_groups.py +17 -17
- telnyx/resources/brand/brand.py +121 -117
- telnyx/resources/brand/external_vetting.py +9 -9
- telnyx/resources/bulk_sim_card_actions.py +11 -11
- telnyx/resources/bundle_pricing/billing_bundles.py +13 -13
- telnyx/resources/bundle_pricing/user_bundles.py +35 -35
- telnyx/resources/call_control_applications.py +64 -68
- telnyx/resources/call_events.py +7 -7
- telnyx/resources/calls/actions.py +699 -699
- telnyx/resources/calls/calls.py +116 -110
- telnyx/resources/campaign/campaign.py +47 -47
- telnyx/resources/campaign/osr.py +3 -3
- telnyx/resources/campaign/usecase.py +3 -3
- telnyx/resources/campaign_builder/brand.py +3 -3
- telnyx/resources/campaign_builder/campaign_builder.py +68 -68
- telnyx/resources/channel_zones.py +7 -7
- telnyx/resources/charges_breakdown.py +7 -7
- telnyx/resources/charges_summary.py +3 -3
- telnyx/resources/comments.py +17 -17
- telnyx/resources/conferences/actions.py +123 -140
- telnyx/resources/conferences/conferences.py +37 -41
- telnyx/resources/connections.py +15 -15
- telnyx/resources/country_coverage.py +5 -5
- telnyx/resources/credential_connections/actions.py +3 -3
- telnyx/resources/credential_connections/credential_connections.py +96 -96
- telnyx/resources/custom_storage_credentials.py +9 -9
- telnyx/resources/customer_service_records.py +21 -23
- telnyx/resources/detail_records.py +9 -11
- telnyx/resources/dialogflow_connections.py +25 -25
- telnyx/resources/document_links.py +7 -7
- telnyx/resources/documents.py +45 -45
- telnyx/resources/dynamic_emergency_addresses.py +23 -23
- telnyx/resources/dynamic_emergency_endpoints.py +13 -13
- telnyx/resources/enum.py +3 -3
- telnyx/resources/external_connections/civic_addresses.py +7 -7
- telnyx/resources/external_connections/external_connections.py +42 -42
- telnyx/resources/external_connections/log_messages.py +11 -11
- telnyx/resources/external_connections/phone_numbers.py +13 -13
- telnyx/resources/external_connections/releases.py +9 -9
- telnyx/resources/external_connections/uploads.py +27 -29
- telnyx/resources/fax_applications.py +48 -48
- telnyx/resources/faxes/actions.py +5 -5
- telnyx/resources/faxes/faxes.py +35 -35
- telnyx/resources/fqdn_connections.py +94 -94
- telnyx/resources/fqdns.py +25 -25
- telnyx/resources/global_ip_allowed_ports.py +3 -3
- telnyx/resources/global_ip_assignment_health.py +5 -5
- telnyx/resources/global_ip_assignments.py +19 -19
- telnyx/resources/global_ip_assignments_usage.py +5 -5
- telnyx/resources/global_ip_health_check_types.py +3 -3
- telnyx/resources/global_ip_health_checks.py +17 -17
- telnyx/resources/global_ip_latency.py +5 -5
- telnyx/resources/global_ip_protocols.py +3 -3
- telnyx/resources/global_ip_usage.py +5 -5
- telnyx/resources/global_ips.py +17 -17
- telnyx/resources/inbound_channels.py +5 -5
- telnyx/resources/integration_secrets.py +17 -17
- telnyx/resources/inventory_coverage.py +5 -5
- telnyx/resources/invoices.py +11 -11
- telnyx/resources/ip_connections.py +94 -94
- telnyx/resources/ips.py +23 -23
- telnyx/resources/ledger_billing_group_reports.py +9 -9
- telnyx/resources/legacy/__init__.py +33 -0
- telnyx/resources/legacy/legacy.py +102 -0
- telnyx/resources/legacy/reporting/__init__.py +47 -0
- telnyx/resources/legacy/reporting/batch_detail_records/__init__.py +61 -0
- telnyx/resources/legacy/reporting/batch_detail_records/batch_detail_records.py +166 -0
- telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +482 -0
- telnyx/resources/legacy/reporting/batch_detail_records/speech_to_text.py +399 -0
- telnyx/resources/legacy/reporting/batch_detail_records/voice.py +539 -0
- telnyx/resources/legacy/reporting/reporting.py +134 -0
- telnyx/resources/legacy/reporting/usage_reports/__init__.py +61 -0
- telnyx/resources/legacy/reporting/usage_reports/messaging.py +471 -0
- telnyx/resources/legacy/reporting/usage_reports/number_lookup.py +464 -0
- telnyx/resources/legacy/reporting/usage_reports/usage_reports.py +288 -0
- telnyx/resources/legacy/reporting/usage_reports/voice.py +493 -0
- telnyx/resources/list.py +5 -5
- telnyx/resources/managed_accounts/actions.py +7 -7
- telnyx/resources/managed_accounts/managed_accounts.py +33 -33
- telnyx/resources/media.py +23 -23
- telnyx/resources/messages/messages.py +124 -124
- telnyx/resources/messages/rcs.py +7 -7
- telnyx/resources/messaging/rcs/agents.py +15 -15
- telnyx/resources/messaging/rcs/rcs.py +9 -11
- telnyx/resources/messaging_hosted_number_orders/actions.py +7 -7
- telnyx/resources/messaging_hosted_number_orders/messaging_hosted_number_orders.py +26 -26
- telnyx/resources/messaging_hosted_numbers.py +3 -3
- telnyx/resources/messaging_numbers_bulk_updates.py +7 -9
- telnyx/resources/messaging_optouts.py +11 -11
- telnyx/resources/messaging_profiles/autoresp_configs.py +25 -26
- telnyx/resources/messaging_profiles/messaging_profiles.py +76 -76
- telnyx/resources/messaging_tollfree/verification/requests.py +27 -27
- telnyx/resources/messaging_url_domains.py +5 -5
- telnyx/resources/messsages.py +11 -11
- telnyx/resources/mobile_network_operators.py +7 -7
- telnyx/resources/mobile_push_credentials.py +23 -23
- telnyx/resources/network_coverage.py +9 -9
- telnyx/resources/networks/default_gateway.py +9 -9
- telnyx/resources/networks/networks.py +21 -21
- telnyx/resources/notification_channels.py +27 -27
- telnyx/resources/notification_event_conditions.py +7 -7
- telnyx/resources/notification_events.py +5 -5
- telnyx/resources/notification_profiles.py +17 -17
- telnyx/resources/notification_settings.py +21 -21
- telnyx/resources/number_block_orders.py +17 -17
- telnyx/resources/number_lookup.py +5 -5
- telnyx/resources/number_order_phone_numbers.py +13 -13
- telnyx/resources/number_orders.py +27 -27
- telnyx/resources/number_reservations/actions.py +3 -3
- telnyx/resources/number_reservations/number_reservations.py +15 -15
- telnyx/resources/numbers_features.py +5 -7
- telnyx/resources/oauth.py +855 -0
- telnyx/resources/oauth_clients.py +711 -0
- telnyx/resources/oauth_grants.py +349 -0
- telnyx/resources/operator_connect/actions.py +3 -3
- telnyx/resources/ota_updates.py +9 -9
- telnyx/resources/outbound_voice_profiles.py +66 -66
- telnyx/resources/partner_campaigns.py +25 -25
- telnyx/resources/payment/auto_recharge_prefs.py +15 -15
- telnyx/resources/phone_number_assignment_by_profile.py +15 -15
- telnyx/resources/phone_number_blocks/jobs.py +13 -13
- telnyx/resources/phone_number_campaigns.py +19 -19
- telnyx/resources/phone_numbers/actions.py +9 -11
- telnyx/resources/phone_numbers/csv_downloads.py +13 -13
- telnyx/resources/phone_numbers/jobs.py +54 -42
- telnyx/resources/phone_numbers/messaging.py +13 -13
- telnyx/resources/phone_numbers/phone_numbers.py +39 -40
- telnyx/resources/phone_numbers/voice.py +31 -31
- telnyx/resources/phone_numbers/voicemail.py +15 -15
- telnyx/resources/phone_numbers_regulatory_requirements.py +5 -5
- telnyx/resources/portability_checks.py +5 -7
- telnyx/resources/porting/events.py +11 -11
- telnyx/resources/porting/loa_configurations.py +17 -17
- telnyx/resources/porting/porting.py +3 -3
- telnyx/resources/porting/reports.py +11 -11
- telnyx/resources/porting_orders/action_requirements.py +11 -11
- telnyx/resources/porting_orders/actions.py +13 -13
- telnyx/resources/porting_orders/activation_jobs.py +11 -11
- telnyx/resources/porting_orders/additional_documents.py +15 -15
- telnyx/resources/porting_orders/associated_phone_numbers.py +13 -13
- telnyx/resources/porting_orders/comments.py +9 -9
- telnyx/resources/porting_orders/phone_number_blocks.py +13 -13
- telnyx/resources/porting_orders/phone_number_configurations.py +13 -13
- telnyx/resources/porting_orders/phone_number_extensions.py +13 -13
- telnyx/resources/porting_orders/porting_orders.py +82 -70
- telnyx/resources/porting_orders/verification_codes.py +20 -20
- telnyx/resources/porting_phone_numbers.py +7 -7
- telnyx/resources/portouts/comments.py +7 -7
- telnyx/resources/portouts/events.py +11 -11
- telnyx/resources/portouts/portouts.py +17 -17
- telnyx/resources/portouts/reports.py +11 -11
- telnyx/resources/portouts/supporting_documents.py +7 -7
- telnyx/resources/private_wireless_gateways.py +25 -25
- telnyx/resources/public_internet_gateways.py +19 -19
- telnyx/resources/queues/calls.py +7 -7
- telnyx/resources/queues/queues.py +3 -3
- telnyx/resources/recording_transcriptions.py +7 -7
- telnyx/resources/recordings/actions.py +5 -7
- telnyx/resources/recordings/recordings.py +11 -11
- telnyx/resources/regions.py +3 -3
- telnyx/resources/regulatory_requirements.py +5 -5
- telnyx/resources/reports/cdr_usage_reports.py +9 -9
- telnyx/resources/reports/mdr_usage_reports.py +22 -22
- telnyx/resources/reports/reports.py +47 -48
- telnyx/resources/requirement_groups.py +23 -23
- telnyx/resources/requirement_types.py +9 -11
- telnyx/resources/requirements.py +11 -11
- telnyx/resources/room_compositions.py +27 -27
- telnyx/resources/room_participants.py +9 -9
- telnyx/resources/room_recordings.py +17 -17
- telnyx/resources/rooms/actions.py +11 -11
- telnyx/resources/rooms/rooms.py +43 -43
- telnyx/resources/rooms/sessions/actions.py +22 -22
- telnyx/resources/rooms/sessions/sessions.py +27 -27
- telnyx/resources/seti.py +5 -5
- telnyx/resources/short_codes.py +11 -11
- telnyx/resources/sim_card_data_usage_notifications.py +21 -21
- telnyx/resources/sim_card_groups/actions.py +23 -23
- telnyx/resources/sim_card_groups/sim_card_groups.py +29 -29
- telnyx/resources/sim_card_order_preview.py +3 -3
- telnyx/resources/sim_card_orders.py +11 -11
- telnyx/resources/sim_cards/actions.py +29 -31
- telnyx/resources/sim_cards/sim_cards.py +48 -48
- telnyx/resources/siprec_connectors.py +13 -13
- telnyx/resources/storage/buckets/buckets.py +5 -5
- telnyx/resources/storage/buckets/ssl_certificate.py +11 -11
- telnyx/resources/storage/buckets/usage.py +5 -5
- telnyx/resources/storage/migration_sources.py +11 -11
- telnyx/resources/storage/migrations/actions.py +3 -3
- telnyx/resources/storage/migrations/migrations.py +9 -9
- telnyx/resources/storage/storage.py +3 -3
- telnyx/resources/sub_number_orders.py +17 -17
- telnyx/resources/sub_number_orders_report.py +19 -19
- telnyx/resources/telephony_credentials.py +31 -31
- telnyx/resources/texml/accounts/accounts.py +15 -15
- telnyx/resources/texml/accounts/calls/calls.py +145 -145
- telnyx/resources/texml/accounts/calls/recordings.py +5 -5
- telnyx/resources/texml/accounts/calls/recordings_json.py +19 -19
- telnyx/resources/texml/accounts/calls/siprec.py +5 -5
- telnyx/resources/texml/accounts/calls/streams.py +5 -5
- telnyx/resources/texml/accounts/conferences/conferences.py +31 -31
- telnyx/resources/texml/accounts/conferences/participants.py +123 -123
- telnyx/resources/texml/accounts/recordings/json.py +5 -5
- telnyx/resources/texml/accounts/transcriptions/json.py +5 -5
- telnyx/resources/texml/calls.py +79 -79
- telnyx/resources/texml/texml.py +3 -3
- telnyx/resources/texml_applications.py +65 -66
- telnyx/resources/text_to_speech.py +9 -9
- telnyx/resources/usage_reports.py +31 -32
- telnyx/resources/user_addresses.py +29 -31
- telnyx/resources/user_tags.py +5 -5
- telnyx/resources/verifications/actions.py +7 -7
- telnyx/resources/verifications/by_phone_number/actions.py +3 -3
- telnyx/resources/verifications/by_phone_number/by_phone_number.py +3 -3
- telnyx/resources/verifications/verifications.py +29 -19
- telnyx/resources/verified_numbers/actions.py +3 -3
- telnyx/resources/verified_numbers/verified_numbers.py +36 -15
- telnyx/resources/verify_profiles.py +226 -44
- telnyx/resources/virtual_cross_connects.py +45 -45
- telnyx/resources/virtual_cross_connects_coverage.py +9 -9
- telnyx/resources/webhook_deliveries.py +9 -9
- telnyx/resources/webhooks.py +34 -0
- telnyx/resources/well_known.py +198 -0
- telnyx/resources/wireguard_interfaces.py +17 -17
- telnyx/resources/wireguard_peers.py +21 -21
- telnyx/resources/wireless/detail_records_reports.py +17 -17
- telnyx/resources/wireless/wireless.py +3 -3
- telnyx/resources/wireless_blocklist_values.py +3 -3
- telnyx/resources/wireless_blocklists.py +29 -30
- telnyx/types/__init__.py +164 -13
- telnyx/types/actions/purchase_create_params.py +3 -2
- telnyx/types/actions/register_create_params.py +4 -3
- telnyx/types/addresses/action_validate_response.py +8 -3
- telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
- telnyx/types/ai/__init__.py +1 -0
- telnyx/types/ai/chat_create_completion_params.py +3 -2
- telnyx/types/ai/cluster_compute_params.py +3 -2
- telnyx/types/ai/{conversations/message_create_params.py → conversation_add_message_params.py} +6 -5
- telnyx/types/ai/conversations/__init__.py +0 -1
- telnyx/types/ai/embedding_list_params.py +3 -2
- telnyx/types/ai/inference_embedding_bucket_ids_param.py +3 -2
- telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
- telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
- telnyx/types/ai/inference_embedding_webhook_tool_params.py +2 -0
- telnyx/types/ai/inference_embedding_webhook_tool_params_param.py +8 -4
- telnyx/types/ai/voice_settings.py +49 -2
- telnyx/types/ai/voice_settings_param.py +49 -2
- telnyx/types/brand_create_params.py +2 -1
- telnyx/types/brand_update_params.py +2 -1
- telnyx/types/bundle_pricing/billing_bundle_list_params.py +4 -3
- telnyx/types/bundle_pricing/user_bundle_list_params.py +4 -3
- telnyx/types/bundle_pricing/user_bundle_list_unused_params.py +4 -3
- telnyx/types/call_ai_gather_ended_webhook_event.py +78 -0
- telnyx/types/call_ai_gather_message_history_updated_webhook_event.py +69 -0
- telnyx/types/call_ai_gather_partial_results_webhook_event.py +75 -0
- telnyx/types/call_answered_webhook_event.py +75 -0
- telnyx/types/call_bridged_webhook_event.py +58 -0
- telnyx/types/call_control_application_update_params.py +3 -2
- telnyx/types/call_conversation_ended_webhook_event.py +84 -0
- telnyx/types/call_conversation_insights_generated_webhook_event.py +67 -0
- telnyx/types/call_dial_params.py +14 -6
- telnyx/types/call_dtmf_received_webhook_event.py +61 -0
- telnyx/types/call_enqueued_webhook_event.py +59 -0
- telnyx/types/call_fork_started_webhook_event.py +53 -0
- telnyx/types/call_fork_stopped_webhook_event.py +53 -0
- telnyx/types/call_gather_ended_webhook_event.py +64 -0
- telnyx/types/call_hangup_webhook_event.py +150 -0
- telnyx/types/call_initiated_webhook_event.py +96 -0
- telnyx/types/call_left_queue_webhook_event.py +62 -0
- telnyx/types/call_machine_detection_ended_webhook_event.py +61 -0
- telnyx/types/call_machine_greeting_ended_webhook_event.py +61 -0
- telnyx/types/call_machine_premium_detection_ended_webhook_event.py +63 -0
- telnyx/types/call_machine_premium_greeting_ended_webhook_event.py +61 -0
- telnyx/types/call_playback_ended_webhook_event.py +70 -0
- telnyx/types/call_playback_started_webhook_event.py +62 -0
- telnyx/types/call_recording_error_webhook_event.py +60 -0
- telnyx/types/call_recording_saved_webhook_event.py +94 -0
- telnyx/types/call_recording_transcription_saved_webhook_event.py +71 -0
- telnyx/types/call_refer_completed_webhook_event.py +61 -0
- telnyx/types/call_refer_failed_webhook_event.py +61 -0
- telnyx/types/call_refer_started_webhook_event.py +61 -0
- telnyx/types/call_siprec_failed_webhook_event.py +53 -0
- telnyx/types/call_siprec_started_webhook_event.py +50 -0
- telnyx/types/call_siprec_stopped_webhook_event.py +53 -0
- telnyx/types/call_speak_ended_webhook_event.py +53 -0
- telnyx/types/call_speak_started_webhook_event.py +50 -0
- telnyx/types/call_streaming_failed_webhook_event.py +70 -0
- telnyx/types/call_streaming_started_webhook_event.py +53 -0
- telnyx/types/call_streaming_stopped_webhook_event.py +53 -0
- telnyx/types/calls/action_answer_params.py +1 -2
- telnyx/types/calls/action_gather_using_ai_params.py +5 -8
- telnyx/types/calls/action_start_streaming_params.py +4 -2
- telnyx/types/calls/action_start_transcription_params.py +260 -6
- telnyx/types/calls/action_transfer_params.py +50 -0
- telnyx/types/calls/transcription_engine_a_config_param.py +4 -3
- telnyx/types/calls/transcription_start_request_param.py +261 -6
- telnyx/types/campaign_builder_create_params.py +4 -3
- telnyx/types/campaign_status_update_webhook_event.py +26 -0
- telnyx/types/campaign_submit_appeal_response.py +0 -3
- telnyx/types/conference_created_webhook_event.py +53 -0
- telnyx/types/conference_ended_webhook_event.py +56 -0
- telnyx/types/conference_floor_changed_webhook_event.py +45 -0
- telnyx/types/conference_participant_joined_webhook_event.py +53 -0
- telnyx/types/conference_participant_left_webhook_event.py +53 -0
- telnyx/types/conference_participant_playback_ended_webhook_event.py +65 -0
- telnyx/types/conference_participant_playback_started_webhook_event.py +65 -0
- telnyx/types/conference_participant_speak_ended_webhook_event.py +56 -0
- telnyx/types/conference_participant_speak_started_webhook_event.py +56 -0
- telnyx/types/conference_playback_ended_webhook_event.py +49 -0
- telnyx/types/conference_playback_started_webhook_event.py +49 -0
- telnyx/types/conference_recording_saved_webhook_event.py +103 -0
- telnyx/types/conference_speak_ended_webhook_event.py +40 -0
- telnyx/types/conference_speak_started_webhook_event.py +40 -0
- telnyx/types/conferences/action_hold_params.py +3 -2
- telnyx/types/conferences/action_join_params.py +3 -2
- telnyx/types/conferences/action_mute_params.py +3 -2
- telnyx/types/conferences/action_play_params.py +2 -2
- telnyx/types/conferences/action_speak_params.py +3 -2
- telnyx/types/conferences/action_stop_params.py +3 -2
- telnyx/types/conferences/action_unhold_params.py +3 -2
- telnyx/types/conferences/action_unmute_params.py +3 -2
- telnyx/types/conferences/action_update_params.py +3 -2
- telnyx/types/country_coverage_retrieve_country_response.py +7 -0
- telnyx/types/country_coverage_retrieve_response.py +7 -0
- telnyx/types/credential_connection_create_params.py +3 -2
- telnyx/types/credential_connection_update_params.py +3 -2
- telnyx/types/credential_inbound_param.py +3 -2
- telnyx/types/custom_sip_header.py +13 -0
- telnyx/types/customer_service_record_list_params.py +2 -1
- telnyx/types/customer_service_record_status_changed_webhook_event.py +55 -0
- telnyx/types/customer_service_record_verify_phone_number_coverage_params.py +3 -2
- telnyx/types/delivery_update_webhook_event.py +40 -0
- telnyx/types/detail_record_list_params.py +4 -2
- telnyx/types/document_list_params.py +2 -1
- telnyx/types/external_connection_create_params.py +4 -2
- telnyx/types/external_connection_update_params.py +4 -2
- telnyx/types/external_connections/civic_address_list_params.py +3 -2
- telnyx/types/external_connections/upload_create_params.py +3 -1
- telnyx/types/fax_application_create_params.py +3 -2
- telnyx/types/fax_application_update_params.py +3 -2
- telnyx/types/fax_delivered_webhook_event.py +69 -0
- telnyx/types/fax_failed_webhook_event.py +66 -0
- telnyx/types/fax_media_processed_webhook_event.py +63 -0
- telnyx/types/fax_queued_webhook_event.py +63 -0
- telnyx/types/fax_sending_started_webhook_event.py +63 -0
- telnyx/types/fqdn_connection_create_params.py +3 -2
- telnyx/types/fqdn_connection_update_params.py +3 -2
- telnyx/types/global_ip_latency_retrieve_response.py +7 -7
- telnyx/types/inbound_fqdn_param.py +4 -2
- telnyx/types/inbound_ip_param.py +3 -2
- telnyx/types/inbound_message_webhook_event.py +227 -0
- telnyx/types/ip_connection_create_params.py +4 -3
- telnyx/types/ip_connection_update_params.py +3 -2
- telnyx/types/legacy/__init__.py +3 -0
- telnyx/types/legacy/reporting/__init__.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/__init__.py +23 -0
- telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
- telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +55 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +24 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_params.py +19 -0
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +12 -0
- telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +57 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +13 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +13 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +24 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_fields_response.py +23 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +13 -0
- telnyx/types/legacy/reporting/filter.py +31 -0
- telnyx/types/legacy/reporting/filter_param.py +30 -0
- telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_params.py +17 -0
- telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_response.py +11 -0
- telnyx/types/legacy/reporting/usage_reports/__init__.py +20 -0
- telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
- telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_create_params.py +29 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_list_params.py +15 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +24 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/number_lookup_create_params.py +26 -0
- telnyx/types/legacy/reporting/usage_reports/number_lookup_list_params.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/voice_create_params.py +40 -0
- telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +13 -0
- telnyx/types/legacy/reporting/usage_reports/voice_list_params.py +15 -0
- telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +24 -0
- telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +13 -0
- telnyx/types/media_list_params.py +3 -2
- telnyx/types/message_schedule_params.py +3 -2
- telnyx/types/message_send_group_mms_params.py +3 -3
- telnyx/types/message_send_long_code_params.py +2 -2
- telnyx/types/message_send_number_pool_params.py +3 -2
- telnyx/types/message_send_params.py +3 -2
- telnyx/types/message_send_short_code_params.py +2 -2
- telnyx/types/messaging/rc_list_bulk_capabilities_params.py +3 -2
- telnyx/types/messaging_hosted_number_order_check_eligibility_params.py +3 -2
- telnyx/types/messaging_hosted_number_order_create_params.py +3 -2
- telnyx/types/messaging_hosted_number_order_create_verification_codes_params.py +3 -2
- telnyx/types/messaging_numbers_bulk_update_create_params.py +3 -2
- telnyx/types/messaging_profile_create_params.py +3 -2
- telnyx/types/messaging_profile_update_params.py +3 -2
- telnyx/types/messaging_profiles/autoresp_config_create_params.py +3 -2
- telnyx/types/messaging_profiles/autoresp_config_update_params.py +3 -2
- telnyx/types/messsage_rcs_params.py +2 -2
- telnyx/types/number_order_status_update_webhook_event.py +38 -0
- telnyx/types/numbers_feature_create_params.py +3 -2
- telnyx/types/oauth_client.py +59 -0
- telnyx/types/oauth_client_create_params.py +39 -0
- telnyx/types/oauth_client_create_response.py +12 -0
- telnyx/types/oauth_client_list_params.py +38 -0
- telnyx/types/oauth_client_list_response.py +28 -0
- telnyx/types/oauth_client_retrieve_response.py +12 -0
- telnyx/types/oauth_client_update_params.py +36 -0
- telnyx/types/oauth_client_update_response.py +12 -0
- telnyx/types/oauth_grant.py +29 -0
- telnyx/types/oauth_grant_delete_response.py +12 -0
- telnyx/types/oauth_grant_list_params.py +17 -0
- telnyx/types/oauth_grant_list_response.py +28 -0
- telnyx/types/oauth_grant_retrieve_response.py +12 -0
- telnyx/types/oauth_grants_params.py +15 -0
- telnyx/types/oauth_grants_response.py +10 -0
- telnyx/types/oauth_introspect_params.py +12 -0
- telnyx/types/oauth_introspect_response.py +30 -0
- telnyx/types/oauth_register_params.py +39 -0
- telnyx/types/oauth_register_response.py +45 -0
- telnyx/types/oauth_retrieve_authorize_params.py +30 -0
- telnyx/types/oauth_retrieve_jwks_response.py +25 -0
- telnyx/types/oauth_retrieve_response.py +47 -0
- telnyx/types/oauth_token_params.py +33 -0
- telnyx/types/oauth_token_response.py +25 -0
- telnyx/types/outbound_call_recording_param.py +3 -2
- telnyx/types/outbound_voice_profile_create_params.py +4 -3
- telnyx/types/outbound_voice_profile_update_params.py +4 -3
- telnyx/types/phone_number_delete_response.py +7 -0
- telnyx/types/phone_number_detailed.py +7 -0
- telnyx/types/phone_number_list_params.py +9 -2
- telnyx/types/phone_number_slim_list_params.py +3 -2
- telnyx/types/phone_number_update_params.py +3 -2
- telnyx/types/phone_numbers/action_verify_ownership_params.py +3 -2
- telnyx/types/phone_numbers/job_delete_batch_params.py +3 -2
- telnyx/types/phone_numbers/job_update_batch_params.py +10 -3
- telnyx/types/phone_numbers/job_update_emergency_settings_batch_params.py +4 -2
- telnyx/types/portability_check_run_params.py +3 -2
- telnyx/types/porting/export_porting_orders_csv_report_param.py +2 -1
- telnyx/types/porting_order.py +3 -0
- telnyx/types/porting_order_create_params.py +6 -2
- telnyx/types/porting_order_list_params.py +52 -31
- telnyx/types/porting_order_phone_number_configuration_param.py +3 -2
- telnyx/types/porting_order_update_params.py +2 -0
- telnyx/types/porting_orders/action_requirement_list_params.py +3 -2
- telnyx/types/porting_orders/phone_number_block_list_params.py +5 -3
- telnyx/types/porting_orders/phone_number_configuration_list_params.py +22 -21
- telnyx/types/porting_orders/verification_code_send_params.py +3 -2
- telnyx/types/portout_list_params.py +2 -1
- telnyx/types/portouts/export_portouts_csv_report_param.py +3 -2
- telnyx/types/recordings/action_delete_params.py +3 -2
- telnyx/types/replaced_link_click_webhook_event.py +32 -0
- telnyx/types/report_list_wdrs_params.py +3 -2
- telnyx/types/reports/mdr_usage_report_fetch_sync_params.py +3 -2
- telnyx/types/rooms/sessions/action_kick_params.py +5 -3
- telnyx/types/rooms/sessions/action_mute_params.py +5 -3
- telnyx/types/rooms/sessions/action_unmute_params.py +5 -3
- telnyx/types/shared/__init__.py +1 -0
- telnyx/types/{error.py → shared/api_error.py} +3 -3
- telnyx/types/shared/simple_sim_card.py +15 -0
- telnyx/types/sim_card.py +12 -0
- telnyx/types/sim_card_list_params.py +2 -1
- telnyx/types/sim_card_update_params.py +4 -3
- telnyx/types/sim_cards/action_bulk_set_public_ips_params.py +3 -2
- telnyx/types/sim_cards/action_validate_registration_codes_params.py +3 -2
- telnyx/types/sip_header.py +15 -0
- telnyx/types/stream_bidirectional_codec.py +1 -1
- telnyx/types/stream_codec.py +1 -1
- telnyx/types/streaming_failed_webhook_event.py +70 -0
- telnyx/types/streaming_started_webhook_event.py +53 -0
- telnyx/types/streaming_stopped_webhook_event.py +53 -0
- telnyx/types/texml_application_create_params.py +2 -2
- telnyx/types/texml_application_update_params.py +2 -2
- telnyx/types/transcription_webhook_event.py +72 -0
- telnyx/types/unwrap_webhook_event.py +138 -0
- telnyx/types/usage_report_list_params.py +5 -4
- telnyx/types/verification_trigger_call_params.py +7 -0
- telnyx/types/verified_number_create_params.py +10 -0
- telnyx/types/verify_profile.py +18 -3
- telnyx/types/verify_profile_create_params.py +6 -4
- telnyx/types/verify_profile_create_template_params.py +12 -0
- telnyx/types/verify_profile_create_template_response.py +12 -0
- telnyx/types/verify_profile_message_template_response.py +13 -0
- telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
- telnyx/types/verify_profile_update_params.py +6 -4
- telnyx/types/verify_profile_update_template_params.py +12 -0
- telnyx/types/verify_profile_update_template_response.py +12 -0
- telnyx/types/video_region_param.py +4 -2
- telnyx/types/well_known_retrieve_authorization_server_metadata_response.py +42 -0
- telnyx/types/well_known_retrieve_protected_resource_metadata_response.py +15 -0
- telnyx/types/wireless_blocklist_create_params.py +3 -2
- telnyx/types/wireless_blocklist_update_params.py +3 -2
- {telnyx-3.2.0a0.dist-info → telnyx-3.3.0.dist-info}/METADATA +60 -19
- {telnyx-3.2.0a0.dist-info → telnyx-3.3.0.dist-info}/RECORD +558 -403
- telnyx/types/client_create_bucket_params.py +0 -13
- telnyx/types/client_delete_objects_params.py +0 -20
- telnyx/types/client_get_object_params.py +0 -15
- telnyx/types/client_list_objects_params.py +0 -13
- telnyx/types/client_put_object_params.py +0 -20
- telnyx/types/list_buckets_response.py +0 -20
- telnyx/types/list_objects_response.py +0 -24
- {telnyx-3.2.0a0.dist-info → telnyx-3.3.0.dist-info}/WHEEL +0 -0
- {telnyx-3.2.0a0.dist-info → telnyx-3.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This file contains code from https://github.com/pydantic/pydantic/blob/main/pydantic/v1/datetime_parse.py
|
|
3
|
+
without the Pydantic v1 specific errors.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import re
|
|
9
|
+
from typing import Dict, Union, Optional
|
|
10
|
+
from datetime import date, datetime, timezone, timedelta
|
|
11
|
+
|
|
12
|
+
from .._types import StrBytesIntFloat
|
|
13
|
+
|
|
14
|
+
date_expr = r"(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})"
|
|
15
|
+
time_expr = (
|
|
16
|
+
r"(?P<hour>\d{1,2}):(?P<minute>\d{1,2})"
|
|
17
|
+
r"(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6})\d{0,6})?)?"
|
|
18
|
+
r"(?P<tzinfo>Z|[+-]\d{2}(?::?\d{2})?)?$"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
date_re = re.compile(f"{date_expr}$")
|
|
22
|
+
datetime_re = re.compile(f"{date_expr}[T ]{time_expr}")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
EPOCH = datetime(1970, 1, 1)
|
|
26
|
+
# if greater than this, the number is in ms, if less than or equal it's in seconds
|
|
27
|
+
# (in seconds this is 11th October 2603, in ms it's 20th August 1970)
|
|
28
|
+
MS_WATERSHED = int(2e10)
|
|
29
|
+
# slightly more than datetime.max in ns - (datetime.max - EPOCH).total_seconds() * 1e9
|
|
30
|
+
MAX_NUMBER = int(3e20)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _get_numeric(value: StrBytesIntFloat, native_expected_type: str) -> Union[None, int, float]:
|
|
34
|
+
if isinstance(value, (int, float)):
|
|
35
|
+
return value
|
|
36
|
+
try:
|
|
37
|
+
return float(value)
|
|
38
|
+
except ValueError:
|
|
39
|
+
return None
|
|
40
|
+
except TypeError:
|
|
41
|
+
raise TypeError(f"invalid type; expected {native_expected_type}, string, bytes, int or float") from None
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _from_unix_seconds(seconds: Union[int, float]) -> datetime:
|
|
45
|
+
if seconds > MAX_NUMBER:
|
|
46
|
+
return datetime.max
|
|
47
|
+
elif seconds < -MAX_NUMBER:
|
|
48
|
+
return datetime.min
|
|
49
|
+
|
|
50
|
+
while abs(seconds) > MS_WATERSHED:
|
|
51
|
+
seconds /= 1000
|
|
52
|
+
dt = EPOCH + timedelta(seconds=seconds)
|
|
53
|
+
return dt.replace(tzinfo=timezone.utc)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _parse_timezone(value: Optional[str]) -> Union[None, int, timezone]:
|
|
57
|
+
if value == "Z":
|
|
58
|
+
return timezone.utc
|
|
59
|
+
elif value is not None:
|
|
60
|
+
offset_mins = int(value[-2:]) if len(value) > 3 else 0
|
|
61
|
+
offset = 60 * int(value[1:3]) + offset_mins
|
|
62
|
+
if value[0] == "-":
|
|
63
|
+
offset = -offset
|
|
64
|
+
return timezone(timedelta(minutes=offset))
|
|
65
|
+
else:
|
|
66
|
+
return None
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def parse_datetime(value: Union[datetime, StrBytesIntFloat]) -> datetime:
|
|
70
|
+
"""
|
|
71
|
+
Parse a datetime/int/float/string and return a datetime.datetime.
|
|
72
|
+
|
|
73
|
+
This function supports time zone offsets. When the input contains one,
|
|
74
|
+
the output uses a timezone with a fixed offset from UTC.
|
|
75
|
+
|
|
76
|
+
Raise ValueError if the input is well formatted but not a valid datetime.
|
|
77
|
+
Raise ValueError if the input isn't well formatted.
|
|
78
|
+
"""
|
|
79
|
+
if isinstance(value, datetime):
|
|
80
|
+
return value
|
|
81
|
+
|
|
82
|
+
number = _get_numeric(value, "datetime")
|
|
83
|
+
if number is not None:
|
|
84
|
+
return _from_unix_seconds(number)
|
|
85
|
+
|
|
86
|
+
if isinstance(value, bytes):
|
|
87
|
+
value = value.decode()
|
|
88
|
+
|
|
89
|
+
assert not isinstance(value, (float, int))
|
|
90
|
+
|
|
91
|
+
match = datetime_re.match(value)
|
|
92
|
+
if match is None:
|
|
93
|
+
raise ValueError("invalid datetime format")
|
|
94
|
+
|
|
95
|
+
kw = match.groupdict()
|
|
96
|
+
if kw["microsecond"]:
|
|
97
|
+
kw["microsecond"] = kw["microsecond"].ljust(6, "0")
|
|
98
|
+
|
|
99
|
+
tzinfo = _parse_timezone(kw.pop("tzinfo"))
|
|
100
|
+
kw_: Dict[str, Union[None, int, timezone]] = {k: int(v) for k, v in kw.items() if v is not None}
|
|
101
|
+
kw_["tzinfo"] = tzinfo
|
|
102
|
+
|
|
103
|
+
return datetime(**kw_) # type: ignore
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def parse_date(value: Union[date, StrBytesIntFloat]) -> date:
|
|
107
|
+
"""
|
|
108
|
+
Parse a date/int/float/string and return a datetime.date.
|
|
109
|
+
|
|
110
|
+
Raise ValueError if the input is well formatted but not a valid date.
|
|
111
|
+
Raise ValueError if the input isn't well formatted.
|
|
112
|
+
"""
|
|
113
|
+
if isinstance(value, date):
|
|
114
|
+
if isinstance(value, datetime):
|
|
115
|
+
return value.date()
|
|
116
|
+
else:
|
|
117
|
+
return value
|
|
118
|
+
|
|
119
|
+
number = _get_numeric(value, "date")
|
|
120
|
+
if number is not None:
|
|
121
|
+
return _from_unix_seconds(number).date()
|
|
122
|
+
|
|
123
|
+
if isinstance(value, bytes):
|
|
124
|
+
value = value.decode()
|
|
125
|
+
|
|
126
|
+
assert not isinstance(value, (float, int))
|
|
127
|
+
match = date_re.match(value)
|
|
128
|
+
if match is None:
|
|
129
|
+
raise ValueError("invalid date format")
|
|
130
|
+
|
|
131
|
+
kw = {k: int(v) for k, v in match.groupdict().items()}
|
|
132
|
+
|
|
133
|
+
try:
|
|
134
|
+
return date(**kw)
|
|
135
|
+
except ValueError:
|
|
136
|
+
raise ValueError("invalid date format") from None
|
telnyx/_utils/_transform.py
CHANGED
|
@@ -16,18 +16,20 @@ from ._utils import (
|
|
|
16
16
|
lru_cache,
|
|
17
17
|
is_mapping,
|
|
18
18
|
is_iterable,
|
|
19
|
+
is_sequence,
|
|
19
20
|
)
|
|
20
21
|
from .._files import is_base64_file_input
|
|
22
|
+
from ._compat import get_origin, is_typeddict
|
|
21
23
|
from ._typing import (
|
|
22
24
|
is_list_type,
|
|
23
25
|
is_union_type,
|
|
24
26
|
extract_type_arg,
|
|
25
27
|
is_iterable_type,
|
|
26
28
|
is_required_type,
|
|
29
|
+
is_sequence_type,
|
|
27
30
|
is_annotated_type,
|
|
28
31
|
strip_annotated_type,
|
|
29
32
|
)
|
|
30
|
-
from .._compat import get_origin, model_dump, is_typeddict
|
|
31
33
|
|
|
32
34
|
_T = TypeVar("_T")
|
|
33
35
|
|
|
@@ -167,6 +169,8 @@ def _transform_recursive(
|
|
|
167
169
|
|
|
168
170
|
Defaults to the same value as the `annotation` argument.
|
|
169
171
|
"""
|
|
172
|
+
from .._compat import model_dump
|
|
173
|
+
|
|
170
174
|
if inner_type is None:
|
|
171
175
|
inner_type = annotation
|
|
172
176
|
|
|
@@ -184,6 +188,8 @@ def _transform_recursive(
|
|
|
184
188
|
(is_list_type(stripped_type) and is_list(data))
|
|
185
189
|
# Iterable[T]
|
|
186
190
|
or (is_iterable_type(stripped_type) and is_iterable(data) and not isinstance(data, str))
|
|
191
|
+
# Sequence[T]
|
|
192
|
+
or (is_sequence_type(stripped_type) and is_sequence(data) and not isinstance(data, str))
|
|
187
193
|
):
|
|
188
194
|
# dicts are technically iterable, but it is an iterable on the keys of the dict and is not usually
|
|
189
195
|
# intended as an iterable, so we don't transform it.
|
|
@@ -262,7 +268,7 @@ def _transform_typeddict(
|
|
|
262
268
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
263
269
|
for key, value in data.items():
|
|
264
270
|
if not is_given(value):
|
|
265
|
-
# we don't need to include
|
|
271
|
+
# we don't need to include omitted values here as they'll
|
|
266
272
|
# be stripped out before the request is sent anyway
|
|
267
273
|
continue
|
|
268
274
|
|
|
@@ -329,6 +335,8 @@ async def _async_transform_recursive(
|
|
|
329
335
|
|
|
330
336
|
Defaults to the same value as the `annotation` argument.
|
|
331
337
|
"""
|
|
338
|
+
from .._compat import model_dump
|
|
339
|
+
|
|
332
340
|
if inner_type is None:
|
|
333
341
|
inner_type = annotation
|
|
334
342
|
|
|
@@ -346,6 +354,8 @@ async def _async_transform_recursive(
|
|
|
346
354
|
(is_list_type(stripped_type) and is_list(data))
|
|
347
355
|
# Iterable[T]
|
|
348
356
|
or (is_iterable_type(stripped_type) and is_iterable(data) and not isinstance(data, str))
|
|
357
|
+
# Sequence[T]
|
|
358
|
+
or (is_sequence_type(stripped_type) and is_sequence(data) and not isinstance(data, str))
|
|
349
359
|
):
|
|
350
360
|
# dicts are technically iterable, but it is an iterable on the keys of the dict and is not usually
|
|
351
361
|
# intended as an iterable, so we don't transform it.
|
|
@@ -424,7 +434,7 @@ async def _async_transform_typeddict(
|
|
|
424
434
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
425
435
|
for key, value in data.items():
|
|
426
436
|
if not is_given(value):
|
|
427
|
-
# we don't need to include
|
|
437
|
+
# we don't need to include omitted values here as they'll
|
|
428
438
|
# be stripped out before the request is sent anyway
|
|
429
439
|
continue
|
|
430
440
|
|
telnyx/_utils/_typing.py
CHANGED
|
@@ -15,7 +15,7 @@ from typing_extensions import (
|
|
|
15
15
|
|
|
16
16
|
from ._utils import lru_cache
|
|
17
17
|
from .._types import InheritsGeneric
|
|
18
|
-
from
|
|
18
|
+
from ._compat import is_union as _is_union
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
def is_annotated_type(typ: type) -> bool:
|
|
@@ -26,6 +26,11 @@ def is_list_type(typ: type) -> bool:
|
|
|
26
26
|
return (get_origin(typ) or typ) == list
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
def is_sequence_type(typ: type) -> bool:
|
|
30
|
+
origin = get_origin(typ) or typ
|
|
31
|
+
return origin == typing_extensions.Sequence or origin == typing.Sequence or origin == _c_abc.Sequence
|
|
32
|
+
|
|
33
|
+
|
|
29
34
|
def is_iterable_type(typ: type) -> bool:
|
|
30
35
|
"""If the given type is `typing.Iterable[T]`"""
|
|
31
36
|
origin = get_origin(typ) or typ
|
telnyx/_utils/_utils.py
CHANGED
|
@@ -21,8 +21,7 @@ from typing_extensions import TypeGuard
|
|
|
21
21
|
|
|
22
22
|
import sniffio
|
|
23
23
|
|
|
24
|
-
from .._types import NotGiven, FileTypes,
|
|
25
|
-
from .._compat import parse_date as parse_date, parse_datetime as parse_datetime
|
|
24
|
+
from .._types import Omit, NotGiven, FileTypes, HeadersLike
|
|
26
25
|
|
|
27
26
|
_T = TypeVar("_T")
|
|
28
27
|
_TupleT = TypeVar("_TupleT", bound=Tuple[object, ...])
|
|
@@ -64,7 +63,7 @@ def _extract_items(
|
|
|
64
63
|
try:
|
|
65
64
|
key = path[index]
|
|
66
65
|
except IndexError:
|
|
67
|
-
if
|
|
66
|
+
if not is_given(obj):
|
|
68
67
|
# no value was provided - we can safely ignore
|
|
69
68
|
return []
|
|
70
69
|
|
|
@@ -127,8 +126,8 @@ def _extract_items(
|
|
|
127
126
|
return []
|
|
128
127
|
|
|
129
128
|
|
|
130
|
-
def is_given(obj:
|
|
131
|
-
return not isinstance(obj, NotGiven)
|
|
129
|
+
def is_given(obj: _T | NotGiven | Omit) -> TypeGuard[_T]:
|
|
130
|
+
return not isinstance(obj, NotGiven) and not isinstance(obj, Omit)
|
|
132
131
|
|
|
133
132
|
|
|
134
133
|
# Type safe methods for narrowing types with TypeVars.
|
telnyx/_version.py
CHANGED
telnyx/resources/__init__.py
CHANGED
|
@@ -80,6 +80,14 @@ from .media import (
|
|
|
80
80
|
MediaResourceWithStreamingResponse,
|
|
81
81
|
AsyncMediaResourceWithStreamingResponse,
|
|
82
82
|
)
|
|
83
|
+
from .oauth import (
|
|
84
|
+
OAuthResource,
|
|
85
|
+
AsyncOAuthResource,
|
|
86
|
+
OAuthResourceWithRawResponse,
|
|
87
|
+
AsyncOAuthResourceWithRawResponse,
|
|
88
|
+
OAuthResourceWithStreamingResponse,
|
|
89
|
+
AsyncOAuthResourceWithStreamingResponse,
|
|
90
|
+
)
|
|
83
91
|
from .rooms import (
|
|
84
92
|
RoomsResource,
|
|
85
93
|
AsyncRoomsResource,
|
|
@@ -96,6 +104,14 @@ from .texml import (
|
|
|
96
104
|
TexmlResourceWithStreamingResponse,
|
|
97
105
|
AsyncTexmlResourceWithStreamingResponse,
|
|
98
106
|
)
|
|
107
|
+
from .legacy import (
|
|
108
|
+
LegacyResource,
|
|
109
|
+
AsyncLegacyResource,
|
|
110
|
+
LegacyResourceWithRawResponse,
|
|
111
|
+
AsyncLegacyResourceWithRawResponse,
|
|
112
|
+
LegacyResourceWithStreamingResponse,
|
|
113
|
+
AsyncLegacyResourceWithStreamingResponse,
|
|
114
|
+
)
|
|
99
115
|
from .queues import (
|
|
100
116
|
QueuesResource,
|
|
101
117
|
AsyncQueuesResource,
|
|
@@ -208,6 +224,7 @@ from .portouts import (
|
|
|
208
224
|
PortoutsResourceWithStreamingResponse,
|
|
209
225
|
AsyncPortoutsResourceWithStreamingResponse,
|
|
210
226
|
)
|
|
227
|
+
from .webhooks import WebhooksResource, AsyncWebhooksResource
|
|
211
228
|
from .wireless import (
|
|
212
229
|
WirelessResource,
|
|
213
230
|
AsyncWirelessResource,
|
|
@@ -280,6 +297,14 @@ from .recordings import (
|
|
|
280
297
|
RecordingsResourceWithStreamingResponse,
|
|
281
298
|
AsyncRecordingsResourceWithStreamingResponse,
|
|
282
299
|
)
|
|
300
|
+
from .well_known import (
|
|
301
|
+
WellKnownResource,
|
|
302
|
+
AsyncWellKnownResource,
|
|
303
|
+
WellKnownResourceWithRawResponse,
|
|
304
|
+
AsyncWellKnownResourceWithRawResponse,
|
|
305
|
+
WellKnownResourceWithStreamingResponse,
|
|
306
|
+
AsyncWellKnownResourceWithStreamingResponse,
|
|
307
|
+
)
|
|
283
308
|
from .call_events import (
|
|
284
309
|
CallEventsResource,
|
|
285
310
|
AsyncCallEventsResource,
|
|
@@ -328,6 +353,14 @@ from .audit_events import (
|
|
|
328
353
|
AuditEventsResourceWithStreamingResponse,
|
|
329
354
|
AsyncAuditEventsResourceWithStreamingResponse,
|
|
330
355
|
)
|
|
356
|
+
from .oauth_grants import (
|
|
357
|
+
OAuthGrantsResource,
|
|
358
|
+
AsyncOAuthGrantsResource,
|
|
359
|
+
OAuthGrantsResourceWithRawResponse,
|
|
360
|
+
AsyncOAuthGrantsResourceWithRawResponse,
|
|
361
|
+
OAuthGrantsResourceWithStreamingResponse,
|
|
362
|
+
AsyncOAuthGrantsResourceWithStreamingResponse,
|
|
363
|
+
)
|
|
331
364
|
from .requirements import (
|
|
332
365
|
RequirementsResource,
|
|
333
366
|
AsyncRequirementsResource,
|
|
@@ -360,6 +393,14 @@ from .number_orders import (
|
|
|
360
393
|
NumberOrdersResourceWithStreamingResponse,
|
|
361
394
|
AsyncNumberOrdersResourceWithStreamingResponse,
|
|
362
395
|
)
|
|
396
|
+
from .oauth_clients import (
|
|
397
|
+
OAuthClientsResource,
|
|
398
|
+
AsyncOAuthClientsResource,
|
|
399
|
+
OAuthClientsResourceWithRawResponse,
|
|
400
|
+
AsyncOAuthClientsResourceWithRawResponse,
|
|
401
|
+
OAuthClientsResourceWithStreamingResponse,
|
|
402
|
+
AsyncOAuthClientsResourceWithStreamingResponse,
|
|
403
|
+
)
|
|
363
404
|
from .phone_numbers import (
|
|
364
405
|
PhoneNumbersResource,
|
|
365
406
|
AsyncPhoneNumbersResource,
|
|
@@ -1170,6 +1211,32 @@ from .phone_numbers_regulatory_requirements import (
|
|
|
1170
1211
|
)
|
|
1171
1212
|
|
|
1172
1213
|
__all__ = [
|
|
1214
|
+
"LegacyResource",
|
|
1215
|
+
"AsyncLegacyResource",
|
|
1216
|
+
"LegacyResourceWithRawResponse",
|
|
1217
|
+
"AsyncLegacyResourceWithRawResponse",
|
|
1218
|
+
"LegacyResourceWithStreamingResponse",
|
|
1219
|
+
"AsyncLegacyResourceWithStreamingResponse",
|
|
1220
|
+
"OAuthResource",
|
|
1221
|
+
"AsyncOAuthResource",
|
|
1222
|
+
"OAuthResourceWithRawResponse",
|
|
1223
|
+
"AsyncOAuthResourceWithRawResponse",
|
|
1224
|
+
"OAuthResourceWithStreamingResponse",
|
|
1225
|
+
"AsyncOAuthResourceWithStreamingResponse",
|
|
1226
|
+
"OAuthClientsResource",
|
|
1227
|
+
"AsyncOAuthClientsResource",
|
|
1228
|
+
"OAuthClientsResourceWithRawResponse",
|
|
1229
|
+
"AsyncOAuthClientsResourceWithRawResponse",
|
|
1230
|
+
"OAuthClientsResourceWithStreamingResponse",
|
|
1231
|
+
"AsyncOAuthClientsResourceWithStreamingResponse",
|
|
1232
|
+
"OAuthGrantsResource",
|
|
1233
|
+
"AsyncOAuthGrantsResource",
|
|
1234
|
+
"OAuthGrantsResourceWithRawResponse",
|
|
1235
|
+
"AsyncOAuthGrantsResourceWithRawResponse",
|
|
1236
|
+
"OAuthGrantsResourceWithStreamingResponse",
|
|
1237
|
+
"AsyncOAuthGrantsResourceWithStreamingResponse",
|
|
1238
|
+
"WebhooksResource",
|
|
1239
|
+
"AsyncWebhooksResource",
|
|
1173
1240
|
"AccessIPAddressResource",
|
|
1174
1241
|
"AsyncAccessIPAddressResource",
|
|
1175
1242
|
"AccessIPAddressResourceWithRawResponse",
|
|
@@ -2046,4 +2113,10 @@ __all__ = [
|
|
|
2046
2113
|
"AsyncPartnerCampaignsResourceWithRawResponse",
|
|
2047
2114
|
"PartnerCampaignsResourceWithStreamingResponse",
|
|
2048
2115
|
"AsyncPartnerCampaignsResourceWithStreamingResponse",
|
|
2116
|
+
"WellKnownResource",
|
|
2117
|
+
"AsyncWellKnownResource",
|
|
2118
|
+
"WellKnownResourceWithRawResponse",
|
|
2119
|
+
"AsyncWellKnownResourceWithRawResponse",
|
|
2120
|
+
"WellKnownResourceWithStreamingResponse",
|
|
2121
|
+
"AsyncWellKnownResourceWithStreamingResponse",
|
|
2049
2122
|
]
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
7
|
from ..types import access_ip_address_list_params, access_ip_address_create_params
|
|
8
|
-
from .._types import
|
|
8
|
+
from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
|
|
9
9
|
from .._utils import maybe_transform, async_maybe_transform
|
|
10
10
|
from .._compat import cached_property
|
|
11
11
|
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -46,13 +46,13 @@ class AccessIPAddressResource(SyncAPIResource):
|
|
|
46
46
|
self,
|
|
47
47
|
*,
|
|
48
48
|
ip_address: str,
|
|
49
|
-
description: str |
|
|
49
|
+
description: str | Omit = omit,
|
|
50
50
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
51
51
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
52
52
|
extra_headers: Headers | None = None,
|
|
53
53
|
extra_query: Query | None = None,
|
|
54
54
|
extra_body: Body | None = None,
|
|
55
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
55
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
56
56
|
) -> AccessIPAddressResponse:
|
|
57
57
|
"""
|
|
58
58
|
Create new Access IP Address
|
|
@@ -90,7 +90,7 @@ class AccessIPAddressResource(SyncAPIResource):
|
|
|
90
90
|
extra_headers: Headers | None = None,
|
|
91
91
|
extra_query: Query | None = None,
|
|
92
92
|
extra_body: Body | None = None,
|
|
93
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
93
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
94
94
|
) -> AccessIPAddressResponse:
|
|
95
95
|
"""
|
|
96
96
|
Retrieve an access IP address
|
|
@@ -119,14 +119,14 @@ class AccessIPAddressResource(SyncAPIResource):
|
|
|
119
119
|
def list(
|
|
120
120
|
self,
|
|
121
121
|
*,
|
|
122
|
-
filter: access_ip_address_list_params.Filter |
|
|
123
|
-
page: access_ip_address_list_params.Page |
|
|
122
|
+
filter: access_ip_address_list_params.Filter | Omit = omit,
|
|
123
|
+
page: access_ip_address_list_params.Page | Omit = omit,
|
|
124
124
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
125
125
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
126
126
|
extra_headers: Headers | None = None,
|
|
127
127
|
extra_query: Query | None = None,
|
|
128
128
|
extra_body: Body | None = None,
|
|
129
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
129
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
130
130
|
) -> AccessIPAddressListResponse:
|
|
131
131
|
"""
|
|
132
132
|
List all Access IP Addresses
|
|
@@ -174,7 +174,7 @@ class AccessIPAddressResource(SyncAPIResource):
|
|
|
174
174
|
extra_headers: Headers | None = None,
|
|
175
175
|
extra_query: Query | None = None,
|
|
176
176
|
extra_body: Body | None = None,
|
|
177
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
177
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
178
178
|
) -> AccessIPAddressResponse:
|
|
179
179
|
"""
|
|
180
180
|
Delete access IP address
|
|
@@ -225,13 +225,13 @@ class AsyncAccessIPAddressResource(AsyncAPIResource):
|
|
|
225
225
|
self,
|
|
226
226
|
*,
|
|
227
227
|
ip_address: str,
|
|
228
|
-
description: str |
|
|
228
|
+
description: str | Omit = omit,
|
|
229
229
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
230
230
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
231
231
|
extra_headers: Headers | None = None,
|
|
232
232
|
extra_query: Query | None = None,
|
|
233
233
|
extra_body: Body | None = None,
|
|
234
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
234
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
235
235
|
) -> AccessIPAddressResponse:
|
|
236
236
|
"""
|
|
237
237
|
Create new Access IP Address
|
|
@@ -269,7 +269,7 @@ class AsyncAccessIPAddressResource(AsyncAPIResource):
|
|
|
269
269
|
extra_headers: Headers | None = None,
|
|
270
270
|
extra_query: Query | None = None,
|
|
271
271
|
extra_body: Body | None = None,
|
|
272
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
272
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
273
273
|
) -> AccessIPAddressResponse:
|
|
274
274
|
"""
|
|
275
275
|
Retrieve an access IP address
|
|
@@ -298,14 +298,14 @@ class AsyncAccessIPAddressResource(AsyncAPIResource):
|
|
|
298
298
|
async def list(
|
|
299
299
|
self,
|
|
300
300
|
*,
|
|
301
|
-
filter: access_ip_address_list_params.Filter |
|
|
302
|
-
page: access_ip_address_list_params.Page |
|
|
301
|
+
filter: access_ip_address_list_params.Filter | Omit = omit,
|
|
302
|
+
page: access_ip_address_list_params.Page | Omit = omit,
|
|
303
303
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
304
304
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
305
305
|
extra_headers: Headers | None = None,
|
|
306
306
|
extra_query: Query | None = None,
|
|
307
307
|
extra_body: Body | None = None,
|
|
308
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
308
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
309
309
|
) -> AccessIPAddressListResponse:
|
|
310
310
|
"""
|
|
311
311
|
List all Access IP Addresses
|
|
@@ -353,7 +353,7 @@ class AsyncAccessIPAddressResource(AsyncAPIResource):
|
|
|
353
353
|
extra_headers: Headers | None = None,
|
|
354
354
|
extra_query: Query | None = None,
|
|
355
355
|
extra_body: Body | None = None,
|
|
356
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
356
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
357
357
|
) -> AccessIPAddressResponse:
|
|
358
358
|
"""
|
|
359
359
|
Delete access IP address
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
7
|
from ..types import access_ip_range_list_params, access_ip_range_create_params
|
|
8
|
-
from .._types import
|
|
8
|
+
from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
|
|
9
9
|
from .._utils import maybe_transform, async_maybe_transform
|
|
10
10
|
from .._compat import cached_property
|
|
11
11
|
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -46,13 +46,13 @@ class AccessIPRangesResource(SyncAPIResource):
|
|
|
46
46
|
self,
|
|
47
47
|
*,
|
|
48
48
|
cidr_block: str,
|
|
49
|
-
description: str |
|
|
49
|
+
description: str | Omit = omit,
|
|
50
50
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
51
51
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
52
52
|
extra_headers: Headers | None = None,
|
|
53
53
|
extra_query: Query | None = None,
|
|
54
54
|
extra_body: Body | None = None,
|
|
55
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
55
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
56
56
|
) -> AccessIPRange:
|
|
57
57
|
"""
|
|
58
58
|
Create new Access IP Range
|
|
@@ -84,14 +84,14 @@ class AccessIPRangesResource(SyncAPIResource):
|
|
|
84
84
|
def list(
|
|
85
85
|
self,
|
|
86
86
|
*,
|
|
87
|
-
filter: access_ip_range_list_params.Filter |
|
|
88
|
-
page: access_ip_range_list_params.Page |
|
|
87
|
+
filter: access_ip_range_list_params.Filter | Omit = omit,
|
|
88
|
+
page: access_ip_range_list_params.Page | Omit = omit,
|
|
89
89
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
90
90
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
91
91
|
extra_headers: Headers | None = None,
|
|
92
92
|
extra_query: Query | None = None,
|
|
93
93
|
extra_body: Body | None = None,
|
|
94
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
94
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
95
95
|
) -> AccessIPRangeListResponse:
|
|
96
96
|
"""
|
|
97
97
|
List all Access IP Ranges
|
|
@@ -141,7 +141,7 @@ class AccessIPRangesResource(SyncAPIResource):
|
|
|
141
141
|
extra_headers: Headers | None = None,
|
|
142
142
|
extra_query: Query | None = None,
|
|
143
143
|
extra_body: Body | None = None,
|
|
144
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
144
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
145
145
|
) -> AccessIPRange:
|
|
146
146
|
"""
|
|
147
147
|
Delete access IP ranges
|
|
@@ -190,13 +190,13 @@ class AsyncAccessIPRangesResource(AsyncAPIResource):
|
|
|
190
190
|
self,
|
|
191
191
|
*,
|
|
192
192
|
cidr_block: str,
|
|
193
|
-
description: str |
|
|
193
|
+
description: str | Omit = omit,
|
|
194
194
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
195
195
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
196
196
|
extra_headers: Headers | None = None,
|
|
197
197
|
extra_query: Query | None = None,
|
|
198
198
|
extra_body: Body | None = None,
|
|
199
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
199
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
200
200
|
) -> AccessIPRange:
|
|
201
201
|
"""
|
|
202
202
|
Create new Access IP Range
|
|
@@ -228,14 +228,14 @@ class AsyncAccessIPRangesResource(AsyncAPIResource):
|
|
|
228
228
|
async def list(
|
|
229
229
|
self,
|
|
230
230
|
*,
|
|
231
|
-
filter: access_ip_range_list_params.Filter |
|
|
232
|
-
page: access_ip_range_list_params.Page |
|
|
231
|
+
filter: access_ip_range_list_params.Filter | Omit = omit,
|
|
232
|
+
page: access_ip_range_list_params.Page | Omit = omit,
|
|
233
233
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
234
234
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
235
235
|
extra_headers: Headers | None = None,
|
|
236
236
|
extra_query: Query | None = None,
|
|
237
237
|
extra_body: Body | None = None,
|
|
238
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
238
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
239
239
|
) -> AccessIPRangeListResponse:
|
|
240
240
|
"""
|
|
241
241
|
List all Access IP Ranges
|
|
@@ -285,7 +285,7 @@ class AsyncAccessIPRangesResource(AsyncAPIResource):
|
|
|
285
285
|
extra_headers: Headers | None = None,
|
|
286
286
|
extra_query: Query | None = None,
|
|
287
287
|
extra_body: Body | None = None,
|
|
288
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
288
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
289
289
|
) -> AccessIPRange:
|
|
290
290
|
"""
|
|
291
291
|
Delete access IP ranges
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import List
|
|
6
5
|
from typing_extensions import Literal
|
|
7
6
|
|
|
8
7
|
import httpx
|
|
9
8
|
|
|
10
|
-
from ..._types import
|
|
9
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
11
10
|
from ..._utils import maybe_transform, async_maybe_transform
|
|
12
11
|
from ..._compat import cached_property
|
|
13
12
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -48,17 +47,17 @@ class PurchaseResource(SyncAPIResource):
|
|
|
48
47
|
self,
|
|
49
48
|
*,
|
|
50
49
|
amount: int,
|
|
51
|
-
product: str |
|
|
52
|
-
sim_card_group_id: str |
|
|
53
|
-
status: Literal["enabled", "disabled", "standby"] |
|
|
54
|
-
tags:
|
|
55
|
-
whitelabel_name: str |
|
|
50
|
+
product: str | Omit = omit,
|
|
51
|
+
sim_card_group_id: str | Omit = omit,
|
|
52
|
+
status: Literal["enabled", "disabled", "standby"] | Omit = omit,
|
|
53
|
+
tags: SequenceNotStr[str] | Omit = omit,
|
|
54
|
+
whitelabel_name: str | Omit = omit,
|
|
56
55
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
57
56
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
58
57
|
extra_headers: Headers | None = None,
|
|
59
58
|
extra_query: Query | None = None,
|
|
60
59
|
extra_body: Body | None = None,
|
|
61
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
60
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
62
61
|
) -> PurchaseCreateResponse:
|
|
63
62
|
"""
|
|
64
63
|
Purchases and registers the specified amount of eSIMs to the current user's
|
|
@@ -134,17 +133,17 @@ class AsyncPurchaseResource(AsyncAPIResource):
|
|
|
134
133
|
self,
|
|
135
134
|
*,
|
|
136
135
|
amount: int,
|
|
137
|
-
product: str |
|
|
138
|
-
sim_card_group_id: str |
|
|
139
|
-
status: Literal["enabled", "disabled", "standby"] |
|
|
140
|
-
tags:
|
|
141
|
-
whitelabel_name: str |
|
|
136
|
+
product: str | Omit = omit,
|
|
137
|
+
sim_card_group_id: str | Omit = omit,
|
|
138
|
+
status: Literal["enabled", "disabled", "standby"] | Omit = omit,
|
|
139
|
+
tags: SequenceNotStr[str] | Omit = omit,
|
|
140
|
+
whitelabel_name: str | Omit = omit,
|
|
142
141
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
143
142
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
144
143
|
extra_headers: Headers | None = None,
|
|
145
144
|
extra_query: Query | None = None,
|
|
146
145
|
extra_body: Body | None = None,
|
|
147
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
146
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
148
147
|
) -> PurchaseCreateResponse:
|
|
149
148
|
"""
|
|
150
149
|
Purchases and registers the specified amount of eSIMs to the current user's
|