telnyx 5.60.0 → 5.62.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +10 -5
  5. data/lib/telnyx/errors.rb +0 -10
  6. data/lib/telnyx/lib/webhook_verification.rb +172 -0
  7. data/lib/telnyx/models/ai/assistants/{tag_delete_params.rb → tag_add_params.rb} +2 -2
  8. data/lib/telnyx/models/ai/assistants/{tag_delete_response.rb → tag_add_response.rb} +2 -2
  9. data/lib/telnyx/models/ai/assistants/{tag_create_params.rb → tag_remove_params.rb} +2 -2
  10. data/lib/telnyx/models/ai/assistants/{tag_create_response.rb → tag_remove_response.rb} +2 -2
  11. data/lib/telnyx/models/call_cost_webhook_event.rb +242 -0
  12. data/lib/telnyx/models/calls/action_start_noise_suppression_params.rb +135 -8
  13. data/lib/telnyx/models/text_to_speech_generate_params.rb +3 -3
  14. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +3 -1
  15. data/lib/telnyx/models/unwrap_webhook_event.rb +3 -1
  16. data/lib/telnyx/models/voice_clone_create_from_design_params.rb +27 -6
  17. data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +23 -2
  18. data/lib/telnyx/models/voice_clone_create_params.rb +79 -0
  19. data/lib/telnyx/models/voice_clone_create_response.rb +19 -0
  20. data/lib/telnyx/models/voice_clone_data.rb +41 -1
  21. data/lib/telnyx/models/voice_clone_list_params.rb +22 -1
  22. data/lib/telnyx/models/voice_design_create_params.rb +24 -1
  23. data/lib/telnyx/models/voice_design_data.rb +45 -1
  24. data/lib/telnyx/models/voice_design_list_response.rb +32 -1
  25. data/lib/telnyx/models/{voice_design_update_params.rb → voice_design_rename_params.rb} +2 -2
  26. data/lib/telnyx/models/{voice_design_update_response.rb → voice_design_rename_response.rb} +42 -11
  27. data/lib/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rb → phone_number_initialize_verification_params.rb} +5 -5
  28. data/lib/telnyx/models/whatsapp/template_create_params.rb +530 -0
  29. data/lib/telnyx/models/whatsapp/{message_template_create_response.rb → template_create_response.rb} +2 -2
  30. data/lib/telnyx/models/whatsapp/{message_template_list_params.rb → template_list_params.rb} +5 -5
  31. data/lib/telnyx/models/whatsapp_message_template_delete_params.rb +20 -0
  32. data/lib/telnyx/models/whatsapp_message_template_retrieve_params.rb +20 -0
  33. data/lib/telnyx/models/whatsapp_message_template_retrieve_response.rb +16 -0
  34. data/lib/telnyx/models/whatsapp_message_template_update_params.rb +504 -0
  35. data/lib/telnyx/models/whatsapp_message_template_update_response.rb +16 -0
  36. data/lib/telnyx/models/whatsapp_template_data.rb +10 -3
  37. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_params.rb → credit_account_create_quote_params.rb} +2 -2
  38. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_response.rb → credit_account_create_quote_response.rb} +31 -32
  39. data/lib/telnyx/models/x402/{credit_account_settle_payment_params.rb → credit_account_settle_params.rb} +3 -3
  40. data/lib/telnyx/models/x402/{credit_account_settle_payment_response.rb → credit_account_settle_response.rb} +14 -15
  41. data/lib/telnyx/models.rb +12 -4
  42. data/lib/telnyx/resources/ai/assistants/tags.rb +28 -28
  43. data/lib/telnyx/resources/calls/actions.rb +1 -1
  44. data/lib/telnyx/resources/voice_clones.rb +38 -31
  45. data/lib/telnyx/resources/voice_designs.rb +27 -25
  46. data/lib/telnyx/resources/webhooks.rb +10 -183
  47. data/lib/telnyx/resources/whatsapp/business_accounts/phone_numbers.rb +5 -5
  48. data/lib/telnyx/resources/whatsapp/phone_numbers/profile.rb +0 -4
  49. data/lib/telnyx/resources/whatsapp/templates.rb +91 -0
  50. data/lib/telnyx/resources/whatsapp.rb +3 -3
  51. data/lib/telnyx/resources/whatsapp_message_templates.rb +81 -0
  52. data/lib/telnyx/resources/x402/credit_account.rb +13 -13
  53. data/lib/telnyx/version.rb +1 -1
  54. data/lib/telnyx.rb +25 -24
  55. data/rbi/telnyx/client.rbi +8 -4
  56. data/rbi/telnyx/models/ai/assistants/{tag_create_params.rbi → tag_add_params.rbi} +2 -2
  57. data/rbi/telnyx/models/ai/assistants/{tag_delete_response.rbi → tag_add_response.rbi} +2 -2
  58. data/rbi/telnyx/models/ai/assistants/{tag_delete_params.rbi → tag_remove_params.rbi} +2 -2
  59. data/rbi/telnyx/models/ai/assistants/{tag_create_response.rbi → tag_remove_response.rbi} +2 -2
  60. data/rbi/telnyx/models/call_cost_webhook_event.rbi +485 -0
  61. data/rbi/telnyx/models/calls/action_start_noise_suppression_params.rbi +338 -12
  62. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +2 -1
  63. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +1 -0
  64. data/rbi/telnyx/models/unwrap_webhook_event.rbi +1 -0
  65. data/rbi/telnyx/models/voice_clone_create_from_design_params.rbi +51 -0
  66. data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +67 -2
  67. data/rbi/telnyx/models/voice_clone_create_params.rbi +142 -0
  68. data/rbi/telnyx/models/voice_clone_create_response.rbi +36 -0
  69. data/rbi/telnyx/models/voice_clone_data.rbi +57 -0
  70. data/rbi/telnyx/models/voice_clone_list_params.rbi +62 -0
  71. data/rbi/telnyx/models/voice_design_create_params.rbi +60 -0
  72. data/rbi/telnyx/models/voice_design_data.rbi +59 -0
  73. data/rbi/telnyx/models/voice_design_list_response.rbi +73 -0
  74. data/rbi/telnyx/models/{voice_design_update_params.rbi → voice_design_rename_params.rbi} +2 -2
  75. data/rbi/telnyx/models/{voice_design_update_response.rbi → voice_design_rename_response.rbi} +90 -14
  76. data/rbi/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbi → phone_number_initialize_verification_params.rbi} +10 -10
  77. data/rbi/telnyx/models/whatsapp/template_create_params.rbi +1177 -0
  78. data/rbi/telnyx/models/whatsapp/{message_template_create_response.rbi → template_create_response.rbi} +2 -2
  79. data/rbi/telnyx/models/whatsapp/{message_template_list_params.rbi → template_list_params.rbi} +11 -11
  80. data/rbi/telnyx/models/whatsapp_message_template_delete_params.rbi +38 -0
  81. data/rbi/telnyx/models/whatsapp_message_template_retrieve_params.rbi +38 -0
  82. data/rbi/telnyx/models/whatsapp_message_template_retrieve_response.rbi +33 -0
  83. data/rbi/telnyx/models/whatsapp_message_template_update_params.rbi +1178 -0
  84. data/rbi/telnyx/models/whatsapp_message_template_update_response.rbi +33 -0
  85. data/rbi/telnyx/models/whatsapp_template_data.rbi +10 -2
  86. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_params.rbi → credit_account_create_quote_params.rbi} +2 -2
  87. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_response.rbi → credit_account_create_quote_response.rbi} +41 -42
  88. data/rbi/telnyx/models/x402/{credit_account_settle_payment_params.rbi → credit_account_settle_params.rbi} +2 -2
  89. data/rbi/telnyx/models/x402/{credit_account_settle_payment_response.rbi → credit_account_settle_response.rbi} +21 -26
  90. data/rbi/telnyx/models.rbi +29 -3
  91. data/rbi/telnyx/resources/ai/assistants/tags.rbi +13 -13
  92. data/rbi/telnyx/resources/calls/actions.rbi +4 -3
  93. data/rbi/telnyx/resources/voice_clones.rbi +36 -25
  94. data/rbi/telnyx/resources/voice_designs.rbi +21 -17
  95. data/rbi/telnyx/resources/webhooks.rbi +12 -2
  96. data/rbi/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbi +2 -2
  97. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile.rbi +0 -5
  98. data/rbi/telnyx/resources/whatsapp/templates.rbi +85 -0
  99. data/rbi/telnyx/resources/whatsapp.rbi +2 -2
  100. data/rbi/telnyx/resources/whatsapp_message_templates.rbi +67 -0
  101. data/rbi/telnyx/resources/x402/credit_account.rbi +4 -6
  102. data/sig/telnyx/client.rbs +4 -2
  103. data/sig/telnyx/models/ai/assistants/{tag_delete_params.rbs → tag_add_params.rbs} +2 -2
  104. data/sig/telnyx/models/ai/assistants/{tag_delete_response.rbs → tag_add_response.rbs} +2 -2
  105. data/sig/telnyx/models/ai/assistants/{tag_create_params.rbs → tag_remove_params.rbs} +2 -2
  106. data/sig/telnyx/models/ai/assistants/{tag_create_response.rbs → tag_remove_response.rbs} +2 -2
  107. data/sig/telnyx/models/call_cost_webhook_event.rbs +235 -0
  108. data/sig/telnyx/models/calls/action_start_noise_suppression_params.rbs +124 -4
  109. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +1 -0
  110. data/sig/telnyx/models/unwrap_webhook_event.rbs +1 -0
  111. data/sig/telnyx/models/voice_clone_create_from_design_params.rbs +23 -1
  112. data/sig/telnyx/models/voice_clone_create_from_upload_params.rbs +22 -0
  113. data/sig/telnyx/models/voice_clone_create_params.rbs +75 -0
  114. data/sig/telnyx/models/voice_clone_create_response.rbs +15 -0
  115. data/sig/telnyx/models/voice_clone_data.rbs +34 -0
  116. data/sig/telnyx/models/voice_clone_list_params.rbs +22 -0
  117. data/sig/telnyx/models/voice_design_create_params.rbs +22 -0
  118. data/sig/telnyx/models/voice_design_data.rbs +30 -0
  119. data/sig/telnyx/models/voice_design_list_response.rbs +25 -0
  120. data/sig/telnyx/models/{voice_design_update_params.rbs → voice_design_rename_params.rbs} +2 -2
  121. data/sig/telnyx/models/voice_design_rename_response.rbs +104 -0
  122. data/sig/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbs → phone_number_initialize_verification_params.rbs} +9 -9
  123. data/sig/telnyx/models/whatsapp/template_create_params.rbs +479 -0
  124. data/sig/telnyx/models/whatsapp/{message_template_update_response.rbs → template_create_response.rbs} +2 -3
  125. data/sig/telnyx/models/whatsapp/{message_template_list_params.rbs → template_list_params.rbs} +9 -9
  126. data/sig/telnyx/models/whatsapp_message_template_delete_params.rbs +20 -0
  127. data/sig/telnyx/models/whatsapp_message_template_retrieve_params.rbs +20 -0
  128. data/sig/telnyx/models/whatsapp_message_template_retrieve_response.rbs +16 -0
  129. data/sig/telnyx/models/whatsapp_message_template_update_params.rbs +473 -0
  130. data/sig/telnyx/models/whatsapp_message_template_update_response.rbs +16 -0
  131. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_params.rbs → credit_account_create_quote_params.rbs} +2 -2
  132. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_response.rbs → credit_account_create_quote_response.rbs} +46 -48
  133. data/sig/telnyx/models/x402/{credit_account_settle_payment_params.rbs → credit_account_settle_params.rbs} +2 -2
  134. data/sig/telnyx/models/x402/{credit_account_settle_payment_response.rbs → credit_account_settle_response.rbs} +22 -22
  135. data/sig/telnyx/models.rbs +12 -4
  136. data/sig/telnyx/resources/ai/assistants/tags.rbs +8 -8
  137. data/sig/telnyx/resources/voice_clones.rbs +11 -8
  138. data/sig/telnyx/resources/voice_designs.rbs +7 -6
  139. data/sig/telnyx/resources/webhooks.rbs +5 -1
  140. data/sig/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbs +2 -2
  141. data/sig/telnyx/resources/whatsapp/phone_numbers/profile.rbs +0 -2
  142. data/sig/telnyx/resources/whatsapp/templates.rbs +28 -0
  143. data/sig/telnyx/resources/whatsapp.rbs +1 -1
  144. data/sig/telnyx/resources/whatsapp_message_templates.rbs +21 -0
  145. data/sig/telnyx/resources/x402/credit_account.rbs +4 -4
  146. metadata +75 -65
  147. data/lib/telnyx/models/whatsapp/message_template_create_params.rb +0 -58
  148. data/lib/telnyx/models/whatsapp/message_template_delete_params.rb +0 -22
  149. data/lib/telnyx/models/whatsapp/message_template_retrieve_params.rb +0 -22
  150. data/lib/telnyx/models/whatsapp/message_template_retrieve_response.rb +0 -18
  151. data/lib/telnyx/models/whatsapp/message_template_update_params.rb +0 -46
  152. data/lib/telnyx/models/whatsapp/message_template_update_response.rb +0 -18
  153. data/lib/telnyx/resources/whatsapp/message_templates.rb +0 -149
  154. data/lib/telnyx/resources/whatsapp/phone_numbers/profile/models.rb +0 -20
  155. data/rbi/telnyx/models/whatsapp/message_template_create_params.rbi +0 -115
  156. data/rbi/telnyx/models/whatsapp/message_template_delete_params.rbi +0 -40
  157. data/rbi/telnyx/models/whatsapp/message_template_retrieve_params.rbi +0 -40
  158. data/rbi/telnyx/models/whatsapp/message_template_retrieve_response.rbi +0 -35
  159. data/rbi/telnyx/models/whatsapp/message_template_update_params.rbi +0 -111
  160. data/rbi/telnyx/models/whatsapp/message_template_update_response.rbi +0 -35
  161. data/rbi/telnyx/resources/whatsapp/message_templates.rbi +0 -116
  162. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile/models.rbi +0 -18
  163. data/sig/telnyx/models/voice_design_update_response.rbs +0 -79
  164. data/sig/telnyx/models/whatsapp/message_template_create_params.rbs +0 -60
  165. data/sig/telnyx/models/whatsapp/message_template_create_response.rbs +0 -20
  166. data/sig/telnyx/models/whatsapp/message_template_delete_params.rbs +0 -22
  167. data/sig/telnyx/models/whatsapp/message_template_retrieve_params.rbs +0 -22
  168. data/sig/telnyx/models/whatsapp/message_template_retrieve_response.rbs +0 -20
  169. data/sig/telnyx/models/whatsapp/message_template_update_params.rbs +0 -58
  170. data/sig/telnyx/resources/whatsapp/message_templates.rbs +0 -42
  171. data/sig/telnyx/resources/whatsapp/phone_numbers/profile/models.rbs +0 -13
@@ -0,0 +1,504 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::WhatsappMessageTemplates#update
6
+ class WhatsappMessageTemplateUpdateParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!attribute category
16
+ #
17
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Category, nil]
18
+ optional :category, enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Category }
19
+
20
+ # @!attribute components
21
+ # Updated template components. Same structure as the create request.
22
+ #
23
+ # @return [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent>, nil]
24
+ optional :components,
25
+ -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::WhatsappMessageTemplateUpdateParams::Component] }
26
+
27
+ # @!method initialize(id:, category: nil, components: nil, request_options: {})
28
+ # @param id [String]
29
+ #
30
+ # @param category [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Category]
31
+ #
32
+ # @param components [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent>] Updated template components. Same structure as the create request.
33
+ #
34
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
35
+
36
+ module Category
37
+ extend Telnyx::Internal::Type::Enum
38
+
39
+ MARKETING = :MARKETING
40
+ UTILITY = :UTILITY
41
+ AUTHENTICATION = :AUTHENTICATION
42
+
43
+ # @!method self.values
44
+ # @return [Array<Symbol>]
45
+ end
46
+
47
+ # A template component. Additional Meta component types not listed here are also
48
+ # accepted.
49
+ module Component
50
+ extend Telnyx::Internal::Type::Union
51
+
52
+ # Optional header displayed at the top of the message.
53
+ variant -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent }
54
+
55
+ # The main text content of the message. Supports multiple variable parameters ({{1}}, {{2}}, etc.). Variables cannot be at the start or end. Maximum 1024 characters.
56
+ variant -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent }
57
+
58
+ # Optional footer displayed at the bottom of the message. Does not support variables.
59
+ variant -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent }
60
+
61
+ # Optional interactive buttons. Maximum 3 buttons per template.
62
+ variant -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent }
63
+
64
+ # Carousel component for multi-card templates. Each card can contain its own header, body, and buttons.
65
+ variant -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent }
66
+
67
+ class WhatsappTemplateHeaderComponent < Telnyx::Internal::Type::BaseModel
68
+ # @!attribute format_
69
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
70
+ # LOCATION.
71
+ #
72
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format]
73
+ required :format_,
74
+ enum: -> {
75
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format
76
+ },
77
+ api_name: :format
78
+
79
+ # @!attribute type
80
+ #
81
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type]
82
+ required :type,
83
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type }
84
+
85
+ # @!attribute example
86
+ # Sample values for header variables.
87
+ #
88
+ # @return [Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example, nil]
89
+ optional :example,
90
+ -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example }
91
+
92
+ # @!attribute text
93
+ # Header text. Required when format is TEXT. Supports one variable ({{1}}).
94
+ # Variables cannot be at the start or end.
95
+ #
96
+ # @return [String, nil]
97
+ optional :text, String
98
+
99
+ # @!method initialize(format_:, type:, example: nil, text: nil)
100
+ # Some parameter documentations has been truncated, see
101
+ # {Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent}
102
+ # for more details.
103
+ #
104
+ # Optional header displayed at the top of the message.
105
+ #
106
+ # @param format_ [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format] Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or LOC
107
+ #
108
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type]
109
+ #
110
+ # @param example [Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example] Sample values for header variables.
111
+ #
112
+ # @param text [String] Header text. Required when format is TEXT. Supports one variable ({{1}}). Variab
113
+
114
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
115
+ # LOCATION.
116
+ #
117
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent#format_
118
+ module Format
119
+ extend Telnyx::Internal::Type::Enum
120
+
121
+ TEXT = :TEXT
122
+ IMAGE = :IMAGE
123
+ VIDEO = :VIDEO
124
+ DOCUMENT = :DOCUMENT
125
+ LOCATION = :LOCATION
126
+
127
+ # @!method self.values
128
+ # @return [Array<Symbol>]
129
+ end
130
+
131
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent#type
132
+ module Type
133
+ extend Telnyx::Internal::Type::Enum
134
+
135
+ HEADER = :HEADER
136
+
137
+ # @!method self.values
138
+ # @return [Array<Symbol>]
139
+ end
140
+
141
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent#example
142
+ class Example < Telnyx::Internal::Type::BaseModel
143
+ # @!attribute header_handle
144
+ # Media handle for IMAGE, VIDEO, or DOCUMENT headers.
145
+ #
146
+ # @return [Array<String>, nil]
147
+ optional :header_handle, Telnyx::Internal::Type::ArrayOf[String]
148
+
149
+ # @!attribute header_text
150
+ # Sample values for text header variables.
151
+ #
152
+ # @return [Array<String>, nil]
153
+ optional :header_text, Telnyx::Internal::Type::ArrayOf[String]
154
+
155
+ # @!method initialize(header_handle: nil, header_text: nil)
156
+ # Sample values for header variables.
157
+ #
158
+ # @param header_handle [Array<String>] Media handle for IMAGE, VIDEO, or DOCUMENT headers.
159
+ #
160
+ # @param header_text [Array<String>] Sample values for text header variables.
161
+ end
162
+ end
163
+
164
+ class WhatsappTemplateBodyComponent < Telnyx::Internal::Type::BaseModel
165
+ # @!attribute type
166
+ #
167
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type]
168
+ required :type,
169
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type }
170
+
171
+ # @!attribute example
172
+ # Sample values for body variables. Required when body text contains parameters.
173
+ #
174
+ # @return [Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example, nil]
175
+ optional :example,
176
+ -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example }
177
+
178
+ # @!attribute text
179
+ # Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required
180
+ # for MARKETING and UTILITY templates. Optional for AUTHENTICATION templates where
181
+ # Meta provides the built-in OTP body.
182
+ #
183
+ # @return [String, nil]
184
+ optional :text, String
185
+
186
+ # @!method initialize(type:, example: nil, text: nil)
187
+ # Some parameter documentations has been truncated, see
188
+ # {Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent}
189
+ # for more details.
190
+ #
191
+ # The main text content of the message. Supports multiple variable parameters
192
+ # ({{1}}, {{2}}, etc.). Variables cannot be at the start or end. Maximum 1024
193
+ # characters.
194
+ #
195
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type]
196
+ #
197
+ # @param example [Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example] Sample values for body variables. Required when body text contains parameters.
198
+ #
199
+ # @param text [String] Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required fo
200
+
201
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent#type
202
+ module Type
203
+ extend Telnyx::Internal::Type::Enum
204
+
205
+ BODY = :BODY
206
+
207
+ # @!method self.values
208
+ # @return [Array<Symbol>]
209
+ end
210
+
211
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent#example
212
+ class Example < Telnyx::Internal::Type::BaseModel
213
+ # @!attribute body_text
214
+ # Array containing one array of sample values, one per variable in order.
215
+ #
216
+ # @return [Array<Array<String>>, nil]
217
+ optional :body_text, Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::ArrayOf[String]]
218
+
219
+ # @!method initialize(body_text: nil)
220
+ # Sample values for body variables. Required when body text contains parameters.
221
+ #
222
+ # @param body_text [Array<Array<String>>] Array containing one array of sample values, one per variable in order.
223
+ end
224
+ end
225
+
226
+ class WhatsappTemplateFooterComponent < Telnyx::Internal::Type::BaseModel
227
+ # @!attribute type
228
+ #
229
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type]
230
+ required :type,
231
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type }
232
+
233
+ # @!attribute code_expiration_minutes
234
+ # OTP code expiration time in minutes. Used in AUTHENTICATION template footers
235
+ # instead of free-form text.
236
+ #
237
+ # @return [Integer, nil]
238
+ optional :code_expiration_minutes, Integer
239
+
240
+ # @!attribute text
241
+ # Footer text. Maximum 60 characters. For non-authentication templates.
242
+ #
243
+ # @return [String, nil]
244
+ optional :text, String
245
+
246
+ # @!method initialize(type:, code_expiration_minutes: nil, text: nil)
247
+ # Some parameter documentations has been truncated, see
248
+ # {Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent}
249
+ # for more details.
250
+ #
251
+ # Optional footer displayed at the bottom of the message. Does not support
252
+ # variables.
253
+ #
254
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type]
255
+ #
256
+ # @param code_expiration_minutes [Integer] OTP code expiration time in minutes. Used in AUTHENTICATION template footers ins
257
+ #
258
+ # @param text [String] Footer text. Maximum 60 characters. For non-authentication templates.
259
+
260
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent#type
261
+ module Type
262
+ extend Telnyx::Internal::Type::Enum
263
+
264
+ FOOTER = :FOOTER
265
+
266
+ # @!method self.values
267
+ # @return [Array<Symbol>]
268
+ end
269
+ end
270
+
271
+ class WhatsappTemplateButtonsComponent < Telnyx::Internal::Type::BaseModel
272
+ # @!attribute buttons
273
+ # Array of button objects. Meta supports various combinations of button types.
274
+ #
275
+ # @return [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button>]
276
+ required :buttons,
277
+ -> { Telnyx::Internal::Type::ArrayOf[Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button] }
278
+
279
+ # @!attribute type
280
+ #
281
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type]
282
+ required :type,
283
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type }
284
+
285
+ # @!method initialize(buttons:, type:)
286
+ # Optional interactive buttons. Maximum 3 buttons per template.
287
+ #
288
+ # @param buttons [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button>] Array of button objects. Meta supports various combinations of button types.
289
+ #
290
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type]
291
+
292
+ class Button < Telnyx::Internal::Type::BaseModel
293
+ # @!attribute type
294
+ #
295
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type]
296
+ required :type,
297
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type }
298
+
299
+ # @!attribute autofill_text
300
+ # Custom autofill button text for ONE_TAP OTP buttons.
301
+ #
302
+ # @return [String, nil]
303
+ optional :autofill_text, String
304
+
305
+ # @!attribute example
306
+ # Sample values for URL variable.
307
+ #
308
+ # @return [Array<String>, nil]
309
+ optional :example, Telnyx::Internal::Type::ArrayOf[String]
310
+
311
+ # @!attribute flow_action
312
+ # Flow action type for FLOW-type buttons.
313
+ #
314
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction, nil]
315
+ optional :flow_action,
316
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction }
317
+
318
+ # @!attribute flow_id
319
+ # Flow ID for FLOW-type buttons.
320
+ #
321
+ # @return [String, nil]
322
+ optional :flow_id, String
323
+
324
+ # @!attribute navigate_screen
325
+ # Target screen name for FLOW buttons with navigate action.
326
+ #
327
+ # @return [String, nil]
328
+ optional :navigate_screen, String
329
+
330
+ # @!attribute otp_type
331
+ #
332
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType, nil]
333
+ optional :otp_type,
334
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType }
335
+
336
+ # @!attribute package_name
337
+ # Android package name. Required for ONE_TAP OTP buttons.
338
+ #
339
+ # @return [String, nil]
340
+ optional :package_name, String
341
+
342
+ # @!attribute phone_number
343
+ # Phone number in E.164 format.
344
+ #
345
+ # @return [String, nil]
346
+ optional :phone_number, String
347
+
348
+ # @!attribute signature_hash
349
+ # Android app signing key hash. Required for ONE_TAP OTP buttons.
350
+ #
351
+ # @return [String, nil]
352
+ optional :signature_hash, String
353
+
354
+ # @!attribute text
355
+ # Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and
356
+ # QUICK_REPLY buttons. Not required for OTP buttons (Meta supplies the label).
357
+ #
358
+ # @return [String, nil]
359
+ optional :text, String
360
+
361
+ # @!attribute url
362
+ # URL for URL-type buttons. Supports one variable ({{1}}).
363
+ #
364
+ # @return [String, nil]
365
+ optional :url, String
366
+
367
+ # @!attribute zero_tap_terms_accepted
368
+ # Whether zero-tap terms have been accepted.
369
+ #
370
+ # @return [Boolean, nil]
371
+ optional :zero_tap_terms_accepted, Telnyx::Internal::Type::Boolean
372
+
373
+ # @!method initialize(type:, autofill_text: nil, example: nil, flow_action: nil, flow_id: nil, navigate_screen: nil, otp_type: nil, package_name: nil, phone_number: nil, signature_hash: nil, text: nil, url: nil, zero_tap_terms_accepted: nil)
374
+ # Some parameter documentations has been truncated, see
375
+ # {Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button}
376
+ # for more details.
377
+ #
378
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type]
379
+ #
380
+ # @param autofill_text [String] Custom autofill button text for ONE_TAP OTP buttons.
381
+ #
382
+ # @param example [Array<String>] Sample values for URL variable.
383
+ #
384
+ # @param flow_action [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction] Flow action type for FLOW-type buttons.
385
+ #
386
+ # @param flow_id [String] Flow ID for FLOW-type buttons.
387
+ #
388
+ # @param navigate_screen [String] Target screen name for FLOW buttons with navigate action.
389
+ #
390
+ # @param otp_type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType]
391
+ #
392
+ # @param package_name [String] Android package name. Required for ONE_TAP OTP buttons.
393
+ #
394
+ # @param phone_number [String] Phone number in E.164 format.
395
+ #
396
+ # @param signature_hash [String] Android app signing key hash. Required for ONE_TAP OTP buttons.
397
+ #
398
+ # @param text [String] Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and QU
399
+ #
400
+ # @param url [String] URL for URL-type buttons. Supports one variable ({{1}}).
401
+ #
402
+ # @param zero_tap_terms_accepted [Boolean] Whether zero-tap terms have been accepted.
403
+
404
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button#type
405
+ module Type
406
+ extend Telnyx::Internal::Type::Enum
407
+
408
+ URL = :URL
409
+ PHONE_NUMBER = :PHONE_NUMBER
410
+ QUICK_REPLY = :QUICK_REPLY
411
+ OTP = :OTP
412
+ COPY_CODE = :COPY_CODE
413
+ FLOW = :FLOW
414
+
415
+ # @!method self.values
416
+ # @return [Array<Symbol>]
417
+ end
418
+
419
+ # Flow action type for FLOW-type buttons.
420
+ #
421
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button#flow_action
422
+ module FlowAction
423
+ extend Telnyx::Internal::Type::Enum
424
+
425
+ NAVIGATE = :navigate
426
+ DATA_EXCHANGE = :data_exchange
427
+
428
+ # @!method self.values
429
+ # @return [Array<Symbol>]
430
+ end
431
+
432
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button#otp_type
433
+ module OtpType
434
+ extend Telnyx::Internal::Type::Enum
435
+
436
+ COPY_CODE = :COPY_CODE
437
+ ONE_TAP = :ONE_TAP
438
+
439
+ # @!method self.values
440
+ # @return [Array<Symbol>]
441
+ end
442
+ end
443
+
444
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent#type
445
+ module Type
446
+ extend Telnyx::Internal::Type::Enum
447
+
448
+ BUTTONS = :BUTTONS
449
+
450
+ # @!method self.values
451
+ # @return [Array<Symbol>]
452
+ end
453
+ end
454
+
455
+ class WhatsappTemplateCarouselComponent < Telnyx::Internal::Type::BaseModel
456
+ # @!attribute cards
457
+ # Array of card objects, each with its own components.
458
+ #
459
+ # @return [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card>]
460
+ required :cards,
461
+ -> { Telnyx::Internal::Type::ArrayOf[Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card] }
462
+
463
+ # @!attribute type
464
+ #
465
+ # @return [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type]
466
+ required :type,
467
+ enum: -> { Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type }
468
+
469
+ # @!method initialize(cards:, type:)
470
+ # Carousel component for multi-card templates. Each card can contain its own
471
+ # header, body, and buttons.
472
+ #
473
+ # @param cards [Array<Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card>] Array of card objects, each with its own components.
474
+ #
475
+ # @param type [Symbol, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type]
476
+
477
+ class Card < Telnyx::Internal::Type::BaseModel
478
+ # @!attribute components
479
+ #
480
+ # @return [Array<Hash{Symbol=>Object}>, nil]
481
+ optional :components,
482
+ Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]]
483
+
484
+ # @!method initialize(components: nil)
485
+ # @param components [Array<Hash{Symbol=>Object}>]
486
+ end
487
+
488
+ # @see Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent#type
489
+ module Type
490
+ extend Telnyx::Internal::Type::Enum
491
+
492
+ CAROUSEL = :CAROUSEL
493
+
494
+ # @!method self.values
495
+ # @return [Array<Symbol>]
496
+ end
497
+ end
498
+
499
+ # @!method self.variants
500
+ # @return [Array(Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent)]
501
+ end
502
+ end
503
+ end
504
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::WhatsappMessageTemplates#update
6
+ class WhatsappMessageTemplateUpdateResponse < Telnyx::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [Telnyx::Models::WhatsappTemplateData, nil]
10
+ optional :data, -> { Telnyx::WhatsappTemplateData }
11
+
12
+ # @!method initialize(data: nil)
13
+ # @param data [Telnyx::Models::WhatsappTemplateData]
14
+ end
15
+ end
16
+ end
@@ -14,7 +14,8 @@ module Telnyx
14
14
  optional :category, enum: -> { Telnyx::WhatsappTemplateData::Category }
15
15
 
16
16
  # @!attribute components
17
- # Whatsapp template components (header, body, footer, buttons)
17
+ # Template components (header, body, footer, buttons) as submitted, including
18
+ # example values.
18
19
  #
19
20
  # @return [Array<Hash{Symbol=>Object}>, nil]
20
21
  optional :components,
@@ -46,6 +47,9 @@ module Telnyx
46
47
  optional :rejection_reason, String
47
48
 
48
49
  # @!attribute status
50
+ # Current template status from Meta (e.g. PENDING, APPROVED, REJECTED, PAUSED,
51
+ # DISABLED). Additional statuses may be returned as Meta evolves the template
52
+ # lifecycle.
49
53
  #
50
54
  # @return [String, nil]
51
55
  optional :status, String
@@ -66,11 +70,14 @@ module Telnyx
66
70
  optional :whatsapp_business_account, -> { Telnyx::WhatsappTemplateData::WhatsappBusinessAccount }
67
71
 
68
72
  # @!method initialize(id: nil, category: nil, components: nil, created_at: nil, language: nil, name: nil, record_type: nil, rejection_reason: nil, status: nil, template_id: nil, updated_at: nil, whatsapp_business_account: nil)
73
+ # Some parameter documentations has been truncated, see
74
+ # {Telnyx::Models::WhatsappTemplateData} for more details.
75
+ #
69
76
  # @param id [String]
70
77
  #
71
78
  # @param category [Symbol, Telnyx::Models::WhatsappTemplateData::Category]
72
79
  #
73
- # @param components [Array<Hash{Symbol=>Object}>] Whatsapp template components (header, body, footer, buttons)
80
+ # @param components [Array<Hash{Symbol=>Object}>] Template components (header, body, footer, buttons) as submitted, including exam
74
81
  #
75
82
  # @param created_at [Time]
76
83
  #
@@ -82,7 +89,7 @@ module Telnyx
82
89
  #
83
90
  # @param rejection_reason [String]
84
91
  #
85
- # @param status [String]
92
+ # @param status [String] Current template status from Meta (e.g. PENDING, APPROVED, REJECTED, PAUSED, DIS
86
93
  #
87
94
  # @param template_id [String]
88
95
  #
@@ -3,8 +3,8 @@
3
3
  module Telnyx
4
4
  module Models
5
5
  module X402
6
- # @see Telnyx::Resources::X402::CreditAccount#create_payment_quote
7
- class CreditAccountCreatePaymentQuoteParams < Telnyx::Internal::Type::BaseModel
6
+ # @see Telnyx::Resources::X402::CreditAccount#create_quote
7
+ class CreditAccountCreateQuoteParams < Telnyx::Internal::Type::BaseModel
8
8
  extend Telnyx::Internal::Type::RequestParameters::Converter
9
9
  include Telnyx::Internal::Type::RequestParameters
10
10