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
@@ -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
@@ -23,7 +23,7 @@ module Wavix
23
23
 
24
24
  field :call_limit, -> { Integer }, optional: true, nullable: false
25
25
 
26
- field :cost_limit, -> { Internal::Types::Boolean }, optional: false, nullable: false
26
+ field :cost_limit, -> { Internal::Types::Boolean }, optional: true, nullable: false
27
27
 
28
28
  field :max_call_cost, -> { Integer }, optional: true, nullable: false
29
29
 
@@ -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,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessage < Internal::Types::Model
6
+ field :uuid, -> { String }, optional: false, nullable: false
7
+
8
+ field :from, -> { String }, optional: false, nullable: false
9
+
10
+ field :to, -> { String }, optional: false, nullable: false
11
+
12
+ field :status, -> { Wavix::Types::WhatsAppMessageStatus }, optional: false, nullable: false
13
+
14
+ field :template, -> { Wavix::Types::WhatsAppMessageTemplate }, optional: true, nullable: false
15
+
16
+ field :created_at, -> { String }, optional: false, nullable: false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageGetResponse < Internal::Types::Model
6
+ field :message, -> { Wavix::Types::WhatsAppMessageListItem }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageListItem < Internal::Types::Model
6
+ field :uuid, -> { String }, optional: false, nullable: false
7
+
8
+ field :direction, -> { Wavix::Types::WhatsAppMessageListItemDirection }, optional: false, nullable: false
9
+
10
+ field :status, -> { Wavix::Types::WhatsAppMessageListItemStatus }, optional: false, nullable: false
11
+
12
+ field :from, -> { String }, optional: false, nullable: false
13
+
14
+ field :to, -> { String }, optional: false, nullable: false
15
+
16
+ field :country, -> { String }, optional: true, nullable: false
17
+
18
+ field :created_at, -> { String }, optional: false, nullable: false
19
+ end
20
+ end
21
+ end
@@ -2,11 +2,11 @@
2
2
 
3
3
  module Wavix
4
4
  module Types
5
- module FileTranscriptionResponseStatus
5
+ module WhatsAppMessageListItemDirection
6
6
  extend Wavix::Internal::Types::Enum
7
7
 
8
- COMPLETED = "completed"
9
- FAILED = "failed"
8
+ OUTBOUND = "outbound"
9
+ INBOUND = "inbound"
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageListItemStatus
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ FAILED = "failed"
9
+ SENT = "sent"
10
+ DELIVERED = "delivered"
11
+ UNDELIVERED = "undelivered"
12
+ EXPIRED = "expired"
13
+ REJECTED = "rejected"
14
+ UNKNOWN = "unknown"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageListResponse < Internal::Types::Model
6
+ field :messages, -> { Internal::Types::Array[Wavix::Types::WhatsAppMessageListItem] }, optional: false, nullable: false
7
+
8
+ field :pagination, -> { Wavix::Types::Pagination }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageSendRequest < Internal::Types::Model
6
+ field :from, -> { String }, optional: false, nullable: false
7
+
8
+ field :to, -> { String }, optional: false, nullable: false
9
+
10
+ field :template, -> { Wavix::Types::WhatsAppMessageSendRequestTemplate }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageSendRequestTemplate < Internal::Types::Model
6
+ field :name, -> { String }, optional: false, nullable: false
7
+
8
+ field :language, -> { String }, optional: false, nullable: false
9
+
10
+ field :placeholders, -> { Internal::Types::Array[String] }, optional: true, nullable: false
11
+
12
+ field :header, -> { Wavix::Types::WhatsAppMessageSendRequestTemplateHeader }, optional: true, nullable: false
13
+
14
+ field :buttons, -> { Internal::Types::Array[Wavix::Types::WhatsAppMessageSendRequestTemplateButtonsItem] }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageSendRequestTemplateButtonsItem < Internal::Types::Model
6
+ field :type, -> { Wavix::Types::WhatsAppMessageSendRequestTemplateButtonsItemType }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageSendRequestTemplateButtonsItemType
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ QUICK_REPLY = "QUICK_REPLY"
9
+ URL = "URL"
10
+ COPY_CODE = "COPY_CODE"
11
+ FLOW = "FLOW"
12
+ CATALOG = "CATALOG"
13
+ MULTI_PRODUCT = "MULTI_PRODUCT"
14
+ ORDER_DETAILS = "ORDER_DETAILS"
15
+ VOICE_CALL = "VOICE_CALL"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Header content, required only when the template's `HEADER` component needs one.
6
+ class WhatsAppMessageSendRequestTemplateHeader < Internal::Types::Model
7
+ field :type, -> { Wavix::Types::WhatsAppMessageSendRequestTemplateHeaderType }, optional: true, nullable: false
8
+
9
+ field :placeholder, -> { String }, optional: true, nullable: false
10
+
11
+ field :media_url, -> { String }, optional: true, nullable: false, api_name: "mediaUrl"
12
+
13
+ field :filename, -> { String }, optional: true, nullable: false
14
+
15
+ field :latitude, -> { Integer }, optional: true, nullable: false
16
+
17
+ field :longitude, -> { Integer }, optional: true, nullable: false
18
+
19
+ field :parameter_name, -> { String }, optional: true, nullable: false, api_name: "parameterName"
20
+
21
+ field :text, -> { String }, optional: true, nullable: false
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageSendRequestTemplateHeaderType
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ TEXT = "TEXT"
9
+ TEXT_NAMED_PARAMETERS = "TEXT_NAMED_PARAMETERS"
10
+ IMAGE = "IMAGE"
11
+ VIDEO = "VIDEO"
12
+ DOCUMENT = "DOCUMENT"
13
+ LOCATION = "LOCATION"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppMessageSendResponse < Internal::Types::Model
6
+ field :message, -> { Wavix::Types::WhatsAppMessage }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppMessageStatus
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ FAILED = "failed"
9
+ SENT = "sent"
10
+ DELIVERED = "delivered"
11
+ UNDELIVERED = "undelivered"
12
+ EXPIRED = "expired"
13
+ REJECTED = "rejected"
14
+ UNKNOWN = "unknown"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # Template used to send the message.
6
+ class WhatsAppMessageTemplate < Internal::Types::Model
7
+ field :name, -> { String }, optional: true, nullable: false
8
+
9
+ field :language, -> { String }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # RFC 9457 problem document returned by WhatsApp endpoints as `application/problem+json`.
6
+ class WhatsAppProblem < Internal::Types::Model
7
+ field :type, -> { String }, optional: false, nullable: false
8
+
9
+ field :title, -> { String }, optional: false, nullable: false
10
+
11
+ field :status, -> { Integer }, optional: false, nullable: false
12
+
13
+ field :detail, -> { String }, optional: false, nullable: false
14
+
15
+ field :instance, -> { String }, optional: false, nullable: false
16
+
17
+ field :error_class, -> { Wavix::Types::WhatsAppProblemErrorClass }, optional: true, nullable: false
18
+
19
+ field :error_code, -> { String }, optional: true, nullable: false
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppProblemErrorClass
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ PERMANENT = "permanent"
9
+ RETRIABLE = "retriable"
10
+ RATE_LIMITED = "rate_limited"
11
+ INVALID_TEMPLATE = "invalid_template"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppSender < Internal::Types::Model
6
+ field :phone_number, -> { String }, optional: false, nullable: false
7
+
8
+ field :display_name, -> { String }, optional: true, nullable: false
9
+
10
+ field :status, -> { Wavix::Types::WhatsAppSenderStatus }, optional: false, nullable: false
11
+
12
+ field :quality_rating, -> { Wavix::Types::WhatsAppSenderQualityRating }, optional: true, nullable: false
13
+
14
+ field :message_tier, -> { Wavix::Types::WhatsAppSenderMessageTier }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppSenderMessageTier
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ LIMIT_NA = "limit_na"
9
+ LIMIT250 = "limit_250"
10
+ LIMIT2K = "limit_2k"
11
+ LIMIT10K = "limit_10k"
12
+ LIMIT100K = "limit_100k"
13
+ UNLIMITED = "unlimited"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppSenderQualityRating
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ HIGH = "high"
9
+ MEDIUM = "medium"
10
+ LOW = "low"
11
+ UNKNOWN = "unknown"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppSenderStatus
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ BANNED = "banned"
9
+ CONNECTED = "connected"
10
+ DELETED = "deleted"
11
+ DISCONNECTED = "disconnected"
12
+ FLAGGED = "flagged"
13
+ MIGRATED = "migrated"
14
+ PENDING = "pending"
15
+ RATE_LIMITED = "rate_limited"
16
+ RESTRICTED = "restricted"
17
+ UNKNOWN = "unknown"
18
+ UNVERIFIED = "unverified"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppTemplate < Internal::Types::Model
6
+ field :uuid, -> { String }, optional: false, nullable: false
7
+
8
+ field :name, -> { String }, optional: false, nullable: false
9
+
10
+ field :language, -> { String }, optional: false, nullable: false
11
+
12
+ field :category, -> { Wavix::Types::WhatsAppTemplateCategory }, optional: false, nullable: false
13
+
14
+ field :status, -> { Wavix::Types::WhatsAppTemplateStatus }, optional: false, nullable: false
15
+
16
+ field :quality_rating, -> { Wavix::Types::WhatsAppTemplateQualityRating }, optional: true, nullable: false
17
+
18
+ field :submitted_at, -> { String }, optional: true, nullable: false
19
+
20
+ field :components, -> { Internal::Types::Array[Wavix::Types::WhatsAppTemplateComponent] }, optional: false, nullable: false
21
+
22
+ field :created_at, -> { String }, optional: false, nullable: false
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppTemplateCategory
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ MARKETING = "marketing"
9
+ AUTHENTICATION = "authentication"
10
+ UTILITY = "utility"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ # One structural component (header, body, footer, or buttons) of a WhatsApp message template.
6
+ class WhatsAppTemplateComponent < Internal::Types::Model
7
+ field :type, -> { Wavix::Types::WhatsAppTemplateComponentType }, optional: false, nullable: false
8
+
9
+ field :format, -> { Wavix::Types::WhatsAppTemplateComponentFormat }, optional: true, nullable: false
10
+
11
+ field :text, -> { String }, optional: true, nullable: false
12
+
13
+ field :example, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
14
+
15
+ field :buttons, -> { Internal::Types::Array[Internal::Types::Hash[String, Object]] }, optional: true, nullable: false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppTemplateComponentFormat
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ TEXT = "TEXT"
9
+ IMAGE = "IMAGE"
10
+ VIDEO = "VIDEO"
11
+ DOCUMENT = "DOCUMENT"
12
+ LOCATION = "LOCATION"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppTemplateComponentType
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ HEADER = "HEADER"
9
+ BODY = "BODY"
10
+ FOOTER = "FOOTER"
11
+ BUTTONS = "BUTTONS"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppTemplateCreateRequest < Internal::Types::Model
6
+ field :name, -> { String }, optional: false, nullable: false
7
+
8
+ field :language, -> { String }, optional: false, nullable: false
9
+
10
+ field :category, -> { Wavix::Types::WhatsAppTemplateCreateRequestCategory }, optional: false, nullable: false
11
+
12
+ field :components, -> { Internal::Types::Array[Wavix::Types::WhatsAppTemplateComponent] }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppTemplateCreateRequestCategory
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ MARKETING = "marketing"
9
+ AUTHENTICATION = "authentication"
10
+ UTILITY = "utility"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ class WhatsAppTemplateListResponse < Internal::Types::Model
6
+ field :templates, -> { Internal::Types::Array[Wavix::Types::WhatsAppTemplate] }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Wavix
4
+ module Types
5
+ module WhatsAppTemplateQualityRating
6
+ extend Wavix::Internal::Types::Enum
7
+
8
+ HIGH = "high"
9
+ MEDIUM = "medium"
10
+ LOW = "low"
11
+ UNKNOWN = "unknown"
12
+ end
13
+ end
14
+ end