zavudev 0.19.0 → 0.20.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/lib/zavudev/models/function_create_params.rb +36 -4
- data/lib/zavudev/models/function_create_response.rb +4 -2
- data/lib/zavudev/models/function_deploy_params.rb +31 -3
- data/lib/zavudev/models/function_deploy_response.rb +20 -3
- data/lib/zavudev/models/function_get_deployment_response.rb +20 -3
- data/lib/zavudev/models/function_retrieve_response.rb +4 -2
- data/lib/zavudev/models/function_update_params.rb +41 -3
- data/lib/zavudev/models/function_update_response.rb +4 -2
- data/lib/zavudev/models/invitation.rb +101 -8
- data/lib/zavudev/models/invitation_create_params.rb +34 -8
- data/lib/zavudev/models/invitation_list_params.rb +14 -0
- data/lib/zavudev/models/message.rb +14 -0
- data/lib/zavudev/models/message_type.rb +16 -0
- data/lib/zavudev/models/phone_number_pricing.rb +7 -2
- data/lib/zavudev/models/phone_number_search_available_params.rb +13 -1
- data/lib/zavudev/models/sender.rb +12 -1
- data/lib/zavudev/models/sender_create_params.rb +72 -4
- data/lib/zavudev/models/sender_update_params.rb +65 -1
- data/lib/zavudev/models/sender_webhook.rb +47 -1
- data/lib/zavudev/models/senders/agent/agent_tool.rb +19 -1
- data/lib/zavudev/models/senders/agent/tool_create_params.rb +7 -2
- data/lib/zavudev/models/senders/agent/tool_test_response.rb +90 -5
- data/lib/zavudev/models/senders/agent.rb +198 -1
- data/lib/zavudev/models/senders/agent_create_params.rb +188 -1
- data/lib/zavudev/models/senders/agent_execution.rb +26 -1
- data/lib/zavudev/models/senders/agent_update_params.rb +188 -1
- data/lib/zavudev/models/template.rb +1 -0
- data/lib/zavudev/models/template_create_params.rb +19 -9
- data/lib/zavudev/models/webhook_event.rb +31 -1
- data/lib/zavudev/resources/broadcasts.rb +20 -4
- data/lib/zavudev/resources/functions.rb +35 -10
- data/lib/zavudev/resources/invitations.rb +19 -6
- data/lib/zavudev/resources/messages.rb +13 -4
- data/lib/zavudev/resources/number_10dlc/brands.rb +5 -1
- data/lib/zavudev/resources/number_10dlc/campaigns.rb +6 -1
- data/lib/zavudev/resources/phone_numbers.rb +12 -3
- data/lib/zavudev/resources/senders/agent/executions.rb +5 -0
- data/lib/zavudev/resources/senders/agent/tools.rb +14 -2
- data/lib/zavudev/resources/senders/agent.rb +18 -2
- data/lib/zavudev/resources/senders.rb +15 -3
- data/lib/zavudev/version.rb +1 -1
- data/rbi/zavudev/models/function_create_params.rbi +50 -2
- data/rbi/zavudev/models/function_create_response.rbi +6 -2
- data/rbi/zavudev/models/function_deploy_params.rbi +42 -2
- data/rbi/zavudev/models/function_deploy_response.rbi +20 -0
- data/rbi/zavudev/models/function_get_deployment_response.rbi +20 -0
- data/rbi/zavudev/models/function_retrieve_response.rbi +6 -2
- data/rbi/zavudev/models/function_update_params.rbi +57 -2
- data/rbi/zavudev/models/function_update_response.rbi +6 -2
- data/rbi/zavudev/models/invitation.rbi +162 -8
- data/rbi/zavudev/models/invitation_create_params.rbi +54 -10
- data/rbi/zavudev/models/invitation_list_params.rbi +17 -0
- data/rbi/zavudev/models/message.rbi +28 -0
- data/rbi/zavudev/models/message_type.rbi +18 -0
- data/rbi/zavudev/models/phone_number_pricing.rbi +6 -2
- data/rbi/zavudev/models/phone_number_search_available_params.rbi +13 -0
- data/rbi/zavudev/models/sender.rbi +17 -0
- data/rbi/zavudev/models/sender_create_params.rbi +136 -4
- data/rbi/zavudev/models/sender_update_params.rbi +124 -0
- data/rbi/zavudev/models/sender_webhook.rbi +69 -0
- data/rbi/zavudev/models/senders/agent/agent_tool.rbi +26 -3
- data/rbi/zavudev/models/senders/agent/tool_create_params.rbi +6 -2
- data/rbi/zavudev/models/senders/agent/tool_test_response.rbi +130 -5
- data/rbi/zavudev/models/senders/agent.rbi +320 -3
- data/rbi/zavudev/models/senders/agent_create_params.rbi +304 -0
- data/rbi/zavudev/models/senders/agent_execution.rbi +31 -3
- data/rbi/zavudev/models/senders/agent_update_params.rbi +304 -0
- data/rbi/zavudev/models/template.rbi +5 -0
- data/rbi/zavudev/models/template_create_params.rbi +27 -6
- data/rbi/zavudev/models/webhook_event.rbi +35 -1
- data/rbi/zavudev/resources/broadcasts.rbi +20 -4
- data/rbi/zavudev/resources/functions.rbi +62 -6
- data/rbi/zavudev/resources/invitations.rbi +37 -8
- data/rbi/zavudev/resources/messages.rbi +12 -3
- data/rbi/zavudev/resources/number_10dlc/brands.rbi +5 -1
- data/rbi/zavudev/resources/number_10dlc/campaigns.rbi +6 -1
- data/rbi/zavudev/resources/phone_numbers.rbi +10 -2
- data/rbi/zavudev/resources/senders/agent/executions.rbi +5 -0
- data/rbi/zavudev/resources/senders/agent/tools.rbi +13 -2
- data/rbi/zavudev/resources/senders/agent.rbi +16 -0
- data/rbi/zavudev/resources/senders.rbi +56 -2
- data/sig/zavudev/models/function_create_params.rbs +14 -0
- data/sig/zavudev/models/function_deploy_params.rbs +14 -0
- data/sig/zavudev/models/function_deploy_response.rbs +5 -0
- data/sig/zavudev/models/function_get_deployment_response.rbs +5 -0
- data/sig/zavudev/models/function_update_params.rbs +21 -0
- data/sig/zavudev/models/invitation.rbs +58 -2
- data/sig/zavudev/models/invitation_create_params.rbs +2 -1
- data/sig/zavudev/models/invitation_list_params.rbs +3 -1
- data/sig/zavudev/models/message_type.rbs +4 -0
- data/sig/zavudev/models/phone_number_search_available_params.rbs +7 -0
- data/sig/zavudev/models/sender.rbs +7 -0
- data/sig/zavudev/models/sender_create_params.rbs +35 -0
- data/sig/zavudev/models/sender_update_params.rbs +35 -0
- data/sig/zavudev/models/sender_webhook.rbs +17 -0
- data/sig/zavudev/models/senders/agent/agent_tool.rbs +10 -3
- data/sig/zavudev/models/senders/agent/tool_test_response.rbs +68 -4
- data/sig/zavudev/models/senders/agent.rbs +161 -3
- data/sig/zavudev/models/senders/agent_create_params.rbs +152 -1
- data/sig/zavudev/models/senders/agent_execution.rbs +13 -3
- data/sig/zavudev/models/senders/agent_update_params.rbs +152 -1
- data/sig/zavudev/models/template.rbs +2 -1
- data/sig/zavudev/models/template_create_params.rbs +9 -6
- data/sig/zavudev/models/webhook_event.rbs +10 -0
- data/sig/zavudev/resources/functions.rbs +7 -0
- data/sig/zavudev/resources/phone_numbers.rbs +1 -0
- data/sig/zavudev/resources/senders/agent.rbs +2 -0
- data/sig/zavudev/resources/senders.rbs +6 -0
- metadata +2 -2
|
@@ -46,8 +46,30 @@ module Zavudev
|
|
|
46
46
|
sig { params(email_receiving_enabled: T::Boolean).void }
|
|
47
47
|
attr_writer :email_receiving_enabled
|
|
48
48
|
|
|
49
|
-
#
|
|
50
|
-
#
|
|
49
|
+
# Enable the one-way SMS channel (`sms_oneway`). Needs nothing else — no phone
|
|
50
|
+
# number, no credential — so it is the fastest way to get a sender that can send.
|
|
51
|
+
# Recipients cannot reply. Confirm with `sms_oneway` in the `channels` array on
|
|
52
|
+
# the response.
|
|
53
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
54
|
+
attr_reader :enable_sms_oneway
|
|
55
|
+
|
|
56
|
+
sig { params(enable_sms_oneway: T::Boolean).void }
|
|
57
|
+
attr_writer :enable_sms_oneway
|
|
58
|
+
|
|
59
|
+
# Let this sender place and answer phone calls. Requires `phoneNumber`; enabling
|
|
60
|
+
# it without one returns 400. Check the `channels` array on the response to
|
|
61
|
+
# confirm `voice` is on.
|
|
62
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
63
|
+
attr_reader :enable_voice
|
|
64
|
+
|
|
65
|
+
sig { params(enable_voice: T::Boolean).void }
|
|
66
|
+
attr_writer :enable_voice
|
|
67
|
+
|
|
68
|
+
# Phone number in E.164 format, and it must be a number your project already owns
|
|
69
|
+
# (see `GET /v1/phone-numbers`). The number is routed to the sender as part of
|
|
70
|
+
# this call, which is what turns the SMS channel on. Passing a number the project
|
|
71
|
+
# does not own, or one already attached to another sender, returns 400 rather than
|
|
72
|
+
# creating a sender that cannot send. Omit for an email-only sender.
|
|
51
73
|
sig { returns(T.nilable(String)) }
|
|
52
74
|
attr_reader :phone_number
|
|
53
75
|
|
|
@@ -69,6 +91,35 @@ module Zavudev
|
|
|
69
91
|
end
|
|
70
92
|
attr_writer :webhook_events
|
|
71
93
|
|
|
94
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
95
|
+
#
|
|
96
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
97
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
98
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
99
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
100
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
101
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
102
|
+
# before switching over.
|
|
103
|
+
#
|
|
104
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
105
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
106
|
+
sig do
|
|
107
|
+
returns(
|
|
108
|
+
T.nilable(
|
|
109
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::OrSymbol
|
|
110
|
+
)
|
|
111
|
+
)
|
|
112
|
+
end
|
|
113
|
+
attr_reader :webhook_signature_version
|
|
114
|
+
|
|
115
|
+
sig do
|
|
116
|
+
params(
|
|
117
|
+
webhook_signature_version:
|
|
118
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::OrSymbol
|
|
119
|
+
).void
|
|
120
|
+
end
|
|
121
|
+
attr_writer :webhook_signature_version
|
|
122
|
+
|
|
72
123
|
# HTTPS URL for webhook events.
|
|
73
124
|
sig { returns(T.nilable(String)) }
|
|
74
125
|
attr_reader :webhook_url
|
|
@@ -83,9 +134,13 @@ module Zavudev
|
|
|
83
134
|
email_domain_id: String,
|
|
84
135
|
email_from_name: String,
|
|
85
136
|
email_receiving_enabled: T::Boolean,
|
|
137
|
+
enable_sms_oneway: T::Boolean,
|
|
138
|
+
enable_voice: T::Boolean,
|
|
86
139
|
phone_number: String,
|
|
87
140
|
set_as_default: T::Boolean,
|
|
88
141
|
webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
|
|
142
|
+
webhook_signature_version:
|
|
143
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::OrSymbol,
|
|
89
144
|
webhook_url: String,
|
|
90
145
|
request_options: Zavudev::RequestOptions::OrHash
|
|
91
146
|
).returns(T.attached_class)
|
|
@@ -104,12 +159,37 @@ module Zavudev
|
|
|
104
159
|
# Enable inbound email receiving on this sender. Requires a verified MX record on
|
|
105
160
|
# the domain; ignored otherwise.
|
|
106
161
|
email_receiving_enabled: nil,
|
|
107
|
-
#
|
|
108
|
-
#
|
|
162
|
+
# Enable the one-way SMS channel (`sms_oneway`). Needs nothing else — no phone
|
|
163
|
+
# number, no credential — so it is the fastest way to get a sender that can send.
|
|
164
|
+
# Recipients cannot reply. Confirm with `sms_oneway` in the `channels` array on
|
|
165
|
+
# the response.
|
|
166
|
+
enable_sms_oneway: nil,
|
|
167
|
+
# Let this sender place and answer phone calls. Requires `phoneNumber`; enabling
|
|
168
|
+
# it without one returns 400. Check the `channels` array on the response to
|
|
169
|
+
# confirm `voice` is on.
|
|
170
|
+
enable_voice: nil,
|
|
171
|
+
# Phone number in E.164 format, and it must be a number your project already owns
|
|
172
|
+
# (see `GET /v1/phone-numbers`). The number is routed to the sender as part of
|
|
173
|
+
# this call, which is what turns the SMS channel on. Passing a number the project
|
|
174
|
+
# does not own, or one already attached to another sender, returns 400 rather than
|
|
175
|
+
# creating a sender that cannot send. Omit for an email-only sender.
|
|
109
176
|
phone_number: nil,
|
|
110
177
|
set_as_default: nil,
|
|
111
178
|
# Events to subscribe to.
|
|
112
179
|
webhook_events: nil,
|
|
180
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
181
|
+
#
|
|
182
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
183
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
184
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
185
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
186
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
187
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
188
|
+
# before switching over.
|
|
189
|
+
#
|
|
190
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
191
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
192
|
+
webhook_signature_version: nil,
|
|
113
193
|
# HTTPS URL for webhook events.
|
|
114
194
|
webhook_url: nil,
|
|
115
195
|
request_options: {}
|
|
@@ -124,9 +204,13 @@ module Zavudev
|
|
|
124
204
|
email_domain_id: String,
|
|
125
205
|
email_from_name: String,
|
|
126
206
|
email_receiving_enabled: T::Boolean,
|
|
207
|
+
enable_sms_oneway: T::Boolean,
|
|
208
|
+
enable_voice: T::Boolean,
|
|
127
209
|
phone_number: String,
|
|
128
210
|
set_as_default: T::Boolean,
|
|
129
211
|
webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
|
|
212
|
+
webhook_signature_version:
|
|
213
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::OrSymbol,
|
|
130
214
|
webhook_url: String,
|
|
131
215
|
request_options: Zavudev::RequestOptions
|
|
132
216
|
}
|
|
@@ -134,6 +218,54 @@ module Zavudev
|
|
|
134
218
|
end
|
|
135
219
|
def to_hash
|
|
136
220
|
end
|
|
221
|
+
|
|
222
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
223
|
+
#
|
|
224
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
225
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
226
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
227
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
228
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
229
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
230
|
+
# before switching over.
|
|
231
|
+
#
|
|
232
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
233
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
234
|
+
module WebhookSignatureVersion
|
|
235
|
+
extend Zavudev::Internal::Type::Enum
|
|
236
|
+
|
|
237
|
+
TaggedSymbol =
|
|
238
|
+
T.type_alias do
|
|
239
|
+
T.all(Symbol, Zavudev::SenderCreateParams::WebhookSignatureVersion)
|
|
240
|
+
end
|
|
241
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
242
|
+
|
|
243
|
+
V1 =
|
|
244
|
+
T.let(
|
|
245
|
+
:v1,
|
|
246
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::TaggedSymbol
|
|
247
|
+
)
|
|
248
|
+
V1_V2 =
|
|
249
|
+
T.let(
|
|
250
|
+
:"v1+v2",
|
|
251
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::TaggedSymbol
|
|
252
|
+
)
|
|
253
|
+
V2 =
|
|
254
|
+
T.let(
|
|
255
|
+
:v2,
|
|
256
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::TaggedSymbol
|
|
257
|
+
)
|
|
258
|
+
|
|
259
|
+
sig do
|
|
260
|
+
override.returns(
|
|
261
|
+
T::Array[
|
|
262
|
+
Zavudev::SenderCreateParams::WebhookSignatureVersion::TaggedSymbol
|
|
263
|
+
]
|
|
264
|
+
)
|
|
265
|
+
end
|
|
266
|
+
def self.values
|
|
267
|
+
end
|
|
268
|
+
end
|
|
137
269
|
end
|
|
138
270
|
end
|
|
139
271
|
end
|
|
@@ -53,6 +53,24 @@ module Zavudev
|
|
|
53
53
|
sig { params(email_receiving_enabled: T::Boolean).void }
|
|
54
54
|
attr_writer :email_receiving_enabled
|
|
55
55
|
|
|
56
|
+
# Turn the one-way SMS channel on or off. Enabling needs nothing else and takes
|
|
57
|
+
# effect immediately; disabling removes the channel from the sender. Confirm with
|
|
58
|
+
# the `channels` array on the response.
|
|
59
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
60
|
+
attr_reader :enable_sms_oneway
|
|
61
|
+
|
|
62
|
+
sig { params(enable_sms_oneway: T::Boolean).void }
|
|
63
|
+
attr_writer :enable_sms_oneway
|
|
64
|
+
|
|
65
|
+
# Turn the voice channel on or off. The sender must already have a phone number
|
|
66
|
+
# provisioned for calls; enabling it otherwise returns 400 instead of storing a
|
|
67
|
+
# flag that changes nothing. Confirm with the `channels` array on the response.
|
|
68
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
69
|
+
attr_reader :enable_voice
|
|
70
|
+
|
|
71
|
+
sig { params(enable_voice: T::Boolean).void }
|
|
72
|
+
attr_writer :enable_voice
|
|
73
|
+
|
|
56
74
|
sig { returns(T.nilable(String)) }
|
|
57
75
|
attr_reader :name
|
|
58
76
|
|
|
@@ -81,6 +99,35 @@ module Zavudev
|
|
|
81
99
|
end
|
|
82
100
|
attr_writer :webhook_events
|
|
83
101
|
|
|
102
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
103
|
+
#
|
|
104
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
105
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
106
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
107
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
108
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
109
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
110
|
+
# before switching over.
|
|
111
|
+
#
|
|
112
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
113
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
114
|
+
sig do
|
|
115
|
+
returns(
|
|
116
|
+
T.nilable(
|
|
117
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::OrSymbol
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
attr_reader :webhook_signature_version
|
|
122
|
+
|
|
123
|
+
sig do
|
|
124
|
+
params(
|
|
125
|
+
webhook_signature_version:
|
|
126
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::OrSymbol
|
|
127
|
+
).void
|
|
128
|
+
end
|
|
129
|
+
attr_writer :webhook_signature_version
|
|
130
|
+
|
|
84
131
|
# HTTPS URL for webhook events. Set to null to remove webhook.
|
|
85
132
|
sig { returns(T.nilable(String)) }
|
|
86
133
|
attr_accessor :webhook_url
|
|
@@ -93,10 +140,14 @@ module Zavudev
|
|
|
93
140
|
email_domain_id: String,
|
|
94
141
|
email_from_name: String,
|
|
95
142
|
email_receiving_enabled: T::Boolean,
|
|
143
|
+
enable_sms_oneway: T::Boolean,
|
|
144
|
+
enable_voice: T::Boolean,
|
|
96
145
|
name: String,
|
|
97
146
|
set_as_default: T::Boolean,
|
|
98
147
|
webhook_active: T::Boolean,
|
|
99
148
|
webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
|
|
149
|
+
webhook_signature_version:
|
|
150
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::OrSymbol,
|
|
100
151
|
webhook_url: T.nilable(String),
|
|
101
152
|
request_options: Zavudev::RequestOptions::OrHash
|
|
102
153
|
).returns(T.attached_class)
|
|
@@ -117,12 +168,33 @@ module Zavudev
|
|
|
117
168
|
email_from_name: nil,
|
|
118
169
|
# Enable or disable inbound email receiving for this sender.
|
|
119
170
|
email_receiving_enabled: nil,
|
|
171
|
+
# Turn the one-way SMS channel on or off. Enabling needs nothing else and takes
|
|
172
|
+
# effect immediately; disabling removes the channel from the sender. Confirm with
|
|
173
|
+
# the `channels` array on the response.
|
|
174
|
+
enable_sms_oneway: nil,
|
|
175
|
+
# Turn the voice channel on or off. The sender must already have a phone number
|
|
176
|
+
# provisioned for calls; enabling it otherwise returns 400 instead of storing a
|
|
177
|
+
# flag that changes nothing. Confirm with the `channels` array on the response.
|
|
178
|
+
enable_voice: nil,
|
|
120
179
|
name: nil,
|
|
121
180
|
set_as_default: nil,
|
|
122
181
|
# Whether the webhook is active.
|
|
123
182
|
webhook_active: nil,
|
|
124
183
|
# Events to subscribe to.
|
|
125
184
|
webhook_events: nil,
|
|
185
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
186
|
+
#
|
|
187
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
188
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
189
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
190
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
191
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
192
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
193
|
+
# before switching over.
|
|
194
|
+
#
|
|
195
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
196
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
197
|
+
webhook_signature_version: nil,
|
|
126
198
|
# HTTPS URL for webhook events. Set to null to remove webhook.
|
|
127
199
|
webhook_url: nil,
|
|
128
200
|
request_options: {}
|
|
@@ -138,10 +210,14 @@ module Zavudev
|
|
|
138
210
|
email_domain_id: String,
|
|
139
211
|
email_from_name: String,
|
|
140
212
|
email_receiving_enabled: T::Boolean,
|
|
213
|
+
enable_sms_oneway: T::Boolean,
|
|
214
|
+
enable_voice: T::Boolean,
|
|
141
215
|
name: String,
|
|
142
216
|
set_as_default: T::Boolean,
|
|
143
217
|
webhook_active: T::Boolean,
|
|
144
218
|
webhook_events: T::Array[Zavudev::WebhookEvent::OrSymbol],
|
|
219
|
+
webhook_signature_version:
|
|
220
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::OrSymbol,
|
|
145
221
|
webhook_url: T.nilable(String),
|
|
146
222
|
request_options: Zavudev::RequestOptions
|
|
147
223
|
}
|
|
@@ -149,6 +225,54 @@ module Zavudev
|
|
|
149
225
|
end
|
|
150
226
|
def to_hash
|
|
151
227
|
end
|
|
228
|
+
|
|
229
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
230
|
+
#
|
|
231
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
232
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
233
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
234
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
235
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
236
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
237
|
+
# before switching over.
|
|
238
|
+
#
|
|
239
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
240
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
241
|
+
module WebhookSignatureVersion
|
|
242
|
+
extend Zavudev::Internal::Type::Enum
|
|
243
|
+
|
|
244
|
+
TaggedSymbol =
|
|
245
|
+
T.type_alias do
|
|
246
|
+
T.all(Symbol, Zavudev::SenderUpdateParams::WebhookSignatureVersion)
|
|
247
|
+
end
|
|
248
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
249
|
+
|
|
250
|
+
V1 =
|
|
251
|
+
T.let(
|
|
252
|
+
:v1,
|
|
253
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::TaggedSymbol
|
|
254
|
+
)
|
|
255
|
+
V1_V2 =
|
|
256
|
+
T.let(
|
|
257
|
+
:"v1+v2",
|
|
258
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::TaggedSymbol
|
|
259
|
+
)
|
|
260
|
+
V2 =
|
|
261
|
+
T.let(
|
|
262
|
+
:v2,
|
|
263
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::TaggedSymbol
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
sig do
|
|
267
|
+
override.returns(
|
|
268
|
+
T::Array[
|
|
269
|
+
Zavudev::SenderUpdateParams::WebhookSignatureVersion::TaggedSymbol
|
|
270
|
+
]
|
|
271
|
+
)
|
|
272
|
+
end
|
|
273
|
+
def self.values
|
|
274
|
+
end
|
|
275
|
+
end
|
|
152
276
|
end
|
|
153
277
|
end
|
|
154
278
|
end
|
|
@@ -16,6 +16,21 @@ module Zavudev
|
|
|
16
16
|
sig { returns(T::Array[Zavudev::WebhookEvent::TaggedSymbol]) }
|
|
17
17
|
attr_accessor :events
|
|
18
18
|
|
|
19
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
20
|
+
#
|
|
21
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
22
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
23
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
24
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
25
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
26
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
27
|
+
# before switching over.
|
|
28
|
+
#
|
|
29
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
30
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
31
|
+
sig { returns(Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol) }
|
|
32
|
+
attr_accessor :signature_version
|
|
33
|
+
|
|
19
34
|
# HTTPS URL that will receive webhook events.
|
|
20
35
|
sig { returns(String) }
|
|
21
36
|
attr_accessor :url
|
|
@@ -33,6 +48,7 @@ module Zavudev
|
|
|
33
48
|
params(
|
|
34
49
|
active: T::Boolean,
|
|
35
50
|
events: T::Array[Zavudev::WebhookEvent::OrSymbol],
|
|
51
|
+
signature_version: Zavudev::SenderWebhook::SignatureVersion::OrSymbol,
|
|
36
52
|
url: String,
|
|
37
53
|
secret: String
|
|
38
54
|
).returns(T.attached_class)
|
|
@@ -42,6 +58,19 @@ module Zavudev
|
|
|
42
58
|
active:,
|
|
43
59
|
# List of events the webhook is subscribed to.
|
|
44
60
|
events:,
|
|
61
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
62
|
+
#
|
|
63
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
64
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
65
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
66
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
67
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
68
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
69
|
+
# before switching over.
|
|
70
|
+
#
|
|
71
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
72
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
73
|
+
signature_version:,
|
|
45
74
|
# HTTPS URL that will receive webhook events.
|
|
46
75
|
url:,
|
|
47
76
|
# Webhook secret for signature verification. Only returned on create or
|
|
@@ -55,6 +84,8 @@ module Zavudev
|
|
|
55
84
|
{
|
|
56
85
|
active: T::Boolean,
|
|
57
86
|
events: T::Array[Zavudev::WebhookEvent::TaggedSymbol],
|
|
87
|
+
signature_version:
|
|
88
|
+
Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol,
|
|
58
89
|
url: String,
|
|
59
90
|
secret: String
|
|
60
91
|
}
|
|
@@ -62,6 +93,44 @@ module Zavudev
|
|
|
62
93
|
end
|
|
63
94
|
def to_hash
|
|
64
95
|
end
|
|
96
|
+
|
|
97
|
+
# Which `X-Zavu-Signature` scheme this receiver is sent.
|
|
98
|
+
#
|
|
99
|
+
# - `v1`: `v1=HMAC_SHA256(secret, body)`. The scheme used before this was
|
|
100
|
+
# configurable. Existing webhooks stay on it until you move them.
|
|
101
|
+
# - `v2`: `v2=HMAC_SHA256(secret, "{t}.{body}")`. The current scheme, and the
|
|
102
|
+
# default for new senders. It signs the timestamp together with the body.
|
|
103
|
+
# - `v1+v2`: both signatures, sharing one `t`. The migration setting: a receiver
|
|
104
|
+
# reading either one works, so you can deploy and confirm your new verifier
|
|
105
|
+
# before switching over.
|
|
106
|
+
#
|
|
107
|
+
# Moving from `v1` straight to `v2` returns `400`. Set `v1+v2` first. See
|
|
108
|
+
# https://docs.zavu.dev/guides/receiving-messages/signature-migration
|
|
109
|
+
module SignatureVersion
|
|
110
|
+
extend Zavudev::Internal::Type::Enum
|
|
111
|
+
|
|
112
|
+
TaggedSymbol =
|
|
113
|
+
T.type_alias do
|
|
114
|
+
T.all(Symbol, Zavudev::SenderWebhook::SignatureVersion)
|
|
115
|
+
end
|
|
116
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
117
|
+
|
|
118
|
+
V1 = T.let(:v1, Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol)
|
|
119
|
+
V1_V2 =
|
|
120
|
+
T.let(
|
|
121
|
+
:"v1+v2",
|
|
122
|
+
Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol
|
|
123
|
+
)
|
|
124
|
+
V2 = T.let(:v2, Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol)
|
|
125
|
+
|
|
126
|
+
sig do
|
|
127
|
+
override.returns(
|
|
128
|
+
T::Array[Zavudev::SenderWebhook::SignatureVersion::TaggedSymbol]
|
|
129
|
+
)
|
|
130
|
+
end
|
|
131
|
+
def self.values
|
|
132
|
+
end
|
|
133
|
+
end
|
|
65
134
|
end
|
|
66
135
|
end
|
|
67
136
|
end
|
|
@@ -51,6 +51,19 @@ module Zavudev
|
|
|
51
51
|
sig { returns(String) }
|
|
52
52
|
attr_accessor :webhook_url
|
|
53
53
|
|
|
54
|
+
# Signing secret for this tool's webhook. **Returned only when the tool is
|
|
55
|
+
# created**, never on a later read.
|
|
56
|
+
#
|
|
57
|
+
# Zavu generates one if you do not supply it, and signs every call to this tool
|
|
58
|
+
# with it: `X-Zavu-Signature: <hex>`, the HMAC-SHA256 of the request body. Verify
|
|
59
|
+
# it before trusting the call. Lost it? Rotate with
|
|
60
|
+
# `POST /v1/senders/{senderId}/agent/tools/{toolId}/webhook/secret`.
|
|
61
|
+
sig { returns(T.nilable(String)) }
|
|
62
|
+
attr_reader :webhook_secret
|
|
63
|
+
|
|
64
|
+
sig { params(webhook_secret: String).void }
|
|
65
|
+
attr_writer :webhook_secret
|
|
66
|
+
|
|
54
67
|
sig do
|
|
55
68
|
params(
|
|
56
69
|
id: String,
|
|
@@ -61,7 +74,8 @@ module Zavudev
|
|
|
61
74
|
name: String,
|
|
62
75
|
parameters: Zavudev::Senders::Agent::ToolParameters::OrHash,
|
|
63
76
|
updated_at: Time,
|
|
64
|
-
webhook_url: String
|
|
77
|
+
webhook_url: String,
|
|
78
|
+
webhook_secret: String
|
|
65
79
|
).returns(T.attached_class)
|
|
66
80
|
end
|
|
67
81
|
def self.new(
|
|
@@ -75,7 +89,15 @@ module Zavudev
|
|
|
75
89
|
parameters:,
|
|
76
90
|
updated_at:,
|
|
77
91
|
# HTTPS URL to call when the tool is executed.
|
|
78
|
-
webhook_url
|
|
92
|
+
webhook_url:,
|
|
93
|
+
# Signing secret for this tool's webhook. **Returned only when the tool is
|
|
94
|
+
# created**, never on a later read.
|
|
95
|
+
#
|
|
96
|
+
# Zavu generates one if you do not supply it, and signs every call to this tool
|
|
97
|
+
# with it: `X-Zavu-Signature: <hex>`, the HMAC-SHA256 of the request body. Verify
|
|
98
|
+
# it before trusting the call. Lost it? Rotate with
|
|
99
|
+
# `POST /v1/senders/{senderId}/agent/tools/{toolId}/webhook/secret`.
|
|
100
|
+
webhook_secret: nil
|
|
79
101
|
)
|
|
80
102
|
end
|
|
81
103
|
|
|
@@ -90,7 +112,8 @@ module Zavudev
|
|
|
90
112
|
name: String,
|
|
91
113
|
parameters: Zavudev::Senders::Agent::ToolParameters,
|
|
92
114
|
updated_at: Time,
|
|
93
|
-
webhook_url: String
|
|
115
|
+
webhook_url: String,
|
|
116
|
+
webhook_secret: String
|
|
94
117
|
}
|
|
95
118
|
)
|
|
96
119
|
end
|
|
@@ -45,7 +45,9 @@ module Zavudev
|
|
|
45
45
|
sig { params(enabled: T::Boolean).void }
|
|
46
46
|
attr_writer :enabled
|
|
47
47
|
|
|
48
|
-
#
|
|
48
|
+
# Signing secret for the webhook. Optional: Zavu generates one when omitted and
|
|
49
|
+
# returns it on this response only. Supply your own if you already have a secret
|
|
50
|
+
# you want reused.
|
|
49
51
|
sig { returns(T.nilable(String)) }
|
|
50
52
|
attr_reader :webhook_secret
|
|
51
53
|
|
|
@@ -72,7 +74,9 @@ module Zavudev
|
|
|
72
74
|
# Must be HTTPS.
|
|
73
75
|
webhook_url:,
|
|
74
76
|
enabled: nil,
|
|
75
|
-
#
|
|
77
|
+
# Signing secret for the webhook. Optional: Zavu generates one when omitted and
|
|
78
|
+
# returns it on this response only. Supply your own if you already have a secret
|
|
79
|
+
# you want reused.
|
|
76
80
|
webhook_secret: nil,
|
|
77
81
|
request_options: {}
|
|
78
82
|
)
|