wavix-ruby-sdk 1.0.0

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 (485) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +10 -0
  3. data/.fernignore +5 -0
  4. data/.rubocop.yml +103 -0
  5. data/CONTRIBUTING.md +120 -0
  6. data/LICENSE +21 -0
  7. data/README.md +271 -0
  8. data/Rakefile +20 -0
  9. data/SECURITY.md +25 -0
  10. data/custom.gemspec.rb +16 -0
  11. data/lib/wavix/api_keys/client.rb +158 -0
  12. data/lib/wavix/api_keys/types/api_key_create_request.rb +45 -0
  13. data/lib/wavix/api_keys/types/api_key_update_request.rb +47 -0
  14. data/lib/wavix/api_keys/types/delete_api_keys_request.rb +11 -0
  15. data/lib/wavix/api_keys/types/list_api_keys_request.rb +11 -0
  16. data/lib/wavix/billing/client.rb +24 -0
  17. data/lib/wavix/billing/invoices/client.rb +89 -0
  18. data/lib/wavix/billing/invoices/types/download_invoices_request.rb +13 -0
  19. data/lib/wavix/billing/invoices/types/list_invoices_request.rb +15 -0
  20. data/lib/wavix/billing/invoices/types/list_invoices_response.rb +17 -0
  21. data/lib/wavix/billing/transactions/client.rb +67 -0
  22. data/lib/wavix/billing/transactions/types/list_transactions_request.rb +25 -0
  23. data/lib/wavix/billing/transactions/types/list_transactions_response.rb +17 -0
  24. data/lib/wavix/buy/cities/client.rb +56 -0
  25. data/lib/wavix/buy/cities/types/list_cities_request.rb +15 -0
  26. data/lib/wavix/buy/cities/types/list_cities_response.rb +13 -0
  27. data/lib/wavix/buy/client.rb +39 -0
  28. data/lib/wavix/buy/countries/client.rb +54 -0
  29. data/lib/wavix/buy/countries/types/list_countries_request.rb +13 -0
  30. data/lib/wavix/buy/countries/types/list_countries_response.rb +13 -0
  31. data/lib/wavix/buy/numbers/client.rb +60 -0
  32. data/lib/wavix/buy/numbers/types/list_numbers_request.rb +21 -0
  33. data/lib/wavix/buy/numbers/types/list_numbers_response.rb +15 -0
  34. data/lib/wavix/buy/region_cities/client.rb +56 -0
  35. data/lib/wavix/buy/region_cities/types/list_region_cities_request.rb +17 -0
  36. data/lib/wavix/buy/region_cities/types/list_region_cities_response.rb +13 -0
  37. data/lib/wavix/buy/regions/client.rb +55 -0
  38. data/lib/wavix/buy/regions/types/list_regions_request.rb +15 -0
  39. data/lib/wavix/buy/regions/types/list_regions_response.rb +13 -0
  40. data/lib/wavix/call_control/audio/client.rb +89 -0
  41. data/lib/wavix/call_control/audio/types/call_audio_play_request.rb +15 -0
  42. data/lib/wavix/call_control/audio/types/stop_audio_request.rb +13 -0
  43. data/lib/wavix/call_control/client.rb +275 -0
  44. data/lib/wavix/call_control/streams/client.rb +91 -0
  45. data/lib/wavix/call_control/streams/types/call_stream_create_request.rb +19 -0
  46. data/lib/wavix/call_control/streams/types/delete_streams_request.rb +15 -0
  47. data/lib/wavix/call_control/types/call_answer_request.rb +21 -0
  48. data/lib/wavix/call_control/types/call_dtmf_collect_request.rb +21 -0
  49. data/lib/wavix/call_control/types/call_dtmf_collect_request_prompt.rb +15 -0
  50. data/lib/wavix/call_control/types/call_dtmf_collect_request_prompt_say.rb +16 -0
  51. data/lib/wavix/call_control/types/call_request.rb +23 -0
  52. data/lib/wavix/call_control/types/delete_call_control_request.rb +11 -0
  53. data/lib/wavix/call_control/types/get_call_control_request.rb +11 -0
  54. data/lib/wavix/call_control/types/update_call_request.rb +13 -0
  55. data/lib/wavix/call_recording/client.rb +168 -0
  56. data/lib/wavix/call_recording/types/delete_call_recording_request.rb +11 -0
  57. data/lib/wavix/call_recording/types/get_by_call_call_recording_request.rb +11 -0
  58. data/lib/wavix/call_recording/types/get_call_recording_request.rb +11 -0
  59. data/lib/wavix/call_recording/types/list_call_recording_request.rb +25 -0
  60. data/lib/wavix/call_webhooks/client.rb +120 -0
  61. data/lib/wavix/call_webhooks/types/call_webhooks_create_request.rb +13 -0
  62. data/lib/wavix/call_webhooks/types/call_webhooks_create_request_event_type.rb +14 -0
  63. data/lib/wavix/call_webhooks/types/delete_call_webhooks_request.rb +11 -0
  64. data/lib/wavix/call_webhooks/types/delete_call_webhooks_request_event_type.rb +14 -0
  65. data/lib/wavix/cart/client.rb +147 -0
  66. data/lib/wavix/cart/types/add_cart_request.rb +11 -0
  67. data/lib/wavix/cart/types/checkout_cart_request.rb +11 -0
  68. data/lib/wavix/cart/types/checkout_cart_response.rb +11 -0
  69. data/lib/wavix/cart/types/get_cart_response.rb +13 -0
  70. data/lib/wavix/cart/types/remove_cart_request.rb +11 -0
  71. data/lib/wavix/cart/types/remove_cart_response.rb +11 -0
  72. data/lib/wavix/cdrs/client.rb +277 -0
  73. data/lib/wavix/cdrs/transcription/client.rb +51 -0
  74. data/lib/wavix/cdrs/transcription/types/get_transcription_request.rb +13 -0
  75. data/lib/wavix/cdrs/types/cdr_retranscription_request.rb +15 -0
  76. data/lib/wavix/cdrs/types/cdr_search_request.rb +33 -0
  77. data/lib/wavix/cdrs/types/cdr_search_request_disposition.rb +17 -0
  78. data/lib/wavix/cdrs/types/cdr_search_request_type.rb +14 -0
  79. data/lib/wavix/cdrs/types/get_cdrs_request.rb +13 -0
  80. data/lib/wavix/cdrs/types/list_all_cdrs_request.rb +29 -0
  81. data/lib/wavix/cdrs/types/list_cdrs_request.rb +29 -0
  82. data/lib/wavix/cdrs/types/transcriptions_cdrs_request.rb +11 -0
  83. data/lib/wavix/client.rb +122 -0
  84. data/lib/wavix/environment.rb +7 -0
  85. data/lib/wavix/errors/api_error.rb +8 -0
  86. data/lib/wavix/errors/client_error.rb +17 -0
  87. data/lib/wavix/errors/redirect_error.rb +8 -0
  88. data/lib/wavix/errors/response_error.rb +42 -0
  89. data/lib/wavix/errors/server_error.rb +11 -0
  90. data/lib/wavix/errors/timeout_error.rb +8 -0
  91. data/lib/wavix/internal/errors/constraint_error.rb +10 -0
  92. data/lib/wavix/internal/errors/type_error.rb +10 -0
  93. data/lib/wavix/internal/http/base_request.rb +51 -0
  94. data/lib/wavix/internal/http/raw_client.rb +215 -0
  95. data/lib/wavix/internal/iterators/cursor_item_iterator.rb +28 -0
  96. data/lib/wavix/internal/iterators/cursor_page_iterator.rb +63 -0
  97. data/lib/wavix/internal/iterators/item_iterator.rb +65 -0
  98. data/lib/wavix/internal/iterators/offset_item_iterator.rb +30 -0
  99. data/lib/wavix/internal/iterators/offset_page_iterator.rb +103 -0
  100. data/lib/wavix/internal/json/request.rb +41 -0
  101. data/lib/wavix/internal/json/serializable.rb +25 -0
  102. data/lib/wavix/internal/multipart/multipart_encoder.rb +141 -0
  103. data/lib/wavix/internal/multipart/multipart_form_data.rb +78 -0
  104. data/lib/wavix/internal/multipart/multipart_form_data_part.rb +51 -0
  105. data/lib/wavix/internal/multipart/multipart_request.rb +40 -0
  106. data/lib/wavix/internal/types/array.rb +47 -0
  107. data/lib/wavix/internal/types/boolean.rb +34 -0
  108. data/lib/wavix/internal/types/enum.rb +56 -0
  109. data/lib/wavix/internal/types/hash.rb +36 -0
  110. data/lib/wavix/internal/types/model/field.rb +38 -0
  111. data/lib/wavix/internal/types/model.rb +208 -0
  112. data/lib/wavix/internal/types/type.rb +35 -0
  113. data/lib/wavix/internal/types/union.rb +161 -0
  114. data/lib/wavix/internal/types/unknown.rb +15 -0
  115. data/lib/wavix/internal/types/utils.rb +116 -0
  116. data/lib/wavix/link_shortener/client.rb +53 -0
  117. data/lib/wavix/link_shortener/metrics/client.rb +65 -0
  118. data/lib/wavix/link_shortener/metrics/types/list_metrics_request.rb +23 -0
  119. data/lib/wavix/link_shortener/types/short_link_create_request.rb +19 -0
  120. data/lib/wavix/number_validator/client.rb +94 -0
  121. data/lib/wavix/number_validator/results/client.rb +50 -0
  122. data/lib/wavix/number_validator/results/types/get_results_request.rb +13 -0
  123. data/lib/wavix/number_validator/types/get_number_validator_request.rb +13 -0
  124. data/lib/wavix/number_validator/types/get_number_validator_response.rb +43 -0
  125. data/lib/wavix/number_validator/types/phone_validation_request.rb +17 -0
  126. data/lib/wavix/numbers/client.rb +216 -0
  127. data/lib/wavix/numbers/papers/client.rb +69 -0
  128. data/lib/wavix/numbers/papers/types/upload_papers_request.rb +11 -0
  129. data/lib/wavix/numbers/types/bulk_update_numbers_response.rb +11 -0
  130. data/lib/wavix/numbers/types/delete_numbers_request.rb +13 -0
  131. data/lib/wavix/numbers/types/delete_numbers_response.rb +11 -0
  132. data/lib/wavix/numbers/types/get_numbers_request.rb +11 -0
  133. data/lib/wavix/numbers/types/list_numbers_request.rb +21 -0
  134. data/lib/wavix/numbers/types/number_bulk_update_request.rb +25 -0
  135. data/lib/wavix/numbers/types/number_update_request.rb +25 -0
  136. data/lib/wavix/profile/client.rb +85 -0
  137. data/lib/wavix/profile/config/client.rb +48 -0
  138. data/lib/wavix/profile/config/types/get_config_response.rb +15 -0
  139. data/lib/wavix/profile/types/profile_update_request.rb +31 -0
  140. data/lib/wavix/profile/types/profile_update_request_company_info.rb +21 -0
  141. data/lib/wavix/profile/types/profile_update_request_company_info_industry.rb +25 -0
  142. data/lib/wavix/sip_trunks/client.rb +194 -0
  143. data/lib/wavix/sip_trunks/types/delete_sip_trunks_request.rb +11 -0
  144. data/lib/wavix/sip_trunks/types/get_sip_trunks_request.rb +11 -0
  145. data/lib/wavix/sip_trunks/types/list_sip_trunks_request.rb +13 -0
  146. data/lib/wavix/sip_trunks/types/update_sip_trunks_request.rb +13 -0
  147. data/lib/wavix/sms_and_mms/client.rb +29 -0
  148. data/lib/wavix/sms_and_mms/messages/client.rb +194 -0
  149. data/lib/wavix/sms_and_mms/messages/types/get_messages_request.rb +13 -0
  150. data/lib/wavix/sms_and_mms/messages/types/get_messages_response.rb +45 -0
  151. data/lib/wavix/sms_and_mms/messages/types/list_all_messages_request.rb +27 -0
  152. data/lib/wavix/sms_and_mms/messages/types/list_all_messages_request_message_type.rb +16 -0
  153. data/lib/wavix/sms_and_mms/messages/types/list_messages_request.rb +31 -0
  154. data/lib/wavix/sms_and_mms/messages/types/list_messages_request_message_type.rb +16 -0
  155. data/lib/wavix/sms_and_mms/messages/types/list_messages_response.rb +15 -0
  156. data/lib/wavix/sms_and_mms/messages/types/send_messages_request.rb +23 -0
  157. data/lib/wavix/sms_and_mms/opt_outs/client.rb +99 -0
  158. data/lib/wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.rb +13 -0
  159. data/lib/wavix/sms_and_mms/opt_outs/types/list_opt_outs_request.rb +23 -0
  160. data/lib/wavix/sms_and_mms/opt_outs/types/opt_out_create_request.rb +13 -0
  161. data/lib/wavix/sms_and_mms/sender_ids/client.rb +150 -0
  162. data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_request.rb +13 -0
  163. data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.rb +13 -0
  164. data/lib/wavix/sms_and_mms/sender_ids/types/get_sender_ids_request.rb +13 -0
  165. data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request.rb +23 -0
  166. data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request_monthly_volume.rb +19 -0
  167. data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request_usecase.rb +17 -0
  168. data/lib/wavix/speech_analytics/client.rb +157 -0
  169. data/lib/wavix/speech_analytics/file/client.rb +48 -0
  170. data/lib/wavix/speech_analytics/file/types/get_file_request.rb +13 -0
  171. data/lib/wavix/speech_analytics/types/create_speech_analytics_request.rb +9 -0
  172. data/lib/wavix/speech_analytics/types/create_speech_analytics_response.rb +15 -0
  173. data/lib/wavix/speech_analytics/types/get_speech_analytics_request.rb +11 -0
  174. data/lib/wavix/speech_analytics/types/get_speech_analytics_response.rb +31 -0
  175. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_language.rb +17 -0
  176. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_status.rb +14 -0
  177. data/lib/wavix/speech_analytics/types/speech_analytics_retranscribe_request.rb +15 -0
  178. data/lib/wavix/sub_accounts/client.rb +165 -0
  179. data/lib/wavix/sub_accounts/transactions/client.rb +64 -0
  180. data/lib/wavix/sub_accounts/transactions/types/list_transactions_request.rb +23 -0
  181. data/lib/wavix/sub_accounts/types/get_sub_accounts_request.rb +11 -0
  182. data/lib/wavix/sub_accounts/types/list_sub_accounts_request.rb +11 -0
  183. data/lib/wavix/sub_accounts/types/list_sub_accounts_request_status.rb +14 -0
  184. data/lib/wavix/sub_accounts/types/sub_accounts_create_request.rb +13 -0
  185. data/lib/wavix/sub_accounts/types/sub_accounts_create_request_default_destinations.rb +14 -0
  186. data/lib/wavix/sub_accounts/types/sub_accounts_update_request.rb +17 -0
  187. data/lib/wavix/sub_accounts/types/sub_accounts_update_request_default_destinations.rb +14 -0
  188. data/lib/wavix/sub_accounts/types/sub_accounts_update_request_status.rb +14 -0
  189. data/lib/wavix/ten_dlc/brand_appeals/client.rb +93 -0
  190. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request.rb +19 -0
  191. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.rb +13 -0
  192. data/lib/wavix/ten_dlc/brand_appeals/types/list_brand_appeals_request.rb +13 -0
  193. data/lib/wavix/ten_dlc/brand_evidence/client.rb +158 -0
  194. data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_request.rb +15 -0
  195. data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.rb +13 -0
  196. data/lib/wavix/ten_dlc/brand_evidence/types/get_brand_evidence_request.rb +15 -0
  197. data/lib/wavix/ten_dlc/brand_evidence/types/list_brand_evidence_request.rb +13 -0
  198. data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_request.rb +13 -0
  199. data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.rb +19 -0
  200. data/lib/wavix/ten_dlc/brand_vetting_appeals/client.rb +87 -0
  201. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.rb +13 -0
  202. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/list_brand_vetting_appeals_request.rb +13 -0
  203. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request.rb +23 -0
  204. data/lib/wavix/ten_dlc/brand_vettings/client.rb +127 -0
  205. data/lib/wavix/ten_dlc/brand_vettings/types/list_brand_vettings_request.rb +13 -0
  206. data/lib/wavix/ten_dlc/brand_vettings/types/ten_dlc_brand_vetting_create_request.rb +17 -0
  207. data/lib/wavix/ten_dlc/brand_vettings/types/ten_dlc_brand_vetting_import_request.rb +19 -0
  208. data/lib/wavix/ten_dlc/brands/client.rb +257 -0
  209. data/lib/wavix/ten_dlc/brands/types/create_brands_response.rb +61 -0
  210. data/lib/wavix/ten_dlc/brands/types/create_brands_response_entity_type.rb +18 -0
  211. data/lib/wavix/ten_dlc/brands/types/create_brands_response_status.rb +19 -0
  212. data/lib/wavix/ten_dlc/brands/types/delete_brands_request.rb +13 -0
  213. data/lib/wavix/ten_dlc/brands/types/delete_brands_response.rb +13 -0
  214. data/lib/wavix/ten_dlc/brands/types/get_brands_request.rb +13 -0
  215. data/lib/wavix/ten_dlc/brands/types/get_brands_response.rb +61 -0
  216. data/lib/wavix/ten_dlc/brands/types/get_brands_response_entity_type.rb +18 -0
  217. data/lib/wavix/ten_dlc/brands/types/get_brands_response_status.rb +19 -0
  218. data/lib/wavix/ten_dlc/brands/types/list_brands_request.rb +35 -0
  219. data/lib/wavix/ten_dlc/brands/types/list_brands_response.rb +16 -0
  220. data/lib/wavix/ten_dlc/brands/types/list_brands_response_pagination.rb +20 -0
  221. data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_request.rb +15 -0
  222. data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_request_use_case.rb +40 -0
  223. data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_response.rb +17 -0
  224. data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request.rb +51 -0
  225. data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_entity_type.rb +18 -0
  226. data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_vertical.rb +23 -0
  227. data/lib/wavix/ten_dlc/brands/types/update_brands_response.rb +61 -0
  228. data/lib/wavix/ten_dlc/brands/types/update_brands_response_entity_type.rb +18 -0
  229. data/lib/wavix/ten_dlc/brands/types/update_brands_response_status.rb +19 -0
  230. data/lib/wavix/ten_dlc/campaign_numbers/client.rb +123 -0
  231. data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_request.rb +17 -0
  232. data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.rb +13 -0
  233. data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_request.rb +15 -0
  234. data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.rb +17 -0
  235. data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_request.rb +17 -0
  236. data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.rb +13 -0
  237. data/lib/wavix/ten_dlc/campaigns/client.rb +316 -0
  238. data/lib/wavix/ten_dlc/campaigns/types/create_campaigns_response.rb +89 -0
  239. data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_request.rb +15 -0
  240. data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_response.rb +13 -0
  241. data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_request.rb +15 -0
  242. data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_response.rb +89 -0
  243. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_request.rb +29 -0
  244. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.rb +16 -0
  245. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.rb +20 -0
  246. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_request.rb +27 -0
  247. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response.rb +16 -0
  248. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.rb +20 -0
  249. data/lib/wavix/ten_dlc/campaigns/types/nudge_campaigns_request.rb +19 -0
  250. data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_create_request.rb +69 -0
  251. data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request.rb +67 -0
  252. data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request_usecase.rb +20 -0
  253. data/lib/wavix/ten_dlc/campaigns/types/update_campaigns_response.rb +89 -0
  254. data/lib/wavix/ten_dlc/client.rb +54 -0
  255. data/lib/wavix/ten_dlc/subscriptions/client.rb +118 -0
  256. data/lib/wavix/ten_dlc/subscriptions/types/create_subscriptions_response.rb +16 -0
  257. data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_request.rb +13 -0
  258. data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.rb +13 -0
  259. data/lib/wavix/two_fa/client.rb +29 -0
  260. data/lib/wavix/two_fa/events/client.rb +49 -0
  261. data/lib/wavix/two_fa/events/types/list_events_request.rb +13 -0
  262. data/lib/wavix/two_fa/sessions/client.rb +55 -0
  263. data/lib/wavix/two_fa/sessions/types/list_sessions_request.rb +17 -0
  264. data/lib/wavix/two_fa/verification/client.rb +171 -0
  265. data/lib/wavix/two_fa/verification/types/cancel_verification_request.rb +13 -0
  266. data/lib/wavix/two_fa/verification/types/check_verification_response.rb +13 -0
  267. data/lib/wavix/two_fa/verification/types/create_verification_response.rb +25 -0
  268. data/lib/wavix/two_fa/verification/types/resend_verification_response.rb +19 -0
  269. data/lib/wavix/two_fa/verification/types/two_factor_verification_check_request.rb +15 -0
  270. data/lib/wavix/two_fa/verification/types/two_factor_verification_create_request.rb +17 -0
  271. data/lib/wavix/two_fa/verification/types/two_factor_verification_resend_request.rb +15 -0
  272. data/lib/wavix/two_fa/verification/types/two_factor_verification_resend_request_channel.rb +16 -0
  273. data/lib/wavix/types/account_error_response.rb +12 -0
  274. data/lib/wavix/types/account_limits.rb +13 -0
  275. data/lib/wavix/types/allowed_i_ps.rb +23 -0
  276. data/lib/wavix/types/allowed_i_ps_item.rb +11 -0
  277. data/lib/wavix/types/api_key.rb +52 -0
  278. data/lib/wavix/types/api_key_calls_scope_permission.rb +10 -0
  279. data/lib/wavix/types/api_key_calls_scope_permission_allow.rb +13 -0
  280. data/lib/wavix/types/api_key_scope_permission.rb +10 -0
  281. data/lib/wavix/types/api_key_scope_permission_allow.rb +13 -0
  282. data/lib/wavix/types/available_number.rb +38 -0
  283. data/lib/wavix/types/available_number_list_response.rb +11 -0
  284. data/lib/wavix/types/bad_request_error_body.rb +11 -0
  285. data/lib/wavix/types/billing_transaction_list_response.rb +13 -0
  286. data/lib/wavix/types/brand_status_updated_webhook.rb +11 -0
  287. data/lib/wavix/types/brand_status_updated_webhook_status.rb +16 -0
  288. data/lib/wavix/types/call.rb +33 -0
  289. data/lib/wavix/types/call_control_validation_error_response.rb +13 -0
  290. data/lib/wavix/types/call_create_response.rb +33 -0
  291. data/lib/wavix/types/call_create_response_event_type.rb +19 -0
  292. data/lib/wavix/types/call_direction.rb +12 -0
  293. data/lib/wavix/types/call_disposition.rb +15 -0
  294. data/lib/wavix/types/call_event_type.rb +19 -0
  295. data/lib/wavix/types/call_list_response.rb +11 -0
  296. data/lib/wavix/types/call_recording_list_response.rb +13 -0
  297. data/lib/wavix/types/call_response.rb +11 -0
  298. data/lib/wavix/types/call_status_webhook.rb +28 -0
  299. data/lib/wavix/types/call_status_webhook_direction.rb +12 -0
  300. data/lib/wavix/types/call_stream_channel.rb +13 -0
  301. data/lib/wavix/types/call_stream_response.rb +11 -0
  302. data/lib/wavix/types/call_stream_type.rb +12 -0
  303. data/lib/wavix/types/call_webhook.rb +14 -0
  304. data/lib/wavix/types/call_webhook_event_type.rb +12 -0
  305. data/lib/wavix/types/call_webhook_list_response.rb +23 -0
  306. data/lib/wavix/types/call_webhook_list_response_item.rb +11 -0
  307. data/lib/wavix/types/call_webhook_list_response_item_event_type.rb +12 -0
  308. data/lib/wavix/types/campaign_status_updated_webhook.rb +13 -0
  309. data/lib/wavix/types/campaign_status_updated_webhook_status.rb +17 -0
  310. data/lib/wavix/types/cart_response.rb +11 -0
  311. data/lib/wavix/types/cdr.rb +38 -0
  312. data/lib/wavix/types/cdr_list_response.rb +11 -0
  313. data/lib/wavix/types/cdr_response.rb +41 -0
  314. data/lib/wavix/types/cdr_transcription_completed_webhook.rb +11 -0
  315. data/lib/wavix/types/cdr_transcription_completed_webhook_status.rb +12 -0
  316. data/lib/wavix/types/cdr_transcription_response.rb +31 -0
  317. data/lib/wavix/types/cdr_transcription_search_response.rb +11 -0
  318. data/lib/wavix/types/cdr_with_transcription.rb +40 -0
  319. data/lib/wavix/types/city.rb +13 -0
  320. data/lib/wavix/types/city_list_response.rb +9 -0
  321. data/lib/wavix/types/country.rb +13 -0
  322. data/lib/wavix/types/country_has_no_regions_error_response.rb +11 -0
  323. data/lib/wavix/types/country_list_response.rb +9 -0
  324. data/lib/wavix/types/document_type.rb +13 -0
  325. data/lib/wavix/types/document_type_id.rb +23 -0
  326. data/lib/wavix/types/file_transcript_response.rb +11 -0
  327. data/lib/wavix/types/file_transcript_turn.rb +18 -0
  328. data/lib/wavix/types/file_transcription_completed_webhook.rb +13 -0
  329. data/lib/wavix/types/file_transcription_response.rb +29 -0
  330. data/lib/wavix/types/file_transcription_response_language.rb +15 -0
  331. data/lib/wavix/types/file_transcription_response_status.rb +12 -0
  332. data/lib/wavix/types/financial_transaction.rb +24 -0
  333. data/lib/wavix/types/forbidden_error_response.rb +11 -0
  334. data/lib/wavix/types/inbound_call_destination.rb +22 -0
  335. data/lib/wavix/types/inbound_call_transport.rb +23 -0
  336. data/lib/wavix/types/inbound_message.rb +18 -0
  337. data/lib/wavix/types/invalid_recording.rb +12 -0
  338. data/lib/wavix/types/invoice.rb +16 -0
  339. data/lib/wavix/types/invoice_list_response.rb +13 -0
  340. data/lib/wavix/types/list_brand_evidence_response.rb +9 -0
  341. data/lib/wavix/types/list_sessions_response_item.rb +23 -0
  342. data/lib/wavix/types/message.rb +42 -0
  343. data/lib/wavix/types/message_body.rb +11 -0
  344. data/lib/wavix/types/message_create_request.rb +19 -0
  345. data/lib/wavix/types/message_delivery_status.rb +18 -0
  346. data/lib/wavix/types/message_list_response.rb +11 -0
  347. data/lib/wavix/types/message_response.rb +41 -0
  348. data/lib/wavix/types/messages_delivery_report.rb +32 -0
  349. data/lib/wavix/types/not_found_error_body.rb +11 -0
  350. data/lib/wavix/types/not_found_error_response.rb +11 -0
  351. data/lib/wavix/types/number.rb +63 -0
  352. data/lib/wavix/types/number_destination.rb +16 -0
  353. data/lib/wavix/types/number_document.rb +24 -0
  354. data/lib/wavix/types/number_list_response.rb +13 -0
  355. data/lib/wavix/types/number_status_updated_webhook.rb +15 -0
  356. data/lib/wavix/types/number_status_updated_webhook_status.rb +13 -0
  357. data/lib/wavix/types/number_validator_create_bulk_response.rb +13 -0
  358. data/lib/wavix/types/number_validator_create_bulk_response_request_id.rb +10 -0
  359. data/lib/wavix/types/on_call_event_payload.rb +12 -0
  360. data/lib/wavix/types/on_call_event_payload_type.rb +12 -0
  361. data/lib/wavix/types/opt_out.rb +11 -0
  362. data/lib/wavix/types/opt_out_item.rb +15 -0
  363. data/lib/wavix/types/opt_outs_list_response.rb +11 -0
  364. data/lib/wavix/types/pagination.rb +15 -0
  365. data/lib/wavix/types/phone_lookup_details.rb +13 -0
  366. data/lib/wavix/types/phone_number_validation_type.rb +13 -0
  367. data/lib/wavix/types/phone_validation_batch_response.rb +15 -0
  368. data/lib/wavix/types/phone_validation_batch_result_response.rb +15 -0
  369. data/lib/wavix/types/phone_validation_response.rb +41 -0
  370. data/lib/wavix/types/phone_validation_result_response.rb +42 -0
  371. data/lib/wavix/types/profile_config_response.rb +11 -0
  372. data/lib/wavix/types/profile_response.rb +31 -0
  373. data/lib/wavix/types/profile_response_company_info.rb +20 -0
  374. data/lib/wavix/types/profile_response_company_info_country.rb +12 -0
  375. data/lib/wavix/types/profile_response_company_info_industry.rb +23 -0
  376. data/lib/wavix/types/profile_response_default_destinations_item.rb +11 -0
  377. data/lib/wavix/types/record_not_found_error_response.rb +11 -0
  378. data/lib/wavix/types/recording.rb +22 -0
  379. data/lib/wavix/types/recording_deleted_error_response.rb +15 -0
  380. data/lib/wavix/types/region.rb +12 -0
  381. data/lib/wavix/types/region_list_response.rb +9 -0
  382. data/lib/wavix/types/send_messages_response.rb +41 -0
  383. data/lib/wavix/types/sender_id.rb +20 -0
  384. data/lib/wavix/types/sender_id_details.rb +19 -0
  385. data/lib/wavix/types/sender_id_list_response.rb +9 -0
  386. data/lib/wavix/types/sender_id_response.rb +19 -0
  387. data/lib/wavix/types/sender_id_response_type.rb +13 -0
  388. data/lib/wavix/types/sender_id_type.rb +12 -0
  389. data/lib/wavix/types/short_link_metrics_item.rb +27 -0
  390. data/lib/wavix/types/short_link_metrics_response.rb +11 -0
  391. data/lib/wavix/types/short_link_response.rb +9 -0
  392. data/lib/wavix/types/sip_trunk_create_request.rb +51 -0
  393. data/lib/wavix/types/sip_trunk_create_request_allowed_ips_item.rb +9 -0
  394. data/lib/wavix/types/sip_trunk_create_request_host_request.rb +11 -0
  395. data/lib/wavix/types/sip_trunk_list_response.rb +11 -0
  396. data/lib/wavix/types/sip_trunk_response.rb +59 -0
  397. data/lib/wavix/types/sip_trunk_summary.rb +42 -0
  398. data/lib/wavix/types/sip_trunk_summary_host_request.rb +12 -0
  399. data/lib/wavix/types/sub_accounts_list_response.rb +11 -0
  400. data/lib/wavix/types/sub_accounts_transactions_list_response.rb +11 -0
  401. data/lib/wavix/types/sub_accounts_transactions_list_response_transactions_item.rb +19 -0
  402. data/lib/wavix/types/sub_organization_response.rb +22 -0
  403. data/lib/wavix/types/sub_organization_response_default_destinations.rb +12 -0
  404. data/lib/wavix/types/sub_organization_response_status.rb +12 -0
  405. data/lib/wavix/types/submit_file_transcription_response.rb +13 -0
  406. data/lib/wavix/types/success_response.rb +9 -0
  407. data/lib/wavix/types/tcr_error_message.rb +11 -0
  408. data/lib/wavix/types/tcr_feedback.rb +9 -0
  409. data/lib/wavix/types/tcr_feedback_category.rb +18 -0
  410. data/lib/wavix/types/ten_dlc_brand.rb +57 -0
  411. data/lib/wavix/types/ten_dlc_brand_appeal.rb +21 -0
  412. data/lib/wavix/types/ten_dlc_brand_appeal_create_request.rb +14 -0
  413. data/lib/wavix/types/ten_dlc_brand_appeal_outcome.rb +14 -0
  414. data/lib/wavix/types/ten_dlc_brand_appeal_outcome_feedback.rb +10 -0
  415. data/lib/wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.rb +15 -0
  416. data/lib/wavix/types/ten_dlc_brand_create_request.rb +14 -0
  417. data/lib/wavix/types/ten_dlc_brand_create_request_entity_type.rb +14 -0
  418. data/lib/wavix/types/ten_dlc_brand_create_request_stock_exchange.rb +14 -0
  419. data/lib/wavix/types/ten_dlc_brand_create_request_stock_exchange_entity_type.rb +13 -0
  420. data/lib/wavix/types/ten_dlc_brand_create_request_vertical.rb +19 -0
  421. data/lib/wavix/types/ten_dlc_brand_create_request_zero.rb +10 -0
  422. data/lib/wavix/types/ten_dlc_brand_create_request_zero_entity_type.rb +11 -0
  423. data/lib/wavix/types/ten_dlc_brand_entity_type.rb +14 -0
  424. data/lib/wavix/types/ten_dlc_brand_evidence.rb +15 -0
  425. data/lib/wavix/types/ten_dlc_brand_identity_verification_status.rb +15 -0
  426. data/lib/wavix/types/ten_dlc_brand_list_response.rb +12 -0
  427. data/lib/wavix/types/ten_dlc_brand_list_response_pagination.rb +16 -0
  428. data/lib/wavix/types/ten_dlc_brand_qualification_result.rb +13 -0
  429. data/lib/wavix/types/ten_dlc_brand_status.rb +15 -0
  430. data/lib/wavix/types/ten_dlc_brand_vetting.rb +29 -0
  431. data/lib/wavix/types/ten_dlc_brand_vetting_appeal.rb +31 -0
  432. data/lib/wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome.rb +14 -0
  433. data/lib/wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome_feedback.rb +10 -0
  434. data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome.rb +13 -0
  435. data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome_feedback.rb +10 -0
  436. data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome_reason.rb +9 -0
  437. data/lib/wavix/types/ten_dlc_campaign.rb +85 -0
  438. data/lib/wavix/types/ten_dlc_campaign_list_response.rb +12 -0
  439. data/lib/wavix/types/ten_dlc_campaign_list_response_pagination.rb +16 -0
  440. data/lib/wavix/types/ten_dlc_campaign_nudge_request.rb +13 -0
  441. data/lib/wavix/types/ten_dlc_campaign_number.rb +11 -0
  442. data/lib/wavix/types/ten_dlc_campaign_number_list_response.rb +13 -0
  443. data/lib/wavix/types/ten_dlc_event_subscription.rb +12 -0
  444. data/lib/wavix/types/ten_dlcmno_metadata.rb +40 -0
  445. data/lib/wavix/types/transaction_status.rb +14 -0
  446. data/lib/wavix/types/transaction_type.rb +23 -0
  447. data/lib/wavix/types/transcript_turn.rb +19 -0
  448. data/lib/wavix/types/transcription_filter.rb +13 -0
  449. data/lib/wavix/types/transcription_filter_agent.rb +14 -0
  450. data/lib/wavix/types/transcription_filter_any.rb +14 -0
  451. data/lib/wavix/types/transcription_filter_client.rb +14 -0
  452. data/lib/wavix/types/transcription_language.rb +15 -0
  453. data/lib/wavix/types/transcription_reference.rb +11 -0
  454. data/lib/wavix/types/transcription_status.rb +12 -0
  455. data/lib/wavix/types/tts_language.rb +14 -0
  456. data/lib/wavix/types/tts_voice_id.rb +26 -0
  457. data/lib/wavix/types/two_factor_verification_check_response.rb +9 -0
  458. data/lib/wavix/types/two_factor_verification_event.rb +17 -0
  459. data/lib/wavix/types/two_factor_verification_resend_response.rb +15 -0
  460. data/lib/wavix/types/two_factor_verification_response.rb +21 -0
  461. data/lib/wavix/types/unauthorized_error_response.rb +13 -0
  462. data/lib/wavix/types/unprocessable_entity_error_body.rb +11 -0
  463. data/lib/wavix/types/validation_error_response.rb +11 -0
  464. data/lib/wavix/types/voice_campaign_create_request.rb +9 -0
  465. data/lib/wavix/types/voice_campaign_response.rb +16 -0
  466. data/lib/wavix/types/voice_campaigns_create_response.rb +9 -0
  467. data/lib/wavix/types/voice_campaigns_create_response_voice_campaign.rb +17 -0
  468. data/lib/wavix/types/voice_campaigns_get_response.rb +9 -0
  469. data/lib/wavix/types/voice_campaigns_get_response_voice_campaign.rb +17 -0
  470. data/lib/wavix/types/web_rtc_token.rb +16 -0
  471. data/lib/wavix/types/web_rtc_token_response.rb +17 -0
  472. data/lib/wavix/types/web_rtc_tokens_list_response.rb +12 -0
  473. data/lib/wavix/version.rb +5 -0
  474. data/lib/wavix/voice_campaigns/client.rb +83 -0
  475. data/lib/wavix/voice_campaigns/types/create_voice_campaigns_request.rb +11 -0
  476. data/lib/wavix/voice_campaigns/types/get_voice_campaigns_request.rb +11 -0
  477. data/lib/wavix/webrtc/client.rb +19 -0
  478. data/lib/wavix/webrtc/tokens/client.rb +191 -0
  479. data/lib/wavix/webrtc/tokens/types/delete_tokens_request.rb +13 -0
  480. data/lib/wavix/webrtc/tokens/types/get_tokens_request.rb +13 -0
  481. data/lib/wavix/webrtc/tokens/types/web_rtc_token_create_request.rb +17 -0
  482. data/lib/wavix/webrtc/tokens/types/web_rtc_token_update_request.rb +15 -0
  483. data/lib/wavix.rb +477 -0
  484. data/reference.md +10623 -0
  485. metadata +526 -0
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class DeleteBrandEvidenceRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class DeleteBrandEvidenceResponse < Internal::Types::Model
8
+ field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class GetBrandEvidenceRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class ListBrandEvidenceRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class UploadBrandEvidenceRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandEvidence
6
+ module Types
7
+ class UploadBrandEvidenceResponse < Internal::Types::Model
8
+ field :file_name, -> { String }, optional: false, nullable: false
9
+
10
+ field :mime_type, -> { String }, optional: false, nullable: false
11
+
12
+ field :url, -> { String }, optional: false, nullable: false
13
+
14
+ field :uuid, -> { String }, optional: false, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettingAppeals
6
+ class Client
7
+ # @param client [Wavix::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # Returns the external vetting appeals for the 10DLC Brand identified by `brand_id`.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String] :brand_id
24
+ #
25
+ # @return [Array[Wavix::Types::TenDlcBrandVettingAppeal]]
26
+ def list(request_options: {}, **params)
27
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
28
+ request = Wavix::Internal::JSON::Request.new(
29
+ base_url: request_options[:base_url],
30
+ method: "GET",
31
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/vettings/appeals",
32
+ request_options: request_options
33
+ )
34
+ begin
35
+ response = @client.send(request)
36
+ rescue Net::HTTPRequestTimeout
37
+ raise Wavix::Errors::TimeoutError
38
+ end
39
+ code = response.code.to_i
40
+ return if code.between?(200, 299)
41
+
42
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
43
+ raise error_class.new(response.body, code: code)
44
+ end
45
+
46
+ # Submits an appeal for an external vetting of the 10DLC Brand identified by `brand_id`.
47
+ #
48
+ # @param request_options [Hash]
49
+ # @param params [Wavix::TenDlc::BrandVettingAppeals::Types::TenDlcBrandVettingAppealCreateRequest]
50
+ # @option request_options [String] :base_url
51
+ # @option request_options [Hash{String => Object}] :additional_headers
52
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
53
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
54
+ # @option request_options [Integer] :timeout_in_seconds
55
+ # @option params [String] :brand_id
56
+ #
57
+ # @return [Wavix::TenDlc::BrandVettingAppeals::Types::CreateBrandVettingAppealsResponse]
58
+ def create(request_options: {}, **params)
59
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
60
+ request_data = Wavix::TenDlc::BrandVettingAppeals::Types::TenDlcBrandVettingAppealCreateRequest.new(params).to_h
61
+ non_body_param_names = %w[brand_id]
62
+ body = request_data.except(*non_body_param_names)
63
+
64
+ request = Wavix::Internal::JSON::Request.new(
65
+ base_url: request_options[:base_url],
66
+ method: "POST",
67
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/vettings/appeals",
68
+ body: body,
69
+ request_options: request_options
70
+ )
71
+ begin
72
+ response = @client.send(request)
73
+ rescue Net::HTTPRequestTimeout
74
+ raise Wavix::Errors::TimeoutError
75
+ end
76
+ code = response.code.to_i
77
+ if code.between?(200, 299)
78
+ Wavix::TenDlc::BrandVettingAppeals::Types::CreateBrandVettingAppealsResponse.load(response.body)
79
+ else
80
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
81
+ raise error_class.new(response.body, code: code)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettingAppeals
6
+ module Types
7
+ class CreateBrandVettingAppealsResponse < Internal::Types::Model
8
+ field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettingAppeals
6
+ module Types
7
+ class ListBrandVettingAppealsRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettingAppeals
6
+ module Types
7
+ class TenDlcBrandVettingAppealCreateRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :appeal_categories, -> { Internal::Types::Array[String] }, optional: false, nullable: false
11
+
12
+ field :evidence, -> { Internal::Types::Array[String] }, optional: false, nullable: false
13
+
14
+ field :explanation, -> { String }, optional: true, nullable: false
15
+
16
+ field :evp_id, -> { String }, optional: true, nullable: false
17
+
18
+ field :vetting_id, -> { String }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettings
6
+ class Client
7
+ # @param client [Wavix::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # Returns the external vettings for the 10DLC Brand identified by `brand_id`.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String] :brand_id
24
+ #
25
+ # @return [Array[Wavix::Types::TenDlcBrandVetting]]
26
+ def list(request_options: {}, **params)
27
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
28
+ request = Wavix::Internal::JSON::Request.new(
29
+ base_url: request_options[:base_url],
30
+ method: "GET",
31
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/vettings",
32
+ request_options: request_options
33
+ )
34
+ begin
35
+ response = @client.send(request)
36
+ rescue Net::HTTPRequestTimeout
37
+ raise Wavix::Errors::TimeoutError
38
+ end
39
+ code = response.code.to_i
40
+ return if code.between?(200, 299)
41
+
42
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
43
+ raise error_class.new(response.body, code: code)
44
+ end
45
+
46
+ # Requests external vetting for a 10DLC Brand. Supported providers: `AEGIS`, `CV`, `WMC`. Supported classes:
47
+ # `STANDARD`, `ENHANCED`.
48
+ #
49
+ # @param request_options [Hash]
50
+ # @param params [Wavix::TenDlc::BrandVettings::Types::TenDlcBrandVettingCreateRequest]
51
+ # @option request_options [String] :base_url
52
+ # @option request_options [Hash{String => Object}] :additional_headers
53
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
54
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
55
+ # @option request_options [Integer] :timeout_in_seconds
56
+ # @option params [String] :brand_id
57
+ #
58
+ # @return [Wavix::Types::TenDlcBrandVetting]
59
+ def create(request_options: {}, **params)
60
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
61
+ request_data = Wavix::TenDlc::BrandVettings::Types::TenDlcBrandVettingCreateRequest.new(params).to_h
62
+ non_body_param_names = %w[brand_id]
63
+ body = request_data.except(*non_body_param_names)
64
+
65
+ request = Wavix::Internal::JSON::Request.new(
66
+ base_url: request_options[:base_url],
67
+ method: "POST",
68
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/vettings",
69
+ body: body,
70
+ request_options: request_options
71
+ )
72
+ begin
73
+ response = @client.send(request)
74
+ rescue Net::HTTPRequestTimeout
75
+ raise Wavix::Errors::TimeoutError
76
+ end
77
+ code = response.code.to_i
78
+ if code.between?(200, 299)
79
+ Wavix::Types::TenDlcBrandVetting.load(response.body)
80
+ else
81
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
82
+ raise error_class.new(response.body, code: code)
83
+ end
84
+ end
85
+
86
+ # Imports an existing external vetting record into the 10DLC Brand identified by `brand_id`.
87
+ #
88
+ # @param request_options [Hash]
89
+ # @param params [Wavix::TenDlc::BrandVettings::Types::TenDlcBrandVettingImportRequest]
90
+ # @option request_options [String] :base_url
91
+ # @option request_options [Hash{String => Object}] :additional_headers
92
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
93
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
94
+ # @option request_options [Integer] :timeout_in_seconds
95
+ # @option params [String] :brand_id
96
+ #
97
+ # @return [Wavix::Types::TenDlcBrandVetting]
98
+ def import(request_options: {}, **params)
99
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
100
+ request_data = Wavix::TenDlc::BrandVettings::Types::TenDlcBrandVettingImportRequest.new(params).to_h
101
+ non_body_param_names = %w[brand_id]
102
+ body = request_data.except(*non_body_param_names)
103
+
104
+ request = Wavix::Internal::JSON::Request.new(
105
+ base_url: request_options[:base_url],
106
+ method: "PUT",
107
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/vettings",
108
+ body: body,
109
+ request_options: request_options
110
+ )
111
+ begin
112
+ response = @client.send(request)
113
+ rescue Net::HTTPRequestTimeout
114
+ raise Wavix::Errors::TimeoutError
115
+ end
116
+ code = response.code.to_i
117
+ if code.between?(200, 299)
118
+ Wavix::Types::TenDlcBrandVetting.load(response.body)
119
+ else
120
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
121
+ raise error_class.new(response.body, code: code)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettings
6
+ module Types
7
+ class ListBrandVettingsRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettings
6
+ module Types
7
+ class TenDlcBrandVettingCreateRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :evp_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :vetting_class, -> { String }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module BrandVettings
6
+ module Types
7
+ class TenDlcBrandVettingImportRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :evp_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :vetting_id, -> { String }, optional: false, nullable: false
13
+
14
+ field :vetting_token, -> { String }, optional: false, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,257 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module Brands
6
+ class Client
7
+ # @param client [Wavix::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # Returns a paginated list of 10DLC Brands for the authenticated account, filtered by date, name, legal name,
15
+ # and status.
16
+ #
17
+ # @param request_options [Hash]
18
+ # @param params [Hash]
19
+ # @option request_options [String] :base_url
20
+ # @option request_options [Hash{String => Object}] :additional_headers
21
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
22
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
23
+ # @option request_options [Integer] :timeout_in_seconds
24
+ # @option params [String, nil] :dba_name
25
+ # @option params [String, nil] :company_name
26
+ # @option params [String, nil] :entity_type
27
+ # @option params [String, nil] :status
28
+ # @option params [String, nil] :country
29
+ # @option params [Boolean, nil] :show_deleted
30
+ # @option params [String, nil] :ein_taxid
31
+ # @option params [Boolean, nil] :mock
32
+ # @option params [String, nil] :created_before
33
+ # @option params [String, nil] :created_after
34
+ # @option params [Integer, nil] :page
35
+ # @option params [Integer, nil] :per_page
36
+ #
37
+ # @return [Wavix::TenDlc::Brands::Types::ListBrandsResponse]
38
+ def list(request_options: {}, **params)
39
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
40
+ query_params = {}
41
+ query_params["dba_name"] = params[:dba_name] if params.key?(:dba_name)
42
+ query_params["company_name"] = params[:company_name] if params.key?(:company_name)
43
+ query_params["entity_type"] = params[:entity_type] if params.key?(:entity_type)
44
+ query_params["status"] = params[:status] if params.key?(:status)
45
+ query_params["country"] = params[:country] if params.key?(:country)
46
+ query_params["show_deleted"] = params[:show_deleted] if params.key?(:show_deleted)
47
+ query_params["ein_taxid"] = params[:ein_taxid] if params.key?(:ein_taxid)
48
+ query_params["mock"] = params[:mock] if params.key?(:mock)
49
+ query_params["created_before"] = params[:created_before] if params.key?(:created_before)
50
+ query_params["created_after"] = params[:created_after] if params.key?(:created_after)
51
+ query_params["page"] = params[:page] if params.key?(:page)
52
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
53
+
54
+ request = Wavix::Internal::JSON::Request.new(
55
+ base_url: request_options[:base_url],
56
+ method: "GET",
57
+ path: "v3/10dlc/brands",
58
+ query: query_params,
59
+ request_options: request_options
60
+ )
61
+ begin
62
+ response = @client.send(request)
63
+ rescue Net::HTTPRequestTimeout
64
+ raise Wavix::Errors::TimeoutError
65
+ end
66
+ code = response.code.to_i
67
+ if code.between?(200, 299)
68
+ Wavix::TenDlc::Brands::Types::ListBrandsResponse.load(response.body)
69
+ else
70
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
71
+ raise error_class.new(response.body, code: code)
72
+ end
73
+ end
74
+
75
+ # Registers a 10DLC Brand. TCR automatically verifies the brand identity. Only brands with `VERIFIED` or
76
+ # `VETTED_VERIFIED` identity status can register 10DLC Campaigns.
77
+ #
78
+ # @param request_options [Hash]
79
+ # @param params [Wavix::Types::TenDlcBrandCreateRequest]
80
+ # @option request_options [String] :base_url
81
+ # @option request_options [Hash{String => Object}] :additional_headers
82
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
83
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
84
+ # @option request_options [Integer] :timeout_in_seconds
85
+ #
86
+ # @return [Wavix::TenDlc::Brands::Types::CreateBrandsResponse]
87
+ def create(request_options: {}, **params)
88
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
89
+ request = Wavix::Internal::JSON::Request.new(
90
+ base_url: request_options[:base_url],
91
+ method: "POST",
92
+ path: "v3/10dlc/brands",
93
+ body: Wavix::Types::TenDlcBrandCreateRequest.new(params).to_h,
94
+ request_options: request_options
95
+ )
96
+ begin
97
+ response = @client.send(request)
98
+ rescue Net::HTTPRequestTimeout
99
+ raise Wavix::Errors::TimeoutError
100
+ end
101
+ code = response.code.to_i
102
+ if code.between?(200, 299)
103
+ Wavix::TenDlc::Brands::Types::CreateBrandsResponse.load(response.body)
104
+ else
105
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
106
+ raise error_class.new(response.body, code: code)
107
+ end
108
+ end
109
+
110
+ # Returns the 10DLC Brand identified by `brand_id`.
111
+ #
112
+ # @param request_options [Hash]
113
+ # @param params [Hash]
114
+ # @option request_options [String] :base_url
115
+ # @option request_options [Hash{String => Object}] :additional_headers
116
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
117
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
118
+ # @option request_options [Integer] :timeout_in_seconds
119
+ # @option params [String] :brand_id
120
+ #
121
+ # @return [Wavix::TenDlc::Brands::Types::GetBrandsResponse]
122
+ def get(request_options: {}, **params)
123
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
124
+ request = Wavix::Internal::JSON::Request.new(
125
+ base_url: request_options[:base_url],
126
+ method: "GET",
127
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}",
128
+ request_options: request_options
129
+ )
130
+ begin
131
+ response = @client.send(request)
132
+ rescue Net::HTTPRequestTimeout
133
+ raise Wavix::Errors::TimeoutError
134
+ end
135
+ code = response.code.to_i
136
+ if code.between?(200, 299)
137
+ Wavix::TenDlc::Brands::Types::GetBrandsResponse.load(response.body)
138
+ else
139
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
140
+ raise error_class.new(response.body, code: code)
141
+ end
142
+ end
143
+
144
+ # Updates the 10DLC Brand identified by `brand_id`. Changing identity fields, including `ein_taxid`,
145
+ # `ein_taxid_country`, and `entity_type`, resets the Brand status to `UNVERIFIED` and triggers automatic
146
+ # re-submission. Brands in `VETTED_VERIFIED` status or with active Campaigns cannot be updated.
147
+ #
148
+ # @param request_options [Hash]
149
+ # @param params [Wavix::TenDlc::Brands::Types::TenDlcBrandUpdateRequest]
150
+ # @option request_options [String] :base_url
151
+ # @option request_options [Hash{String => Object}] :additional_headers
152
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
153
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
154
+ # @option request_options [Integer] :timeout_in_seconds
155
+ # @option params [String] :brand_id
156
+ #
157
+ # @return [Wavix::TenDlc::Brands::Types::UpdateBrandsResponse]
158
+ def update(request_options: {}, **params)
159
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
160
+ request_data = Wavix::TenDlc::Brands::Types::TenDlcBrandUpdateRequest.new(params).to_h
161
+ non_body_param_names = %w[brand_id]
162
+ body = request_data.except(*non_body_param_names)
163
+
164
+ request = Wavix::Internal::JSON::Request.new(
165
+ base_url: request_options[:base_url],
166
+ method: "PUT",
167
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}",
168
+ body: body,
169
+ request_options: request_options
170
+ )
171
+ begin
172
+ response = @client.send(request)
173
+ rescue Net::HTTPRequestTimeout
174
+ raise Wavix::Errors::TimeoutError
175
+ end
176
+ code = response.code.to_i
177
+ if code.between?(200, 299)
178
+ Wavix::TenDlc::Brands::Types::UpdateBrandsResponse.load(response.body)
179
+ else
180
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
181
+ raise error_class.new(response.body, code: code)
182
+ end
183
+ end
184
+
185
+ # Deletes a 10DLC Brand. Brands with active campaigns cannot be deleted.
186
+ #
187
+ # @param request_options [Hash]
188
+ # @param params [Hash]
189
+ # @option request_options [String] :base_url
190
+ # @option request_options [Hash{String => Object}] :additional_headers
191
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
192
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
193
+ # @option request_options [Integer] :timeout_in_seconds
194
+ # @option params [String] :brand_id
195
+ #
196
+ # @return [Wavix::TenDlc::Brands::Types::DeleteBrandsResponse]
197
+ def delete(request_options: {}, **params)
198
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
199
+ request = Wavix::Internal::JSON::Request.new(
200
+ base_url: request_options[:base_url],
201
+ method: "DELETE",
202
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}",
203
+ request_options: request_options
204
+ )
205
+ begin
206
+ response = @client.send(request)
207
+ rescue Net::HTTPRequestTimeout
208
+ raise Wavix::Errors::TimeoutError
209
+ end
210
+ code = response.code.to_i
211
+ if code.between?(200, 299)
212
+ Wavix::TenDlc::Brands::Types::DeleteBrandsResponse.load(response.body)
213
+ else
214
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
215
+ raise error_class.new(response.body, code: code)
216
+ end
217
+ end
218
+
219
+ # Returns the qualification results for a 10DLC Brand use case. Includes MNO-specific attributes, restrictions,
220
+ # and fees.
221
+ #
222
+ # @param request_options [Hash]
223
+ # @param params [Hash]
224
+ # @option request_options [String] :base_url
225
+ # @option request_options [Hash{String => Object}] :additional_headers
226
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
227
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
228
+ # @option request_options [Integer] :timeout_in_seconds
229
+ # @option params [String] :brand_id
230
+ # @option params [Wavix::TenDlc::Brands::Types::QualifyUsecaseBrandsRequestUseCase] :use_case
231
+ #
232
+ # @return [Wavix::TenDlc::Brands::Types::QualifyUsecaseBrandsResponse]
233
+ def qualify_usecase(request_options: {}, **params)
234
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
235
+ request = Wavix::Internal::JSON::Request.new(
236
+ base_url: request_options[:base_url],
237
+ method: "GET",
238
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/usecases/#{URI.encode_uri_component(params[:use_case].to_s)}",
239
+ request_options: request_options
240
+ )
241
+ begin
242
+ response = @client.send(request)
243
+ rescue Net::HTTPRequestTimeout
244
+ raise Wavix::Errors::TimeoutError
245
+ end
246
+ code = response.code.to_i
247
+ if code.between?(200, 299)
248
+ Wavix::TenDlc::Brands::Types::QualifyUsecaseBrandsResponse.load(response.body)
249
+ else
250
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
251
+ raise error_class.new(response.body, code: code)
252
+ end
253
+ end
254
+ end
255
+ end
256
+ end
257
+ end