ark-email 0.9.0 → 0.11.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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +1 -1
  4. data/lib/ark_email/models/email_retrieve_deliveries_response.rb +148 -8
  5. data/lib/ark_email/models/webhook_create_params.rb +2 -0
  6. data/lib/ark_email/models/webhook_create_response.rb +2 -0
  7. data/lib/ark_email/models/webhook_list_deliveries_params.rb +2 -0
  8. data/lib/ark_email/models/webhook_list_deliveries_response.rb +2 -0
  9. data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +2 -0
  10. data/lib/ark_email/models/webhook_retrieve_response.rb +2 -0
  11. data/lib/ark_email/models/webhook_test_params.rb +2 -0
  12. data/lib/ark_email/models/webhook_update_response.rb +2 -0
  13. data/lib/ark_email/resources/emails.rb +41 -3
  14. data/lib/ark_email/version.rb +1 -1
  15. data/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +247 -10
  16. data/rbi/ark_email/models/webhook_create_params.rbi +10 -0
  17. data/rbi/ark_email/models/webhook_create_response.rbi +10 -0
  18. data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +10 -0
  19. data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +10 -0
  20. data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +10 -0
  21. data/rbi/ark_email/models/webhook_retrieve_response.rbi +10 -0
  22. data/rbi/ark_email/models/webhook_test_params.rbi +10 -0
  23. data/rbi/ark_email/models/webhook_update_response.rbi +10 -0
  24. data/rbi/ark_email/resources/emails.rbi +45 -3
  25. data/sig/ark_email/models/email_retrieve_deliveries_response.rbs +85 -7
  26. data/sig/ark_email/models/webhook_create_params.rbs +4 -0
  27. data/sig/ark_email/models/webhook_create_response.rbs +4 -0
  28. data/sig/ark_email/models/webhook_list_deliveries_params.rbs +4 -0
  29. data/sig/ark_email/models/webhook_list_deliveries_response.rbs +4 -0
  30. data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +4 -0
  31. data/sig/ark_email/models/webhook_retrieve_response.rbs +4 -0
  32. data/sig/ark_email/models/webhook_test_params.rbs +4 -0
  33. data/sig/ark_email/models/webhook_update_response.rbs +4 -0
  34. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee70352e87d7586234884d318276da0a01b94c7a8cc47e795d37fa77571a0d17
4
- data.tar.gz: f469a30b7c8ed720169c6b6c613eb8279789e82505581d1584d930c67d678784
3
+ metadata.gz: d612dc78e03726f7930429ab6d7cf9826145b9bf42d5049e8a5ecea9db3ad7b8
4
+ data.tar.gz: 33a733a57efb4084871fde7e35c7913c836eecc708a40af1210171f91de390c7
5
5
  SHA512:
6
- metadata.gz: 176ab6feb912821c518e32aea92ff9c3b7acf82e25ef4382aca2a9101bc1f5339c2bd9e76f89c9cf6e0feb0313a635101ddb5169b70232f2fa68a046f279cdf2
7
- data.tar.gz: 9244988b7e44d174dd35d7b0f005574b37acd10aae831db4170c15725d00d7c22d37ab705f5f7cfbfe49e199f2f74b40680e055c3f52edf7ebd9b92832b71396
6
+ metadata.gz: 4487eebe13f6bc9f8589ae754827ea7f0a62a9796964a1f938272f16b1dadce28b49efb4d836ab90b0d68742c2bfc3eca6b3ec4376df87255c56db9f75301dee
7
+ data.tar.gz: 3f9798c5f37e08efcbdc8f6723258412fe55f91bcb1f71b7440d204d1b5800ce75acbc6b0c0e7192c73b742b3729e343013869c3758fb1e44a399f8787ef0020
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.0 (2026-01-22)
4
+
5
+ Full Changelog: [v0.10.0...v0.11.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.10.0...v0.11.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([451702c](https://github.com/ArkHQ-io/ark-ruby/commit/451702c378dd03df067d91d5a6b86b5c3af6e1d5))
10
+ * **api:** api update ([94327b4](https://github.com/ArkHQ-io/ark-ruby/commit/94327b43c646e4bf7d8ae97a6f9702d8e3768953))
11
+ * **api:** fix incorrect webhook payload examples ([09c481a](https://github.com/ArkHQ-io/ark-ruby/commit/09c481add3ef93c3c494403d0abce3fd09a1083d))
12
+ * **api:** manual updates ([d166dbe](https://github.com/ArkHQ-io/ark-ruby/commit/d166dbebf3aa3218cf3488cabadb957012114d01))
13
+
14
+ ## 0.10.0 (2026-01-22)
15
+
16
+ Full Changelog: [v0.9.0...v0.10.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.9.0...v0.10.0)
17
+
18
+ ### Features
19
+
20
+ * **api:** improve GET delivery attempts ([863df8e](https://github.com/ArkHQ-io/ark-ruby/commit/863df8e1ca7e4e29f44fdd1ffb9583fc71e5245e))
21
+
3
22
  ## 0.9.0 (2026-01-21)
4
23
 
5
24
  Full Changelog: [v0.8.0...v0.9.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.8.0...v0.9.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 "ark-email", "~> 0.9.0"
29
+ gem "ark-email", "~> 0.11.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -26,30 +26,72 @@ module ArkEmail
26
26
 
27
27
  # @see ArkEmail::Models::EmailRetrieveDeliveriesResponse#data
28
28
  class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute can_retry_manually
30
+ # Whether the message can be manually retried via `POST /emails/{emailId}/retry`.
31
+ # `true` when the raw message content is still available (not expired). Messages
32
+ # older than the retention period cannot be retried.
33
+ #
34
+ # @return [Boolean]
35
+ required :can_retry_manually, ArkEmail::Internal::Type::Boolean, api_name: :canRetryManually
36
+
29
37
  # @!attribute deliveries
38
+ # Chronological list of delivery attempts for this message. Each attempt includes
39
+ # SMTP response codes and timestamps.
30
40
  #
31
41
  # @return [Array<ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery>]
32
42
  required :deliveries,
33
43
  -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery] }
34
44
 
35
45
  # @!attribute message_id
36
- # Internal message ID
46
+ # Internal numeric message ID
37
47
  #
38
- # @return [String]
39
- required :message_id, String, api_name: :messageId
48
+ # @return [Integer]
49
+ required :message_id, Integer, api_name: :messageId
40
50
 
41
51
  # @!attribute message_token
42
- # Message token
52
+ # Unique message token for API references
43
53
  #
44
54
  # @return [String]
45
55
  required :message_token, String, api_name: :messageToken
46
56
 
47
- # @!method initialize(deliveries:, message_id:, message_token:)
48
- # @param deliveries [Array<ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery>]
57
+ # @!attribute retry_state
58
+ # Information about the current retry state of a message that is queued for
59
+ # delivery. Only present when the message is in the delivery queue.
49
60
  #
50
- # @param message_id [String] Internal message ID
61
+ # @return [ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState, nil]
62
+ required :retry_state,
63
+ -> { ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState },
64
+ api_name: :retryState,
65
+ nil?: true
66
+
67
+ # @!attribute status
68
+ # Current message status (lowercase). Possible values:
69
+ #
70
+ # - `pending` - Initial state, awaiting first delivery attempt
71
+ # - `sent` - Successfully delivered
72
+ # - `softfail` - Temporary failure, will retry automatically
73
+ # - `hardfail` - Permanent failure, will not retry
74
+ # - `held` - Held for manual review (suppression list, etc.)
75
+ # - `bounced` - Bounced by recipient server
51
76
  #
52
- # @param message_token [String] Message token
77
+ # @return [Symbol, ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status]
78
+ required :status, enum: -> { ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status }
79
+
80
+ # @!method initialize(can_retry_manually:, deliveries:, message_id:, message_token:, retry_state:, status:)
81
+ # Some parameter documentations has been truncated, see
82
+ # {ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data} for more details.
83
+ #
84
+ # @param can_retry_manually [Boolean] Whether the message can be manually retried via `POST /emails/{emailId}/retry`.
85
+ #
86
+ # @param deliveries [Array<ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery>] Chronological list of delivery attempts for this message.
87
+ #
88
+ # @param message_id [Integer] Internal numeric message ID
89
+ #
90
+ # @param message_token [String] Unique message token for API references
91
+ #
92
+ # @param retry_state [ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState, nil] Information about the current retry state of a message that is queued for delive
93
+ #
94
+ # @param status [Symbol, ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status] Current message status (lowercase). Possible values:
53
95
 
54
96
  class Delivery < ArkEmail::Internal::Type::BaseModel
55
97
  # @!attribute id
@@ -117,6 +159,104 @@ module ArkEmail
117
159
  #
118
160
  # @param sent_with_ssl [Boolean] Whether TLS was used
119
161
  end
162
+
163
+ # @see ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data#retry_state
164
+ class RetryState < ArkEmail::Internal::Type::BaseModel
165
+ # @!attribute attempt
166
+ # Current attempt number (0-indexed). The first delivery attempt is 0, the first
167
+ # retry is 1, and so on.
168
+ #
169
+ # @return [Integer]
170
+ required :attempt, Integer
171
+
172
+ # @!attribute attempts_remaining
173
+ # Number of attempts remaining before the message is hard-failed. Calculated as
174
+ # `maxAttempts - attempt`.
175
+ #
176
+ # @return [Integer]
177
+ required :attempts_remaining, Integer, api_name: :attemptsRemaining
178
+
179
+ # @!attribute manual
180
+ # Whether this queue entry was created by a manual retry request. Manual retries
181
+ # bypass certain hold conditions like suppression lists.
182
+ #
183
+ # @return [Boolean]
184
+ required :manual, ArkEmail::Internal::Type::Boolean
185
+
186
+ # @!attribute max_attempts
187
+ # Maximum number of delivery attempts before the message is hard-failed.
188
+ # Configured at the server level.
189
+ #
190
+ # @return [Integer]
191
+ required :max_attempts, Integer, api_name: :maxAttempts
192
+
193
+ # @!attribute processing
194
+ # Whether the message is currently being processed by a delivery worker. When
195
+ # `true`, the message is actively being sent.
196
+ #
197
+ # @return [Boolean]
198
+ required :processing, ArkEmail::Internal::Type::Boolean
199
+
200
+ # @!attribute next_retry_at
201
+ # Unix timestamp of when the next retry attempt is scheduled. `null` if the
202
+ # message is ready for immediate processing or currently being processed.
203
+ #
204
+ # @return [Float, nil]
205
+ optional :next_retry_at, Float, api_name: :nextRetryAt, nil?: true
206
+
207
+ # @!attribute next_retry_at_iso
208
+ # ISO 8601 formatted timestamp of the next retry attempt. `null` if the message is
209
+ # ready for immediate processing.
210
+ #
211
+ # @return [Time, nil]
212
+ optional :next_retry_at_iso, Time, api_name: :nextRetryAtIso, nil?: true
213
+
214
+ # @!method initialize(attempt:, attempts_remaining:, manual:, max_attempts:, processing:, next_retry_at: nil, next_retry_at_iso: nil)
215
+ # Some parameter documentations has been truncated, see
216
+ # {ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState} for more
217
+ # details.
218
+ #
219
+ # Information about the current retry state of a message that is queued for
220
+ # delivery. Only present when the message is in the delivery queue.
221
+ #
222
+ # @param attempt [Integer] Current attempt number (0-indexed). The first delivery attempt is 0,
223
+ #
224
+ # @param attempts_remaining [Integer] Number of attempts remaining before the message is hard-failed.
225
+ #
226
+ # @param manual [Boolean] Whether this queue entry was created by a manual retry request.
227
+ #
228
+ # @param max_attempts [Integer] Maximum number of delivery attempts before the message is hard-failed.
229
+ #
230
+ # @param processing [Boolean] Whether the message is currently being processed by a delivery worker.
231
+ #
232
+ # @param next_retry_at [Float, nil] Unix timestamp of when the next retry attempt is scheduled.
233
+ #
234
+ # @param next_retry_at_iso [Time, nil] ISO 8601 formatted timestamp of the next retry attempt.
235
+ end
236
+
237
+ # Current message status (lowercase). Possible values:
238
+ #
239
+ # - `pending` - Initial state, awaiting first delivery attempt
240
+ # - `sent` - Successfully delivered
241
+ # - `softfail` - Temporary failure, will retry automatically
242
+ # - `hardfail` - Permanent failure, will not retry
243
+ # - `held` - Held for manual review (suppression list, etc.)
244
+ # - `bounced` - Bounced by recipient server
245
+ #
246
+ # @see ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data#status
247
+ module Status
248
+ extend ArkEmail::Internal::Type::Enum
249
+
250
+ PENDING = :pending
251
+ SENT = :sent
252
+ SOFTFAIL = :softfail
253
+ HARDFAIL = :hardfail
254
+ HELD = :held
255
+ BOUNCED = :bounced
256
+
257
+ # @!method self.values
258
+ # @return [Array<Symbol>]
259
+ end
120
260
  end
121
261
  end
122
262
  end
@@ -75,6 +75,8 @@ module ArkEmail
75
75
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
76
76
  MESSAGE_LOADED = :MessageLoaded
77
77
  DOMAIN_DNS_ERROR = :DomainDNSError
78
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
79
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
78
80
 
79
81
  # @!method self.values
80
82
  # @return [Array<Symbol>]
@@ -101,6 +101,8 @@ module ArkEmail
101
101
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
102
102
  MESSAGE_LOADED = :MessageLoaded
103
103
  DOMAIN_DNS_ERROR = :DomainDNSError
104
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
105
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
104
106
 
105
107
  # @!method self.values
106
108
  # @return [Array<Symbol>]
@@ -70,6 +70,8 @@ module ArkEmail
70
70
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
71
71
  MESSAGE_LOADED = :MessageLoaded
72
72
  DOMAIN_DNS_ERROR = :DomainDNSError
73
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
74
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
73
75
 
74
76
  # @!method self.values
75
77
  # @return [Array<Symbol>]
@@ -144,6 +144,8 @@ module ArkEmail
144
144
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
145
145
  MESSAGE_LOADED = :MessageLoaded
146
146
  DOMAIN_DNS_ERROR = :DomainDNSError
147
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
148
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
147
149
 
148
150
  # @!method self.values
149
151
  # @return [Array<Symbol>]
@@ -144,6 +144,8 @@ module ArkEmail
144
144
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
145
145
  MESSAGE_LOADED = :MessageLoaded
146
146
  DOMAIN_DNS_ERROR = :DomainDNSError
147
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
148
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
147
149
 
148
150
  # @!method self.values
149
151
  # @return [Array<Symbol>]
@@ -101,6 +101,8 @@ module ArkEmail
101
101
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
102
102
  MESSAGE_LOADED = :MessageLoaded
103
103
  DOMAIN_DNS_ERROR = :DomainDNSError
104
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
105
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
104
106
 
105
107
  # @!method self.values
106
108
  # @return [Array<Symbol>]
@@ -30,6 +30,8 @@ module ArkEmail
30
30
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
31
31
  MESSAGE_LOADED = :MessageLoaded
32
32
  DOMAIN_DNS_ERROR = :DomainDNSError
33
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
34
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
33
35
 
34
36
  # @!method self.values
35
37
  # @return [Array<Symbol>]
@@ -101,6 +101,8 @@ module ArkEmail
101
101
  MESSAGE_LINK_CLICKED = :MessageLinkClicked
102
102
  MESSAGE_LOADED = :MessageLoaded
103
103
  DOMAIN_DNS_ERROR = :DomainDNSError
104
+ SEND_LIMIT_APPROACHING = :SendLimitApproaching
105
+ SEND_LIMIT_EXCEEDED = :SendLimitExceeded
104
106
 
105
107
  # @!method self.values
106
108
  # @return [Array<Symbol>]
@@ -82,12 +82,50 @@ module ArkEmail
82
82
  )
83
83
  end
84
84
 
85
- # Get the history of delivery attempts for an email, including SMTP response codes
86
- # and timestamps.
85
+ # Some parameter documentations has been truncated, see
86
+ # {ArkEmail::Models::EmailRetrieveDeliveriesParams} for more details.
87
+ #
88
+ # Get the complete delivery history for an email, including SMTP response codes,
89
+ # timestamps, and current retry state.
90
+ #
91
+ # ## Response Fields
92
+ #
93
+ # ### Status
94
+ #
95
+ # The current status of the email:
96
+ #
97
+ # - `pending` - Awaiting first delivery attempt
98
+ # - `sent` - Successfully delivered to recipient server
99
+ # - `softfail` - Temporary failure, automatic retry scheduled
100
+ # - `hardfail` - Permanent failure, will not retry
101
+ # - `held` - Held for manual review
102
+ # - `bounced` - Bounced by recipient server
103
+ #
104
+ # ### Retry State
105
+ #
106
+ # When the email is in the delivery queue (`pending` or `softfail` status),
107
+ # `retryState` provides information about the retry schedule:
108
+ #
109
+ # - `attempt` - Current attempt number (0 = first attempt)
110
+ # - `maxAttempts` - Maximum attempts before hard-fail (typically 18)
111
+ # - `attemptsRemaining` - Attempts left before hard-fail
112
+ # - `nextRetryAt` - When the next retry is scheduled (Unix timestamp)
113
+ # - `processing` - Whether the email is currently being processed
114
+ # - `manual` - Whether this was triggered by a manual retry
115
+ #
116
+ # When the email has finished processing (`sent`, `hardfail`, `held`, `bounced`),
117
+ # `retryState` is `null`.
118
+ #
119
+ # ### Can Retry Manually
120
+ #
121
+ # Indicates whether you can call `POST /emails/{emailId}/retry` to manually retry
122
+ # the email. This is `true` when the raw message content is still available (not
123
+ # expired due to retention policy).
87
124
  #
88
125
  # @overload retrieve_deliveries(email_id, request_options: {})
89
126
  #
90
- # @param email_id [String]
127
+ # @param email_id [String] Email identifier. Accepts multiple formats:
128
+ #
91
129
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
92
130
  #
93
131
  # @return [ArkEmail::Models::EmailRetrieveDeliveriesResponse]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ArkEmail
4
- VERSION = "0.9.0"
4
+ VERSION = "0.11.0"
5
5
  end
@@ -61,6 +61,14 @@ module ArkEmail
61
61
  )
62
62
  end
63
63
 
64
+ # Whether the message can be manually retried via `POST /emails/{emailId}/retry`.
65
+ # `true` when the raw message content is still available (not expired). Messages
66
+ # older than the retention period cannot be retried.
67
+ sig { returns(T::Boolean) }
68
+ attr_accessor :can_retry_manually
69
+
70
+ # Chronological list of delivery attempts for this message. Each attempt includes
71
+ # SMTP response codes and timestamps.
64
72
  sig do
65
73
  returns(
66
74
  T::Array[
@@ -70,42 +78,110 @@ module ArkEmail
70
78
  end
71
79
  attr_accessor :deliveries
72
80
 
73
- # Internal message ID
74
- sig { returns(String) }
81
+ # Internal numeric message ID
82
+ sig { returns(Integer) }
75
83
  attr_accessor :message_id
76
84
 
77
- # Message token
85
+ # Unique message token for API references
78
86
  sig { returns(String) }
79
87
  attr_accessor :message_token
80
88
 
89
+ # Information about the current retry state of a message that is queued for
90
+ # delivery. Only present when the message is in the delivery queue.
91
+ sig do
92
+ returns(
93
+ T.nilable(
94
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState
95
+ )
96
+ )
97
+ end
98
+ attr_reader :retry_state
99
+
100
+ sig do
101
+ params(
102
+ retry_state:
103
+ T.nilable(
104
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState::OrHash
105
+ )
106
+ ).void
107
+ end
108
+ attr_writer :retry_state
109
+
110
+ # Current message status (lowercase). Possible values:
111
+ #
112
+ # - `pending` - Initial state, awaiting first delivery attempt
113
+ # - `sent` - Successfully delivered
114
+ # - `softfail` - Temporary failure, will retry automatically
115
+ # - `hardfail` - Permanent failure, will not retry
116
+ # - `held` - Held for manual review (suppression list, etc.)
117
+ # - `bounced` - Bounced by recipient server
118
+ sig do
119
+ returns(
120
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
121
+ )
122
+ end
123
+ attr_accessor :status
124
+
81
125
  sig do
82
126
  params(
127
+ can_retry_manually: T::Boolean,
83
128
  deliveries:
84
129
  T::Array[
85
130
  ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::OrHash
86
131
  ],
87
- message_id: String,
88
- message_token: String
132
+ message_id: Integer,
133
+ message_token: String,
134
+ retry_state:
135
+ T.nilable(
136
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState::OrHash
137
+ ),
138
+ status:
139
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::OrSymbol
89
140
  ).returns(T.attached_class)
90
141
  end
91
142
  def self.new(
143
+ # Whether the message can be manually retried via `POST /emails/{emailId}/retry`.
144
+ # `true` when the raw message content is still available (not expired). Messages
145
+ # older than the retention period cannot be retried.
146
+ can_retry_manually:,
147
+ # Chronological list of delivery attempts for this message. Each attempt includes
148
+ # SMTP response codes and timestamps.
92
149
  deliveries:,
93
- # Internal message ID
150
+ # Internal numeric message ID
94
151
  message_id:,
95
- # Message token
96
- message_token:
152
+ # Unique message token for API references
153
+ message_token:,
154
+ # Information about the current retry state of a message that is queued for
155
+ # delivery. Only present when the message is in the delivery queue.
156
+ retry_state:,
157
+ # Current message status (lowercase). Possible values:
158
+ #
159
+ # - `pending` - Initial state, awaiting first delivery attempt
160
+ # - `sent` - Successfully delivered
161
+ # - `softfail` - Temporary failure, will retry automatically
162
+ # - `hardfail` - Permanent failure, will not retry
163
+ # - `held` - Held for manual review (suppression list, etc.)
164
+ # - `bounced` - Bounced by recipient server
165
+ status:
97
166
  )
98
167
  end
99
168
 
100
169
  sig do
101
170
  override.returns(
102
171
  {
172
+ can_retry_manually: T::Boolean,
103
173
  deliveries:
104
174
  T::Array[
105
175
  ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery
106
176
  ],
107
- message_id: String,
108
- message_token: String
177
+ message_id: Integer,
178
+ message_token: String,
179
+ retry_state:
180
+ T.nilable(
181
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState
182
+ ),
183
+ status:
184
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
109
185
  }
110
186
  )
111
187
  end
@@ -214,6 +290,167 @@ module ArkEmail
214
290
  def to_hash
215
291
  end
216
292
  end
293
+
294
+ class RetryState < ArkEmail::Internal::Type::BaseModel
295
+ OrHash =
296
+ T.type_alias do
297
+ T.any(
298
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState,
299
+ ArkEmail::Internal::AnyHash
300
+ )
301
+ end
302
+
303
+ # Current attempt number (0-indexed). The first delivery attempt is 0, the first
304
+ # retry is 1, and so on.
305
+ sig { returns(Integer) }
306
+ attr_accessor :attempt
307
+
308
+ # Number of attempts remaining before the message is hard-failed. Calculated as
309
+ # `maxAttempts - attempt`.
310
+ sig { returns(Integer) }
311
+ attr_accessor :attempts_remaining
312
+
313
+ # Whether this queue entry was created by a manual retry request. Manual retries
314
+ # bypass certain hold conditions like suppression lists.
315
+ sig { returns(T::Boolean) }
316
+ attr_accessor :manual
317
+
318
+ # Maximum number of delivery attempts before the message is hard-failed.
319
+ # Configured at the server level.
320
+ sig { returns(Integer) }
321
+ attr_accessor :max_attempts
322
+
323
+ # Whether the message is currently being processed by a delivery worker. When
324
+ # `true`, the message is actively being sent.
325
+ sig { returns(T::Boolean) }
326
+ attr_accessor :processing
327
+
328
+ # Unix timestamp of when the next retry attempt is scheduled. `null` if the
329
+ # message is ready for immediate processing or currently being processed.
330
+ sig { returns(T.nilable(Float)) }
331
+ attr_accessor :next_retry_at
332
+
333
+ # ISO 8601 formatted timestamp of the next retry attempt. `null` if the message is
334
+ # ready for immediate processing.
335
+ sig { returns(T.nilable(Time)) }
336
+ attr_accessor :next_retry_at_iso
337
+
338
+ # Information about the current retry state of a message that is queued for
339
+ # delivery. Only present when the message is in the delivery queue.
340
+ sig do
341
+ params(
342
+ attempt: Integer,
343
+ attempts_remaining: Integer,
344
+ manual: T::Boolean,
345
+ max_attempts: Integer,
346
+ processing: T::Boolean,
347
+ next_retry_at: T.nilable(Float),
348
+ next_retry_at_iso: T.nilable(Time)
349
+ ).returns(T.attached_class)
350
+ end
351
+ def self.new(
352
+ # Current attempt number (0-indexed). The first delivery attempt is 0, the first
353
+ # retry is 1, and so on.
354
+ attempt:,
355
+ # Number of attempts remaining before the message is hard-failed. Calculated as
356
+ # `maxAttempts - attempt`.
357
+ attempts_remaining:,
358
+ # Whether this queue entry was created by a manual retry request. Manual retries
359
+ # bypass certain hold conditions like suppression lists.
360
+ manual:,
361
+ # Maximum number of delivery attempts before the message is hard-failed.
362
+ # Configured at the server level.
363
+ max_attempts:,
364
+ # Whether the message is currently being processed by a delivery worker. When
365
+ # `true`, the message is actively being sent.
366
+ processing:,
367
+ # Unix timestamp of when the next retry attempt is scheduled. `null` if the
368
+ # message is ready for immediate processing or currently being processed.
369
+ next_retry_at: nil,
370
+ # ISO 8601 formatted timestamp of the next retry attempt. `null` if the message is
371
+ # ready for immediate processing.
372
+ next_retry_at_iso: nil
373
+ )
374
+ end
375
+
376
+ sig do
377
+ override.returns(
378
+ {
379
+ attempt: Integer,
380
+ attempts_remaining: Integer,
381
+ manual: T::Boolean,
382
+ max_attempts: Integer,
383
+ processing: T::Boolean,
384
+ next_retry_at: T.nilable(Float),
385
+ next_retry_at_iso: T.nilable(Time)
386
+ }
387
+ )
388
+ end
389
+ def to_hash
390
+ end
391
+ end
392
+
393
+ # Current message status (lowercase). Possible values:
394
+ #
395
+ # - `pending` - Initial state, awaiting first delivery attempt
396
+ # - `sent` - Successfully delivered
397
+ # - `softfail` - Temporary failure, will retry automatically
398
+ # - `hardfail` - Permanent failure, will not retry
399
+ # - `held` - Held for manual review (suppression list, etc.)
400
+ # - `bounced` - Bounced by recipient server
401
+ module Status
402
+ extend ArkEmail::Internal::Type::Enum
403
+
404
+ TaggedSymbol =
405
+ T.type_alias do
406
+ T.all(
407
+ Symbol,
408
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status
409
+ )
410
+ end
411
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
412
+
413
+ PENDING =
414
+ T.let(
415
+ :pending,
416
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
417
+ )
418
+ SENT =
419
+ T.let(
420
+ :sent,
421
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
422
+ )
423
+ SOFTFAIL =
424
+ T.let(
425
+ :softfail,
426
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
427
+ )
428
+ HARDFAIL =
429
+ T.let(
430
+ :hardfail,
431
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
432
+ )
433
+ HELD =
434
+ T.let(
435
+ :held,
436
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
437
+ )
438
+ BOUNCED =
439
+ T.let(
440
+ :bounced,
441
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
442
+ )
443
+
444
+ sig do
445
+ override.returns(
446
+ T::Array[
447
+ ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol
448
+ ]
449
+ )
450
+ end
451
+ def self.values
452
+ end
453
+ end
217
454
  end
218
455
  end
219
456
  end
@@ -144,6 +144,16 @@ module ArkEmail
144
144
  :DomainDNSError,
145
145
  ArkEmail::WebhookCreateParams::Event::TaggedSymbol
146
146
  )
147
+ SEND_LIMIT_APPROACHING =
148
+ T.let(
149
+ :SendLimitApproaching,
150
+ ArkEmail::WebhookCreateParams::Event::TaggedSymbol
151
+ )
152
+ SEND_LIMIT_EXCEEDED =
153
+ T.let(
154
+ :SendLimitExceeded,
155
+ ArkEmail::WebhookCreateParams::Event::TaggedSymbol
156
+ )
147
157
 
148
158
  sig do
149
159
  override.returns(
@@ -200,6 +200,16 @@ module ArkEmail
200
200
  :DomainDNSError,
201
201
  ArkEmail::Models::WebhookCreateResponse::Data::Event::TaggedSymbol
202
202
  )
203
+ SEND_LIMIT_APPROACHING =
204
+ T.let(
205
+ :SendLimitApproaching,
206
+ ArkEmail::Models::WebhookCreateResponse::Data::Event::TaggedSymbol
207
+ )
208
+ SEND_LIMIT_EXCEEDED =
209
+ T.let(
210
+ :SendLimitExceeded,
211
+ ArkEmail::Models::WebhookCreateResponse::Data::Event::TaggedSymbol
212
+ )
203
213
 
204
214
  sig do
205
215
  override.returns(
@@ -158,6 +158,16 @@ module ArkEmail
158
158
  :DomainDNSError,
159
159
  ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
160
160
  )
161
+ SEND_LIMIT_APPROACHING =
162
+ T.let(
163
+ :SendLimitApproaching,
164
+ ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
165
+ )
166
+ SEND_LIMIT_EXCEEDED =
167
+ T.let(
168
+ :SendLimitExceeded,
169
+ ArkEmail::WebhookListDeliveriesParams::Event::TaggedSymbol
170
+ )
161
171
 
162
172
  sig do
163
173
  override.returns(
@@ -240,6 +240,16 @@ module ArkEmail
240
240
  :DomainDNSError,
241
241
  ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
242
242
  )
243
+ SEND_LIMIT_APPROACHING =
244
+ T.let(
245
+ :SendLimitApproaching,
246
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
247
+ )
248
+ SEND_LIMIT_EXCEEDED =
249
+ T.let(
250
+ :SendLimitExceeded,
251
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
252
+ )
243
253
 
244
254
  sig do
245
255
  override.returns(
@@ -269,6 +269,16 @@ module ArkEmail
269
269
  :DomainDNSError,
270
270
  ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event::TaggedSymbol
271
271
  )
272
+ SEND_LIMIT_APPROACHING =
273
+ T.let(
274
+ :SendLimitApproaching,
275
+ ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event::TaggedSymbol
276
+ )
277
+ SEND_LIMIT_EXCEEDED =
278
+ T.let(
279
+ :SendLimitExceeded,
280
+ ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::Event::TaggedSymbol
281
+ )
272
282
 
273
283
  sig do
274
284
  override.returns(
@@ -202,6 +202,16 @@ module ArkEmail
202
202
  :DomainDNSError,
203
203
  ArkEmail::Models::WebhookRetrieveResponse::Data::Event::TaggedSymbol
204
204
  )
205
+ SEND_LIMIT_APPROACHING =
206
+ T.let(
207
+ :SendLimitApproaching,
208
+ ArkEmail::Models::WebhookRetrieveResponse::Data::Event::TaggedSymbol
209
+ )
210
+ SEND_LIMIT_EXCEEDED =
211
+ T.let(
212
+ :SendLimitExceeded,
213
+ ArkEmail::Models::WebhookRetrieveResponse::Data::Event::TaggedSymbol
214
+ )
205
215
 
206
216
  sig do
207
217
  override.returns(
@@ -81,6 +81,16 @@ module ArkEmail
81
81
  :DomainDNSError,
82
82
  ArkEmail::WebhookTestParams::Event::TaggedSymbol
83
83
  )
84
+ SEND_LIMIT_APPROACHING =
85
+ T.let(
86
+ :SendLimitApproaching,
87
+ ArkEmail::WebhookTestParams::Event::TaggedSymbol
88
+ )
89
+ SEND_LIMIT_EXCEEDED =
90
+ T.let(
91
+ :SendLimitExceeded,
92
+ ArkEmail::WebhookTestParams::Event::TaggedSymbol
93
+ )
84
94
 
85
95
  sig do
86
96
  override.returns(
@@ -200,6 +200,16 @@ module ArkEmail
200
200
  :DomainDNSError,
201
201
  ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
202
202
  )
203
+ SEND_LIMIT_APPROACHING =
204
+ T.let(
205
+ :SendLimitApproaching,
206
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
207
+ )
208
+ SEND_LIMIT_EXCEEDED =
209
+ T.let(
210
+ :SendLimitExceeded,
211
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
212
+ )
203
213
 
204
214
  sig do
205
215
  override.returns(
@@ -83,15 +83,57 @@ module ArkEmail
83
83
  )
84
84
  end
85
85
 
86
- # Get the history of delivery attempts for an email, including SMTP response codes
87
- # and timestamps.
86
+ # Get the complete delivery history for an email, including SMTP response codes,
87
+ # timestamps, and current retry state.
88
+ #
89
+ # ## Response Fields
90
+ #
91
+ # ### Status
92
+ #
93
+ # The current status of the email:
94
+ #
95
+ # - `pending` - Awaiting first delivery attempt
96
+ # - `sent` - Successfully delivered to recipient server
97
+ # - `softfail` - Temporary failure, automatic retry scheduled
98
+ # - `hardfail` - Permanent failure, will not retry
99
+ # - `held` - Held for manual review
100
+ # - `bounced` - Bounced by recipient server
101
+ #
102
+ # ### Retry State
103
+ #
104
+ # When the email is in the delivery queue (`pending` or `softfail` status),
105
+ # `retryState` provides information about the retry schedule:
106
+ #
107
+ # - `attempt` - Current attempt number (0 = first attempt)
108
+ # - `maxAttempts` - Maximum attempts before hard-fail (typically 18)
109
+ # - `attemptsRemaining` - Attempts left before hard-fail
110
+ # - `nextRetryAt` - When the next retry is scheduled (Unix timestamp)
111
+ # - `processing` - Whether the email is currently being processed
112
+ # - `manual` - Whether this was triggered by a manual retry
113
+ #
114
+ # When the email has finished processing (`sent`, `hardfail`, `held`, `bounced`),
115
+ # `retryState` is `null`.
116
+ #
117
+ # ### Can Retry Manually
118
+ #
119
+ # Indicates whether you can call `POST /emails/{emailId}/retry` to manually retry
120
+ # the email. This is `true` when the raw message content is still available (not
121
+ # expired due to retention policy).
88
122
  sig do
89
123
  params(
90
124
  email_id: String,
91
125
  request_options: ArkEmail::RequestOptions::OrHash
92
126
  ).returns(ArkEmail::Models::EmailRetrieveDeliveriesResponse)
93
127
  end
94
- def retrieve_deliveries(email_id, request_options: {})
128
+ def retrieve_deliveries(
129
+ # Email identifier. Accepts multiple formats:
130
+ #
131
+ # - Message ID (numeric): `12345`
132
+ # - Message token: `aBc123XyZ`
133
+ # - Combined format: `msg_12345_aBc123XyZ`
134
+ email_id,
135
+ request_options: {}
136
+ )
95
137
  end
96
138
 
97
139
  # Retry delivery of a failed or soft-bounced email. Creates a new delivery
@@ -28,28 +28,43 @@ module ArkEmail
28
28
 
29
29
  type data =
30
30
  {
31
+ can_retry_manually: bool,
31
32
  deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery],
32
- message_id: String,
33
- message_token: String
33
+ message_id: Integer,
34
+ message_token: String,
35
+ retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?,
36
+ status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status
34
37
  }
35
38
 
36
39
  class Data < ArkEmail::Internal::Type::BaseModel
40
+ attr_accessor can_retry_manually: bool
41
+
37
42
  attr_accessor deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery]
38
43
 
39
- attr_accessor message_id: String
44
+ attr_accessor message_id: Integer
40
45
 
41
46
  attr_accessor message_token: String
42
47
 
48
+ attr_accessor retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?
49
+
50
+ attr_accessor status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status
51
+
43
52
  def initialize: (
53
+ can_retry_manually: bool,
44
54
  deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery],
45
- message_id: String,
46
- message_token: String
55
+ message_id: Integer,
56
+ message_token: String,
57
+ retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?,
58
+ status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status
47
59
  ) -> void
48
60
 
49
61
  def to_hash: -> {
62
+ can_retry_manually: bool,
50
63
  deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery],
51
- message_id: String,
52
- message_token: String
64
+ message_id: Integer,
65
+ message_token: String,
66
+ retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?,
67
+ status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status
53
68
  }
54
69
 
55
70
  type delivery =
@@ -111,6 +126,69 @@ module ArkEmail
111
126
  sent_with_ssl: bool
112
127
  }
113
128
  end
129
+
130
+ type retry_state =
131
+ {
132
+ attempt: Integer,
133
+ attempts_remaining: Integer,
134
+ manual: bool,
135
+ max_attempts: Integer,
136
+ processing: bool,
137
+ next_retry_at: Float?,
138
+ next_retry_at_iso: Time?
139
+ }
140
+
141
+ class RetryState < ArkEmail::Internal::Type::BaseModel
142
+ attr_accessor attempt: Integer
143
+
144
+ attr_accessor attempts_remaining: Integer
145
+
146
+ attr_accessor manual: bool
147
+
148
+ attr_accessor max_attempts: Integer
149
+
150
+ attr_accessor processing: bool
151
+
152
+ attr_accessor next_retry_at: Float?
153
+
154
+ attr_accessor next_retry_at_iso: Time?
155
+
156
+ def initialize: (
157
+ attempt: Integer,
158
+ attempts_remaining: Integer,
159
+ manual: bool,
160
+ max_attempts: Integer,
161
+ processing: bool,
162
+ ?next_retry_at: Float?,
163
+ ?next_retry_at_iso: Time?
164
+ ) -> void
165
+
166
+ def to_hash: -> {
167
+ attempt: Integer,
168
+ attempts_remaining: Integer,
169
+ manual: bool,
170
+ max_attempts: Integer,
171
+ processing: bool,
172
+ next_retry_at: Float?,
173
+ next_retry_at_iso: Time?
174
+ }
175
+ end
176
+
177
+ type status =
178
+ :pending | :sent | :softfail | :hardfail | :held | :bounced
179
+
180
+ module Status
181
+ extend ArkEmail::Internal::Type::Enum
182
+
183
+ PENDING: :pending
184
+ SENT: :sent
185
+ SOFTFAIL: :softfail
186
+ HARDFAIL: :hardfail
187
+ HELD: :held
188
+ BOUNCED: :bounced
189
+
190
+ def self?.values: -> ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status]
191
+ end
114
192
  end
115
193
  end
116
194
  end
@@ -51,6 +51,8 @@ module ArkEmail
51
51
  | :MessageLinkClicked
52
52
  | :MessageLoaded
53
53
  | :DomainDNSError
54
+ | :SendLimitApproaching
55
+ | :SendLimitExceeded
54
56
 
55
57
  module Event
56
58
  extend ArkEmail::Internal::Type::Enum
@@ -63,6 +65,8 @@ module ArkEmail
63
65
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
64
66
  MESSAGE_LOADED: :MessageLoaded
65
67
  DOMAIN_DNS_ERROR: :DomainDNSError
68
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
69
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
66
70
 
67
71
  def self?.values: -> ::Array[ArkEmail::Models::WebhookCreateParams::event]
68
72
  end
@@ -86,6 +86,8 @@ module ArkEmail
86
86
  | :MessageLinkClicked
87
87
  | :MessageLoaded
88
88
  | :DomainDNSError
89
+ | :SendLimitApproaching
90
+ | :SendLimitExceeded
89
91
 
90
92
  module Event
91
93
  extend ArkEmail::Internal::Type::Enum
@@ -98,6 +100,8 @@ module ArkEmail
98
100
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
99
101
  MESSAGE_LOADED: :MessageLoaded
100
102
  DOMAIN_DNS_ERROR: :DomainDNSError
103
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
104
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
101
105
 
102
106
  def self?.values: -> ::Array[ArkEmail::Models::WebhookCreateResponse::Data::event]
103
107
  end
@@ -70,6 +70,8 @@ module ArkEmail
70
70
  | :MessageLinkClicked
71
71
  | :MessageLoaded
72
72
  | :DomainDNSError
73
+ | :SendLimitApproaching
74
+ | :SendLimitExceeded
73
75
 
74
76
  module Event
75
77
  extend ArkEmail::Internal::Type::Enum
@@ -82,6 +84,8 @@ module ArkEmail
82
84
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
83
85
  MESSAGE_LOADED: :MessageLoaded
84
86
  DOMAIN_DNS_ERROR: :DomainDNSError
87
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
88
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
85
89
 
86
90
  def self?.values: -> ::Array[ArkEmail::Models::WebhookListDeliveriesParams::event]
87
91
  end
@@ -106,6 +106,8 @@ module ArkEmail
106
106
  | :MessageLinkClicked
107
107
  | :MessageLoaded
108
108
  | :DomainDNSError
109
+ | :SendLimitApproaching
110
+ | :SendLimitExceeded
109
111
 
110
112
  module Event
111
113
  extend ArkEmail::Internal::Type::Enum
@@ -118,6 +120,8 @@ module ArkEmail
118
120
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
119
121
  MESSAGE_LOADED: :MessageLoaded
120
122
  DOMAIN_DNS_ERROR: :DomainDNSError
123
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
124
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
121
125
 
122
126
  def self?.values: -> ::Array[ArkEmail::Models::WebhookListDeliveriesResponse::Data::event]
123
127
  end
@@ -106,6 +106,8 @@ module ArkEmail
106
106
  | :MessageLinkClicked
107
107
  | :MessageLoaded
108
108
  | :DomainDNSError
109
+ | :SendLimitApproaching
110
+ | :SendLimitExceeded
109
111
 
110
112
  module Event
111
113
  extend ArkEmail::Internal::Type::Enum
@@ -118,6 +120,8 @@ module ArkEmail
118
120
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
119
121
  MESSAGE_LOADED: :MessageLoaded
120
122
  DOMAIN_DNS_ERROR: :DomainDNSError
123
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
124
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
121
125
 
122
126
  def self?.values: -> ::Array[ArkEmail::Models::WebhookRetrieveDeliveryResponse::Data::event]
123
127
  end
@@ -86,6 +86,8 @@ module ArkEmail
86
86
  | :MessageLinkClicked
87
87
  | :MessageLoaded
88
88
  | :DomainDNSError
89
+ | :SendLimitApproaching
90
+ | :SendLimitExceeded
89
91
 
90
92
  module Event
91
93
  extend ArkEmail::Internal::Type::Enum
@@ -98,6 +100,8 @@ module ArkEmail
98
100
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
99
101
  MESSAGE_LOADED: :MessageLoaded
100
102
  DOMAIN_DNS_ERROR: :DomainDNSError
103
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
104
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
101
105
 
102
106
  def self?.values: -> ::Array[ArkEmail::Models::WebhookRetrieveResponse::Data::event]
103
107
  end
@@ -29,6 +29,8 @@ module ArkEmail
29
29
  | :MessageLinkClicked
30
30
  | :MessageLoaded
31
31
  | :DomainDNSError
32
+ | :SendLimitApproaching
33
+ | :SendLimitExceeded
32
34
 
33
35
  module Event
34
36
  extend ArkEmail::Internal::Type::Enum
@@ -41,6 +43,8 @@ module ArkEmail
41
43
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
42
44
  MESSAGE_LOADED: :MessageLoaded
43
45
  DOMAIN_DNS_ERROR: :DomainDNSError
46
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
47
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
44
48
 
45
49
  def self?.values: -> ::Array[ArkEmail::Models::WebhookTestParams::event]
46
50
  end
@@ -86,6 +86,8 @@ module ArkEmail
86
86
  | :MessageLinkClicked
87
87
  | :MessageLoaded
88
88
  | :DomainDNSError
89
+ | :SendLimitApproaching
90
+ | :SendLimitExceeded
89
91
 
90
92
  module Event
91
93
  extend ArkEmail::Internal::Type::Enum
@@ -98,6 +100,8 @@ module ArkEmail
98
100
  MESSAGE_LINK_CLICKED: :MessageLinkClicked
99
101
  MESSAGE_LOADED: :MessageLoaded
100
102
  DOMAIN_DNS_ERROR: :DomainDNSError
103
+ SEND_LIMIT_APPROACHING: :SendLimitApproaching
104
+ SEND_LIMIT_EXCEEDED: :SendLimitExceeded
101
105
 
102
106
  def self?.values: -> ::Array[ArkEmail::Models::WebhookUpdateResponse::Data::event]
103
107
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ark-email
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-21 00:00:00.000000000 Z
11
+ date: 2026-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi