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,33 @@
|
|
|
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 .ten_dlc_brand import TenDlcBrand
|
|
8
|
+
from .ten_dlc_brand_list_response_pagination import TenDlcBrandListResponsePagination
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TenDlcBrandListResponse(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
A list of 10DLC Brands
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
items: typing.List[TenDlcBrand] = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
A paginated list of 10DLC Brands matching the filter criteria
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
pagination: TenDlcBrandListResponsePagination = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
Pagination details
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,41 @@
|
|
|
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 TenDlcBrandListResponsePagination(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
Pagination details
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
current_page: int = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
Current page number.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
per_page: int = pydantic.Field()
|
|
20
|
+
"""
|
|
21
|
+
Number of records per page.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
total: int = pydantic.Field()
|
|
25
|
+
"""
|
|
26
|
+
Total number of records.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
total_pages: int = pydantic.Field()
|
|
30
|
+
"""
|
|
31
|
+
Total number of pages.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
if IS_PYDANTIC_V2:
|
|
35
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
36
|
+
else:
|
|
37
|
+
|
|
38
|
+
class Config:
|
|
39
|
+
frozen = True
|
|
40
|
+
smart_union = True
|
|
41
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,33 @@
|
|
|
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 .ten_dlcmno_metadata import TenDlcmnoMetadata
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TenDlcBrandQualificationResult(UniversalBaseModel):
|
|
11
|
+
mno_metadata: typing.List[TenDlcmnoMetadata] = pydantic.Field()
|
|
12
|
+
"""
|
|
13
|
+
An array MNO-specific attributes (e.g. AT&T message class) for every MNO the Brand is qualified to run a Campaign with the specified use case.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
monthly_fee: float = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
Monthly fee associated with any Campaign with this use case
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
usecase: str = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
The use case name
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,71 @@
|
|
|
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 TenDlcBrandVetting(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
Represents the result of an external vetting performed on a 10DLC brand. Vetting can raise a Brand's trust score and unlock higher messaging throughput.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
evp_id: str = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
Code identifying the external vetting provider that performed the vetting.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
create_date: str = pydantic.Field()
|
|
20
|
+
"""
|
|
21
|
+
Timestamp when the vetting request was created, in ISO 8601 format.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
vetting_details: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None)
|
|
25
|
+
"""
|
|
26
|
+
Additional provider-specific details about the vetting request.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
vetted_date: typing.Optional[str] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
Timestamp when the vetting was completed, in ISO 8601 format. Null while the vetting is still in progress.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
vetting_id: str = pydantic.Field()
|
|
35
|
+
"""
|
|
36
|
+
Unique identifier of the vetting request.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
vetting_token: typing.Optional[str] = pydantic.Field(default=None)
|
|
40
|
+
"""
|
|
41
|
+
Token issued by the vetting provider that uniquely identifies this vetting result.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
vetting_score: typing.Optional[int] = pydantic.Field(default=None)
|
|
45
|
+
"""
|
|
46
|
+
Score assigned to the Brand by the vetting provider. Null until vetting completes.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
vetting_class: str = pydantic.Field()
|
|
50
|
+
"""
|
|
51
|
+
Class of vetting performed, such as `STANDARD` or `ENHANCED`.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
vetting_status: str = pydantic.Field()
|
|
55
|
+
"""
|
|
56
|
+
Current status of the vetting request, such as `PENDING` or `ACTIVE`.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
reasons: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
60
|
+
"""
|
|
61
|
+
Reasons explaining the assigned `vetting_score`. Null when no reasons are provided.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
if IS_PYDANTIC_V2:
|
|
65
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
66
|
+
else:
|
|
67
|
+
|
|
68
|
+
class Config:
|
|
69
|
+
frozen = True
|
|
70
|
+
smart_union = True
|
|
71
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .ten_dlc_brand_vetting_appeal_appeal_outcome import TenDlcBrandVettingAppealAppealOutcome
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TenDlcBrandVettingAppeal(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Represents an appeal against a 10DLC brand vetting result. An appeal asks the vetting provider to reconsider the assigned score.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
appeal_outcome: TenDlcBrandVettingAppealAppealOutcome = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
Outcome of the appeal, including the revised vetting status and score.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
appeal_status: str = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
Current status of the appeal, such as `PENDING` or `COMPLETE`.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
appeal_status_update_date: dt.datetime = pydantic.Field()
|
|
27
|
+
"""
|
|
28
|
+
Timestamp when the appeal status was last updated, in ISO 8601 format.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
attachment_uuid_list: typing.List[str] = pydantic.Field()
|
|
32
|
+
"""
|
|
33
|
+
UUIDs of the evidence files submitted in support of the appeal.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
brand_id: str = pydantic.Field()
|
|
37
|
+
"""
|
|
38
|
+
Unique identifier of the Brand the appeal is associated with.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
category_list: typing.List[str] = pydantic.Field()
|
|
42
|
+
"""
|
|
43
|
+
Categories that classify the appeal, such as `LOW_SCORE`.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
create_date: str = pydantic.Field()
|
|
47
|
+
"""
|
|
48
|
+
Timestamp when the appeal was created, in ISO 8601 format.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
explanation: str = pydantic.Field()
|
|
52
|
+
"""
|
|
53
|
+
Justification provided for the appeal.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
evp_id: str = pydantic.Field()
|
|
57
|
+
"""
|
|
58
|
+
Code identifying the external vetting provider that handled the appeal.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
vetting_class: str = pydantic.Field()
|
|
62
|
+
"""
|
|
63
|
+
Class of the vetting being appealed, such as `STANDARD` or `ENHANCED`.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
vetting_id: str = pydantic.Field()
|
|
67
|
+
"""
|
|
68
|
+
Unique identifier of the vetting request being appealed.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
if IS_PYDANTIC_V2:
|
|
72
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
73
|
+
else:
|
|
74
|
+
|
|
75
|
+
class Config:
|
|
76
|
+
frozen = True
|
|
77
|
+
smart_union = True
|
|
78
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,37 @@
|
|
|
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 .ten_dlc_brand_vetting_appeal_appeal_outcome_feedback import TenDlcBrandVettingAppealAppealOutcomeFeedback
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TenDlcBrandVettingAppealAppealOutcome(UniversalBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Outcome of the appeal, including the revised vetting status and score.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
vet_status: str = pydantic.Field()
|
|
16
|
+
"""
|
|
17
|
+
Current status of the Brand vetting
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
vet_score: int = pydantic.Field()
|
|
21
|
+
"""
|
|
22
|
+
The Brand vetting score
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
feedback: TenDlcBrandVettingAppealAppealOutcomeFeedback = pydantic.Field()
|
|
26
|
+
"""
|
|
27
|
+
The feedback provided by the external vetting provider
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
if IS_PYDANTIC_V2:
|
|
31
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
32
|
+
else:
|
|
33
|
+
|
|
34
|
+
class Config:
|
|
35
|
+
frozen = True
|
|
36
|
+
smart_union = True
|
|
37
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,26 @@
|
|
|
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 TenDlcBrandVettingAppealAppealOutcomeFeedback(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
The feedback provided by the external vetting provider
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
reasons: typing.List[str] = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
An list of human-readable explanations returned by TCR
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
if IS_PYDANTIC_V2:
|
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
21
|
+
else:
|
|
22
|
+
|
|
23
|
+
class Config:
|
|
24
|
+
frozen = True
|
|
25
|
+
smart_union = True
|
|
26
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,33 @@
|
|
|
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 .ten_dlc_brand_vetting_appeal_outcome_feedback import TenDlcBrandVettingAppealOutcomeFeedback
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TenDlcBrandVettingAppealOutcome(UniversalBaseModel):
|
|
11
|
+
vet_status: str = pydantic.Field()
|
|
12
|
+
"""
|
|
13
|
+
Current status of the Brand vetting
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
vet_score: int = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
The Brand vetting score
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
feedback: TenDlcBrandVettingAppealOutcomeFeedback = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
The feedback provided by the external vetting provider
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,26 @@
|
|
|
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 TenDlcBrandVettingAppealOutcomeFeedback(UniversalBaseModel):
|
|
10
|
+
"""
|
|
11
|
+
The feedback provided by the external vetting provider
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
reasons: typing.List[str] = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
An list of human-readable explanations returned by TCR
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
if IS_PYDANTIC_V2:
|
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
21
|
+
else:
|
|
22
|
+
|
|
23
|
+
class Config:
|
|
24
|
+
frozen = True
|
|
25
|
+
smart_union = True
|
|
26
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,22 @@
|
|
|
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 TenDlcBrandVettingAppealOutcomeReason(UniversalBaseModel):
|
|
10
|
+
reasons: typing.List[str] = pydantic.Field()
|
|
11
|
+
"""
|
|
12
|
+
An list of human-readable explanations returned by TCR
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
if IS_PYDANTIC_V2:
|
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
17
|
+
else:
|
|
18
|
+
|
|
19
|
+
class Config:
|
|
20
|
+
frozen = True
|
|
21
|
+
smart_union = True
|
|
22
|
+
extra = pydantic.Extra.allow
|
|
@@ -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 TenDlcCampaign(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
|
|
@@ -0,0 +1,33 @@
|
|
|
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 .ten_dlc_campaign import TenDlcCampaign
|
|
8
|
+
from .ten_dlc_campaign_list_response_pagination import TenDlcCampaignListResponsePagination
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TenDlcCampaignListResponse(UniversalBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Paginated list of 10DLC Campaigns.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
items: typing.List[TenDlcCampaign] = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
10DLC Campaigns on the current page that match the filter criteria.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
pagination: TenDlcCampaignListResponsePagination = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
Pagination metadata for the result set.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|