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,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
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
+ # Links a phone number to a 10DLC Campaign. Wavix automatically creates a Sender ID once the number is approved.
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
+ # @option params [String] :campaign_id
25
+ # @option params [String] :number
26
+ #
27
+ # @return [Wavix::TenDlc::CampaignNumbers::Types::LinkCampaignNumbersResponse]
28
+ def link(request_options: {}, **params)
29
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
30
+ request = Wavix::Internal::JSON::Request.new(
31
+ base_url: request_options[:base_url],
32
+ method: "POST",
33
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}/numbers/#{URI.encode_uri_component(params[:number].to_s)}",
34
+ request_options: request_options
35
+ )
36
+ begin
37
+ response = @client.send(request)
38
+ rescue Net::HTTPRequestTimeout
39
+ raise Wavix::Errors::TimeoutError
40
+ end
41
+ code = response.code.to_i
42
+ if code.between?(200, 299)
43
+ Wavix::TenDlc::CampaignNumbers::Types::LinkCampaignNumbersResponse.load(response.body)
44
+ else
45
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
46
+ raise error_class.new(response.body, code: code)
47
+ end
48
+ end
49
+
50
+ # Unlinks a phone number from a 10DLC Campaign. The associated Sender ID is also deleted.
51
+ #
52
+ # @param request_options [Hash]
53
+ # @param params [Hash]
54
+ # @option request_options [String] :base_url
55
+ # @option request_options [Hash{String => Object}] :additional_headers
56
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
57
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
58
+ # @option request_options [Integer] :timeout_in_seconds
59
+ # @option params [String] :brand_id
60
+ # @option params [String] :campaign_id
61
+ # @option params [String] :number
62
+ #
63
+ # @return [Wavix::TenDlc::CampaignNumbers::Types::UnlinkCampaignNumbersResponse]
64
+ def unlink(request_options: {}, **params)
65
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
66
+ request = Wavix::Internal::JSON::Request.new(
67
+ base_url: request_options[:base_url],
68
+ method: "DELETE",
69
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}/numbers/#{URI.encode_uri_component(params[:number].to_s)}",
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::TenDlc::CampaignNumbers::Types::UnlinkCampaignNumbersResponse.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
+ # Returns the phone numbers linked to the 10DLC Campaign identified by `campaign_id`.
87
+ #
88
+ # @param request_options [Hash]
89
+ # @param params [Hash]
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
+ # @option params [String] :campaign_id
97
+ #
98
+ # @return [Wavix::TenDlc::CampaignNumbers::Types::ListCampaignNumbersResponse]
99
+ def list(request_options: {}, **params)
100
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
101
+ request = Wavix::Internal::JSON::Request.new(
102
+ base_url: request_options[:base_url],
103
+ method: "GET",
104
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}/numbers",
105
+ request_options: request_options
106
+ )
107
+ begin
108
+ response = @client.send(request)
109
+ rescue Net::HTTPRequestTimeout
110
+ raise Wavix::Errors::TimeoutError
111
+ end
112
+ code = response.code.to_i
113
+ if code.between?(200, 299)
114
+ Wavix::TenDlc::CampaignNumbers::Types::ListCampaignNumbersResponse.load(response.body)
115
+ else
116
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
117
+ raise error_class.new(response.body, code: code)
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
6
+ module Types
7
+ class LinkCampaignNumbersRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :number, -> { String }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
6
+ module Types
7
+ class LinkCampaignNumbersResponse < 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 CampaignNumbers
6
+ module Types
7
+ class ListCampaignNumbersRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
6
+ module Types
7
+ class ListCampaignNumbersResponse < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :numbers, -> { Internal::Types::Array[Wavix::Types::TenDlcCampaignNumber] }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
6
+ module Types
7
+ class UnlinkCampaignNumbersRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :number, -> { String }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module CampaignNumbers
6
+ module Types
7
+ class UnlinkCampaignNumbersResponse < 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,316 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module Campaigns
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 Campaigns for the authenticated account, filtered by date, status, and use
15
+ # case.
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] :name
25
+ # @option params [String, nil] :usecase
26
+ # @option params [String, nil] :status
27
+ # @option params [Boolean, nil] :mock
28
+ # @option params [String, nil] :created_before
29
+ # @option params [String, nil] :created_after
30
+ # @option params [Integer, nil] :page
31
+ # @option params [Integer, nil] :per_page
32
+ #
33
+ # @return [Wavix::TenDlc::Campaigns::Types::ListCampaignsResponse]
34
+ def list(request_options: {}, **params)
35
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
36
+ query_params = {}
37
+ query_params["name"] = params[:name] if params.key?(:name)
38
+ query_params["usecase"] = params[:usecase] if params.key?(:usecase)
39
+ query_params["status"] = params[:status] if params.key?(:status)
40
+ query_params["mock"] = params[:mock] if params.key?(:mock)
41
+ query_params["created_before"] = params[:created_before] if params.key?(:created_before)
42
+ query_params["created_after"] = params[:created_after] if params.key?(:created_after)
43
+ query_params["page"] = params[:page] if params.key?(:page)
44
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
45
+
46
+ request = Wavix::Internal::JSON::Request.new(
47
+ base_url: request_options[:base_url],
48
+ method: "GET",
49
+ path: "v3/10dlc/brands/campaigns",
50
+ query: query_params,
51
+ request_options: request_options
52
+ )
53
+ begin
54
+ response = @client.send(request)
55
+ rescue Net::HTTPRequestTimeout
56
+ raise Wavix::Errors::TimeoutError
57
+ end
58
+ code = response.code.to_i
59
+ if code.between?(200, 299)
60
+ Wavix::TenDlc::Campaigns::Types::ListCampaignsResponse.load(response.body)
61
+ else
62
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
63
+ raise error_class.new(response.body, code: code)
64
+ end
65
+ end
66
+
67
+ # Returns a paginated list of 10DLC Campaigns associated with the 10DLC Brand identified by `brand_id`.
68
+ #
69
+ # @param request_options [Hash]
70
+ # @param params [Hash]
71
+ # @option request_options [String] :base_url
72
+ # @option request_options [Hash{String => Object}] :additional_headers
73
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
74
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
75
+ # @option request_options [Integer] :timeout_in_seconds
76
+ # @option params [String] :brand_id
77
+ # @option params [String, nil] :name
78
+ # @option params [String, nil] :usecase
79
+ # @option params [String, nil] :status
80
+ # @option params [Boolean, nil] :mock
81
+ # @option params [String, nil] :created_before
82
+ # @option params [String, nil] :created_after
83
+ # @option params [Integer, nil] :page
84
+ # @option params [Integer, nil] :per_page
85
+ #
86
+ # @return [Wavix::TenDlc::Campaigns::Types::ListByBrandCampaignsResponse]
87
+ def list_by_brand(request_options: {}, **params)
88
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
89
+ query_params = {}
90
+ query_params["name"] = params[:name] if params.key?(:name)
91
+ query_params["usecase"] = params[:usecase] if params.key?(:usecase)
92
+ query_params["status"] = params[:status] if params.key?(:status)
93
+ query_params["mock"] = params[:mock] if params.key?(:mock)
94
+ query_params["created_before"] = params[:created_before] if params.key?(:created_before)
95
+ query_params["created_after"] = params[:created_after] if params.key?(:created_after)
96
+ query_params["page"] = params[:page] if params.key?(:page)
97
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
98
+
99
+ request = Wavix::Internal::JSON::Request.new(
100
+ base_url: request_options[:base_url],
101
+ method: "GET",
102
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns",
103
+ query: query_params,
104
+ request_options: request_options
105
+ )
106
+ begin
107
+ response = @client.send(request)
108
+ rescue Net::HTTPRequestTimeout
109
+ raise Wavix::Errors::TimeoutError
110
+ end
111
+ code = response.code.to_i
112
+ if code.between?(200, 299)
113
+ Wavix::TenDlc::Campaigns::Types::ListByBrandCampaignsResponse.load(response.body)
114
+ else
115
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
116
+ raise error_class.new(response.body, code: code)
117
+ end
118
+ end
119
+
120
+ # Registers a 10DLC Campaign under the 10DLC Brand identified by `brand_id`. The Brand must have a verified
121
+ # identity status.
122
+ #
123
+ # @param request_options [Hash]
124
+ # @param params [Wavix::TenDlc::Campaigns::Types::TenDlcCampaignCreateRequest]
125
+ # @option request_options [String] :base_url
126
+ # @option request_options [Hash{String => Object}] :additional_headers
127
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
128
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
129
+ # @option request_options [Integer] :timeout_in_seconds
130
+ # @option params [String] :brand_id
131
+ #
132
+ # @return [Wavix::TenDlc::Campaigns::Types::CreateCampaignsResponse]
133
+ def create(request_options: {}, **params)
134
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
135
+ request_data = Wavix::TenDlc::Campaigns::Types::TenDlcCampaignCreateRequest.new(params).to_h
136
+ non_body_param_names = %w[brand_id]
137
+ body = request_data.except(*non_body_param_names)
138
+
139
+ request = Wavix::Internal::JSON::Request.new(
140
+ base_url: request_options[:base_url],
141
+ method: "POST",
142
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns",
143
+ body: body,
144
+ request_options: request_options
145
+ )
146
+ begin
147
+ response = @client.send(request)
148
+ rescue Net::HTTPRequestTimeout
149
+ raise Wavix::Errors::TimeoutError
150
+ end
151
+ code = response.code.to_i
152
+ if code.between?(200, 299)
153
+ Wavix::TenDlc::Campaigns::Types::CreateCampaignsResponse.load(response.body)
154
+ else
155
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
156
+ raise error_class.new(response.body, code: code)
157
+ end
158
+ end
159
+
160
+ # Returns the 10DLC Campaign identified by `campaign_id` under the Brand identified by `brand_id`.
161
+ #
162
+ # @param request_options [Hash]
163
+ # @param params [Hash]
164
+ # @option request_options [String] :base_url
165
+ # @option request_options [Hash{String => Object}] :additional_headers
166
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
167
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
168
+ # @option request_options [Integer] :timeout_in_seconds
169
+ # @option params [String] :brand_id
170
+ # @option params [String] :campaign_id
171
+ #
172
+ # @return [Wavix::TenDlc::Campaigns::Types::GetCampaignsResponse]
173
+ def get(request_options: {}, **params)
174
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
175
+ request = Wavix::Internal::JSON::Request.new(
176
+ base_url: request_options[:base_url],
177
+ method: "GET",
178
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}",
179
+ request_options: request_options
180
+ )
181
+ begin
182
+ response = @client.send(request)
183
+ rescue Net::HTTPRequestTimeout
184
+ raise Wavix::Errors::TimeoutError
185
+ end
186
+ code = response.code.to_i
187
+ if code.between?(200, 299)
188
+ Wavix::TenDlc::Campaigns::Types::GetCampaignsResponse.load(response.body)
189
+ else
190
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
191
+ raise error_class.new(response.body, code: code)
192
+ end
193
+ end
194
+
195
+ # Updates the 10DLC Campaign identified by `campaign_id`. Only the provided fields are changed.
196
+ #
197
+ # @param request_options [Hash]
198
+ # @param params [Wavix::TenDlc::Campaigns::Types::TenDlcCampaignUpdateRequest]
199
+ # @option request_options [String] :base_url
200
+ # @option request_options [Hash{String => Object}] :additional_headers
201
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
202
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
203
+ # @option request_options [Integer] :timeout_in_seconds
204
+ # @option params [String] :brand_id
205
+ # @option params [String] :campaign_id
206
+ #
207
+ # @return [Wavix::TenDlc::Campaigns::Types::UpdateCampaignsResponse]
208
+ def update(request_options: {}, **params)
209
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
210
+ request_data = Wavix::TenDlc::Campaigns::Types::TenDlcCampaignUpdateRequest.new(params).to_h
211
+ non_body_param_names = %w[brand_id campaign_id]
212
+ body = request_data.except(*non_body_param_names)
213
+
214
+ request = Wavix::Internal::JSON::Request.new(
215
+ base_url: request_options[:base_url],
216
+ method: "PUT",
217
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}",
218
+ body: body,
219
+ request_options: request_options
220
+ )
221
+ begin
222
+ response = @client.send(request)
223
+ rescue Net::HTTPRequestTimeout
224
+ raise Wavix::Errors::TimeoutError
225
+ end
226
+ code = response.code.to_i
227
+ if code.between?(200, 299)
228
+ Wavix::TenDlc::Campaigns::Types::UpdateCampaignsResponse.load(response.body)
229
+ else
230
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
231
+ raise error_class.new(response.body, code: code)
232
+ end
233
+ end
234
+
235
+ # Deletes a 10DLC Campaign. Associated phone numbers cannot be used as Sender IDs once the Campaign is deleted.
236
+ #
237
+ # @param request_options [Hash]
238
+ # @param params [Hash]
239
+ # @option request_options [String] :base_url
240
+ # @option request_options [Hash{String => Object}] :additional_headers
241
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
242
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
243
+ # @option request_options [Integer] :timeout_in_seconds
244
+ # @option params [String] :brand_id
245
+ # @option params [String] :campaign_id
246
+ #
247
+ # @return [Wavix::TenDlc::Campaigns::Types::DeleteCampaignsResponse]
248
+ def delete(request_options: {}, **params)
249
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
250
+ request = Wavix::Internal::JSON::Request.new(
251
+ base_url: request_options[:base_url],
252
+ method: "DELETE",
253
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}",
254
+ request_options: request_options
255
+ )
256
+ begin
257
+ response = @client.send(request)
258
+ rescue Net::HTTPRequestTimeout
259
+ raise Wavix::Errors::TimeoutError
260
+ end
261
+ code = response.code.to_i
262
+ if code.between?(200, 299)
263
+ Wavix::TenDlc::Campaigns::Types::DeleteCampaignsResponse.load(response.body)
264
+ else
265
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
266
+ raise error_class.new(response.body, code: code)
267
+ end
268
+ end
269
+
270
+ # Requests action on a pending or rejected 10DLC Campaign. Use `nudge_intent` to specify the action:
271
+ # - `REVIEW`: Request review for a pending Campaign. - `APPEAL_REJECTION`: Appeal a rejected Campaign.
272
+ # Note:
273
+ # - The Campaign must be at least 72 hours old.
274
+ # - Only one nudge request per Campaign is allowed every 24 hours.
275
+ #
276
+ # @param request_options [Hash]
277
+ # @param params [Wavix::TenDlc::Campaigns::Types::NudgeCampaignsRequest]
278
+ # @option request_options [String] :base_url
279
+ # @option request_options [Hash{String => Object}] :additional_headers
280
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
281
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
282
+ # @option request_options [Integer] :timeout_in_seconds
283
+ # @option params [String] :brand_id
284
+ # @option params [String] :campaign_id
285
+ #
286
+ # @return [Wavix::Types::SuccessResponse]
287
+ def nudge(request_options: {}, **params)
288
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
289
+ request_data = Wavix::TenDlc::Campaigns::Types::NudgeCampaignsRequest.new(params).to_h
290
+ non_body_param_names = %w[brand_id campaign_id]
291
+ body = request_data.except(*non_body_param_names)
292
+
293
+ request = Wavix::Internal::JSON::Request.new(
294
+ base_url: request_options[:base_url],
295
+ method: "POST",
296
+ path: "v3/10dlc/brands/#{URI.encode_uri_component(params[:brand_id].to_s)}/campaigns/#{URI.encode_uri_component(params[:campaign_id].to_s)}/nudge",
297
+ body: body,
298
+ request_options: request_options
299
+ )
300
+ begin
301
+ response = @client.send(request)
302
+ rescue Net::HTTPRequestTimeout
303
+ raise Wavix::Errors::TimeoutError
304
+ end
305
+ code = response.code.to_i
306
+ if code.between?(200, 299)
307
+ Wavix::Types::SuccessResponse.load(response.body)
308
+ else
309
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
310
+ raise error_class.new(response.body, code: code)
311
+ end
312
+ end
313
+ end
314
+ end
315
+ end
316
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module Campaigns
6
+ module Types
7
+ # Represents a 10DLC campaign registered under a Brand. A Campaign defines the messaging use case, opt-in and
8
+ # opt-out flows, and the phone numbers permitted to send its traffic.
9
+ class CreateCampaignsResponse < Internal::Types::Model
10
+ field :affiliate_marketing, -> { Internal::Types::Boolean }, optional: false, nullable: false
11
+
12
+ field :age_gated, -> { Internal::Types::Boolean }, optional: false, nullable: false
13
+
14
+ field :auto_renewal, -> { Internal::Types::Boolean }, optional: false, nullable: false
15
+
16
+ field :last_bill_date, -> { String }, optional: false, nullable: true
17
+
18
+ field :next_bill_date, -> { String }, optional: false, nullable: true
19
+
20
+ field :direct_lending, -> { Internal::Types::Boolean }, optional: false, nullable: false
21
+
22
+ field :embedded_links, -> { Internal::Types::Boolean }, optional: false, nullable: false
23
+
24
+ field :embedded_phones, -> { Internal::Types::Boolean }, optional: false, nullable: false
25
+
26
+ field :embedded_link_sample, -> { String }, optional: false, nullable: true
27
+
28
+ field :brand_id, -> { String }, optional: false, nullable: false
29
+
30
+ field :campaign_id, -> { String }, optional: false, nullable: false
31
+
32
+ field :description, -> { String }, optional: false, nullable: true
33
+
34
+ field :optin_workflow, -> { String }, optional: false, nullable: true
35
+
36
+ field :feedback, -> { String }, optional: false, nullable: true
37
+
38
+ field :help, -> { Internal::Types::Boolean }, optional: false, nullable: false
39
+
40
+ field :help_keywords, -> { String }, optional: false, nullable: false
41
+
42
+ field :help_message, -> { String }, optional: false, nullable: true
43
+
44
+ field :optin, -> { Internal::Types::Boolean }, optional: false, nullable: false
45
+
46
+ field :optin_keywords, -> { String }, optional: false, nullable: false
47
+
48
+ field :optin_message, -> { String }, optional: false, nullable: true
49
+
50
+ field :optout, -> { Internal::Types::Boolean }, optional: false, nullable: false
51
+
52
+ field :optout_keywords, -> { String }, optional: false, nullable: false
53
+
54
+ field :optout_message, -> { String }, optional: false, nullable: true
55
+
56
+ field :name, -> { String }, optional: false, nullable: false
57
+
58
+ field :created_at, -> { String }, optional: false, nullable: false
59
+
60
+ field :sample1, -> { String }, optional: false, nullable: true
61
+
62
+ field :sample2, -> { String }, optional: false, nullable: true
63
+
64
+ field :sample3, -> { String }, optional: false, nullable: true
65
+
66
+ field :sample4, -> { String }, optional: false, nullable: true
67
+
68
+ field :sample5, -> { String }, optional: false, nullable: true
69
+
70
+ field :updated_at, -> { String }, optional: false, nullable: false
71
+
72
+ field :mock, -> { Internal::Types::Boolean }, optional: false, nullable: false
73
+
74
+ field :usecase, -> { String }, optional: false, nullable: false
75
+
76
+ field :monthly_fee, -> { String }, optional: false, nullable: false
77
+
78
+ field :privacy_policy, -> { String }, optional: false, nullable: true
79
+
80
+ field :terms_conditions, -> { String }, optional: false, nullable: true
81
+
82
+ field :status, -> { String }, optional: false, nullable: false
83
+
84
+ field :phone_numbers, -> { Internal::Types::Array[String] }, optional: false, nullable: false
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module TenDlc
5
+ module Campaigns
6
+ module Types
7
+ class DeleteCampaignsRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_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 Campaigns
6
+ module Types
7
+ class DeleteCampaignsResponse < 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 Campaigns
6
+ module Types
7
+ class GetCampaignsRequest < Internal::Types::Model
8
+ field :brand_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :campaign_id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end