zavudev 0.15.0 → 0.17.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +7 -7
  4. data/lib/zavudev/client.rb +0 -12
  5. data/lib/zavudev/models/broadcast_channel.rb +0 -3
  6. data/lib/zavudev/models/channel.rb +5 -1
  7. data/lib/zavudev/models/contact_channel.rb +1 -0
  8. data/lib/zavudev/models/contact_create_params.rb +1 -0
  9. data/lib/zavudev/models/contacts/channel_add_params.rb +1 -0
  10. data/lib/zavudev/models/message.rb +12 -8
  11. data/lib/zavudev/models/message_list_params.rb +40 -7
  12. data/lib/zavudev/models/phone_number_type.rb +1 -1
  13. data/lib/zavudev/models/sender.rb +23 -1
  14. data/lib/zavudev/models/sender_create_params.rb +45 -4
  15. data/lib/zavudev/models/sender_update_params.rb +40 -1
  16. data/lib/zavudev/models/url_list_verified_params.rb +1 -0
  17. data/lib/zavudev/models/verified_url.rb +1 -0
  18. data/lib/zavudev/models.rb +0 -12
  19. data/lib/zavudev/resources/messages.rb +2 -2
  20. data/lib/zavudev/resources/senders.rb +25 -3
  21. data/lib/zavudev/version.rb +1 -1
  22. data/lib/zavudev.rb +0 -13
  23. data/rbi/zavudev/client.rbi +0 -9
  24. data/rbi/zavudev/models/broadcast_channel.rbi +0 -3
  25. data/rbi/zavudev/models/channel.rbi +5 -1
  26. data/rbi/zavudev/models/contact_channel.rbi +2 -0
  27. data/rbi/zavudev/models/contact_create_params.rbi +5 -0
  28. data/rbi/zavudev/models/contacts/channel_add_params.rbi +5 -0
  29. data/rbi/zavudev/models/message.rbi +16 -8
  30. data/rbi/zavudev/models/message_list_params.rbi +74 -10
  31. data/rbi/zavudev/models/phone_number_type.rbi +1 -1
  32. data/rbi/zavudev/models/sender.rbi +28 -0
  33. data/rbi/zavudev/models/sender_create_params.rbi +62 -3
  34. data/rbi/zavudev/models/sender_update_params.rbi +52 -0
  35. data/rbi/zavudev/models/url_list_verified_params.rbi +5 -0
  36. data/rbi/zavudev/models/verified_url.rbi +2 -0
  37. data/rbi/zavudev/models.rbi +0 -12
  38. data/rbi/zavudev/resources/messages.rbi +4 -3
  39. data/rbi/zavudev/resources/senders.rbi +35 -1
  40. data/sig/zavudev/client.rbs +0 -6
  41. data/sig/zavudev/models/broadcast_channel.rbs +1 -12
  42. data/sig/zavudev/models/channel.rbs +2 -0
  43. data/sig/zavudev/models/contact_channel.rbs +3 -1
  44. data/sig/zavudev/models/contact_create_params.rbs +8 -1
  45. data/sig/zavudev/models/contacts/channel_add_params.rbs +8 -1
  46. data/sig/zavudev/models/message_list_params.rbs +54 -11
  47. data/sig/zavudev/models/phone_number_type.rbs +2 -2
  48. data/sig/zavudev/models/sender.rbs +14 -0
  49. data/sig/zavudev/models/sender_create_params.rbs +32 -2
  50. data/sig/zavudev/models/sender_update_params.rbs +28 -0
  51. data/sig/zavudev/models/url_list_verified_params.rbs +2 -1
  52. data/sig/zavudev/models/verified_url.rbs +2 -1
  53. data/sig/zavudev/models.rbs +0 -12
  54. data/sig/zavudev/resources/messages.rbs +2 -2
  55. data/sig/zavudev/resources/senders.rbs +9 -1
  56. metadata +2 -41
  57. data/lib/zavudev/models/data_export.rb +0 -122
  58. data/lib/zavudev/models/export_create_params.rb +0 -54
  59. data/lib/zavudev/models/export_create_response.rb +0 -16
  60. data/lib/zavudev/models/export_list_params.rb +0 -49
  61. data/lib/zavudev/models/export_retrieve_params.rb +0 -20
  62. data/lib/zavudev/models/export_retrieve_response.rb +0 -16
  63. data/lib/zavudev/models/plan_retrieve_params.rb +0 -14
  64. data/lib/zavudev/models/plan_retrieve_response.rb +0 -155
  65. data/lib/zavudev/models/usage_retrieve_params.rb +0 -14
  66. data/lib/zavudev/models/usage_retrieve_response.rb +0 -77
  67. data/lib/zavudev/resources/exports.rb +0 -89
  68. data/lib/zavudev/resources/plan.rb +0 -33
  69. data/lib/zavudev/resources/usage.rb +0 -33
  70. data/rbi/zavudev/models/data_export.rbi +0 -151
  71. data/rbi/zavudev/models/export_create_params.rbi +0 -106
  72. data/rbi/zavudev/models/export_create_response.rbi +0 -31
  73. data/rbi/zavudev/models/export_list_params.rbi +0 -89
  74. data/rbi/zavudev/models/export_retrieve_params.rbi +0 -35
  75. data/rbi/zavudev/models/export_retrieve_response.rbi +0 -31
  76. data/rbi/zavudev/models/plan_retrieve_params.rbi +0 -27
  77. data/rbi/zavudev/models/plan_retrieve_response.rbi +0 -306
  78. data/rbi/zavudev/models/usage_retrieve_params.rbi +0 -27
  79. data/rbi/zavudev/models/usage_retrieve_response.rbi +0 -150
  80. data/rbi/zavudev/resources/exports.rbi +0 -62
  81. data/rbi/zavudev/resources/plan.rbi +0 -22
  82. data/rbi/zavudev/resources/usage.rbi +0 -22
  83. data/sig/zavudev/models/data_export.rbs +0 -102
  84. data/sig/zavudev/models/export_create_params.rbs +0 -59
  85. data/sig/zavudev/models/export_create_response.rbs +0 -13
  86. data/sig/zavudev/models/export_list_params.rbs +0 -57
  87. data/sig/zavudev/models/export_retrieve_params.rbs +0 -23
  88. data/sig/zavudev/models/export_retrieve_response.rbs +0 -13
  89. data/sig/zavudev/models/plan_retrieve_params.rbs +0 -15
  90. data/sig/zavudev/models/plan_retrieve_response.rbs +0 -158
  91. data/sig/zavudev/models/usage_retrieve_params.rbs +0 -15
  92. data/sig/zavudev/models/usage_retrieve_response.rbs +0 -69
  93. data/sig/zavudev/resources/exports.rbs +0 -26
  94. data/sig/zavudev/resources/plan.rbs +0 -11
  95. data/sig/zavudev/resources/usage.rbs +0 -11
data/lib/zavudev.rb CHANGED
@@ -113,12 +113,6 @@ require_relative "zavudev/models/contacts/channel_set_primary_response"
113
113
  require_relative "zavudev/models/contacts/channel_update_params"
114
114
  require_relative "zavudev/models/contacts/channel_update_response"
115
115
  require_relative "zavudev/models/contact_update_params"
116
- require_relative "zavudev/models/data_export"
117
- require_relative "zavudev/models/export_create_params"
118
- require_relative "zavudev/models/export_create_response"
119
- require_relative "zavudev/models/export_list_params"
120
- require_relative "zavudev/models/export_retrieve_params"
121
- require_relative "zavudev/models/export_retrieve_response"
122
116
  require_relative "zavudev/models/function_create_params"
123
117
  require_relative "zavudev/models/function_create_response"
124
118
  require_relative "zavudev/models/function_delete_params"
@@ -214,8 +208,6 @@ require_relative "zavudev/models/phone_number_status"
214
208
  require_relative "zavudev/models/phone_number_type"
215
209
  require_relative "zavudev/models/phone_number_update_params"
216
210
  require_relative "zavudev/models/phone_number_update_response"
217
- require_relative "zavudev/models/plan_retrieve_params"
218
- require_relative "zavudev/models/plan_retrieve_response"
219
211
  require_relative "zavudev/models/regulatory_document"
220
212
  require_relative "zavudev/models/regulatory_document_create_params"
221
213
  require_relative "zavudev/models/regulatory_document_create_response"
@@ -332,8 +324,6 @@ require_relative "zavudev/models/url_retrieve_details_params"
332
324
  require_relative "zavudev/models/url_retrieve_details_response"
333
325
  require_relative "zavudev/models/url_submit_for_verification_params"
334
326
  require_relative "zavudev/models/url_submit_for_verification_response"
335
- require_relative "zavudev/models/usage_retrieve_params"
336
- require_relative "zavudev/models/usage_retrieve_response"
337
327
  require_relative "zavudev/models/verified_url"
338
328
  require_relative "zavudev/models/webhook_event"
339
329
  require_relative "zavudev/models/webhook_secret_response"
@@ -348,7 +338,6 @@ require_relative "zavudev/resources/broadcasts"
348
338
  require_relative "zavudev/resources/broadcasts/contacts"
349
339
  require_relative "zavudev/resources/contacts"
350
340
  require_relative "zavudev/resources/contacts/channels"
351
- require_relative "zavudev/resources/exports"
352
341
  require_relative "zavudev/resources/functions"
353
342
  require_relative "zavudev/resources/functions/secrets"
354
343
  require_relative "zavudev/resources/introspect"
@@ -360,7 +349,6 @@ require_relative "zavudev/resources/number_10dlc/brands"
360
349
  require_relative "zavudev/resources/number_10dlc/campaigns"
361
350
  require_relative "zavudev/resources/number_10dlc/campaigns/phone_numbers"
362
351
  require_relative "zavudev/resources/phone_numbers"
363
- require_relative "zavudev/resources/plan"
364
352
  require_relative "zavudev/resources/regulatory_documents"
365
353
  require_relative "zavudev/resources/senders"
366
354
  require_relative "zavudev/resources/senders/agent"
@@ -374,4 +362,3 @@ require_relative "zavudev/resources/sub_accounts"
374
362
  require_relative "zavudev/resources/sub_accounts/api_keys"
375
363
  require_relative "zavudev/resources/templates"
376
364
  require_relative "zavudev/resources/urls"
377
- require_relative "zavudev/resources/usage"
@@ -43,21 +43,12 @@ module Zavudev
43
43
  sig { returns(Zavudev::Resources::Invitations) }
44
44
  attr_reader :invitations
45
45
 
46
- sig { returns(Zavudev::Resources::Exports) }
47
- attr_reader :exports
48
-
49
46
  sig { returns(Zavudev::Resources::URLs) }
50
47
  attr_reader :urls
51
48
 
52
49
  sig { returns(Zavudev::Resources::Balance) }
53
50
  attr_reader :balance
54
51
 
55
- sig { returns(Zavudev::Resources::Plan) }
56
- attr_reader :plan
57
-
58
- sig { returns(Zavudev::Resources::Usage) }
59
- attr_reader :usage
60
-
61
52
  sig { returns(Zavudev::Resources::SubAccounts) }
62
53
  attr_reader :sub_accounts
63
54
 
@@ -15,9 +15,6 @@ module Zavudev
15
15
  WHATSAPP = T.let(:whatsapp, Zavudev::BroadcastChannel::TaggedSymbol)
16
16
  TELEGRAM = T.let(:telegram, Zavudev::BroadcastChannel::TaggedSymbol)
17
17
  EMAIL = T.let(:email, Zavudev::BroadcastChannel::TaggedSymbol)
18
- INSTAGRAM = T.let(:instagram, Zavudev::BroadcastChannel::TaggedSymbol)
19
- MESSENGER = T.let(:messenger, Zavudev::BroadcastChannel::TaggedSymbol)
20
- VOICE = T.let(:voice, Zavudev::BroadcastChannel::TaggedSymbol)
21
18
 
22
19
  sig do
23
20
  override.returns(T::Array[Zavudev::BroadcastChannel::TaggedSymbol])
@@ -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
 
@@ -13,6 +16,7 @@ module Zavudev
13
16
  SMS = T.let(:sms, Zavudev::Channel::TaggedSymbol)
14
17
  SMS_ONEWAY = T.let(:sms_oneway, Zavudev::Channel::TaggedSymbol)
15
18
  WHATSAPP = T.let(:whatsapp, Zavudev::Channel::TaggedSymbol)
19
+ WHATSAPP_ALT = T.let(:whatsapp_alt, Zavudev::Channel::TaggedSymbol)
16
20
  TELEGRAM = T.let(:telegram, Zavudev::Channel::TaggedSymbol)
17
21
  EMAIL = T.let(:email, Zavudev::Channel::TaggedSymbol)
18
22
  INSTAGRAM = T.let(:instagram, Zavudev::Channel::TaggedSymbol)
@@ -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
+ INSTAGRAM =
150
+ T.let(:instagram, Zavudev::ContactChannel::Channel::TaggedSymbol)
149
151
  MESSENGER =
150
152
  T.let(:messenger, Zavudev::ContactChannel::Channel::TaggedSymbol)
151
153
  VOICE = T.let(:voice, Zavudev::ContactChannel::Channel::TaggedSymbol)
@@ -169,6 +169,11 @@ module Zavudev
169
169
  :telegram,
170
170
  Zavudev::ContactCreateParams::Channel::Channel::TaggedSymbol
171
171
  )
172
+ INSTAGRAM =
173
+ T.let(
174
+ :instagram,
175
+ Zavudev::ContactCreateParams::Channel::Channel::TaggedSymbol
176
+ )
172
177
  MESSENGER =
173
178
  T.let(
174
179
  :messenger,
@@ -120,6 +120,11 @@ module Zavudev
120
120
  :telegram,
121
121
  Zavudev::Contacts::ChannelAddParams::Channel::TaggedSymbol
122
122
  )
123
+ INSTAGRAM =
124
+ T.let(
125
+ :instagram,
126
+ Zavudev::Contacts::ChannelAddParams::Channel::TaggedSymbol
127
+ )
123
128
  MESSENGER =
124
129
  T.let(
125
130
  :messenger,
@@ -9,7 +9,10 @@ module Zavudev
9
9
  sig { returns(String) }
10
10
  attr_accessor :id
11
11
 
12
- # Delivery channel. Use 'auto' for intelligent routing.
12
+ # Delivery channel. Use 'auto' for intelligent routing. `whatsapp_alt` is the
13
+ # QR-linked WhatsApp channel and is only accepted for teams with the WhatsApp
14
+ # Alternative feature enabled; the sender must have a connected whatsapp_alt
15
+ # session.
13
16
  sig { returns(Zavudev::Channel::TaggedSymbol) }
14
17
  attr_accessor :channel
15
18
 
@@ -34,15 +37,16 @@ module Zavudev
34
37
  sig { params(content: Zavudev::MessageContent::OrHash).void }
35
38
  attr_writer :content
36
39
 
37
- # MAU cost in USD (charged for first contact of the month).
40
+ # Zavu platform charge in USD for this message. Messaging is billed against your
41
+ # plan's monthly limits plus usage-based overage.
38
42
  sig { returns(T.nilable(Float)) }
39
43
  attr_accessor :cost
40
44
 
41
- # Provider cost in USD (Telnyx, SES, etc.).
45
+ # Carrier and delivery cost in USD.
42
46
  sig { returns(T.nilable(Float)) }
43
47
  attr_accessor :cost_provider
44
48
 
45
- # Total cost in USD (MAU + provider cost).
49
+ # Total cost in USD (platform charge + delivery cost).
46
50
  sig { returns(T.nilable(Float)) }
47
51
  attr_accessor :cost_total
48
52
 
@@ -114,7 +118,10 @@ module Zavudev
114
118
  end
115
119
  def self.new(
116
120
  id:,
117
- # Delivery channel. Use 'auto' for intelligent routing.
121
+ # Delivery channel. Use 'auto' for intelligent routing. `whatsapp_alt` is the
122
+ # QR-linked WhatsApp channel and is only accepted for teams with the WhatsApp
123
+ # Alternative feature enabled; the sender must have a connected whatsapp_alt
124
+ # session.
118
125
  channel:,
119
126
  created_at:,
120
127
  # Type of message. Non-text types are supported by WhatsApp and Telegram (varies
@@ -124,11 +131,12 @@ module Zavudev
124
131
  to:,
125
132
  # Content for non-text message types (WhatsApp and Telegram).
126
133
  content: nil,
127
- # MAU cost in USD (charged for first contact of the month).
134
+ # Zavu platform charge in USD for this message. Messaging is billed against your
135
+ # plan's monthly limits plus usage-based overage.
128
136
  cost: nil,
129
- # Provider cost in USD (Telnyx, SES, etc.).
137
+ # Carrier and delivery cost in USD.
130
138
  cost_provider: nil,
131
- # Total cost in USD (MAU + provider cost).
139
+ # Total cost in USD (platform charge + delivery cost).
132
140
  cost_total: nil,
133
141
  error_code: nil,
134
142
  error_message: nil,
@@ -11,11 +11,13 @@ module Zavudev
11
11
  T.any(Zavudev::MessageListParams, Zavudev::Internal::AnyHash)
12
12
  end
13
13
 
14
- # Delivery channel. Use 'auto' for intelligent routing.
15
- sig { returns(T.nilable(Zavudev::Channel::OrSymbol)) }
14
+ # Filter by delivery channel.
15
+ sig { returns(T.nilable(Zavudev::MessageListParams::Channel::OrSymbol)) }
16
16
  attr_reader :channel
17
17
 
18
- sig { params(channel: Zavudev::Channel::OrSymbol).void }
18
+ sig do
19
+ params(channel: Zavudev::MessageListParams::Channel::OrSymbol).void
20
+ end
19
21
  attr_writer :channel
20
22
 
21
23
  sig { returns(T.nilable(String)) }
@@ -30,10 +32,11 @@ module Zavudev
30
32
  sig { params(limit: Integer).void }
31
33
  attr_writer :limit
32
34
 
33
- sig { returns(T.nilable(Zavudev::MessageStatus::OrSymbol)) }
35
+ # Filter by status. Not all stored statuses are filterable.
36
+ sig { returns(T.nilable(Zavudev::MessageListParams::Status::OrSymbol)) }
34
37
  attr_reader :status
35
38
 
36
- sig { params(status: Zavudev::MessageStatus::OrSymbol).void }
39
+ sig { params(status: Zavudev::MessageListParams::Status::OrSymbol).void }
37
40
  attr_writer :status
38
41
 
39
42
  sig { returns(T.nilable(String)) }
@@ -44,19 +47,20 @@ module Zavudev
44
47
 
45
48
  sig do
46
49
  params(
47
- channel: Zavudev::Channel::OrSymbol,
50
+ channel: Zavudev::MessageListParams::Channel::OrSymbol,
48
51
  cursor: String,
49
52
  limit: Integer,
50
- status: Zavudev::MessageStatus::OrSymbol,
53
+ status: Zavudev::MessageListParams::Status::OrSymbol,
51
54
  to: String,
52
55
  request_options: Zavudev::RequestOptions::OrHash
53
56
  ).returns(T.attached_class)
54
57
  end
55
58
  def self.new(
56
- # Delivery channel. Use 'auto' for intelligent routing.
59
+ # Filter by delivery channel.
57
60
  channel: nil,
58
61
  cursor: nil,
59
62
  limit: nil,
63
+ # Filter by status. Not all stored statuses are filterable.
60
64
  status: nil,
61
65
  to: nil,
62
66
  request_options: {}
@@ -66,10 +70,10 @@ module Zavudev
66
70
  sig do
67
71
  override.returns(
68
72
  {
69
- channel: Zavudev::Channel::OrSymbol,
73
+ channel: Zavudev::MessageListParams::Channel::OrSymbol,
70
74
  cursor: String,
71
75
  limit: Integer,
72
- status: Zavudev::MessageStatus::OrSymbol,
76
+ status: Zavudev::MessageListParams::Status::OrSymbol,
73
77
  to: String,
74
78
  request_options: Zavudev::RequestOptions
75
79
  }
@@ -77,6 +81,66 @@ module Zavudev
77
81
  end
78
82
  def to_hash
79
83
  end
84
+
85
+ # Filter by delivery channel.
86
+ module Channel
87
+ extend Zavudev::Internal::Type::Enum
88
+
89
+ TaggedSymbol =
90
+ T.type_alias { T.all(Symbol, Zavudev::MessageListParams::Channel) }
91
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
92
+
93
+ SMS = T.let(:sms, Zavudev::MessageListParams::Channel::TaggedSymbol)
94
+ SMS_ONEWAY =
95
+ T.let(:sms_oneway, Zavudev::MessageListParams::Channel::TaggedSymbol)
96
+ WHATSAPP =
97
+ T.let(:whatsapp, Zavudev::MessageListParams::Channel::TaggedSymbol)
98
+ EMAIL = T.let(:email, Zavudev::MessageListParams::Channel::TaggedSymbol)
99
+ TELEGRAM =
100
+ T.let(:telegram, Zavudev::MessageListParams::Channel::TaggedSymbol)
101
+ INSTAGRAM =
102
+ T.let(:instagram, Zavudev::MessageListParams::Channel::TaggedSymbol)
103
+ MESSENGER =
104
+ T.let(:messenger, Zavudev::MessageListParams::Channel::TaggedSymbol)
105
+ VOICE = T.let(:voice, Zavudev::MessageListParams::Channel::TaggedSymbol)
106
+
107
+ sig do
108
+ override.returns(
109
+ T::Array[Zavudev::MessageListParams::Channel::TaggedSymbol]
110
+ )
111
+ end
112
+ def self.values
113
+ end
114
+ end
115
+
116
+ # Filter by status. Not all stored statuses are filterable.
117
+ module Status
118
+ extend Zavudev::Internal::Type::Enum
119
+
120
+ TaggedSymbol =
121
+ T.type_alias { T.all(Symbol, Zavudev::MessageListParams::Status) }
122
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
123
+
124
+ QUEUED =
125
+ T.let(:queued, Zavudev::MessageListParams::Status::TaggedSymbol)
126
+ SENDING =
127
+ T.let(:sending, Zavudev::MessageListParams::Status::TaggedSymbol)
128
+ SENT = T.let(:sent, Zavudev::MessageListParams::Status::TaggedSymbol)
129
+ DELIVERED =
130
+ T.let(:delivered, Zavudev::MessageListParams::Status::TaggedSymbol)
131
+ FAILED =
132
+ T.let(:failed, Zavudev::MessageListParams::Status::TaggedSymbol)
133
+ RECEIVED =
134
+ T.let(:received, Zavudev::MessageListParams::Status::TaggedSymbol)
135
+
136
+ sig do
137
+ override.returns(
138
+ T::Array[Zavudev::MessageListParams::Status::TaggedSymbol]
139
+ )
140
+ end
141
+ def self.values
142
+ end
143
+ end
80
144
  end
81
145
  end
82
146
  end
@@ -9,7 +9,7 @@ module Zavudev
9
9
  OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  LOCAL = T.let(:local, Zavudev::PhoneNumberType::TaggedSymbol)
12
- MOBILE = T.let(:mobile, Zavudev::PhoneNumberType::TaggedSymbol)
12
+ NATIONAL = T.let(:national, Zavudev::PhoneNumberType::TaggedSymbol)
13
13
  TOLL_FREE = T.let(:tollFree, Zavudev::PhoneNumberType::TaggedSymbol)
14
14
 
15
15
  sig { override.returns(T::Array[Zavudev::PhoneNumberType::TaggedSymbol]) }
@@ -22,6 +22,23 @@ module Zavudev
22
22
  sig { params(created_at: Time).void }
23
23
  attr_writer :created_at
24
24
 
25
+ # From-address for the email channel, if configured.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :email_address
28
+
29
+ sig { params(email_address: String).void }
30
+ attr_writer :email_address
31
+
32
+ # Whether catch-all receiving is enabled. When true (and emailReceivingEnabled is
33
+ # true), this sender receives email addressed to any local part at its domain, not
34
+ # just its own address. The original recipient is delivered in the message.inbound
35
+ # webhook's data.to.
36
+ sig { returns(T.nilable(T::Boolean)) }
37
+ attr_reader :email_catch_all_enabled
38
+
39
+ sig { params(email_catch_all_enabled: T::Boolean).void }
40
+ attr_writer :email_catch_all_enabled
41
+
25
42
  # Whether inbound email receiving is enabled for this sender.
26
43
  sig { returns(T.nilable(T::Boolean)) }
27
44
  attr_reader :email_receiving_enabled
@@ -62,6 +79,8 @@ module Zavudev
62
79
  name: String,
63
80
  phone_number: String,
64
81
  created_at: Time,
82
+ email_address: String,
83
+ email_catch_all_enabled: T::Boolean,
65
84
  email_receiving_enabled: T::Boolean,
66
85
  is_default: T::Boolean,
67
86
  updated_at: Time,
@@ -75,6 +94,13 @@ module Zavudev
75
94
  # Phone number in E.164 format.
76
95
  phone_number:,
77
96
  created_at: nil,
97
+ # From-address for the email channel, if configured.
98
+ email_address: nil,
99
+ # Whether catch-all receiving is enabled. When true (and emailReceivingEnabled is
100
+ # true), this sender receives email addressed to any local part at its domain, not
101
+ # just its own address. The original recipient is delivered in the message.inbound
102
+ # webhook's data.to.
103
+ email_catch_all_enabled: nil,
78
104
  # Whether inbound email receiving is enabled for this sender.
79
105
  email_receiving_enabled: nil,
80
106
  # Whether this sender is the project's default.
@@ -94,6 +120,8 @@ module Zavudev
94
120
  name: String,
95
121
  phone_number: String,
96
122
  created_at: Time,
123
+ email_address: String,
124
+ email_catch_all_enabled: T::Boolean,
97
125
  email_receiving_enabled: T::Boolean,
98
126
  is_default: T::Boolean,
99
127
  updated_at: Time,
@@ -14,8 +14,45 @@ module Zavudev
14
14
  sig { returns(String) }
15
15
  attr_accessor :name
16
16
 
17
- sig { returns(String) }
18
- attr_accessor :phone_number
17
+ # From-address for the email channel (e.g. noreply@yourdomain.com). The address's
18
+ # domain must be a verified email domain in your project. Setting this attaches
19
+ # the email channel to the sender.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :email_address
22
+
23
+ sig { params(email_address: String).void }
24
+ attr_writer :email_address
25
+
26
+ # ID of the verified email domain to attach. Optional — resolved from
27
+ # `emailAddress`'s domain when omitted.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :email_domain_id
30
+
31
+ sig { params(email_domain_id: String).void }
32
+ attr_writer :email_domain_id
33
+
34
+ # Display name shown in the recipient's inbox for the email channel.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :email_from_name
37
+
38
+ sig { params(email_from_name: String).void }
39
+ attr_writer :email_from_name
40
+
41
+ # Enable inbound email receiving on this sender. Requires a verified MX record on
42
+ # the domain; ignored otherwise.
43
+ sig { returns(T.nilable(T::Boolean)) }
44
+ attr_reader :email_receiving_enabled
45
+
46
+ sig { params(email_receiving_enabled: T::Boolean).void }
47
+ attr_writer :email_receiving_enabled
48
+
49
+ # Phone number in E.164 format. Required for phone-based channels (SMS, WhatsApp).
50
+ # Omit for an email-only sender.
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :phone_number
53
+
54
+ sig { params(phone_number: String).void }
55
+ attr_writer :phone_number
19
56
 
20
57
  sig { returns(T.nilable(T::Boolean)) }
21
58
  attr_reader :set_as_default
@@ -42,6 +79,10 @@ module Zavudev
42
79
  sig do
43
80
  params(
44
81
  name: String,
82
+ email_address: String,
83
+ email_domain_id: String,
84
+ email_from_name: String,
85
+ email_receiving_enabled: T::Boolean,
45
86
  phone_number: String,
46
87
  set_as_default: T::Boolean,
47
88
  webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
@@ -51,7 +92,21 @@ module Zavudev
51
92
  end
52
93
  def self.new(
53
94
  name:,
54
- phone_number:,
95
+ # From-address for the email channel (e.g. noreply@yourdomain.com). The address's
96
+ # domain must be a verified email domain in your project. Setting this attaches
97
+ # the email channel to the sender.
98
+ email_address: nil,
99
+ # ID of the verified email domain to attach. Optional — resolved from
100
+ # `emailAddress`'s domain when omitted.
101
+ email_domain_id: nil,
102
+ # Display name shown in the recipient's inbox for the email channel.
103
+ email_from_name: nil,
104
+ # Enable inbound email receiving on this sender. Requires a verified MX record on
105
+ # the domain; ignored otherwise.
106
+ email_receiving_enabled: nil,
107
+ # Phone number in E.164 format. Required for phone-based channels (SMS, WhatsApp).
108
+ # Omit for an email-only sender.
109
+ phone_number: nil,
55
110
  set_as_default: nil,
56
111
  # Events to subscribe to.
57
112
  webhook_events: nil,
@@ -65,6 +120,10 @@ module Zavudev
65
120
  override.returns(
66
121
  {
67
122
  name: String,
123
+ email_address: String,
124
+ email_domain_id: String,
125
+ email_from_name: String,
126
+ email_receiving_enabled: T::Boolean,
68
127
  phone_number: String,
69
128
  set_as_default: T::Boolean,
70
129
  webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
@@ -14,6 +14,38 @@ module Zavudev
14
14
  sig { returns(String) }
15
15
  attr_accessor :sender_id
16
16
 
17
+ # Attach or change the sender's email from-address (e.g. noreply@yourdomain.com).
18
+ # The domain must be a verified email domain in your project.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :email_address
21
+
22
+ sig { params(email_address: String).void }
23
+ attr_writer :email_address
24
+
25
+ # Enable or disable domain catch-all. When enabled (with emailReceivingEnabled
26
+ # true), this sender receives email for any address at its domain. Ignored
27
+ # (treated as false) if receiving is not enabled.
28
+ sig { returns(T.nilable(T::Boolean)) }
29
+ attr_reader :email_catch_all_enabled
30
+
31
+ sig { params(email_catch_all_enabled: T::Boolean).void }
32
+ attr_writer :email_catch_all_enabled
33
+
34
+ # ID of the verified email domain to attach. Optional — resolved from
35
+ # `emailAddress`'s domain when omitted.
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :email_domain_id
38
+
39
+ sig { params(email_domain_id: String).void }
40
+ attr_writer :email_domain_id
41
+
42
+ # Display name shown in the recipient's inbox for the email channel.
43
+ sig { returns(T.nilable(String)) }
44
+ attr_reader :email_from_name
45
+
46
+ sig { params(email_from_name: String).void }
47
+ attr_writer :email_from_name
48
+
17
49
  # Enable or disable inbound email receiving for this sender.
18
50
  sig { returns(T.nilable(T::Boolean)) }
19
51
  attr_reader :email_receiving_enabled
@@ -56,6 +88,10 @@ module Zavudev
56
88
  sig do
57
89
  params(
58
90
  sender_id: String,
91
+ email_address: String,
92
+ email_catch_all_enabled: T::Boolean,
93
+ email_domain_id: String,
94
+ email_from_name: String,
59
95
  email_receiving_enabled: T::Boolean,
60
96
  name: String,
61
97
  set_as_default: T::Boolean,
@@ -67,6 +103,18 @@ module Zavudev
67
103
  end
68
104
  def self.new(
69
105
  sender_id:,
106
+ # Attach or change the sender's email from-address (e.g. noreply@yourdomain.com).
107
+ # The domain must be a verified email domain in your project.
108
+ email_address: nil,
109
+ # Enable or disable domain catch-all. When enabled (with emailReceivingEnabled
110
+ # true), this sender receives email for any address at its domain. Ignored
111
+ # (treated as false) if receiving is not enabled.
112
+ email_catch_all_enabled: nil,
113
+ # ID of the verified email domain to attach. Optional — resolved from
114
+ # `emailAddress`'s domain when omitted.
115
+ email_domain_id: nil,
116
+ # Display name shown in the recipient's inbox for the email channel.
117
+ email_from_name: nil,
70
118
  # Enable or disable inbound email receiving for this sender.
71
119
  email_receiving_enabled: nil,
72
120
  name: nil,
@@ -85,6 +133,10 @@ module Zavudev
85
133
  override.returns(
86
134
  {
87
135
  sender_id: String,
136
+ email_address: String,
137
+ email_catch_all_enabled: T::Boolean,
138
+ email_domain_id: String,
139
+ email_from_name: String,
88
140
  email_receiving_enabled: T::Boolean,
89
141
  name: String,
90
142
  set_as_default: T::Boolean,
@@ -78,6 +78,11 @@ module Zavudev
78
78
  T.let(:approved, Zavudev::URLListVerifiedParams::Status::TaggedSymbol)
79
79
  REJECTED =
80
80
  T.let(:rejected, Zavudev::URLListVerifiedParams::Status::TaggedSymbol)
81
+ ESCALATED =
82
+ T.let(
83
+ :escalated,
84
+ Zavudev::URLListVerifiedParams::Status::TaggedSymbol
85
+ )
81
86
  MALICIOUS =
82
87
  T.let(
83
88
  :malicious,
@@ -94,6 +94,8 @@ module Zavudev
94
94
  PENDING = T.let(:pending, Zavudev::VerifiedURL::Status::TaggedSymbol)
95
95
  APPROVED = T.let(:approved, Zavudev::VerifiedURL::Status::TaggedSymbol)
96
96
  REJECTED = T.let(:rejected, Zavudev::VerifiedURL::Status::TaggedSymbol)
97
+ ESCALATED =
98
+ T.let(:escalated, Zavudev::VerifiedURL::Status::TaggedSymbol)
97
99
  MALICIOUS =
98
100
  T.let(:malicious, Zavudev::VerifiedURL::Status::TaggedSymbol)
99
101
 
@@ -82,14 +82,6 @@ module Zavudev
82
82
 
83
83
  ContactUpdateParams = Zavudev::Models::ContactUpdateParams
84
84
 
85
- DataExport = Zavudev::Models::DataExport
86
-
87
- ExportCreateParams = Zavudev::Models::ExportCreateParams
88
-
89
- ExportListParams = Zavudev::Models::ExportListParams
90
-
91
- ExportRetrieveParams = Zavudev::Models::ExportRetrieveParams
92
-
93
85
  FunctionCreateParams = Zavudev::Models::FunctionCreateParams
94
86
 
95
87
  FunctionDeleteParams = Zavudev::Models::FunctionDeleteParams
@@ -171,8 +163,6 @@ module Zavudev
171
163
 
172
164
  PhoneNumberUpdateParams = Zavudev::Models::PhoneNumberUpdateParams
173
165
 
174
- PlanRetrieveParams = Zavudev::Models::PlanRetrieveParams
175
-
176
166
  RegulatoryDocument = Zavudev::Models::RegulatoryDocument
177
167
 
178
168
  RegulatoryDocumentCreateParams =
@@ -258,8 +248,6 @@ module Zavudev
258
248
  URLSubmitForVerificationParams =
259
249
  Zavudev::Models::URLSubmitForVerificationParams
260
250
 
261
- UsageRetrieveParams = Zavudev::Models::UsageRetrieveParams
262
-
263
251
  VerifiedURL = Zavudev::Models::VerifiedURL
264
252
 
265
253
  WebhookEvent = Zavudev::Models::WebhookEvent
@@ -16,19 +16,20 @@ module Zavudev
16
16
  # List messages previously sent by this project.
17
17
  sig do
18
18
  params(
19
- channel: Zavudev::Channel::OrSymbol,
19
+ channel: Zavudev::MessageListParams::Channel::OrSymbol,
20
20
  cursor: String,
21
21
  limit: Integer,
22
- status: Zavudev::MessageStatus::OrSymbol,
22
+ status: Zavudev::MessageListParams::Status::OrSymbol,
23
23
  to: String,
24
24
  request_options: Zavudev::RequestOptions::OrHash
25
25
  ).returns(Zavudev::Internal::Cursor[Zavudev::Message])
26
26
  end
27
27
  def list(
28
- # Delivery channel. Use 'auto' for intelligent routing.
28
+ # Filter by delivery channel.
29
29
  channel: nil,
30
30
  cursor: nil,
31
31
  limit: nil,
32
+ # Filter by status. Not all stored statuses are filterable.
32
33
  status: nil,
33
34
  to: nil,
34
35
  request_options: {}