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.
Files changed (497) hide show
  1. wavix/__init__.py +801 -0
  2. wavix/_default_clients.py +32 -0
  3. wavix/api_keys/__init__.py +4 -0
  4. wavix/api_keys/client.py +764 -0
  5. wavix/api_keys/raw_client.py +1191 -0
  6. wavix/billing/__init__.py +41 -0
  7. wavix/billing/client.py +82 -0
  8. wavix/billing/invoices/__init__.py +34 -0
  9. wavix/billing/invoices/client.py +203 -0
  10. wavix/billing/invoices/raw_client.py +302 -0
  11. wavix/billing/invoices/types/__init__.py +34 -0
  12. wavix/billing/invoices/types/list_invoices_response.py +31 -0
  13. wavix/billing/raw_client.py +13 -0
  14. wavix/billing/transactions/__init__.py +34 -0
  15. wavix/billing/transactions/client.py +209 -0
  16. wavix/billing/transactions/raw_client.py +253 -0
  17. wavix/billing/transactions/types/__init__.py +34 -0
  18. wavix/billing/transactions/types/list_transactions_response.py +31 -0
  19. wavix/buy/__init__.py +61 -0
  20. wavix/buy/cities/__init__.py +34 -0
  21. wavix/buy/cities/client.py +134 -0
  22. wavix/buy/cities/raw_client.py +201 -0
  23. wavix/buy/cities/types/__init__.py +34 -0
  24. wavix/buy/cities/types/list_cities_response.py +23 -0
  25. wavix/buy/client.py +139 -0
  26. wavix/buy/countries/__init__.py +34 -0
  27. wavix/buy/countries/client.py +116 -0
  28. wavix/buy/countries/raw_client.py +144 -0
  29. wavix/buy/countries/types/__init__.py +34 -0
  30. wavix/buy/countries/types/list_countries_response.py +23 -0
  31. wavix/buy/numbers/__init__.py +34 -0
  32. wavix/buy/numbers/client.py +168 -0
  33. wavix/buy/numbers/raw_client.py +227 -0
  34. wavix/buy/numbers/types/__init__.py +34 -0
  35. wavix/buy/numbers/types/list_numbers_response.py +26 -0
  36. wavix/buy/raw_client.py +13 -0
  37. wavix/buy/region_cities/__init__.py +34 -0
  38. wavix/buy/region_cities/client.py +142 -0
  39. wavix/buy/region_cities/raw_client.py +207 -0
  40. wavix/buy/region_cities/types/__init__.py +34 -0
  41. wavix/buy/region_cities/types/list_region_cities_response.py +23 -0
  42. wavix/buy/regions/__init__.py +34 -0
  43. wavix/buy/regions/client.py +132 -0
  44. wavix/buy/regions/raw_client.py +222 -0
  45. wavix/buy/regions/types/__init__.py +34 -0
  46. wavix/buy/regions/types/list_regions_response.py +23 -0
  47. wavix/call_control/__init__.py +40 -0
  48. wavix/call_control/audio/__init__.py +4 -0
  49. wavix/call_control/audio/client.py +195 -0
  50. wavix/call_control/audio/raw_client.py +333 -0
  51. wavix/call_control/client.py +796 -0
  52. wavix/call_control/raw_client.py +1224 -0
  53. wavix/call_control/streams/__init__.py +4 -0
  54. wavix/call_control/streams/client.py +250 -0
  55. wavix/call_control/streams/raw_client.py +325 -0
  56. wavix/call_control/types/__init__.py +38 -0
  57. wavix/call_control/types/call_dtmf_collect_request_prompt.py +33 -0
  58. wavix/call_control/types/call_dtmf_collect_request_prompt_say.py +31 -0
  59. wavix/call_recording/__init__.py +4 -0
  60. wavix/call_recording/client.py +430 -0
  61. wavix/call_recording/raw_client.py +726 -0
  62. wavix/call_webhooks/__init__.py +37 -0
  63. wavix/call_webhooks/client.py +281 -0
  64. wavix/call_webhooks/raw_client.py +529 -0
  65. wavix/call_webhooks/types/__init__.py +38 -0
  66. wavix/call_webhooks/types/call_webhooks_create_request_event_type.py +5 -0
  67. wavix/call_webhooks/types/delete_call_webhooks_request_event_type.py +5 -0
  68. wavix/cart/__init__.py +38 -0
  69. wavix/cart/client.py +327 -0
  70. wavix/cart/raw_client.py +629 -0
  71. wavix/cart/types/__init__.py +40 -0
  72. wavix/cart/types/checkout_cart_response.py +22 -0
  73. wavix/cart/types/get_cart_response.py +29 -0
  74. wavix/cart/types/remove_cart_response.py +22 -0
  75. wavix/cdrs/__init__.py +39 -0
  76. wavix/cdrs/client.py +968 -0
  77. wavix/cdrs/raw_client.py +1176 -0
  78. wavix/cdrs/transcription/__init__.py +4 -0
  79. wavix/cdrs/transcription/client.py +112 -0
  80. wavix/cdrs/transcription/raw_client.py +156 -0
  81. wavix/cdrs/types/__init__.py +38 -0
  82. wavix/cdrs/types/cdr_search_request_disposition.py +5 -0
  83. wavix/cdrs/types/cdr_search_request_type.py +5 -0
  84. wavix/client.py +578 -0
  85. wavix/core/__init__.py +127 -0
  86. wavix/core/api_error.py +23 -0
  87. wavix/core/client_wrapper.py +119 -0
  88. wavix/core/datetime_utils.py +70 -0
  89. wavix/core/file.py +67 -0
  90. wavix/core/force_multipart.py +18 -0
  91. wavix/core/http_client.py +839 -0
  92. wavix/core/http_response.py +59 -0
  93. wavix/core/http_sse/__init__.py +42 -0
  94. wavix/core/http_sse/_api.py +170 -0
  95. wavix/core/http_sse/_decoders.py +61 -0
  96. wavix/core/http_sse/_exceptions.py +7 -0
  97. wavix/core/http_sse/_models.py +17 -0
  98. wavix/core/jsonable_encoder.py +120 -0
  99. wavix/core/logging.py +107 -0
  100. wavix/core/parse_error.py +36 -0
  101. wavix/core/pydantic_utilities.py +508 -0
  102. wavix/core/query_encoder.py +58 -0
  103. wavix/core/remove_none_from_dict.py +11 -0
  104. wavix/core/request_options.py +35 -0
  105. wavix/core/serialization.py +347 -0
  106. wavix/environment.py +7 -0
  107. wavix/errors/__init__.py +56 -0
  108. wavix/errors/bad_request_error.py +10 -0
  109. wavix/errors/forbidden_error.py +10 -0
  110. wavix/errors/not_found_error.py +10 -0
  111. wavix/errors/service_unavailable_error.py +11 -0
  112. wavix/errors/too_many_requests_error.py +11 -0
  113. wavix/errors/unauthorized_error.py +11 -0
  114. wavix/errors/unprocessable_entity_error.py +10 -0
  115. wavix/link_shortener/__init__.py +34 -0
  116. wavix/link_shortener/client.py +194 -0
  117. wavix/link_shortener/metrics/__init__.py +4 -0
  118. wavix/link_shortener/metrics/client.py +198 -0
  119. wavix/link_shortener/metrics/raw_client.py +218 -0
  120. wavix/link_shortener/raw_client.py +265 -0
  121. wavix/number_validator/__init__.py +35 -0
  122. wavix/number_validator/client.py +271 -0
  123. wavix/number_validator/raw_client.py +383 -0
  124. wavix/number_validator/results/__init__.py +4 -0
  125. wavix/number_validator/results/client.py +114 -0
  126. wavix/number_validator/results/raw_client.py +156 -0
  127. wavix/number_validator/types/__init__.py +34 -0
  128. wavix/number_validator/types/get_number_validator_response.py +112 -0
  129. wavix/numbers/__init__.py +39 -0
  130. wavix/numbers/client.py +689 -0
  131. wavix/numbers/papers/__init__.py +4 -0
  132. wavix/numbers/papers/client.py +155 -0
  133. wavix/numbers/papers/raw_client.py +208 -0
  134. wavix/numbers/raw_client.py +1000 -0
  135. wavix/numbers/types/__init__.py +38 -0
  136. wavix/numbers/types/bulk_update_numbers_response.py +23 -0
  137. wavix/numbers/types/delete_numbers_response.py +22 -0
  138. wavix/profile/__init__.py +41 -0
  139. wavix/profile/client.py +308 -0
  140. wavix/profile/config/__init__.py +34 -0
  141. wavix/profile/config/client.py +100 -0
  142. wavix/profile/config/raw_client.py +124 -0
  143. wavix/profile/config/types/__init__.py +34 -0
  144. wavix/profile/config/types/get_config_response.py +25 -0
  145. wavix/profile/raw_client.py +360 -0
  146. wavix/profile/types/__init__.py +38 -0
  147. wavix/profile/types/profile_update_request_company_info.py +48 -0
  148. wavix/profile/types/profile_update_request_company_info_industry.py +22 -0
  149. wavix/py.typed +0 -0
  150. wavix/sip_trunks/__init__.py +4 -0
  151. wavix/sip_trunks/client.py +927 -0
  152. wavix/sip_trunks/raw_client.py +1324 -0
  153. wavix/sms_and_mms/__init__.py +66 -0
  154. wavix/sms_and_mms/client.py +101 -0
  155. wavix/sms_and_mms/messages/__init__.py +49 -0
  156. wavix/sms_and_mms/messages/client.py +625 -0
  157. wavix/sms_and_mms/messages/raw_client.py +793 -0
  158. wavix/sms_and_mms/messages/types/__init__.py +47 -0
  159. wavix/sms_and_mms/messages/types/get_messages_response.py +97 -0
  160. wavix/sms_and_mms/messages/types/list_all_messages_request_message_type.py +5 -0
  161. wavix/sms_and_mms/messages/types/list_messages_request_message_type.py +5 -0
  162. wavix/sms_and_mms/messages/types/list_messages_response.py +26 -0
  163. wavix/sms_and_mms/opt_outs/__init__.py +34 -0
  164. wavix/sms_and_mms/opt_outs/client.py +277 -0
  165. wavix/sms_and_mms/opt_outs/raw_client.py +438 -0
  166. wavix/sms_and_mms/opt_outs/types/__init__.py +34 -0
  167. wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.py +22 -0
  168. wavix/sms_and_mms/raw_client.py +13 -0
  169. wavix/sms_and_mms/sender_ids/__init__.py +38 -0
  170. wavix/sms_and_mms/sender_ids/client.py +391 -0
  171. wavix/sms_and_mms/sender_ids/raw_client.py +617 -0
  172. wavix/sms_and_mms/sender_ids/types/__init__.py +40 -0
  173. wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.py +22 -0
  174. wavix/sms_and_mms/sender_ids/types/sender_id_create_request_monthly_volume.py +7 -0
  175. wavix/sms_and_mms/sender_ids/types/sender_id_create_request_usecase.py +5 -0
  176. wavix/speech_analytics/__init__.py +52 -0
  177. wavix/speech_analytics/client.py +372 -0
  178. wavix/speech_analytics/file/__init__.py +4 -0
  179. wavix/speech_analytics/file/client.py +114 -0
  180. wavix/speech_analytics/file/raw_client.py +148 -0
  181. wavix/speech_analytics/raw_client.py +527 -0
  182. wavix/speech_analytics/types/__init__.py +47 -0
  183. wavix/speech_analytics/types/create_speech_analytics_response.py +32 -0
  184. wavix/speech_analytics/types/get_speech_analytics_response.py +77 -0
  185. wavix/speech_analytics/types/get_speech_analytics_response_language.py +5 -0
  186. wavix/speech_analytics/types/get_speech_analytics_response_status.py +5 -0
  187. wavix/sub_accounts/__init__.py +52 -0
  188. wavix/sub_accounts/client.py +442 -0
  189. wavix/sub_accounts/raw_client.py +775 -0
  190. wavix/sub_accounts/transactions/__init__.py +4 -0
  191. wavix/sub_accounts/transactions/client.py +198 -0
  192. wavix/sub_accounts/transactions/raw_client.py +265 -0
  193. wavix/sub_accounts/types/__init__.py +47 -0
  194. wavix/sub_accounts/types/list_sub_accounts_request_status.py +5 -0
  195. wavix/sub_accounts/types/sub_accounts_create_request_default_destinations.py +31 -0
  196. wavix/sub_accounts/types/sub_accounts_update_request_default_destinations.py +31 -0
  197. wavix/sub_accounts/types/sub_accounts_update_request_status.py +5 -0
  198. wavix/ten_dlc/__init__.py +167 -0
  199. wavix/ten_dlc/brand_appeals/__init__.py +34 -0
  200. wavix/ten_dlc/brand_appeals/client.py +244 -0
  201. wavix/ten_dlc/brand_appeals/raw_client.py +390 -0
  202. wavix/ten_dlc/brand_appeals/types/__init__.py +34 -0
  203. wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.py +22 -0
  204. wavix/ten_dlc/brand_evidence/__init__.py +37 -0
  205. wavix/ten_dlc/brand_evidence/client.py +365 -0
  206. wavix/ten_dlc/brand_evidence/raw_client.py +599 -0
  207. wavix/ten_dlc/brand_evidence/types/__init__.py +38 -0
  208. wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.py +22 -0
  209. wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.py +38 -0
  210. wavix/ten_dlc/brand_vetting_appeals/__init__.py +34 -0
  211. wavix/ten_dlc/brand_vetting_appeals/client.py +258 -0
  212. wavix/ten_dlc/brand_vetting_appeals/raw_client.py +381 -0
  213. wavix/ten_dlc/brand_vetting_appeals/types/__init__.py +36 -0
  214. wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.py +22 -0
  215. wavix/ten_dlc/brand_vettings/__init__.py +4 -0
  216. wavix/ten_dlc/brand_vettings/client.py +325 -0
  217. wavix/ten_dlc/brand_vettings/raw_client.py +518 -0
  218. wavix/ten_dlc/brands/__init__.py +85 -0
  219. wavix/ten_dlc/brands/client.py +870 -0
  220. wavix/ten_dlc/brands/raw_client.py +1263 -0
  221. wavix/ten_dlc/brands/types/__init__.py +83 -0
  222. wavix/ten_dlc/brands/types/create_brands_response.py +143 -0
  223. wavix/ten_dlc/brands/types/create_brands_response_entity_type.py +7 -0
  224. wavix/ten_dlc/brands/types/create_brands_response_status.py +7 -0
  225. wavix/ten_dlc/brands/types/delete_brands_response.py +22 -0
  226. wavix/ten_dlc/brands/types/get_brands_response.py +143 -0
  227. wavix/ten_dlc/brands/types/get_brands_response_entity_type.py +7 -0
  228. wavix/ten_dlc/brands/types/get_brands_response_status.py +7 -0
  229. wavix/ten_dlc/brands/types/list_brands_response.py +33 -0
  230. wavix/ten_dlc/brands/types/list_brands_response_pagination.py +41 -0
  231. wavix/ten_dlc/brands/types/qualify_usecase_brands_request_use_case.py +35 -0
  232. wavix/ten_dlc/brands/types/qualify_usecase_brands_response.py +33 -0
  233. wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_entity_type.py +7 -0
  234. wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_vertical.py +18 -0
  235. wavix/ten_dlc/brands/types/update_brands_response.py +143 -0
  236. wavix/ten_dlc/brands/types/update_brands_response_entity_type.py +7 -0
  237. wavix/ten_dlc/brands/types/update_brands_response_status.py +7 -0
  238. wavix/ten_dlc/campaign_numbers/__init__.py +38 -0
  239. wavix/ten_dlc/campaign_numbers/client.py +304 -0
  240. wavix/ten_dlc/campaign_numbers/raw_client.py +448 -0
  241. wavix/ten_dlc/campaign_numbers/types/__init__.py +40 -0
  242. wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.py +22 -0
  243. wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.py +33 -0
  244. wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.py +22 -0
  245. wavix/ten_dlc/campaigns/__init__.py +64 -0
  246. wavix/ten_dlc/campaigns/client.py +1493 -0
  247. wavix/ten_dlc/campaigns/raw_client.py +1840 -0
  248. wavix/ten_dlc/campaigns/types/__init__.py +62 -0
  249. wavix/ten_dlc/campaigns/types/create_campaigns_response.py +211 -0
  250. wavix/ten_dlc/campaigns/types/delete_campaigns_response.py +22 -0
  251. wavix/ten_dlc/campaigns/types/get_campaigns_response.py +211 -0
  252. wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.py +33 -0
  253. wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.py +41 -0
  254. wavix/ten_dlc/campaigns/types/list_campaigns_response.py +33 -0
  255. wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.py +41 -0
  256. wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request_usecase.py +15 -0
  257. wavix/ten_dlc/campaigns/types/update_campaigns_response.py +211 -0
  258. wavix/ten_dlc/client.py +196 -0
  259. wavix/ten_dlc/raw_client.py +13 -0
  260. wavix/ten_dlc/subscriptions/__init__.py +37 -0
  261. wavix/ten_dlc/subscriptions/client.py +271 -0
  262. wavix/ten_dlc/subscriptions/raw_client.py +398 -0
  263. wavix/ten_dlc/subscriptions/types/__init__.py +38 -0
  264. wavix/ten_dlc/subscriptions/types/create_subscriptions_response.py +31 -0
  265. wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.py +22 -0
  266. wavix/two_fa/__init__.py +56 -0
  267. wavix/two_fa/client.py +101 -0
  268. wavix/two_fa/events/__init__.py +4 -0
  269. wavix/two_fa/events/client.py +114 -0
  270. wavix/two_fa/events/raw_client.py +156 -0
  271. wavix/two_fa/raw_client.py +13 -0
  272. wavix/two_fa/sessions/__init__.py +4 -0
  273. wavix/two_fa/sessions/client.py +142 -0
  274. wavix/two_fa/sessions/raw_client.py +200 -0
  275. wavix/two_fa/verification/__init__.py +49 -0
  276. wavix/two_fa/verification/client.py +395 -0
  277. wavix/two_fa/verification/raw_client.py +664 -0
  278. wavix/two_fa/verification/types/__init__.py +47 -0
  279. wavix/two_fa/verification/types/check_verification_response.py +22 -0
  280. wavix/two_fa/verification/types/create_verification_response.py +51 -0
  281. wavix/two_fa/verification/types/resend_verification_response.py +38 -0
  282. wavix/two_fa/verification/types/two_factor_verification_resend_request_channel.py +5 -0
  283. wavix/types/__init__.py +637 -0
  284. wavix/types/account_error_response.py +31 -0
  285. wavix/types/account_limits.py +32 -0
  286. wavix/types/allowed_i_ps.py +7 -0
  287. wavix/types/allowed_i_ps_item.py +27 -0
  288. wavix/types/api_key.py +138 -0
  289. wavix/types/api_key_calls_scope_permission.py +30 -0
  290. wavix/types/api_key_calls_scope_permission_allow.py +5 -0
  291. wavix/types/api_key_scope_permission.py +30 -0
  292. wavix/types/api_key_scope_permission_allow.py +5 -0
  293. wavix/types/available_number.py +97 -0
  294. wavix/types/available_number_list_response.py +26 -0
  295. wavix/types/bad_request_error_body.py +27 -0
  296. wavix/types/billing_transaction_list_response.py +31 -0
  297. wavix/types/brand_status_updated_webhook.py +28 -0
  298. wavix/types/brand_status_updated_webhook_status.py +7 -0
  299. wavix/types/call.py +92 -0
  300. wavix/types/call_control_validation_error_response.py +34 -0
  301. wavix/types/call_create_response.py +92 -0
  302. wavix/types/call_create_response_event_type.py +18 -0
  303. wavix/types/call_direction.py +5 -0
  304. wavix/types/call_disposition.py +5 -0
  305. wavix/types/call_event_type.py +18 -0
  306. wavix/types/call_list_response.py +28 -0
  307. wavix/types/call_recording_list_response.py +28 -0
  308. wavix/types/call_response.py +24 -0
  309. wavix/types/call_status_webhook.py +70 -0
  310. wavix/types/call_status_webhook_direction.py +5 -0
  311. wavix/types/call_stream_channel.py +5 -0
  312. wavix/types/call_stream_response.py +27 -0
  313. wavix/types/call_stream_type.py +5 -0
  314. wavix/types/call_webhook.py +37 -0
  315. wavix/types/call_webhook_event_type.py +5 -0
  316. wavix/types/call_webhook_list_response.py +10 -0
  317. wavix/types/call_webhook_list_response_item.py +28 -0
  318. wavix/types/call_webhook_list_response_item_event_type.py +5 -0
  319. wavix/types/campaign_status_updated_webhook.py +41 -0
  320. wavix/types/campaign_status_updated_webhook_status.py +7 -0
  321. wavix/types/cart_response.py +29 -0
  322. wavix/types/cdr.py +97 -0
  323. wavix/types/cdr_list_response.py +26 -0
  324. wavix/types/cdr_response.py +104 -0
  325. wavix/types/cdr_transcription_completed_webhook.py +28 -0
  326. wavix/types/cdr_transcription_completed_webhook_status.py +5 -0
  327. wavix/types/cdr_transcription_response.py +74 -0
  328. wavix/types/cdr_transcription_search_response.py +26 -0
  329. wavix/types/cdr_with_transcription.py +97 -0
  330. wavix/types/city.py +32 -0
  331. wavix/types/city_list_response.py +23 -0
  332. wavix/types/country.py +32 -0
  333. wavix/types/country_has_no_regions_error_response.py +27 -0
  334. wavix/types/country_list_response.py +23 -0
  335. wavix/types/document_type.py +32 -0
  336. wavix/types/document_type_id.py +7 -0
  337. wavix/types/file_transcript_response.py +30 -0
  338. wavix/types/file_transcript_turn.py +46 -0
  339. wavix/types/file_transcription_completed_webhook.py +32 -0
  340. wavix/types/file_transcription_response.py +77 -0
  341. wavix/types/file_transcription_response_language.py +5 -0
  342. wavix/types/file_transcription_response_status.py +5 -0
  343. wavix/types/financial_transaction.py +57 -0
  344. wavix/types/forbidden_error_response.py +27 -0
  345. wavix/types/inbound_call_destination.py +53 -0
  346. wavix/types/inbound_call_transport.py +6 -0
  347. wavix/types/inbound_message.py +46 -0
  348. wavix/types/invalid_recording.py +31 -0
  349. wavix/types/invoice.py +42 -0
  350. wavix/types/invoice_list_response.py +31 -0
  351. wavix/types/list_brand_evidence_response.py +23 -0
  352. wavix/types/list_sessions_response_item.py +58 -0
  353. wavix/types/message.py +103 -0
  354. wavix/types/message_body.py +29 -0
  355. wavix/types/message_create_request.py +46 -0
  356. wavix/types/message_delivery_status.py +8 -0
  357. wavix/types/message_list_response.py +26 -0
  358. wavix/types/message_response.py +97 -0
  359. wavix/types/messages_delivery_report.py +81 -0
  360. wavix/types/not_found_error_body.py +27 -0
  361. wavix/types/not_found_error_response.py +27 -0
  362. wavix/types/number.py +160 -0
  363. wavix/types/number_destination.py +38 -0
  364. wavix/types/number_document.py +58 -0
  365. wavix/types/number_list_response.py +32 -0
  366. wavix/types/number_status_updated_webhook.py +38 -0
  367. wavix/types/number_status_updated_webhook_status.py +5 -0
  368. wavix/types/number_validator_create_bulk_response.py +10 -0
  369. wavix/types/number_validator_create_bulk_response_request_id.py +26 -0
  370. wavix/types/on_call_event_payload.py +34 -0
  371. wavix/types/on_call_event_payload_type.py +5 -0
  372. wavix/types/opt_out.py +27 -0
  373. wavix/types/opt_out_item.py +38 -0
  374. wavix/types/opt_outs_list_response.py +26 -0
  375. wavix/types/pagination.py +37 -0
  376. wavix/types/phone_lookup_details.py +32 -0
  377. wavix/types/phone_number_validation_type.py +5 -0
  378. wavix/types/phone_validation_batch_response.py +38 -0
  379. wavix/types/phone_validation_batch_result_response.py +41 -0
  380. wavix/types/phone_validation_response.py +112 -0
  381. wavix/types/phone_validation_result_response.py +115 -0
  382. wavix/types/profile_config_response.py +25 -0
  383. wavix/types/profile_response.py +79 -0
  384. wavix/types/profile_response_company_info.py +53 -0
  385. wavix/types/profile_response_company_info_country.py +31 -0
  386. wavix/types/profile_response_company_info_industry.py +22 -0
  387. wavix/types/profile_response_default_destinations_item.py +27 -0
  388. wavix/types/record_not_found_error_response.py +27 -0
  389. wavix/types/recording.py +57 -0
  390. wavix/types/recording_deleted_error_response.py +38 -0
  391. wavix/types/region.py +31 -0
  392. wavix/types/region_list_response.py +23 -0
  393. wavix/types/send_messages_response.py +100 -0
  394. wavix/types/sender_id.py +48 -0
  395. wavix/types/sender_id_details.py +44 -0
  396. wavix/types/sender_id_list_response.py +23 -0
  397. wavix/types/sender_id_response.py +48 -0
  398. wavix/types/sender_id_response_type.py +5 -0
  399. wavix/types/sender_id_type.py +5 -0
  400. wavix/types/short_link_metrics_item.py +69 -0
  401. wavix/types/short_link_metrics_response.py +26 -0
  402. wavix/types/short_link_response.py +22 -0
  403. wavix/types/sip_trunk_create_request.py +132 -0
  404. wavix/types/sip_trunk_create_request_allowed_ips_item.py +22 -0
  405. wavix/types/sip_trunk_create_request_host_request.py +26 -0
  406. wavix/types/sip_trunk_list_response.py +26 -0
  407. wavix/types/sip_trunk_response.py +145 -0
  408. wavix/types/sip_trunk_summary.py +114 -0
  409. wavix/types/sip_trunk_summary_host_request.py +31 -0
  410. wavix/types/sub_accounts_list_response.py +26 -0
  411. wavix/types/sub_accounts_transactions_list_response.py +30 -0
  412. wavix/types/sub_accounts_transactions_list_response_transactions_item.py +48 -0
  413. wavix/types/sub_organization_response.py +59 -0
  414. wavix/types/sub_organization_response_default_destinations.py +31 -0
  415. wavix/types/sub_organization_response_status.py +5 -0
  416. wavix/types/submit_file_transcription_response.py +32 -0
  417. wavix/types/success_response.py +22 -0
  418. wavix/types/tcr_error_message.py +27 -0
  419. wavix/types/tcr_feedback.py +23 -0
  420. wavix/types/tcr_feedback_category.py +47 -0
  421. wavix/types/ten_dlc_brand.py +143 -0
  422. wavix/types/ten_dlc_brand_appeal.py +54 -0
  423. wavix/types/ten_dlc_brand_appeal_create_request.py +36 -0
  424. wavix/types/ten_dlc_brand_appeal_outcome.py +38 -0
  425. wavix/types/ten_dlc_brand_appeal_outcome_feedback.py +27 -0
  426. wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.py +7 -0
  427. wavix/types/ten_dlc_brand_create_request.py +8 -0
  428. wavix/types/ten_dlc_brand_create_request_entity_type.py +7 -0
  429. wavix/types/ten_dlc_brand_create_request_stock_exchange.py +26 -0
  430. wavix/types/ten_dlc_brand_create_request_stock_exchange_entity_type.py +7 -0
  431. wavix/types/ten_dlc_brand_create_request_vertical.py +18 -0
  432. wavix/types/ten_dlc_brand_create_request_zero.py +24 -0
  433. wavix/types/ten_dlc_brand_create_request_zero_entity_type.py +5 -0
  434. wavix/types/ten_dlc_brand_entity_type.py +7 -0
  435. wavix/types/ten_dlc_brand_evidence.py +38 -0
  436. wavix/types/ten_dlc_brand_identity_verification_status.py +7 -0
  437. wavix/types/ten_dlc_brand_list_response.py +33 -0
  438. wavix/types/ten_dlc_brand_list_response_pagination.py +41 -0
  439. wavix/types/ten_dlc_brand_qualification_result.py +33 -0
  440. wavix/types/ten_dlc_brand_status.py +7 -0
  441. wavix/types/ten_dlc_brand_vetting.py +71 -0
  442. wavix/types/ten_dlc_brand_vetting_appeal.py +78 -0
  443. wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome.py +37 -0
  444. wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome_feedback.py +26 -0
  445. wavix/types/ten_dlc_brand_vetting_appeal_outcome.py +33 -0
  446. wavix/types/ten_dlc_brand_vetting_appeal_outcome_feedback.py +26 -0
  447. wavix/types/ten_dlc_brand_vetting_appeal_outcome_reason.py +22 -0
  448. wavix/types/ten_dlc_campaign.py +211 -0
  449. wavix/types/ten_dlc_campaign_list_response.py +33 -0
  450. wavix/types/ten_dlc_campaign_list_response_pagination.py +41 -0
  451. wavix/types/ten_dlc_campaign_nudge_request.py +32 -0
  452. wavix/types/ten_dlc_campaign_number.py +27 -0
  453. wavix/types/ten_dlc_campaign_number_list_response.py +33 -0
  454. wavix/types/ten_dlc_event_subscription.py +31 -0
  455. wavix/types/ten_dlcmno_metadata.py +101 -0
  456. wavix/types/transaction_status.py +5 -0
  457. wavix/types/transaction_type.py +50 -0
  458. wavix/types/transcript_turn.py +46 -0
  459. wavix/types/transcription_filter.py +35 -0
  460. wavix/types/transcription_filter_agent.py +36 -0
  461. wavix/types/transcription_filter_any.py +36 -0
  462. wavix/types/transcription_filter_client.py +36 -0
  463. wavix/types/transcription_language.py +5 -0
  464. wavix/types/transcription_reference.py +29 -0
  465. wavix/types/transcription_status.py +5 -0
  466. wavix/types/tts_language.py +5 -0
  467. wavix/types/tts_voice_id.py +25 -0
  468. wavix/types/two_factor_verification_check_response.py +22 -0
  469. wavix/types/two_factor_verification_event.py +47 -0
  470. wavix/types/two_factor_verification_resend_response.py +38 -0
  471. wavix/types/two_factor_verification_response.py +51 -0
  472. wavix/types/unauthorized_error_response.py +32 -0
  473. wavix/types/unprocessable_entity_error_body.py +27 -0
  474. wavix/types/validation_error_response.py +27 -0
  475. wavix/types/voice_campaign_create_request.py +20 -0
  476. wavix/types/voice_campaign_response.py +41 -0
  477. wavix/types/voice_campaigns_create_response.py +20 -0
  478. wavix/types/voice_campaigns_create_response_voice_campaign.py +43 -0
  479. wavix/types/voice_campaigns_get_response.py +20 -0
  480. wavix/types/voice_campaigns_get_response_voice_campaign.py +43 -0
  481. wavix/types/web_rtc_token.py +43 -0
  482. wavix/types/web_rtc_token_response.py +44 -0
  483. wavix/types/web_rtc_tokens_list_response.py +30 -0
  484. wavix/version.py +3 -0
  485. wavix/voice_campaigns/__init__.py +4 -0
  486. wavix/voice_campaigns/client.py +197 -0
  487. wavix/voice_campaigns/raw_client.py +332 -0
  488. wavix/webrtc/__init__.py +34 -0
  489. wavix/webrtc/client.py +63 -0
  490. wavix/webrtc/raw_client.py +13 -0
  491. wavix/webrtc/tokens/__init__.py +4 -0
  492. wavix/webrtc/tokens/client.py +432 -0
  493. wavix/webrtc/tokens/raw_client.py +869 -0
  494. wavix_python_sdk-1.0.0.dist-info/LICENSE +21 -0
  495. wavix_python_sdk-1.0.0.dist-info/METADATA +339 -0
  496. wavix_python_sdk-1.0.0.dist-info/RECORD +497 -0
  497. wavix_python_sdk-1.0.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,870 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ...core.request_options import RequestOptions
7
+ from ...types.ten_dlc_brand_create_request import TenDlcBrandCreateRequest
8
+ from .raw_client import AsyncRawBrandsClient, RawBrandsClient
9
+ from .types.create_brands_response import CreateBrandsResponse
10
+ from .types.delete_brands_response import DeleteBrandsResponse
11
+ from .types.get_brands_response import GetBrandsResponse
12
+ from .types.list_brands_response import ListBrandsResponse
13
+ from .types.qualify_usecase_brands_request_use_case import QualifyUsecaseBrandsRequestUseCase
14
+ from .types.qualify_usecase_brands_response import QualifyUsecaseBrandsResponse
15
+ from .types.ten_dlc_brand_update_request_entity_type import TenDlcBrandUpdateRequestEntityType
16
+ from .types.ten_dlc_brand_update_request_vertical import TenDlcBrandUpdateRequestVertical
17
+ from .types.update_brands_response import UpdateBrandsResponse
18
+
19
+ # this is used as the default value for optional parameters
20
+ OMIT = typing.cast(typing.Any, ...)
21
+
22
+
23
+ class BrandsClient:
24
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
25
+ self._raw_client = RawBrandsClient(client_wrapper=client_wrapper)
26
+
27
+ @property
28
+ def with_raw_response(self) -> RawBrandsClient:
29
+ """
30
+ Retrieves a raw implementation of this client that returns raw responses.
31
+
32
+ Returns
33
+ -------
34
+ RawBrandsClient
35
+ """
36
+ return self._raw_client
37
+
38
+ def list(
39
+ self,
40
+ *,
41
+ dba_name: typing.Optional[str] = None,
42
+ company_name: typing.Optional[str] = None,
43
+ entity_type: typing.Optional[str] = None,
44
+ status: typing.Optional[str] = None,
45
+ country: typing.Optional[str] = None,
46
+ show_deleted: typing.Optional[bool] = None,
47
+ ein_taxid: typing.Optional[str] = None,
48
+ mock: typing.Optional[bool] = None,
49
+ created_before: typing.Optional[str] = None,
50
+ created_after: typing.Optional[str] = None,
51
+ page: typing.Optional[int] = None,
52
+ per_page: typing.Optional[int] = None,
53
+ request_options: typing.Optional[RequestOptions] = None,
54
+ ) -> ListBrandsResponse:
55
+ """
56
+ Returns a paginated list of 10DLC Brands for the authenticated account, filtered by date, name, legal name, and status.
57
+
58
+ Parameters
59
+ ----------
60
+ dba_name : typing.Optional[str]
61
+ Filters Brands by `dba_name` (doing-business-as name). Matches partial values.
62
+
63
+ company_name : typing.Optional[str]
64
+ Filters Brands by `company_name` (registered legal name). Matches partial values.
65
+
66
+ entity_type : typing.Optional[str]
67
+ Filters Brands by business entity type, such as `PRIVATE_PROFIT`.
68
+
69
+ status : typing.Optional[str]
70
+ Filters Brands by identity verification status, such as `VERIFIED`.
71
+
72
+ country : typing.Optional[str]
73
+ Filters Brands by registration country, as an ISO 3166-1 alpha-2 code (e.g., `US`).
74
+
75
+ show_deleted : typing.Optional[bool]
76
+ When `true`, includes deleted Brands in the results. Default `false`.
77
+
78
+ ein_taxid : typing.Optional[str]
79
+ Filters Brands by their Employer Identification Number (EIN) or tax ID.
80
+
81
+ mock : typing.Optional[bool]
82
+ When `true`, returns only mock Brands used for testing. Default `false`.
83
+
84
+ created_before : typing.Optional[str]
85
+ Returns brands created on or before this date, in `YYYY-MM-DD` format.
86
+
87
+ created_after : typing.Optional[str]
88
+ Returns brands created on or after this date, in `YYYY-MM-DD` format.
89
+
90
+ page : typing.Optional[int]
91
+ Page number to retrieve. Default `1`.
92
+
93
+ per_page : typing.Optional[int]
94
+ Number of records to return per page. Default `25`.
95
+
96
+ request_options : typing.Optional[RequestOptions]
97
+ Request-specific configuration.
98
+
99
+ Returns
100
+ -------
101
+ ListBrandsResponse
102
+ Returns a paginated list of 10DLC Brands.
103
+
104
+ Examples
105
+ --------
106
+ from wavix import Wavix
107
+
108
+ client = Wavix(
109
+ token="YOUR_TOKEN",
110
+ )
111
+ client.ten_dlc.brands.list(
112
+ dba_name="Brand",
113
+ company_name="Company",
114
+ entity_type="PRIVATE_PROFIT",
115
+ status="VERIFIED",
116
+ country="US",
117
+ show_deleted=False,
118
+ ein_taxid="999999999",
119
+ mock=False,
120
+ created_before="2024-08-22",
121
+ created_after="2024-08-22",
122
+ page=1,
123
+ per_page=25,
124
+ )
125
+ """
126
+ _response = self._raw_client.list(
127
+ dba_name=dba_name,
128
+ company_name=company_name,
129
+ entity_type=entity_type,
130
+ status=status,
131
+ country=country,
132
+ show_deleted=show_deleted,
133
+ ein_taxid=ein_taxid,
134
+ mock=mock,
135
+ created_before=created_before,
136
+ created_after=created_after,
137
+ page=page,
138
+ per_page=per_page,
139
+ request_options=request_options,
140
+ )
141
+ return _response.data
142
+
143
+ def create(
144
+ self, *, request: TenDlcBrandCreateRequest, request_options: typing.Optional[RequestOptions] = None
145
+ ) -> CreateBrandsResponse:
146
+ """
147
+ Registers a 10DLC Brand. TCR automatically verifies the brand identity. Only brands with `VERIFIED` or `VETTED_VERIFIED` identity status can register 10DLC Campaigns.
148
+
149
+ Parameters
150
+ ----------
151
+ request : TenDlcBrandCreateRequest
152
+
153
+ request_options : typing.Optional[RequestOptions]
154
+ Request-specific configuration.
155
+
156
+ Returns
157
+ -------
158
+ CreateBrandsResponse
159
+ Returns the registered 10DLC Brand.
160
+
161
+ Examples
162
+ --------
163
+ from wavix import TenDlcBrandCreateRequestZero, Wavix
164
+
165
+ client = Wavix(
166
+ token="YOUR_TOKEN",
167
+ )
168
+ client.ten_dlc.brands.create(
169
+ request=TenDlcBrandCreateRequestZero(),
170
+ )
171
+ """
172
+ _response = self._raw_client.create(request=request, request_options=request_options)
173
+ return _response.data
174
+
175
+ def get(self, brand_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetBrandsResponse:
176
+ """
177
+ Returns the 10DLC Brand identified by `brand_id`.
178
+
179
+ Parameters
180
+ ----------
181
+ brand_id : str
182
+ The unique ID of the 10DLC Brand.
183
+
184
+ request_options : typing.Optional[RequestOptions]
185
+ Request-specific configuration.
186
+
187
+ Returns
188
+ -------
189
+ GetBrandsResponse
190
+ Returns the 10DLC Brand.
191
+
192
+ Examples
193
+ --------
194
+ from wavix import Wavix
195
+
196
+ client = Wavix(
197
+ token="YOUR_TOKEN",
198
+ )
199
+ client.ten_dlc.brands.get(
200
+ brand_id="BM20QP9",
201
+ )
202
+ """
203
+ _response = self._raw_client.get(brand_id, request_options=request_options)
204
+ return _response.data
205
+
206
+ def update(
207
+ self,
208
+ brand_id: str,
209
+ *,
210
+ dba_name: typing.Optional[str] = OMIT,
211
+ company_name: typing.Optional[str] = OMIT,
212
+ entity_type: typing.Optional[TenDlcBrandUpdateRequestEntityType] = OMIT,
213
+ vertical: typing.Optional[TenDlcBrandUpdateRequestVertical] = OMIT,
214
+ ein_taxid: typing.Optional[str] = OMIT,
215
+ ein_taxid_country: typing.Optional[str] = OMIT,
216
+ website: typing.Optional[str] = OMIT,
217
+ stock_symbol: typing.Optional[str] = OMIT,
218
+ stock_exchange: typing.Optional[str] = OMIT,
219
+ first_name: typing.Optional[str] = OMIT,
220
+ last_name: typing.Optional[str] = OMIT,
221
+ phone_number: typing.Optional[str] = OMIT,
222
+ email: typing.Optional[str] = OMIT,
223
+ street_address: typing.Optional[str] = OMIT,
224
+ city: typing.Optional[str] = OMIT,
225
+ state_or_province: typing.Optional[str] = OMIT,
226
+ zip: typing.Optional[str] = OMIT,
227
+ country: typing.Optional[str] = OMIT,
228
+ mock: typing.Optional[bool] = OMIT,
229
+ request_options: typing.Optional[RequestOptions] = None,
230
+ ) -> UpdateBrandsResponse:
231
+ """
232
+ Updates the 10DLC Brand identified by `brand_id`. Changing identity fields, including `ein_taxid`, `ein_taxid_country`, and `entity_type`, resets the Brand status to `UNVERIFIED` and triggers automatic re-submission. Brands in `VETTED_VERIFIED` status or with active Campaigns cannot be updated.
233
+
234
+ Parameters
235
+ ----------
236
+ brand_id : str
237
+ The unique ID of the 10DLC Brand.
238
+
239
+ dba_name : typing.Optional[str]
240
+ Brand name or DBA
241
+
242
+ company_name : typing.Optional[str]
243
+ Legal name of the company
244
+
245
+ entity_type : typing.Optional[TenDlcBrandUpdateRequestEntityType]
246
+ Legal entity type of the company. One of `PRIVATE_PROFIT` (privately held for-profit company), `PUBLIC_PROFIT` (publicly traded for-profit company), `NON_PROFIT` (non-profit organization), or `GOVERNMENT` (government entity).
247
+
248
+ vertical : typing.Optional[TenDlcBrandUpdateRequestVertical]
249
+ Business segment the Brand operates in. One of:
250
+
251
+ - `HEALTHCARE` — healthcare.
252
+ - `PROFESSIONAL` — professional services.
253
+ - `RETAIL` — retail.
254
+ - `TECHNOLOGY` — technology.
255
+ - `EDUCATION` — education.
256
+ - `FINANCIAL` — financial services.
257
+ - `NON_PROFIT` — non-profit organizations.
258
+ - `GOVERNMENT` — government entities.
259
+ - `OTHER` — any segment not listed above.
260
+
261
+ ein_taxid : typing.Optional[str]
262
+ IRS Employee Identification Number (EIN) for US-based or foreign companies with EIN. The numeric portion of Tax ID for companies incorporated in other countries.
263
+
264
+ ein_taxid_country : typing.Optional[str]
265
+ 2-letter ISO country code of the Tax ID issuing country
266
+
267
+ website : typing.Optional[str]
268
+ The website of the business
269
+
270
+ stock_symbol : typing.Optional[str]
271
+ The stock symbol of the Brand. For PUBLIC_PROFIT Brands only.
272
+
273
+ stock_exchange : typing.Optional[str]
274
+ The stock exchange code. For PUBLIC_PROFIT Brands only.
275
+
276
+ first_name : typing.Optional[str]
277
+ The first name of the business contact
278
+
279
+ last_name : typing.Optional[str]
280
+ The last name of the business contact
281
+
282
+ phone_number : typing.Optional[str]
283
+ The support contact telephone in E.164 format
284
+
285
+ email : typing.Optional[str]
286
+ The email address of the support contact
287
+
288
+ street_address : typing.Optional[str]
289
+ Street name and house number
290
+
291
+ city : typing.Optional[str]
292
+ The city name
293
+
294
+ state_or_province : typing.Optional[str]
295
+ State or province. For the United States, use 2 character codes.
296
+
297
+ zip : typing.Optional[str]
298
+ The business zip or postal code
299
+
300
+ country : typing.Optional[str]
301
+ 2-letter ISO country code the business address
302
+
303
+ mock : typing.Optional[bool]
304
+ Mock flag for testing (optional, defaults to false)
305
+
306
+ request_options : typing.Optional[RequestOptions]
307
+ Request-specific configuration.
308
+
309
+ Returns
310
+ -------
311
+ UpdateBrandsResponse
312
+ Returns the updated 10DLC Brand.
313
+
314
+ Examples
315
+ --------
316
+ from wavix import Wavix
317
+
318
+ client = Wavix(
319
+ token="YOUR_TOKEN",
320
+ )
321
+ client.ten_dlc.brands.update(
322
+ brand_id="BM20QP9",
323
+ )
324
+ """
325
+ _response = self._raw_client.update(
326
+ brand_id,
327
+ dba_name=dba_name,
328
+ company_name=company_name,
329
+ entity_type=entity_type,
330
+ vertical=vertical,
331
+ ein_taxid=ein_taxid,
332
+ ein_taxid_country=ein_taxid_country,
333
+ website=website,
334
+ stock_symbol=stock_symbol,
335
+ stock_exchange=stock_exchange,
336
+ first_name=first_name,
337
+ last_name=last_name,
338
+ phone_number=phone_number,
339
+ email=email,
340
+ street_address=street_address,
341
+ city=city,
342
+ state_or_province=state_or_province,
343
+ zip=zip,
344
+ country=country,
345
+ mock=mock,
346
+ request_options=request_options,
347
+ )
348
+ return _response.data
349
+
350
+ def delete(self, brand_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> DeleteBrandsResponse:
351
+ """
352
+ Deletes a 10DLC Brand. Brands with active campaigns cannot be deleted.
353
+
354
+ Parameters
355
+ ----------
356
+ brand_id : str
357
+ The unique ID of the 10DLC Brand.
358
+
359
+ request_options : typing.Optional[RequestOptions]
360
+ Request-specific configuration.
361
+
362
+ Returns
363
+ -------
364
+ DeleteBrandsResponse
365
+ Returns a success confirmation. The 10DLC Brand is deleted.
366
+
367
+ Examples
368
+ --------
369
+ from wavix import Wavix
370
+
371
+ client = Wavix(
372
+ token="YOUR_TOKEN",
373
+ )
374
+ client.ten_dlc.brands.delete(
375
+ brand_id="BM20QP9",
376
+ )
377
+ """
378
+ _response = self._raw_client.delete(brand_id, request_options=request_options)
379
+ return _response.data
380
+
381
+ def qualify_usecase(
382
+ self,
383
+ brand_id: str,
384
+ use_case: QualifyUsecaseBrandsRequestUseCase,
385
+ *,
386
+ request_options: typing.Optional[RequestOptions] = None,
387
+ ) -> QualifyUsecaseBrandsResponse:
388
+ """
389
+ Returns the qualification results for a 10DLC Brand use case. Includes MNO-specific attributes, restrictions, and fees.
390
+
391
+ Parameters
392
+ ----------
393
+ brand_id : str
394
+ The unique ID of the 10DLC Brand.
395
+
396
+ use_case : QualifyUsecaseBrandsRequestUseCase
397
+ Name of the use case to qualify the Brand for.
398
+
399
+ request_options : typing.Optional[RequestOptions]
400
+ Request-specific configuration.
401
+
402
+ Returns
403
+ -------
404
+ QualifyUsecaseBrandsResponse
405
+ Returns the use case qualification results for the Brand.
406
+
407
+ Examples
408
+ --------
409
+ from wavix import Wavix
410
+
411
+ client = Wavix(
412
+ token="YOUR_TOKEN",
413
+ )
414
+ client.ten_dlc.brands.qualify_usecase(
415
+ brand_id="BMQFB7X",
416
+ use_case="AGENTS_FRANCHISES",
417
+ )
418
+ """
419
+ _response = self._raw_client.qualify_usecase(brand_id, use_case, request_options=request_options)
420
+ return _response.data
421
+
422
+
423
+ class AsyncBrandsClient:
424
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
425
+ self._raw_client = AsyncRawBrandsClient(client_wrapper=client_wrapper)
426
+
427
+ @property
428
+ def with_raw_response(self) -> AsyncRawBrandsClient:
429
+ """
430
+ Retrieves a raw implementation of this client that returns raw responses.
431
+
432
+ Returns
433
+ -------
434
+ AsyncRawBrandsClient
435
+ """
436
+ return self._raw_client
437
+
438
+ async def list(
439
+ self,
440
+ *,
441
+ dba_name: typing.Optional[str] = None,
442
+ company_name: typing.Optional[str] = None,
443
+ entity_type: typing.Optional[str] = None,
444
+ status: typing.Optional[str] = None,
445
+ country: typing.Optional[str] = None,
446
+ show_deleted: typing.Optional[bool] = None,
447
+ ein_taxid: typing.Optional[str] = None,
448
+ mock: typing.Optional[bool] = None,
449
+ created_before: typing.Optional[str] = None,
450
+ created_after: typing.Optional[str] = None,
451
+ page: typing.Optional[int] = None,
452
+ per_page: typing.Optional[int] = None,
453
+ request_options: typing.Optional[RequestOptions] = None,
454
+ ) -> ListBrandsResponse:
455
+ """
456
+ Returns a paginated list of 10DLC Brands for the authenticated account, filtered by date, name, legal name, and status.
457
+
458
+ Parameters
459
+ ----------
460
+ dba_name : typing.Optional[str]
461
+ Filters Brands by `dba_name` (doing-business-as name). Matches partial values.
462
+
463
+ company_name : typing.Optional[str]
464
+ Filters Brands by `company_name` (registered legal name). Matches partial values.
465
+
466
+ entity_type : typing.Optional[str]
467
+ Filters Brands by business entity type, such as `PRIVATE_PROFIT`.
468
+
469
+ status : typing.Optional[str]
470
+ Filters Brands by identity verification status, such as `VERIFIED`.
471
+
472
+ country : typing.Optional[str]
473
+ Filters Brands by registration country, as an ISO 3166-1 alpha-2 code (e.g., `US`).
474
+
475
+ show_deleted : typing.Optional[bool]
476
+ When `true`, includes deleted Brands in the results. Default `false`.
477
+
478
+ ein_taxid : typing.Optional[str]
479
+ Filters Brands by their Employer Identification Number (EIN) or tax ID.
480
+
481
+ mock : typing.Optional[bool]
482
+ When `true`, returns only mock Brands used for testing. Default `false`.
483
+
484
+ created_before : typing.Optional[str]
485
+ Returns brands created on or before this date, in `YYYY-MM-DD` format.
486
+
487
+ created_after : typing.Optional[str]
488
+ Returns brands created on or after this date, in `YYYY-MM-DD` format.
489
+
490
+ page : typing.Optional[int]
491
+ Page number to retrieve. Default `1`.
492
+
493
+ per_page : typing.Optional[int]
494
+ Number of records to return per page. Default `25`.
495
+
496
+ request_options : typing.Optional[RequestOptions]
497
+ Request-specific configuration.
498
+
499
+ Returns
500
+ -------
501
+ ListBrandsResponse
502
+ Returns a paginated list of 10DLC Brands.
503
+
504
+ Examples
505
+ --------
506
+ import asyncio
507
+
508
+ from wavix import AsyncWavix
509
+
510
+ client = AsyncWavix(
511
+ token="YOUR_TOKEN",
512
+ )
513
+
514
+
515
+ async def main() -> None:
516
+ await client.ten_dlc.brands.list(
517
+ dba_name="Brand",
518
+ company_name="Company",
519
+ entity_type="PRIVATE_PROFIT",
520
+ status="VERIFIED",
521
+ country="US",
522
+ show_deleted=False,
523
+ ein_taxid="999999999",
524
+ mock=False,
525
+ created_before="2024-08-22",
526
+ created_after="2024-08-22",
527
+ page=1,
528
+ per_page=25,
529
+ )
530
+
531
+
532
+ asyncio.run(main())
533
+ """
534
+ _response = await self._raw_client.list(
535
+ dba_name=dba_name,
536
+ company_name=company_name,
537
+ entity_type=entity_type,
538
+ status=status,
539
+ country=country,
540
+ show_deleted=show_deleted,
541
+ ein_taxid=ein_taxid,
542
+ mock=mock,
543
+ created_before=created_before,
544
+ created_after=created_after,
545
+ page=page,
546
+ per_page=per_page,
547
+ request_options=request_options,
548
+ )
549
+ return _response.data
550
+
551
+ async def create(
552
+ self, *, request: TenDlcBrandCreateRequest, request_options: typing.Optional[RequestOptions] = None
553
+ ) -> CreateBrandsResponse:
554
+ """
555
+ Registers a 10DLC Brand. TCR automatically verifies the brand identity. Only brands with `VERIFIED` or `VETTED_VERIFIED` identity status can register 10DLC Campaigns.
556
+
557
+ Parameters
558
+ ----------
559
+ request : TenDlcBrandCreateRequest
560
+
561
+ request_options : typing.Optional[RequestOptions]
562
+ Request-specific configuration.
563
+
564
+ Returns
565
+ -------
566
+ CreateBrandsResponse
567
+ Returns the registered 10DLC Brand.
568
+
569
+ Examples
570
+ --------
571
+ import asyncio
572
+
573
+ from wavix import AsyncWavix, TenDlcBrandCreateRequestZero
574
+
575
+ client = AsyncWavix(
576
+ token="YOUR_TOKEN",
577
+ )
578
+
579
+
580
+ async def main() -> None:
581
+ await client.ten_dlc.brands.create(
582
+ request=TenDlcBrandCreateRequestZero(),
583
+ )
584
+
585
+
586
+ asyncio.run(main())
587
+ """
588
+ _response = await self._raw_client.create(request=request, request_options=request_options)
589
+ return _response.data
590
+
591
+ async def get(self, brand_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetBrandsResponse:
592
+ """
593
+ Returns the 10DLC Brand identified by `brand_id`.
594
+
595
+ Parameters
596
+ ----------
597
+ brand_id : str
598
+ The unique ID of the 10DLC Brand.
599
+
600
+ request_options : typing.Optional[RequestOptions]
601
+ Request-specific configuration.
602
+
603
+ Returns
604
+ -------
605
+ GetBrandsResponse
606
+ Returns the 10DLC Brand.
607
+
608
+ Examples
609
+ --------
610
+ import asyncio
611
+
612
+ from wavix import AsyncWavix
613
+
614
+ client = AsyncWavix(
615
+ token="YOUR_TOKEN",
616
+ )
617
+
618
+
619
+ async def main() -> None:
620
+ await client.ten_dlc.brands.get(
621
+ brand_id="BM20QP9",
622
+ )
623
+
624
+
625
+ asyncio.run(main())
626
+ """
627
+ _response = await self._raw_client.get(brand_id, request_options=request_options)
628
+ return _response.data
629
+
630
+ async def update(
631
+ self,
632
+ brand_id: str,
633
+ *,
634
+ dba_name: typing.Optional[str] = OMIT,
635
+ company_name: typing.Optional[str] = OMIT,
636
+ entity_type: typing.Optional[TenDlcBrandUpdateRequestEntityType] = OMIT,
637
+ vertical: typing.Optional[TenDlcBrandUpdateRequestVertical] = OMIT,
638
+ ein_taxid: typing.Optional[str] = OMIT,
639
+ ein_taxid_country: typing.Optional[str] = OMIT,
640
+ website: typing.Optional[str] = OMIT,
641
+ stock_symbol: typing.Optional[str] = OMIT,
642
+ stock_exchange: typing.Optional[str] = OMIT,
643
+ first_name: typing.Optional[str] = OMIT,
644
+ last_name: typing.Optional[str] = OMIT,
645
+ phone_number: typing.Optional[str] = OMIT,
646
+ email: typing.Optional[str] = OMIT,
647
+ street_address: typing.Optional[str] = OMIT,
648
+ city: typing.Optional[str] = OMIT,
649
+ state_or_province: typing.Optional[str] = OMIT,
650
+ zip: typing.Optional[str] = OMIT,
651
+ country: typing.Optional[str] = OMIT,
652
+ mock: typing.Optional[bool] = OMIT,
653
+ request_options: typing.Optional[RequestOptions] = None,
654
+ ) -> UpdateBrandsResponse:
655
+ """
656
+ Updates the 10DLC Brand identified by `brand_id`. Changing identity fields, including `ein_taxid`, `ein_taxid_country`, and `entity_type`, resets the Brand status to `UNVERIFIED` and triggers automatic re-submission. Brands in `VETTED_VERIFIED` status or with active Campaigns cannot be updated.
657
+
658
+ Parameters
659
+ ----------
660
+ brand_id : str
661
+ The unique ID of the 10DLC Brand.
662
+
663
+ dba_name : typing.Optional[str]
664
+ Brand name or DBA
665
+
666
+ company_name : typing.Optional[str]
667
+ Legal name of the company
668
+
669
+ entity_type : typing.Optional[TenDlcBrandUpdateRequestEntityType]
670
+ Legal entity type of the company. One of `PRIVATE_PROFIT` (privately held for-profit company), `PUBLIC_PROFIT` (publicly traded for-profit company), `NON_PROFIT` (non-profit organization), or `GOVERNMENT` (government entity).
671
+
672
+ vertical : typing.Optional[TenDlcBrandUpdateRequestVertical]
673
+ Business segment the Brand operates in. One of:
674
+
675
+ - `HEALTHCARE` — healthcare.
676
+ - `PROFESSIONAL` — professional services.
677
+ - `RETAIL` — retail.
678
+ - `TECHNOLOGY` — technology.
679
+ - `EDUCATION` — education.
680
+ - `FINANCIAL` — financial services.
681
+ - `NON_PROFIT` — non-profit organizations.
682
+ - `GOVERNMENT` — government entities.
683
+ - `OTHER` — any segment not listed above.
684
+
685
+ ein_taxid : typing.Optional[str]
686
+ IRS Employee Identification Number (EIN) for US-based or foreign companies with EIN. The numeric portion of Tax ID for companies incorporated in other countries.
687
+
688
+ ein_taxid_country : typing.Optional[str]
689
+ 2-letter ISO country code of the Tax ID issuing country
690
+
691
+ website : typing.Optional[str]
692
+ The website of the business
693
+
694
+ stock_symbol : typing.Optional[str]
695
+ The stock symbol of the Brand. For PUBLIC_PROFIT Brands only.
696
+
697
+ stock_exchange : typing.Optional[str]
698
+ The stock exchange code. For PUBLIC_PROFIT Brands only.
699
+
700
+ first_name : typing.Optional[str]
701
+ The first name of the business contact
702
+
703
+ last_name : typing.Optional[str]
704
+ The last name of the business contact
705
+
706
+ phone_number : typing.Optional[str]
707
+ The support contact telephone in E.164 format
708
+
709
+ email : typing.Optional[str]
710
+ The email address of the support contact
711
+
712
+ street_address : typing.Optional[str]
713
+ Street name and house number
714
+
715
+ city : typing.Optional[str]
716
+ The city name
717
+
718
+ state_or_province : typing.Optional[str]
719
+ State or province. For the United States, use 2 character codes.
720
+
721
+ zip : typing.Optional[str]
722
+ The business zip or postal code
723
+
724
+ country : typing.Optional[str]
725
+ 2-letter ISO country code the business address
726
+
727
+ mock : typing.Optional[bool]
728
+ Mock flag for testing (optional, defaults to false)
729
+
730
+ request_options : typing.Optional[RequestOptions]
731
+ Request-specific configuration.
732
+
733
+ Returns
734
+ -------
735
+ UpdateBrandsResponse
736
+ Returns the updated 10DLC Brand.
737
+
738
+ Examples
739
+ --------
740
+ import asyncio
741
+
742
+ from wavix import AsyncWavix
743
+
744
+ client = AsyncWavix(
745
+ token="YOUR_TOKEN",
746
+ )
747
+
748
+
749
+ async def main() -> None:
750
+ await client.ten_dlc.brands.update(
751
+ brand_id="BM20QP9",
752
+ )
753
+
754
+
755
+ asyncio.run(main())
756
+ """
757
+ _response = await self._raw_client.update(
758
+ brand_id,
759
+ dba_name=dba_name,
760
+ company_name=company_name,
761
+ entity_type=entity_type,
762
+ vertical=vertical,
763
+ ein_taxid=ein_taxid,
764
+ ein_taxid_country=ein_taxid_country,
765
+ website=website,
766
+ stock_symbol=stock_symbol,
767
+ stock_exchange=stock_exchange,
768
+ first_name=first_name,
769
+ last_name=last_name,
770
+ phone_number=phone_number,
771
+ email=email,
772
+ street_address=street_address,
773
+ city=city,
774
+ state_or_province=state_or_province,
775
+ zip=zip,
776
+ country=country,
777
+ mock=mock,
778
+ request_options=request_options,
779
+ )
780
+ return _response.data
781
+
782
+ async def delete(
783
+ self, brand_id: str, *, request_options: typing.Optional[RequestOptions] = None
784
+ ) -> DeleteBrandsResponse:
785
+ """
786
+ Deletes a 10DLC Brand. Brands with active campaigns cannot be deleted.
787
+
788
+ Parameters
789
+ ----------
790
+ brand_id : str
791
+ The unique ID of the 10DLC Brand.
792
+
793
+ request_options : typing.Optional[RequestOptions]
794
+ Request-specific configuration.
795
+
796
+ Returns
797
+ -------
798
+ DeleteBrandsResponse
799
+ Returns a success confirmation. The 10DLC Brand is deleted.
800
+
801
+ Examples
802
+ --------
803
+ import asyncio
804
+
805
+ from wavix import AsyncWavix
806
+
807
+ client = AsyncWavix(
808
+ token="YOUR_TOKEN",
809
+ )
810
+
811
+
812
+ async def main() -> None:
813
+ await client.ten_dlc.brands.delete(
814
+ brand_id="BM20QP9",
815
+ )
816
+
817
+
818
+ asyncio.run(main())
819
+ """
820
+ _response = await self._raw_client.delete(brand_id, request_options=request_options)
821
+ return _response.data
822
+
823
+ async def qualify_usecase(
824
+ self,
825
+ brand_id: str,
826
+ use_case: QualifyUsecaseBrandsRequestUseCase,
827
+ *,
828
+ request_options: typing.Optional[RequestOptions] = None,
829
+ ) -> QualifyUsecaseBrandsResponse:
830
+ """
831
+ Returns the qualification results for a 10DLC Brand use case. Includes MNO-specific attributes, restrictions, and fees.
832
+
833
+ Parameters
834
+ ----------
835
+ brand_id : str
836
+ The unique ID of the 10DLC Brand.
837
+
838
+ use_case : QualifyUsecaseBrandsRequestUseCase
839
+ Name of the use case to qualify the Brand for.
840
+
841
+ request_options : typing.Optional[RequestOptions]
842
+ Request-specific configuration.
843
+
844
+ Returns
845
+ -------
846
+ QualifyUsecaseBrandsResponse
847
+ Returns the use case qualification results for the Brand.
848
+
849
+ Examples
850
+ --------
851
+ import asyncio
852
+
853
+ from wavix import AsyncWavix
854
+
855
+ client = AsyncWavix(
856
+ token="YOUR_TOKEN",
857
+ )
858
+
859
+
860
+ async def main() -> None:
861
+ await client.ten_dlc.brands.qualify_usecase(
862
+ brand_id="BMQFB7X",
863
+ use_case="AGENTS_FRANCHISES",
864
+ )
865
+
866
+
867
+ asyncio.run(main())
868
+ """
869
+ _response = await self._raw_client.qualify_usecase(brand_id, use_case, request_options=request_options)
870
+ return _response.data