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,277 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ class Client
6
+ # @param client [Wavix::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # Returns a paginated list of call detail records for the authenticated account, within the requested date range.
14
+ #
15
+ # @param request_options [Hash]
16
+ # @param params [Hash]
17
+ # @option request_options [String] :base_url
18
+ # @option request_options [Hash{String => Object}] :additional_headers
19
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
20
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
21
+ # @option request_options [Integer] :timeout_in_seconds
22
+ # @option params [String] :from
23
+ # @option params [String] :to
24
+ # @option params [String] :type
25
+ # @option params [Wavix::Types::CallDisposition, nil] :disposition
26
+ # @option params [String, nil] :from_search
27
+ # @option params [String, nil] :to_search
28
+ # @option params [String, nil] :sip_trunk
29
+ # @option params [String, nil] :uuid
30
+ # @option params [Integer, nil] :page
31
+ # @option params [Integer, nil] :per_page
32
+ #
33
+ # @return [Wavix::Types::CdrListResponse]
34
+ def list(request_options: {}, **params)
35
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
36
+ query_params = {}
37
+ query_params["from"] = params[:from] if params.key?(:from)
38
+ query_params["to"] = params[:to] if params.key?(:to)
39
+ query_params["type"] = params[:type] if params.key?(:type)
40
+ query_params["disposition"] = params[:disposition] if params.key?(:disposition)
41
+ query_params["from_search"] = params[:from_search] if params.key?(:from_search)
42
+ query_params["to_search"] = params[:to_search] if params.key?(:to_search)
43
+ query_params["sip_trunk"] = params[:sip_trunk] if params.key?(:sip_trunk)
44
+ query_params["uuid"] = params[:uuid] if params.key?(:uuid)
45
+ query_params["page"] = params[:page] if params.key?(:page)
46
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
47
+
48
+ request = Wavix::Internal::JSON::Request.new(
49
+ base_url: request_options[:base_url],
50
+ method: "GET",
51
+ path: "v1/cdrs",
52
+ query: query_params,
53
+ request_options: request_options
54
+ )
55
+ begin
56
+ response = @client.send(request)
57
+ rescue Net::HTTPRequestTimeout
58
+ raise Wavix::Errors::TimeoutError
59
+ end
60
+ code = response.code.to_i
61
+ if code.between?(200, 299)
62
+ Wavix::Types::CdrListResponse.load(response.body)
63
+ else
64
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
65
+ raise error_class.new(response.body, code: code)
66
+ end
67
+ end
68
+
69
+ # Searches call transcriptions for the given keywords or phrases and returns the matching CDRs with their
70
+ # transcriptions.
71
+ #
72
+ # @param request_options [Hash]
73
+ # @param params [Wavix::Cdrs::Types::CdrSearchRequest]
74
+ # @option request_options [String] :base_url
75
+ # @option request_options [Hash{String => Object}] :additional_headers
76
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
77
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
78
+ # @option request_options [Integer] :timeout_in_seconds
79
+ #
80
+ # @return [Wavix::Types::CdrTranscriptionSearchResponse]
81
+ def search(request_options: {}, **params)
82
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
83
+ request = Wavix::Internal::JSON::Request.new(
84
+ base_url: request_options[:base_url],
85
+ method: "POST",
86
+ path: "v1/cdrs",
87
+ body: Wavix::Cdrs::Types::CdrSearchRequest.new(params).to_h,
88
+ request_options: request_options
89
+ )
90
+ begin
91
+ response = @client.send(request)
92
+ rescue Net::HTTPRequestTimeout
93
+ raise Wavix::Errors::TimeoutError
94
+ end
95
+ code = response.code.to_i
96
+ if code.between?(200, 299)
97
+ Wavix::Types::CdrTranscriptionSearchResponse.load(response.body)
98
+ else
99
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
100
+ raise error_class.new(response.body, code: code)
101
+ end
102
+ end
103
+
104
+ # Transcribes the recording of the call identified by `call_id`. Transcription is asynchronous; poll the
105
+ # transcription endpoint for the result.
106
+ #
107
+ # @param request_options [Hash]
108
+ # @param params [Wavix::Cdrs::Types::CdrRetranscriptionRequest]
109
+ # @option request_options [String] :base_url
110
+ # @option request_options [Hash{String => Object}] :additional_headers
111
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
112
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
113
+ # @option request_options [Integer] :timeout_in_seconds
114
+ # @option params [String] :call_id
115
+ #
116
+ # @return [Wavix::Types::SuccessResponse]
117
+ def retranscribe(request_options: {}, **params)
118
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
119
+ request_data = Wavix::Cdrs::Types::CdrRetranscriptionRequest.new(params).to_h
120
+ non_body_param_names = %w[call_id]
121
+ body = request_data.except(*non_body_param_names)
122
+
123
+ request = Wavix::Internal::JSON::Request.new(
124
+ base_url: request_options[:base_url],
125
+ method: "PUT",
126
+ path: "v1/cdrs/#{URI.encode_uri_component(params[:call_id].to_s)}/retranscribe",
127
+ body: body,
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::Types::SuccessResponse.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
+ # Returns the transcription of the recorded call identified by `call_id`. Alias of the `transcription` endpoint.
145
+ #
146
+ # @param request_options [Hash]
147
+ # @param params [Hash]
148
+ # @option request_options [String] :base_url
149
+ # @option request_options [Hash{String => Object}] :additional_headers
150
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
151
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
152
+ # @option request_options [Integer] :timeout_in_seconds
153
+ # @option params [String] :call_id
154
+ #
155
+ # @return [Wavix::Types::CdrTranscriptionResponse]
156
+ def transcriptions(request_options: {}, **params)
157
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
158
+ request = Wavix::Internal::JSON::Request.new(
159
+ base_url: request_options[:base_url],
160
+ method: "GET",
161
+ path: "v1/cdrs/#{URI.encode_uri_component(params[:call_id].to_s)}/transcriptions",
162
+ request_options: request_options
163
+ )
164
+ begin
165
+ response = @client.send(request)
166
+ rescue Net::HTTPRequestTimeout
167
+ raise Wavix::Errors::TimeoutError
168
+ end
169
+ code = response.code.to_i
170
+ if code.between?(200, 299)
171
+ Wavix::Types::CdrTranscriptionResponse.load(response.body)
172
+ else
173
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
174
+ raise error_class.new(response.body, code: code)
175
+ end
176
+ end
177
+
178
+ # Returns the call detail record for the call identified by `call_id`.
179
+ #
180
+ # @param request_options [Hash]
181
+ # @param params [Hash]
182
+ # @option request_options [String] :base_url
183
+ # @option request_options [Hash{String => Object}] :additional_headers
184
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
185
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
186
+ # @option request_options [Integer] :timeout_in_seconds
187
+ # @option params [String] :call_id
188
+ # @option params [Boolean, nil] :show_transcription
189
+ #
190
+ # @return [Wavix::Types::CdrResponse]
191
+ def get(request_options: {}, **params)
192
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
193
+ query_params = {}
194
+ query_params["show_transcription"] = params[:show_transcription] if params.key?(:show_transcription)
195
+
196
+ request = Wavix::Internal::JSON::Request.new(
197
+ base_url: request_options[:base_url],
198
+ method: "GET",
199
+ path: "v1/cdrs/#{URI.encode_uri_component(params[:call_id].to_s)}",
200
+ query: query_params,
201
+ request_options: request_options
202
+ )
203
+ begin
204
+ response = @client.send(request)
205
+ rescue Net::HTTPRequestTimeout
206
+ raise Wavix::Errors::TimeoutError
207
+ end
208
+ code = response.code.to_i
209
+ if code.between?(200, 299)
210
+ Wavix::Types::CdrResponse.load(response.body)
211
+ else
212
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
213
+ raise error_class.new(response.body, code: code)
214
+ end
215
+ end
216
+
217
+ # Streams matching call detail records as newline-delimited JSON (NDJSON), one record per line, for bulk export.
218
+ #
219
+ # @param request_options [Hash]
220
+ # @param params [Hash]
221
+ # @option request_options [String] :base_url
222
+ # @option request_options [Hash{String => Object}] :additional_headers
223
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
224
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
225
+ # @option request_options [Integer] :timeout_in_seconds
226
+ # @option params [String] :from
227
+ # @option params [String] :to
228
+ # @option params [String] :type
229
+ # @option params [Wavix::Types::CallDisposition, nil] :disposition
230
+ # @option params [String, nil] :from_search
231
+ # @option params [String, nil] :to_search
232
+ # @option params [String, nil] :sip_trunk
233
+ # @option params [String, nil] :uuid
234
+ # @option params [Integer, nil] :page
235
+ # @option params [Integer, nil] :per_page
236
+ #
237
+ # @return [String]
238
+ def list_all(request_options: {}, **params)
239
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
240
+ query_params = {}
241
+ query_params["from"] = params[:from] if params.key?(:from)
242
+ query_params["to"] = params[:to] if params.key?(:to)
243
+ query_params["type"] = params[:type] if params.key?(:type)
244
+ query_params["disposition"] = params[:disposition] if params.key?(:disposition)
245
+ query_params["from_search"] = params[:from_search] if params.key?(:from_search)
246
+ query_params["to_search"] = params[:to_search] if params.key?(:to_search)
247
+ query_params["sip_trunk"] = params[:sip_trunk] if params.key?(:sip_trunk)
248
+ query_params["uuid"] = params[:uuid] if params.key?(:uuid)
249
+ query_params["page"] = params[:page] if params.key?(:page)
250
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
251
+
252
+ request = Wavix::Internal::JSON::Request.new(
253
+ base_url: request_options[:base_url],
254
+ method: "GET",
255
+ path: "v1/cdrs/all",
256
+ query: query_params,
257
+ request_options: request_options
258
+ )
259
+ begin
260
+ response = @client.send(request)
261
+ rescue Net::HTTPRequestTimeout
262
+ raise Wavix::Errors::TimeoutError
263
+ end
264
+ code = response.code.to_i
265
+ return if code.between?(200, 299)
266
+
267
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
268
+ raise error_class.new(response.body, code: code)
269
+ end
270
+
271
+ # @return [Wavix::Transcription::Client]
272
+ def transcription
273
+ @transcription ||= Wavix::Cdrs::Transcription::Client.new(client: @client)
274
+ end
275
+ end
276
+ end
277
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Transcription
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 transcription of the recorded call identified by `call_id`, including the transcript, speaker
15
+ # turns, and summary.
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] :call_id
25
+ #
26
+ # @return [Wavix::Types::CdrTranscriptionResponse]
27
+ def get(request_options: {}, **params)
28
+ params = Wavix::Internal::Types::Utils.normalize_keys(params)
29
+ request = Wavix::Internal::JSON::Request.new(
30
+ base_url: request_options[:base_url],
31
+ method: "GET",
32
+ path: "v1/cdrs/#{URI.encode_uri_component(params[:call_id].to_s)}/transcription",
33
+ request_options: request_options
34
+ )
35
+ begin
36
+ response = @client.send(request)
37
+ rescue Net::HTTPRequestTimeout
38
+ raise Wavix::Errors::TimeoutError
39
+ end
40
+ code = response.code.to_i
41
+ if code.between?(200, 299)
42
+ Wavix::Types::CdrTranscriptionResponse.load(response.body)
43
+ else
44
+ error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
45
+ raise error_class.new(response.body, code: code)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Transcription
6
+ module Types
7
+ class GetTranscriptionRequest < Internal::Types::Model
8
+ field :call_id, -> { String }, 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 Cdrs
5
+ module Types
6
+ class CdrRetranscriptionRequest < Internal::Types::Model
7
+ field :call_id, -> { String }, optional: false, nullable: false
8
+
9
+ field :language, -> { Wavix::Types::TranscriptionLanguage }, optional: true, nullable: false
10
+
11
+ field :webhook_url, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ class CdrSearchRequest < Internal::Types::Model
7
+ field :type, -> { Wavix::Cdrs::Types::CdrSearchRequestType }, optional: false, nullable: false
8
+
9
+ field :from, -> { String }, optional: false, nullable: false
10
+
11
+ field :to, -> { String }, optional: false, nullable: false
12
+
13
+ field :from_search, -> { String }, optional: true, nullable: false
14
+
15
+ field :to_search, -> { String }, optional: true, nullable: false
16
+
17
+ field :sip_trunk, -> { String }, optional: true, nullable: false
18
+
19
+ field :min_duration, -> { Integer }, optional: true, nullable: false
20
+
21
+ field :transcription, -> { Wavix::Types::TranscriptionFilter }, optional: true, nullable: false
22
+
23
+ field :uuid, -> { String }, optional: true, nullable: false
24
+
25
+ field :disposition, -> { Wavix::Cdrs::Types::CdrSearchRequestDisposition }, optional: true, nullable: false
26
+
27
+ field :page, -> { Integer }, optional: false, nullable: false
28
+
29
+ field :per_page, -> { Integer }, optional: false, nullable: false
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ module CdrSearchRequestDisposition
7
+ extend Wavix::Internal::Types::Enum
8
+
9
+ ANSWERED = "answered"
10
+ NOANSWER = "noanswer"
11
+ BUSY = "busy"
12
+ FAILED = "failed"
13
+ ALL = "all"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ module CdrSearchRequestType
7
+ extend Wavix::Internal::Types::Enum
8
+
9
+ PLACED = "placed"
10
+ RECEIVED = "received"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ class GetCdrsRequest < Internal::Types::Model
7
+ field :call_id, -> { String }, optional: false, nullable: false
8
+
9
+ field :show_transcription, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ class ListAllCdrsRequest < Internal::Types::Model
7
+ field :from, -> { String }, optional: false, nullable: false
8
+
9
+ field :to, -> { String }, optional: false, nullable: false
10
+
11
+ field :type, -> { String }, optional: false, nullable: false
12
+
13
+ field :disposition, -> { Wavix::Types::CallDisposition }, optional: true, nullable: false
14
+
15
+ field :from_search, -> { String }, optional: true, nullable: false
16
+
17
+ field :to_search, -> { String }, optional: true, nullable: false
18
+
19
+ field :sip_trunk, -> { String }, optional: true, nullable: false
20
+
21
+ field :uuid, -> { String }, optional: true, nullable: false
22
+
23
+ field :page, -> { Integer }, optional: true, nullable: false
24
+
25
+ field :per_page, -> { Integer }, optional: true, nullable: false
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ class ListCdrsRequest < Internal::Types::Model
7
+ field :from, -> { String }, optional: false, nullable: false
8
+
9
+ field :to, -> { String }, optional: false, nullable: false
10
+
11
+ field :type, -> { String }, optional: false, nullable: false
12
+
13
+ field :disposition, -> { Wavix::Types::CallDisposition }, optional: true, nullable: false
14
+
15
+ field :from_search, -> { String }, optional: true, nullable: false
16
+
17
+ field :to_search, -> { String }, optional: true, nullable: false
18
+
19
+ field :sip_trunk, -> { String }, optional: true, nullable: false
20
+
21
+ field :uuid, -> { String }, optional: true, nullable: false
22
+
23
+ field :page, -> { Integer }, optional: true, nullable: false
24
+
25
+ field :per_page, -> { Integer }, optional: true, nullable: false
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Cdrs
5
+ module Types
6
+ class TranscriptionsCdrsRequest < Internal::Types::Model
7
+ field :call_id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ class Client
5
+ # @param token [String]
6
+ # @param base_url [String, nil]
7
+ # @param max_retries [Integer]
8
+ #
9
+ # @return [void]
10
+ def initialize(token:, base_url: nil, max_retries: 2)
11
+ @raw_client = Wavix::Internal::Http::RawClient.new(
12
+ base_url: base_url || Wavix::Environment::DEFAULT,
13
+ headers: {
14
+ "User-Agent" => "wavix-ruby-sdk/1.0.0",
15
+ "X-Fern-Language" => "Ruby",
16
+ Authorization: "Bearer #{token}"
17
+ },
18
+ max_retries: max_retries
19
+ )
20
+ end
21
+
22
+ # @return [Wavix::APIKeys::Client]
23
+ def api_keys
24
+ @api_keys ||= Wavix::APIKeys::Client.new(client: @raw_client)
25
+ end
26
+
27
+ # @return [Wavix::SipTrunks::Client]
28
+ def sip_trunks
29
+ @sip_trunks ||= Wavix::SipTrunks::Client.new(client: @raw_client)
30
+ end
31
+
32
+ # @return [Wavix::Cart::Client]
33
+ def cart
34
+ @cart ||= Wavix::Cart::Client.new(client: @raw_client)
35
+ end
36
+
37
+ # @return [Wavix::Numbers::Client]
38
+ def numbers
39
+ @numbers ||= Wavix::Numbers::Client.new(client: @raw_client)
40
+ end
41
+
42
+ # @return [Wavix::Cdrs::Client]
43
+ def cdrs
44
+ @cdrs ||= Wavix::Cdrs::Client.new(client: @raw_client)
45
+ end
46
+
47
+ # @return [Wavix::CallRecording::Client]
48
+ def call_recording
49
+ @call_recording ||= Wavix::CallRecording::Client.new(client: @raw_client)
50
+ end
51
+
52
+ # @return [Wavix::SpeechAnalytics::Client]
53
+ def speech_analytics
54
+ @speech_analytics ||= Wavix::SpeechAnalytics::Client.new(client: @raw_client)
55
+ end
56
+
57
+ # @return [Wavix::CallWebhooks::Client]
58
+ def call_webhooks
59
+ @call_webhooks ||= Wavix::CallWebhooks::Client.new(client: @raw_client)
60
+ end
61
+
62
+ # @return [Wavix::CallControl::Client]
63
+ def call_control
64
+ @call_control ||= Wavix::CallControl::Client.new(client: @raw_client)
65
+ end
66
+
67
+ # @return [Wavix::NumberValidator::Client]
68
+ def number_validator
69
+ @number_validator ||= Wavix::NumberValidator::Client.new(client: @raw_client)
70
+ end
71
+
72
+ # @return [Wavix::VoiceCampaigns::Client]
73
+ def voice_campaigns
74
+ @voice_campaigns ||= Wavix::VoiceCampaigns::Client.new(client: @raw_client)
75
+ end
76
+
77
+ # @return [Wavix::LinkShortener::Client]
78
+ def link_shortener
79
+ @link_shortener ||= Wavix::LinkShortener::Client.new(client: @raw_client)
80
+ end
81
+
82
+ # @return [Wavix::Profile::Client]
83
+ def profile
84
+ @profile ||= Wavix::Profile::Client.new(client: @raw_client)
85
+ end
86
+
87
+ # @return [Wavix::SubAccounts::Client]
88
+ def sub_accounts
89
+ @sub_accounts ||= Wavix::SubAccounts::Client.new(client: @raw_client)
90
+ end
91
+
92
+ # @return [Wavix::SmsAndMms::Client]
93
+ def sms_and_mms
94
+ @sms_and_mms ||= Wavix::SmsAndMms::Client.new(client: @raw_client)
95
+ end
96
+
97
+ # @return [Wavix::Billing::Client]
98
+ def billing
99
+ @billing ||= Wavix::Billing::Client.new(client: @raw_client)
100
+ end
101
+
102
+ # @return [Wavix::Buy::Client]
103
+ def buy
104
+ @buy ||= Wavix::Buy::Client.new(client: @raw_client)
105
+ end
106
+
107
+ # @return [Wavix::TenDlc::Client]
108
+ def ten_dlc
109
+ @ten_dlc ||= Wavix::TenDlc::Client.new(client: @raw_client)
110
+ end
111
+
112
+ # @return [Wavix::TwoFa::Client]
113
+ def two_fa
114
+ @two_fa ||= Wavix::TwoFa::Client.new(client: @raw_client)
115
+ end
116
+
117
+ # @return [Wavix::Webrtc::Client]
118
+ def webrtc
119
+ @webrtc ||= Wavix::Webrtc::Client.new(client: @raw_client)
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ class Environment
5
+ DEFAULT = "https://api.wavix.com"
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Errors
5
+ class ApiError < StandardError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Errors
5
+ class ClientError < ResponseError
6
+ end
7
+
8
+ class UnauthorizedError < ClientError
9
+ end
10
+
11
+ class ForbiddenError < ClientError
12
+ end
13
+
14
+ class NotFoundError < ClientError
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Errors
5
+ class RedirectError < ResponseError
6
+ end
7
+ end
8
+ end