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,211 @@
|
|
|
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
|
+
|
|
8
|
+
|
|
9
|
+
class UpdateCampaignsResponse(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
Represents a 10DLC campaign registered under a Brand. A Campaign defines the messaging use case, opt-in and opt-out flows, and the phone numbers permitted to send its traffic.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
affiliate_marketing: bool = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
Indicates whether the Campaign is used for affiliate marketing.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
age_gated: bool = pydantic.Field()
|
|
20
|
+
"""
|
|
21
|
+
Indicates whether the Campaign messages contain age-gated content.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
auto_renewal: bool = pydantic.Field()
|
|
25
|
+
"""
|
|
26
|
+
Indicates whether the Campaign should be automatically renewed.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
last_bill_date: typing.Optional[str] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
Date and time the Campaign was last billed in ISO 8601 format. `null` if the Campaign has never been billed.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
next_bill_date: typing.Optional[str] = pydantic.Field(default=None)
|
|
35
|
+
"""
|
|
36
|
+
Date and time the Campaign will be billed next in ISO 8601 format. `null` if the next billing date is not scheduled.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
direct_lending: bool = pydantic.Field()
|
|
40
|
+
"""
|
|
41
|
+
Indicates whether the Campaign messages contain direct lending content.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
embedded_links: bool = pydantic.Field()
|
|
45
|
+
"""
|
|
46
|
+
Indicates whether the Campaign messages contain embedded links.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
embedded_phones: bool = pydantic.Field()
|
|
50
|
+
"""
|
|
51
|
+
Indicates whether the Campaign messages contain embedded phone numbers.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
embedded_link_sample: typing.Optional[str] = pydantic.Field(default=None)
|
|
55
|
+
"""
|
|
56
|
+
Sample of an embedded link used in Campaign messages.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
brand_id: str = pydantic.Field()
|
|
60
|
+
"""
|
|
61
|
+
Unique identifier of the Brand that owns the Campaign.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
campaign_id: str = pydantic.Field()
|
|
65
|
+
"""
|
|
66
|
+
Unique identifier of the Campaign assigned by the registry.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
70
|
+
"""
|
|
71
|
+
Description of the Campaign and its messaging purpose.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
optin_workflow: typing.Optional[str] = pydantic.Field(default=None)
|
|
75
|
+
"""
|
|
76
|
+
Description of the workflow through which subscribers opt in to the Campaign.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
feedback: typing.Optional[str] = pydantic.Field(default=None)
|
|
80
|
+
"""
|
|
81
|
+
Feedback from the registry explaining the current `status`.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
help: bool = pydantic.Field()
|
|
85
|
+
"""
|
|
86
|
+
Indicates whether the campaign includes a help system (for example, keyword: HELP, INFO).
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
help_keywords: str = pydantic.Field()
|
|
90
|
+
"""
|
|
91
|
+
Comma-separated list of help keywords. Keywords are case-insensitive.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
help_message: typing.Optional[str] = pydantic.Field(default=None)
|
|
95
|
+
"""
|
|
96
|
+
Help message sent upon receiving a help keyword.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
optin: bool = pydantic.Field()
|
|
100
|
+
"""
|
|
101
|
+
Indicates whether the Campaign requires subscriber opt-in.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
optin_keywords: str = pydantic.Field()
|
|
105
|
+
"""
|
|
106
|
+
Comma-separated list of opt-in keywords. Keywords are case-insensitive.
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
optin_message: typing.Optional[str] = pydantic.Field(default=None)
|
|
110
|
+
"""
|
|
111
|
+
Opt-in message sent upon receiving an opt-in keyword.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
optout: bool = pydantic.Field()
|
|
115
|
+
"""
|
|
116
|
+
Indicates whether the campaign includes an opt-out system (for example, keyword: STOP, QUIT).
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
optout_keywords: str = pydantic.Field()
|
|
120
|
+
"""
|
|
121
|
+
Comma-separated list of opt-out keywords. Keywords are case-insensitive.
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
optout_message: typing.Optional[str] = pydantic.Field(default=None)
|
|
125
|
+
"""
|
|
126
|
+
Opt-out message sent upon receiving an opt-out keyword.
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
name: str = pydantic.Field()
|
|
130
|
+
"""
|
|
131
|
+
Display name of the Campaign.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
created_at: str = pydantic.Field()
|
|
135
|
+
"""
|
|
136
|
+
Timestamp when the Campaign was created, in ISO 8601 format.
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
sample1: typing.Optional[str] = pydantic.Field(default=None)
|
|
140
|
+
"""
|
|
141
|
+
Sample message demonstrating the content sent through the Campaign.
|
|
142
|
+
"""
|
|
143
|
+
|
|
144
|
+
sample2: typing.Optional[str] = pydantic.Field(default=None)
|
|
145
|
+
"""
|
|
146
|
+
Sample message demonstrating the content sent through the Campaign.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
sample3: typing.Optional[str] = pydantic.Field(default=None)
|
|
150
|
+
"""
|
|
151
|
+
Sample message demonstrating the content sent through the Campaign.
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
sample4: typing.Optional[str] = pydantic.Field(default=None)
|
|
155
|
+
"""
|
|
156
|
+
Sample message demonstrating the content sent through the Campaign.
|
|
157
|
+
"""
|
|
158
|
+
|
|
159
|
+
sample5: typing.Optional[str] = pydantic.Field(default=None)
|
|
160
|
+
"""
|
|
161
|
+
Sample message demonstrating the content sent through the Campaign.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
updated_at: str = pydantic.Field()
|
|
165
|
+
"""
|
|
166
|
+
Timestamp when the Campaign was last updated, in ISO 8601 format.
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
mock: bool = pydantic.Field()
|
|
170
|
+
"""
|
|
171
|
+
Indicates whether the Campaign is a mock campaign used for testing. Mock campaigns cannot send production traffic.
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
usecase: str = pydantic.Field()
|
|
175
|
+
"""
|
|
176
|
+
Registered use case for the Campaign, such as `2FA` or `MARKETING`.
|
|
177
|
+
"""
|
|
178
|
+
|
|
179
|
+
monthly_fee: str = pydantic.Field()
|
|
180
|
+
"""
|
|
181
|
+
Recurring monthly fee charged for the Campaign, as a decimal string.
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
privacy_policy: typing.Optional[str] = pydantic.Field(default=None)
|
|
185
|
+
"""
|
|
186
|
+
Privacy policy URL.
|
|
187
|
+
"""
|
|
188
|
+
|
|
189
|
+
terms_conditions: typing.Optional[str] = pydantic.Field(default=None)
|
|
190
|
+
"""
|
|
191
|
+
Terms and conditions URL.
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
status: str = pydantic.Field()
|
|
195
|
+
"""
|
|
196
|
+
Current registration status of the Campaign, such as `APPROVED` or `PENDING`.
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
|
+
phone_numbers: typing.List[str] = pydantic.Field()
|
|
200
|
+
"""
|
|
201
|
+
Phone numbers assigned to the Campaign, in E.164 format.
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
if IS_PYDANTIC_V2:
|
|
205
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
206
|
+
else:
|
|
207
|
+
|
|
208
|
+
class Config:
|
|
209
|
+
frozen = True
|
|
210
|
+
smart_union = True
|
|
211
|
+
extra = pydantic.Extra.allow
|
wavix/ten_dlc/client.py
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
|
|
7
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from .raw_client import AsyncRawTenDlcClient, RawTenDlcClient
|
|
9
|
+
|
|
10
|
+
if typing.TYPE_CHECKING:
|
|
11
|
+
from .brand_appeals.client import AsyncBrandAppealsClient, BrandAppealsClient
|
|
12
|
+
from .brand_evidence.client import AsyncBrandEvidenceClient, BrandEvidenceClient
|
|
13
|
+
from .brand_vetting_appeals.client import AsyncBrandVettingAppealsClient, BrandVettingAppealsClient
|
|
14
|
+
from .brand_vettings.client import AsyncBrandVettingsClient, BrandVettingsClient
|
|
15
|
+
from .brands.client import AsyncBrandsClient, BrandsClient
|
|
16
|
+
from .campaign_numbers.client import AsyncCampaignNumbersClient, CampaignNumbersClient
|
|
17
|
+
from .campaigns.client import AsyncCampaignsClient, CampaignsClient
|
|
18
|
+
from .subscriptions.client import AsyncSubscriptionsClient, SubscriptionsClient
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class TenDlcClient:
|
|
22
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
23
|
+
self._raw_client = RawTenDlcClient(client_wrapper=client_wrapper)
|
|
24
|
+
self._client_wrapper = client_wrapper
|
|
25
|
+
self._brands: typing.Optional[BrandsClient] = None
|
|
26
|
+
self._brand_appeals: typing.Optional[BrandAppealsClient] = None
|
|
27
|
+
self._brand_evidence: typing.Optional[BrandEvidenceClient] = None
|
|
28
|
+
self._brand_vettings: typing.Optional[BrandVettingsClient] = None
|
|
29
|
+
self._brand_vetting_appeals: typing.Optional[BrandVettingAppealsClient] = None
|
|
30
|
+
self._campaigns: typing.Optional[CampaignsClient] = None
|
|
31
|
+
self._subscriptions: typing.Optional[SubscriptionsClient] = None
|
|
32
|
+
self._campaign_numbers: typing.Optional[CampaignNumbersClient] = None
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def with_raw_response(self) -> RawTenDlcClient:
|
|
36
|
+
"""
|
|
37
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
38
|
+
|
|
39
|
+
Returns
|
|
40
|
+
-------
|
|
41
|
+
RawTenDlcClient
|
|
42
|
+
"""
|
|
43
|
+
return self._raw_client
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def brands(self):
|
|
47
|
+
if self._brands is None:
|
|
48
|
+
from .brands.client import BrandsClient # noqa: E402
|
|
49
|
+
|
|
50
|
+
self._brands = BrandsClient(client_wrapper=self._client_wrapper)
|
|
51
|
+
return self._brands
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def brand_appeals(self):
|
|
55
|
+
if self._brand_appeals is None:
|
|
56
|
+
from .brand_appeals.client import BrandAppealsClient # noqa: E402
|
|
57
|
+
|
|
58
|
+
self._brand_appeals = BrandAppealsClient(client_wrapper=self._client_wrapper)
|
|
59
|
+
return self._brand_appeals
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def brand_evidence(self):
|
|
63
|
+
if self._brand_evidence is None:
|
|
64
|
+
from .brand_evidence.client import BrandEvidenceClient # noqa: E402
|
|
65
|
+
|
|
66
|
+
self._brand_evidence = BrandEvidenceClient(client_wrapper=self._client_wrapper)
|
|
67
|
+
return self._brand_evidence
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def brand_vettings(self):
|
|
71
|
+
if self._brand_vettings is None:
|
|
72
|
+
from .brand_vettings.client import BrandVettingsClient # noqa: E402
|
|
73
|
+
|
|
74
|
+
self._brand_vettings = BrandVettingsClient(client_wrapper=self._client_wrapper)
|
|
75
|
+
return self._brand_vettings
|
|
76
|
+
|
|
77
|
+
@property
|
|
78
|
+
def brand_vetting_appeals(self):
|
|
79
|
+
if self._brand_vetting_appeals is None:
|
|
80
|
+
from .brand_vetting_appeals.client import BrandVettingAppealsClient # noqa: E402
|
|
81
|
+
|
|
82
|
+
self._brand_vetting_appeals = BrandVettingAppealsClient(client_wrapper=self._client_wrapper)
|
|
83
|
+
return self._brand_vetting_appeals
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
def campaigns(self):
|
|
87
|
+
if self._campaigns is None:
|
|
88
|
+
from .campaigns.client import CampaignsClient # noqa: E402
|
|
89
|
+
|
|
90
|
+
self._campaigns = CampaignsClient(client_wrapper=self._client_wrapper)
|
|
91
|
+
return self._campaigns
|
|
92
|
+
|
|
93
|
+
@property
|
|
94
|
+
def subscriptions(self):
|
|
95
|
+
if self._subscriptions is None:
|
|
96
|
+
from .subscriptions.client import SubscriptionsClient # noqa: E402
|
|
97
|
+
|
|
98
|
+
self._subscriptions = SubscriptionsClient(client_wrapper=self._client_wrapper)
|
|
99
|
+
return self._subscriptions
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def campaign_numbers(self):
|
|
103
|
+
if self._campaign_numbers is None:
|
|
104
|
+
from .campaign_numbers.client import CampaignNumbersClient # noqa: E402
|
|
105
|
+
|
|
106
|
+
self._campaign_numbers = CampaignNumbersClient(client_wrapper=self._client_wrapper)
|
|
107
|
+
return self._campaign_numbers
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class AsyncTenDlcClient:
|
|
111
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
112
|
+
self._raw_client = AsyncRawTenDlcClient(client_wrapper=client_wrapper)
|
|
113
|
+
self._client_wrapper = client_wrapper
|
|
114
|
+
self._brands: typing.Optional[AsyncBrandsClient] = None
|
|
115
|
+
self._brand_appeals: typing.Optional[AsyncBrandAppealsClient] = None
|
|
116
|
+
self._brand_evidence: typing.Optional[AsyncBrandEvidenceClient] = None
|
|
117
|
+
self._brand_vettings: typing.Optional[AsyncBrandVettingsClient] = None
|
|
118
|
+
self._brand_vetting_appeals: typing.Optional[AsyncBrandVettingAppealsClient] = None
|
|
119
|
+
self._campaigns: typing.Optional[AsyncCampaignsClient] = None
|
|
120
|
+
self._subscriptions: typing.Optional[AsyncSubscriptionsClient] = None
|
|
121
|
+
self._campaign_numbers: typing.Optional[AsyncCampaignNumbersClient] = None
|
|
122
|
+
|
|
123
|
+
@property
|
|
124
|
+
def with_raw_response(self) -> AsyncRawTenDlcClient:
|
|
125
|
+
"""
|
|
126
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
127
|
+
|
|
128
|
+
Returns
|
|
129
|
+
-------
|
|
130
|
+
AsyncRawTenDlcClient
|
|
131
|
+
"""
|
|
132
|
+
return self._raw_client
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def brands(self):
|
|
136
|
+
if self._brands is None:
|
|
137
|
+
from .brands.client import AsyncBrandsClient # noqa: E402
|
|
138
|
+
|
|
139
|
+
self._brands = AsyncBrandsClient(client_wrapper=self._client_wrapper)
|
|
140
|
+
return self._brands
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
def brand_appeals(self):
|
|
144
|
+
if self._brand_appeals is None:
|
|
145
|
+
from .brand_appeals.client import AsyncBrandAppealsClient # noqa: E402
|
|
146
|
+
|
|
147
|
+
self._brand_appeals = AsyncBrandAppealsClient(client_wrapper=self._client_wrapper)
|
|
148
|
+
return self._brand_appeals
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def brand_evidence(self):
|
|
152
|
+
if self._brand_evidence is None:
|
|
153
|
+
from .brand_evidence.client import AsyncBrandEvidenceClient # noqa: E402
|
|
154
|
+
|
|
155
|
+
self._brand_evidence = AsyncBrandEvidenceClient(client_wrapper=self._client_wrapper)
|
|
156
|
+
return self._brand_evidence
|
|
157
|
+
|
|
158
|
+
@property
|
|
159
|
+
def brand_vettings(self):
|
|
160
|
+
if self._brand_vettings is None:
|
|
161
|
+
from .brand_vettings.client import AsyncBrandVettingsClient # noqa: E402
|
|
162
|
+
|
|
163
|
+
self._brand_vettings = AsyncBrandVettingsClient(client_wrapper=self._client_wrapper)
|
|
164
|
+
return self._brand_vettings
|
|
165
|
+
|
|
166
|
+
@property
|
|
167
|
+
def brand_vetting_appeals(self):
|
|
168
|
+
if self._brand_vetting_appeals is None:
|
|
169
|
+
from .brand_vetting_appeals.client import AsyncBrandVettingAppealsClient # noqa: E402
|
|
170
|
+
|
|
171
|
+
self._brand_vetting_appeals = AsyncBrandVettingAppealsClient(client_wrapper=self._client_wrapper)
|
|
172
|
+
return self._brand_vetting_appeals
|
|
173
|
+
|
|
174
|
+
@property
|
|
175
|
+
def campaigns(self):
|
|
176
|
+
if self._campaigns is None:
|
|
177
|
+
from .campaigns.client import AsyncCampaignsClient # noqa: E402
|
|
178
|
+
|
|
179
|
+
self._campaigns = AsyncCampaignsClient(client_wrapper=self._client_wrapper)
|
|
180
|
+
return self._campaigns
|
|
181
|
+
|
|
182
|
+
@property
|
|
183
|
+
def subscriptions(self):
|
|
184
|
+
if self._subscriptions is None:
|
|
185
|
+
from .subscriptions.client import AsyncSubscriptionsClient # noqa: E402
|
|
186
|
+
|
|
187
|
+
self._subscriptions = AsyncSubscriptionsClient(client_wrapper=self._client_wrapper)
|
|
188
|
+
return self._subscriptions
|
|
189
|
+
|
|
190
|
+
@property
|
|
191
|
+
def campaign_numbers(self):
|
|
192
|
+
if self._campaign_numbers is None:
|
|
193
|
+
from .campaign_numbers.client import AsyncCampaignNumbersClient # noqa: E402
|
|
194
|
+
|
|
195
|
+
self._campaign_numbers = AsyncCampaignNumbersClient(client_wrapper=self._client_wrapper)
|
|
196
|
+
return self._campaign_numbers
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class RawTenDlcClient:
|
|
7
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
8
|
+
self._client_wrapper = client_wrapper
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AsyncRawTenDlcClient:
|
|
12
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
13
|
+
self._client_wrapper = client_wrapper
|
|
@@ -0,0 +1,37 @@
|
|
|
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 CreateSubscriptionsResponse, DeleteSubscriptionsResponse
|
|
10
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
11
|
+
"CreateSubscriptionsResponse": ".types",
|
|
12
|
+
"DeleteSubscriptionsResponse": ".types",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
17
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
18
|
+
if module_name is None:
|
|
19
|
+
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
|
20
|
+
try:
|
|
21
|
+
module = import_module(module_name, __package__)
|
|
22
|
+
if module_name == f".{attr_name}":
|
|
23
|
+
return module
|
|
24
|
+
else:
|
|
25
|
+
return getattr(module, attr_name)
|
|
26
|
+
except ImportError as e:
|
|
27
|
+
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
|
28
|
+
except AttributeError as e:
|
|
29
|
+
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def __dir__():
|
|
33
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
34
|
+
return sorted(lazy_attrs)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
__all__ = ["CreateSubscriptionsResponse", "DeleteSubscriptionsResponse"]
|