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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 788d6d38aeb24c7ee557b44ee9333b7f7d897bdb3601534351b24d038ded9792
4
+ data.tar.gz: 31fdb41dba157b025731bb89d4b438ed0e05bc89c9cf59c68ee8106f72c330a8
5
+ SHA512:
6
+ metadata.gz: 2101d93afc6dc2f1da96e83a6834d92fcc0dd03afc8e9a1dfd1a704ee97a90548862e3ecdc4e17ffb003e1d08fa16212fb7e7b4f3ccaec6a7f87db9c6b95a655
7
+ data.tar.gz: 90ece83619ce1f36dc241a671df57bf158b2c7ca5233e16cb0a1013d4e03b1bc106d0580976aa56cebcf832f1968c1bb898f28206a2724dc5766f2bd126781db
@@ -0,0 +1,10 @@
1
+ {
2
+ "cliVersion": "5.45.3",
3
+ "generatorName": "fernapi/fern-ruby-sdk",
4
+ "generatorVersion": "1.13.1",
5
+ "originGitCommit": "af69033e3cb9260efdbfbf64452f841499bb8fc4",
6
+ "originGitCommitIsDirty": false,
7
+ "invokedBy": "manual",
8
+ "requestedVersion": "1.0.0",
9
+ "sdkVersion": "1.0.0"
10
+ }
data/.fernignore ADDED
@@ -0,0 +1,5 @@
1
+ # Files Fern must NOT overwrite on regeneration (treated like .gitignore).
2
+ LICENSE
3
+ README.md
4
+ .fernignore
5
+ SECURITY.md
data/.rubocop.yml ADDED
@@ -0,0 +1,103 @@
1
+ plugins:
2
+ - rubocop-minitest
3
+
4
+ AllCops:
5
+ TargetRubyVersion: 3.3
6
+ NewCops: enable
7
+
8
+ Style/StringLiterals:
9
+ EnforcedStyle: double_quotes
10
+
11
+ Style/StringLiteralsInInterpolation:
12
+ EnforcedStyle: double_quotes
13
+
14
+ Style/AccessModifierDeclarations:
15
+ Enabled: false
16
+
17
+ Lint/ConstantDefinitionInBlock:
18
+ Enabled: false
19
+
20
+ Metrics/AbcSize:
21
+ Enabled: false
22
+
23
+ Metrics/BlockLength:
24
+ Enabled: false
25
+
26
+ Metrics/ClassLength:
27
+ Enabled: false
28
+
29
+ Metrics/MethodLength:
30
+ Enabled: false
31
+
32
+ Metrics/ParameterLists:
33
+ Enabled: false
34
+
35
+ Metrics/PerceivedComplexity:
36
+ Enabled: false
37
+
38
+ Metrics/CyclomaticComplexity:
39
+ Enabled: false
40
+
41
+ Metrics/ModuleLength:
42
+ Enabled: false
43
+
44
+ Layout/LineLength:
45
+ Enabled: false
46
+
47
+ Naming/VariableNumber:
48
+ EnforcedStyle: normalcase
49
+ Severity: warning
50
+
51
+ Style/Documentation:
52
+ Enabled: false
53
+
54
+ Style/Lambda:
55
+ EnforcedStyle: literal
56
+
57
+ Minitest/MultipleAssertions:
58
+ Enabled: false
59
+
60
+ Minitest/UselessAssertion:
61
+ Enabled: false
62
+
63
+ # Dynamic snippets are code samples for documentation, not standalone Ruby files.
64
+ Style/FrozenStringLiteralComment:
65
+ Exclude:
66
+ - "dynamic-snippets/**/*"
67
+
68
+ # Indent hash elements 2 spaces from the start of the enclosing line rather than
69
+ # aligning with the preceding paren or bracket. Generated code nests hashes inside
70
+ # arrays and method calls; the "consistent" style is more readable there.
71
+ Layout/FirstHashElementIndentation:
72
+ EnforcedStyle: consistent
73
+ Exclude:
74
+ - "dynamic-snippets/**/*"
75
+
76
+ # Match Layout/FirstHashElementIndentation: indent the first argument 2 spaces
77
+ # from the start of the method call's line, regardless of parenthesis position.
78
+ # Dynamic snippets are code samples, not standalone Ruby files; exclude them to
79
+ # keep this config symmetric with Layout/FirstHashElementIndentation above.
80
+ Layout/FirstArgumentIndentation:
81
+ EnforcedStyle: consistent
82
+ Exclude:
83
+ - "dynamic-snippets/**/*"
84
+
85
+ # The generator emits non-idiomatic class names (e.g. Get_With_Query, JSON_)
86
+ # derived from IR type names whose wire form contains underscores or digits.
87
+ # Rubocop never auto-corrected these (naming cops have no autocorrecter), so
88
+ # disabling the cop keeps CI green without changing customer output. Fixing at
89
+ # source would rename public types across every existing SDK and therefore
90
+ # requires a ruby-v2 major-version bump with a generator migration.
91
+ Naming/ClassAndModuleCamelCase:
92
+ Enabled: false
93
+
94
+ # Integer literals are emitted unformatted (e.g. 1000000, not 1_000_000).
95
+ # Rubocop has an autocorrecter for this cop, but the only caller of integer
96
+ # emission is the dynamic-snippets path, which feeds customer-facing surfaces:
97
+ # (1) snippet markdown in reference docs, (2) dynamic-snippets/*.rb sample
98
+ # files. Neither is rubocop-gated (markdown isn't Ruby, dynamic-snippets/**/*
99
+ # is excluded above), so formatting integers there would change docs/dashboard
100
+ # output without any rubocop benefit. Disabling the cop keeps integers raw
101
+ # everywhere and avoids customer-visible diffs.
102
+ Style/NumericLiterals:
103
+ Enabled: false
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,120 @@
1
+ # Contributing
2
+
3
+ Thanks for your interest in contributing to this SDK! This document provides guidelines for contributing to the project.
4
+
5
+ ## Getting Started
6
+
7
+ ### Prerequisites
8
+
9
+ - Ruby 3.0+
10
+ - Bundler
11
+
12
+ ### Installation
13
+
14
+ Install the project dependencies:
15
+
16
+ ```bash
17
+ bundle install
18
+ ```
19
+
20
+ ### Building
21
+
22
+ Build the gem:
23
+
24
+ ```bash
25
+ gem build *.gemspec
26
+ ```
27
+
28
+ ### Testing
29
+
30
+ Run the test suite:
31
+
32
+ ```bash
33
+ bundle exec rspec
34
+ ```
35
+
36
+ ### Linting and Formatting
37
+
38
+ Check code style:
39
+
40
+ ```bash
41
+ bundle exec rubocop
42
+ ```
43
+
44
+ Fix code style issues:
45
+
46
+ ```bash
47
+ bundle exec rubocop -a
48
+ ```
49
+
50
+ ## About Generated Code
51
+
52
+ **Important**: Most files in this SDK are automatically generated by [Fern](https://buildwithfern.com) from the API definition. Direct modifications to generated files will be overwritten the next time the SDK is generated.
53
+
54
+ ### Generated Files
55
+
56
+ The following directories contain generated code:
57
+ - `lib/` - API client classes and types
58
+ - Most Ruby files in the project
59
+
60
+ ### How to Customize
61
+
62
+ If you need to customize the SDK, you have two options:
63
+
64
+ #### Option 1: Use `.fernignore`
65
+
66
+ For custom code that should persist across SDK regenerations:
67
+
68
+ 1. Create a `.fernignore` file in the project root
69
+ 2. Add file patterns for files you want to preserve (similar to `.gitignore` syntax)
70
+ 3. Add your custom code to those files
71
+
72
+ Files listed in `.fernignore` will not be overwritten when the SDK is regenerated.
73
+
74
+ For more information, see the [Fern documentation on custom code](https://buildwithfern.com/learn/sdks/overview/custom-code).
75
+
76
+ #### Option 2: Contribute to the Generator
77
+
78
+ If you want to change how code is generated for all users of this SDK:
79
+
80
+ 1. The Ruby SDK generator lives in the [Fern repository](https://github.com/fern-api/fern)
81
+ 2. Generator code is located at `generators/ruby-v2/`
82
+ 3. Follow the [Fern contributing guidelines](https://github.com/fern-api/fern/blob/main/CONTRIBUTING.md)
83
+ 4. Submit a pull request with your changes to the generator
84
+
85
+ This approach is best for:
86
+ - Bug fixes in generated code
87
+ - New features that would benefit all users
88
+ - Improvements to code generation patterns
89
+
90
+ ## Making Changes
91
+
92
+ ### Workflow
93
+
94
+ 1. Create a new branch for your changes
95
+ 2. Make your modifications
96
+ 3. Run tests to ensure nothing breaks: `bundle exec rspec`
97
+ 4. Run linting: `bundle exec rubocop`
98
+ 5. Build the gem: `gem build *.gemspec`
99
+ 6. Commit your changes with a clear commit message
100
+ 7. Push your branch and create a pull request
101
+
102
+ ### Commit Messages
103
+
104
+ Write clear, descriptive commit messages that explain what changed and why.
105
+
106
+ ### Code Style
107
+
108
+ This project uses RuboCop for code formatting. Run `bundle exec rubocop` before committing to ensure your code meets the project's style guidelines.
109
+
110
+ ## Questions or Issues?
111
+
112
+ If you have questions or run into issues:
113
+
114
+ 1. Check the [Fern documentation](https://buildwithfern.com)
115
+ 2. Search existing [GitHub issues](https://github.com/fern-api/fern/issues)
116
+ 3. Open a new issue if your question hasn't been addressed
117
+
118
+ ## License
119
+
120
+ By contributing to this project, you agree that your contributions will be licensed under the same license as the project.
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wavix
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,271 @@
1
+ # Wavix Ruby SDK
2
+
3
+ [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fwavix%2Fwavix-ruby-sdk)
4
+
5
+ The official Wavix Ruby SDK provides programmatic access to the
6
+ [Wavix](https://wavix.com) APIs. Use it to add messaging, voice, and account
7
+ management capabilities to your application.
8
+
9
+ Use the SDK to:
10
+
11
+ - Send and receive SMS and MMS messages.
12
+ - Place and programmatically control calls.
13
+ - Search for, buy, and manage phone numbers.
14
+ - Validate phone numbers.
15
+ - Manage SIP trunks.
16
+ - Retrieve call detail records (CDRs).
17
+
18
+
19
+ ## Table of contents
20
+
21
+ - [Installation](#installation)
22
+ - [Authentication](#authentication)
23
+ - [Quickstart](#quickstart)
24
+ - [Error handling](#error-handling)
25
+ - [Pagination](#pagination)
26
+ - [Rate limits and retries](#rate-limits-and-retries)
27
+ - [Retries](#retries)
28
+ - [Idempotency](#idempotency)
29
+ - [Advanced](#advanced)
30
+ - [Timeouts](#timeouts)
31
+ - [Additional headers](#additional-headers)
32
+ - [Additional query parameters](#additional-query-parameters)
33
+ - [SDK and API compatibility](#sdk-and-api-compatibility)
34
+ - [Release notes](#release-notes)
35
+ - [Major-version upgrades](#major-version-upgrades)
36
+ - [Documentation](#documentation)
37
+ - [Resources and support](#resources-and-support)
38
+ - [Contributing](#contributing)
39
+
40
+ ## Installation
41
+
42
+ ```sh
43
+ gem install wavix-ruby-sdk
44
+ ```
45
+
46
+ **Requirements:** Ruby 3.3 or later.
47
+
48
+ ## Authentication
49
+
50
+ Create an API key in the [Wavix portal](https://app.wavix.com). Store the key
51
+ in an environment variable and pass it to the client.
52
+
53
+ ```shell
54
+ export WAVIX_API_KEY="your-api-key"
55
+ ```
56
+
57
+ ```ruby
58
+ require "wavix"
59
+
60
+ client = Wavix::Client.new(token: ENV.fetch("WAVIX_API_KEY"))
61
+ ```
62
+
63
+ > [!CAUTION]
64
+ > Don't commit API keys or tokens to source control. In production, store
65
+ > credentials in environment variables or a secrets manager.
66
+
67
+
68
+ ## Quickstart
69
+
70
+ Create a client and send an SMS message:
71
+
72
+ ```ruby
73
+ require "wavix"
74
+
75
+ client = Wavix::Client.new(token: "<token>")
76
+
77
+ client.sms_and_mms.messages.send_(
78
+ from: "Wavix",
79
+ to: "+447537151866",
80
+ message_body: {
81
+ text: "Hi there, this is a message from Wavix",
82
+ media: nil
83
+ },
84
+ callback_url: "https://you-site.com/webhook",
85
+ validity: 3600,
86
+ tag: "Fall sale"
87
+ )
88
+ ```
89
+
90
+ ## Error handling
91
+
92
+ When an API request fails, the SDK raises an error that you can rescue by
93
+ type:
94
+
95
+ ```ruby
96
+ require "wavix"
97
+
98
+ client = Wavix::Client.new(
99
+ base_url: "https://example.com"
100
+ )
101
+
102
+ begin
103
+ result = client.sms_and_mms.messages.send_
104
+ rescue Wavix::Errors::TimeoutError
105
+ puts "API didn't respond before our timeout elapsed"
106
+ rescue Wavix::Errors::ServiceUnavailableError
107
+ puts "API returned status 503, is probably overloaded, try again later"
108
+ rescue Wavix::Errors::ServerError
109
+ puts "API returned some other 5xx status, this is probably a bug"
110
+ rescue Wavix::Errors::ResponseError => e
111
+ puts "API returned an unexpected status other than 5xx: #{e.code} #{e.message}"
112
+ rescue Wavix::Errors::ApiError => e
113
+ puts "Some other error occurred when calling the API: #{e.message}"
114
+ end
115
+ ```
116
+
117
+ Handle errors that aren't covered by these SDK error types separately, or
118
+ raise them again so that your application doesn't ignore unexpected failures.
119
+
120
+ ## Pagination
121
+
122
+ List operations use automatic page-number pagination. The SDK requests
123
+ additional pages as you iterate through the results.
124
+
125
+ The Wavix APIs support these pagination parameters:
126
+
127
+ - `page`: Specifies the page to retrieve.
128
+ - `per_page`: Specifies the number of items per page. The default is `25`.
129
+ The minimum is `1`, and the maximum is `100`.
130
+
131
+ ## Rate limits and retries
132
+
133
+ Rate limits vary by endpoint. When a request exceeds an endpoint's rate
134
+ limit, the Wavix API returns an HTTP `429 Too Many Requests` response.
135
+
136
+ The SDK can retry `429` responses as described in [Retries](#retries).
137
+ Configure retries according to your application's traffic patterns and
138
+ latency requirements.
139
+
140
+ ### Retries
141
+
142
+ The SDK automatically retries eligible requests. By default, the SDK makes up
143
+ to two retry attempts.
144
+
145
+ A request is eligible for retry when it returns one of these HTTP status
146
+ codes:
147
+
148
+ - `408 Request Timeout`.
149
+ - `429 Too Many Requests`.
150
+ - These server errors: `500`, `502`, `503`, `504`, `521`, `522`, and `524`.
151
+
152
+ These status codes aren't configurable.
153
+
154
+ Use `max_retries` to set the retry limit:
155
+
156
+ ```ruby
157
+ require "wavix"
158
+
159
+ client = Wavix::Client.new(
160
+ base_url: "https://example.com",
161
+ max_retries: 3 # Configure max retries (default is 2)
162
+ )
163
+ ```
164
+
165
+ > [!IMPORTANT]
166
+ > A retry can repeat an operation if the server processes the original
167
+ > request but the client doesn't receive the response. Before you retry an
168
+ > operation that sends a message, places a call, or changes a resource,
169
+ > confirm that the operation can be repeated safely.
170
+
171
+ ### Idempotency
172
+
173
+ The Wavix APIs don't support idempotency keys. A repeated request can repeat
174
+ the operation, including sending a message, placing a call, or changing a
175
+ resource.
176
+
177
+ Before you retry a request that changes data or starts an operation, check
178
+ whether the original request succeeded. When duplicate operations could
179
+ affect customers or incur charges, track request state in your application
180
+ and prevent the same operation from being submitted more than once.
181
+
182
+ ## Advanced
183
+
184
+ ### Timeouts
185
+
186
+ The SDK uses a fixed 60-second request timeout.
187
+
188
+ ### Additional headers
189
+
190
+ Use `additional_headers` to add headers to an individual request:
191
+
192
+ ```ruby
193
+ require "wavix"
194
+
195
+ response = client.sms_and_mms.messages.send_(
196
+ ...,
197
+ request_options: {
198
+ additional_headers: {
199
+ "X-Custom-Header" => "custom-value"
200
+ }
201
+ }
202
+ )
203
+ ```
204
+
205
+ ### Additional query parameters
206
+
207
+ Use `additional_query_parameters` to add query parameters to an individual
208
+ request:
209
+
210
+ ```ruby
211
+ require "wavix"
212
+
213
+ response = client.sms_and_mms.messages.send_(
214
+ ...,
215
+ request_options: {
216
+ additional_query_parameters: {
217
+ "custom_param" => "custom-value"
218
+ }
219
+ }
220
+ )
221
+ ```
222
+
223
+ ## SDK and API compatibility
224
+
225
+ Each SDK release supports the current version of the Wavix APIs available
226
+ when that SDK version is released. Update the SDK regularly to access the
227
+ latest API capabilities and fixes.
228
+
229
+ Before you update the SDK, review the
230
+ [GitHub releases](https://github.com/wavix/wavix-ruby-sdk/releases) for changes
231
+ that might affect your application.
232
+
233
+ ## Release notes
234
+
235
+ See [GitHub releases](https://github.com/wavix/wavix-ruby-sdk/releases) for new
236
+ features, fixes, and breaking changes in each SDK release.
237
+
238
+ ## Major-version upgrades
239
+
240
+ The SDK doesn't provide separate migration guides. Breaking changes ship only
241
+ in major versions, so before you upgrade, review the
242
+ [GitHub releases](https://github.com/wavix/wavix-ruby-sdk/releases) for breaking
243
+ changes, then update and test in a development environment before you deploy.
244
+
245
+ ## Documentation
246
+
247
+ - For API guides and API reference documentation, see the
248
+ [Wavix documentation](https://docs.wavix.com).
249
+ - For SDK methods and types, see the
250
+ [Ruby SDK reference](https://github.com/wavix/wavix-ruby-sdk/blob/HEAD/reference.md).
251
+
252
+ ## Resources and support
253
+
254
+ - **Versioning:** The SDK follows [Semantic Versioning](https://semver.org).
255
+ Breaking changes are released in major versions.
256
+ - **Security:** Report vulnerabilities privately by following the instructions
257
+ in [SECURITY.md](./SECURITY.md). Don't report vulnerabilities in public
258
+ issues.
259
+ - **Support:** For product and API support, contact
260
+ [support@wavix.com](mailto:support@wavix.com).
261
+ - **Issues:** To report an SDK bug or request a feature, open a
262
+ [GitHub issue](https://github.com/wavix/wavix-ruby-sdk/issues).
263
+ - **License:** The SDK is available under the [MIT License](./LICENSE).
264
+
265
+ ## Contributing
266
+
267
+ The SDK source code is generated. Changes made directly to generated files are
268
+ overwritten in the next release and can't be merged as submitted. Before you
269
+ prepare a code change, open an issue to discuss the proposed update.
270
+
271
+ You can submit README improvements directly in a pull request.
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "minitest/test_task"
5
+
6
+ Minitest::TestTask.create
7
+
8
+ require "rubocop/rake_task"
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[test]
13
+
14
+ task lint: %i[rubocop]
15
+
16
+ # Run only the custom test file
17
+ Minitest::TestTask.create(:customtest) do |t|
18
+ t.libs << "test"
19
+ t.test_globs = ["test/custom.test.rb"]
20
+ end
data/SECURITY.md ADDED
@@ -0,0 +1,25 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a vulnerability
4
+
5
+ We take the security of the Wavix SDKs and API seriously. Please report any
6
+ security vulnerability **privately** — do not open a public GitHub issue or
7
+ pull request.
8
+
9
+ - **Email:** support@wavix.com
10
+ - Or use GitHub's **"Report a vulnerability"** button on the Security tab.
11
+
12
+ Please include a description of the issue, steps to reproduce, the affected
13
+ version, and the potential impact. We will acknowledge your report within
14
+ 3 business days and keep you updated as we investigate and ship a fix. Please
15
+ give us a reasonable window to release a fix before any public disclosure.
16
+
17
+ ## Supported versions
18
+
19
+ Security fixes are released for the latest published major version of this SDK.
20
+
21
+ ## Scope
22
+
23
+ This repository contains an auto-generated SDK. Suspected vulnerabilities in the
24
+ Wavix API itself (rather than the generated client code) should be reported
25
+ through the same private channel.
data/custom.gemspec.rb ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Custom gemspec configuration file
4
+ # This file is automatically loaded by the main gemspec file. The 'spec' variable is available
5
+ # in this context from the main gemspec file. You can modify this file to add custom metadata,
6
+ # dependencies, or other gemspec configurations. If you do make changes to this file, you will
7
+ # need to add it to the .fernignore file to prevent your changes from being overwritten.
8
+
9
+ def add_custom_gemspec_data(spec)
10
+ # Example custom configurations (uncomment and modify as needed)
11
+
12
+ # spec.authors = ["Your name"]
13
+ # spec.email = ["your.email@example.com"]
14
+ # spec.homepage = "https://github.com/your-org/wavix-ruby"
15
+ # spec.license = "Your license"
16
+ end