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,625 @@
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.message_body import MessageBody
8
+ from ...types.message_delivery_status import MessageDeliveryStatus
9
+ from ...types.send_messages_response import SendMessagesResponse
10
+ from .raw_client import AsyncRawMessagesClient, RawMessagesClient
11
+ from .types.get_messages_response import GetMessagesResponse
12
+ from .types.list_all_messages_request_message_type import ListAllMessagesRequestMessageType
13
+ from .types.list_messages_request_message_type import ListMessagesRequestMessageType
14
+ from .types.list_messages_response import ListMessagesResponse
15
+
16
+ # this is used as the default value for optional parameters
17
+ OMIT = typing.cast(typing.Any, ...)
18
+
19
+
20
+ class MessagesClient:
21
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
22
+ self._raw_client = RawMessagesClient(client_wrapper=client_wrapper)
23
+
24
+ @property
25
+ def with_raw_response(self) -> RawMessagesClient:
26
+ """
27
+ Retrieves a raw implementation of this client that returns raw responses.
28
+
29
+ Returns
30
+ -------
31
+ RawMessagesClient
32
+ """
33
+ return self._raw_client
34
+
35
+ def list(
36
+ self,
37
+ *,
38
+ type: str,
39
+ sent_after: typing.Optional[str] = None,
40
+ sent_before: typing.Optional[str] = None,
41
+ from_: typing.Optional[str] = None,
42
+ to: typing.Optional[str] = None,
43
+ status: typing.Optional[MessageDeliveryStatus] = None,
44
+ tag: typing.Optional[str] = None,
45
+ message_type: typing.Optional[ListMessagesRequestMessageType] = None,
46
+ page: typing.Optional[int] = None,
47
+ per_page: typing.Optional[int] = None,
48
+ request_options: typing.Optional[RequestOptions] = None,
49
+ ) -> ListMessagesResponse:
50
+ """
51
+ Returns a paginated list of SMS and MMS messages for the authenticated account, filtered by direction, date, and other criteria.
52
+
53
+ Parameters
54
+ ----------
55
+ type : str
56
+ Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account).
57
+
58
+ sent_after : typing.Optional[str]
59
+ Returns messages sent on or after this date, in `YYYY-MM-DD` format.
60
+
61
+ sent_before : typing.Optional[str]
62
+ Returns messages sent on or before this date, in `YYYY-MM-DD` format.
63
+
64
+ from_ : typing.Optional[str]
65
+ Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number.
66
+
67
+ to : typing.Optional[str]
68
+ Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, an SMS-enabled number on the Wavix platform.
69
+
70
+ status : typing.Optional[MessageDeliveryStatus]
71
+ Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value.
72
+
73
+ tag : typing.Optional[str]
74
+ Filters messages by `tag`. Supported for outbound messages only.
75
+
76
+ message_type : typing.Optional[ListMessagesRequestMessageType]
77
+ Filters messages by type. One of `sms` (text message) or `mms` (multimedia message).
78
+
79
+ page : typing.Optional[int]
80
+ Page number to retrieve. Default `1`.
81
+
82
+ per_page : typing.Optional[int]
83
+ Number of records to return per page. Default `25`.
84
+
85
+ request_options : typing.Optional[RequestOptions]
86
+ Request-specific configuration.
87
+
88
+ Returns
89
+ -------
90
+ ListMessagesResponse
91
+ Returns a paginated list of messages.
92
+
93
+ Examples
94
+ --------
95
+ from wavix import Wavix
96
+
97
+ client = Wavix(
98
+ token="YOUR_TOKEN",
99
+ )
100
+ client.sms_and_mms.messages.list(
101
+ sent_after="2023-04-10",
102
+ sent_before="2023-04-13",
103
+ type="outbound",
104
+ from_="15072429497",
105
+ to="16419252149",
106
+ tag="campaignX",
107
+ page=2,
108
+ per_page=50,
109
+ )
110
+ """
111
+ _response = self._raw_client.list(
112
+ type=type,
113
+ sent_after=sent_after,
114
+ sent_before=sent_before,
115
+ from_=from_,
116
+ to=to,
117
+ status=status,
118
+ tag=tag,
119
+ message_type=message_type,
120
+ page=page,
121
+ per_page=per_page,
122
+ request_options=request_options,
123
+ )
124
+ return _response.data
125
+
126
+ def send(
127
+ self,
128
+ *,
129
+ from_: str,
130
+ to: str,
131
+ message_body: MessageBody,
132
+ callback_url: typing.Optional[str] = OMIT,
133
+ validity: typing.Optional[int] = OMIT,
134
+ tag: typing.Optional[str] = OMIT,
135
+ request_options: typing.Optional[RequestOptions] = None,
136
+ ) -> SendMessagesResponse:
137
+ """
138
+ Sends an SMS or MMS message. MMS is supported for U.S. numbers only. Track delivery using the returned `message_id` and the message status callback.
139
+ **Rate limit**: 20 messages per phone number in 24 hours.
140
+
141
+ Parameters
142
+ ----------
143
+ from_ : str
144
+ Sender ID. Numeric or alphanumeric.
145
+
146
+ to : str
147
+ Recipient phone number.
148
+
149
+ message_body : MessageBody
150
+
151
+ callback_url : typing.Optional[str]
152
+ Callback URL for delivery reports.
153
+
154
+ validity : typing.Optional[int]
155
+ Message validity period in seconds. Delivery attempts stop after this period expires.
156
+
157
+ tag : typing.Optional[str]
158
+ Tag to group messages, such as for a specific campaign.
159
+
160
+ request_options : typing.Optional[RequestOptions]
161
+ Request-specific configuration.
162
+
163
+ Returns
164
+ -------
165
+ SendMessagesResponse
166
+ Returns the submitted message with its `message_id` and initial status.
167
+
168
+ Examples
169
+ --------
170
+ from wavix import MessageBody, Wavix
171
+
172
+ client = Wavix(
173
+ token="YOUR_TOKEN",
174
+ )
175
+ client.sms_and_mms.messages.send(
176
+ from_="Wavix",
177
+ to="+447537151866",
178
+ message_body=MessageBody(
179
+ text="Hi there, this is a message from Wavix",
180
+ ),
181
+ callback_url="https://you-site.com/webhook",
182
+ validity=3600,
183
+ tag="Fall sale",
184
+ )
185
+ """
186
+ _response = self._raw_client.send(
187
+ from_=from_,
188
+ to=to,
189
+ message_body=message_body,
190
+ callback_url=callback_url,
191
+ validity=validity,
192
+ tag=tag,
193
+ request_options=request_options,
194
+ )
195
+ return _response.data
196
+
197
+ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetMessagesResponse:
198
+ """
199
+ Returns the SMS or MMS message identified by `id`, including its delivery status and content.
200
+
201
+ Parameters
202
+ ----------
203
+ id : str
204
+ The unique ID of the message.
205
+
206
+ request_options : typing.Optional[RequestOptions]
207
+ Request-specific configuration.
208
+
209
+ Returns
210
+ -------
211
+ GetMessagesResponse
212
+ Returns the message.
213
+
214
+ Examples
215
+ --------
216
+ from wavix import Wavix
217
+
218
+ client = Wavix(
219
+ token="YOUR_TOKEN",
220
+ )
221
+ client.sms_and_mms.messages.get(
222
+ id="3a525ca2-6909-4c72-9399-905adf7f3a74",
223
+ )
224
+ """
225
+ _response = self._raw_client.get(id, request_options=request_options)
226
+ return _response.data
227
+
228
+ def list_all(
229
+ self,
230
+ *,
231
+ type: str,
232
+ sent_after: typing.Optional[str] = None,
233
+ sent_before: typing.Optional[str] = None,
234
+ from_: typing.Optional[str] = None,
235
+ to: typing.Optional[str] = None,
236
+ status: typing.Optional[MessageDeliveryStatus] = None,
237
+ tag: typing.Optional[str] = None,
238
+ message_type: typing.Optional[ListAllMessagesRequestMessageType] = None,
239
+ request_options: typing.Optional[RequestOptions] = None,
240
+ ) -> str:
241
+ """
242
+ Streams matching SMS and MMS messages as newline-delimited JSON (NDJSON), one message per line, for bulk export.
243
+
244
+ Parameters
245
+ ----------
246
+ type : str
247
+ Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account).
248
+
249
+ sent_after : typing.Optional[str]
250
+ Returns messages sent on or after this timestamp, in `YYYY-MM-DDTHH:MM:SS` format.
251
+
252
+ sent_before : typing.Optional[str]
253
+ Returns messages sent on or before this timestamp, in `YYYY-MM-DDTHH:MM:SS` format.
254
+
255
+ from_ : typing.Optional[str]
256
+ Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number.
257
+
258
+ to : typing.Optional[str]
259
+ Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, the SMS-enabled number that received the message.
260
+
261
+ status : typing.Optional[MessageDeliveryStatus]
262
+ Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value.
263
+
264
+ tag : typing.Optional[str]
265
+ Filters messages by `tag`. Supported for outbound messages only.
266
+
267
+ message_type : typing.Optional[ListAllMessagesRequestMessageType]
268
+ Filters messages by type. One of `sms` (text message) or `mms` (multimedia message).
269
+
270
+ request_options : typing.Optional[RequestOptions]
271
+ Request-specific configuration.
272
+
273
+ Returns
274
+ -------
275
+ str
276
+ Returns an NDJSON stream of messages, one per line.
277
+
278
+ Examples
279
+ --------
280
+ from wavix import Wavix
281
+
282
+ client = Wavix(
283
+ token="YOUR_TOKEN",
284
+ )
285
+ client.sms_and_mms.messages.list_all(
286
+ sent_after="2023-04-10T00:00:00",
287
+ sent_before="2023-04-13T23:59:59",
288
+ type="outbound",
289
+ from_="15072429497",
290
+ to="16419252149",
291
+ tag="campaignX",
292
+ )
293
+ """
294
+ _response = self._raw_client.list_all(
295
+ type=type,
296
+ sent_after=sent_after,
297
+ sent_before=sent_before,
298
+ from_=from_,
299
+ to=to,
300
+ status=status,
301
+ tag=tag,
302
+ message_type=message_type,
303
+ request_options=request_options,
304
+ )
305
+ return _response.data
306
+
307
+
308
+ class AsyncMessagesClient:
309
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
310
+ self._raw_client = AsyncRawMessagesClient(client_wrapper=client_wrapper)
311
+
312
+ @property
313
+ def with_raw_response(self) -> AsyncRawMessagesClient:
314
+ """
315
+ Retrieves a raw implementation of this client that returns raw responses.
316
+
317
+ Returns
318
+ -------
319
+ AsyncRawMessagesClient
320
+ """
321
+ return self._raw_client
322
+
323
+ async def list(
324
+ self,
325
+ *,
326
+ type: str,
327
+ sent_after: typing.Optional[str] = None,
328
+ sent_before: typing.Optional[str] = None,
329
+ from_: typing.Optional[str] = None,
330
+ to: typing.Optional[str] = None,
331
+ status: typing.Optional[MessageDeliveryStatus] = None,
332
+ tag: typing.Optional[str] = None,
333
+ message_type: typing.Optional[ListMessagesRequestMessageType] = None,
334
+ page: typing.Optional[int] = None,
335
+ per_page: typing.Optional[int] = None,
336
+ request_options: typing.Optional[RequestOptions] = None,
337
+ ) -> ListMessagesResponse:
338
+ """
339
+ Returns a paginated list of SMS and MMS messages for the authenticated account, filtered by direction, date, and other criteria.
340
+
341
+ Parameters
342
+ ----------
343
+ type : str
344
+ Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account).
345
+
346
+ sent_after : typing.Optional[str]
347
+ Returns messages sent on or after this date, in `YYYY-MM-DD` format.
348
+
349
+ sent_before : typing.Optional[str]
350
+ Returns messages sent on or before this date, in `YYYY-MM-DD` format.
351
+
352
+ from_ : typing.Optional[str]
353
+ Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number.
354
+
355
+ to : typing.Optional[str]
356
+ Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, an SMS-enabled number on the Wavix platform.
357
+
358
+ status : typing.Optional[MessageDeliveryStatus]
359
+ Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value.
360
+
361
+ tag : typing.Optional[str]
362
+ Filters messages by `tag`. Supported for outbound messages only.
363
+
364
+ message_type : typing.Optional[ListMessagesRequestMessageType]
365
+ Filters messages by type. One of `sms` (text message) or `mms` (multimedia message).
366
+
367
+ page : typing.Optional[int]
368
+ Page number to retrieve. Default `1`.
369
+
370
+ per_page : typing.Optional[int]
371
+ Number of records to return per page. Default `25`.
372
+
373
+ request_options : typing.Optional[RequestOptions]
374
+ Request-specific configuration.
375
+
376
+ Returns
377
+ -------
378
+ ListMessagesResponse
379
+ Returns a paginated list of messages.
380
+
381
+ Examples
382
+ --------
383
+ import asyncio
384
+
385
+ from wavix import AsyncWavix
386
+
387
+ client = AsyncWavix(
388
+ token="YOUR_TOKEN",
389
+ )
390
+
391
+
392
+ async def main() -> None:
393
+ await client.sms_and_mms.messages.list(
394
+ sent_after="2023-04-10",
395
+ sent_before="2023-04-13",
396
+ type="outbound",
397
+ from_="15072429497",
398
+ to="16419252149",
399
+ tag="campaignX",
400
+ page=2,
401
+ per_page=50,
402
+ )
403
+
404
+
405
+ asyncio.run(main())
406
+ """
407
+ _response = await self._raw_client.list(
408
+ type=type,
409
+ sent_after=sent_after,
410
+ sent_before=sent_before,
411
+ from_=from_,
412
+ to=to,
413
+ status=status,
414
+ tag=tag,
415
+ message_type=message_type,
416
+ page=page,
417
+ per_page=per_page,
418
+ request_options=request_options,
419
+ )
420
+ return _response.data
421
+
422
+ async def send(
423
+ self,
424
+ *,
425
+ from_: str,
426
+ to: str,
427
+ message_body: MessageBody,
428
+ callback_url: typing.Optional[str] = OMIT,
429
+ validity: typing.Optional[int] = OMIT,
430
+ tag: typing.Optional[str] = OMIT,
431
+ request_options: typing.Optional[RequestOptions] = None,
432
+ ) -> SendMessagesResponse:
433
+ """
434
+ Sends an SMS or MMS message. MMS is supported for U.S. numbers only. Track delivery using the returned `message_id` and the message status callback.
435
+ **Rate limit**: 20 messages per phone number in 24 hours.
436
+
437
+ Parameters
438
+ ----------
439
+ from_ : str
440
+ Sender ID. Numeric or alphanumeric.
441
+
442
+ to : str
443
+ Recipient phone number.
444
+
445
+ message_body : MessageBody
446
+
447
+ callback_url : typing.Optional[str]
448
+ Callback URL for delivery reports.
449
+
450
+ validity : typing.Optional[int]
451
+ Message validity period in seconds. Delivery attempts stop after this period expires.
452
+
453
+ tag : typing.Optional[str]
454
+ Tag to group messages, such as for a specific campaign.
455
+
456
+ request_options : typing.Optional[RequestOptions]
457
+ Request-specific configuration.
458
+
459
+ Returns
460
+ -------
461
+ SendMessagesResponse
462
+ Returns the submitted message with its `message_id` and initial status.
463
+
464
+ Examples
465
+ --------
466
+ import asyncio
467
+
468
+ from wavix import AsyncWavix, MessageBody
469
+
470
+ client = AsyncWavix(
471
+ token="YOUR_TOKEN",
472
+ )
473
+
474
+
475
+ async def main() -> None:
476
+ await client.sms_and_mms.messages.send(
477
+ from_="Wavix",
478
+ to="+447537151866",
479
+ message_body=MessageBody(
480
+ text="Hi there, this is a message from Wavix",
481
+ ),
482
+ callback_url="https://you-site.com/webhook",
483
+ validity=3600,
484
+ tag="Fall sale",
485
+ )
486
+
487
+
488
+ asyncio.run(main())
489
+ """
490
+ _response = await self._raw_client.send(
491
+ from_=from_,
492
+ to=to,
493
+ message_body=message_body,
494
+ callback_url=callback_url,
495
+ validity=validity,
496
+ tag=tag,
497
+ request_options=request_options,
498
+ )
499
+ return _response.data
500
+
501
+ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetMessagesResponse:
502
+ """
503
+ Returns the SMS or MMS message identified by `id`, including its delivery status and content.
504
+
505
+ Parameters
506
+ ----------
507
+ id : str
508
+ The unique ID of the message.
509
+
510
+ request_options : typing.Optional[RequestOptions]
511
+ Request-specific configuration.
512
+
513
+ Returns
514
+ -------
515
+ GetMessagesResponse
516
+ Returns the message.
517
+
518
+ Examples
519
+ --------
520
+ import asyncio
521
+
522
+ from wavix import AsyncWavix
523
+
524
+ client = AsyncWavix(
525
+ token="YOUR_TOKEN",
526
+ )
527
+
528
+
529
+ async def main() -> None:
530
+ await client.sms_and_mms.messages.get(
531
+ id="3a525ca2-6909-4c72-9399-905adf7f3a74",
532
+ )
533
+
534
+
535
+ asyncio.run(main())
536
+ """
537
+ _response = await self._raw_client.get(id, request_options=request_options)
538
+ return _response.data
539
+
540
+ async def list_all(
541
+ self,
542
+ *,
543
+ type: str,
544
+ sent_after: typing.Optional[str] = None,
545
+ sent_before: typing.Optional[str] = None,
546
+ from_: typing.Optional[str] = None,
547
+ to: typing.Optional[str] = None,
548
+ status: typing.Optional[MessageDeliveryStatus] = None,
549
+ tag: typing.Optional[str] = None,
550
+ message_type: typing.Optional[ListAllMessagesRequestMessageType] = None,
551
+ request_options: typing.Optional[RequestOptions] = None,
552
+ ) -> str:
553
+ """
554
+ Streams matching SMS and MMS messages as newline-delimited JSON (NDJSON), one message per line, for bulk export.
555
+
556
+ Parameters
557
+ ----------
558
+ type : str
559
+ Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account).
560
+
561
+ sent_after : typing.Optional[str]
562
+ Returns messages sent on or after this timestamp, in `YYYY-MM-DDTHH:MM:SS` format.
563
+
564
+ sent_before : typing.Optional[str]
565
+ Returns messages sent on or before this timestamp, in `YYYY-MM-DDTHH:MM:SS` format.
566
+
567
+ from_ : typing.Optional[str]
568
+ Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number.
569
+
570
+ to : typing.Optional[str]
571
+ Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, the SMS-enabled number that received the message.
572
+
573
+ status : typing.Optional[MessageDeliveryStatus]
574
+ Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value.
575
+
576
+ tag : typing.Optional[str]
577
+ Filters messages by `tag`. Supported for outbound messages only.
578
+
579
+ message_type : typing.Optional[ListAllMessagesRequestMessageType]
580
+ Filters messages by type. One of `sms` (text message) or `mms` (multimedia message).
581
+
582
+ request_options : typing.Optional[RequestOptions]
583
+ Request-specific configuration.
584
+
585
+ Returns
586
+ -------
587
+ str
588
+ Returns an NDJSON stream of messages, one per line.
589
+
590
+ Examples
591
+ --------
592
+ import asyncio
593
+
594
+ from wavix import AsyncWavix
595
+
596
+ client = AsyncWavix(
597
+ token="YOUR_TOKEN",
598
+ )
599
+
600
+
601
+ async def main() -> None:
602
+ await client.sms_and_mms.messages.list_all(
603
+ sent_after="2023-04-10T00:00:00",
604
+ sent_before="2023-04-13T23:59:59",
605
+ type="outbound",
606
+ from_="15072429497",
607
+ to="16419252149",
608
+ tag="campaignX",
609
+ )
610
+
611
+
612
+ asyncio.run(main())
613
+ """
614
+ _response = await self._raw_client.list_all(
615
+ type=type,
616
+ sent_after=sent_after,
617
+ sent_before=sent_before,
618
+ from_=from_,
619
+ to=to,
620
+ status=status,
621
+ tag=tag,
622
+ message_type=message_type,
623
+ request_options=request_options,
624
+ )
625
+ return _response.data