wavix-ruby-sdk 1.0.0 → 1.1.1

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 (165) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +3 -3
  3. data/.fern/replay.lock +16 -0
  4. data/.fernignore +3 -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 +2 -1
  19. data/lib/wavix/cart/client.rb +9 -9
  20. data/lib/wavix/cdrs/client.rb +2 -1
  21. data/lib/wavix/cdrs/types/cdr_search_request.rb +3 -3
  22. data/lib/wavix/client.rb +1 -1
  23. data/lib/wavix/number_validator/client.rb +6 -3
  24. data/lib/wavix/number_validator/types/phone_validation_request.rb +2 -2
  25. data/lib/wavix/numbers/client.rb +2 -2
  26. data/lib/wavix/profile/config/client.rb +2 -2
  27. data/lib/wavix/sms_and_mms/messages/client.rb +6 -6
  28. data/lib/wavix/sms_and_mms/opt_outs/client.rb +2 -2
  29. data/lib/wavix/sms_and_mms/sender_ids/client.rb +4 -3
  30. data/lib/wavix/speech_analytics/client.rb +4 -4
  31. data/lib/wavix/sub_accounts/client.rb +4 -0
  32. data/lib/wavix/sub_accounts/types/list_sub_accounts_request.rb +4 -0
  33. data/lib/wavix/sub_accounts/types/sub_accounts_update_request.rb +1 -1
  34. data/lib/wavix/ten_dlc/brand_appeals/client.rb +2 -2
  35. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request.rb +1 -1
  36. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request_appeal_categories_item.rb +17 -0
  37. data/lib/wavix/ten_dlc/brand_evidence/client.rb +4 -4
  38. data/lib/wavix/ten_dlc/brand_vetting_appeals/client.rb +2 -2
  39. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request.rb +1 -1
  40. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request_appeal_categories_item.rb +18 -0
  41. data/lib/wavix/ten_dlc/brand_vettings/client.rb +2 -1
  42. data/lib/wavix/ten_dlc/brands/client.rb +16 -14
  43. data/lib/wavix/ten_dlc/campaign_numbers/client.rb +6 -6
  44. data/lib/wavix/ten_dlc/campaigns/client.rb +12 -12
  45. data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_create_request.rb +6 -6
  46. data/lib/wavix/ten_dlc/subscriptions/client.rb +4 -4
  47. data/lib/wavix/two_fa/verification/client.rb +11 -9
  48. data/lib/wavix/types/{document_type_id.rb → api_key_with_secret.rb} +2 -2
  49. data/lib/wavix/types/available_number.rb +1 -1
  50. data/lib/wavix/types/cart_response.rb +1 -1
  51. data/lib/wavix/types/cdr_transcription_response.rb +1 -1
  52. data/lib/wavix/types/document_type.rb +5 -5
  53. data/lib/wavix/types/document_type_info.rb +14 -0
  54. data/lib/wavix/types/file_transcription_response.rb +2 -2
  55. data/lib/wavix/types/message_body.rb +1 -1
  56. data/lib/wavix/types/number.rb +1 -1
  57. data/lib/wavix/types/number_document.rb +1 -1
  58. data/lib/wavix/types/number_list_response.rb +1 -1
  59. data/lib/wavix/types/sip_trunk_create_request.rb +1 -1
  60. data/lib/wavix/types/ten_dlc_brand.rb +1 -1
  61. data/lib/wavix/types/ten_dlc_brand_appeal_create_request.rb +1 -1
  62. data/lib/wavix/types/ten_dlc_brand_appeal_create_request_appeal_categories_item.rb +13 -0
  63. data/lib/wavix/types/ten_dlc_brand_appeal_outcome.rb +1 -1
  64. data/lib/wavix/types/{not_found_error_body.rb → too_many_requests_error_response.rb} +1 -1
  65. data/lib/wavix/types/transcription_filter.rb +3 -3
  66. data/lib/wavix/types/unprocessable_entity_error_body.rb +2 -2
  67. data/lib/wavix/types/whats_app_message.rb +19 -0
  68. data/lib/wavix/types/whats_app_message_get_response.rb +9 -0
  69. data/lib/wavix/types/whats_app_message_list_item.rb +21 -0
  70. data/lib/wavix/types/{file_transcription_response_status.rb → whats_app_message_list_item_direction.rb} +3 -3
  71. data/lib/wavix/types/whats_app_message_list_item_status.rb +17 -0
  72. data/lib/wavix/types/whats_app_message_list_response.rb +11 -0
  73. data/lib/wavix/types/whats_app_message_send_request.rb +13 -0
  74. data/lib/wavix/types/whats_app_message_send_request_template.rb +17 -0
  75. data/lib/wavix/types/whats_app_message_send_request_template_buttons_item.rb +9 -0
  76. data/lib/wavix/types/whats_app_message_send_request_template_buttons_item_type.rb +18 -0
  77. data/lib/wavix/types/whats_app_message_send_request_template_header.rb +24 -0
  78. data/lib/wavix/types/whats_app_message_send_request_template_header_type.rb +16 -0
  79. data/lib/wavix/types/whats_app_message_send_response.rb +9 -0
  80. data/lib/wavix/types/whats_app_message_status.rb +17 -0
  81. data/lib/wavix/types/whats_app_message_template.rb +12 -0
  82. data/lib/wavix/types/whats_app_problem.rb +22 -0
  83. data/lib/wavix/types/whats_app_problem_error_class.rb +14 -0
  84. data/lib/wavix/types/whats_app_sender.rb +17 -0
  85. data/lib/wavix/types/whats_app_sender_message_tier.rb +16 -0
  86. data/lib/wavix/types/whats_app_sender_quality_rating.rb +14 -0
  87. data/lib/wavix/types/whats_app_sender_status.rb +21 -0
  88. data/lib/wavix/types/whats_app_template.rb +25 -0
  89. data/lib/wavix/types/whats_app_template_category.rb +13 -0
  90. data/lib/wavix/types/whats_app_template_component.rb +18 -0
  91. data/lib/wavix/types/whats_app_template_component_format.rb +15 -0
  92. data/lib/wavix/types/whats_app_template_component_type.rb +14 -0
  93. data/lib/wavix/types/whats_app_template_create_request.rb +15 -0
  94. data/lib/wavix/types/whats_app_template_create_request_category.rb +13 -0
  95. data/lib/wavix/types/whats_app_template_list_response.rb +9 -0
  96. data/lib/wavix/types/whats_app_template_quality_rating.rb +14 -0
  97. data/lib/wavix/types/whats_app_template_response.rb +9 -0
  98. data/lib/wavix/types/whats_app_template_status.rb +21 -0
  99. data/lib/wavix/version.rb +1 -1
  100. data/lib/wavix/voice_campaigns/client.rb +2 -2
  101. data/lib/wavix/webrtc/tokens/client.rb +11 -3
  102. data/lib/wavix/webrtc/tokens/types/list_tokens_request.rb +15 -0
  103. data/lib/wavix/webrtc/tokens/types/web_rtc_token_create_request.rb +1 -1
  104. data/lib/wavix.rb +60 -83
  105. data/reference.md +114 -90
  106. metadata +42 -64
  107. data/lib/wavix/billing/invoices/types/list_invoices_response.rb +0 -17
  108. data/lib/wavix/billing/transactions/types/list_transactions_response.rb +0 -17
  109. data/lib/wavix/buy/cities/types/list_cities_response.rb +0 -13
  110. data/lib/wavix/buy/countries/types/list_countries_response.rb +0 -13
  111. data/lib/wavix/buy/numbers/types/list_numbers_response.rb +0 -15
  112. data/lib/wavix/buy/region_cities/types/list_region_cities_response.rb +0 -13
  113. data/lib/wavix/buy/regions/types/list_regions_response.rb +0 -13
  114. data/lib/wavix/cart/types/checkout_cart_response.rb +0 -11
  115. data/lib/wavix/cart/types/get_cart_response.rb +0 -13
  116. data/lib/wavix/cart/types/remove_cart_response.rb +0 -11
  117. data/lib/wavix/cdrs/types/cdr_search_request_disposition.rb +0 -17
  118. data/lib/wavix/number_validator/types/get_number_validator_response.rb +0 -43
  119. data/lib/wavix/numbers/types/delete_numbers_response.rb +0 -11
  120. data/lib/wavix/profile/config/types/get_config_response.rb +0 -15
  121. data/lib/wavix/sms_and_mms/messages/types/get_messages_response.rb +0 -45
  122. data/lib/wavix/sms_and_mms/messages/types/list_messages_response.rb +0 -15
  123. data/lib/wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.rb +0 -13
  124. data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.rb +0 -13
  125. data/lib/wavix/speech_analytics/types/create_speech_analytics_response.rb +0 -15
  126. data/lib/wavix/speech_analytics/types/get_speech_analytics_response.rb +0 -31
  127. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_language.rb +0 -17
  128. data/lib/wavix/speech_analytics/types/get_speech_analytics_response_status.rb +0 -14
  129. data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.rb +0 -13
  130. data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.rb +0 -13
  131. data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.rb +0 -19
  132. data/lib/wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.rb +0 -13
  133. data/lib/wavix/ten_dlc/brands/types/create_brands_response.rb +0 -61
  134. data/lib/wavix/ten_dlc/brands/types/create_brands_response_entity_type.rb +0 -18
  135. data/lib/wavix/ten_dlc/brands/types/create_brands_response_status.rb +0 -19
  136. data/lib/wavix/ten_dlc/brands/types/delete_brands_response.rb +0 -13
  137. data/lib/wavix/ten_dlc/brands/types/get_brands_response.rb +0 -61
  138. data/lib/wavix/ten_dlc/brands/types/get_brands_response_entity_type.rb +0 -18
  139. data/lib/wavix/ten_dlc/brands/types/get_brands_response_status.rb +0 -19
  140. data/lib/wavix/ten_dlc/brands/types/list_brands_response.rb +0 -16
  141. data/lib/wavix/ten_dlc/brands/types/list_brands_response_pagination.rb +0 -20
  142. data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_response.rb +0 -17
  143. data/lib/wavix/ten_dlc/brands/types/update_brands_response.rb +0 -61
  144. data/lib/wavix/ten_dlc/brands/types/update_brands_response_entity_type.rb +0 -18
  145. data/lib/wavix/ten_dlc/brands/types/update_brands_response_status.rb +0 -19
  146. data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.rb +0 -13
  147. data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.rb +0 -17
  148. data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.rb +0 -13
  149. data/lib/wavix/ten_dlc/campaigns/types/create_campaigns_response.rb +0 -89
  150. data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_response.rb +0 -13
  151. data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_response.rb +0 -89
  152. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.rb +0 -16
  153. data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.rb +0 -20
  154. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response.rb +0 -16
  155. data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.rb +0 -20
  156. data/lib/wavix/ten_dlc/campaigns/types/update_campaigns_response.rb +0 -89
  157. data/lib/wavix/ten_dlc/subscriptions/types/create_subscriptions_response.rb +0 -16
  158. data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.rb +0 -13
  159. data/lib/wavix/two_fa/verification/types/check_verification_response.rb +0 -13
  160. data/lib/wavix/two_fa/verification/types/create_verification_response.rb +0 -25
  161. data/lib/wavix/two_fa/verification/types/resend_verification_response.rb +0 -19
  162. data/lib/wavix/types/bad_request_error_body.rb +0 -11
  163. data/lib/wavix/types/file_transcription_response_language.rb +0 -15
  164. data/lib/wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.rb +0 -15
  165. data/lib/wavix/types/ten_dlc_brand_status.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 788d6d38aeb24c7ee557b44ee9333b7f7d897bdb3601534351b24d038ded9792
4
- data.tar.gz: 31fdb41dba157b025731bb89d4b438ed0e05bc89c9cf59c68ee8106f72c330a8
3
+ metadata.gz: 1a4e64b9cfc47eb4ebebf171011a903d18187d5b713583b287459be4041bd696
4
+ data.tar.gz: 66904b1cb1a982873ce7efd26f694597488bdf3b1307d210c59e69a554c550bd
5
5
  SHA512:
6
- metadata.gz: 2101d93afc6dc2f1da96e83a6834d92fcc0dd03afc8e9a1dfd1a704ee97a90548862e3ecdc4e17ffb003e1d08fa16212fb7e7b4f3ccaec6a7f87db9c6b95a655
7
- data.tar.gz: 90ece83619ce1f36dc241a671df57bf158b2c7ca5233e16cb0a1013d4e03b1bc106d0580976aa56cebcf832f1968c1bb898f28206a2724dc5766f2bd126781db
6
+ metadata.gz: 36a2c8615477e84a53ce2566d1507709aa22b9753cfe49e46261953c60fc14515461c9bc6bdee6d6a69109bc9b27877897e96821e2d4268b1b1294b537f7800c
7
+ data.tar.gz: 5d02b5285f02f9dae41ab94c819429c07a9e361b19302eabe2aa461a972cf0ef80fafd7da897192982265aa38f0d4e68f427a2ef3c55ce01f74fa775f7b422a8
data/.fern/metadata.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "cliVersion": "5.45.3",
3
3
  "generatorName": "fernapi/fern-ruby-sdk",
4
4
  "generatorVersion": "1.13.1",
5
- "originGitCommit": "af69033e3cb9260efdbfbf64452f841499bb8fc4",
5
+ "originGitCommit": "d29c16cfdf89e832f7792c0c920d6935e231f140",
6
6
  "originGitCommitIsDirty": false,
7
7
  "invokedBy": "manual",
8
- "requestedVersion": "1.0.0",
9
- "sdkVersion": "1.0.0"
8
+ "requestedVersion": "1.1.1",
9
+ "sdkVersion": "1.1.1"
10
10
  }
data/.fern/replay.lock ADDED
@@ -0,0 +1,16 @@
1
+ # DO NOT EDIT MANUALLY - Managed by Fern Replay
2
+ version: "1.0"
3
+ generations:
4
+ - commit_sha: 4731210176db5f3ff8ae412de752a6bab784933b
5
+ tree_hash: 174a9417701e355131f74c18ffa524acf0e5bf75
6
+ timestamp: 2026-09-23T07:50:24.143Z
7
+ cli_version: unknown
8
+ generator_versions: {}
9
+ - commit_sha: 6a2e8dd340486da43c8e2d337f7fcce044bd3618
10
+ tree_hash: 2a1716a51569430491fb4a8b0108aae2e33a0fe0
11
+ timestamp: 2026-09-23T07:50:24.468Z
12
+ cli_version: unknown
13
+ generator_versions:
14
+ fernapi/fern-ruby-sdk: 1.13.1
15
+ current_generation: 6a2e8dd340486da43c8e2d337f7fcce044bd3618
16
+ patches: []
data/.fernignore CHANGED
@@ -3,3 +3,6 @@ LICENSE
3
3
  README.md
4
4
  .fernignore
5
5
  SECURITY.md
6
+ .fern/replay.lock
7
+ .fern/replay.yml
8
+ .gitattributes
@@ -74,7 +74,7 @@ module Wavix
74
74
  end
75
75
  code = response.code.to_i
76
76
  if code.between?(200, 299)
77
- Wavix::Types::APIKey.load(response.body)
77
+ Wavix::Types::APIKeyWithSecret.load(response.body)
78
78
  else
79
79
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
80
80
  raise error_class.new(response.body, code: code)
@@ -24,7 +24,7 @@ module Wavix
24
24
  # @option params [Integer, nil] :page
25
25
  # @option params [Integer, nil] :per_page
26
26
  #
27
- # @return [Wavix::Billing::Invoices::Types::ListInvoicesResponse]
27
+ # @return [Wavix::Types::InvoiceListResponse]
28
28
  def list(request_options: {}, **params)
29
29
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
30
30
  query_params = {}
@@ -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::Billing::Invoices::Types::ListInvoicesResponse.load(response.body)
48
+ Wavix::Types::InvoiceListResponse.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)
@@ -29,7 +29,7 @@ module Wavix
29
29
  # @option params [Integer, nil] :page
30
30
  # @option params [Integer, nil] :per_page
31
31
  #
32
- # @return [Wavix::Billing::Transactions::Types::ListTransactionsResponse]
32
+ # @return [Wavix::Types::BillingTransactionListResponse]
33
33
  def list(request_options: {}, **params)
34
34
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
35
35
  query_params = {}
@@ -55,7 +55,7 @@ module Wavix
55
55
  end
56
56
  code = response.code.to_i
57
57
  if code.between?(200, 299)
58
- Wavix::Billing::Transactions::Types::ListTransactionsResponse.load(response.body)
58
+ Wavix::Types::BillingTransactionListResponse.load(response.body)
59
59
  else
60
60
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
61
61
  raise error_class.new(response.body, code: code)
@@ -24,7 +24,7 @@ module Wavix
24
24
  # @option params [Integer] :country_id
25
25
  # @option params [Boolean, nil] :text_enabled_only
26
26
  #
27
- # @return [Wavix::Buy::Cities::Types::ListCitiesResponse]
27
+ # @return [Wavix::Types::CityListResponse]
28
28
  def list(request_options: {}, **params)
29
29
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
30
30
  query_params = {}
@@ -44,7 +44,7 @@ module Wavix
44
44
  end
45
45
  code = response.code.to_i
46
46
  if code.between?(200, 299)
47
- Wavix::Buy::Cities::Types::ListCitiesResponse.load(response.body)
47
+ Wavix::Types::CityListResponse.load(response.body)
48
48
  else
49
49
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
50
50
  raise error_class.new(response.body, code: code)
@@ -22,7 +22,7 @@ module Wavix
22
22
  # @option request_options [Integer] :timeout_in_seconds
23
23
  # @option params [Boolean, nil] :text_enabled_only
24
24
  #
25
- # @return [Wavix::Buy::Countries::Types::ListCountriesResponse]
25
+ # @return [Wavix::Types::CountryListResponse]
26
26
  def list(request_options: {}, **params)
27
27
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
28
28
  query_params = {}
@@ -42,7 +42,7 @@ module Wavix
42
42
  end
43
43
  code = response.code.to_i
44
44
  if code.between?(200, 299)
45
- Wavix::Buy::Countries::Types::ListCountriesResponse.load(response.body)
45
+ Wavix::Types::CountryListResponse.load(response.body)
46
46
  else
47
47
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
48
48
  raise error_class.new(response.body, code: code)
@@ -26,7 +26,7 @@ module Wavix
26
26
  # @option params [Integer, nil] :page
27
27
  # @option params [Integer, nil] :per_page
28
28
  #
29
- # @return [Wavix::Buy::Numbers::Types::ListNumbersResponse]
29
+ # @return [Wavix::Types::AvailableNumberListResponse]
30
30
  def list(request_options: {}, **params)
31
31
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
32
32
  query_params = {}
@@ -48,7 +48,7 @@ module Wavix
48
48
  end
49
49
  code = response.code.to_i
50
50
  if code.between?(200, 299)
51
- Wavix::Buy::Numbers::Types::ListNumbersResponse.load(response.body)
51
+ Wavix::Types::AvailableNumberListResponse.load(response.body)
52
52
  else
53
53
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
54
54
  raise error_class.new(response.body, code: code)
@@ -24,7 +24,7 @@ module Wavix
24
24
  # @option params [Integer] :region_id
25
25
  # @option params [Boolean, nil] :text_enabled_only
26
26
  #
27
- # @return [Wavix::Buy::RegionCities::Types::ListRegionCitiesResponse]
27
+ # @return [Wavix::Types::CityListResponse]
28
28
  def list(request_options: {}, **params)
29
29
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
30
30
  query_params = {}
@@ -44,7 +44,7 @@ module Wavix
44
44
  end
45
45
  code = response.code.to_i
46
46
  if code.between?(200, 299)
47
- Wavix::Buy::RegionCities::Types::ListRegionCitiesResponse.load(response.body)
47
+ Wavix::Types::CityListResponse.load(response.body)
48
48
  else
49
49
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
50
50
  raise error_class.new(response.body, code: code)
@@ -23,7 +23,7 @@ module Wavix
23
23
  # @option params [Integer] :country_id
24
24
  # @option params [Boolean, nil] :text_enabled_only
25
25
  #
26
- # @return [Wavix::Buy::Regions::Types::ListRegionsResponse]
26
+ # @return [Wavix::Types::RegionListResponse]
27
27
  def list(request_options: {}, **params)
28
28
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
29
29
  query_params = {}
@@ -43,7 +43,7 @@ module Wavix
43
43
  end
44
44
  code = response.code.to_i
45
45
  if code.between?(200, 299)
46
- Wavix::Buy::Regions::Types::ListRegionsResponse.load(response.body)
46
+ Wavix::Types::RegionListResponse.load(response.body)
47
47
  else
48
48
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
49
49
  raise error_class.new(response.body, code: code)
@@ -11,7 +11,8 @@ module Wavix
11
11
  @client = client
12
12
  end
13
13
 
14
- # Plays an audio prompt into the active call identified by `id`.
14
+ # Plays an audio prompt into the active call identified by `id`. The audio is audible to the remote party in
15
+ # real time.
15
16
  #
16
17
  # @param request_options [Hash]
17
18
  # @param params [Wavix::CallControl::Audio::Types::CallAudioPlayRequest]
@@ -42,7 +42,7 @@ module Wavix
42
42
  end
43
43
  end
44
44
 
45
- # Places an outbound call. Returns the call with its `uuid` for tracking and control.
45
+ # Places a real, billable outbound PSTN call. Returns the call with its `uuid` for tracking and control.
46
46
  #
47
47
  # @param request_options [Hash]
48
48
  # @param params [Wavix::CallControl::Types::CallRequest]
@@ -110,7 +110,7 @@ module Wavix
110
110
  end
111
111
  end
112
112
 
113
- # Ends the active call identified by `id` by hanging up.
113
+ # Ends the active call identified by `id` by hanging up. Irreversible — the call cannot be resumed once ended.
114
114
  #
115
115
  # @param request_options [Hash]
116
116
  # @param params [Hash]
@@ -183,7 +183,8 @@ module Wavix
183
183
  end
184
184
  end
185
185
 
186
- # Answers the inbound call identified by `id`. Optionally starts media streaming on answer.
186
+ # Answers the inbound call identified by `id`. Optionally starts recording, post-call transcription, or live media
187
+ # streaming on answer.
187
188
  #
188
189
  # @param request_options [Hash]
189
190
  # @param params [Wavix::CallControl::Types::CallAnswerRequest]
@@ -11,8 +11,9 @@ module Wavix
11
11
  @client = client
12
12
  end
13
13
 
14
- # Starts streaming the media of the call identified by `call_id` to the configured destination. Returns the
15
- # `stream_id`.
14
+ # Starts streaming the audio of the call identified by `call_id` to a WebSocket destination you supply, in the
15
+ # direction (`stream_type`) and channel (`stream_channel`) you configure. The destination can be any URL you
16
+ # specify — Wavix does not restrict it. Returns the `stream_id`.
16
17
  #
17
18
  # @param request_options [Hash]
18
19
  # @param params [Wavix::CallControl::Streams::Types::CallStreamCreateRequest]
@@ -3,7 +3,9 @@
3
3
  module Wavix
4
4
  module CallControl
5
5
  module Types
6
- # Text to speak and voice to use.
6
+ # Text to speak and voice to use. Pick `voice` from the language family matching `language` (for example, a German
7
+ # voice such as `Hans` for `ge`, a Spanish voice such as `Conchita` for `sp`) — Wavix does not validate the
8
+ # pairing itself.
7
9
  class CallDtmfCollectRequestPromptSay < Internal::Types::Model
8
10
  field :text, -> { String }, optional: false, nullable: false
9
11
 
@@ -130,7 +130,7 @@ module Wavix
130
130
  end
131
131
  end
132
132
 
133
- # Deletes the call recording identified by `id`. Deletion is permanent and removes the recording file.
133
+ # Deletes the call recording identified by `id`. Deletion is permanent — the audio file is unrecoverable.
134
134
  #
135
135
  # @param request_options [Hash]
136
136
  # @param params [Hash]
@@ -44,7 +44,8 @@ module Wavix
44
44
  end
45
45
 
46
46
  # Registers a callback URL for the `on-call` or `post-call` event. Wavix sends a POST callback to the URL when the
47
- # event occurs.
47
+ # event occurs. Creates persistent configuration that forwards call metadata to the URL on every matching call
48
+ # until the webhook is deleted.
48
49
  #
49
50
  # @param request_options [Hash]
50
51
  # @param params [Wavix::CallWebhooks::Types::CallWebhooksCreateRequest]
@@ -20,7 +20,7 @@ module Wavix
20
20
  # @option request_options [Hash{String => Object}] :additional_body_parameters
21
21
  # @option request_options [Integer] :timeout_in_seconds
22
22
  #
23
- # @return [Wavix::Cart::Types::GetCartResponse]
23
+ # @return [Wavix::Types::CartResponse]
24
24
  def get(request_options: {}, **_params)
25
25
  request = Wavix::Internal::JSON::Request.new(
26
26
  base_url: request_options[:base_url],
@@ -35,7 +35,7 @@ module Wavix
35
35
  end
36
36
  code = response.code.to_i
37
37
  if code.between?(200, 299)
38
- Wavix::Cart::Types::GetCartResponse.load(response.body)
38
+ Wavix::Types::CartResponse.load(response.body)
39
39
  else
40
40
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
41
41
  raise error_class.new(response.body, code: code)
@@ -52,7 +52,7 @@ module Wavix
52
52
  # @option request_options [Hash{String => Object}] :additional_body_parameters
53
53
  # @option request_options [Integer] :timeout_in_seconds
54
54
  #
55
- # @return [Array[Object]]
55
+ # @return [Array[Wavix::Types::AvailableNumber]]
56
56
  def add(request_options: {}, **params)
57
57
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
58
58
  request = Wavix::Internal::JSON::Request.new(
@@ -84,7 +84,7 @@ module Wavix
84
84
  # @option request_options [Hash{String => Object}] :additional_body_parameters
85
85
  # @option request_options [Integer] :timeout_in_seconds
86
86
  #
87
- # @return [Wavix::Cart::Types::RemoveCartResponse]
87
+ # @return [Wavix::Types::SuccessResponse]
88
88
  def remove(request_options: {}, **params)
89
89
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
90
90
  request = Wavix::Internal::JSON::Request.new(
@@ -101,15 +101,15 @@ module Wavix
101
101
  end
102
102
  code = response.code.to_i
103
103
  if code.between?(200, 299)
104
- Wavix::Cart::Types::RemoveCartResponse.load(response.body)
104
+ Wavix::Types::SuccessResponse.load(response.body)
105
105
  else
106
106
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
107
107
  raise error_class.new(response.body, code: code)
108
108
  end
109
109
  end
110
110
 
111
- # Purchases the listed phone numbers from the cart. Activation and monthly fees are deducted from the account
112
- # balance.
111
+ # Purchases the listed phone numbers from the cart. Activation and monthly fees are debited from the account
112
+ # balance immediately, and the purchase cannot be reversed through this API.
113
113
  #
114
114
  # @param request_options [Hash]
115
115
  # @param params [Wavix::Cart::Types::CheckoutCartRequest]
@@ -119,7 +119,7 @@ module Wavix
119
119
  # @option request_options [Hash{String => Object}] :additional_body_parameters
120
120
  # @option request_options [Integer] :timeout_in_seconds
121
121
  #
122
- # @return [Wavix::Cart::Types::CheckoutCartResponse]
122
+ # @return [Wavix::Types::SuccessResponse]
123
123
  def checkout(request_options: {}, **params)
124
124
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
125
125
  request = Wavix::Internal::JSON::Request.new(
@@ -136,7 +136,7 @@ module Wavix
136
136
  end
137
137
  code = response.code.to_i
138
138
  if code.between?(200, 299)
139
- Wavix::Cart::Types::CheckoutCartResponse.load(response.body)
139
+ Wavix::Types::SuccessResponse.load(response.body)
140
140
  else
141
141
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
142
142
  raise error_class.new(response.body, code: code)
@@ -102,7 +102,8 @@ module Wavix
102
102
  end
103
103
 
104
104
  # Transcribes the recording of the call identified by `call_id`. Transcription is asynchronous; poll the
105
- # transcription endpoint for the result.
105
+ # transcription endpoint for the result. Billed per minute at the account's call-transcription rate; fails with an
106
+ # insufficient-funds error when the balance cannot cover it.
106
107
  #
107
108
  # @param request_options [Hash]
108
109
  # @param params [Wavix::Cdrs::Types::CdrRetranscriptionRequest]
@@ -22,11 +22,11 @@ module Wavix
22
22
 
23
23
  field :uuid, -> { String }, optional: true, nullable: false
24
24
 
25
- field :disposition, -> { Wavix::Cdrs::Types::CdrSearchRequestDisposition }, optional: true, nullable: false
25
+ field :disposition, -> { Wavix::Types::CallDisposition }, optional: true, nullable: false
26
26
 
27
- field :page, -> { Integer }, optional: false, nullable: false
27
+ field :page, -> { Integer }, optional: true, nullable: false
28
28
 
29
- field :per_page, -> { Integer }, optional: false, nullable: false
29
+ field :per_page, -> { Integer }, optional: true, nullable: false
30
30
  end
31
31
  end
32
32
  end
data/lib/wavix/client.rb CHANGED
@@ -11,7 +11,7 @@ module Wavix
11
11
  @raw_client = Wavix::Internal::Http::RawClient.new(
12
12
  base_url: base_url || Wavix::Environment::DEFAULT,
13
13
  headers: {
14
- "User-Agent" => "wavix-ruby-sdk/1.0.0",
14
+ "User-Agent" => "wavix-ruby-sdk/1.1.1",
15
15
  "X-Fern-Language" => "Ruby",
16
16
  Authorization: "Bearer #{token}"
17
17
  },
@@ -10,7 +10,10 @@ module Wavix
10
10
  @client = client
11
11
  end
12
12
 
13
- # Validates a single phone number and returns line type, carrier, portability, and reachability details.
13
+ # Validates a single phone number and returns line type, carrier, portability, and reachability details. The
14
+ # response's `error_code` is a per-number result code (`000` success; `013` internal error; `021` invalid format;
15
+ # `041` remote timeout; `042` remote query failed; `091` insufficient funds) — distinct from the HTTP status codes
16
+ # below.
14
17
  #
15
18
  # @param request_options [Hash]
16
19
  # @param params [Hash]
@@ -22,7 +25,7 @@ module Wavix
22
25
  # @option params [String] :phone_number
23
26
  # @option params [Wavix::Types::PhoneNumberValidationType] :type
24
27
  #
25
- # @return [Wavix::NumberValidator::Types::GetNumberValidatorResponse]
28
+ # @return [Wavix::Types::PhoneValidationResponse]
26
29
  def get(request_options: {}, **params)
27
30
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
28
31
  query_params = {}
@@ -43,7 +46,7 @@ module Wavix
43
46
  end
44
47
  code = response.code.to_i
45
48
  if code.between?(200, 299)
46
- Wavix::NumberValidator::Types::GetNumberValidatorResponse.load(response.body)
49
+ Wavix::Types::PhoneValidationResponse.load(response.body)
47
50
  else
48
51
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
49
52
  raise error_class.new(response.body, code: code)
@@ -8,9 +8,9 @@ module Wavix
8
8
 
9
9
  field :type, -> { Wavix::Types::PhoneNumberValidationType }, optional: false, nullable: false
10
10
 
11
- field :async, -> { Internal::Types::Boolean }, optional: false, nullable: false
11
+ field :async, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
12
 
13
- field :force, -> { Internal::Types::Boolean }, optional: false, nullable: false
13
+ field :force, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
14
  end
15
15
  end
16
16
  end
@@ -71,7 +71,7 @@ module Wavix
71
71
  # @option params [Integer, nil] :ids
72
72
  # @option params [String, nil] :dids
73
73
  #
74
- # @return [Wavix::Numbers::Types::DeleteNumbersResponse]
74
+ # @return [Wavix::Types::SuccessResponse]
75
75
  def delete(request_options: {}, **params)
76
76
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
77
77
  query_params = {}
@@ -92,7 +92,7 @@ module Wavix
92
92
  end
93
93
  code = response.code.to_i
94
94
  if code.between?(200, 299)
95
- Wavix::Numbers::Types::DeleteNumbersResponse.load(response.body)
95
+ Wavix::Types::SuccessResponse.load(response.body)
96
96
  else
97
97
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
98
98
  raise error_class.new(response.body, code: code)
@@ -21,7 +21,7 @@ module Wavix
21
21
  # @option request_options [Hash{String => Object}] :additional_body_parameters
22
22
  # @option request_options [Integer] :timeout_in_seconds
23
23
  #
24
- # @return [Wavix::Profile::Config::Types::GetConfigResponse]
24
+ # @return [Wavix::Types::ProfileConfigResponse]
25
25
  def get(request_options: {}, **_params)
26
26
  request = Wavix::Internal::JSON::Request.new(
27
27
  base_url: request_options[:base_url],
@@ -36,7 +36,7 @@ module Wavix
36
36
  end
37
37
  code = response.code.to_i
38
38
  if code.between?(200, 299)
39
- Wavix::Profile::Config::Types::GetConfigResponse.load(response.body)
39
+ Wavix::Types::ProfileConfigResponse.load(response.body)
40
40
  else
41
41
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
42
42
  raise error_class.new(response.body, code: code)
@@ -32,7 +32,7 @@ module Wavix
32
32
  # @option params [Integer, nil] :page
33
33
  # @option params [Integer, nil] :per_page
34
34
  #
35
- # @return [Wavix::SmsAndMms::Messages::Types::ListMessagesResponse]
35
+ # @return [Wavix::Types::MessageListResponse]
36
36
  def list(request_options: {}, **params)
37
37
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
38
38
  query_params = {}
@@ -61,7 +61,7 @@ module Wavix
61
61
  end
62
62
  code = response.code.to_i
63
63
  if code.between?(200, 299)
64
- Wavix::SmsAndMms::Messages::Types::ListMessagesResponse.load(response.body)
64
+ Wavix::Types::MessageListResponse.load(response.body)
65
65
  else
66
66
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
67
67
  raise error_class.new(response.body, code: code)
@@ -69,8 +69,8 @@ module Wavix
69
69
  end
70
70
 
71
71
  # Sends an SMS or MMS message. MMS is supported for U.S. numbers only. Track delivery using the returned
72
- # `message_id` and the message status callback.
73
- # **Rate limit**: 20 messages per phone number in 24 hours.
72
+ # `message_id` and the message status callback. The recipient must be opted in to receive messages from the
73
+ # account; sending to an opted-out number fails.
74
74
  #
75
75
  # @param request_options [Hash]
76
76
  # @param params [Wavix::SmsAndMms::Messages::Types::SendMessagesRequest]
@@ -115,7 +115,7 @@ module Wavix
115
115
  # @option request_options [Integer] :timeout_in_seconds
116
116
  # @option params [String] :id
117
117
  #
118
- # @return [Wavix::SmsAndMms::Messages::Types::GetMessagesResponse]
118
+ # @return [Wavix::Types::MessageResponse]
119
119
  def get(request_options: {}, **params)
120
120
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
121
121
  request = Wavix::Internal::JSON::Request.new(
@@ -131,7 +131,7 @@ module Wavix
131
131
  end
132
132
  code = response.code.to_i
133
133
  if code.between?(200, 299)
134
- Wavix::SmsAndMms::Messages::Types::GetMessagesResponse.load(response.body)
134
+ Wavix::Types::MessageResponse.load(response.body)
135
135
  else
136
136
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
137
137
  raise error_class.new(response.body, code: code)
@@ -70,7 +70,7 @@ module Wavix
70
70
  # @option request_options [Hash{String => Object}] :additional_body_parameters
71
71
  # @option request_options [Integer] :timeout_in_seconds
72
72
  #
73
- # @return [Wavix::SmsAndMms::OptOuts::Types::CreateOptOutsResponse]
73
+ # @return [Wavix::Types::SuccessResponse]
74
74
  def create(request_options: {}, **params)
75
75
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
76
76
  request = Wavix::Internal::JSON::Request.new(
@@ -87,7 +87,7 @@ module Wavix
87
87
  end
88
88
  code = response.code.to_i
89
89
  if code.between?(200, 299)
90
- Wavix::SmsAndMms::OptOuts::Types::CreateOptOutsResponse.load(response.body)
90
+ Wavix::Types::SuccessResponse.load(response.body)
91
91
  else
92
92
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
93
93
  raise error_class.new(response.body, code: code)
@@ -43,7 +43,8 @@ module Wavix
43
43
  end
44
44
  end
45
45
 
46
- # Creates a Sender ID. Use the 10DLC API to create Sender IDs in the US.
46
+ # Creates a Sender ID. Use the 10DLC API to create Sender IDs in the US. Registering a Sender ID incurs a
47
+ # recurring monthly fee, billed to the account balance.
47
48
  #
48
49
  # @param request_options [Hash]
49
50
  # @param params [Wavix::SmsAndMms::SenderIDs::Types::SenderIDCreateRequest]
@@ -122,7 +123,7 @@ module Wavix
122
123
  # @option request_options [Integer] :timeout_in_seconds
123
124
  # @option params [String] :id
124
125
  #
125
- # @return [Wavix::SmsAndMms::SenderIDs::Types::DeleteSenderIDsResponse]
126
+ # @return [Wavix::Types::SuccessResponse]
126
127
  def delete(request_options: {}, **params)
127
128
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
128
129
  request = Wavix::Internal::JSON::Request.new(
@@ -138,7 +139,7 @@ module Wavix
138
139
  end
139
140
  code = response.code.to_i
140
141
  if code.between?(200, 299)
141
- Wavix::SmsAndMms::SenderIDs::Types::DeleteSenderIDsResponse.load(response.body)
142
+ Wavix::Types::SuccessResponse.load(response.body)
142
143
  else
143
144
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
144
145
  raise error_class.new(response.body, code: code)
@@ -34,7 +34,7 @@ module Wavix
34
34
  # @option request_options [Hash{String => Object}] :additional_body_parameters
35
35
  # @option request_options [Integer] :timeout_in_seconds
36
36
  #
37
- # @return [Wavix::SpeechAnalytics::Types::CreateSpeechAnalyticsResponse]
37
+ # @return [Wavix::Types::SubmitFileTranscriptionResponse]
38
38
  def create(request_options: {}, **params)
39
39
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
40
40
  body = Internal::Multipart::FormData.new
@@ -67,7 +67,7 @@ module Wavix
67
67
  end
68
68
  code = response.code.to_i
69
69
  if code.between?(200, 299)
70
- Wavix::SpeechAnalytics::Types::CreateSpeechAnalyticsResponse.load(response.body)
70
+ Wavix::Types::SubmitFileTranscriptionResponse.load(response.body)
71
71
  else
72
72
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
73
73
  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] :request_id
88
88
  #
89
- # @return [Wavix::SpeechAnalytics::Types::GetSpeechAnalyticsResponse]
89
+ # @return [Wavix::Types::FileTranscriptionResponse]
90
90
  def get(request_options: {}, **params)
91
91
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
92
92
  request = Wavix::Internal::JSON::Request.new(
@@ -102,7 +102,7 @@ module Wavix
102
102
  end
103
103
  code = response.code.to_i
104
104
  if code.between?(200, 299)
105
- Wavix::SpeechAnalytics::Types::GetSpeechAnalyticsResponse.load(response.body)
105
+ Wavix::Types::FileTranscriptionResponse.load(response.body)
106
106
  else
107
107
  error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
108
108
  raise error_class.new(response.body, code: code)
@@ -20,12 +20,16 @@ module Wavix
20
20
  # @option request_options [Hash{String => Object}] :additional_body_parameters
21
21
  # @option request_options [Integer] :timeout_in_seconds
22
22
  # @option params [Wavix::SubAccounts::Types::ListSubAccountsRequestStatus, nil] :status
23
+ # @option params [Integer, nil] :page
24
+ # @option params [Integer, nil] :per_page
23
25
  #
24
26
  # @return [Wavix::Types::SubAccountsListResponse]
25
27
  def list(request_options: {}, **params)
26
28
  params = Wavix::Internal::Types::Utils.normalize_keys(params)
27
29
  query_params = {}
28
30
  query_params["status"] = params[:status] if params.key?(:status)
31
+ query_params["page"] = params[:page] if params.key?(:page)
32
+ query_params["per_page"] = params[:per_page] if params.key?(:per_page)
29
33
 
30
34
  request = Wavix::Internal::JSON::Request.new(
31
35
  base_url: request_options[:base_url],
@@ -5,6 +5,10 @@ module Wavix
5
5
  module Types
6
6
  class ListSubAccountsRequest < Internal::Types::Model
7
7
  field :status, -> { Wavix::SubAccounts::Types::ListSubAccountsRequestStatus }, optional: true, nullable: false
8
+
9
+ field :page, -> { Integer }, optional: true, nullable: false
10
+
11
+ field :per_page, -> { Integer }, optional: true, nullable: false
8
12
  end
9
13
  end
10
14
  end
@@ -6,7 +6,7 @@ module Wavix
6
6
  class SubAccountsUpdateRequest < Internal::Types::Model
7
7
  field :id, -> { Integer }, optional: false, nullable: false
8
8
 
9
- field :name, -> { String }, optional: false, nullable: false
9
+ field :name, -> { String }, optional: true, nullable: false
10
10
 
11
11
  field :status, -> { Wavix::SubAccounts::Types::SubAccountsUpdateRequestStatus }, optional: true, nullable: false
12
12