zavudev 0.12.0 → 0.14.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +1 -1
  4. data/lib/zavudev/internal/transport/base_client.rb +4 -1
  5. data/lib/zavudev/models/broadcast_channel.rb +1 -0
  6. data/lib/zavudev/models/channel.rb +1 -0
  7. data/lib/zavudev/models/contact.rb +1 -0
  8. data/lib/zavudev/models/contact_channel.rb +1 -0
  9. data/lib/zavudev/models/contact_create_params.rb +1 -0
  10. data/lib/zavudev/models/contact_update_params.rb +1 -0
  11. data/lib/zavudev/models/contacts/channel_add_params.rb +1 -0
  12. data/lib/zavudev/models/message_content.rb +46 -1
  13. data/lib/zavudev/models/message_send_params.rb +1 -1
  14. data/lib/zavudev/models/webhook_event.rb +9 -1
  15. data/lib/zavudev/version.rb +1 -1
  16. data/rbi/zavudev/models/broadcast_channel.rbi +1 -0
  17. data/rbi/zavudev/models/channel.rbi +1 -0
  18. data/rbi/zavudev/models/contact.rbi +2 -0
  19. data/rbi/zavudev/models/contact_channel.rbi +2 -0
  20. data/rbi/zavudev/models/contact_create_params.rbi +5 -0
  21. data/rbi/zavudev/models/contact_update_params.rbi +5 -0
  22. data/rbi/zavudev/models/contacts/channel_add_params.rbi +5 -0
  23. data/rbi/zavudev/models/message_content.rbi +65 -0
  24. data/rbi/zavudev/models/message_send_params.rbi +2 -2
  25. data/rbi/zavudev/models/webhook_event.rbi +9 -1
  26. data/rbi/zavudev/resources/messages.rbi +1 -1
  27. data/sig/zavudev/models/broadcast_channel.rbs +2 -0
  28. data/sig/zavudev/models/channel.rbs +2 -0
  29. data/sig/zavudev/models/contact.rbs +2 -1
  30. data/sig/zavudev/models/contact_channel.rbs +2 -1
  31. data/sig/zavudev/models/contact_create_params.rbs +3 -1
  32. data/sig/zavudev/models/contact_update_params.rbs +2 -1
  33. data/sig/zavudev/models/contacts/channel_add_params.rbs +3 -1
  34. data/sig/zavudev/models/message_content.rbs +35 -0
  35. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17550e3e58db58719cdc2a8802e6c9002567e0415d2ed970324cc07efa240805
4
- data.tar.gz: 4030a97737932b7c184a40188c9a005ef52acc79465bc60590c7bfa44c22f877
3
+ metadata.gz: 63ea4333bf7d9cacb1962cce25ca702e648e38d19a6fb59374748677cf06afc9
4
+ data.tar.gz: 52f27580e65daf098c06f8fa38aa923b5c5b7345eea19c083737f5732e346c11
5
5
  SHA512:
6
- metadata.gz: c1a8b5d82f24c1ebcb9c96cf117aa32f969a4fc5bb7d7343b2631e3af08dae6eeeccf5cb4ec63e5e42bdc6765b1c8a29dad659a9a880c552174f3981682ced5f
7
- data.tar.gz: 1d27ac9df2216472ad34c826d690f46bde83aacf5281ca9a9672575dd2741ad545e8ed61ae460fdbceb211e0fdbca7b3839d94814f1e1d48059a2fe23cfe3bc3
6
+ metadata.gz: 4dd0ec176a9dbedc41566fe2cdfd5525019579c545e8f89e4d4b57b9d47f75c09d0adcd61446f1f8eb55cc94f4f423386f3687adf7ee6235e041682380d78a77
7
+ data.tar.gz: d6c282c7e7c92577e8a5738666e263ea567622602a3eba177219129b1dbec1540431b7fb69419971a6727d7409be17a8221871179dbd86fb2f439b5ff9814541
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.14.0 (2026-06-24)
4
+
5
+ Full Changelog: [v0.13.0...v0.14.0](https://github.com/zavudev/sdk-ruby/compare/v0.13.0...v0.14.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([6a691cd](https://github.com/zavudev/sdk-ruby/commit/6a691cd596deb8fa5cb32118684e8f811798cc50))
10
+ * **api:** api update ([91a78af](https://github.com/zavudev/sdk-ruby/commit/91a78af6beed7c6a17abb0928965532976d5eac5))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **client:** send content-type header for requests with an omitted optional body ([73b6654](https://github.com/zavudev/sdk-ruby/commit/73b66544a2756aaf64f189c9eb47ba66cd09f305))
16
+
17
+ ## 0.13.0 (2026-06-07)
18
+
19
+ Full Changelog: [v0.12.0...v0.13.0](https://github.com/zavudev/sdk-ruby/compare/v0.12.0...v0.13.0)
20
+
21
+ ### Features
22
+
23
+ * **api:** api update ([b59db6f](https://github.com/zavudev/sdk-ruby/commit/b59db6f514301863861cc3e0e782ef39e476dbd6))
24
+
3
25
  ## 0.12.0 (2026-05-28)
4
26
 
5
27
  Full Changelog: [v0.11.0...v0.12.0](https://github.com/zavudev/sdk-ruby/compare/v0.11.0...v0.12.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "zavudev", "~> 0.12.0"
29
+ gem "zavudev", "~> 0.14.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -306,7 +306,10 @@ module Zavudev
306
306
  Zavudev::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
- headers.delete("content-type") if body.nil?
309
+ # Generated methods always pass `req[:body]` for operations that define a
310
+ # request body, so only elide the content-type header when the operation
311
+ # has no body at all, not when an optional body param was omitted.
312
+ headers.delete("content-type") if body.nil? && !req.key?(:body)
310
313
 
311
314
  url = Zavudev::Internal::Util.join_parsed_uri(
312
315
  @base_url_components,
@@ -13,6 +13,7 @@ module Zavudev
13
13
  TELEGRAM = :telegram
14
14
  EMAIL = :email
15
15
  INSTAGRAM = :instagram
16
+ MESSENGER = :messenger
16
17
  VOICE = :voice
17
18
 
18
19
  # @!method self.values
@@ -13,6 +13,7 @@ module Zavudev
13
13
  TELEGRAM = :telegram
14
14
  EMAIL = :email
15
15
  INSTAGRAM = :instagram
16
+ MESSENGER = :messenger
16
17
  VOICE = :voice
17
18
 
18
19
  # @!method self.values
@@ -131,6 +131,7 @@ module Zavudev
131
131
  TELEGRAM = :telegram
132
132
  EMAIL = :email
133
133
  INSTAGRAM = :instagram
134
+ MESSENGER = :messenger
134
135
  VOICE = :voice
135
136
 
136
137
  # @!method self.values
@@ -108,6 +108,7 @@ module Zavudev
108
108
  WHATSAPP = :whatsapp
109
109
  EMAIL = :email
110
110
  TELEGRAM = :telegram
111
+ MESSENGER = :messenger
111
112
  VOICE = :voice
112
113
 
113
114
  # @!method self.values
@@ -88,6 +88,7 @@ module Zavudev
88
88
  WHATSAPP = :whatsapp
89
89
  EMAIL = :email
90
90
  TELEGRAM = :telegram
91
+ MESSENGER = :messenger
91
92
  VOICE = :voice
92
93
 
93
94
  # @!method self.values
@@ -44,6 +44,7 @@ module Zavudev
44
44
  TELEGRAM = :telegram
45
45
  EMAIL = :email
46
46
  INSTAGRAM = :instagram
47
+ MESSENGER = :messenger
47
48
  VOICE = :voice
48
49
 
49
50
  # @!method self.values
@@ -66,6 +66,7 @@ module Zavudev
66
66
  WHATSAPP = :whatsapp
67
67
  EMAIL = :email
68
68
  TELEGRAM = :telegram
69
+ MESSENGER = :messenger
69
70
  VOICE = :voice
70
71
 
71
72
  # @!method self.values
@@ -120,6 +120,41 @@ module Zavudev
120
120
  # @return [String, nil]
121
121
  optional :react_to_message_id, String, api_name: :reactToMessageId
122
122
 
123
+ # @!attribute reply_to_from
124
+ # Sender of the quoted message (phone number in E.164 format).
125
+ #
126
+ # @return [String, nil]
127
+ optional :reply_to_from, String, api_name: :replyToFrom
128
+
129
+ # @!attribute reply_to_message_id
130
+ # Zavu message ID of the quoted message this message replies to. Present on
131
+ # inbound messages that quote an earlier message. Omitted when the quoted message
132
+ # is not found in Zavu (e.g. an old or unknown message) — use
133
+ # replyToProviderMessageId in that case.
134
+ #
135
+ # @return [String, nil]
136
+ optional :reply_to_message_id, String, api_name: :replyToMessageId
137
+
138
+ # @!attribute reply_to_message_type
139
+ # Type of the quoted message (text, image, video, etc.).
140
+ #
141
+ # @return [String, nil]
142
+ optional :reply_to_message_type, String, api_name: :replyToMessageType
143
+
144
+ # @!attribute reply_to_provider_message_id
145
+ # Provider message ID (WhatsApp WAMID) of the quoted message. Present whenever an
146
+ # inbound message is a reply, even if the quoted message is not stored in Zavu.
147
+ #
148
+ # @return [String, nil]
149
+ optional :reply_to_provider_message_id, String, api_name: :replyToProviderMessageId
150
+
151
+ # @!attribute reply_to_text
152
+ # Truncated snippet of the quoted message's text, for display. Empty when the
153
+ # quoted message has no text (e.g. media).
154
+ #
155
+ # @return [String, nil]
156
+ optional :reply_to_text, String, api_name: :replyToText
157
+
123
158
  # @!attribute sections
124
159
  # Sections for list messages.
125
160
  #
@@ -174,7 +209,7 @@ module Zavudev
174
209
  # @return [Hash{Symbol=>String}, nil]
175
210
  optional :template_variables, Zavudev::Internal::Type::HashOf[String], api_name: :templateVariables
176
211
 
177
- # @!method initialize(buttons: nil, contacts: nil, cta_display_text: nil, cta_header_media_url: nil, cta_header_text: nil, cta_header_type: nil, cta_url: nil, emoji: nil, filename: nil, footer_text: nil, latitude: nil, list_button: nil, location_address: nil, location_name: nil, longitude: nil, media_id: nil, media_url: nil, mime_type: nil, react_to_message_id: nil, sections: nil, template_button_variables: nil, template_header_variables: nil, template_id: nil, template_variables: nil)
212
+ # @!method initialize(buttons: nil, contacts: nil, cta_display_text: nil, cta_header_media_url: nil, cta_header_text: nil, cta_header_type: nil, cta_url: nil, emoji: nil, filename: nil, footer_text: nil, latitude: nil, list_button: nil, location_address: nil, location_name: nil, longitude: nil, media_id: nil, media_url: nil, mime_type: nil, react_to_message_id: nil, reply_to_from: nil, reply_to_message_id: nil, reply_to_message_type: nil, reply_to_provider_message_id: nil, reply_to_text: nil, sections: nil, template_button_variables: nil, template_header_variables: nil, template_id: nil, template_variables: nil)
178
213
  # Some parameter documentations has been truncated, see
179
214
  # {Zavudev::Models::MessageContent} for more details.
180
215
  #
@@ -218,6 +253,16 @@ module Zavudev
218
253
  #
219
254
  # @param react_to_message_id [String] Message ID to react to.
220
255
  #
256
+ # @param reply_to_from [String] Sender of the quoted message (phone number in E.164 format).
257
+ #
258
+ # @param reply_to_message_id [String] Zavu message ID of the quoted message this message replies to. Present on inboun
259
+ #
260
+ # @param reply_to_message_type [String] Type of the quoted message (text, image, video, etc.).
261
+ #
262
+ # @param reply_to_provider_message_id [String] Provider message ID (WhatsApp WAMID) of the quoted message. Present whenever an
263
+ #
264
+ # @param reply_to_text [String] Truncated snippet of the quoted message's text, for display. Empty when the quot
265
+ #
221
266
  # @param sections [Array<Zavudev::Models::MessageContent::Section>] Sections for list messages.
222
267
  #
223
268
  # @param template_button_variables [Hash{Symbol=>String}] Variables for dynamic button placeholders (URL buttons and OTP buttons). Keys ar
@@ -9,7 +9,7 @@ module Zavudev
9
9
 
10
10
  # @!attribute to
11
11
  # Recipient phone number in E.164 format, email address, or numeric chat ID (for
12
- # Telegram/Instagram).
12
+ # Telegram/Instagram/Messenger).
13
13
  #
14
14
  # @return [String]
15
15
  required :to, String
@@ -18,7 +18,15 @@ module Zavudev
18
18
  # **Inbound events:**
19
19
  #
20
20
  # - `message.inbound`: New message received from a contact. Reactions are
21
- # delivered as `message.inbound` with `messageType='reaction'`
21
+ # delivered as `message.inbound` with `messageType='reaction'`. When the contact
22
+ # replied to (quoted) an earlier message, `data.content` carries the reply
23
+ # context: `replyToMessageId`, `replyToProviderMessageId`, `replyToFrom`,
24
+ # `replyToText`, and `replyToMessageType`. `data.providerTimestamp` is the
25
+ # provider's original receive time in Unix milliseconds (the moment the channel
26
+ # received the message from the contact — WhatsApp, Telegram, Instagram,
27
+ # Messenger; `null` for SMS and email). Compare it against the top-level
28
+ # `timestamp` (when Zavu dispatched the webhook) to detect and ignore delayed
29
+ # deliveries.
22
30
  # - `message.unsupported`: Received a message type that is not supported
23
31
  #
24
32
  # **Broadcast events:**
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zavudev
4
- VERSION = "0.12.0"
4
+ VERSION = "0.14.0"
5
5
  end
@@ -16,6 +16,7 @@ module Zavudev
16
16
  TELEGRAM = T.let(:telegram, Zavudev::BroadcastChannel::TaggedSymbol)
17
17
  EMAIL = T.let(:email, Zavudev::BroadcastChannel::TaggedSymbol)
18
18
  INSTAGRAM = T.let(:instagram, Zavudev::BroadcastChannel::TaggedSymbol)
19
+ MESSENGER = T.let(:messenger, Zavudev::BroadcastChannel::TaggedSymbol)
19
20
  VOICE = T.let(:voice, Zavudev::BroadcastChannel::TaggedSymbol)
20
21
 
21
22
  sig do
@@ -16,6 +16,7 @@ module Zavudev
16
16
  TELEGRAM = T.let(:telegram, Zavudev::Channel::TaggedSymbol)
17
17
  EMAIL = T.let(:email, Zavudev::Channel::TaggedSymbol)
18
18
  INSTAGRAM = T.let(:instagram, Zavudev::Channel::TaggedSymbol)
19
+ MESSENGER = T.let(:messenger, Zavudev::Channel::TaggedSymbol)
19
20
  VOICE = T.let(:voice, Zavudev::Channel::TaggedSymbol)
20
21
 
21
22
  sig { override.returns(T::Array[Zavudev::Channel::TaggedSymbol]) }
@@ -178,6 +178,8 @@ module Zavudev
178
178
  EMAIL = T.let(:email, Zavudev::Contact::DefaultChannel::TaggedSymbol)
179
179
  INSTAGRAM =
180
180
  T.let(:instagram, Zavudev::Contact::DefaultChannel::TaggedSymbol)
181
+ MESSENGER =
182
+ T.let(:messenger, Zavudev::Contact::DefaultChannel::TaggedSymbol)
181
183
  VOICE = T.let(:voice, Zavudev::Contact::DefaultChannel::TaggedSymbol)
182
184
 
183
185
  sig do
@@ -146,6 +146,8 @@ module Zavudev
146
146
  EMAIL = T.let(:email, Zavudev::ContactChannel::Channel::TaggedSymbol)
147
147
  TELEGRAM =
148
148
  T.let(:telegram, Zavudev::ContactChannel::Channel::TaggedSymbol)
149
+ MESSENGER =
150
+ T.let(:messenger, Zavudev::ContactChannel::Channel::TaggedSymbol)
149
151
  VOICE = T.let(:voice, Zavudev::ContactChannel::Channel::TaggedSymbol)
150
152
 
151
153
  sig do
@@ -169,6 +169,11 @@ module Zavudev
169
169
  :telegram,
170
170
  Zavudev::ContactCreateParams::Channel::Channel::TaggedSymbol
171
171
  )
172
+ MESSENGER =
173
+ T.let(
174
+ :messenger,
175
+ Zavudev::ContactCreateParams::Channel::Channel::TaggedSymbol
176
+ )
172
177
  VOICE =
173
178
  T.let(
174
179
  :voice,
@@ -95,6 +95,11 @@ module Zavudev
95
95
  :instagram,
96
96
  Zavudev::ContactUpdateParams::DefaultChannel::TaggedSymbol
97
97
  )
98
+ MESSENGER =
99
+ T.let(
100
+ :messenger,
101
+ Zavudev::ContactUpdateParams::DefaultChannel::TaggedSymbol
102
+ )
98
103
  VOICE =
99
104
  T.let(
100
105
  :voice,
@@ -120,6 +120,11 @@ module Zavudev
120
120
  :telegram,
121
121
  Zavudev::Contacts::ChannelAddParams::Channel::TaggedSymbol
122
122
  )
123
+ MESSENGER =
124
+ T.let(
125
+ :messenger,
126
+ Zavudev::Contacts::ChannelAddParams::Channel::TaggedSymbol
127
+ )
123
128
  VOICE =
124
129
  T.let(
125
130
  :voice,
@@ -156,6 +156,46 @@ module Zavudev
156
156
  sig { params(react_to_message_id: String).void }
157
157
  attr_writer :react_to_message_id
158
158
 
159
+ # Sender of the quoted message (phone number in E.164 format).
160
+ sig { returns(T.nilable(String)) }
161
+ attr_reader :reply_to_from
162
+
163
+ sig { params(reply_to_from: String).void }
164
+ attr_writer :reply_to_from
165
+
166
+ # Zavu message ID of the quoted message this message replies to. Present on
167
+ # inbound messages that quote an earlier message. Omitted when the quoted message
168
+ # is not found in Zavu (e.g. an old or unknown message) — use
169
+ # replyToProviderMessageId in that case.
170
+ sig { returns(T.nilable(String)) }
171
+ attr_reader :reply_to_message_id
172
+
173
+ sig { params(reply_to_message_id: String).void }
174
+ attr_writer :reply_to_message_id
175
+
176
+ # Type of the quoted message (text, image, video, etc.).
177
+ sig { returns(T.nilable(String)) }
178
+ attr_reader :reply_to_message_type
179
+
180
+ sig { params(reply_to_message_type: String).void }
181
+ attr_writer :reply_to_message_type
182
+
183
+ # Provider message ID (WhatsApp WAMID) of the quoted message. Present whenever an
184
+ # inbound message is a reply, even if the quoted message is not stored in Zavu.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_reader :reply_to_provider_message_id
187
+
188
+ sig { params(reply_to_provider_message_id: String).void }
189
+ attr_writer :reply_to_provider_message_id
190
+
191
+ # Truncated snippet of the quoted message's text, for display. Empty when the
192
+ # quoted message has no text (e.g. media).
193
+ sig { returns(T.nilable(String)) }
194
+ attr_reader :reply_to_text
195
+
196
+ sig { params(reply_to_text: String).void }
197
+ attr_writer :reply_to_text
198
+
159
199
  # Sections for list messages.
160
200
  sig { returns(T.nilable(T::Array[Zavudev::MessageContent::Section])) }
161
201
  attr_reader :sections
@@ -237,6 +277,11 @@ module Zavudev
237
277
  media_url: String,
238
278
  mime_type: String,
239
279
  react_to_message_id: String,
280
+ reply_to_from: String,
281
+ reply_to_message_id: String,
282
+ reply_to_message_type: String,
283
+ reply_to_provider_message_id: String,
284
+ reply_to_text: String,
240
285
  sections: T::Array[Zavudev::MessageContent::Section::OrHash],
241
286
  template_button_variables: T::Hash[Symbol, String],
242
287
  template_header_variables: T::Hash[Symbol, String],
@@ -286,6 +331,21 @@ module Zavudev
286
331
  mime_type: nil,
287
332
  # Message ID to react to.
288
333
  react_to_message_id: nil,
334
+ # Sender of the quoted message (phone number in E.164 format).
335
+ reply_to_from: nil,
336
+ # Zavu message ID of the quoted message this message replies to. Present on
337
+ # inbound messages that quote an earlier message. Omitted when the quoted message
338
+ # is not found in Zavu (e.g. an old or unknown message) — use
339
+ # replyToProviderMessageId in that case.
340
+ reply_to_message_id: nil,
341
+ # Type of the quoted message (text, image, video, etc.).
342
+ reply_to_message_type: nil,
343
+ # Provider message ID (WhatsApp WAMID) of the quoted message. Present whenever an
344
+ # inbound message is a reply, even if the quoted message is not stored in Zavu.
345
+ reply_to_provider_message_id: nil,
346
+ # Truncated snippet of the quoted message's text, for display. Empty when the
347
+ # quoted message has no text (e.g. media).
348
+ reply_to_text: nil,
289
349
  # Sections for list messages.
290
350
  sections: nil,
291
351
  # Variables for dynamic button placeholders (URL buttons and OTP buttons). Keys
@@ -341,6 +401,11 @@ module Zavudev
341
401
  media_url: String,
342
402
  mime_type: String,
343
403
  react_to_message_id: String,
404
+ reply_to_from: String,
405
+ reply_to_message_id: String,
406
+ reply_to_message_type: String,
407
+ reply_to_provider_message_id: String,
408
+ reply_to_text: String,
344
409
  sections: T::Array[Zavudev::MessageContent::Section],
345
410
  template_button_variables: T::Hash[Symbol, String],
346
411
  template_header_variables: T::Hash[Symbol, String],
@@ -12,7 +12,7 @@ module Zavudev
12
12
  end
13
13
 
14
14
  # Recipient phone number in E.164 format, email address, or numeric chat ID (for
15
- # Telegram/Instagram).
15
+ # Telegram/Instagram/Messenger).
16
16
  sig { returns(String) }
17
17
  attr_accessor :to
18
18
 
@@ -139,7 +139,7 @@ module Zavudev
139
139
  end
140
140
  def self.new(
141
141
  # Recipient phone number in E.164 format, email address, or numeric chat ID (for
142
- # Telegram/Instagram).
142
+ # Telegram/Instagram/Messenger).
143
143
  to:,
144
144
  # Email attachments. Only supported when channel is 'email'. Maximum 40MB total
145
145
  # size.
@@ -18,7 +18,15 @@ module Zavudev
18
18
  # **Inbound events:**
19
19
  #
20
20
  # - `message.inbound`: New message received from a contact. Reactions are
21
- # delivered as `message.inbound` with `messageType='reaction'`
21
+ # delivered as `message.inbound` with `messageType='reaction'`. When the contact
22
+ # replied to (quoted) an earlier message, `data.content` carries the reply
23
+ # context: `replyToMessageId`, `replyToProviderMessageId`, `replyToFrom`,
24
+ # `replyToText`, and `replyToMessageType`. `data.providerTimestamp` is the
25
+ # provider's original receive time in Unix milliseconds (the moment the channel
26
+ # received the message from the contact — WhatsApp, Telegram, Instagram,
27
+ # Messenger; `null` for SMS and email). Compare it against the top-level
28
+ # `timestamp` (when Zavu dispatched the webhook) to detect and ignore delayed
29
+ # deliveries.
22
30
  # - `message.unsupported`: Received a message type that is not supported
23
31
  #
24
32
  # **Broadcast events:**
@@ -95,7 +95,7 @@ module Zavudev
95
95
  end
96
96
  def send_(
97
97
  # Body param: Recipient phone number in E.164 format, email address, or numeric
98
- # chat ID (for Telegram/Instagram).
98
+ # chat ID (for Telegram/Instagram/Messenger).
99
99
  to:,
100
100
  # Body param: Email attachments. Only supported when channel is 'email'. Maximum
101
101
  # 40MB total size.
@@ -8,6 +8,7 @@ module Zavudev
8
8
  | :telegram
9
9
  | :email
10
10
  | :instagram
11
+ | :messenger
11
12
  | :voice
12
13
 
13
14
  module BroadcastChannel
@@ -20,6 +21,7 @@ module Zavudev
20
21
  TELEGRAM: :telegram
21
22
  EMAIL: :email
22
23
  INSTAGRAM: :instagram
24
+ MESSENGER: :messenger
23
25
  VOICE: :voice
24
26
 
25
27
  def self?.values: -> ::Array[Zavudev::Models::broadcast_channel]
@@ -8,6 +8,7 @@ module Zavudev
8
8
  | :telegram
9
9
  | :email
10
10
  | :instagram
11
+ | :messenger
11
12
  | :voice
12
13
 
13
14
  module Channel
@@ -20,6 +21,7 @@ module Zavudev
20
21
  TELEGRAM: :telegram
21
22
  EMAIL: :email
22
23
  INSTAGRAM: :instagram
24
+ MESSENGER: :messenger
23
25
  VOICE: :voice
24
26
 
25
27
  def self?.values: -> ::Array[Zavudev::Models::channel]
@@ -109,7 +109,7 @@ module Zavudev
109
109
  }
110
110
 
111
111
  type default_channel =
112
- :sms | :whatsapp | :telegram | :email | :instagram | :voice
112
+ :sms | :whatsapp | :telegram | :email | :instagram | :messenger | :voice
113
113
 
114
114
  module DefaultChannel
115
115
  extend Zavudev::Internal::Type::Enum
@@ -119,6 +119,7 @@ module Zavudev
119
119
  TELEGRAM: :telegram
120
120
  EMAIL: :email
121
121
  INSTAGRAM: :instagram
122
+ MESSENGER: :messenger
122
123
  VOICE: :voice
123
124
 
124
125
  def self?.values: -> ::Array[Zavudev::Models::Contact::default_channel]
@@ -85,7 +85,7 @@ module Zavudev
85
85
  updated_at: Time
86
86
  }
87
87
 
88
- type channel = :sms | :whatsapp | :email | :telegram | :voice
88
+ type channel = :sms | :whatsapp | :email | :telegram | :messenger | :voice
89
89
 
90
90
  module Channel
91
91
  extend Zavudev::Internal::Type::Enum
@@ -94,6 +94,7 @@ module Zavudev
94
94
  WHATSAPP: :whatsapp
95
95
  EMAIL: :email
96
96
  TELEGRAM: :telegram
97
+ MESSENGER: :messenger
97
98
  VOICE: :voice
98
99
 
99
100
  def self?.values: -> ::Array[Zavudev::Models::ContactChannel::channel]
@@ -78,7 +78,8 @@ module Zavudev
78
78
  label: String
79
79
  }
80
80
 
81
- type channel = :sms | :whatsapp | :email | :telegram | :voice
81
+ type channel =
82
+ :sms | :whatsapp | :email | :telegram | :messenger | :voice
82
83
 
83
84
  module Channel
84
85
  extend Zavudev::Internal::Type::Enum
@@ -87,6 +88,7 @@ module Zavudev
87
88
  WHATSAPP: :whatsapp
88
89
  EMAIL: :email
89
90
  TELEGRAM: :telegram
91
+ MESSENGER: :messenger
90
92
  VOICE: :voice
91
93
 
92
94
  def self?.values: -> ::Array[Zavudev::Models::ContactCreateParams::Channel::channel]
@@ -35,7 +35,7 @@ module Zavudev
35
35
  }
36
36
 
37
37
  type default_channel =
38
- :sms | :whatsapp | :telegram | :email | :instagram | :voice
38
+ :sms | :whatsapp | :telegram | :email | :instagram | :messenger | :voice
39
39
 
40
40
  module DefaultChannel
41
41
  extend Zavudev::Internal::Type::Enum
@@ -45,6 +45,7 @@ module Zavudev
45
45
  TELEGRAM: :telegram
46
46
  EMAIL: :email
47
47
  INSTAGRAM: :instagram
48
+ MESSENGER: :messenger
48
49
  VOICE: :voice
49
50
 
50
51
  def self?.values: -> ::Array[Zavudev::Models::ContactUpdateParams::default_channel]
@@ -54,7 +54,8 @@ module Zavudev
54
54
  request_options: Zavudev::RequestOptions
55
55
  }
56
56
 
57
- type channel = :sms | :whatsapp | :email | :telegram | :voice
57
+ type channel =
58
+ :sms | :whatsapp | :email | :telegram | :messenger | :voice
58
59
 
59
60
  module Channel
60
61
  extend Zavudev::Internal::Type::Enum
@@ -63,6 +64,7 @@ module Zavudev
63
64
  WHATSAPP: :whatsapp
64
65
  EMAIL: :email
65
66
  TELEGRAM: :telegram
67
+ MESSENGER: :messenger
66
68
  VOICE: :voice
67
69
 
68
70
  def self?.values: -> ::Array[Zavudev::Models::Contacts::ChannelAddParams::channel]
@@ -21,6 +21,11 @@ module Zavudev
21
21
  media_url: String,
22
22
  mime_type: String,
23
23
  react_to_message_id: String,
24
+ reply_to_from: String,
25
+ reply_to_message_id: String,
26
+ reply_to_message_type: String,
27
+ reply_to_provider_message_id: String,
28
+ reply_to_text: String,
24
29
  sections: ::Array[Zavudev::MessageContent::Section],
25
30
  template_button_variables: ::Hash[Symbol, String],
26
31
  template_header_variables: ::Hash[Symbol, String],
@@ -111,6 +116,26 @@ module Zavudev
111
116
 
112
117
  def react_to_message_id=: (String) -> String
113
118
 
119
+ attr_reader reply_to_from: String?
120
+
121
+ def reply_to_from=: (String) -> String
122
+
123
+ attr_reader reply_to_message_id: String?
124
+
125
+ def reply_to_message_id=: (String) -> String
126
+
127
+ attr_reader reply_to_message_type: String?
128
+
129
+ def reply_to_message_type=: (String) -> String
130
+
131
+ attr_reader reply_to_provider_message_id: String?
132
+
133
+ def reply_to_provider_message_id=: (String) -> String
134
+
135
+ attr_reader reply_to_text: String?
136
+
137
+ def reply_to_text=: (String) -> String
138
+
114
139
  attr_reader sections: ::Array[Zavudev::MessageContent::Section]?
115
140
 
116
141
  def sections=: (
@@ -159,6 +184,11 @@ module Zavudev
159
184
  ?media_url: String,
160
185
  ?mime_type: String,
161
186
  ?react_to_message_id: String,
187
+ ?reply_to_from: String,
188
+ ?reply_to_message_id: String,
189
+ ?reply_to_message_type: String,
190
+ ?reply_to_provider_message_id: String,
191
+ ?reply_to_text: String,
162
192
  ?sections: ::Array[Zavudev::MessageContent::Section],
163
193
  ?template_button_variables: ::Hash[Symbol, String],
164
194
  ?template_header_variables: ::Hash[Symbol, String],
@@ -186,6 +216,11 @@ module Zavudev
186
216
  media_url: String,
187
217
  mime_type: String,
188
218
  react_to_message_id: String,
219
+ reply_to_from: String,
220
+ reply_to_message_id: String,
221
+ reply_to_message_type: String,
222
+ reply_to_provider_message_id: String,
223
+ reply_to_text: String,
189
224
  sections: ::Array[Zavudev::MessageContent::Section],
190
225
  template_button_variables: ::Hash[Symbol, String],
191
226
  template_header_variables: ::Hash[Symbol, String],
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zavudev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zavudev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-02 00:00:00.000000000 Z
11
+ date: 2026-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi