ark-email 0.7.0 → 0.8.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 +16 -0
- data/README.md +22 -6
- data/lib/ark_email/models/email_send_batch_params.rb +10 -1
- data/lib/ark_email/models/email_send_params.rb +8 -0
- data/lib/ark_email/models/webhook_list_deliveries_params.rb +79 -0
- data/lib/ark_email/models/webhook_list_deliveries_response.rb +154 -0
- data/lib/ark_email/models/webhook_replay_delivery_params.rb +20 -0
- data/lib/ark_email/models/webhook_replay_delivery_response.rb +82 -0
- data/lib/ark_email/models/webhook_retrieve_delivery_params.rb +20 -0
- data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +198 -0
- data/lib/ark_email/models.rb +6 -0
- data/lib/ark_email/resources/webhooks.rb +127 -0
- data/lib/ark_email/version.rb +1 -1
- data/lib/ark_email.rb +6 -0
- data/rbi/ark_email/models/email_send_batch_params.rbi +18 -0
- data/rbi/ark_email/models/email_send_params.rbi +16 -0
- data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +172 -0
- data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +257 -0
- data/rbi/ark_email/models/webhook_replay_delivery_params.rbi +38 -0
- data/rbi/ark_email/models/webhook_replay_delivery_response.rbi +132 -0
- data/rbi/ark_email/models/webhook_retrieve_delivery_params.rbi +38 -0
- data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +371 -0
- data/rbi/ark_email/models.rbi +7 -0
- data/rbi/ark_email/resources/emails.rbi +8 -0
- data/rbi/ark_email/resources/webhooks.rbi +105 -0
- data/sig/ark_email/models/webhook_list_deliveries_params.rbs +90 -0
- data/sig/ark_email/models/webhook_list_deliveries_response.rbs +127 -0
- data/sig/ark_email/models/webhook_replay_delivery_params.rbs +23 -0
- data/sig/ark_email/models/webhook_replay_delivery_response.rbs +72 -0
- data/sig/ark_email/models/webhook_retrieve_delivery_params.rbs +23 -0
- data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +158 -0
- data/sig/ark_email/models.rbs +6 -0
- data/sig/ark_email/resources/webhooks.rbs +23 -0
- metadata +20 -2
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
# @see ArkEmail::Resources::Webhooks#retrieve_delivery
|
|
6
|
+
class WebhookRetrieveDeliveryResponse < ArkEmail::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute data
|
|
8
|
+
# Full details of a webhook delivery including request and response
|
|
9
|
+
#
|
|
10
|
+
# @return [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data]
|
|
11
|
+
required :data, -> { ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data }
|
|
12
|
+
|
|
13
|
+
# @!attribute meta
|
|
14
|
+
#
|
|
15
|
+
# @return [ArkEmail::Models::APIMeta]
|
|
16
|
+
required :meta, -> { ArkEmail::APIMeta }
|
|
17
|
+
|
|
18
|
+
# @!attribute success
|
|
19
|
+
#
|
|
20
|
+
# @return [Boolean, true]
|
|
21
|
+
required :success, const: true
|
|
22
|
+
|
|
23
|
+
# @!method initialize(data:, meta:, success: true)
|
|
24
|
+
# Detailed information about a webhook delivery attempt
|
|
25
|
+
#
|
|
26
|
+
# @param data [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data] Full details of a webhook delivery including request and response
|
|
27
|
+
#
|
|
28
|
+
# @param meta [ArkEmail::Models::APIMeta]
|
|
29
|
+
#
|
|
30
|
+
# @param success [Boolean, true]
|
|
31
|
+
|
|
32
|
+
# @see ArkEmail::Models::WebhookRetrieveDeliveryResponse#data
|
|
33
|
+
class Data < ArkEmail::Internal::Type::BaseModel
|
|
34
|
+
# @!attribute id
|
|
35
|
+
# Unique delivery ID (UUID)
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
required :id, String
|
|
39
|
+
|
|
40
|
+
# @!attribute attempt
|
|
41
|
+
# Attempt number for this delivery
|
|
42
|
+
#
|
|
43
|
+
# @return [Integer]
|
|
44
|
+
required :attempt, Integer
|
|
45
|
+
|
|
46
|
+
# @!attribute event
|
|
47
|
+
# Event type that triggered this delivery
|
|
48
|
+
#
|
|
49
|
+
# @return [Symbol, ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event]
|
|
50
|
+
required :event, enum: -> { ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event }
|
|
51
|
+
|
|
52
|
+
# @!attribute request
|
|
53
|
+
# The request that was sent to your endpoint
|
|
54
|
+
#
|
|
55
|
+
# @return [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Request]
|
|
56
|
+
required :request, -> { ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Request }
|
|
57
|
+
|
|
58
|
+
# @!attribute response
|
|
59
|
+
# The response received from your endpoint
|
|
60
|
+
#
|
|
61
|
+
# @return [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Response]
|
|
62
|
+
required :response, -> { ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Response }
|
|
63
|
+
|
|
64
|
+
# @!attribute status_code
|
|
65
|
+
# HTTP status code returned by the endpoint
|
|
66
|
+
#
|
|
67
|
+
# @return [Integer, nil]
|
|
68
|
+
required :status_code, Integer, api_name: :statusCode, nil?: true
|
|
69
|
+
|
|
70
|
+
# @!attribute success
|
|
71
|
+
# Whether the delivery was successful (2xx response)
|
|
72
|
+
#
|
|
73
|
+
# @return [Boolean]
|
|
74
|
+
required :success, ArkEmail::Internal::Type::Boolean
|
|
75
|
+
|
|
76
|
+
# @!attribute timestamp
|
|
77
|
+
# When this delivery attempt occurred
|
|
78
|
+
#
|
|
79
|
+
# @return [Time]
|
|
80
|
+
required :timestamp, Time
|
|
81
|
+
|
|
82
|
+
# @!attribute url
|
|
83
|
+
# URL the webhook was delivered to
|
|
84
|
+
#
|
|
85
|
+
# @return [String]
|
|
86
|
+
required :url, String
|
|
87
|
+
|
|
88
|
+
# @!attribute webhook_id
|
|
89
|
+
# ID of the webhook this delivery belongs to
|
|
90
|
+
#
|
|
91
|
+
# @return [String]
|
|
92
|
+
required :webhook_id, String, api_name: :webhookId
|
|
93
|
+
|
|
94
|
+
# @!attribute webhook_name
|
|
95
|
+
# Name of the webhook for easy identification
|
|
96
|
+
#
|
|
97
|
+
# @return [String]
|
|
98
|
+
required :webhook_name, String, api_name: :webhookName
|
|
99
|
+
|
|
100
|
+
# @!attribute will_retry
|
|
101
|
+
# Whether this delivery will be retried
|
|
102
|
+
#
|
|
103
|
+
# @return [Boolean]
|
|
104
|
+
required :will_retry, ArkEmail::Internal::Type::Boolean, api_name: :willRetry
|
|
105
|
+
|
|
106
|
+
# @!method initialize(id:, attempt:, event:, request:, response:, status_code:, success:, timestamp:, url:, webhook_id:, webhook_name:, will_retry:)
|
|
107
|
+
# Full details of a webhook delivery including request and response
|
|
108
|
+
#
|
|
109
|
+
# @param id [String] Unique delivery ID (UUID)
|
|
110
|
+
#
|
|
111
|
+
# @param attempt [Integer] Attempt number for this delivery
|
|
112
|
+
#
|
|
113
|
+
# @param event [Symbol, ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event] Event type that triggered this delivery
|
|
114
|
+
#
|
|
115
|
+
# @param request [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Request] The request that was sent to your endpoint
|
|
116
|
+
#
|
|
117
|
+
# @param response [ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Response] The response received from your endpoint
|
|
118
|
+
#
|
|
119
|
+
# @param status_code [Integer, nil] HTTP status code returned by the endpoint
|
|
120
|
+
#
|
|
121
|
+
# @param success [Boolean] Whether the delivery was successful (2xx response)
|
|
122
|
+
#
|
|
123
|
+
# @param timestamp [Time] When this delivery attempt occurred
|
|
124
|
+
#
|
|
125
|
+
# @param url [String] URL the webhook was delivered to
|
|
126
|
+
#
|
|
127
|
+
# @param webhook_id [String] ID of the webhook this delivery belongs to
|
|
128
|
+
#
|
|
129
|
+
# @param webhook_name [String] Name of the webhook for easy identification
|
|
130
|
+
#
|
|
131
|
+
# @param will_retry [Boolean] Whether this delivery will be retried
|
|
132
|
+
|
|
133
|
+
# Event type that triggered this delivery
|
|
134
|
+
#
|
|
135
|
+
# @see ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data#event
|
|
136
|
+
module Event
|
|
137
|
+
extend ArkEmail::Internal::Type::Enum
|
|
138
|
+
|
|
139
|
+
MESSAGE_SENT = :MessageSent
|
|
140
|
+
MESSAGE_DELAYED = :MessageDelayed
|
|
141
|
+
MESSAGE_DELIVERY_FAILED = :MessageDeliveryFailed
|
|
142
|
+
MESSAGE_HELD = :MessageHeld
|
|
143
|
+
MESSAGE_BOUNCED = :MessageBounced
|
|
144
|
+
MESSAGE_LINK_CLICKED = :MessageLinkClicked
|
|
145
|
+
MESSAGE_LOADED = :MessageLoaded
|
|
146
|
+
DOMAIN_DNS_ERROR = :DomainDNSError
|
|
147
|
+
|
|
148
|
+
# @!method self.values
|
|
149
|
+
# @return [Array<Symbol>]
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# @see ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data#request
|
|
153
|
+
class Request < ArkEmail::Internal::Type::BaseModel
|
|
154
|
+
# @!attribute headers
|
|
155
|
+
# HTTP headers that were sent with the request
|
|
156
|
+
#
|
|
157
|
+
# @return [Hash{Symbol=>String}]
|
|
158
|
+
required :headers, ArkEmail::Internal::Type::HashOf[String]
|
|
159
|
+
|
|
160
|
+
# @!attribute payload
|
|
161
|
+
# The complete webhook payload that was sent
|
|
162
|
+
#
|
|
163
|
+
# @return [Hash{Symbol=>Object}]
|
|
164
|
+
required :payload, ArkEmail::Internal::Type::HashOf[ArkEmail::Internal::Type::Unknown]
|
|
165
|
+
|
|
166
|
+
# @!method initialize(headers:, payload:)
|
|
167
|
+
# The request that was sent to your endpoint
|
|
168
|
+
#
|
|
169
|
+
# @param headers [Hash{Symbol=>String}] HTTP headers that were sent with the request
|
|
170
|
+
#
|
|
171
|
+
# @param payload [Hash{Symbol=>Object}] The complete webhook payload that was sent
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# @see ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data#response
|
|
175
|
+
class Response < ArkEmail::Internal::Type::BaseModel
|
|
176
|
+
# @!attribute status_code
|
|
177
|
+
# HTTP status code from your endpoint
|
|
178
|
+
#
|
|
179
|
+
# @return [Integer, nil]
|
|
180
|
+
required :status_code, Integer, api_name: :statusCode, nil?: true
|
|
181
|
+
|
|
182
|
+
# @!attribute body
|
|
183
|
+
# Response body from your endpoint (may be truncated)
|
|
184
|
+
#
|
|
185
|
+
# @return [String, nil]
|
|
186
|
+
optional :body, String, nil?: true
|
|
187
|
+
|
|
188
|
+
# @!method initialize(status_code:, body: nil)
|
|
189
|
+
# The response received from your endpoint
|
|
190
|
+
#
|
|
191
|
+
# @param status_code [Integer, nil] HTTP status code from your endpoint
|
|
192
|
+
#
|
|
193
|
+
# @param body [String, nil] Response body from your endpoint (may be truncated)
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
data/lib/ark_email/models.rb
CHANGED
|
@@ -95,8 +95,14 @@ module ArkEmail
|
|
|
95
95
|
|
|
96
96
|
WebhookDeleteParams = ArkEmail::Models::WebhookDeleteParams
|
|
97
97
|
|
|
98
|
+
WebhookListDeliveriesParams = ArkEmail::Models::WebhookListDeliveriesParams
|
|
99
|
+
|
|
98
100
|
WebhookListParams = ArkEmail::Models::WebhookListParams
|
|
99
101
|
|
|
102
|
+
WebhookReplayDeliveryParams = ArkEmail::Models::WebhookReplayDeliveryParams
|
|
103
|
+
|
|
104
|
+
WebhookRetrieveDeliveryParams = ArkEmail::Models::WebhookRetrieveDeliveryParams
|
|
105
|
+
|
|
100
106
|
WebhookRetrieveParams = ArkEmail::Models::WebhookRetrieveParams
|
|
101
107
|
|
|
102
108
|
WebhookTestParams = ArkEmail::Models::WebhookTestParams
|
|
@@ -129,6 +129,133 @@ module ArkEmail
|
|
|
129
129
|
)
|
|
130
130
|
end
|
|
131
131
|
|
|
132
|
+
# Get a paginated list of delivery attempts for a specific webhook.
|
|
133
|
+
#
|
|
134
|
+
# Use this to:
|
|
135
|
+
#
|
|
136
|
+
# - Monitor webhook health and delivery success rate
|
|
137
|
+
# - Debug failed deliveries
|
|
138
|
+
# - Find specific events to replay
|
|
139
|
+
#
|
|
140
|
+
# **Filtering:**
|
|
141
|
+
#
|
|
142
|
+
# - Filter by success/failure to find problematic deliveries
|
|
143
|
+
# - Filter by event type to find specific events
|
|
144
|
+
# - Filter by time range for debugging recent issues
|
|
145
|
+
#
|
|
146
|
+
# **Retry behavior:** Failed deliveries are automatically retried with exponential
|
|
147
|
+
# backoff over ~3 days. Check `willRetry` to see if more attempts are scheduled.
|
|
148
|
+
#
|
|
149
|
+
# @overload list_deliveries(webhook_id, after: nil, before: nil, event: nil, page: nil, per_page: nil, success: nil, request_options: {})
|
|
150
|
+
#
|
|
151
|
+
# @param webhook_id [String] Webhook ID or UUID
|
|
152
|
+
#
|
|
153
|
+
# @param after [Integer] Only deliveries after this Unix timestamp
|
|
154
|
+
#
|
|
155
|
+
# @param before [Integer] Only deliveries before this Unix timestamp
|
|
156
|
+
#
|
|
157
|
+
# @param event [Symbol, ArkEmail::Models::WebhookListDeliveriesParams::Event] Filter by event type
|
|
158
|
+
#
|
|
159
|
+
# @param page [Integer] Page number (default 1)
|
|
160
|
+
#
|
|
161
|
+
# @param per_page [Integer] Items per page (default 30, max 100)
|
|
162
|
+
#
|
|
163
|
+
# @param success [Boolean] Filter by delivery success (true = 2xx response, false = non-2xx or error)
|
|
164
|
+
#
|
|
165
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
166
|
+
#
|
|
167
|
+
# @return [ArkEmail::Models::WebhookListDeliveriesResponse]
|
|
168
|
+
#
|
|
169
|
+
# @see ArkEmail::Models::WebhookListDeliveriesParams
|
|
170
|
+
def list_deliveries(webhook_id, params = {})
|
|
171
|
+
parsed, options = ArkEmail::WebhookListDeliveriesParams.dump_request(params)
|
|
172
|
+
@client.request(
|
|
173
|
+
method: :get,
|
|
174
|
+
path: ["webhooks/%1$s/deliveries", webhook_id],
|
|
175
|
+
query: parsed.transform_keys(per_page: "perPage"),
|
|
176
|
+
model: ArkEmail::Models::WebhookListDeliveriesResponse,
|
|
177
|
+
options: options
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Re-send a webhook delivery to your endpoint.
|
|
182
|
+
#
|
|
183
|
+
# **Use cases:**
|
|
184
|
+
#
|
|
185
|
+
# - Recover from transient failures after fixing your endpoint
|
|
186
|
+
# - Test endpoint changes with real historical data
|
|
187
|
+
# - Retry deliveries that failed due to downtime
|
|
188
|
+
#
|
|
189
|
+
# **How it works:**
|
|
190
|
+
#
|
|
191
|
+
# 1. Fetches the original payload from the delivery
|
|
192
|
+
# 2. Generates a new timestamp and signature
|
|
193
|
+
# 3. Sends to your webhook URL immediately
|
|
194
|
+
# 4. Returns the result (does not queue for retry if it fails)
|
|
195
|
+
#
|
|
196
|
+
# **Note:** The webhook must be enabled to replay deliveries.
|
|
197
|
+
#
|
|
198
|
+
# @overload replay_delivery(delivery_id, webhook_id:, request_options: {})
|
|
199
|
+
#
|
|
200
|
+
# @param delivery_id [String] Delivery ID (UUID) to replay
|
|
201
|
+
#
|
|
202
|
+
# @param webhook_id [String] Webhook ID or UUID
|
|
203
|
+
#
|
|
204
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
205
|
+
#
|
|
206
|
+
# @return [ArkEmail::Models::WebhookReplayDeliveryResponse]
|
|
207
|
+
#
|
|
208
|
+
# @see ArkEmail::Models::WebhookReplayDeliveryParams
|
|
209
|
+
def replay_delivery(delivery_id, params)
|
|
210
|
+
parsed, options = ArkEmail::WebhookReplayDeliveryParams.dump_request(params)
|
|
211
|
+
webhook_id =
|
|
212
|
+
parsed.delete(:webhook_id) do
|
|
213
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
214
|
+
end
|
|
215
|
+
@client.request(
|
|
216
|
+
method: :post,
|
|
217
|
+
path: ["webhooks/%1$s/deliveries/%2$s/replay", webhook_id, delivery_id],
|
|
218
|
+
model: ArkEmail::Models::WebhookReplayDeliveryResponse,
|
|
219
|
+
options: options
|
|
220
|
+
)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
# Get detailed information about a specific webhook delivery attempt.
|
|
224
|
+
#
|
|
225
|
+
# Returns:
|
|
226
|
+
#
|
|
227
|
+
# - The complete request payload that was sent
|
|
228
|
+
# - Request headers including the signature
|
|
229
|
+
# - Response status code and body from your endpoint
|
|
230
|
+
# - Timing information
|
|
231
|
+
#
|
|
232
|
+
# Use this to debug why a delivery failed or verify what data was sent.
|
|
233
|
+
#
|
|
234
|
+
# @overload retrieve_delivery(delivery_id, webhook_id:, request_options: {})
|
|
235
|
+
#
|
|
236
|
+
# @param delivery_id [String] Delivery ID (UUID)
|
|
237
|
+
#
|
|
238
|
+
# @param webhook_id [String] Webhook ID or UUID
|
|
239
|
+
#
|
|
240
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
241
|
+
#
|
|
242
|
+
# @return [ArkEmail::Models::WebhookRetrieveDeliveryResponse]
|
|
243
|
+
#
|
|
244
|
+
# @see ArkEmail::Models::WebhookRetrieveDeliveryParams
|
|
245
|
+
def retrieve_delivery(delivery_id, params)
|
|
246
|
+
parsed, options = ArkEmail::WebhookRetrieveDeliveryParams.dump_request(params)
|
|
247
|
+
webhook_id =
|
|
248
|
+
parsed.delete(:webhook_id) do
|
|
249
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
250
|
+
end
|
|
251
|
+
@client.request(
|
|
252
|
+
method: :get,
|
|
253
|
+
path: ["webhooks/%1$s/deliveries/%2$s", webhook_id, delivery_id],
|
|
254
|
+
model: ArkEmail::Models::WebhookRetrieveDeliveryResponse,
|
|
255
|
+
options: options
|
|
256
|
+
)
|
|
257
|
+
end
|
|
258
|
+
|
|
132
259
|
# Send a test payload to your webhook endpoint and verify it receives the data
|
|
133
260
|
# correctly.
|
|
134
261
|
#
|
data/lib/ark_email/version.rb
CHANGED
data/lib/ark_email.rb
CHANGED
|
@@ -106,8 +106,14 @@ require_relative "ark_email/models/webhook_create_params"
|
|
|
106
106
|
require_relative "ark_email/models/webhook_create_response"
|
|
107
107
|
require_relative "ark_email/models/webhook_delete_params"
|
|
108
108
|
require_relative "ark_email/models/webhook_delete_response"
|
|
109
|
+
require_relative "ark_email/models/webhook_list_deliveries_params"
|
|
110
|
+
require_relative "ark_email/models/webhook_list_deliveries_response"
|
|
109
111
|
require_relative "ark_email/models/webhook_list_params"
|
|
110
112
|
require_relative "ark_email/models/webhook_list_response"
|
|
113
|
+
require_relative "ark_email/models/webhook_replay_delivery_params"
|
|
114
|
+
require_relative "ark_email/models/webhook_replay_delivery_response"
|
|
115
|
+
require_relative "ark_email/models/webhook_retrieve_delivery_params"
|
|
116
|
+
require_relative "ark_email/models/webhook_retrieve_delivery_response"
|
|
111
117
|
require_relative "ark_email/models/webhook_retrieve_params"
|
|
112
118
|
require_relative "ark_email/models/webhook_retrieve_response"
|
|
113
119
|
require_relative "ark_email/models/webhook_test_params"
|
|
@@ -82,9 +82,18 @@ module ArkEmail
|
|
|
82
82
|
#
|
|
83
83
|
# This is useful for correlating webhook events with your internal systems (e.g.,
|
|
84
84
|
# user IDs, order IDs, campaign identifiers).
|
|
85
|
+
#
|
|
86
|
+
# **Validation Rules:**
|
|
87
|
+
#
|
|
88
|
+
# - Maximum 10 keys per email
|
|
89
|
+
# - Keys: 1-40 characters, must start with a letter, only alphanumeric and
|
|
90
|
+
# underscores (`^[a-zA-Z][a-zA-Z0-9_]*$`)
|
|
91
|
+
# - Values: 1-500 characters, no control characters (newlines, tabs, etc.)
|
|
92
|
+
# - Total size: 4KB maximum (JSON-encoded)
|
|
85
93
|
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
86
94
|
attr_accessor :metadata
|
|
87
95
|
|
|
96
|
+
# Tag for categorization and filtering
|
|
88
97
|
sig { returns(T.nilable(String)) }
|
|
89
98
|
attr_accessor :tag
|
|
90
99
|
|
|
@@ -115,7 +124,16 @@ module ArkEmail
|
|
|
115
124
|
#
|
|
116
125
|
# This is useful for correlating webhook events with your internal systems (e.g.,
|
|
117
126
|
# user IDs, order IDs, campaign identifiers).
|
|
127
|
+
#
|
|
128
|
+
# **Validation Rules:**
|
|
129
|
+
#
|
|
130
|
+
# - Maximum 10 keys per email
|
|
131
|
+
# - Keys: 1-40 characters, must start with a letter, only alphanumeric and
|
|
132
|
+
# underscores (`^[a-zA-Z][a-zA-Z0-9_]*$`)
|
|
133
|
+
# - Values: 1-500 characters, no control characters (newlines, tabs, etc.)
|
|
134
|
+
# - Total size: 4KB maximum (JSON-encoded)
|
|
118
135
|
metadata: nil,
|
|
136
|
+
# Tag for categorization and filtering
|
|
119
137
|
tag: nil,
|
|
120
138
|
text: nil
|
|
121
139
|
)
|
|
@@ -64,6 +64,14 @@ module ArkEmail
|
|
|
64
64
|
#
|
|
65
65
|
# This is useful for correlating webhook events with your internal systems (e.g.,
|
|
66
66
|
# user IDs, order IDs, campaign identifiers).
|
|
67
|
+
#
|
|
68
|
+
# **Validation Rules:**
|
|
69
|
+
#
|
|
70
|
+
# - Maximum 10 keys per email
|
|
71
|
+
# - Keys: 1-40 characters, must start with a letter, only alphanumeric and
|
|
72
|
+
# underscores (`^[a-zA-Z][a-zA-Z0-9_]*$`)
|
|
73
|
+
# - Values: 1-500 characters, no control characters (newlines, tabs, etc.)
|
|
74
|
+
# - Total size: 4KB maximum (JSON-encoded)
|
|
67
75
|
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
68
76
|
attr_accessor :metadata
|
|
69
77
|
|
|
@@ -141,6 +149,14 @@ module ArkEmail
|
|
|
141
149
|
#
|
|
142
150
|
# This is useful for correlating webhook events with your internal systems (e.g.,
|
|
143
151
|
# user IDs, order IDs, campaign identifiers).
|
|
152
|
+
#
|
|
153
|
+
# **Validation Rules:**
|
|
154
|
+
#
|
|
155
|
+
# - Maximum 10 keys per email
|
|
156
|
+
# - Keys: 1-40 characters, must start with a letter, only alphanumeric and
|
|
157
|
+
# underscores (`^[a-zA-Z][a-zA-Z0-9_]*$`)
|
|
158
|
+
# - Values: 1-500 characters, no control characters (newlines, tabs, etc.)
|
|
159
|
+
# - Total size: 4KB maximum (JSON-encoded)
|
|
144
160
|
metadata: nil,
|
|
145
161
|
# Reply-to address (accepts null)
|
|
146
162
|
reply_to: nil,
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class WebhookListDeliveriesParams < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
extend ArkEmail::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include ArkEmail::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
ArkEmail::WebhookListDeliveriesParams,
|
|
13
|
+
ArkEmail::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Only deliveries after this Unix timestamp
|
|
18
|
+
sig { returns(T.nilable(Integer)) }
|
|
19
|
+
attr_reader :after
|
|
20
|
+
|
|
21
|
+
sig { params(after: Integer).void }
|
|
22
|
+
attr_writer :after
|
|
23
|
+
|
|
24
|
+
# Only deliveries before this Unix timestamp
|
|
25
|
+
sig { returns(T.nilable(Integer)) }
|
|
26
|
+
attr_reader :before
|
|
27
|
+
|
|
28
|
+
sig { params(before: Integer).void }
|
|
29
|
+
attr_writer :before
|
|
30
|
+
|
|
31
|
+
# Filter by event type
|
|
32
|
+
sig do
|
|
33
|
+
returns(
|
|
34
|
+
T.nilable(ArkEmail::WebhookListDeliveriesParams::Event::OrSymbol)
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
attr_reader :event
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
event: ArkEmail::WebhookListDeliveriesParams::Event::OrSymbol
|
|
42
|
+
).void
|
|
43
|
+
end
|
|
44
|
+
attr_writer :event
|
|
45
|
+
|
|
46
|
+
# Page number (default 1)
|
|
47
|
+
sig { returns(T.nilable(Integer)) }
|
|
48
|
+
attr_reader :page
|
|
49
|
+
|
|
50
|
+
sig { params(page: Integer).void }
|
|
51
|
+
attr_writer :page
|
|
52
|
+
|
|
53
|
+
# Items per page (default 30, max 100)
|
|
54
|
+
sig { returns(T.nilable(Integer)) }
|
|
55
|
+
attr_reader :per_page
|
|
56
|
+
|
|
57
|
+
sig { params(per_page: Integer).void }
|
|
58
|
+
attr_writer :per_page
|
|
59
|
+
|
|
60
|
+
# Filter by delivery success (true = 2xx response, false = non-2xx or error)
|
|
61
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
62
|
+
attr_reader :success
|
|
63
|
+
|
|
64
|
+
sig { params(success: T::Boolean).void }
|
|
65
|
+
attr_writer :success
|
|
66
|
+
|
|
67
|
+
sig do
|
|
68
|
+
params(
|
|
69
|
+
after: Integer,
|
|
70
|
+
before: Integer,
|
|
71
|
+
event: ArkEmail::WebhookListDeliveriesParams::Event::OrSymbol,
|
|
72
|
+
page: Integer,
|
|
73
|
+
per_page: Integer,
|
|
74
|
+
success: T::Boolean,
|
|
75
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
76
|
+
).returns(T.attached_class)
|
|
77
|
+
end
|
|
78
|
+
def self.new(
|
|
79
|
+
# Only deliveries after this Unix timestamp
|
|
80
|
+
after: nil,
|
|
81
|
+
# Only deliveries before this Unix timestamp
|
|
82
|
+
before: nil,
|
|
83
|
+
# Filter by event type
|
|
84
|
+
event: nil,
|
|
85
|
+
# Page number (default 1)
|
|
86
|
+
page: nil,
|
|
87
|
+
# Items per page (default 30, max 100)
|
|
88
|
+
per_page: nil,
|
|
89
|
+
# Filter by delivery success (true = 2xx response, false = non-2xx or error)
|
|
90
|
+
success: nil,
|
|
91
|
+
request_options: {}
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
sig do
|
|
96
|
+
override.returns(
|
|
97
|
+
{
|
|
98
|
+
after: Integer,
|
|
99
|
+
before: Integer,
|
|
100
|
+
event: ArkEmail::WebhookListDeliveriesParams::Event::OrSymbol,
|
|
101
|
+
page: Integer,
|
|
102
|
+
per_page: Integer,
|
|
103
|
+
success: T::Boolean,
|
|
104
|
+
request_options: ArkEmail::RequestOptions
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
def to_hash
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Filter by event type
|
|
112
|
+
module Event
|
|
113
|
+
extend ArkEmail::Internal::Type::Enum
|
|
114
|
+
|
|
115
|
+
TaggedSymbol =
|
|
116
|
+
T.type_alias do
|
|
117
|
+
T.all(Symbol, ArkEmail::WebhookListDeliveriesParams::Event)
|
|
118
|
+
end
|
|
119
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
120
|
+
|
|
121
|
+
MESSAGE_SENT =
|
|
122
|
+
T.let(
|
|
123
|
+
:MessageSent,
|
|
124
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
125
|
+
)
|
|
126
|
+
MESSAGE_DELAYED =
|
|
127
|
+
T.let(
|
|
128
|
+
:MessageDelayed,
|
|
129
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
130
|
+
)
|
|
131
|
+
MESSAGE_DELIVERY_FAILED =
|
|
132
|
+
T.let(
|
|
133
|
+
:MessageDeliveryFailed,
|
|
134
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
135
|
+
)
|
|
136
|
+
MESSAGE_HELD =
|
|
137
|
+
T.let(
|
|
138
|
+
:MessageHeld,
|
|
139
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
140
|
+
)
|
|
141
|
+
MESSAGE_BOUNCED =
|
|
142
|
+
T.let(
|
|
143
|
+
:MessageBounced,
|
|
144
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
145
|
+
)
|
|
146
|
+
MESSAGE_LINK_CLICKED =
|
|
147
|
+
T.let(
|
|
148
|
+
:MessageLinkClicked,
|
|
149
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
150
|
+
)
|
|
151
|
+
MESSAGE_LOADED =
|
|
152
|
+
T.let(
|
|
153
|
+
:MessageLoaded,
|
|
154
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
155
|
+
)
|
|
156
|
+
DOMAIN_DNS_ERROR =
|
|
157
|
+
T.let(
|
|
158
|
+
:DomainDNSError,
|
|
159
|
+
ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
sig do
|
|
163
|
+
override.returns(
|
|
164
|
+
T::Array[ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol]
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
def self.values
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|