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,1178 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class WhatsappMessageTemplateUpdateParams < Telnyx::Internal::Type::BaseModel
6
+ extend Telnyx::Internal::Type::RequestParameters::Converter
7
+ include Telnyx::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Telnyx::WhatsappMessageTemplateUpdateParams,
13
+ Telnyx::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig do
21
+ returns(
22
+ T.nilable(
23
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::OrSymbol
24
+ )
25
+ )
26
+ end
27
+ attr_reader :category
28
+
29
+ sig do
30
+ params(
31
+ category:
32
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::OrSymbol
33
+ ).void
34
+ end
35
+ attr_writer :category
36
+
37
+ # Updated template components. Same structure as the create request.
38
+ sig do
39
+ returns(
40
+ T.nilable(
41
+ T::Array[
42
+ T.any(
43
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent,
44
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent,
45
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent,
46
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent,
47
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent
48
+ )
49
+ ]
50
+ )
51
+ )
52
+ end
53
+ attr_reader :components
54
+
55
+ sig do
56
+ params(
57
+ components:
58
+ T::Array[
59
+ T.any(
60
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::OrHash,
61
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::OrHash,
62
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::OrHash,
63
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::OrHash,
64
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::OrHash
65
+ )
66
+ ]
67
+ ).void
68
+ end
69
+ attr_writer :components
70
+
71
+ sig do
72
+ params(
73
+ id: String,
74
+ category:
75
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::OrSymbol,
76
+ components:
77
+ T::Array[
78
+ T.any(
79
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::OrHash,
80
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::OrHash,
81
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::OrHash,
82
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::OrHash,
83
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::OrHash
84
+ )
85
+ ],
86
+ request_options: Telnyx::RequestOptions::OrHash
87
+ ).returns(T.attached_class)
88
+ end
89
+ def self.new(
90
+ id:,
91
+ category: nil,
92
+ # Updated template components. Same structure as the create request.
93
+ components: nil,
94
+ request_options: {}
95
+ )
96
+ end
97
+
98
+ sig do
99
+ override.returns(
100
+ {
101
+ id: String,
102
+ category:
103
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::OrSymbol,
104
+ components:
105
+ T::Array[
106
+ T.any(
107
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent,
108
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent,
109
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent,
110
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent,
111
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent
112
+ )
113
+ ],
114
+ request_options: Telnyx::RequestOptions
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+
121
+ module Category
122
+ extend Telnyx::Internal::Type::Enum
123
+
124
+ TaggedSymbol =
125
+ T.type_alias do
126
+ T.all(Symbol, Telnyx::WhatsappMessageTemplateUpdateParams::Category)
127
+ end
128
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
129
+
130
+ MARKETING =
131
+ T.let(
132
+ :MARKETING,
133
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::TaggedSymbol
134
+ )
135
+ UTILITY =
136
+ T.let(
137
+ :UTILITY,
138
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::TaggedSymbol
139
+ )
140
+ AUTHENTICATION =
141
+ T.let(
142
+ :AUTHENTICATION,
143
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::TaggedSymbol
144
+ )
145
+
146
+ sig do
147
+ override.returns(
148
+ T::Array[
149
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::TaggedSymbol
150
+ ]
151
+ )
152
+ end
153
+ def self.values
154
+ end
155
+ end
156
+
157
+ # A template component. Additional Meta component types not listed here are also
158
+ # accepted.
159
+ module Component
160
+ extend Telnyx::Internal::Type::Union
161
+
162
+ Variants =
163
+ T.type_alias do
164
+ T.any(
165
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent,
166
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent,
167
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent,
168
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent,
169
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent
170
+ )
171
+ end
172
+
173
+ class WhatsappTemplateHeaderComponent < Telnyx::Internal::Type::BaseModel
174
+ OrHash =
175
+ T.type_alias do
176
+ T.any(
177
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent,
178
+ Telnyx::Internal::AnyHash
179
+ )
180
+ end
181
+
182
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
183
+ # LOCATION.
184
+ sig do
185
+ returns(
186
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::OrSymbol
187
+ )
188
+ end
189
+ attr_accessor :format_
190
+
191
+ sig do
192
+ returns(
193
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type::OrSymbol
194
+ )
195
+ end
196
+ attr_accessor :type
197
+
198
+ # Sample values for header variables.
199
+ sig do
200
+ returns(
201
+ T.nilable(
202
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example
203
+ )
204
+ )
205
+ end
206
+ attr_reader :example
207
+
208
+ sig do
209
+ params(
210
+ example:
211
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example::OrHash
212
+ ).void
213
+ end
214
+ attr_writer :example
215
+
216
+ # Header text. Required when format is TEXT. Supports one variable ({{1}}).
217
+ # Variables cannot be at the start or end.
218
+ sig { returns(T.nilable(String)) }
219
+ attr_reader :text
220
+
221
+ sig { params(text: String).void }
222
+ attr_writer :text
223
+
224
+ # Optional header displayed at the top of the message.
225
+ sig do
226
+ params(
227
+ format_:
228
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::OrSymbol,
229
+ type:
230
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type::OrSymbol,
231
+ example:
232
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example::OrHash,
233
+ text: String
234
+ ).returns(T.attached_class)
235
+ end
236
+ def self.new(
237
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
238
+ # LOCATION.
239
+ format_:,
240
+ type:,
241
+ # Sample values for header variables.
242
+ example: nil,
243
+ # Header text. Required when format is TEXT. Supports one variable ({{1}}).
244
+ # Variables cannot be at the start or end.
245
+ text: nil
246
+ )
247
+ end
248
+
249
+ sig do
250
+ override.returns(
251
+ {
252
+ format_:
253
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::OrSymbol,
254
+ type:
255
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type::OrSymbol,
256
+ example:
257
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example,
258
+ text: String
259
+ }
260
+ )
261
+ end
262
+ def to_hash
263
+ end
264
+
265
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
266
+ # LOCATION.
267
+ module Format
268
+ extend Telnyx::Internal::Type::Enum
269
+
270
+ TaggedSymbol =
271
+ T.type_alias do
272
+ T.all(
273
+ Symbol,
274
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format
275
+ )
276
+ end
277
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
278
+
279
+ TEXT =
280
+ T.let(
281
+ :TEXT,
282
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
283
+ )
284
+ IMAGE =
285
+ T.let(
286
+ :IMAGE,
287
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
288
+ )
289
+ VIDEO =
290
+ T.let(
291
+ :VIDEO,
292
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
293
+ )
294
+ DOCUMENT =
295
+ T.let(
296
+ :DOCUMENT,
297
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
298
+ )
299
+ LOCATION =
300
+ T.let(
301
+ :LOCATION,
302
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
303
+ )
304
+
305
+ sig do
306
+ override.returns(
307
+ T::Array[
308
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Format::TaggedSymbol
309
+ ]
310
+ )
311
+ end
312
+ def self.values
313
+ end
314
+ end
315
+
316
+ module Type
317
+ extend Telnyx::Internal::Type::Enum
318
+
319
+ TaggedSymbol =
320
+ T.type_alias do
321
+ T.all(
322
+ Symbol,
323
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type
324
+ )
325
+ end
326
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
327
+
328
+ HEADER =
329
+ T.let(
330
+ :HEADER,
331
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type::TaggedSymbol
332
+ )
333
+
334
+ sig do
335
+ override.returns(
336
+ T::Array[
337
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Type::TaggedSymbol
338
+ ]
339
+ )
340
+ end
341
+ def self.values
342
+ end
343
+ end
344
+
345
+ class Example < Telnyx::Internal::Type::BaseModel
346
+ OrHash =
347
+ T.type_alias do
348
+ T.any(
349
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::Example,
350
+ Telnyx::Internal::AnyHash
351
+ )
352
+ end
353
+
354
+ # Media handle for IMAGE, VIDEO, or DOCUMENT headers.
355
+ sig { returns(T.nilable(T::Array[String])) }
356
+ attr_reader :header_handle
357
+
358
+ sig { params(header_handle: T::Array[String]).void }
359
+ attr_writer :header_handle
360
+
361
+ # Sample values for text header variables.
362
+ sig { returns(T.nilable(T::Array[String])) }
363
+ attr_reader :header_text
364
+
365
+ sig { params(header_text: T::Array[String]).void }
366
+ attr_writer :header_text
367
+
368
+ # Sample values for header variables.
369
+ sig do
370
+ params(
371
+ header_handle: T::Array[String],
372
+ header_text: T::Array[String]
373
+ ).returns(T.attached_class)
374
+ end
375
+ def self.new(
376
+ # Media handle for IMAGE, VIDEO, or DOCUMENT headers.
377
+ header_handle: nil,
378
+ # Sample values for text header variables.
379
+ header_text: nil
380
+ )
381
+ end
382
+
383
+ sig do
384
+ override.returns(
385
+ {
386
+ header_handle: T::Array[String],
387
+ header_text: T::Array[String]
388
+ }
389
+ )
390
+ end
391
+ def to_hash
392
+ end
393
+ end
394
+ end
395
+
396
+ class WhatsappTemplateBodyComponent < Telnyx::Internal::Type::BaseModel
397
+ OrHash =
398
+ T.type_alias do
399
+ T.any(
400
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent,
401
+ Telnyx::Internal::AnyHash
402
+ )
403
+ end
404
+
405
+ sig do
406
+ returns(
407
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type::OrSymbol
408
+ )
409
+ end
410
+ attr_accessor :type
411
+
412
+ # Sample values for body variables. Required when body text contains parameters.
413
+ sig do
414
+ returns(
415
+ T.nilable(
416
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example
417
+ )
418
+ )
419
+ end
420
+ attr_reader :example
421
+
422
+ sig do
423
+ params(
424
+ example:
425
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example::OrHash
426
+ ).void
427
+ end
428
+ attr_writer :example
429
+
430
+ # Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required
431
+ # for MARKETING and UTILITY templates. Optional for AUTHENTICATION templates where
432
+ # Meta provides the built-in OTP body.
433
+ sig { returns(T.nilable(String)) }
434
+ attr_reader :text
435
+
436
+ sig { params(text: String).void }
437
+ attr_writer :text
438
+
439
+ # The main text content of the message. Supports multiple variable parameters
440
+ # ({{1}}, {{2}}, etc.). Variables cannot be at the start or end. Maximum 1024
441
+ # characters.
442
+ sig do
443
+ params(
444
+ type:
445
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type::OrSymbol,
446
+ example:
447
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example::OrHash,
448
+ text: String
449
+ ).returns(T.attached_class)
450
+ end
451
+ def self.new(
452
+ type:,
453
+ # Sample values for body variables. Required when body text contains parameters.
454
+ example: nil,
455
+ # Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required
456
+ # for MARKETING and UTILITY templates. Optional for AUTHENTICATION templates where
457
+ # Meta provides the built-in OTP body.
458
+ text: nil
459
+ )
460
+ end
461
+
462
+ sig do
463
+ override.returns(
464
+ {
465
+ type:
466
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type::OrSymbol,
467
+ example:
468
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example,
469
+ text: String
470
+ }
471
+ )
472
+ end
473
+ def to_hash
474
+ end
475
+
476
+ module Type
477
+ extend Telnyx::Internal::Type::Enum
478
+
479
+ TaggedSymbol =
480
+ T.type_alias do
481
+ T.all(
482
+ Symbol,
483
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type
484
+ )
485
+ end
486
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
487
+
488
+ BODY =
489
+ T.let(
490
+ :BODY,
491
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type::TaggedSymbol
492
+ )
493
+
494
+ sig do
495
+ override.returns(
496
+ T::Array[
497
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Type::TaggedSymbol
498
+ ]
499
+ )
500
+ end
501
+ def self.values
502
+ end
503
+ end
504
+
505
+ class Example < Telnyx::Internal::Type::BaseModel
506
+ OrHash =
507
+ T.type_alias do
508
+ T.any(
509
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::Example,
510
+ Telnyx::Internal::AnyHash
511
+ )
512
+ end
513
+
514
+ # Array containing one array of sample values, one per variable in order.
515
+ sig { returns(T.nilable(T::Array[T::Array[String]])) }
516
+ attr_reader :body_text
517
+
518
+ sig { params(body_text: T::Array[T::Array[String]]).void }
519
+ attr_writer :body_text
520
+
521
+ # Sample values for body variables. Required when body text contains parameters.
522
+ sig do
523
+ params(body_text: T::Array[T::Array[String]]).returns(
524
+ T.attached_class
525
+ )
526
+ end
527
+ def self.new(
528
+ # Array containing one array of sample values, one per variable in order.
529
+ body_text: nil
530
+ )
531
+ end
532
+
533
+ sig { override.returns({ body_text: T::Array[T::Array[String]] }) }
534
+ def to_hash
535
+ end
536
+ end
537
+ end
538
+
539
+ class WhatsappTemplateFooterComponent < Telnyx::Internal::Type::BaseModel
540
+ OrHash =
541
+ T.type_alias do
542
+ T.any(
543
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent,
544
+ Telnyx::Internal::AnyHash
545
+ )
546
+ end
547
+
548
+ sig do
549
+ returns(
550
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type::OrSymbol
551
+ )
552
+ end
553
+ attr_accessor :type
554
+
555
+ # OTP code expiration time in minutes. Used in AUTHENTICATION template footers
556
+ # instead of free-form text.
557
+ sig { returns(T.nilable(Integer)) }
558
+ attr_reader :code_expiration_minutes
559
+
560
+ sig { params(code_expiration_minutes: Integer).void }
561
+ attr_writer :code_expiration_minutes
562
+
563
+ # Footer text. Maximum 60 characters. For non-authentication templates.
564
+ sig { returns(T.nilable(String)) }
565
+ attr_reader :text
566
+
567
+ sig { params(text: String).void }
568
+ attr_writer :text
569
+
570
+ # Optional footer displayed at the bottom of the message. Does not support
571
+ # variables.
572
+ sig do
573
+ params(
574
+ type:
575
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type::OrSymbol,
576
+ code_expiration_minutes: Integer,
577
+ text: String
578
+ ).returns(T.attached_class)
579
+ end
580
+ def self.new(
581
+ type:,
582
+ # OTP code expiration time in minutes. Used in AUTHENTICATION template footers
583
+ # instead of free-form text.
584
+ code_expiration_minutes: nil,
585
+ # Footer text. Maximum 60 characters. For non-authentication templates.
586
+ text: nil
587
+ )
588
+ end
589
+
590
+ sig do
591
+ override.returns(
592
+ {
593
+ type:
594
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type::OrSymbol,
595
+ code_expiration_minutes: Integer,
596
+ text: String
597
+ }
598
+ )
599
+ end
600
+ def to_hash
601
+ end
602
+
603
+ module Type
604
+ extend Telnyx::Internal::Type::Enum
605
+
606
+ TaggedSymbol =
607
+ T.type_alias do
608
+ T.all(
609
+ Symbol,
610
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type
611
+ )
612
+ end
613
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
614
+
615
+ FOOTER =
616
+ T.let(
617
+ :FOOTER,
618
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type::TaggedSymbol
619
+ )
620
+
621
+ sig do
622
+ override.returns(
623
+ T::Array[
624
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::Type::TaggedSymbol
625
+ ]
626
+ )
627
+ end
628
+ def self.values
629
+ end
630
+ end
631
+ end
632
+
633
+ class WhatsappTemplateButtonsComponent < Telnyx::Internal::Type::BaseModel
634
+ OrHash =
635
+ T.type_alias do
636
+ T.any(
637
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent,
638
+ Telnyx::Internal::AnyHash
639
+ )
640
+ end
641
+
642
+ # Array of button objects. Meta supports various combinations of button types.
643
+ sig do
644
+ returns(
645
+ T::Array[
646
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button
647
+ ]
648
+ )
649
+ end
650
+ attr_accessor :buttons
651
+
652
+ sig do
653
+ returns(
654
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type::OrSymbol
655
+ )
656
+ end
657
+ attr_accessor :type
658
+
659
+ # Optional interactive buttons. Maximum 3 buttons per template.
660
+ sig do
661
+ params(
662
+ buttons:
663
+ T::Array[
664
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OrHash
665
+ ],
666
+ type:
667
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type::OrSymbol
668
+ ).returns(T.attached_class)
669
+ end
670
+ def self.new(
671
+ # Array of button objects. Meta supports various combinations of button types.
672
+ buttons:,
673
+ type:
674
+ )
675
+ end
676
+
677
+ sig do
678
+ override.returns(
679
+ {
680
+ buttons:
681
+ T::Array[
682
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button
683
+ ],
684
+ type:
685
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type::OrSymbol
686
+ }
687
+ )
688
+ end
689
+ def to_hash
690
+ end
691
+
692
+ class Button < Telnyx::Internal::Type::BaseModel
693
+ OrHash =
694
+ T.type_alias do
695
+ T.any(
696
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button,
697
+ Telnyx::Internal::AnyHash
698
+ )
699
+ end
700
+
701
+ sig do
702
+ returns(
703
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::OrSymbol
704
+ )
705
+ end
706
+ attr_accessor :type
707
+
708
+ # Custom autofill button text for ONE_TAP OTP buttons.
709
+ sig { returns(T.nilable(String)) }
710
+ attr_reader :autofill_text
711
+
712
+ sig { params(autofill_text: String).void }
713
+ attr_writer :autofill_text
714
+
715
+ # Sample values for URL variable.
716
+ sig { returns(T.nilable(T::Array[String])) }
717
+ attr_reader :example
718
+
719
+ sig { params(example: T::Array[String]).void }
720
+ attr_writer :example
721
+
722
+ # Flow action type for FLOW-type buttons.
723
+ sig do
724
+ returns(
725
+ T.nilable(
726
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::OrSymbol
727
+ )
728
+ )
729
+ end
730
+ attr_reader :flow_action
731
+
732
+ sig do
733
+ params(
734
+ flow_action:
735
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::OrSymbol
736
+ ).void
737
+ end
738
+ attr_writer :flow_action
739
+
740
+ # Flow ID for FLOW-type buttons.
741
+ sig { returns(T.nilable(String)) }
742
+ attr_reader :flow_id
743
+
744
+ sig { params(flow_id: String).void }
745
+ attr_writer :flow_id
746
+
747
+ # Target screen name for FLOW buttons with navigate action.
748
+ sig { returns(T.nilable(String)) }
749
+ attr_reader :navigate_screen
750
+
751
+ sig { params(navigate_screen: String).void }
752
+ attr_writer :navigate_screen
753
+
754
+ sig do
755
+ returns(
756
+ T.nilable(
757
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::OrSymbol
758
+ )
759
+ )
760
+ end
761
+ attr_reader :otp_type
762
+
763
+ sig do
764
+ params(
765
+ otp_type:
766
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::OrSymbol
767
+ ).void
768
+ end
769
+ attr_writer :otp_type
770
+
771
+ # Android package name. Required for ONE_TAP OTP buttons.
772
+ sig { returns(T.nilable(String)) }
773
+ attr_reader :package_name
774
+
775
+ sig { params(package_name: String).void }
776
+ attr_writer :package_name
777
+
778
+ # Phone number in E.164 format.
779
+ sig { returns(T.nilable(String)) }
780
+ attr_reader :phone_number
781
+
782
+ sig { params(phone_number: String).void }
783
+ attr_writer :phone_number
784
+
785
+ # Android app signing key hash. Required for ONE_TAP OTP buttons.
786
+ sig { returns(T.nilable(String)) }
787
+ attr_reader :signature_hash
788
+
789
+ sig { params(signature_hash: String).void }
790
+ attr_writer :signature_hash
791
+
792
+ # Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and
793
+ # QUICK_REPLY buttons. Not required for OTP buttons (Meta supplies the label).
794
+ sig { returns(T.nilable(String)) }
795
+ attr_reader :text
796
+
797
+ sig { params(text: String).void }
798
+ attr_writer :text
799
+
800
+ # URL for URL-type buttons. Supports one variable ({{1}}).
801
+ sig { returns(T.nilable(String)) }
802
+ attr_reader :url
803
+
804
+ sig { params(url: String).void }
805
+ attr_writer :url
806
+
807
+ # Whether zero-tap terms have been accepted.
808
+ sig { returns(T.nilable(T::Boolean)) }
809
+ attr_reader :zero_tap_terms_accepted
810
+
811
+ sig { params(zero_tap_terms_accepted: T::Boolean).void }
812
+ attr_writer :zero_tap_terms_accepted
813
+
814
+ sig do
815
+ params(
816
+ type:
817
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::OrSymbol,
818
+ autofill_text: String,
819
+ example: T::Array[String],
820
+ flow_action:
821
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::OrSymbol,
822
+ flow_id: String,
823
+ navigate_screen: String,
824
+ otp_type:
825
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::OrSymbol,
826
+ package_name: String,
827
+ phone_number: String,
828
+ signature_hash: String,
829
+ text: String,
830
+ url: String,
831
+ zero_tap_terms_accepted: T::Boolean
832
+ ).returns(T.attached_class)
833
+ end
834
+ def self.new(
835
+ type:,
836
+ # Custom autofill button text for ONE_TAP OTP buttons.
837
+ autofill_text: nil,
838
+ # Sample values for URL variable.
839
+ example: nil,
840
+ # Flow action type for FLOW-type buttons.
841
+ flow_action: nil,
842
+ # Flow ID for FLOW-type buttons.
843
+ flow_id: nil,
844
+ # Target screen name for FLOW buttons with navigate action.
845
+ navigate_screen: nil,
846
+ otp_type: nil,
847
+ # Android package name. Required for ONE_TAP OTP buttons.
848
+ package_name: nil,
849
+ # Phone number in E.164 format.
850
+ phone_number: nil,
851
+ # Android app signing key hash. Required for ONE_TAP OTP buttons.
852
+ signature_hash: nil,
853
+ # Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and
854
+ # QUICK_REPLY buttons. Not required for OTP buttons (Meta supplies the label).
855
+ text: nil,
856
+ # URL for URL-type buttons. Supports one variable ({{1}}).
857
+ url: nil,
858
+ # Whether zero-tap terms have been accepted.
859
+ zero_tap_terms_accepted: nil
860
+ )
861
+ end
862
+
863
+ sig do
864
+ override.returns(
865
+ {
866
+ type:
867
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::OrSymbol,
868
+ autofill_text: String,
869
+ example: T::Array[String],
870
+ flow_action:
871
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::OrSymbol,
872
+ flow_id: String,
873
+ navigate_screen: String,
874
+ otp_type:
875
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::OrSymbol,
876
+ package_name: String,
877
+ phone_number: String,
878
+ signature_hash: String,
879
+ text: String,
880
+ url: String,
881
+ zero_tap_terms_accepted: T::Boolean
882
+ }
883
+ )
884
+ end
885
+ def to_hash
886
+ end
887
+
888
+ module Type
889
+ extend Telnyx::Internal::Type::Enum
890
+
891
+ TaggedSymbol =
892
+ T.type_alias do
893
+ T.all(
894
+ Symbol,
895
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type
896
+ )
897
+ end
898
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
899
+
900
+ URL =
901
+ T.let(
902
+ :URL,
903
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
904
+ )
905
+ PHONE_NUMBER =
906
+ T.let(
907
+ :PHONE_NUMBER,
908
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
909
+ )
910
+ QUICK_REPLY =
911
+ T.let(
912
+ :QUICK_REPLY,
913
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
914
+ )
915
+ OTP =
916
+ T.let(
917
+ :OTP,
918
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
919
+ )
920
+ COPY_CODE =
921
+ T.let(
922
+ :COPY_CODE,
923
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
924
+ )
925
+ FLOW =
926
+ T.let(
927
+ :FLOW,
928
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
929
+ )
930
+
931
+ sig do
932
+ override.returns(
933
+ T::Array[
934
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::Type::TaggedSymbol
935
+ ]
936
+ )
937
+ end
938
+ def self.values
939
+ end
940
+ end
941
+
942
+ # Flow action type for FLOW-type buttons.
943
+ module FlowAction
944
+ extend Telnyx::Internal::Type::Enum
945
+
946
+ TaggedSymbol =
947
+ T.type_alias do
948
+ T.all(
949
+ Symbol,
950
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction
951
+ )
952
+ end
953
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
954
+
955
+ NAVIGATE =
956
+ T.let(
957
+ :navigate,
958
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::TaggedSymbol
959
+ )
960
+ DATA_EXCHANGE =
961
+ T.let(
962
+ :data_exchange,
963
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::TaggedSymbol
964
+ )
965
+
966
+ sig do
967
+ override.returns(
968
+ T::Array[
969
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction::TaggedSymbol
970
+ ]
971
+ )
972
+ end
973
+ def self.values
974
+ end
975
+ end
976
+
977
+ module OtpType
978
+ extend Telnyx::Internal::Type::Enum
979
+
980
+ TaggedSymbol =
981
+ T.type_alias do
982
+ T.all(
983
+ Symbol,
984
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType
985
+ )
986
+ end
987
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
988
+
989
+ COPY_CODE =
990
+ T.let(
991
+ :COPY_CODE,
992
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::TaggedSymbol
993
+ )
994
+ ONE_TAP =
995
+ T.let(
996
+ :ONE_TAP,
997
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::TaggedSymbol
998
+ )
999
+
1000
+ sig do
1001
+ override.returns(
1002
+ T::Array[
1003
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType::TaggedSymbol
1004
+ ]
1005
+ )
1006
+ end
1007
+ def self.values
1008
+ end
1009
+ end
1010
+ end
1011
+
1012
+ module Type
1013
+ extend Telnyx::Internal::Type::Enum
1014
+
1015
+ TaggedSymbol =
1016
+ T.type_alias do
1017
+ T.all(
1018
+ Symbol,
1019
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type
1020
+ )
1021
+ end
1022
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1023
+
1024
+ BUTTONS =
1025
+ T.let(
1026
+ :BUTTONS,
1027
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type::TaggedSymbol
1028
+ )
1029
+
1030
+ sig do
1031
+ override.returns(
1032
+ T::Array[
1033
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::Type::TaggedSymbol
1034
+ ]
1035
+ )
1036
+ end
1037
+ def self.values
1038
+ end
1039
+ end
1040
+ end
1041
+
1042
+ class WhatsappTemplateCarouselComponent < Telnyx::Internal::Type::BaseModel
1043
+ OrHash =
1044
+ T.type_alias do
1045
+ T.any(
1046
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent,
1047
+ Telnyx::Internal::AnyHash
1048
+ )
1049
+ end
1050
+
1051
+ # Array of card objects, each with its own components.
1052
+ sig do
1053
+ returns(
1054
+ T::Array[
1055
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card
1056
+ ]
1057
+ )
1058
+ end
1059
+ attr_accessor :cards
1060
+
1061
+ sig do
1062
+ returns(
1063
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type::OrSymbol
1064
+ )
1065
+ end
1066
+ attr_accessor :type
1067
+
1068
+ # Carousel component for multi-card templates. Each card can contain its own
1069
+ # header, body, and buttons.
1070
+ sig do
1071
+ params(
1072
+ cards:
1073
+ T::Array[
1074
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card::OrHash
1075
+ ],
1076
+ type:
1077
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type::OrSymbol
1078
+ ).returns(T.attached_class)
1079
+ end
1080
+ def self.new(
1081
+ # Array of card objects, each with its own components.
1082
+ cards:,
1083
+ type:
1084
+ )
1085
+ end
1086
+
1087
+ sig do
1088
+ override.returns(
1089
+ {
1090
+ cards:
1091
+ T::Array[
1092
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card
1093
+ ],
1094
+ type:
1095
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type::OrSymbol
1096
+ }
1097
+ )
1098
+ end
1099
+ def to_hash
1100
+ end
1101
+
1102
+ class Card < Telnyx::Internal::Type::BaseModel
1103
+ OrHash =
1104
+ T.type_alias do
1105
+ T.any(
1106
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Card,
1107
+ Telnyx::Internal::AnyHash
1108
+ )
1109
+ end
1110
+
1111
+ sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
1112
+ attr_reader :components
1113
+
1114
+ sig do
1115
+ params(components: T::Array[T::Hash[Symbol, T.anything]]).void
1116
+ end
1117
+ attr_writer :components
1118
+
1119
+ sig do
1120
+ params(components: T::Array[T::Hash[Symbol, T.anything]]).returns(
1121
+ T.attached_class
1122
+ )
1123
+ end
1124
+ def self.new(components: nil)
1125
+ end
1126
+
1127
+ sig do
1128
+ override.returns(
1129
+ { components: T::Array[T::Hash[Symbol, T.anything]] }
1130
+ )
1131
+ end
1132
+ def to_hash
1133
+ end
1134
+ end
1135
+
1136
+ module Type
1137
+ extend Telnyx::Internal::Type::Enum
1138
+
1139
+ TaggedSymbol =
1140
+ T.type_alias do
1141
+ T.all(
1142
+ Symbol,
1143
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type
1144
+ )
1145
+ end
1146
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1147
+
1148
+ CAROUSEL =
1149
+ T.let(
1150
+ :CAROUSEL,
1151
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type::TaggedSymbol
1152
+ )
1153
+
1154
+ sig do
1155
+ override.returns(
1156
+ T::Array[
1157
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::Type::TaggedSymbol
1158
+ ]
1159
+ )
1160
+ end
1161
+ def self.values
1162
+ end
1163
+ end
1164
+ end
1165
+
1166
+ sig do
1167
+ override.returns(
1168
+ T::Array[
1169
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::Variants
1170
+ ]
1171
+ )
1172
+ end
1173
+ def self.variants
1174
+ end
1175
+ end
1176
+ end
1177
+ end
1178
+ end