zavudev 0.14.0 → 0.16.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +7 -7
  4. data/lib/zavudev/models/broadcast_channel.rb +0 -3
  5. data/lib/zavudev/models/channel.rb +5 -1
  6. data/lib/zavudev/models/contact_channel.rb +1 -0
  7. data/lib/zavudev/models/contact_create_params.rb +1 -0
  8. data/lib/zavudev/models/contacts/channel_add_params.rb +1 -0
  9. data/lib/zavudev/models/invitation.rb +27 -1
  10. data/lib/zavudev/models/invitation_create_params.rb +28 -1
  11. data/lib/zavudev/models/message.rb +12 -8
  12. data/lib/zavudev/models/message_list_params.rb +40 -7
  13. data/lib/zavudev/models/message_send_params.rb +6 -3
  14. data/lib/zavudev/models/phone_number_type.rb +1 -1
  15. data/lib/zavudev/models/url_list_verified_params.rb +1 -0
  16. data/lib/zavudev/models/verified_url.rb +1 -0
  17. data/lib/zavudev/models.rb +0 -12
  18. data/lib/zavudev/resources/exports.rb +0 -75
  19. data/lib/zavudev/resources/invitations.rb +15 -4
  20. data/lib/zavudev/resources/messages.rb +3 -3
  21. data/lib/zavudev/resources/plan.rb +0 -19
  22. data/lib/zavudev/resources/usage.rb +0 -19
  23. data/lib/zavudev/version.rb +1 -1
  24. data/lib/zavudev.rb +0 -10
  25. data/rbi/zavudev/models/broadcast_channel.rbi +0 -3
  26. data/rbi/zavudev/models/channel.rbi +5 -1
  27. data/rbi/zavudev/models/contact_channel.rbi +2 -0
  28. data/rbi/zavudev/models/contact_create_params.rbi +5 -0
  29. data/rbi/zavudev/models/contacts/channel_add_params.rbi +5 -0
  30. data/rbi/zavudev/models/invitation.rbi +48 -0
  31. data/rbi/zavudev/models/invitation_create_params.rbi +63 -0
  32. data/rbi/zavudev/models/message.rbi +16 -8
  33. data/rbi/zavudev/models/message_list_params.rbi +74 -10
  34. data/rbi/zavudev/models/message_send_params.rbi +10 -4
  35. data/rbi/zavudev/models/phone_number_type.rbi +1 -1
  36. data/rbi/zavudev/models/url_list_verified_params.rbi +5 -0
  37. data/rbi/zavudev/models/verified_url.rbi +2 -0
  38. data/rbi/zavudev/models.rbi +0 -12
  39. data/rbi/zavudev/resources/exports.rbi +0 -50
  40. data/rbi/zavudev/resources/invitations.rbi +19 -3
  41. data/rbi/zavudev/resources/messages.rbi +9 -5
  42. data/rbi/zavudev/resources/plan.rbi +0 -10
  43. data/rbi/zavudev/resources/usage.rbi +0 -10
  44. data/sig/zavudev/models/broadcast_channel.rbs +1 -12
  45. data/sig/zavudev/models/channel.rbs +2 -0
  46. data/sig/zavudev/models/contact_channel.rbs +3 -1
  47. data/sig/zavudev/models/contact_create_params.rbs +8 -1
  48. data/sig/zavudev/models/contacts/channel_add_params.rbs +8 -1
  49. data/sig/zavudev/models/invitation.rbs +20 -0
  50. data/sig/zavudev/models/invitation_create_params.rbs +20 -0
  51. data/sig/zavudev/models/message_list_params.rbs +54 -11
  52. data/sig/zavudev/models/phone_number_type.rbs +2 -2
  53. data/sig/zavudev/models/url_list_verified_params.rbs +2 -1
  54. data/sig/zavudev/models/verified_url.rbs +2 -1
  55. data/sig/zavudev/models.rbs +0 -12
  56. data/sig/zavudev/resources/exports.rbs +0 -19
  57. data/sig/zavudev/resources/invitations.rbs +1 -0
  58. data/sig/zavudev/resources/messages.rbs +2 -2
  59. data/sig/zavudev/resources/plan.rbs +0 -4
  60. data/sig/zavudev/resources/usage.rbs +0 -4
  61. metadata +2 -32
  62. data/lib/zavudev/models/data_export.rb +0 -122
  63. data/lib/zavudev/models/export_create_params.rb +0 -54
  64. data/lib/zavudev/models/export_create_response.rb +0 -16
  65. data/lib/zavudev/models/export_list_params.rb +0 -49
  66. data/lib/zavudev/models/export_retrieve_params.rb +0 -20
  67. data/lib/zavudev/models/export_retrieve_response.rb +0 -16
  68. data/lib/zavudev/models/plan_retrieve_params.rb +0 -14
  69. data/lib/zavudev/models/plan_retrieve_response.rb +0 -155
  70. data/lib/zavudev/models/usage_retrieve_params.rb +0 -14
  71. data/lib/zavudev/models/usage_retrieve_response.rb +0 -77
  72. data/rbi/zavudev/models/data_export.rbi +0 -151
  73. data/rbi/zavudev/models/export_create_params.rbi +0 -106
  74. data/rbi/zavudev/models/export_create_response.rbi +0 -31
  75. data/rbi/zavudev/models/export_list_params.rbi +0 -89
  76. data/rbi/zavudev/models/export_retrieve_params.rbi +0 -35
  77. data/rbi/zavudev/models/export_retrieve_response.rbi +0 -31
  78. data/rbi/zavudev/models/plan_retrieve_params.rbi +0 -27
  79. data/rbi/zavudev/models/plan_retrieve_response.rbi +0 -306
  80. data/rbi/zavudev/models/usage_retrieve_params.rbi +0 -27
  81. data/rbi/zavudev/models/usage_retrieve_response.rbi +0 -150
  82. data/sig/zavudev/models/data_export.rbs +0 -102
  83. data/sig/zavudev/models/export_create_params.rbs +0 -59
  84. data/sig/zavudev/models/export_create_response.rbs +0 -13
  85. data/sig/zavudev/models/export_list_params.rbs +0 -57
  86. data/sig/zavudev/models/export_retrieve_params.rbs +0 -23
  87. data/sig/zavudev/models/export_retrieve_response.rbs +0 -13
  88. data/sig/zavudev/models/plan_retrieve_params.rbs +0 -15
  89. data/sig/zavudev/models/plan_retrieve_response.rbs +0 -158
  90. data/sig/zavudev/models/usage_retrieve_params.rbs +0 -15
  91. data/sig/zavudev/models/usage_retrieve_response.rbs +0 -69
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63ea4333bf7d9cacb1962cce25ca702e648e38d19a6fb59374748677cf06afc9
4
- data.tar.gz: 52f27580e65daf098c06f8fa38aa923b5c5b7345eea19c083737f5732e346c11
3
+ metadata.gz: 8dd10ff9ca84c30d11bb953aa432150b013477e826ce1f23c0e03f751e97bb8f
4
+ data.tar.gz: e36f8e76c1c90c54b66c061b9e9ca3320566955505dd361e160b1f98e1cf3a74
5
5
  SHA512:
6
- metadata.gz: 4dd0ec176a9dbedc41566fe2cdfd5525019579c545e8f89e4d4b57b9d47f75c09d0adcd61446f1f8eb55cc94f4f423386f3687adf7ee6235e041682380d78a77
7
- data.tar.gz: d6c282c7e7c92577e8a5738666e263ea567622602a3eba177219129b1dbec1540431b7fb69419971a6727d7409be17a8221871179dbd86fb2f439b5ff9814541
6
+ metadata.gz: cca22267fd9aea296726f3be4e762a41a8e5c5ef3de9e20b6d39cf991d3392acf965913190928bd3dedd2bb21a23d2569ca98eb5a625b752c76c58a9da5f99e3
7
+ data.tar.gz: 62472e6e4ae3c6b4223f48ad80ad5b8444d0754d0740911a67b48b60137dbdbccec54279710966a3bc35fdb7fa176049c72ca5654f0252805b4fb235cb330d99
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.0 (2026-07-07)
4
+
5
+ Full Changelog: [v0.15.0...v0.16.0](https://github.com/zavudev/sdk-ruby/compare/v0.15.0...v0.16.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([cd49564](https://github.com/zavudev/sdk-ruby/commit/cd49564f9c54a8aef2de33ad0b484cc6bd6c7ae3))
10
+ * **api:** api update ([676212b](https://github.com/zavudev/sdk-ruby/commit/676212b365d2860826b55a8106ea129faaa533ed))
11
+
12
+ ## 0.15.0 (2026-07-05)
13
+
14
+ Full Changelog: [v0.14.0...v0.15.0](https://github.com/zavudev/sdk-ruby/compare/v0.14.0...v0.15.0)
15
+
16
+ ### Features
17
+
18
+ * **api:** api update ([0afbaaf](https://github.com/zavudev/sdk-ruby/commit/0afbaaf775796e6901f790329e5ead6b623fbae6))
19
+ * **api:** api update ([ae16782](https://github.com/zavudev/sdk-ruby/commit/ae16782c53d59b8eb136ed27e9df09b1d889fd2c))
20
+
21
+
22
+ ### Chores
23
+
24
+ * **internal:** bound formatter parallelism to CPU count ([40b3e99](https://github.com/zavudev/sdk-ruby/commit/40b3e99d17ef2297beb30ff8af97fd0b43fb0d75))
25
+
3
26
  ## 0.14.0 (2026-06-24)
4
27
 
5
28
  Full Changelog: [v0.13.0...v0.14.0](https://github.com/zavudev/sdk-ruby/compare/v0.13.0...v0.14.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.14.0"
29
+ gem "zavudev", "~> 0.16.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -235,11 +235,11 @@ zavudev.messages.send_(**params)
235
235
  Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
236
236
 
237
237
  ```ruby
238
- # :auto
239
- puts(Zavudev::Channel::AUTO)
238
+ # :sms
239
+ puts(Zavudev::MessageListParams::Channel::SMS)
240
240
 
241
- # Revealed type: `T.all(Zavudev::Channel, Symbol)`
242
- T.reveal_type(Zavudev::Channel::AUTO)
241
+ # Revealed type: `T.all(Zavudev::MessageListParams::Channel, Symbol)`
242
+ T.reveal_type(Zavudev::MessageListParams::Channel::SMS)
243
243
  ```
244
244
 
245
245
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
@@ -247,13 +247,13 @@ Enum parameters have a "relaxed" type, so you can either pass in enum constants
247
247
  ```ruby
248
248
  # Using the enum constants preserves the tagged type information:
249
249
  zavudev.messages.list(
250
- channel: Zavudev::Channel::AUTO,
250
+ channel: Zavudev::MessageListParams::Channel::SMS,
251
251
  # …
252
252
  )
253
253
 
254
254
  # Literal values are also permissible:
255
255
  zavudev.messages.list(
256
- channel: :auto,
256
+ channel: :sms,
257
257
  # …
258
258
  )
259
259
  ```
@@ -12,9 +12,6 @@ module Zavudev
12
12
  WHATSAPP = :whatsapp
13
13
  TELEGRAM = :telegram
14
14
  EMAIL = :email
15
- INSTAGRAM = :instagram
16
- MESSENGER = :messenger
17
- VOICE = :voice
18
15
 
19
16
  # @!method self.values
20
17
  # @return [Array<Symbol>]
@@ -2,7 +2,10 @@
2
2
 
3
3
  module Zavudev
4
4
  module Models
5
- # Delivery channel. Use 'auto' for intelligent routing.
5
+ # Delivery channel. Use 'auto' for intelligent routing. `whatsapp_alt` is the
6
+ # QR-linked WhatsApp channel and is only accepted for teams with the WhatsApp
7
+ # Alternative feature enabled; the sender must have a connected whatsapp_alt
8
+ # session.
6
9
  module Channel
7
10
  extend Zavudev::Internal::Type::Enum
8
11
 
@@ -10,6 +13,7 @@ module Zavudev
10
13
  SMS = :sms
11
14
  SMS_ONEWAY = :sms_oneway
12
15
  WHATSAPP = :whatsapp
16
+ WHATSAPP_ALT = :whatsapp_alt
13
17
  TELEGRAM = :telegram
14
18
  EMAIL = :email
15
19
  INSTAGRAM = :instagram
@@ -108,6 +108,7 @@ module Zavudev
108
108
  WHATSAPP = :whatsapp
109
109
  EMAIL = :email
110
110
  TELEGRAM = :telegram
111
+ INSTAGRAM = :instagram
111
112
  MESSENGER = :messenger
112
113
  VOICE = :voice
113
114
 
@@ -88,6 +88,7 @@ module Zavudev
88
88
  WHATSAPP = :whatsapp
89
89
  EMAIL = :email
90
90
  TELEGRAM = :telegram
91
+ INSTAGRAM = :instagram
91
92
  MESSENGER = :messenger
92
93
  VOICE = :voice
93
94
 
@@ -66,6 +66,7 @@ module Zavudev
66
66
  WHATSAPP = :whatsapp
67
67
  EMAIL = :email
68
68
  TELEGRAM = :telegram
69
+ INSTAGRAM = :instagram
69
70
  MESSENGER = :messenger
70
71
  VOICE = :voice
71
72
 
@@ -62,6 +62,13 @@ module Zavudev
62
62
  # @return [Time, nil]
63
63
  optional :completed_at, Time, api_name: :completedAt, nil?: true
64
64
 
65
+ # @!attribute connection_type
66
+ # How the client connects WhatsApp: `whatsapp_waba` (official Cloud API via
67
+ # embedded signup) or `whatsapp_alt` (QR-linked).
68
+ #
69
+ # @return [Symbol, Zavudev::Models::Invitation::ConnectionType, nil]
70
+ optional :connection_type, enum: -> { Zavudev::Invitation::ConnectionType }, api_name: :connectionType
71
+
65
72
  # @!attribute phone_number_id
66
73
  # ID of a pre-assigned Zavu phone number for WhatsApp registration.
67
74
  #
@@ -84,7 +91,10 @@ module Zavudev
84
91
  # @return [Time, nil]
85
92
  optional :viewed_at, Time, api_name: :viewedAt, nil?: true
86
93
 
87
- # @!method initialize(id:, token:, created_at:, expires_at:, status:, updated_at:, url:, client_email: nil, client_name: nil, client_phone: nil, completed_at: nil, phone_number_id: nil, sender_id: nil, started_at: nil, viewed_at: nil)
94
+ # @!method initialize(id:, token:, created_at:, expires_at:, status:, updated_at:, url:, client_email: nil, client_name: nil, client_phone: nil, completed_at: nil, connection_type: nil, phone_number_id: nil, sender_id: nil, started_at: nil, viewed_at: nil)
95
+ # Some parameter documentations has been truncated, see
96
+ # {Zavudev::Models::Invitation} for more details.
97
+ #
88
98
  # @param id [String]
89
99
  #
90
100
  # @param token [String] Unique invitation token.
@@ -107,6 +117,8 @@ module Zavudev
107
117
  #
108
118
  # @param completed_at [Time, nil]
109
119
  #
120
+ # @param connection_type [Symbol, Zavudev::Models::Invitation::ConnectionType] How the client connects WhatsApp: `whatsapp_waba` (official Cloud API via embedd
121
+ #
110
122
  # @param phone_number_id [String, nil] ID of a pre-assigned Zavu phone number for WhatsApp registration.
111
123
  #
112
124
  # @param sender_id [String, nil] ID of the sender created when invitation is completed.
@@ -130,6 +142,20 @@ module Zavudev
130
142
  # @!method self.values
131
143
  # @return [Array<Symbol>]
132
144
  end
145
+
146
+ # How the client connects WhatsApp: `whatsapp_waba` (official Cloud API via
147
+ # embedded signup) or `whatsapp_alt` (QR-linked).
148
+ #
149
+ # @see Zavudev::Models::Invitation#connection_type
150
+ module ConnectionType
151
+ extend Zavudev::Internal::Type::Enum
152
+
153
+ WHATSAPP_WABA = :whatsapp_waba
154
+ WHATSAPP_ALT = :whatsapp_alt
155
+
156
+ # @!method self.values
157
+ # @return [Array<Symbol>]
158
+ end
133
159
  end
134
160
  end
135
161
  end
@@ -33,6 +33,17 @@ module Zavudev
33
33
  # @return [String, nil]
34
34
  optional :client_phone, String, api_name: :clientPhone
35
35
 
36
+ # @!attribute connection_type
37
+ # How the client connects WhatsApp. `whatsapp_waba` (default) runs Meta's embedded
38
+ # signup to link an official WhatsApp Business Account. `whatsapp_alt` links the
39
+ # number by scanning a QR code — available only to teams with the WhatsApp
40
+ # Alternative feature enabled.
41
+ #
42
+ # @return [Symbol, Zavudev::Models::InvitationCreateParams::ConnectionType, nil]
43
+ optional :connection_type,
44
+ enum: -> { Zavudev::InvitationCreateParams::ConnectionType },
45
+ api_name: :connectionType
46
+
36
47
  # @!attribute expires_in_days
37
48
  # Number of days until the invitation expires.
38
49
  #
@@ -46,7 +57,7 @@ module Zavudev
46
57
  # @return [String, nil]
47
58
  optional :phone_number_id, String, api_name: :phoneNumberId
48
59
 
49
- # @!method initialize(allowed_phone_countries: nil, client_email: nil, client_name: nil, client_phone: nil, expires_in_days: nil, phone_number_id: nil, request_options: {})
60
+ # @!method initialize(allowed_phone_countries: nil, client_email: nil, client_name: nil, client_phone: nil, connection_type: nil, expires_in_days: nil, phone_number_id: nil, request_options: {})
50
61
  # Some parameter documentations has been truncated, see
51
62
  # {Zavudev::Models::InvitationCreateParams} for more details.
52
63
  #
@@ -58,11 +69,27 @@ module Zavudev
58
69
  #
59
70
  # @param client_phone [String] Phone number of the client in E.164 format.
60
71
  #
72
+ # @param connection_type [Symbol, Zavudev::Models::InvitationCreateParams::ConnectionType] How the client connects WhatsApp. `whatsapp_waba` (default) runs Meta's embedded
73
+ #
61
74
  # @param expires_in_days [Integer] Number of days until the invitation expires.
62
75
  #
63
76
  # @param phone_number_id [String] ID of a Zavu phone number to pre-assign for WhatsApp registration. If provided,
64
77
  #
65
78
  # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}]
79
+
80
+ # How the client connects WhatsApp. `whatsapp_waba` (default) runs Meta's embedded
81
+ # signup to link an official WhatsApp Business Account. `whatsapp_alt` links the
82
+ # number by scanning a QR code — available only to teams with the WhatsApp
83
+ # Alternative feature enabled.
84
+ module ConnectionType
85
+ extend Zavudev::Internal::Type::Enum
86
+
87
+ WHATSAPP_WABA = :whatsapp_waba
88
+ WHATSAPP_ALT = :whatsapp_alt
89
+
90
+ # @!method self.values
91
+ # @return [Array<Symbol>]
92
+ end
66
93
  end
67
94
  end
68
95
  end
@@ -10,7 +10,10 @@ module Zavudev
10
10
  required :id, String
11
11
 
12
12
  # @!attribute channel
13
- # Delivery channel. Use 'auto' for intelligent routing.
13
+ # Delivery channel. Use 'auto' for intelligent routing. `whatsapp_alt` is the
14
+ # QR-linked WhatsApp channel and is only accepted for teams with the WhatsApp
15
+ # Alternative feature enabled; the sender must have a connected whatsapp_alt
16
+ # session.
14
17
  #
15
18
  # @return [Symbol, Zavudev::Models::Channel]
16
19
  required :channel, enum: -> { Zavudev::Channel }
@@ -44,19 +47,20 @@ module Zavudev
44
47
  optional :content, -> { Zavudev::MessageContent }
45
48
 
46
49
  # @!attribute cost
47
- # MAU cost in USD (charged for first contact of the month).
50
+ # Zavu platform charge in USD for this message. Messaging is billed against your
51
+ # plan's monthly limits plus usage-based overage.
48
52
  #
49
53
  # @return [Float, nil]
50
54
  optional :cost, Float, nil?: true
51
55
 
52
56
  # @!attribute cost_provider
53
- # Provider cost in USD (Telnyx, SES, etc.).
57
+ # Carrier and delivery cost in USD.
54
58
  #
55
59
  # @return [Float, nil]
56
60
  optional :cost_provider, Float, api_name: :costProvider, nil?: true
57
61
 
58
62
  # @!attribute cost_total
59
- # Total cost in USD (MAU + provider cost).
63
+ # Total cost in USD (platform charge + delivery cost).
60
64
  #
61
65
  # @return [Float, nil]
62
66
  optional :cost_total, Float, api_name: :costTotal, nil?: true
@@ -109,7 +113,7 @@ module Zavudev
109
113
  #
110
114
  # @param id [String]
111
115
  #
112
- # @param channel [Symbol, Zavudev::Models::Channel] Delivery channel. Use 'auto' for intelligent routing.
116
+ # @param channel [Symbol, Zavudev::Models::Channel] Delivery channel. Use 'auto' for intelligent routing. `whatsapp_alt` is the QR-l
113
117
  #
114
118
  # @param created_at [Time]
115
119
  #
@@ -121,11 +125,11 @@ module Zavudev
121
125
  #
122
126
  # @param content [Zavudev::Models::MessageContent] Content for non-text message types (WhatsApp and Telegram).
123
127
  #
124
- # @param cost [Float, nil] MAU cost in USD (charged for first contact of the month).
128
+ # @param cost [Float, nil] Zavu platform charge in USD for this message. Messaging is billed against your p
125
129
  #
126
- # @param cost_provider [Float, nil] Provider cost in USD (Telnyx, SES, etc.).
130
+ # @param cost_provider [Float, nil] Carrier and delivery cost in USD.
127
131
  #
128
- # @param cost_total [Float, nil] Total cost in USD (MAU + provider cost).
132
+ # @param cost_total [Float, nil] Total cost in USD (platform charge + delivery cost).
129
133
  #
130
134
  # @param error_code [String, nil]
131
135
  #
@@ -8,10 +8,10 @@ module Zavudev
8
8
  include Zavudev::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute channel
11
- # Delivery channel. Use 'auto' for intelligent routing.
11
+ # Filter by delivery channel.
12
12
  #
13
- # @return [Symbol, Zavudev::Models::Channel, nil]
14
- optional :channel, enum: -> { Zavudev::Channel }
13
+ # @return [Symbol, Zavudev::Models::MessageListParams::Channel, nil]
14
+ optional :channel, enum: -> { Zavudev::MessageListParams::Channel }
15
15
 
16
16
  # @!attribute cursor
17
17
  #
@@ -24,9 +24,10 @@ module Zavudev
24
24
  optional :limit, Integer
25
25
 
26
26
  # @!attribute status
27
+ # Filter by status. Not all stored statuses are filterable.
27
28
  #
28
- # @return [Symbol, Zavudev::Models::MessageStatus, nil]
29
- optional :status, enum: -> { Zavudev::MessageStatus }
29
+ # @return [Symbol, Zavudev::Models::MessageListParams::Status, nil]
30
+ optional :status, enum: -> { Zavudev::MessageListParams::Status }
30
31
 
31
32
  # @!attribute to
32
33
  #
@@ -34,17 +35,49 @@ module Zavudev
34
35
  optional :to, String
35
36
 
36
37
  # @!method initialize(channel: nil, cursor: nil, limit: nil, status: nil, to: nil, request_options: {})
37
- # @param channel [Symbol, Zavudev::Models::Channel] Delivery channel. Use 'auto' for intelligent routing.
38
+ # @param channel [Symbol, Zavudev::Models::MessageListParams::Channel] Filter by delivery channel.
38
39
  #
39
40
  # @param cursor [String]
40
41
  #
41
42
  # @param limit [Integer]
42
43
  #
43
- # @param status [Symbol, Zavudev::Models::MessageStatus]
44
+ # @param status [Symbol, Zavudev::Models::MessageListParams::Status] Filter by status. Not all stored statuses are filterable.
44
45
  #
45
46
  # @param to [String]
46
47
  #
47
48
  # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}]
49
+
50
+ # Filter by delivery channel.
51
+ module Channel
52
+ extend Zavudev::Internal::Type::Enum
53
+
54
+ SMS = :sms
55
+ SMS_ONEWAY = :sms_oneway
56
+ WHATSAPP = :whatsapp
57
+ EMAIL = :email
58
+ TELEGRAM = :telegram
59
+ INSTAGRAM = :instagram
60
+ MESSENGER = :messenger
61
+ VOICE = :voice
62
+
63
+ # @!method self.values
64
+ # @return [Array<Symbol>]
65
+ end
66
+
67
+ # Filter by status. Not all stored statuses are filterable.
68
+ module Status
69
+ extend Zavudev::Internal::Type::Enum
70
+
71
+ QUEUED = :queued
72
+ SENDING = :sending
73
+ SENT = :sent
74
+ DELIVERED = :delivered
75
+ FAILED = :failed
76
+ RECEIVED = :received
77
+
78
+ # @!method self.values
79
+ # @return [Array<Symbol>]
80
+ end
48
81
  end
49
82
  end
50
83
  end
@@ -8,8 +8,11 @@ module Zavudev
8
8
  include Zavudev::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute to
11
- # Recipient phone number in E.164 format, email address, or numeric chat ID (for
12
- # Telegram/Instagram/Messenger).
11
+ # Recipient phone number in E.164 format, email address, WhatsApp business-scoped
12
+ # user ID (BSUID, e.g. `US.13491208655302741918`), or numeric chat ID (for
13
+ # Telegram/Instagram/Messenger). A BSUID is routed to WhatsApp and sent via the
14
+ # `recipient` field; use it to message a contact who adopted a username and whose
15
+ # phone number is hidden.
13
16
  #
14
17
  # @return [String]
15
18
  required :to, String
@@ -101,7 +104,7 @@ module Zavudev
101
104
  # Some parameter documentations has been truncated, see
102
105
  # {Zavudev::Models::MessageSendParams} for more details.
103
106
  #
104
- # @param to [String] Recipient phone number in E.164 format, email address, or numeric chat ID (for T
107
+ # @param to [String] Recipient phone number in E.164 format, email address, WhatsApp business-scoped
105
108
  #
106
109
  # @param attachments [Array<Zavudev::Models::MessageSendParams::Attachment>] Email attachments. Only supported when channel is 'email'. Maximum 40MB total si
107
110
  #
@@ -6,7 +6,7 @@ module Zavudev
6
6
  extend Zavudev::Internal::Type::Enum
7
7
 
8
8
  LOCAL = :local
9
- MOBILE = :mobile
9
+ NATIONAL = :national
10
10
  TOLL_FREE = :tollFree
11
11
 
12
12
  # @!method self.values
@@ -39,6 +39,7 @@ module Zavudev
39
39
  PENDING = :pending
40
40
  APPROVED = :approved
41
41
  REJECTED = :rejected
42
+ ESCALATED = :escalated
42
43
  MALICIOUS = :malicious
43
44
 
44
45
  # @!method self.values
@@ -67,6 +67,7 @@ module Zavudev
67
67
  PENDING = :pending
68
68
  APPROVED = :approved
69
69
  REJECTED = :rejected
70
+ ESCALATED = :escalated
70
71
  MALICIOUS = :malicious
71
72
 
72
73
  # @!method self.values
@@ -119,14 +119,6 @@ module Zavudev
119
119
 
120
120
  ContactUpdateParams = Zavudev::Models::ContactUpdateParams
121
121
 
122
- DataExport = Zavudev::Models::DataExport
123
-
124
- ExportCreateParams = Zavudev::Models::ExportCreateParams
125
-
126
- ExportListParams = Zavudev::Models::ExportListParams
127
-
128
- ExportRetrieveParams = Zavudev::Models::ExportRetrieveParams
129
-
130
122
  FunctionCreateParams = Zavudev::Models::FunctionCreateParams
131
123
 
132
124
  FunctionDeleteParams = Zavudev::Models::FunctionDeleteParams
@@ -207,8 +199,6 @@ module Zavudev
207
199
 
208
200
  PhoneNumberUpdateParams = Zavudev::Models::PhoneNumberUpdateParams
209
201
 
210
- PlanRetrieveParams = Zavudev::Models::PlanRetrieveParams
211
-
212
202
  RegulatoryDocument = Zavudev::Models::RegulatoryDocument
213
203
 
214
204
  RegulatoryDocumentCreateParams = Zavudev::Models::RegulatoryDocumentCreateParams
@@ -287,8 +277,6 @@ module Zavudev
287
277
 
288
278
  URLSubmitForVerificationParams = Zavudev::Models::URLSubmitForVerificationParams
289
279
 
290
- UsageRetrieveParams = Zavudev::Models::UsageRetrieveParams
291
-
292
280
  VerifiedURL = Zavudev::Models::VerifiedURL
293
281
 
294
282
  WebhookEvent = Zavudev::Models::WebhookEvent
@@ -3,81 +3,6 @@
3
3
  module Zavudev
4
4
  module Resources
5
5
  class Exports
6
- # Create a new data export job. The export will be processed asynchronously and
7
- # the download URL will be available when status is 'completed'. Export links
8
- # expire after 24 hours.
9
- #
10
- # @overload create(data_types:, date_from: nil, date_to: nil, request_options: {})
11
- #
12
- # @param data_types [Array<Symbol, Zavudev::Models::ExportCreateParams::DataType>] List of data types to include in the export.
13
- #
14
- # @param date_from [Time] Start date for data to export (inclusive).
15
- #
16
- # @param date_to [Time] End date for data to export (inclusive).
17
- #
18
- # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
19
- #
20
- # @return [Zavudev::Models::ExportCreateResponse]
21
- #
22
- # @see Zavudev::Models::ExportCreateParams
23
- def create(params)
24
- parsed, options = Zavudev::ExportCreateParams.dump_request(params)
25
- @client.request(
26
- method: :post,
27
- path: "v1/exports",
28
- body: parsed,
29
- model: Zavudev::Models::ExportCreateResponse,
30
- options: options
31
- )
32
- end
33
-
34
- # Get details of a specific data export, including download URL when completed.
35
- #
36
- # @overload retrieve(export_id, request_options: {})
37
- #
38
- # @param export_id [String]
39
- # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
40
- #
41
- # @return [Zavudev::Models::ExportRetrieveResponse]
42
- #
43
- # @see Zavudev::Models::ExportRetrieveParams
44
- def retrieve(export_id, params = {})
45
- @client.request(
46
- method: :get,
47
- path: ["v1/exports/%1$s", export_id],
48
- model: Zavudev::Models::ExportRetrieveResponse,
49
- options: params[:request_options]
50
- )
51
- end
52
-
53
- # List data exports for this project.
54
- #
55
- # @overload list(cursor: nil, limit: nil, status: nil, request_options: {})
56
- #
57
- # @param cursor [String]
58
- #
59
- # @param limit [Integer]
60
- #
61
- # @param status [Symbol, Zavudev::Models::ExportListParams::Status] Status of a data export job.
62
- #
63
- # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
64
- #
65
- # @return [Zavudev::Internal::Cursor<Zavudev::Models::DataExport>]
66
- #
67
- # @see Zavudev::Models::ExportListParams
68
- def list(params = {})
69
- parsed, options = Zavudev::ExportListParams.dump_request(params)
70
- query = Zavudev::Internal::Util.encode_query_params(parsed)
71
- @client.request(
72
- method: :get,
73
- path: "v1/exports",
74
- query: query,
75
- page: Zavudev::Internal::Cursor,
76
- model: Zavudev::DataExport,
77
- options: options
78
- )
79
- end
80
-
81
6
  # @api private
82
7
  #
83
8
  # @param client [Zavudev::Client]
@@ -6,11 +6,20 @@ module Zavudev
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {Zavudev::Models::InvitationCreateParams} for more details.
8
8
  #
9
- # Create a partner invitation link for a client to connect their WhatsApp Business
10
- # account. The client will complete Meta's embedded signup flow and the resulting
11
- # sender will be created in your project.
9
+ # Create a partner invitation link for a client to connect WhatsApp. The client
10
+ # opens the returned `url` and connects. Set `connectionType` to choose how they
11
+ # connect:
12
12
  #
13
- # @overload create(allowed_phone_countries: nil, client_email: nil, client_name: nil, client_phone: nil, expires_in_days: nil, phone_number_id: nil, request_options: {})
13
+ # - `whatsapp_waba` (default): the client completes Meta's embedded signup,
14
+ # linking an official WhatsApp Business Account.
15
+ # - `whatsapp_alt`: the client links their number by scanning a QR code. Requires
16
+ # the WhatsApp Alternative feature to be enabled for your team (otherwise
17
+ # returns 400).
18
+ #
19
+ # Either way, the resulting sender is created in your project when the client
20
+ # completes the flow, and the invitation transitions to `completed`.
21
+ #
22
+ # @overload create(allowed_phone_countries: nil, client_email: nil, client_name: nil, client_phone: nil, connection_type: nil, expires_in_days: nil, phone_number_id: nil, request_options: {})
14
23
  #
15
24
  # @param allowed_phone_countries [Array<String>] ISO country codes for allowed phone numbers.
16
25
  #
@@ -20,6 +29,8 @@ module Zavudev
20
29
  #
21
30
  # @param client_phone [String] Phone number of the client in E.164 format.
22
31
  #
32
+ # @param connection_type [Symbol, Zavudev::Models::InvitationCreateParams::ConnectionType] How the client connects WhatsApp. `whatsapp_waba` (default) runs Meta's embedded
33
+ #
23
34
  # @param expires_in_days [Integer] Number of days until the invitation expires.
24
35
  #
25
36
  # @param phone_number_id [String] ID of a Zavu phone number to pre-assign for WhatsApp registration. If provided,
@@ -26,13 +26,13 @@ module Zavudev
26
26
  #
27
27
  # @overload list(channel: nil, cursor: nil, limit: nil, status: nil, to: nil, request_options: {})
28
28
  #
29
- # @param channel [Symbol, Zavudev::Models::Channel] Delivery channel. Use 'auto' for intelligent routing.
29
+ # @param channel [Symbol, Zavudev::Models::MessageListParams::Channel] Filter by delivery channel.
30
30
  #
31
31
  # @param cursor [String]
32
32
  #
33
33
  # @param limit [Integer]
34
34
  #
35
- # @param status [Symbol, Zavudev::Models::MessageStatus]
35
+ # @param status [Symbol, Zavudev::Models::MessageListParams::Status] Filter by status. Not all stored statuses are filterable.
36
36
  #
37
37
  # @param to [String]
38
38
  #
@@ -109,7 +109,7 @@ module Zavudev
109
109
  #
110
110
  # @overload send_(to:, attachments: nil, channel: nil, content: nil, fallback_enabled: nil, html_body: nil, idempotency_key: nil, message_type: nil, metadata: nil, reply_to: nil, subject: nil, text: nil, voice_language: nil, zavu_sender: nil, request_options: {})
111
111
  #
112
- # @param to [String] Body param: Recipient phone number in E.164 format, email address, or numeric ch
112
+ # @param to [String] Body param: Recipient phone number in E.164 format, email address, WhatsApp busi
113
113
  #
114
114
  # @param attachments [Array<Zavudev::Models::MessageSendParams::Attachment>] Body param: Email attachments. Only supported when channel is 'email'. Maximum 4
115
115
  #
@@ -3,25 +3,6 @@
3
3
  module Zavudev
4
4
  module Resources
5
5
  class Plan
6
- # Get the current subscription plan for the API key's team, including tier,
7
- # billing interval, and period dates.
8
- #
9
- # @overload retrieve(request_options: {})
10
- #
11
- # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
12
- #
13
- # @return [Zavudev::Models::PlanRetrieveResponse]
14
- #
15
- # @see Zavudev::Models::PlanRetrieveParams
16
- def retrieve(params = {})
17
- @client.request(
18
- method: :get,
19
- path: "v1/plan",
20
- model: Zavudev::Models::PlanRetrieveResponse,
21
- options: params[:request_options]
22
- )
23
- end
24
-
25
6
  # @api private
26
7
  #
27
8
  # @param client [Zavudev::Client]