wavix-python-sdk 1.0.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.
- wavix/__init__.py +801 -0
- wavix/_default_clients.py +32 -0
- wavix/api_keys/__init__.py +4 -0
- wavix/api_keys/client.py +764 -0
- wavix/api_keys/raw_client.py +1191 -0
- wavix/billing/__init__.py +41 -0
- wavix/billing/client.py +82 -0
- wavix/billing/invoices/__init__.py +34 -0
- wavix/billing/invoices/client.py +203 -0
- wavix/billing/invoices/raw_client.py +302 -0
- wavix/billing/invoices/types/__init__.py +34 -0
- wavix/billing/invoices/types/list_invoices_response.py +31 -0
- wavix/billing/raw_client.py +13 -0
- wavix/billing/transactions/__init__.py +34 -0
- wavix/billing/transactions/client.py +209 -0
- wavix/billing/transactions/raw_client.py +253 -0
- wavix/billing/transactions/types/__init__.py +34 -0
- wavix/billing/transactions/types/list_transactions_response.py +31 -0
- wavix/buy/__init__.py +61 -0
- wavix/buy/cities/__init__.py +34 -0
- wavix/buy/cities/client.py +134 -0
- wavix/buy/cities/raw_client.py +201 -0
- wavix/buy/cities/types/__init__.py +34 -0
- wavix/buy/cities/types/list_cities_response.py +23 -0
- wavix/buy/client.py +139 -0
- wavix/buy/countries/__init__.py +34 -0
- wavix/buy/countries/client.py +116 -0
- wavix/buy/countries/raw_client.py +144 -0
- wavix/buy/countries/types/__init__.py +34 -0
- wavix/buy/countries/types/list_countries_response.py +23 -0
- wavix/buy/numbers/__init__.py +34 -0
- wavix/buy/numbers/client.py +168 -0
- wavix/buy/numbers/raw_client.py +227 -0
- wavix/buy/numbers/types/__init__.py +34 -0
- wavix/buy/numbers/types/list_numbers_response.py +26 -0
- wavix/buy/raw_client.py +13 -0
- wavix/buy/region_cities/__init__.py +34 -0
- wavix/buy/region_cities/client.py +142 -0
- wavix/buy/region_cities/raw_client.py +207 -0
- wavix/buy/region_cities/types/__init__.py +34 -0
- wavix/buy/region_cities/types/list_region_cities_response.py +23 -0
- wavix/buy/regions/__init__.py +34 -0
- wavix/buy/regions/client.py +132 -0
- wavix/buy/regions/raw_client.py +222 -0
- wavix/buy/regions/types/__init__.py +34 -0
- wavix/buy/regions/types/list_regions_response.py +23 -0
- wavix/call_control/__init__.py +40 -0
- wavix/call_control/audio/__init__.py +4 -0
- wavix/call_control/audio/client.py +195 -0
- wavix/call_control/audio/raw_client.py +333 -0
- wavix/call_control/client.py +796 -0
- wavix/call_control/raw_client.py +1224 -0
- wavix/call_control/streams/__init__.py +4 -0
- wavix/call_control/streams/client.py +250 -0
- wavix/call_control/streams/raw_client.py +325 -0
- wavix/call_control/types/__init__.py +38 -0
- wavix/call_control/types/call_dtmf_collect_request_prompt.py +33 -0
- wavix/call_control/types/call_dtmf_collect_request_prompt_say.py +31 -0
- wavix/call_recording/__init__.py +4 -0
- wavix/call_recording/client.py +430 -0
- wavix/call_recording/raw_client.py +726 -0
- wavix/call_webhooks/__init__.py +37 -0
- wavix/call_webhooks/client.py +281 -0
- wavix/call_webhooks/raw_client.py +529 -0
- wavix/call_webhooks/types/__init__.py +38 -0
- wavix/call_webhooks/types/call_webhooks_create_request_event_type.py +5 -0
- wavix/call_webhooks/types/delete_call_webhooks_request_event_type.py +5 -0
- wavix/cart/__init__.py +38 -0
- wavix/cart/client.py +327 -0
- wavix/cart/raw_client.py +629 -0
- wavix/cart/types/__init__.py +40 -0
- wavix/cart/types/checkout_cart_response.py +22 -0
- wavix/cart/types/get_cart_response.py +29 -0
- wavix/cart/types/remove_cart_response.py +22 -0
- wavix/cdrs/__init__.py +39 -0
- wavix/cdrs/client.py +968 -0
- wavix/cdrs/raw_client.py +1176 -0
- wavix/cdrs/transcription/__init__.py +4 -0
- wavix/cdrs/transcription/client.py +112 -0
- wavix/cdrs/transcription/raw_client.py +156 -0
- wavix/cdrs/types/__init__.py +38 -0
- wavix/cdrs/types/cdr_search_request_disposition.py +5 -0
- wavix/cdrs/types/cdr_search_request_type.py +5 -0
- wavix/client.py +578 -0
- wavix/core/__init__.py +127 -0
- wavix/core/api_error.py +23 -0
- wavix/core/client_wrapper.py +119 -0
- wavix/core/datetime_utils.py +70 -0
- wavix/core/file.py +67 -0
- wavix/core/force_multipart.py +18 -0
- wavix/core/http_client.py +839 -0
- wavix/core/http_response.py +59 -0
- wavix/core/http_sse/__init__.py +42 -0
- wavix/core/http_sse/_api.py +170 -0
- wavix/core/http_sse/_decoders.py +61 -0
- wavix/core/http_sse/_exceptions.py +7 -0
- wavix/core/http_sse/_models.py +17 -0
- wavix/core/jsonable_encoder.py +120 -0
- wavix/core/logging.py +107 -0
- wavix/core/parse_error.py +36 -0
- wavix/core/pydantic_utilities.py +508 -0
- wavix/core/query_encoder.py +58 -0
- wavix/core/remove_none_from_dict.py +11 -0
- wavix/core/request_options.py +35 -0
- wavix/core/serialization.py +347 -0
- wavix/environment.py +7 -0
- wavix/errors/__init__.py +56 -0
- wavix/errors/bad_request_error.py +10 -0
- wavix/errors/forbidden_error.py +10 -0
- wavix/errors/not_found_error.py +10 -0
- wavix/errors/service_unavailable_error.py +11 -0
- wavix/errors/too_many_requests_error.py +11 -0
- wavix/errors/unauthorized_error.py +11 -0
- wavix/errors/unprocessable_entity_error.py +10 -0
- wavix/link_shortener/__init__.py +34 -0
- wavix/link_shortener/client.py +194 -0
- wavix/link_shortener/metrics/__init__.py +4 -0
- wavix/link_shortener/metrics/client.py +198 -0
- wavix/link_shortener/metrics/raw_client.py +218 -0
- wavix/link_shortener/raw_client.py +265 -0
- wavix/number_validator/__init__.py +35 -0
- wavix/number_validator/client.py +271 -0
- wavix/number_validator/raw_client.py +383 -0
- wavix/number_validator/results/__init__.py +4 -0
- wavix/number_validator/results/client.py +114 -0
- wavix/number_validator/results/raw_client.py +156 -0
- wavix/number_validator/types/__init__.py +34 -0
- wavix/number_validator/types/get_number_validator_response.py +112 -0
- wavix/numbers/__init__.py +39 -0
- wavix/numbers/client.py +689 -0
- wavix/numbers/papers/__init__.py +4 -0
- wavix/numbers/papers/client.py +155 -0
- wavix/numbers/papers/raw_client.py +208 -0
- wavix/numbers/raw_client.py +1000 -0
- wavix/numbers/types/__init__.py +38 -0
- wavix/numbers/types/bulk_update_numbers_response.py +23 -0
- wavix/numbers/types/delete_numbers_response.py +22 -0
- wavix/profile/__init__.py +41 -0
- wavix/profile/client.py +308 -0
- wavix/profile/config/__init__.py +34 -0
- wavix/profile/config/client.py +100 -0
- wavix/profile/config/raw_client.py +124 -0
- wavix/profile/config/types/__init__.py +34 -0
- wavix/profile/config/types/get_config_response.py +25 -0
- wavix/profile/raw_client.py +360 -0
- wavix/profile/types/__init__.py +38 -0
- wavix/profile/types/profile_update_request_company_info.py +48 -0
- wavix/profile/types/profile_update_request_company_info_industry.py +22 -0
- wavix/py.typed +0 -0
- wavix/sip_trunks/__init__.py +4 -0
- wavix/sip_trunks/client.py +927 -0
- wavix/sip_trunks/raw_client.py +1324 -0
- wavix/sms_and_mms/__init__.py +66 -0
- wavix/sms_and_mms/client.py +101 -0
- wavix/sms_and_mms/messages/__init__.py +49 -0
- wavix/sms_and_mms/messages/client.py +625 -0
- wavix/sms_and_mms/messages/raw_client.py +793 -0
- wavix/sms_and_mms/messages/types/__init__.py +47 -0
- wavix/sms_and_mms/messages/types/get_messages_response.py +97 -0
- wavix/sms_and_mms/messages/types/list_all_messages_request_message_type.py +5 -0
- wavix/sms_and_mms/messages/types/list_messages_request_message_type.py +5 -0
- wavix/sms_and_mms/messages/types/list_messages_response.py +26 -0
- wavix/sms_and_mms/opt_outs/__init__.py +34 -0
- wavix/sms_and_mms/opt_outs/client.py +277 -0
- wavix/sms_and_mms/opt_outs/raw_client.py +438 -0
- wavix/sms_and_mms/opt_outs/types/__init__.py +34 -0
- wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.py +22 -0
- wavix/sms_and_mms/raw_client.py +13 -0
- wavix/sms_and_mms/sender_ids/__init__.py +38 -0
- wavix/sms_and_mms/sender_ids/client.py +391 -0
- wavix/sms_and_mms/sender_ids/raw_client.py +617 -0
- wavix/sms_and_mms/sender_ids/types/__init__.py +40 -0
- wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.py +22 -0
- wavix/sms_and_mms/sender_ids/types/sender_id_create_request_monthly_volume.py +7 -0
- wavix/sms_and_mms/sender_ids/types/sender_id_create_request_usecase.py +5 -0
- wavix/speech_analytics/__init__.py +52 -0
- wavix/speech_analytics/client.py +372 -0
- wavix/speech_analytics/file/__init__.py +4 -0
- wavix/speech_analytics/file/client.py +114 -0
- wavix/speech_analytics/file/raw_client.py +148 -0
- wavix/speech_analytics/raw_client.py +527 -0
- wavix/speech_analytics/types/__init__.py +47 -0
- wavix/speech_analytics/types/create_speech_analytics_response.py +32 -0
- wavix/speech_analytics/types/get_speech_analytics_response.py +77 -0
- wavix/speech_analytics/types/get_speech_analytics_response_language.py +5 -0
- wavix/speech_analytics/types/get_speech_analytics_response_status.py +5 -0
- wavix/sub_accounts/__init__.py +52 -0
- wavix/sub_accounts/client.py +442 -0
- wavix/sub_accounts/raw_client.py +775 -0
- wavix/sub_accounts/transactions/__init__.py +4 -0
- wavix/sub_accounts/transactions/client.py +198 -0
- wavix/sub_accounts/transactions/raw_client.py +265 -0
- wavix/sub_accounts/types/__init__.py +47 -0
- wavix/sub_accounts/types/list_sub_accounts_request_status.py +5 -0
- wavix/sub_accounts/types/sub_accounts_create_request_default_destinations.py +31 -0
- wavix/sub_accounts/types/sub_accounts_update_request_default_destinations.py +31 -0
- wavix/sub_accounts/types/sub_accounts_update_request_status.py +5 -0
- wavix/ten_dlc/__init__.py +167 -0
- wavix/ten_dlc/brand_appeals/__init__.py +34 -0
- wavix/ten_dlc/brand_appeals/client.py +244 -0
- wavix/ten_dlc/brand_appeals/raw_client.py +390 -0
- wavix/ten_dlc/brand_appeals/types/__init__.py +34 -0
- wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.py +22 -0
- wavix/ten_dlc/brand_evidence/__init__.py +37 -0
- wavix/ten_dlc/brand_evidence/client.py +365 -0
- wavix/ten_dlc/brand_evidence/raw_client.py +599 -0
- wavix/ten_dlc/brand_evidence/types/__init__.py +38 -0
- wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.py +22 -0
- wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.py +38 -0
- wavix/ten_dlc/brand_vetting_appeals/__init__.py +34 -0
- wavix/ten_dlc/brand_vetting_appeals/client.py +258 -0
- wavix/ten_dlc/brand_vetting_appeals/raw_client.py +381 -0
- wavix/ten_dlc/brand_vetting_appeals/types/__init__.py +36 -0
- wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.py +22 -0
- wavix/ten_dlc/brand_vettings/__init__.py +4 -0
- wavix/ten_dlc/brand_vettings/client.py +325 -0
- wavix/ten_dlc/brand_vettings/raw_client.py +518 -0
- wavix/ten_dlc/brands/__init__.py +85 -0
- wavix/ten_dlc/brands/client.py +870 -0
- wavix/ten_dlc/brands/raw_client.py +1263 -0
- wavix/ten_dlc/brands/types/__init__.py +83 -0
- wavix/ten_dlc/brands/types/create_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/create_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/create_brands_response_status.py +7 -0
- wavix/ten_dlc/brands/types/delete_brands_response.py +22 -0
- wavix/ten_dlc/brands/types/get_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/get_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/get_brands_response_status.py +7 -0
- wavix/ten_dlc/brands/types/list_brands_response.py +33 -0
- wavix/ten_dlc/brands/types/list_brands_response_pagination.py +41 -0
- wavix/ten_dlc/brands/types/qualify_usecase_brands_request_use_case.py +35 -0
- wavix/ten_dlc/brands/types/qualify_usecase_brands_response.py +33 -0
- wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_vertical.py +18 -0
- wavix/ten_dlc/brands/types/update_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/update_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/update_brands_response_status.py +7 -0
- wavix/ten_dlc/campaign_numbers/__init__.py +38 -0
- wavix/ten_dlc/campaign_numbers/client.py +304 -0
- wavix/ten_dlc/campaign_numbers/raw_client.py +448 -0
- wavix/ten_dlc/campaign_numbers/types/__init__.py +40 -0
- wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.py +22 -0
- wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.py +33 -0
- wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.py +22 -0
- wavix/ten_dlc/campaigns/__init__.py +64 -0
- wavix/ten_dlc/campaigns/client.py +1493 -0
- wavix/ten_dlc/campaigns/raw_client.py +1840 -0
- wavix/ten_dlc/campaigns/types/__init__.py +62 -0
- wavix/ten_dlc/campaigns/types/create_campaigns_response.py +211 -0
- wavix/ten_dlc/campaigns/types/delete_campaigns_response.py +22 -0
- wavix/ten_dlc/campaigns/types/get_campaigns_response.py +211 -0
- wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.py +33 -0
- wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.py +41 -0
- wavix/ten_dlc/campaigns/types/list_campaigns_response.py +33 -0
- wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.py +41 -0
- wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request_usecase.py +15 -0
- wavix/ten_dlc/campaigns/types/update_campaigns_response.py +211 -0
- wavix/ten_dlc/client.py +196 -0
- wavix/ten_dlc/raw_client.py +13 -0
- wavix/ten_dlc/subscriptions/__init__.py +37 -0
- wavix/ten_dlc/subscriptions/client.py +271 -0
- wavix/ten_dlc/subscriptions/raw_client.py +398 -0
- wavix/ten_dlc/subscriptions/types/__init__.py +38 -0
- wavix/ten_dlc/subscriptions/types/create_subscriptions_response.py +31 -0
- wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.py +22 -0
- wavix/two_fa/__init__.py +56 -0
- wavix/two_fa/client.py +101 -0
- wavix/two_fa/events/__init__.py +4 -0
- wavix/two_fa/events/client.py +114 -0
- wavix/two_fa/events/raw_client.py +156 -0
- wavix/two_fa/raw_client.py +13 -0
- wavix/two_fa/sessions/__init__.py +4 -0
- wavix/two_fa/sessions/client.py +142 -0
- wavix/two_fa/sessions/raw_client.py +200 -0
- wavix/two_fa/verification/__init__.py +49 -0
- wavix/two_fa/verification/client.py +395 -0
- wavix/two_fa/verification/raw_client.py +664 -0
- wavix/two_fa/verification/types/__init__.py +47 -0
- wavix/two_fa/verification/types/check_verification_response.py +22 -0
- wavix/two_fa/verification/types/create_verification_response.py +51 -0
- wavix/two_fa/verification/types/resend_verification_response.py +38 -0
- wavix/two_fa/verification/types/two_factor_verification_resend_request_channel.py +5 -0
- wavix/types/__init__.py +637 -0
- wavix/types/account_error_response.py +31 -0
- wavix/types/account_limits.py +32 -0
- wavix/types/allowed_i_ps.py +7 -0
- wavix/types/allowed_i_ps_item.py +27 -0
- wavix/types/api_key.py +138 -0
- wavix/types/api_key_calls_scope_permission.py +30 -0
- wavix/types/api_key_calls_scope_permission_allow.py +5 -0
- wavix/types/api_key_scope_permission.py +30 -0
- wavix/types/api_key_scope_permission_allow.py +5 -0
- wavix/types/available_number.py +97 -0
- wavix/types/available_number_list_response.py +26 -0
- wavix/types/bad_request_error_body.py +27 -0
- wavix/types/billing_transaction_list_response.py +31 -0
- wavix/types/brand_status_updated_webhook.py +28 -0
- wavix/types/brand_status_updated_webhook_status.py +7 -0
- wavix/types/call.py +92 -0
- wavix/types/call_control_validation_error_response.py +34 -0
- wavix/types/call_create_response.py +92 -0
- wavix/types/call_create_response_event_type.py +18 -0
- wavix/types/call_direction.py +5 -0
- wavix/types/call_disposition.py +5 -0
- wavix/types/call_event_type.py +18 -0
- wavix/types/call_list_response.py +28 -0
- wavix/types/call_recording_list_response.py +28 -0
- wavix/types/call_response.py +24 -0
- wavix/types/call_status_webhook.py +70 -0
- wavix/types/call_status_webhook_direction.py +5 -0
- wavix/types/call_stream_channel.py +5 -0
- wavix/types/call_stream_response.py +27 -0
- wavix/types/call_stream_type.py +5 -0
- wavix/types/call_webhook.py +37 -0
- wavix/types/call_webhook_event_type.py +5 -0
- wavix/types/call_webhook_list_response.py +10 -0
- wavix/types/call_webhook_list_response_item.py +28 -0
- wavix/types/call_webhook_list_response_item_event_type.py +5 -0
- wavix/types/campaign_status_updated_webhook.py +41 -0
- wavix/types/campaign_status_updated_webhook_status.py +7 -0
- wavix/types/cart_response.py +29 -0
- wavix/types/cdr.py +97 -0
- wavix/types/cdr_list_response.py +26 -0
- wavix/types/cdr_response.py +104 -0
- wavix/types/cdr_transcription_completed_webhook.py +28 -0
- wavix/types/cdr_transcription_completed_webhook_status.py +5 -0
- wavix/types/cdr_transcription_response.py +74 -0
- wavix/types/cdr_transcription_search_response.py +26 -0
- wavix/types/cdr_with_transcription.py +97 -0
- wavix/types/city.py +32 -0
- wavix/types/city_list_response.py +23 -0
- wavix/types/country.py +32 -0
- wavix/types/country_has_no_regions_error_response.py +27 -0
- wavix/types/country_list_response.py +23 -0
- wavix/types/document_type.py +32 -0
- wavix/types/document_type_id.py +7 -0
- wavix/types/file_transcript_response.py +30 -0
- wavix/types/file_transcript_turn.py +46 -0
- wavix/types/file_transcription_completed_webhook.py +32 -0
- wavix/types/file_transcription_response.py +77 -0
- wavix/types/file_transcription_response_language.py +5 -0
- wavix/types/file_transcription_response_status.py +5 -0
- wavix/types/financial_transaction.py +57 -0
- wavix/types/forbidden_error_response.py +27 -0
- wavix/types/inbound_call_destination.py +53 -0
- wavix/types/inbound_call_transport.py +6 -0
- wavix/types/inbound_message.py +46 -0
- wavix/types/invalid_recording.py +31 -0
- wavix/types/invoice.py +42 -0
- wavix/types/invoice_list_response.py +31 -0
- wavix/types/list_brand_evidence_response.py +23 -0
- wavix/types/list_sessions_response_item.py +58 -0
- wavix/types/message.py +103 -0
- wavix/types/message_body.py +29 -0
- wavix/types/message_create_request.py +46 -0
- wavix/types/message_delivery_status.py +8 -0
- wavix/types/message_list_response.py +26 -0
- wavix/types/message_response.py +97 -0
- wavix/types/messages_delivery_report.py +81 -0
- wavix/types/not_found_error_body.py +27 -0
- wavix/types/not_found_error_response.py +27 -0
- wavix/types/number.py +160 -0
- wavix/types/number_destination.py +38 -0
- wavix/types/number_document.py +58 -0
- wavix/types/number_list_response.py +32 -0
- wavix/types/number_status_updated_webhook.py +38 -0
- wavix/types/number_status_updated_webhook_status.py +5 -0
- wavix/types/number_validator_create_bulk_response.py +10 -0
- wavix/types/number_validator_create_bulk_response_request_id.py +26 -0
- wavix/types/on_call_event_payload.py +34 -0
- wavix/types/on_call_event_payload_type.py +5 -0
- wavix/types/opt_out.py +27 -0
- wavix/types/opt_out_item.py +38 -0
- wavix/types/opt_outs_list_response.py +26 -0
- wavix/types/pagination.py +37 -0
- wavix/types/phone_lookup_details.py +32 -0
- wavix/types/phone_number_validation_type.py +5 -0
- wavix/types/phone_validation_batch_response.py +38 -0
- wavix/types/phone_validation_batch_result_response.py +41 -0
- wavix/types/phone_validation_response.py +112 -0
- wavix/types/phone_validation_result_response.py +115 -0
- wavix/types/profile_config_response.py +25 -0
- wavix/types/profile_response.py +79 -0
- wavix/types/profile_response_company_info.py +53 -0
- wavix/types/profile_response_company_info_country.py +31 -0
- wavix/types/profile_response_company_info_industry.py +22 -0
- wavix/types/profile_response_default_destinations_item.py +27 -0
- wavix/types/record_not_found_error_response.py +27 -0
- wavix/types/recording.py +57 -0
- wavix/types/recording_deleted_error_response.py +38 -0
- wavix/types/region.py +31 -0
- wavix/types/region_list_response.py +23 -0
- wavix/types/send_messages_response.py +100 -0
- wavix/types/sender_id.py +48 -0
- wavix/types/sender_id_details.py +44 -0
- wavix/types/sender_id_list_response.py +23 -0
- wavix/types/sender_id_response.py +48 -0
- wavix/types/sender_id_response_type.py +5 -0
- wavix/types/sender_id_type.py +5 -0
- wavix/types/short_link_metrics_item.py +69 -0
- wavix/types/short_link_metrics_response.py +26 -0
- wavix/types/short_link_response.py +22 -0
- wavix/types/sip_trunk_create_request.py +132 -0
- wavix/types/sip_trunk_create_request_allowed_ips_item.py +22 -0
- wavix/types/sip_trunk_create_request_host_request.py +26 -0
- wavix/types/sip_trunk_list_response.py +26 -0
- wavix/types/sip_trunk_response.py +145 -0
- wavix/types/sip_trunk_summary.py +114 -0
- wavix/types/sip_trunk_summary_host_request.py +31 -0
- wavix/types/sub_accounts_list_response.py +26 -0
- wavix/types/sub_accounts_transactions_list_response.py +30 -0
- wavix/types/sub_accounts_transactions_list_response_transactions_item.py +48 -0
- wavix/types/sub_organization_response.py +59 -0
- wavix/types/sub_organization_response_default_destinations.py +31 -0
- wavix/types/sub_organization_response_status.py +5 -0
- wavix/types/submit_file_transcription_response.py +32 -0
- wavix/types/success_response.py +22 -0
- wavix/types/tcr_error_message.py +27 -0
- wavix/types/tcr_feedback.py +23 -0
- wavix/types/tcr_feedback_category.py +47 -0
- wavix/types/ten_dlc_brand.py +143 -0
- wavix/types/ten_dlc_brand_appeal.py +54 -0
- wavix/types/ten_dlc_brand_appeal_create_request.py +36 -0
- wavix/types/ten_dlc_brand_appeal_outcome.py +38 -0
- wavix/types/ten_dlc_brand_appeal_outcome_feedback.py +27 -0
- wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.py +7 -0
- wavix/types/ten_dlc_brand_create_request.py +8 -0
- wavix/types/ten_dlc_brand_create_request_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_create_request_stock_exchange.py +26 -0
- wavix/types/ten_dlc_brand_create_request_stock_exchange_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_create_request_vertical.py +18 -0
- wavix/types/ten_dlc_brand_create_request_zero.py +24 -0
- wavix/types/ten_dlc_brand_create_request_zero_entity_type.py +5 -0
- wavix/types/ten_dlc_brand_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_evidence.py +38 -0
- wavix/types/ten_dlc_brand_identity_verification_status.py +7 -0
- wavix/types/ten_dlc_brand_list_response.py +33 -0
- wavix/types/ten_dlc_brand_list_response_pagination.py +41 -0
- wavix/types/ten_dlc_brand_qualification_result.py +33 -0
- wavix/types/ten_dlc_brand_status.py +7 -0
- wavix/types/ten_dlc_brand_vetting.py +71 -0
- wavix/types/ten_dlc_brand_vetting_appeal.py +78 -0
- wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome.py +37 -0
- wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome_feedback.py +26 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome.py +33 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome_feedback.py +26 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome_reason.py +22 -0
- wavix/types/ten_dlc_campaign.py +211 -0
- wavix/types/ten_dlc_campaign_list_response.py +33 -0
- wavix/types/ten_dlc_campaign_list_response_pagination.py +41 -0
- wavix/types/ten_dlc_campaign_nudge_request.py +32 -0
- wavix/types/ten_dlc_campaign_number.py +27 -0
- wavix/types/ten_dlc_campaign_number_list_response.py +33 -0
- wavix/types/ten_dlc_event_subscription.py +31 -0
- wavix/types/ten_dlcmno_metadata.py +101 -0
- wavix/types/transaction_status.py +5 -0
- wavix/types/transaction_type.py +50 -0
- wavix/types/transcript_turn.py +46 -0
- wavix/types/transcription_filter.py +35 -0
- wavix/types/transcription_filter_agent.py +36 -0
- wavix/types/transcription_filter_any.py +36 -0
- wavix/types/transcription_filter_client.py +36 -0
- wavix/types/transcription_language.py +5 -0
- wavix/types/transcription_reference.py +29 -0
- wavix/types/transcription_status.py +5 -0
- wavix/types/tts_language.py +5 -0
- wavix/types/tts_voice_id.py +25 -0
- wavix/types/two_factor_verification_check_response.py +22 -0
- wavix/types/two_factor_verification_event.py +47 -0
- wavix/types/two_factor_verification_resend_response.py +38 -0
- wavix/types/two_factor_verification_response.py +51 -0
- wavix/types/unauthorized_error_response.py +32 -0
- wavix/types/unprocessable_entity_error_body.py +27 -0
- wavix/types/validation_error_response.py +27 -0
- wavix/types/voice_campaign_create_request.py +20 -0
- wavix/types/voice_campaign_response.py +41 -0
- wavix/types/voice_campaigns_create_response.py +20 -0
- wavix/types/voice_campaigns_create_response_voice_campaign.py +43 -0
- wavix/types/voice_campaigns_get_response.py +20 -0
- wavix/types/voice_campaigns_get_response_voice_campaign.py +43 -0
- wavix/types/web_rtc_token.py +43 -0
- wavix/types/web_rtc_token_response.py +44 -0
- wavix/types/web_rtc_tokens_list_response.py +30 -0
- wavix/version.py +3 -0
- wavix/voice_campaigns/__init__.py +4 -0
- wavix/voice_campaigns/client.py +197 -0
- wavix/voice_campaigns/raw_client.py +332 -0
- wavix/webrtc/__init__.py +34 -0
- wavix/webrtc/client.py +63 -0
- wavix/webrtc/raw_client.py +13 -0
- wavix/webrtc/tokens/__init__.py +4 -0
- wavix/webrtc/tokens/client.py +432 -0
- wavix/webrtc/tokens/raw_client.py +869 -0
- wavix_python_sdk-1.0.0.dist-info/LICENSE +21 -0
- wavix_python_sdk-1.0.0.dist-info/METADATA +339 -0
- wavix_python_sdk-1.0.0.dist-info/RECORD +497 -0
- wavix_python_sdk-1.0.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .update_brands_response_entity_type import UpdateBrandsResponseEntityType
|
|
8
|
+
from .update_brands_response_status import UpdateBrandsResponseStatus
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UpdateBrandsResponse(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Represents a 10DLC brand registered for application-to-person messaging. A Brand identifies the business behind one or more messaging campaigns.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
brand_id: str = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
Unique identifier of the Brand assigned by the registry.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
dba_name: str = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
Doing-business-as name, or the public-facing brand name.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
company_name: str = pydantic.Field()
|
|
27
|
+
"""
|
|
28
|
+
Registered legal name of the company that owns the Brand.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
entity_type: UpdateBrandsResponseEntityType = pydantic.Field()
|
|
32
|
+
"""
|
|
33
|
+
Company entity type.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
vertical: str = pydantic.Field()
|
|
37
|
+
"""
|
|
38
|
+
Industry vertical the Brand operates in.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
ein_taxid: str = pydantic.Field()
|
|
42
|
+
"""
|
|
43
|
+
IRS Employer Identification Number (EIN) or other tax ID of the company.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
ein_taxid_country: str = pydantic.Field()
|
|
47
|
+
"""
|
|
48
|
+
ISO 3166-1 alpha-2 country code where the Tax ID was issued.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
status: UpdateBrandsResponseStatus = pydantic.Field()
|
|
52
|
+
"""
|
|
53
|
+
Brand identity verification status.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
website: typing.Optional[str] = pydantic.Field(default=None)
|
|
57
|
+
"""
|
|
58
|
+
Business website URL.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
stock_symbol: typing.Optional[str] = pydantic.Field(default=None)
|
|
62
|
+
"""
|
|
63
|
+
Stock ticker symbol of the company. Required for publicly traded companies.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
stock_exchange: typing.Optional[str] = pydantic.Field(default=None)
|
|
67
|
+
"""
|
|
68
|
+
Code of the stock exchange the company is listed on. Required for publicly traded companies.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
first_name: str = pydantic.Field()
|
|
72
|
+
"""
|
|
73
|
+
Business contact first name.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
last_name: str = pydantic.Field()
|
|
77
|
+
"""
|
|
78
|
+
Business contact last name.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
phone_number: str = pydantic.Field()
|
|
82
|
+
"""
|
|
83
|
+
Support contact phone number in E.164 format.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
email: str = pydantic.Field()
|
|
87
|
+
"""
|
|
88
|
+
Support contact email address.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
street_address: str = pydantic.Field()
|
|
92
|
+
"""
|
|
93
|
+
Street address of the business.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
city: str = pydantic.Field()
|
|
97
|
+
"""
|
|
98
|
+
City of the business address.
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
state_or_province: typing.Optional[str] = pydantic.Field(default=None)
|
|
102
|
+
"""
|
|
103
|
+
State or province of the business address.
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
country: str = pydantic.Field()
|
|
107
|
+
"""
|
|
108
|
+
ISO 3166-1 alpha-2 country code of the business address.
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
zip: str = pydantic.Field()
|
|
112
|
+
"""
|
|
113
|
+
ZIP or postal code of the business address.
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
feedback: typing.Optional[str] = pydantic.Field(default=None)
|
|
117
|
+
"""
|
|
118
|
+
Feedback from the identity verification process explaining the current `status`.
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
mock: typing.Optional[bool] = pydantic.Field(default=None)
|
|
122
|
+
"""
|
|
123
|
+
Indicates whether the Brand is a mock brand for testing.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
created_at: str = pydantic.Field()
|
|
127
|
+
"""
|
|
128
|
+
Timestamp when the Brand was created, in ISO 8601 format.
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
updated_at: str = pydantic.Field()
|
|
132
|
+
"""
|
|
133
|
+
Timestamp when the Brand was last updated, in ISO 8601 format.
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
if IS_PYDANTIC_V2:
|
|
137
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
138
|
+
else:
|
|
139
|
+
|
|
140
|
+
class Config:
|
|
141
|
+
frozen = True
|
|
142
|
+
smart_union = True
|
|
143
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
if typing.TYPE_CHECKING:
|
|
9
|
+
from .types import LinkCampaignNumbersResponse, ListCampaignNumbersResponse, UnlinkCampaignNumbersResponse
|
|
10
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
11
|
+
"LinkCampaignNumbersResponse": ".types",
|
|
12
|
+
"ListCampaignNumbersResponse": ".types",
|
|
13
|
+
"UnlinkCampaignNumbersResponse": ".types",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
18
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
19
|
+
if module_name is None:
|
|
20
|
+
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
|
21
|
+
try:
|
|
22
|
+
module = import_module(module_name, __package__)
|
|
23
|
+
if module_name == f".{attr_name}":
|
|
24
|
+
return module
|
|
25
|
+
else:
|
|
26
|
+
return getattr(module, attr_name)
|
|
27
|
+
except ImportError as e:
|
|
28
|
+
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
|
29
|
+
except AttributeError as e:
|
|
30
|
+
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def __dir__():
|
|
34
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
35
|
+
return sorted(lazy_attrs)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
__all__ = ["LinkCampaignNumbersResponse", "ListCampaignNumbersResponse", "UnlinkCampaignNumbersResponse"]
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ...core.request_options import RequestOptions
|
|
7
|
+
from .raw_client import AsyncRawCampaignNumbersClient, RawCampaignNumbersClient
|
|
8
|
+
from .types.link_campaign_numbers_response import LinkCampaignNumbersResponse
|
|
9
|
+
from .types.list_campaign_numbers_response import ListCampaignNumbersResponse
|
|
10
|
+
from .types.unlink_campaign_numbers_response import UnlinkCampaignNumbersResponse
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CampaignNumbersClient:
|
|
14
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
15
|
+
self._raw_client = RawCampaignNumbersClient(client_wrapper=client_wrapper)
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def with_raw_response(self) -> RawCampaignNumbersClient:
|
|
19
|
+
"""
|
|
20
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
21
|
+
|
|
22
|
+
Returns
|
|
23
|
+
-------
|
|
24
|
+
RawCampaignNumbersClient
|
|
25
|
+
"""
|
|
26
|
+
return self._raw_client
|
|
27
|
+
|
|
28
|
+
def link(
|
|
29
|
+
self, brand_id: str, campaign_id: str, number: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
30
|
+
) -> LinkCampaignNumbersResponse:
|
|
31
|
+
"""
|
|
32
|
+
Links a phone number to a 10DLC Campaign. Wavix automatically creates a Sender ID once the number is approved.
|
|
33
|
+
|
|
34
|
+
Parameters
|
|
35
|
+
----------
|
|
36
|
+
brand_id : str
|
|
37
|
+
The unique ID of the 10DLC Brand.
|
|
38
|
+
|
|
39
|
+
campaign_id : str
|
|
40
|
+
The unique ID of the 10DLC Campaign.
|
|
41
|
+
|
|
42
|
+
number : str
|
|
43
|
+
The phone number to link to the Campaign, in E.164 format.
|
|
44
|
+
|
|
45
|
+
request_options : typing.Optional[RequestOptions]
|
|
46
|
+
Request-specific configuration.
|
|
47
|
+
|
|
48
|
+
Returns
|
|
49
|
+
-------
|
|
50
|
+
LinkCampaignNumbersResponse
|
|
51
|
+
Returns a success confirmation. The phone number is linked to the Campaign.
|
|
52
|
+
|
|
53
|
+
Examples
|
|
54
|
+
--------
|
|
55
|
+
from wavix import Wavix
|
|
56
|
+
|
|
57
|
+
client = Wavix(
|
|
58
|
+
token="YOUR_TOKEN",
|
|
59
|
+
)
|
|
60
|
+
client.ten_dlc.campaign_numbers.link(
|
|
61
|
+
brand_id="B9FXYNH",
|
|
62
|
+
campaign_id="CSJ4TV0",
|
|
63
|
+
number="17029641104",
|
|
64
|
+
)
|
|
65
|
+
"""
|
|
66
|
+
_response = self._raw_client.link(brand_id, campaign_id, number, request_options=request_options)
|
|
67
|
+
return _response.data
|
|
68
|
+
|
|
69
|
+
def unlink(
|
|
70
|
+
self, brand_id: str, campaign_id: str, number: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
71
|
+
) -> UnlinkCampaignNumbersResponse:
|
|
72
|
+
"""
|
|
73
|
+
Unlinks a phone number from a 10DLC Campaign. The associated Sender ID is also deleted.
|
|
74
|
+
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
brand_id : str
|
|
78
|
+
The unique ID of the 10DLC Brand.
|
|
79
|
+
|
|
80
|
+
campaign_id : str
|
|
81
|
+
The unique ID of the 10DLC Campaign.
|
|
82
|
+
|
|
83
|
+
number : str
|
|
84
|
+
The phone number to unlink from the Campaign, in E.164 format.
|
|
85
|
+
|
|
86
|
+
request_options : typing.Optional[RequestOptions]
|
|
87
|
+
Request-specific configuration.
|
|
88
|
+
|
|
89
|
+
Returns
|
|
90
|
+
-------
|
|
91
|
+
UnlinkCampaignNumbersResponse
|
|
92
|
+
Returns a success confirmation. The phone number is unlinked from the Campaign.
|
|
93
|
+
|
|
94
|
+
Examples
|
|
95
|
+
--------
|
|
96
|
+
from wavix import Wavix
|
|
97
|
+
|
|
98
|
+
client = Wavix(
|
|
99
|
+
token="YOUR_TOKEN",
|
|
100
|
+
)
|
|
101
|
+
client.ten_dlc.campaign_numbers.unlink(
|
|
102
|
+
brand_id="B9FXYNH",
|
|
103
|
+
campaign_id="CSJ4TV0",
|
|
104
|
+
number="17029641104",
|
|
105
|
+
)
|
|
106
|
+
"""
|
|
107
|
+
_response = self._raw_client.unlink(brand_id, campaign_id, number, request_options=request_options)
|
|
108
|
+
return _response.data
|
|
109
|
+
|
|
110
|
+
def list(
|
|
111
|
+
self, brand_id: str, campaign_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
112
|
+
) -> ListCampaignNumbersResponse:
|
|
113
|
+
"""
|
|
114
|
+
Returns the phone numbers linked to the 10DLC Campaign identified by `campaign_id`.
|
|
115
|
+
|
|
116
|
+
Parameters
|
|
117
|
+
----------
|
|
118
|
+
brand_id : str
|
|
119
|
+
The unique ID of the 10DLC Brand.
|
|
120
|
+
|
|
121
|
+
campaign_id : str
|
|
122
|
+
The unique ID of the 10DLC Campaign.
|
|
123
|
+
|
|
124
|
+
request_options : typing.Optional[RequestOptions]
|
|
125
|
+
Request-specific configuration.
|
|
126
|
+
|
|
127
|
+
Returns
|
|
128
|
+
-------
|
|
129
|
+
ListCampaignNumbersResponse
|
|
130
|
+
Returns the phone numbers linked to the Campaign.
|
|
131
|
+
|
|
132
|
+
Examples
|
|
133
|
+
--------
|
|
134
|
+
from wavix import Wavix
|
|
135
|
+
|
|
136
|
+
client = Wavix(
|
|
137
|
+
token="YOUR_TOKEN",
|
|
138
|
+
)
|
|
139
|
+
client.ten_dlc.campaign_numbers.list(
|
|
140
|
+
brand_id="B9FXYNH",
|
|
141
|
+
campaign_id="CSJ4TV0",
|
|
142
|
+
)
|
|
143
|
+
"""
|
|
144
|
+
_response = self._raw_client.list(brand_id, campaign_id, request_options=request_options)
|
|
145
|
+
return _response.data
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class AsyncCampaignNumbersClient:
|
|
149
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
150
|
+
self._raw_client = AsyncRawCampaignNumbersClient(client_wrapper=client_wrapper)
|
|
151
|
+
|
|
152
|
+
@property
|
|
153
|
+
def with_raw_response(self) -> AsyncRawCampaignNumbersClient:
|
|
154
|
+
"""
|
|
155
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
156
|
+
|
|
157
|
+
Returns
|
|
158
|
+
-------
|
|
159
|
+
AsyncRawCampaignNumbersClient
|
|
160
|
+
"""
|
|
161
|
+
return self._raw_client
|
|
162
|
+
|
|
163
|
+
async def link(
|
|
164
|
+
self, brand_id: str, campaign_id: str, number: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
165
|
+
) -> LinkCampaignNumbersResponse:
|
|
166
|
+
"""
|
|
167
|
+
Links a phone number to a 10DLC Campaign. Wavix automatically creates a Sender ID once the number is approved.
|
|
168
|
+
|
|
169
|
+
Parameters
|
|
170
|
+
----------
|
|
171
|
+
brand_id : str
|
|
172
|
+
The unique ID of the 10DLC Brand.
|
|
173
|
+
|
|
174
|
+
campaign_id : str
|
|
175
|
+
The unique ID of the 10DLC Campaign.
|
|
176
|
+
|
|
177
|
+
number : str
|
|
178
|
+
The phone number to link to the Campaign, in E.164 format.
|
|
179
|
+
|
|
180
|
+
request_options : typing.Optional[RequestOptions]
|
|
181
|
+
Request-specific configuration.
|
|
182
|
+
|
|
183
|
+
Returns
|
|
184
|
+
-------
|
|
185
|
+
LinkCampaignNumbersResponse
|
|
186
|
+
Returns a success confirmation. The phone number is linked to the Campaign.
|
|
187
|
+
|
|
188
|
+
Examples
|
|
189
|
+
--------
|
|
190
|
+
import asyncio
|
|
191
|
+
|
|
192
|
+
from wavix import AsyncWavix
|
|
193
|
+
|
|
194
|
+
client = AsyncWavix(
|
|
195
|
+
token="YOUR_TOKEN",
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
async def main() -> None:
|
|
200
|
+
await client.ten_dlc.campaign_numbers.link(
|
|
201
|
+
brand_id="B9FXYNH",
|
|
202
|
+
campaign_id="CSJ4TV0",
|
|
203
|
+
number="17029641104",
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
asyncio.run(main())
|
|
208
|
+
"""
|
|
209
|
+
_response = await self._raw_client.link(brand_id, campaign_id, number, request_options=request_options)
|
|
210
|
+
return _response.data
|
|
211
|
+
|
|
212
|
+
async def unlink(
|
|
213
|
+
self, brand_id: str, campaign_id: str, number: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
214
|
+
) -> UnlinkCampaignNumbersResponse:
|
|
215
|
+
"""
|
|
216
|
+
Unlinks a phone number from a 10DLC Campaign. The associated Sender ID is also deleted.
|
|
217
|
+
|
|
218
|
+
Parameters
|
|
219
|
+
----------
|
|
220
|
+
brand_id : str
|
|
221
|
+
The unique ID of the 10DLC Brand.
|
|
222
|
+
|
|
223
|
+
campaign_id : str
|
|
224
|
+
The unique ID of the 10DLC Campaign.
|
|
225
|
+
|
|
226
|
+
number : str
|
|
227
|
+
The phone number to unlink from the Campaign, in E.164 format.
|
|
228
|
+
|
|
229
|
+
request_options : typing.Optional[RequestOptions]
|
|
230
|
+
Request-specific configuration.
|
|
231
|
+
|
|
232
|
+
Returns
|
|
233
|
+
-------
|
|
234
|
+
UnlinkCampaignNumbersResponse
|
|
235
|
+
Returns a success confirmation. The phone number is unlinked from the Campaign.
|
|
236
|
+
|
|
237
|
+
Examples
|
|
238
|
+
--------
|
|
239
|
+
import asyncio
|
|
240
|
+
|
|
241
|
+
from wavix import AsyncWavix
|
|
242
|
+
|
|
243
|
+
client = AsyncWavix(
|
|
244
|
+
token="YOUR_TOKEN",
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
async def main() -> None:
|
|
249
|
+
await client.ten_dlc.campaign_numbers.unlink(
|
|
250
|
+
brand_id="B9FXYNH",
|
|
251
|
+
campaign_id="CSJ4TV0",
|
|
252
|
+
number="17029641104",
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
asyncio.run(main())
|
|
257
|
+
"""
|
|
258
|
+
_response = await self._raw_client.unlink(brand_id, campaign_id, number, request_options=request_options)
|
|
259
|
+
return _response.data
|
|
260
|
+
|
|
261
|
+
async def list(
|
|
262
|
+
self, brand_id: str, campaign_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
263
|
+
) -> ListCampaignNumbersResponse:
|
|
264
|
+
"""
|
|
265
|
+
Returns the phone numbers linked to the 10DLC Campaign identified by `campaign_id`.
|
|
266
|
+
|
|
267
|
+
Parameters
|
|
268
|
+
----------
|
|
269
|
+
brand_id : str
|
|
270
|
+
The unique ID of the 10DLC Brand.
|
|
271
|
+
|
|
272
|
+
campaign_id : str
|
|
273
|
+
The unique ID of the 10DLC Campaign.
|
|
274
|
+
|
|
275
|
+
request_options : typing.Optional[RequestOptions]
|
|
276
|
+
Request-specific configuration.
|
|
277
|
+
|
|
278
|
+
Returns
|
|
279
|
+
-------
|
|
280
|
+
ListCampaignNumbersResponse
|
|
281
|
+
Returns the phone numbers linked to the Campaign.
|
|
282
|
+
|
|
283
|
+
Examples
|
|
284
|
+
--------
|
|
285
|
+
import asyncio
|
|
286
|
+
|
|
287
|
+
from wavix import AsyncWavix
|
|
288
|
+
|
|
289
|
+
client = AsyncWavix(
|
|
290
|
+
token="YOUR_TOKEN",
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
async def main() -> None:
|
|
295
|
+
await client.ten_dlc.campaign_numbers.list(
|
|
296
|
+
brand_id="B9FXYNH",
|
|
297
|
+
campaign_id="CSJ4TV0",
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
asyncio.run(main())
|
|
302
|
+
"""
|
|
303
|
+
_response = await self._raw_client.list(brand_id, campaign_id, request_options=request_options)
|
|
304
|
+
return _response.data
|