zavudev 0.5.0 → 0.7.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +1 -1
  4. data/lib/zavudev/internal/util.rb +3 -1
  5. data/lib/zavudev/models/contact.rb +3 -153
  6. data/lib/zavudev/models/contact_channel.rb +155 -0
  7. data/lib/zavudev/models/message_send_params.rb +4 -3
  8. data/lib/zavudev/models/senders/agent/agent_flow.rb +6 -101
  9. data/lib/zavudev/models/senders/agent/agent_tool.rb +3 -53
  10. data/lib/zavudev/models/senders/agent/flow_create_params.rb +6 -100
  11. data/lib/zavudev/models/senders/agent/flow_step.rb +61 -0
  12. data/lib/zavudev/models/senders/agent/flow_trigger.rb +51 -0
  13. data/lib/zavudev/models/senders/agent/flow_update_params.rb +6 -100
  14. data/lib/zavudev/models/senders/agent/tool_create_params.rb +3 -52
  15. data/lib/zavudev/models/senders/agent/tool_parameters.rb +58 -0
  16. data/lib/zavudev/models/senders/agent/tool_update_params.rb +3 -52
  17. data/lib/zavudev/models/template.rb +33 -5
  18. data/lib/zavudev/models/template_create_params.rb +64 -2
  19. data/lib/zavudev/models.rb +2 -0
  20. data/lib/zavudev/resources/messages.rb +1 -1
  21. data/lib/zavudev/resources/senders/agent/flows.rb +4 -4
  22. data/lib/zavudev/resources/senders/agent/tools.rb +2 -2
  23. data/lib/zavudev/resources/templates.rb +14 -2
  24. data/lib/zavudev/version.rb +1 -1
  25. data/lib/zavudev.rb +4 -0
  26. data/rbi/zavudev/models/contact.rbi +4 -235
  27. data/rbi/zavudev/models/contact_channel.rbi +231 -0
  28. data/rbi/zavudev/models/message_send_params.rbi +6 -4
  29. data/rbi/zavudev/models/senders/agent/agent_flow.rbi +7 -233
  30. data/rbi/zavudev/models/senders/agent/agent_tool.rbi +4 -130
  31. data/rbi/zavudev/models/senders/agent/flow_create_params.rbi +7 -245
  32. data/rbi/zavudev/models/senders/agent/flow_step.rbi +115 -0
  33. data/rbi/zavudev/models/senders/agent/flow_trigger.rbi +108 -0
  34. data/rbi/zavudev/models/senders/agent/flow_update_params.rbi +8 -255
  35. data/rbi/zavudev/models/senders/agent/tool_create_params.rbi +4 -132
  36. data/rbi/zavudev/models/senders/agent/tool_parameters.rbi +124 -0
  37. data/rbi/zavudev/models/senders/agent/tool_update_params.rbi +4 -136
  38. data/rbi/zavudev/models/template.rbi +39 -4
  39. data/rbi/zavudev/models/template_create_params.rbi +105 -0
  40. data/rbi/zavudev/models.rbi +2 -0
  41. data/rbi/zavudev/resources/messages.rbi +3 -3
  42. data/rbi/zavudev/resources/senders/agent/flows.rbi +4 -12
  43. data/rbi/zavudev/resources/senders/agent/tools.rbi +2 -4
  44. data/rbi/zavudev/resources/templates.rbi +19 -0
  45. data/sig/zavudev/models/contact.rbs +6 -153
  46. data/sig/zavudev/models/contact_channel.rbs +150 -0
  47. data/sig/zavudev/models/senders/agent/agent_flow.rbs +8 -100
  48. data/sig/zavudev/models/senders/agent/agent_tool.rbs +4 -57
  49. data/sig/zavudev/models/senders/agent/flow_create_params.rbs +8 -100
  50. data/sig/zavudev/models/senders/agent/flow_step.rbs +55 -0
  51. data/sig/zavudev/models/senders/agent/flow_trigger.rbs +51 -0
  52. data/sig/zavudev/models/senders/agent/flow_update_params.rbs +12 -104
  53. data/sig/zavudev/models/senders/agent/tool_create_params.rbs +4 -57
  54. data/sig/zavudev/models/senders/agent/tool_parameters.rbs +60 -0
  55. data/sig/zavudev/models/senders/agent/tool_update_params.rbs +6 -59
  56. data/sig/zavudev/models/template.rbs +21 -0
  57. data/sig/zavudev/models/template_create_params.rbs +57 -0
  58. data/sig/zavudev/models.rbs +2 -0
  59. data/sig/zavudev/resources/senders/agent/flows.rbs +4 -4
  60. data/sig/zavudev/resources/senders/agent/tools.rbs +2 -2
  61. data/sig/zavudev/resources/templates.rbs +6 -0
  62. metadata +14 -2
@@ -40,17 +40,12 @@ module Zavudev
40
40
  sig { params(name: String).void }
41
41
  attr_writer :name
42
42
 
43
- sig do
44
- returns(
45
- T.nilable(Zavudev::Senders::Agent::ToolUpdateParams::Parameters)
46
- )
47
- end
43
+ sig { returns(T.nilable(Zavudev::Senders::Agent::ToolParameters)) }
48
44
  attr_reader :parameters
49
45
 
50
46
  sig do
51
47
  params(
52
- parameters:
53
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::OrHash
48
+ parameters: Zavudev::Senders::Agent::ToolParameters::OrHash
54
49
  ).void
55
50
  end
56
51
  attr_writer :parameters
@@ -71,8 +66,7 @@ module Zavudev
71
66
  description: String,
72
67
  enabled: T::Boolean,
73
68
  name: String,
74
- parameters:
75
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::OrHash,
69
+ parameters: Zavudev::Senders::Agent::ToolParameters::OrHash,
76
70
  webhook_secret: T.nilable(String),
77
71
  webhook_url: String,
78
72
  request_options: Zavudev::RequestOptions::OrHash
@@ -99,8 +93,7 @@ module Zavudev
99
93
  description: String,
100
94
  enabled: T::Boolean,
101
95
  name: String,
102
- parameters:
103
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters,
96
+ parameters: Zavudev::Senders::Agent::ToolParameters,
104
97
  webhook_secret: T.nilable(String),
105
98
  webhook_url: String,
106
99
  request_options: Zavudev::RequestOptions
@@ -109,131 +102,6 @@ module Zavudev
109
102
  end
110
103
  def to_hash
111
104
  end
112
-
113
- class Parameters < Zavudev::Internal::Type::BaseModel
114
- OrHash =
115
- T.type_alias do
116
- T.any(
117
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters,
118
- Zavudev::Internal::AnyHash
119
- )
120
- end
121
-
122
- sig do
123
- returns(
124
- T::Hash[
125
- Symbol,
126
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Property
127
- ]
128
- )
129
- end
130
- attr_accessor :properties
131
-
132
- sig { returns(T::Array[String]) }
133
- attr_accessor :required
134
-
135
- sig do
136
- returns(
137
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type::OrSymbol
138
- )
139
- end
140
- attr_accessor :type
141
-
142
- sig do
143
- params(
144
- properties:
145
- T::Hash[
146
- Symbol,
147
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Property::OrHash
148
- ],
149
- required: T::Array[String],
150
- type:
151
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type::OrSymbol
152
- ).returns(T.attached_class)
153
- end
154
- def self.new(properties:, required:, type:)
155
- end
156
-
157
- sig do
158
- override.returns(
159
- {
160
- properties:
161
- T::Hash[
162
- Symbol,
163
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Property
164
- ],
165
- required: T::Array[String],
166
- type:
167
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type::OrSymbol
168
- }
169
- )
170
- end
171
- def to_hash
172
- end
173
-
174
- class Property < Zavudev::Internal::Type::BaseModel
175
- OrHash =
176
- T.type_alias do
177
- T.any(
178
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Property,
179
- Zavudev::Internal::AnyHash
180
- )
181
- end
182
-
183
- sig { returns(T.nilable(String)) }
184
- attr_reader :description
185
-
186
- sig { params(description: String).void }
187
- attr_writer :description
188
-
189
- sig { returns(T.nilable(String)) }
190
- attr_reader :type
191
-
192
- sig { params(type: String).void }
193
- attr_writer :type
194
-
195
- sig do
196
- params(description: String, type: String).returns(
197
- T.attached_class
198
- )
199
- end
200
- def self.new(description: nil, type: nil)
201
- end
202
-
203
- sig { override.returns({ description: String, type: String }) }
204
- def to_hash
205
- end
206
- end
207
-
208
- module Type
209
- extend Zavudev::Internal::Type::Enum
210
-
211
- TaggedSymbol =
212
- T.type_alias do
213
- T.all(
214
- Symbol,
215
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type
216
- )
217
- end
218
- OrSymbol = T.type_alias { T.any(Symbol, String) }
219
-
220
- OBJECT =
221
- T.let(
222
- :object,
223
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type::TaggedSymbol
224
- )
225
-
226
- sig do
227
- override.returns(
228
- T::Array[
229
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::Type::TaggedSymbol
230
- ]
231
- )
232
- end
233
- def self.values
234
- end
235
- end
236
- end
237
105
  end
238
106
  end
239
107
  end
@@ -9,7 +9,8 @@ module Zavudev
9
9
  sig { returns(String) }
10
10
  attr_accessor :id
11
11
 
12
- # Template body with variables: {{1}}, {{2}}, etc.
12
+ # Default template body with variables: {{1}}, {{2}}, or named variables like
13
+ # {{contact.first_name}}. Used when no channel-specific body is set.
13
14
  sig { returns(String) }
14
15
  attr_accessor :body
15
16
 
@@ -21,7 +22,7 @@ module Zavudev
21
22
  sig { returns(String) }
22
23
  attr_accessor :language
23
24
 
24
- # Template name (must match WhatsApp template name).
25
+ # Template name. For WhatsApp, must match the approved template name in Meta.
25
26
  sig { returns(String) }
26
27
  attr_accessor :name
27
28
 
@@ -73,12 +74,33 @@ module Zavudev
73
74
  sig { params(header_type: String).void }
74
75
  attr_writer :header_type
75
76
 
77
+ # Channel-specific body for Instagram messages. Falls back to `body` if not set.
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :instagram_body
80
+
81
+ sig { params(instagram_body: String).void }
82
+ attr_writer :instagram_body
83
+
84
+ # Channel-specific body for SMS messages. Falls back to `body` if not set.
85
+ sig { returns(T.nilable(String)) }
86
+ attr_reader :sms_body
87
+
88
+ sig { params(sms_body: String).void }
89
+ attr_writer :sms_body
90
+
76
91
  sig { returns(T.nilable(Zavudev::Template::Status::TaggedSymbol)) }
77
92
  attr_reader :status
78
93
 
79
94
  sig { params(status: Zavudev::Template::Status::OrSymbol).void }
80
95
  attr_writer :status
81
96
 
97
+ # Channel-specific body for Telegram messages. Falls back to `body` if not set.
98
+ sig { returns(T.nilable(String)) }
99
+ attr_reader :telegram_body
100
+
101
+ sig { params(telegram_body: String).void }
102
+ attr_writer :telegram_body
103
+
82
104
  sig { returns(T.nilable(Time)) }
83
105
  attr_reader :updated_at
84
106
 
@@ -113,7 +135,10 @@ module Zavudev
113
135
  footer: String,
114
136
  header_content: String,
115
137
  header_type: String,
138
+ instagram_body: String,
139
+ sms_body: String,
116
140
  status: Zavudev::Template::Status::OrSymbol,
141
+ telegram_body: String,
117
142
  updated_at: Time,
118
143
  variables: T::Array[String],
119
144
  whatsapp: Zavudev::Template::Whatsapp::OrHash
@@ -121,13 +146,14 @@ module Zavudev
121
146
  end
122
147
  def self.new(
123
148
  id:,
124
- # Template body with variables: {{1}}, {{2}}, etc.
149
+ # Default template body with variables: {{1}}, {{2}}, or named variables like
150
+ # {{contact.first_name}}. Used when no channel-specific body is set.
125
151
  body:,
126
152
  # WhatsApp template category.
127
153
  category:,
128
154
  # Language code.
129
155
  language:,
130
- # Template name (must match WhatsApp template name).
156
+ # Template name. For WhatsApp, must match the approved template name in Meta.
131
157
  name:,
132
158
  # Add 'Do not share this code' disclaimer. Only for AUTHENTICATION templates.
133
159
  add_security_recommendation: nil,
@@ -142,7 +168,13 @@ module Zavudev
142
168
  header_content: nil,
143
169
  # Type of header (text, image, video, document).
144
170
  header_type: nil,
171
+ # Channel-specific body for Instagram messages. Falls back to `body` if not set.
172
+ instagram_body: nil,
173
+ # Channel-specific body for SMS messages. Falls back to `body` if not set.
174
+ sms_body: nil,
145
175
  status: nil,
176
+ # Channel-specific body for Telegram messages. Falls back to `body` if not set.
177
+ telegram_body: nil,
146
178
  updated_at: nil,
147
179
  # List of variable names for documentation.
148
180
  variables: nil,
@@ -166,7 +198,10 @@ module Zavudev
166
198
  footer: String,
167
199
  header_content: String,
168
200
  header_type: String,
201
+ instagram_body: String,
202
+ sms_body: String,
169
203
  status: Zavudev::Template::Status::TaggedSymbol,
204
+ telegram_body: String,
170
205
  updated_at: Time,
171
206
  variables: T::Array[String],
172
207
  whatsapp: Zavudev::Template::Whatsapp
@@ -11,6 +11,7 @@ module Zavudev
11
11
  T.any(Zavudev::TemplateCreateParams, Zavudev::Internal::AnyHash)
12
12
  end
13
13
 
14
+ # Default template body. Used when no channel-specific body is set.
14
15
  sig { returns(String) }
15
16
  attr_accessor :body
16
17
 
@@ -47,6 +48,54 @@ module Zavudev
47
48
  sig { params(code_expiration_minutes: Integer).void }
48
49
  attr_writer :code_expiration_minutes
49
50
 
51
+ # Footer text for the template.
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :footer
54
+
55
+ sig { params(footer: String).void }
56
+ attr_writer :footer
57
+
58
+ # Header content (text string or media URL).
59
+ sig { returns(T.nilable(String)) }
60
+ attr_reader :header_content
61
+
62
+ sig { params(header_content: String).void }
63
+ attr_writer :header_content
64
+
65
+ # Type of header for the template.
66
+ sig do
67
+ returns(T.nilable(Zavudev::TemplateCreateParams::HeaderType::OrSymbol))
68
+ end
69
+ attr_reader :header_type
70
+
71
+ sig do
72
+ params(
73
+ header_type: Zavudev::TemplateCreateParams::HeaderType::OrSymbol
74
+ ).void
75
+ end
76
+ attr_writer :header_type
77
+
78
+ # Channel-specific body for Instagram. Falls back to `body` if not set.
79
+ sig { returns(T.nilable(String)) }
80
+ attr_reader :instagram_body
81
+
82
+ sig { params(instagram_body: String).void }
83
+ attr_writer :instagram_body
84
+
85
+ # Channel-specific body for SMS. Falls back to `body` if not set.
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :sms_body
88
+
89
+ sig { params(sms_body: String).void }
90
+ attr_writer :sms_body
91
+
92
+ # Channel-specific body for Telegram. Falls back to `body` if not set.
93
+ sig { returns(T.nilable(String)) }
94
+ attr_reader :telegram_body
95
+
96
+ sig { params(telegram_body: String).void }
97
+ attr_writer :telegram_body
98
+
50
99
  sig { returns(T.nilable(T::Array[String])) }
51
100
  attr_reader :variables
52
101
 
@@ -70,12 +119,19 @@ module Zavudev
70
119
  add_security_recommendation: T::Boolean,
71
120
  buttons: T::Array[Zavudev::TemplateCreateParams::Button::OrHash],
72
121
  code_expiration_minutes: Integer,
122
+ footer: String,
123
+ header_content: String,
124
+ header_type: Zavudev::TemplateCreateParams::HeaderType::OrSymbol,
125
+ instagram_body: String,
126
+ sms_body: String,
127
+ telegram_body: String,
73
128
  variables: T::Array[String],
74
129
  whatsapp_category: Zavudev::WhatsappCategory::OrSymbol,
75
130
  request_options: Zavudev::RequestOptions::OrHash
76
131
  ).returns(T.attached_class)
77
132
  end
78
133
  def self.new(
134
+ # Default template body. Used when no channel-specific body is set.
79
135
  body:,
80
136
  language:,
81
137
  name:,
@@ -85,6 +141,18 @@ module Zavudev
85
141
  buttons: nil,
86
142
  # Code expiration time in minutes. Only for AUTHENTICATION templates.
87
143
  code_expiration_minutes: nil,
144
+ # Footer text for the template.
145
+ footer: nil,
146
+ # Header content (text string or media URL).
147
+ header_content: nil,
148
+ # Type of header for the template.
149
+ header_type: nil,
150
+ # Channel-specific body for Instagram. Falls back to `body` if not set.
151
+ instagram_body: nil,
152
+ # Channel-specific body for SMS. Falls back to `body` if not set.
153
+ sms_body: nil,
154
+ # Channel-specific body for Telegram. Falls back to `body` if not set.
155
+ telegram_body: nil,
88
156
  variables: nil,
89
157
  # WhatsApp template category.
90
158
  whatsapp_category: nil,
@@ -101,6 +169,12 @@ module Zavudev
101
169
  add_security_recommendation: T::Boolean,
102
170
  buttons: T::Array[Zavudev::TemplateCreateParams::Button],
103
171
  code_expiration_minutes: Integer,
172
+ footer: String,
173
+ header_content: String,
174
+ header_type: Zavudev::TemplateCreateParams::HeaderType::OrSymbol,
175
+ instagram_body: String,
176
+ sms_body: String,
177
+ telegram_body: String,
104
178
  variables: T::Array[String],
105
179
  whatsapp_category: Zavudev::WhatsappCategory::OrSymbol,
106
180
  request_options: Zavudev::RequestOptions
@@ -284,6 +358,37 @@ module Zavudev
284
358
  end
285
359
  end
286
360
  end
361
+
362
+ # Type of header for the template.
363
+ module HeaderType
364
+ extend Zavudev::Internal::Type::Enum
365
+
366
+ TaggedSymbol =
367
+ T.type_alias do
368
+ T.all(Symbol, Zavudev::TemplateCreateParams::HeaderType)
369
+ end
370
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
371
+
372
+ TEXT =
373
+ T.let(:text, Zavudev::TemplateCreateParams::HeaderType::TaggedSymbol)
374
+ IMAGE =
375
+ T.let(:image, Zavudev::TemplateCreateParams::HeaderType::TaggedSymbol)
376
+ VIDEO =
377
+ T.let(:video, Zavudev::TemplateCreateParams::HeaderType::TaggedSymbol)
378
+ DOCUMENT =
379
+ T.let(
380
+ :document,
381
+ Zavudev::TemplateCreateParams::HeaderType::TaggedSymbol
382
+ )
383
+
384
+ sig do
385
+ override.returns(
386
+ T::Array[Zavudev::TemplateCreateParams::HeaderType::TaggedSymbol]
387
+ )
388
+ end
389
+ def self.values
390
+ end
391
+ end
287
392
  end
288
393
  end
289
394
  end
@@ -55,6 +55,8 @@ module Zavudev
55
55
 
56
56
  Contact = Zavudev::Models::Contact
57
57
 
58
+ ContactChannel = Zavudev::Models::ContactChannel
59
+
58
60
  ContactListParams = Zavudev::Models::ContactListParams
59
61
 
60
62
  ContactRetrieveByPhoneParams = Zavudev::Models::ContactRetrieveByPhoneParams
@@ -100,9 +100,9 @@ module Zavudev
100
100
  # Body param: Email attachments. Only supported when channel is 'email'. Maximum
101
101
  # 40MB total size.
102
102
  attachments: nil,
103
- # Body param: Delivery channel. Use 'auto' for intelligent routing. If omitted
104
- # with non-text messageType, WhatsApp is used. For email recipients, defaults to
105
- # 'email'.
103
+ # Body param: Delivery channel. Use 'auto' for intelligent routing. If omitted,
104
+ # channel is auto-selected based on sender capabilities and recipient type. For
105
+ # email recipients, defaults to 'email'.
106
106
  channel: nil,
107
107
  # Body param: Additional content for non-text message types.
108
108
  content: nil,
@@ -10,12 +10,8 @@ module Zavudev
10
10
  params(
11
11
  sender_id: String,
12
12
  name: String,
13
- steps:
14
- T::Array[
15
- Zavudev::Senders::Agent::FlowCreateParams::Step::OrHash
16
- ],
17
- trigger:
18
- Zavudev::Senders::Agent::FlowCreateParams::Trigger::OrHash,
13
+ steps: T::Array[Zavudev::Senders::Agent::FlowStep::OrHash],
14
+ trigger: Zavudev::Senders::Agent::FlowTrigger::OrHash,
19
15
  description: String,
20
16
  enabled: T::Boolean,
21
17
  priority: Integer,
@@ -54,12 +50,8 @@ module Zavudev
54
50
  enabled: T::Boolean,
55
51
  name: String,
56
52
  priority: Integer,
57
- steps:
58
- T::Array[
59
- Zavudev::Senders::Agent::FlowUpdateParams::Step::OrHash
60
- ],
61
- trigger:
62
- Zavudev::Senders::Agent::FlowUpdateParams::Trigger::OrHash,
53
+ steps: T::Array[Zavudev::Senders::Agent::FlowStep::OrHash],
54
+ trigger: Zavudev::Senders::Agent::FlowTrigger::OrHash,
63
55
  request_options: Zavudev::RequestOptions::OrHash
64
56
  ).returns(Zavudev::Models::Senders::Agent::FlowUpdateResponse)
65
57
  end
@@ -11,8 +11,7 @@ module Zavudev
11
11
  sender_id: String,
12
12
  description: String,
13
13
  name: String,
14
- parameters:
15
- Zavudev::Senders::Agent::ToolCreateParams::Parameters::OrHash,
14
+ parameters: Zavudev::Senders::Agent::ToolParameters::OrHash,
16
15
  webhook_url: String,
17
16
  enabled: T::Boolean,
18
17
  webhook_secret: String,
@@ -52,8 +51,7 @@ module Zavudev
52
51
  description: String,
53
52
  enabled: T::Boolean,
54
53
  name: String,
55
- parameters:
56
- Zavudev::Senders::Agent::ToolUpdateParams::Parameters::OrHash,
54
+ parameters: Zavudev::Senders::Agent::ToolParameters::OrHash,
57
55
  webhook_secret: T.nilable(String),
58
56
  webhook_url: String,
59
57
  request_options: Zavudev::RequestOptions::OrHash
@@ -13,12 +13,19 @@ module Zavudev
13
13
  add_security_recommendation: T::Boolean,
14
14
  buttons: T::Array[Zavudev::TemplateCreateParams::Button::OrHash],
15
15
  code_expiration_minutes: Integer,
16
+ footer: String,
17
+ header_content: String,
18
+ header_type: Zavudev::TemplateCreateParams::HeaderType::OrSymbol,
19
+ instagram_body: String,
20
+ sms_body: String,
21
+ telegram_body: String,
16
22
  variables: T::Array[String],
17
23
  whatsapp_category: Zavudev::WhatsappCategory::OrSymbol,
18
24
  request_options: Zavudev::RequestOptions::OrHash
19
25
  ).returns(Zavudev::Template)
20
26
  end
21
27
  def create(
28
+ # Default template body. Used when no channel-specific body is set.
22
29
  body:,
23
30
  language:,
24
31
  name:,
@@ -28,6 +35,18 @@ module Zavudev
28
35
  buttons: nil,
29
36
  # Code expiration time in minutes. Only for AUTHENTICATION templates.
30
37
  code_expiration_minutes: nil,
38
+ # Footer text for the template.
39
+ footer: nil,
40
+ # Header content (text string or media URL).
41
+ header_content: nil,
42
+ # Type of header for the template.
43
+ header_type: nil,
44
+ # Channel-specific body for Instagram. Falls back to `body` if not set.
45
+ instagram_body: nil,
46
+ # Channel-specific body for SMS. Falls back to `body` if not set.
47
+ sms_body: nil,
48
+ # Channel-specific body for Telegram. Falls back to `body` if not set.
49
+ telegram_body: nil,
31
50
  variables: nil,
32
51
  # WhatsApp template category.
33
52
  whatsapp_category: nil,