wavix-ruby-sdk 1.0.0 → 1.4.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 (201) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +5 -4
  3. data/.fern/replay.lock +22 -0
  4. data/.fernignore +4 -0
  5. data/lib/wavix/api_keys/client.rb +1 -1
  6. data/lib/wavix/billing/invoices/client.rb +2 -2
  7. data/lib/wavix/billing/transactions/client.rb +2 -2
  8. data/lib/wavix/buy/cities/client.rb +2 -2
  9. data/lib/wavix/buy/countries/client.rb +2 -2
  10. data/lib/wavix/buy/numbers/client.rb +2 -2
  11. data/lib/wavix/buy/region_cities/client.rb +2 -2
  12. data/lib/wavix/buy/regions/client.rb +2 -2
  13. data/lib/wavix/call_control/audio/client.rb +2 -1
  14. data/lib/wavix/call_control/client.rb +4 -3
  15. data/lib/wavix/call_control/streams/client.rb +3 -2
  16. data/lib/wavix/call_control/types/call_dtmf_collect_request_prompt_say.rb +3 -1
  17. data/lib/wavix/call_recording/client.rb +1 -1
  18. data/lib/wavix/call_webhooks/client.rb +15 -1
  19. data/lib/wavix/call_webhooks/types/call_webhooks_create_request.rb +2 -0
  20. data/lib/wavix/call_webhooks/types/delete_call_webhooks_request.rb +2 -0
  21. data/lib/wavix/cart/client.rb +9 -9
  22. data/lib/wavix/cdrs/client.rb +3 -1
  23. data/lib/wavix/cdrs/types/cdr_search_request.rb +3 -3
  24. data/lib/wavix/client.rb +1 -1
  25. data/lib/wavix/number_validator/client.rb +6 -3
  26. data/lib/wavix/number_validator/types/phone_validation_request.rb +2 -2
  27. data/lib/wavix/numbers/client.rb +9 -2
  28. data/lib/wavix/numbers/types/number_update_request.rb +2 -0
  29. data/lib/wavix/profile/config/client.rb +2 -2
  30. data/lib/wavix/sip_trunks/client.rb +9 -7
  31. data/lib/wavix/sip_trunks/types/sip_trunk_create_request.rb +53 -0
  32. data/lib/wavix/sip_trunks/types/sip_trunk_create_request_allowed_ips_item.rb +11 -0
  33. data/lib/wavix/sip_trunks/types/sip_trunk_create_request_host_request.rb +13 -0
  34. data/lib/wavix/sip_trunks/types/sip_trunk_update_request.rb +55 -0
  35. data/lib/wavix/sip_trunks/types/sip_trunk_update_request_allowed_ips_item.rb +11 -0
  36. data/lib/wavix/sip_trunks/types/sip_trunk_update_request_host_request.rb +14 -0
  37. data/lib/wavix/sms_and_mms/messages/client.rb +6 -6
  38. data/lib/wavix/sms_and_mms/opt_outs/client.rb +2 -2
  39. data/lib/wavix/sms_and_mms/sender_ids/client.rb +4 -3
  40. data/lib/wavix/speech_analytics/client.rb +4 -4
  41. data/lib/wavix/sub_accounts/client.rb +5 -1
  42. data/lib/wavix/sub_accounts/types/list_sub_accounts_request.rb +4 -0
  43. data/lib/wavix/sub_accounts/types/sub_accounts_update_request.rb +1 -1
  44. data/lib/wavix/ten_dlc/brand_appeals/client.rb +2 -2
  45. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request.rb +1 -1
  46. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request_appeal_categories_item.rb +17 -0
  47. data/lib/wavix/ten_dlc/brand_evidence/client.rb +4 -4
  48. data/lib/wavix/ten_dlc/brand_vetting_appeals/client.rb +2 -2
  49. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request.rb +1 -1
  50. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request_appeal_categories_item.rb +18 -0
  51. data/lib/wavix/ten_dlc/brand_vettings/client.rb +2 -1
  52. data/lib/wavix/ten_dlc/brands/client.rb +16 -14
  53. data/lib/wavix/ten_dlc/campaign_numbers/client.rb +6 -6
  54. data/lib/wavix/ten_dlc/campaigns/client.rb +12 -12
  55. data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_create_request.rb +6 -6
  56. data/lib/wavix/ten_dlc/subscriptions/client.rb +4 -4
  57. data/lib/wavix/two_fa/verification/client.rb +11 -9
  58. data/lib/wavix/types/{document_type_id.rb → api_key_with_secret.rb} +2 -2
  59. data/lib/wavix/types/available_number.rb +1 -1
  60. data/lib/wavix/types/cart_response.rb +1 -1
  61. data/lib/wavix/types/cdr_transcription_response.rb +1 -1
  62. data/lib/wavix/types/document_type.rb +5 -5
  63. data/lib/wavix/types/document_type_info.rb +14 -0
  64. data/lib/wavix/types/file_transcription_response.rb +2 -2
  65. data/lib/wavix/types/message_body.rb +1 -1
  66. data/lib/wavix/types/number.rb +1 -1
  67. data/lib/wavix/types/number_document.rb +1 -1
  68. data/lib/wavix/types/number_list_response.rb +1 -1
  69. data/lib/wavix/types/ten_dlc_brand.rb +1 -1
  70. data/lib/wavix/types/ten_dlc_brand_appeal_create_request.rb +1 -1
  71. data/lib/wavix/types/ten_dlc_brand_appeal_create_request_appeal_categories_item.rb +13 -0
  72. data/lib/wavix/types/ten_dlc_brand_appeal_outcome.rb +1 -1
  73. data/lib/wavix/types/{not_found_error_body.rb → too_many_requests_error_response.rb} +1 -1
  74. data/lib/wavix/types/transcription_filter.rb +3 -3
  75. data/lib/wavix/types/unprocessable_entity_error_body.rb +2 -2
  76. data/lib/wavix/types/webhook_in_use_error_response.rb +14 -0
  77. data/lib/wavix/types/whats_app_business_account.rb +16 -0
  78. data/lib/wavix/types/whats_app_business_account_messaging_limit.rb +15 -0
  79. data/lib/wavix/types/whats_app_message.rb +20 -0
  80. data/lib/wavix/types/whats_app_message_get_response.rb +10 -0
  81. data/lib/wavix/types/whats_app_message_list_item.rb +23 -0
  82. data/lib/wavix/types/whats_app_message_list_item_direction.rb +12 -0
  83. data/lib/wavix/types/whats_app_message_list_item_status.rb +16 -0
  84. data/lib/wavix/types/whats_app_message_list_response.rb +12 -0
  85. data/lib/wavix/types/whats_app_message_send_request.rb +16 -0
  86. data/lib/wavix/types/whats_app_message_send_response.rb +10 -0
  87. data/lib/wavix/types/whats_app_message_status.rb +16 -0
  88. data/lib/wavix/types/whats_app_message_template.rb +12 -0
  89. data/lib/wavix/types/whats_app_problem.rb +23 -0
  90. data/lib/wavix/types/whats_app_problem_error_class.rb +14 -0
  91. data/lib/wavix/types/whats_app_send_template.rb +18 -0
  92. data/lib/wavix/types/whats_app_send_template_button.rb +27 -0
  93. data/lib/wavix/types/whats_app_send_template_button_type.rb +18 -0
  94. data/lib/wavix/types/whats_app_send_template_header.rb +26 -0
  95. data/lib/wavix/types/whats_app_send_template_header_type.rb +16 -0
  96. data/lib/wavix/types/whats_app_sender.rb +19 -0
  97. data/lib/wavix/types/whats_app_sender_list_response.rb +12 -0
  98. data/lib/wavix/types/whats_app_sender_quality_rating.rb +14 -0
  99. data/lib/wavix/types/whats_app_sender_status.rb +21 -0
  100. data/lib/wavix/types/whats_app_template.rb +29 -0
  101. data/lib/wavix/types/whats_app_template_body_component_request.rb +12 -0
  102. data/lib/wavix/types/whats_app_template_body_component_request_example.rb +10 -0
  103. data/lib/wavix/types/whats_app_template_button_request.rb +21 -0
  104. data/lib/wavix/types/whats_app_template_buttons_component_request.rb +10 -0
  105. data/lib/wavix/types/whats_app_template_category.rb +13 -0
  106. data/lib/wavix/types/whats_app_template_component_request.rb +21 -0
  107. data/lib/wavix/types/whats_app_template_copy_code_button_request.rb +10 -0
  108. data/lib/wavix/types/whats_app_template_create_request.rb +20 -0
  109. data/lib/wavix/types/whats_app_template_create_request_category.rb +13 -0
  110. data/lib/wavix/types/whats_app_template_footer_component_request.rb +10 -0
  111. data/lib/wavix/types/whats_app_template_header_component_request.rb +23 -0
  112. data/lib/wavix/types/whats_app_template_location_header_component_request.rb +11 -0
  113. data/lib/wavix/types/{file_transcription_response_status.rb → whats_app_template_location_header_component_request_type.rb} +2 -3
  114. data/lib/wavix/types/whats_app_template_media_header_component_request.rb +12 -0
  115. data/lib/wavix/types/whats_app_template_media_header_component_request_example.rb +10 -0
  116. data/lib/wavix/types/whats_app_template_media_header_component_request_type.rb +11 -0
  117. data/lib/wavix/types/whats_app_template_page_response.rb +12 -0
  118. data/lib/wavix/types/whats_app_template_phone_number_button_request.rb +12 -0
  119. data/lib/wavix/types/whats_app_template_quality_rating.rb +14 -0
  120. data/lib/wavix/types/whats_app_template_quick_reply_button_request.rb +10 -0
  121. data/lib/wavix/types/whats_app_template_response.rb +10 -0
  122. data/lib/wavix/types/whats_app_template_response_component.rb +20 -0
  123. data/lib/wavix/types/whats_app_template_response_component_format.rb +15 -0
  124. data/lib/wavix/types/whats_app_template_status.rb +21 -0
  125. data/lib/wavix/types/whats_app_template_text_header_component_request.rb +14 -0
  126. data/lib/wavix/types/whats_app_template_text_header_component_request_example.rb +10 -0
  127. data/lib/wavix/types/whats_app_template_text_header_component_request_type.rb +11 -0
  128. data/lib/wavix/types/whats_app_template_url_button_request.rb +14 -0
  129. data/lib/wavix/types/whats_app_waba.rb +12 -0
  130. data/lib/wavix/types/whats_app_waba_list_response.rb +12 -0
  131. data/lib/wavix/version.rb +1 -1
  132. data/lib/wavix/voice_campaigns/client.rb +2 -2
  133. data/lib/wavix/webrtc/tokens/client.rb +11 -3
  134. data/lib/wavix/webrtc/tokens/types/list_tokens_request.rb +15 -0
  135. data/lib/wavix/webrtc/tokens/types/web_rtc_token_create_request.rb +1 -1
  136. data/lib/wavix.rb +89 -87
  137. data/reference.md +512 -116
  138. metadata +71 -68
  139. data/lib/wavix/billing/invoices/types/list_invoices_response.rb +0 -17
  140. data/lib/wavix/billing/transactions/types/list_transactions_response.rb +0 -17
  141. data/lib/wavix/buy/cities/types/list_cities_response.rb +0 -13
  142. data/lib/wavix/buy/countries/types/list_countries_response.rb +0 -13
  143. data/lib/wavix/buy/numbers/types/list_numbers_response.rb +0 -15
  144. data/lib/wavix/buy/region_cities/types/list_region_cities_response.rb +0 -13
  145. data/lib/wavix/buy/regions/types/list_regions_response.rb +0 -13
  146. data/lib/wavix/cart/types/checkout_cart_response.rb +0 -11
  147. data/lib/wavix/cart/types/get_cart_response.rb +0 -13
  148. data/lib/wavix/cart/types/remove_cart_response.rb +0 -11
  149. data/lib/wavix/cdrs/types/cdr_search_request_disposition.rb +0 -17
  150. data/lib/wavix/number_validator/types/get_number_validator_response.rb +0 -43
  151. data/lib/wavix/numbers/types/delete_numbers_response.rb +0 -11
  152. data/lib/wavix/profile/config/types/get_config_response.rb +0 -15
  153. data/lib/wavix/sip_trunks/types/update_sip_trunks_request.rb +0 -13
  154. data/lib/wavix/sms_and_mms/messages/types/get_messages_response.rb +0 -45
  155. data/lib/wavix/sms_and_mms/messages/types/list_messages_response.rb +0 -15
  156. data/lib/wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.rb +0 -13
  157. data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.rb +0 -13
  158. data/lib/wavix/speech_analytics/types/create_speech_analytics_response.rb +0 -15
  159. data/lib/wavix/speech_analytics/types/get_speech_analytics_response.rb +0 -31
  160. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_language.rb +0 -17
  161. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_status.rb +0 -14
  162. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.rb +0 -13
  163. data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.rb +0 -13
  164. data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.rb +0 -19
  165. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.rb +0 -13
  166. data/lib/wavix/ten_dlc/brands/types/create_brands_response.rb +0 -61
  167. data/lib/wavix/ten_dlc/brands/types/create_brands_response_entity_type.rb +0 -18
  168. data/lib/wavix/ten_dlc/brands/types/create_brands_response_status.rb +0 -19
  169. data/lib/wavix/ten_dlc/brands/types/delete_brands_response.rb +0 -13
  170. data/lib/wavix/ten_dlc/brands/types/get_brands_response.rb +0 -61
  171. data/lib/wavix/ten_dlc/brands/types/get_brands_response_entity_type.rb +0 -18
  172. data/lib/wavix/ten_dlc/brands/types/get_brands_response_status.rb +0 -19
  173. data/lib/wavix/ten_dlc/brands/types/list_brands_response.rb +0 -16
  174. data/lib/wavix/ten_dlc/brands/types/list_brands_response_pagination.rb +0 -20
  175. data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_response.rb +0 -17
  176. data/lib/wavix/ten_dlc/brands/types/update_brands_response.rb +0 -61
  177. data/lib/wavix/ten_dlc/brands/types/update_brands_response_entity_type.rb +0 -18
  178. data/lib/wavix/ten_dlc/brands/types/update_brands_response_status.rb +0 -19
  179. data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.rb +0 -13
  180. data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.rb +0 -17
  181. data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.rb +0 -13
  182. data/lib/wavix/ten_dlc/campaigns/types/create_campaigns_response.rb +0 -89
  183. data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_response.rb +0 -13
  184. data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_response.rb +0 -89
  185. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.rb +0 -16
  186. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.rb +0 -20
  187. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response.rb +0 -16
  188. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.rb +0 -20
  189. data/lib/wavix/ten_dlc/campaigns/types/update_campaigns_response.rb +0 -89
  190. data/lib/wavix/ten_dlc/subscriptions/types/create_subscriptions_response.rb +0 -16
  191. data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.rb +0 -13
  192. data/lib/wavix/two_fa/verification/types/check_verification_response.rb +0 -13
  193. data/lib/wavix/two_fa/verification/types/create_verification_response.rb +0 -25
  194. data/lib/wavix/two_fa/verification/types/resend_verification_response.rb +0 -19
  195. data/lib/wavix/types/bad_request_error_body.rb +0 -11
  196. data/lib/wavix/types/file_transcription_response_language.rb +0 -15
  197. data/lib/wavix/types/sip_trunk_create_request.rb +0 -51
  198. data/lib/wavix/types/sip_trunk_create_request_allowed_ips_item.rb +0 -9
  199. data/lib/wavix/types/sip_trunk_create_request_host_request.rb +0 -11
  200. data/lib/wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.rb +0 -15
  201. data/lib/wavix/types/ten_dlc_brand_status.rb +0 -15
@@ -30,7 +30,7 @@ module Wavix
30
30
  # @option params [Integer, nil] :page
31
31
  # @option params [Integer, nil] :per_page
32
32
  #
33
- # @return [Wavix::TenDlc::Campaigns::Types::ListCampaignsResponse]
33
+ # @return [Wavix::Types::TenDlcCampaignListResponse]
34
34
  def list(request_options: {}, **params)
35
35
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
36
36
  query_params = {}
@@ -57,7 +57,7 @@ module Wavix
57
57
  end
58
58
  code = response.code.to_i
59
59
  if code.between?(200, 299)
60
- Wavix::TenDlc::Campaigns::Types::ListCampaignsResponse.load(response.body)
60
+ Wavix::Types::TenDlcCampaignListResponse.load(response.body)
61
61
  else
62
62
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
63
63
  raise error_class.new(response.body, code: code)
@@ -83,7 +83,7 @@ module Wavix
83
83
  # @option params [Integer, nil] :page
84
84
  # @option params [Integer, nil] :per_page
85
85
  #
86
- # @return [Wavix::TenDlc::Campaigns::Types::ListByBrandCampaignsResponse]
86
+ # @return [Wavix::Types::TenDlcCampaignListResponse]
87
87
  def list_by_brand(request_options: {}, **params)
88
88
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
89
89
  query_params = {}
@@ -110,7 +110,7 @@ module Wavix
110
110
  end
111
111
  code = response.code.to_i
112
112
  if code.between?(200, 299)
113
- Wavix::TenDlc::Campaigns::Types::ListByBrandCampaignsResponse.load(response.body)
113
+ Wavix::Types::TenDlcCampaignListResponse.load(response.body)
114
114
  else
115
115
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
116
116
  raise error_class.new(response.body, code: code)
@@ -129,7 +129,7 @@ module Wavix
129
129
  # @option request_options [Integer] :timeout_in_seconds
130
130
  # @option params [String] :brand_id
131
131
  #
132
- # @return [Wavix::TenDlc::Campaigns::Types::CreateCampaignsResponse]
132
+ # @return [Wavix::Types::TenDlcCampaign]
133
133
  def create(request_options: {}, **params)
134
134
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
135
135
  request_data = Wavix::TenDlc::Campaigns::Types::TenDlcCampaignCreateRequest.new(params).to_h
@@ -150,7 +150,7 @@ module Wavix
150
150
  end
151
151
  code = response.code.to_i
152
152
  if code.between?(200, 299)
153
- Wavix::TenDlc::Campaigns::Types::CreateCampaignsResponse.load(response.body)
153
+ Wavix::Types::TenDlcCampaign.load(response.body)
154
154
  else
155
155
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
156
156
  raise error_class.new(response.body, code: code)
@@ -169,7 +169,7 @@ module Wavix
169
169
  # @option params [String] :brand_id
170
170
  # @option params [String] :campaign_id
171
171
  #
172
- # @return [Wavix::TenDlc::Campaigns::Types::GetCampaignsResponse]
172
+ # @return [Wavix::Types::TenDlcCampaign]
173
173
  def get(request_options: {}, **params)
174
174
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
175
175
  request = Wavix::Internal::JSON::Request.new(
@@ -185,7 +185,7 @@ module Wavix
185
185
  end
186
186
  code = response.code.to_i
187
187
  if code.between?(200, 299)
188
- Wavix::TenDlc::Campaigns::Types::GetCampaignsResponse.load(response.body)
188
+ Wavix::Types::TenDlcCampaign.load(response.body)
189
189
  else
190
190
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
191
191
  raise error_class.new(response.body, code: code)
@@ -204,7 +204,7 @@ module Wavix
204
204
  # @option params [String] :brand_id
205
205
  # @option params [String] :campaign_id
206
206
  #
207
- # @return [Wavix::TenDlc::Campaigns::Types::UpdateCampaignsResponse]
207
+ # @return [Wavix::Types::TenDlcCampaign]
208
208
  def update(request_options: {}, **params)
209
209
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
210
210
  request_data = Wavix::TenDlc::Campaigns::Types::TenDlcCampaignUpdateRequest.new(params).to_h
@@ -225,7 +225,7 @@ module Wavix
225
225
  end
226
226
  code = response.code.to_i
227
227
  if code.between?(200, 299)
228
- Wavix::TenDlc::Campaigns::Types::UpdateCampaignsResponse.load(response.body)
228
+ Wavix::Types::TenDlcCampaign.load(response.body)
229
229
  else
230
230
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
231
231
  raise error_class.new(response.body, code: code)
@@ -244,7 +244,7 @@ module Wavix
244
244
  # @option params [String] :brand_id
245
245
  # @option params [String] :campaign_id
246
246
  #
247
- # @return [Wavix::TenDlc::Campaigns::Types::DeleteCampaignsResponse]
247
+ # @return [Wavix::Types::SuccessResponse]
248
248
  def delete(request_options: {}, **params)
249
249
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
250
250
  request = Wavix::Internal::JSON::Request.new(
@@ -260,7 +260,7 @@ module Wavix
260
260
  end
261
261
  code = response.code.to_i
262
262
  if code.between?(200, 299)
263
- Wavix::TenDlc::Campaigns::Types::DeleteCampaignsResponse.load(response.body)
263
+ Wavix::Types::SuccessResponse.load(response.body)
264
264
  else
265
265
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
266
266
  raise error_class.new(response.body, code: code)
@@ -17,9 +17,9 @@ module Wavix
17
17
 
18
18
  field :embedded_links, -> { Internal::Types::Boolean }, optional: false, nullable: false
19
19
 
20
- field :embedded_phones, -> { Internal::Types::Boolean }, optional: false, nullable: true
20
+ field :embedded_phones, -> { Internal::Types::Boolean }, optional: true, nullable: false
21
21
 
22
- field :embedded_link_sample, -> { String }, optional: false, nullable: true
22
+ field :embedded_link_sample, -> { String }, optional: true, nullable: false
23
23
 
24
24
  field :description, -> { String }, optional: false, nullable: false
25
25
 
@@ -47,13 +47,13 @@ module Wavix
47
47
 
48
48
  field :sample1, -> { String }, optional: false, nullable: false
49
49
 
50
- field :sample2, -> { String }, optional: false, nullable: true
50
+ field :sample2, -> { String }, optional: true, nullable: false
51
51
 
52
- field :sample3, -> { String }, optional: false, nullable: true
52
+ field :sample3, -> { String }, optional: true, nullable: false
53
53
 
54
- field :sample4, -> { String }, optional: false, nullable: true
54
+ field :sample4, -> { String }, optional: true, nullable: false
55
55
 
56
- field :sample5, -> { String }, optional: false, nullable: true
56
+ field :sample5, -> { String }, optional: true, nullable: false
57
57
 
58
58
  field :mock, -> { Internal::Types::Boolean }, optional: false, nullable: false
59
59
 
@@ -51,7 +51,7 @@ module Wavix
51
51
  # @option request_options [Hash{String => Object}] :additional_body_parameters
52
52
  # @option request_options [Integer] :timeout_in_seconds
53
53
  #
54
- # @return [Wavix::TenDlc::Subscriptions::Types::CreateSubscriptionsResponse]
54
+ # @return [Wavix::Types::TenDlcEventSubscription]
55
55
  def create(request_options: {}, **params)
56
56
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
57
57
  request = Wavix::Internal::JSON::Request.new(
@@ -68,7 +68,7 @@ module Wavix
68
68
  end
69
69
  code = response.code.to_i
70
70
  if code.between?(200, 299)
71
- Wavix::TenDlc::Subscriptions::Types::CreateSubscriptionsResponse.load(response.body)
71
+ Wavix::Types::TenDlcEventSubscription.load(response.body)
72
72
  else
73
73
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
74
74
  raise error_class.new(response.body, code: code)
@@ -86,7 +86,7 @@ module Wavix
86
86
  # @option request_options [Integer] :timeout_in_seconds
87
87
  # @option params [String] :subscription_category
88
88
  #
89
- # @return [Wavix::TenDlc::Subscriptions::Types::DeleteSubscriptionsResponse]
89
+ # @return [Wavix::Types::SuccessResponse]
90
90
  def delete(request_options: {}, **params)
91
91
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
92
92
  query_params = {}
@@ -106,7 +106,7 @@ module Wavix
106
106
  end
107
107
  code = response.code.to_i
108
108
  if code.between?(200, 299)
109
- Wavix::TenDlc::Subscriptions::Types::DeleteSubscriptionsResponse.load(response.body)
109
+ Wavix::Types::SuccessResponse.load(response.body)
110
110
  else
111
111
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
112
112
  raise error_class.new(response.body, code: code)
@@ -11,9 +11,9 @@ module Wavix
11
11
  @client = client
12
12
  end
13
13
 
14
- # Creates a 2FA verification and sends a one-time password (OTP) to the destination phone number over the
15
- # selected channel. Requires a 2FA service configured in the Wavix portal; the service is reused to generate and
16
- # validate OTPs.
14
+ # Creates a 2FA verification and sends a real one-time password (OTP) to the destination phone number over the
15
+ # selected channel; this bills the account per OTP sent. Requires a 2FA service configured in the Wavix portal;
16
+ # the service is reused to generate and validate OTPs.
17
17
  #
18
18
  # The verification proceeds through three steps:
19
19
  # 1. Create a verification to generate and send an OTP.
@@ -28,7 +28,7 @@ module Wavix
28
28
  # @option request_options [Hash{String => Object}] :additional_body_parameters
29
29
  # @option request_options [Integer] :timeout_in_seconds
30
30
  #
31
- # @return [Wavix::TwoFa::Verification::Types::CreateVerificationResponse]
31
+ # @return [Wavix::Types::TwoFactorVerificationResponse]
32
32
  def create(request_options: {}, **params)
33
33
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
34
34
  request = Wavix::Internal::JSON::Request.new(
@@ -45,7 +45,7 @@ module Wavix
45
45
  end
46
46
  code = response.code.to_i
47
47
  if code.between?(200, 299)
48
- Wavix::TwoFa::Verification::Types::CreateVerificationResponse.load(response.body)
48
+ Wavix::Types::TwoFactorVerificationResponse.load(response.body)
49
49
  else
50
50
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
51
51
  raise error_class.new(response.body, code: code)
@@ -64,7 +64,7 @@ module Wavix
64
64
  # @option request_options [Integer] :timeout_in_seconds
65
65
  # @option params [String] :session_id
66
66
  #
67
- # @return [Wavix::TwoFa::Verification::Types::ResendVerificationResponse]
67
+ # @return [Wavix::Types::TwoFactorVerificationResendResponse]
68
68
  def resend(request_options: {}, **params)
69
69
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
70
70
  request_data = Wavix::TwoFa::Verification::Types::TwoFactorVerificationResendRequest.new(params).to_h
@@ -85,7 +85,7 @@ module Wavix
85
85
  end
86
86
  code = response.code.to_i
87
87
  if code.between?(200, 299)
88
- Wavix::TwoFa::Verification::Types::ResendVerificationResponse.load(response.body)
88
+ Wavix::Types::TwoFactorVerificationResendResponse.load(response.body)
89
89
  else
90
90
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
91
91
  raise error_class.new(response.body, code: code)
@@ -93,6 +93,8 @@ module Wavix
93
93
  end
94
94
 
95
95
  # Validates the OTP submitted by the end user against the verification identified by `session_id`.
96
+ # Non-idempotent — each call consumes one of a limited number of attempts tracked server-side; once exhausted,
97
+ # the verification returns `429` until a new verification is created.
96
98
  #
97
99
  # @param request_options [Hash]
98
100
  # @param params [Wavix::TwoFa::Verification::Types::TwoFactorVerificationCheckRequest]
@@ -103,7 +105,7 @@ module Wavix
103
105
  # @option request_options [Integer] :timeout_in_seconds
104
106
  # @option params [String] :session_id
105
107
  #
106
- # @return [Wavix::TwoFa::Verification::Types::CheckVerificationResponse]
108
+ # @return [Wavix::Types::TwoFactorVerificationCheckResponse]
107
109
  def check(request_options: {}, **params)
108
110
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
109
111
  request_data = Wavix::TwoFa::Verification::Types::TwoFactorVerificationCheckRequest.new(params).to_h
@@ -124,7 +126,7 @@ module Wavix
124
126
  end
125
127
  code = response.code.to_i
126
128
  if code.between?(200, 299)
127
- Wavix::TwoFa::Verification::Types::CheckVerificationResponse.load(response.body)
129
+ Wavix::Types::TwoFactorVerificationCheckResponse.load(response.body)
128
130
  else
129
131
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
130
132
  raise error_class.new(response.body, code: code)
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Wavix
4
4
  module Types
5
- module DocumentTypeID
6
- # DocumentTypeID is an alias for Integer
5
+ module APIKeyWithSecret
6
+ # APIKeyWithSecret is an alias for APIKey
7
7
 
8
8
  # @option str [String]
9
9
  #
@@ -26,7 +26,7 @@ module Wavix
26
26
 
27
27
  field :number, -> { String }, optional: false, nullable: false
28
28
 
29
- field :require_docs, -> { Internal::Types::Array[Integer] }, optional: false, nullable: false
29
+ field :require_docs, -> { Internal::Types::Array[Wavix::Types::DocumentType] }, optional: false, nullable: false
30
30
 
31
31
  field :sms_enabled, -> { Internal::Types::Boolean }, optional: false, nullable: false
32
32
 
@@ -5,7 +5,7 @@ module Wavix
5
5
  class CartResponse < Internal::Types::Model
6
6
  field :dids, -> { Internal::Types::Array[Wavix::Types::AvailableNumber] }, optional: false, nullable: false
7
7
 
8
- field :doc_types, -> { Internal::Types::Array[Wavix::Types::DocumentType] }, optional: false, nullable: false
8
+ field :doc_types, -> { Internal::Types::Array[Wavix::Types::DocumentTypeInfo] }, optional: false, nullable: false
9
9
  end
10
10
  end
11
11
  end
@@ -9,7 +9,7 @@ module Wavix
9
9
 
10
10
  field :uuid, -> { String }, optional: false, nullable: false
11
11
 
12
- field :language, -> { Wavix::Types::TranscriptionLanguage }, optional: false, nullable: false
12
+ field :language, -> { Wavix::Types::TranscriptionLanguage }, optional: false, nullable: true
13
13
 
14
14
  field :duration, -> { Integer }, optional: false, nullable: false
15
15
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  module Wavix
4
4
  module Types
5
- class DocumentType < Internal::Types::Model
6
- field :id, -> { Integer }, optional: false, nullable: false
5
+ module DocumentType
6
+ extend Wavix::Internal::Types::Enum
7
7
 
8
- field :name, -> { String }, optional: false, nullable: false
9
-
10
- field :title, -> { String }, optional: false, nullable: false
8
+ ID = "id"
9
+ ADDRESS = "address"
10
+ LOCALADDRESS = "localaddress"
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Document type required to activate a phone number.
6
+ class DocumentTypeInfo < Internal::Types::Model
7
+ field :id, -> { Integer }, optional: false, nullable: false
8
+
9
+ field :name, -> { Wavix::Types::DocumentType }, optional: false, nullable: false
10
+
11
+ field :title, -> { String }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
@@ -9,13 +9,13 @@ module Wavix
9
9
 
10
10
  field :request_id, -> { String }, optional: false, nullable: false
11
11
 
12
- field :language, -> { Wavix::Types::FileTranscriptionResponseLanguage }, optional: false, nullable: false
12
+ field :language, -> { Wavix::Types::TranscriptionLanguage }, optional: false, nullable: true
13
13
 
14
14
  field :duration, -> { Integer }, optional: false, nullable: true
15
15
 
16
16
  field :charge, -> { String }, optional: false, nullable: false
17
17
 
18
- field :status, -> { Wavix::Types::FileTranscriptionResponseStatus }, optional: false, nullable: false
18
+ field :status, -> { Wavix::Types::TranscriptionStatus }, optional: false, nullable: false
19
19
 
20
20
  field :transcription_date, -> { String }, optional: false, nullable: false
21
21
 
@@ -5,7 +5,7 @@ module Wavix
5
5
  class MessageBody < Internal::Types::Model
6
6
  field :text, -> { String }, optional: false, nullable: false
7
7
 
8
- field :media, -> { Internal::Types::Array[String] }, optional: false, nullable: true
8
+ field :media, -> { Internal::Types::Array[String] }, optional: true, nullable: false
9
9
  end
10
10
  end
11
11
  end
@@ -25,7 +25,7 @@ module Wavix
25
25
 
26
26
  field :channels, -> { Integer }, optional: false, nullable: false
27
27
 
28
- field :require_docs, -> { Internal::Types::Array[String] }, optional: false, nullable: false
28
+ field :require_docs, -> { Internal::Types::Array[Wavix::Types::DocumentType] }, optional: false, nullable: false
29
29
 
30
30
  field :documents, -> { Internal::Types::Array[Wavix::Types::NumberDocument] }, optional: false, nullable: false
31
31
 
@@ -14,7 +14,7 @@ module Wavix
14
14
 
15
15
  field :doc_file_name, -> { String }, optional: false, nullable: false
16
16
 
17
- field :doc_type_id, -> { Integer }, optional: false, nullable: false
17
+ field :doc_type, -> { Wavix::Types::DocumentType }, optional: false, nullable: true
18
18
 
19
19
  field :status, -> { String }, optional: false, nullable: false
20
20
 
@@ -5,7 +5,7 @@ module Wavix
5
5
  class NumberListResponse < Internal::Types::Model
6
6
  field :items, -> { Internal::Types::Array[Wavix::Types::Number] }, optional: false, nullable: false
7
7
 
8
- field :doc_types, -> { Internal::Types::Array[Wavix::Types::DocumentType] }, optional: false, nullable: false
8
+ field :doc_types, -> { Internal::Types::Array[Wavix::Types::DocumentTypeInfo] }, optional: false, nullable: false
9
9
 
10
10
  field :pagination, -> { Wavix::Types::Pagination }, optional: false, nullable: false
11
11
  end
@@ -19,7 +19,7 @@ module Wavix
19
19
 
20
20
  field :ein_taxid_country, -> { String }, optional: false, nullable: false
21
21
 
22
- field :status, -> { Wavix::Types::TenDlcBrandStatus }, optional: false, nullable: false
22
+ field :status, -> { Wavix::Types::TenDlcBrandIdentityVerificationStatus }, optional: false, nullable: false
23
23
 
24
24
  field :website, -> { String }, optional: true, nullable: false
25
25
 
@@ -4,7 +4,7 @@ module Wavix
4
4
  module Types
5
5
  # Brand identity verification appeal details.
6
6
  class TenDlcBrandAppealCreateRequest < Internal::Types::Model
7
- field :appeal_categories, -> { Internal::Types::Array[String] }, optional: false, nullable: false
7
+ field :appeal_categories, -> { Internal::Types::Array[Wavix::Types::TenDlcBrandAppealCreateRequestAppealCategoriesItem] }, optional: false, nullable: false
8
8
 
9
9
  field :evidence, -> { Internal::Types::Array[String] }, optional: false, nullable: false
10
10
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module TenDlcBrandAppealCreateRequestAppealCategoriesItem
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ VERIFY_TAX_ID = "VERIFY_TAX_ID"
9
+ VERIFY_NON_PROFIT = "VERIFY_NON_PROFIT"
10
+ VERIFY_GOVERNMENT = "VERIFY_GOVERNMENT"
11
+ end
12
+ end
13
+ end
@@ -6,7 +6,7 @@ module Wavix
6
6
  class TenDlcBrandAppealOutcome < Internal::Types::Model
7
7
  field :optional_attributes, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
8
8
 
9
- field :vetting_status, -> { Wavix::Types::TenDlcBrandAppealOutcomeVettingStatus }, optional: false, nullable: false
9
+ field :vetting_status, -> { Wavix::Types::TenDlcBrandIdentityVerificationStatus }, optional: false, nullable: false
10
10
 
11
11
  field :feedback, -> { Wavix::Types::TenDlcBrandAppealOutcomeFeedback }, optional: false, nullable: false
12
12
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Wavix
4
4
  module Types
5
- class NotFoundErrorBody < Internal::Types::Model
5
+ class TooManyRequestsErrorResponse < Internal::Types::Model
6
6
  field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
7
7
 
8
8
  field :message, -> { String }, optional: false, nullable: false
@@ -3,11 +3,11 @@
3
3
  module Wavix
4
4
  module Types
5
5
  class TranscriptionFilter < Internal::Types::Model
6
- field :agent, -> { Wavix::Types::TranscriptionFilterAgent }, optional: false, nullable: false
6
+ field :agent, -> { Wavix::Types::TranscriptionFilterAgent }, optional: true, nullable: false
7
7
 
8
- field :client, -> { Wavix::Types::TranscriptionFilterClient }, optional: false, nullable: false
8
+ field :client, -> { Wavix::Types::TranscriptionFilterClient }, optional: true, nullable: false
9
9
 
10
- field :any, -> { Wavix::Types::TranscriptionFilterAny }, optional: false, nullable: false
10
+ field :any, -> { Wavix::Types::TranscriptionFilterAny }, optional: true, nullable: false
11
11
  end
12
12
  end
13
13
  end
@@ -3,9 +3,9 @@
3
3
  module Wavix
4
4
  module Types
5
5
  class UnprocessableEntityErrorBody < Internal::Types::Model
6
- field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
6
+ field :error, -> { String }, optional: true, nullable: false
7
7
 
8
- field :message, -> { String }, optional: false, nullable: false
8
+ field :error_dids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
9
9
  end
10
10
  end
11
11
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Error returned when a webhook change is rejected because the webhook no longer has the expected URL.
6
+ class WebhookInUseErrorResponse < Internal::Types::Model
7
+ field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
8
+
9
+ field :error, -> { Internal::Types::Boolean }, optional: false, nullable: false
10
+
11
+ field :message, -> { String }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # A WhatsApp Business Account linked to your account. Returned by `whatsapp_wabas_list` and `whatsapp_wabas_get`.
6
+ class WhatsAppBusinessAccount < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: false, nullable: true
10
+
11
+ field :messaging_limit, -> { Wavix::Types::WhatsAppBusinessAccountMessagingLimit }, optional: true, nullable: false
12
+
13
+ field :sender_count, -> { Integer }, optional: false, nullable: false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppBusinessAccountMessagingLimit
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ UP_TO250 = "up_to_250"
9
+ UP_TO2K = "up_to_2k"
10
+ UP_TO10K = "up_to_10k"
11
+ UP_TO100K = "up_to_100k"
12
+ UNLIMITED = "unlimited"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # A WhatsApp message you sent. Returned by `whatsapp_messages_send`.
6
+ class WhatsAppMessage < Internal::Types::Model
7
+ field :uuid, -> { String }, 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 :status, -> { Wavix::Types::WhatsAppMessageStatus }, optional: false, nullable: false
14
+
15
+ field :template, -> { Wavix::Types::WhatsAppMessageTemplate }, optional: false, nullable: true
16
+
17
+ field :created_at, -> { String }, optional: false, nullable: false
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Returned by `whatsapp_messages_get`.
6
+ class WhatsAppMessageGetResponse < Internal::Types::Model
7
+ field :message, -> { Wavix::Types::WhatsAppMessageListItem }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # A WhatsApp message your account sent or received. Returned by `whatsapp_messages_list` and
6
+ # `whatsapp_messages_get`.
7
+ class WhatsAppMessageListItem < Internal::Types::Model
8
+ field :uuid, -> { String }, optional: false, nullable: false
9
+
10
+ field :direction, -> { Wavix::Types::WhatsAppMessageListItemDirection }, optional: false, nullable: false
11
+
12
+ field :status, -> { Wavix::Types::WhatsAppMessageListItemStatus }, optional: false, nullable: false
13
+
14
+ field :from, -> { String }, optional: false, nullable: false
15
+
16
+ field :to, -> { String }, optional: false, nullable: false
17
+
18
+ field :country, -> { String }, optional: false, nullable: true
19
+
20
+ field :created_at, -> { String }, optional: false, nullable: false
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageListItemDirection
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ OUTBOUND = "outbound"
9
+ INBOUND = "inbound"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageListItemStatus
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ SENT = "sent"
9
+ DELIVERED = "delivered"
10
+ UNDELIVERED = "undelivered"
11
+ EXPIRED = "expired"
12
+ REJECTED = "rejected"
13
+ UNKNOWN = "unknown"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Returned by `whatsapp_messages_list`.
6
+ class WhatsAppMessageListResponse < Internal::Types::Model
7
+ field :messages, -> { Internal::Types::Array[Wavix::Types::WhatsAppMessageListItem] }, optional: false, nullable: false
8
+
9
+ field :pagination, -> { Wavix::Types::Pagination }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Attributes of a WhatsApp template message to send. Consumed by `whatsapp_messages_send`.
6
+ class WhatsAppMessageSendRequest < Internal::Types::Model
7
+ field :from, -> { String }, optional: false, nullable: false
8
+
9
+ field :to, -> { String }, optional: false, nullable: false
10
+
11
+ field :idempotency_key, -> { String }, optional: true, nullable: false
12
+
13
+ field :template, -> { Wavix::Types::WhatsAppSendTemplate }, optional: false, nullable: false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Returned by `whatsapp_messages_send`.
6
+ class WhatsAppMessageSendResponse < Internal::Types::Model
7
+ field :message, -> { Wavix::Types::WhatsAppMessage }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end