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,530 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Whatsapp
6
+ # @see Telnyx::Resources::Whatsapp::Templates#create
7
+ class TemplateCreateParams < Telnyx::Internal::Type::BaseModel
8
+ extend Telnyx::Internal::Type::RequestParameters::Converter
9
+ include Telnyx::Internal::Type::RequestParameters
10
+
11
+ # @!attribute category
12
+ # Template category: AUTHENTICATION, UTILITY, or MARKETING.
13
+ #
14
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Category]
15
+ required :category, enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Category }
16
+
17
+ # @!attribute components
18
+ # Template components defining message structure. Passed through to Meta Graph
19
+ # API. Templates with variables must include example values. Supports HEADER,
20
+ # BODY, FOOTER, BUTTONS, CAROUSEL and any future Meta component types.
21
+ #
22
+ # @return [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent>]
23
+ required :components,
24
+ -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::Whatsapp::TemplateCreateParams::Component] }
25
+
26
+ # @!attribute language
27
+ # Template language code (e.g. en_US, es, pt_BR).
28
+ #
29
+ # @return [String]
30
+ required :language, String
31
+
32
+ # @!attribute name
33
+ # Template name. Lowercase letters, numbers, and underscores only.
34
+ #
35
+ # @return [String]
36
+ required :name, String
37
+
38
+ # @!attribute waba_id
39
+ # The WhatsApp Business Account ID.
40
+ #
41
+ # @return [String]
42
+ required :waba_id, String
43
+
44
+ # @!method initialize(category:, components:, language:, name:, waba_id:, request_options: {})
45
+ # Some parameter documentations has been truncated, see
46
+ # {Telnyx::Models::Whatsapp::TemplateCreateParams} for more details.
47
+ #
48
+ # @param category [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Category] Template category: AUTHENTICATION, UTILITY, or MARKETING.
49
+ #
50
+ # @param components [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent>] Template components defining message structure. Passed through to Meta Graph API
51
+ #
52
+ # @param language [String] Template language code (e.g. en_US, es, pt_BR).
53
+ #
54
+ # @param name [String] Template name. Lowercase letters, numbers, and underscores only.
55
+ #
56
+ # @param waba_id [String] The WhatsApp Business Account ID.
57
+ #
58
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
59
+
60
+ # Template category: AUTHENTICATION, UTILITY, or MARKETING.
61
+ module Category
62
+ extend Telnyx::Internal::Type::Enum
63
+
64
+ MARKETING = :MARKETING
65
+ UTILITY = :UTILITY
66
+ AUTHENTICATION = :AUTHENTICATION
67
+
68
+ # @!method self.values
69
+ # @return [Array<Symbol>]
70
+ end
71
+
72
+ # A template component. Additional Meta component types not listed here are also
73
+ # accepted.
74
+ module Component
75
+ extend Telnyx::Internal::Type::Union
76
+
77
+ # Optional header displayed at the top of the message.
78
+ variant -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent }
79
+
80
+ # 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.
81
+ variant -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent }
82
+
83
+ # Optional footer displayed at the bottom of the message. Does not support variables.
84
+ variant -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent }
85
+
86
+ # Optional interactive buttons. Maximum 3 buttons per template.
87
+ variant -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent }
88
+
89
+ # Carousel component for multi-card templates. Each card can contain its own header, body, and buttons.
90
+ variant -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent }
91
+
92
+ class WhatsappTemplateHeaderComponent < Telnyx::Internal::Type::BaseModel
93
+ # @!attribute format_
94
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
95
+ # LOCATION.
96
+ #
97
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Format]
98
+ required :format_,
99
+ enum: -> {
100
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Format
101
+ },
102
+ api_name: :format
103
+
104
+ # @!attribute type
105
+ #
106
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Type]
107
+ required :type,
108
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Type }
109
+
110
+ # @!attribute example
111
+ # Sample values for header variables.
112
+ #
113
+ # @return [Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Example, nil]
114
+ optional :example,
115
+ -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Example }
116
+
117
+ # @!attribute text
118
+ # Header text. Required when format is TEXT. Supports one variable ({{1}}).
119
+ # Variables cannot be at the start or end.
120
+ #
121
+ # @return [String, nil]
122
+ optional :text, String
123
+
124
+ # @!method initialize(format_:, type:, example: nil, text: nil)
125
+ # Some parameter documentations has been truncated, see
126
+ # {Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent}
127
+ # for more details.
128
+ #
129
+ # Optional header displayed at the top of the message.
130
+ #
131
+ # @param format_ [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Format] Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or LOC
132
+ #
133
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Type]
134
+ #
135
+ # @param example [Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::Example] Sample values for header variables.
136
+ #
137
+ # @param text [String] Header text. Required when format is TEXT. Supports one variable ({{1}}). Variab
138
+
139
+ # Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or
140
+ # LOCATION.
141
+ #
142
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent#format_
143
+ module Format
144
+ extend Telnyx::Internal::Type::Enum
145
+
146
+ TEXT = :TEXT
147
+ IMAGE = :IMAGE
148
+ VIDEO = :VIDEO
149
+ DOCUMENT = :DOCUMENT
150
+ LOCATION = :LOCATION
151
+
152
+ # @!method self.values
153
+ # @return [Array<Symbol>]
154
+ end
155
+
156
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent#type
157
+ module Type
158
+ extend Telnyx::Internal::Type::Enum
159
+
160
+ HEADER = :HEADER
161
+
162
+ # @!method self.values
163
+ # @return [Array<Symbol>]
164
+ end
165
+
166
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent#example
167
+ class Example < Telnyx::Internal::Type::BaseModel
168
+ # @!attribute header_handle
169
+ # Media handle for IMAGE, VIDEO, or DOCUMENT headers.
170
+ #
171
+ # @return [Array<String>, nil]
172
+ optional :header_handle, Telnyx::Internal::Type::ArrayOf[String]
173
+
174
+ # @!attribute header_text
175
+ # Sample values for text header variables.
176
+ #
177
+ # @return [Array<String>, nil]
178
+ optional :header_text, Telnyx::Internal::Type::ArrayOf[String]
179
+
180
+ # @!method initialize(header_handle: nil, header_text: nil)
181
+ # Sample values for header variables.
182
+ #
183
+ # @param header_handle [Array<String>] Media handle for IMAGE, VIDEO, or DOCUMENT headers.
184
+ #
185
+ # @param header_text [Array<String>] Sample values for text header variables.
186
+ end
187
+ end
188
+
189
+ class WhatsappTemplateBodyComponent < Telnyx::Internal::Type::BaseModel
190
+ # @!attribute type
191
+ #
192
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Type]
193
+ required :type,
194
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Type }
195
+
196
+ # @!attribute example
197
+ # Sample values for body variables. Required when body text contains parameters.
198
+ #
199
+ # @return [Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Example, nil]
200
+ optional :example,
201
+ -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Example }
202
+
203
+ # @!attribute text
204
+ # Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required
205
+ # for MARKETING and UTILITY templates. Optional for AUTHENTICATION templates where
206
+ # Meta provides the built-in OTP body.
207
+ #
208
+ # @return [String, nil]
209
+ optional :text, String
210
+
211
+ # @!method initialize(type:, example: nil, text: nil)
212
+ # Some parameter documentations has been truncated, see
213
+ # {Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent}
214
+ # for more details.
215
+ #
216
+ # The main text content of the message. Supports multiple variable parameters
217
+ # ({{1}}, {{2}}, etc.). Variables cannot be at the start or end. Maximum 1024
218
+ # characters.
219
+ #
220
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Type]
221
+ #
222
+ # @param example [Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::Example] Sample values for body variables. Required when body text contains parameters.
223
+ #
224
+ # @param text [String] Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required fo
225
+
226
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent#type
227
+ module Type
228
+ extend Telnyx::Internal::Type::Enum
229
+
230
+ BODY = :BODY
231
+
232
+ # @!method self.values
233
+ # @return [Array<Symbol>]
234
+ end
235
+
236
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent#example
237
+ class Example < Telnyx::Internal::Type::BaseModel
238
+ # @!attribute body_text
239
+ # Array containing one array of sample values, one per variable in order.
240
+ #
241
+ # @return [Array<Array<String>>, nil]
242
+ optional :body_text, Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::ArrayOf[String]]
243
+
244
+ # @!method initialize(body_text: nil)
245
+ # Sample values for body variables. Required when body text contains parameters.
246
+ #
247
+ # @param body_text [Array<Array<String>>] Array containing one array of sample values, one per variable in order.
248
+ end
249
+ end
250
+
251
+ class WhatsappTemplateFooterComponent < Telnyx::Internal::Type::BaseModel
252
+ # @!attribute type
253
+ #
254
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent::Type]
255
+ required :type,
256
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent::Type }
257
+
258
+ # @!attribute code_expiration_minutes
259
+ # OTP code expiration time in minutes. Used in AUTHENTICATION template footers
260
+ # instead of free-form text.
261
+ #
262
+ # @return [Integer, nil]
263
+ optional :code_expiration_minutes, Integer
264
+
265
+ # @!attribute text
266
+ # Footer text. Maximum 60 characters. For non-authentication templates.
267
+ #
268
+ # @return [String, nil]
269
+ optional :text, String
270
+
271
+ # @!method initialize(type:, code_expiration_minutes: nil, text: nil)
272
+ # Some parameter documentations has been truncated, see
273
+ # {Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent}
274
+ # for more details.
275
+ #
276
+ # Optional footer displayed at the bottom of the message. Does not support
277
+ # variables.
278
+ #
279
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent::Type]
280
+ #
281
+ # @param code_expiration_minutes [Integer] OTP code expiration time in minutes. Used in AUTHENTICATION template footers ins
282
+ #
283
+ # @param text [String] Footer text. Maximum 60 characters. For non-authentication templates.
284
+
285
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent#type
286
+ module Type
287
+ extend Telnyx::Internal::Type::Enum
288
+
289
+ FOOTER = :FOOTER
290
+
291
+ # @!method self.values
292
+ # @return [Array<Symbol>]
293
+ end
294
+ end
295
+
296
+ class WhatsappTemplateButtonsComponent < Telnyx::Internal::Type::BaseModel
297
+ # @!attribute buttons
298
+ # Array of button objects. Meta supports various combinations of button types.
299
+ #
300
+ # @return [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button>]
301
+ required :buttons,
302
+ -> { Telnyx::Internal::Type::ArrayOf[Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button] }
303
+
304
+ # @!attribute type
305
+ #
306
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Type]
307
+ required :type,
308
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Type }
309
+
310
+ # @!method initialize(buttons:, type:)
311
+ # Optional interactive buttons. Maximum 3 buttons per template.
312
+ #
313
+ # @param buttons [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button>] Array of button objects. Meta supports various combinations of button types.
314
+ #
315
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Type]
316
+
317
+ class Button < Telnyx::Internal::Type::BaseModel
318
+ # @!attribute type
319
+ #
320
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::Type]
321
+ required :type,
322
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::Type }
323
+
324
+ # @!attribute autofill_text
325
+ # Custom autofill button text for ONE_TAP OTP buttons.
326
+ #
327
+ # @return [String, nil]
328
+ optional :autofill_text, String
329
+
330
+ # @!attribute example
331
+ # Sample values for URL variable.
332
+ #
333
+ # @return [Array<String>, nil]
334
+ optional :example, Telnyx::Internal::Type::ArrayOf[String]
335
+
336
+ # @!attribute flow_action
337
+ # Flow action type for FLOW-type buttons.
338
+ #
339
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction, nil]
340
+ optional :flow_action,
341
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction }
342
+
343
+ # @!attribute flow_id
344
+ # Flow ID for FLOW-type buttons.
345
+ #
346
+ # @return [String, nil]
347
+ optional :flow_id, String
348
+
349
+ # @!attribute navigate_screen
350
+ # Target screen name for FLOW buttons with navigate action.
351
+ #
352
+ # @return [String, nil]
353
+ optional :navigate_screen, String
354
+
355
+ # @!attribute otp_type
356
+ #
357
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType, nil]
358
+ optional :otp_type,
359
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType }
360
+
361
+ # @!attribute package_name
362
+ # Android package name. Required for ONE_TAP OTP buttons.
363
+ #
364
+ # @return [String, nil]
365
+ optional :package_name, String
366
+
367
+ # @!attribute phone_number
368
+ # Phone number in E.164 format.
369
+ #
370
+ # @return [String, nil]
371
+ optional :phone_number, String
372
+
373
+ # @!attribute signature_hash
374
+ # Android app signing key hash. Required for ONE_TAP OTP buttons.
375
+ #
376
+ # @return [String, nil]
377
+ optional :signature_hash, String
378
+
379
+ # @!attribute text
380
+ # Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and
381
+ # QUICK_REPLY buttons. Not required for OTP buttons (Meta supplies the label).
382
+ #
383
+ # @return [String, nil]
384
+ optional :text, String
385
+
386
+ # @!attribute url
387
+ # URL for URL-type buttons. Supports one variable ({{1}}).
388
+ #
389
+ # @return [String, nil]
390
+ optional :url, String
391
+
392
+ # @!attribute zero_tap_terms_accepted
393
+ # Whether zero-tap terms have been accepted.
394
+ #
395
+ # @return [Boolean, nil]
396
+ optional :zero_tap_terms_accepted, Telnyx::Internal::Type::Boolean
397
+
398
+ # @!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)
399
+ # Some parameter documentations has been truncated, see
400
+ # {Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button}
401
+ # for more details.
402
+ #
403
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::Type]
404
+ #
405
+ # @param autofill_text [String] Custom autofill button text for ONE_TAP OTP buttons.
406
+ #
407
+ # @param example [Array<String>] Sample values for URL variable.
408
+ #
409
+ # @param flow_action [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::FlowAction] Flow action type for FLOW-type buttons.
410
+ #
411
+ # @param flow_id [String] Flow ID for FLOW-type buttons.
412
+ #
413
+ # @param navigate_screen [String] Target screen name for FLOW buttons with navigate action.
414
+ #
415
+ # @param otp_type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button::OtpType]
416
+ #
417
+ # @param package_name [String] Android package name. Required for ONE_TAP OTP buttons.
418
+ #
419
+ # @param phone_number [String] Phone number in E.164 format.
420
+ #
421
+ # @param signature_hash [String] Android app signing key hash. Required for ONE_TAP OTP buttons.
422
+ #
423
+ # @param text [String] Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and QU
424
+ #
425
+ # @param url [String] URL for URL-type buttons. Supports one variable ({{1}}).
426
+ #
427
+ # @param zero_tap_terms_accepted [Boolean] Whether zero-tap terms have been accepted.
428
+
429
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button#type
430
+ module Type
431
+ extend Telnyx::Internal::Type::Enum
432
+
433
+ URL = :URL
434
+ PHONE_NUMBER = :PHONE_NUMBER
435
+ QUICK_REPLY = :QUICK_REPLY
436
+ OTP = :OTP
437
+ COPY_CODE = :COPY_CODE
438
+ FLOW = :FLOW
439
+
440
+ # @!method self.values
441
+ # @return [Array<Symbol>]
442
+ end
443
+
444
+ # Flow action type for FLOW-type buttons.
445
+ #
446
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button#flow_action
447
+ module FlowAction
448
+ extend Telnyx::Internal::Type::Enum
449
+
450
+ NAVIGATE = :navigate
451
+ DATA_EXCHANGE = :data_exchange
452
+
453
+ # @!method self.values
454
+ # @return [Array<Symbol>]
455
+ end
456
+
457
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::Button#otp_type
458
+ module OtpType
459
+ extend Telnyx::Internal::Type::Enum
460
+
461
+ COPY_CODE = :COPY_CODE
462
+ ONE_TAP = :ONE_TAP
463
+
464
+ # @!method self.values
465
+ # @return [Array<Symbol>]
466
+ end
467
+ end
468
+
469
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent#type
470
+ module Type
471
+ extend Telnyx::Internal::Type::Enum
472
+
473
+ BUTTONS = :BUTTONS
474
+
475
+ # @!method self.values
476
+ # @return [Array<Symbol>]
477
+ end
478
+ end
479
+
480
+ class WhatsappTemplateCarouselComponent < Telnyx::Internal::Type::BaseModel
481
+ # @!attribute cards
482
+ # Array of card objects, each with its own components.
483
+ #
484
+ # @return [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Card>]
485
+ required :cards,
486
+ -> { Telnyx::Internal::Type::ArrayOf[Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Card] }
487
+
488
+ # @!attribute type
489
+ #
490
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Type]
491
+ required :type,
492
+ enum: -> { Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Type }
493
+
494
+ # @!method initialize(cards:, type:)
495
+ # Carousel component for multi-card templates. Each card can contain its own
496
+ # header, body, and buttons.
497
+ #
498
+ # @param cards [Array<Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Card>] Array of card objects, each with its own components.
499
+ #
500
+ # @param type [Symbol, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::Type]
501
+
502
+ class Card < Telnyx::Internal::Type::BaseModel
503
+ # @!attribute components
504
+ #
505
+ # @return [Array<Hash{Symbol=>Object}>, nil]
506
+ optional :components,
507
+ Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]]
508
+
509
+ # @!method initialize(components: nil)
510
+ # @param components [Array<Hash{Symbol=>Object}>]
511
+ end
512
+
513
+ # @see Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent#type
514
+ module Type
515
+ extend Telnyx::Internal::Type::Enum
516
+
517
+ CAROUSEL = :CAROUSEL
518
+
519
+ # @!method self.values
520
+ # @return [Array<Symbol>]
521
+ end
522
+ end
523
+
524
+ # @!method self.variants
525
+ # @return [Array(Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent, Telnyx::Models::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent)]
526
+ end
527
+ end
528
+ end
529
+ end
530
+ end
@@ -3,8 +3,8 @@
3
3
  module Telnyx
4
4
  module Models
5
5
  module Whatsapp
6
- # @see Telnyx::Resources::Whatsapp::MessageTemplates#create
7
- class MessageTemplateCreateResponse < Telnyx::Internal::Type::BaseModel
6
+ # @see Telnyx::Resources::Whatsapp::Templates#create
7
+ class TemplateCreateResponse < Telnyx::Internal::Type::BaseModel
8
8
  # @!attribute data
9
9
  #
10
10
  # @return [Telnyx::Models::WhatsappTemplateData, nil]
@@ -3,16 +3,16 @@
3
3
  module Telnyx
4
4
  module Models
5
5
  module Whatsapp
6
- # @see Telnyx::Resources::Whatsapp::MessageTemplates#list
7
- class MessageTemplateListParams < Telnyx::Internal::Type::BaseModel
6
+ # @see Telnyx::Resources::Whatsapp::Templates#list
7
+ class TemplateListParams < Telnyx::Internal::Type::BaseModel
8
8
  extend Telnyx::Internal::Type::RequestParameters::Converter
9
9
  include Telnyx::Internal::Type::RequestParameters
10
10
 
11
11
  # @!attribute filter_category
12
12
  # Filter by category
13
13
  #
14
- # @return [Symbol, Telnyx::Models::Whatsapp::MessageTemplateListParams::FilterCategory, nil]
15
- optional :filter_category, enum: -> { Telnyx::Whatsapp::MessageTemplateListParams::FilterCategory }
14
+ # @return [Symbol, Telnyx::Models::Whatsapp::TemplateListParams::FilterCategory, nil]
15
+ optional :filter_category, enum: -> { Telnyx::Whatsapp::TemplateListParams::FilterCategory }
16
16
 
17
17
  # @!attribute filter_search
18
18
  # Search templates by name
@@ -43,7 +43,7 @@ module Telnyx
43
43
  optional :page_size, Integer
44
44
 
45
45
  # @!method initialize(filter_category: nil, filter_search: nil, filter_status: nil, filter_waba_id: nil, page_number: nil, page_size: nil, request_options: {})
46
- # @param filter_category [Symbol, Telnyx::Models::Whatsapp::MessageTemplateListParams::FilterCategory] Filter by category
46
+ # @param filter_category [Symbol, Telnyx::Models::Whatsapp::TemplateListParams::FilterCategory] Filter by category
47
47
  #
48
48
  # @param filter_search [String] Search templates by name
49
49
  #
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::WhatsappMessageTemplates#delete
6
+ class WhatsappMessageTemplateDeleteParams < 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
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::WhatsappMessageTemplates#retrieve
6
+ class WhatsappMessageTemplateRetrieveParams < 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
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::WhatsappMessageTemplates#retrieve
6
+ class WhatsappMessageTemplateRetrieveResponse < 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