ark-email 0.13.0 → 0.15.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 +24 -0
- data/README.md +3 -3
- data/lib/ark_email/client.rb +8 -0
- data/lib/ark_email/models/dns_record.rb +49 -19
- data/lib/ark_email/models/domain_create_response.rb +117 -25
- data/lib/ark_email/models/domain_list_response.rb +12 -13
- data/lib/ark_email/models/domain_retrieve_response.rb +117 -25
- data/lib/ark_email/models/domain_verify_response.rb +117 -25
- data/lib/ark_email/models/email_retrieve_params.rb +4 -1
- data/lib/ark_email/models/email_retrieve_response.rb +177 -1
- data/lib/ark_email/models/log_entry.rb +298 -0
- data/lib/ark_email/models/log_entry_detail.rb +102 -0
- data/lib/ark_email/models/log_list_params.rb +106 -0
- data/lib/ark_email/models/log_retrieve_params.rb +14 -0
- data/lib/ark_email/models/log_retrieve_response.rb +33 -0
- data/lib/ark_email/models/track_domain.rb +6 -2
- data/lib/ark_email/models/usage_retrieve_params.rb +14 -0
- data/lib/ark_email/models/usage_retrieve_response.rb +270 -0
- data/lib/ark_email/models/webhook_create_params.rb +0 -2
- data/lib/ark_email/models/webhook_create_response.rb +0 -2
- data/lib/ark_email/models/webhook_list_deliveries_params.rb +0 -2
- data/lib/ark_email/models/webhook_list_deliveries_response.rb +0 -2
- data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +0 -2
- data/lib/ark_email/models/webhook_retrieve_response.rb +0 -2
- data/lib/ark_email/models/webhook_test_params.rb +0 -2
- data/lib/ark_email/models/webhook_update_response.rb +0 -2
- data/lib/ark_email/models.rb +10 -0
- data/lib/ark_email/resources/logs.rb +120 -0
- data/lib/ark_email/resources/usage.rb +51 -0
- data/lib/ark_email/version.rb +1 -1
- data/lib/ark_email.rb +9 -0
- data/rbi/ark_email/client.rbi +6 -0
- data/rbi/ark_email/models/dns_record.rbi +57 -22
- data/rbi/ark_email/models/domain_create_response.rbi +189 -28
- data/rbi/ark_email/models/domain_list_response.rbi +13 -19
- data/rbi/ark_email/models/domain_retrieve_response.rbi +191 -28
- data/rbi/ark_email/models/domain_verify_response.rbi +189 -28
- data/rbi/ark_email/models/email_retrieve_params.rbi +8 -2
- data/rbi/ark_email/models/email_retrieve_response.rbi +379 -0
- data/rbi/ark_email/models/log_entry.rbi +431 -0
- data/rbi/ark_email/models/log_entry_detail.rbi +192 -0
- data/rbi/ark_email/models/log_list_params.rbi +163 -0
- data/rbi/ark_email/models/log_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/log_retrieve_response.rbi +59 -0
- data/rbi/ark_email/models/track_domain.rbi +4 -2
- data/rbi/ark_email/models/usage_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/usage_retrieve_response.rbi +511 -0
- data/rbi/ark_email/models/webhook_create_params.rbi +0 -10
- data/rbi/ark_email/models/webhook_create_response.rbi +0 -10
- data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +0 -10
- data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +0 -10
- data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +0 -10
- data/rbi/ark_email/models/webhook_retrieve_response.rbi +0 -10
- data/rbi/ark_email/models/webhook_test_params.rbi +0 -10
- data/rbi/ark_email/models/webhook_update_response.rbi +0 -10
- data/rbi/ark_email/models.rbi +10 -0
- data/rbi/ark_email/resources/emails.rbi +4 -1
- data/rbi/ark_email/resources/logs.rbi +104 -0
- data/rbi/ark_email/resources/usage.rbi +40 -0
- data/sig/ark_email/client.rbs +4 -0
- data/sig/ark_email/models/dns_record.rbs +5 -0
- data/sig/ark_email/models/domain_create_response.rbs +27 -20
- data/sig/ark_email/models/domain_list_response.rbs +4 -16
- data/sig/ark_email/models/domain_retrieve_response.rbs +27 -20
- data/sig/ark_email/models/domain_verify_response.rbs +27 -20
- data/sig/ark_email/models/email_retrieve_response.rbs +179 -0
- data/sig/ark_email/models/log_entry.rbs +209 -0
- data/sig/ark_email/models/log_entry_detail.rbs +97 -0
- data/sig/ark_email/models/log_list_params.rbs +97 -0
- data/sig/ark_email/models/log_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/log_retrieve_response.rbs +26 -0
- data/sig/ark_email/models/usage_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/usage_retrieve_response.rbs +212 -0
- data/sig/ark_email/models/webhook_create_params.rbs +0 -4
- data/sig/ark_email/models/webhook_create_response.rbs +0 -4
- data/sig/ark_email/models/webhook_list_deliveries_params.rbs +0 -4
- data/sig/ark_email/models/webhook_list_deliveries_response.rbs +0 -4
- data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +0 -4
- data/sig/ark_email/models/webhook_retrieve_response.rbs +0 -4
- data/sig/ark_email/models/webhook_test_params.rbs +0 -4
- data/sig/ark_email/models/webhook_update_response.rbs +0 -4
- data/sig/ark_email/models.rbs +10 -0
- data/sig/ark_email/resources/logs.rbs +25 -0
- data/sig/ark_email/resources/usage.rbs +11 -0
- metadata +29 -2
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
# @see ArkEmail::Resources::Usage#retrieve
|
|
6
|
+
class UsageRetrieveResponse < ArkEmail::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute data
|
|
8
|
+
# Current usage and limit information
|
|
9
|
+
#
|
|
10
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse::Data]
|
|
11
|
+
required :data, -> { ArkEmail::Models::UsageRetrieveResponse::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
|
+
# Account usage and limits response
|
|
25
|
+
#
|
|
26
|
+
# @param data [ArkEmail::Models::UsageRetrieveResponse::Data] Current usage and limit information
|
|
27
|
+
#
|
|
28
|
+
# @param meta [ArkEmail::Models::APIMeta]
|
|
29
|
+
#
|
|
30
|
+
# @param success [Boolean, true]
|
|
31
|
+
|
|
32
|
+
# @see ArkEmail::Models::UsageRetrieveResponse#data
|
|
33
|
+
class Data < ArkEmail::Internal::Type::BaseModel
|
|
34
|
+
# @!attribute billing
|
|
35
|
+
# Billing and credit information
|
|
36
|
+
#
|
|
37
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse::Data::Billing, nil]
|
|
38
|
+
required :billing, -> { ArkEmail::Models::UsageRetrieveResponse::Data::Billing }, nil?: true
|
|
39
|
+
|
|
40
|
+
# @!attribute rate_limit
|
|
41
|
+
# API rate limit status
|
|
42
|
+
#
|
|
43
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit]
|
|
44
|
+
required :rate_limit,
|
|
45
|
+
-> { ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit },
|
|
46
|
+
api_name: :rateLimit
|
|
47
|
+
|
|
48
|
+
# @!attribute send_limit
|
|
49
|
+
# Email send limit status (hourly cap)
|
|
50
|
+
#
|
|
51
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit, nil]
|
|
52
|
+
required :send_limit,
|
|
53
|
+
-> { ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit },
|
|
54
|
+
api_name: :sendLimit,
|
|
55
|
+
nil?: true
|
|
56
|
+
|
|
57
|
+
# @!method initialize(billing:, rate_limit:, send_limit:)
|
|
58
|
+
# Current usage and limit information
|
|
59
|
+
#
|
|
60
|
+
# @param billing [ArkEmail::Models::UsageRetrieveResponse::Data::Billing, nil] Billing and credit information
|
|
61
|
+
#
|
|
62
|
+
# @param rate_limit [ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit] API rate limit status
|
|
63
|
+
#
|
|
64
|
+
# @param send_limit [ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit, nil] Email send limit status (hourly cap)
|
|
65
|
+
|
|
66
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data#billing
|
|
67
|
+
class Billing < ArkEmail::Internal::Type::BaseModel
|
|
68
|
+
# @!attribute auto_recharge
|
|
69
|
+
# Auto-recharge configuration
|
|
70
|
+
#
|
|
71
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse::Data::Billing::AutoRecharge]
|
|
72
|
+
required :auto_recharge,
|
|
73
|
+
-> { ArkEmail::Models::UsageRetrieveResponse::Data::Billing::AutoRecharge },
|
|
74
|
+
api_name: :autoRecharge
|
|
75
|
+
|
|
76
|
+
# @!attribute credit_balance
|
|
77
|
+
# Current credit balance as formatted string (e.g., "25.50")
|
|
78
|
+
#
|
|
79
|
+
# @return [String]
|
|
80
|
+
required :credit_balance, String, api_name: :creditBalance
|
|
81
|
+
|
|
82
|
+
# @!attribute credit_balance_cents
|
|
83
|
+
# Current credit balance in cents for precise calculations
|
|
84
|
+
#
|
|
85
|
+
# @return [Integer]
|
|
86
|
+
required :credit_balance_cents, Integer, api_name: :creditBalanceCents
|
|
87
|
+
|
|
88
|
+
# @!attribute has_payment_method
|
|
89
|
+
# Whether a payment method is configured
|
|
90
|
+
#
|
|
91
|
+
# @return [Boolean]
|
|
92
|
+
required :has_payment_method, ArkEmail::Internal::Type::Boolean, api_name: :hasPaymentMethod
|
|
93
|
+
|
|
94
|
+
# @!method initialize(auto_recharge:, credit_balance:, credit_balance_cents:, has_payment_method:)
|
|
95
|
+
# Billing and credit information
|
|
96
|
+
#
|
|
97
|
+
# @param auto_recharge [ArkEmail::Models::UsageRetrieveResponse::Data::Billing::AutoRecharge] Auto-recharge configuration
|
|
98
|
+
#
|
|
99
|
+
# @param credit_balance [String] Current credit balance as formatted string (e.g., "25.50")
|
|
100
|
+
#
|
|
101
|
+
# @param credit_balance_cents [Integer] Current credit balance in cents for precise calculations
|
|
102
|
+
#
|
|
103
|
+
# @param has_payment_method [Boolean] Whether a payment method is configured
|
|
104
|
+
|
|
105
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data::Billing#auto_recharge
|
|
106
|
+
class AutoRecharge < ArkEmail::Internal::Type::BaseModel
|
|
107
|
+
# @!attribute amount
|
|
108
|
+
# Amount to recharge when triggered
|
|
109
|
+
#
|
|
110
|
+
# @return [String]
|
|
111
|
+
required :amount, String
|
|
112
|
+
|
|
113
|
+
# @!attribute enabled
|
|
114
|
+
# Whether auto-recharge is enabled
|
|
115
|
+
#
|
|
116
|
+
# @return [Boolean]
|
|
117
|
+
required :enabled, ArkEmail::Internal::Type::Boolean
|
|
118
|
+
|
|
119
|
+
# @!attribute threshold
|
|
120
|
+
# Balance threshold that triggers recharge
|
|
121
|
+
#
|
|
122
|
+
# @return [String]
|
|
123
|
+
required :threshold, String
|
|
124
|
+
|
|
125
|
+
# @!method initialize(amount:, enabled:, threshold:)
|
|
126
|
+
# Auto-recharge configuration
|
|
127
|
+
#
|
|
128
|
+
# @param amount [String] Amount to recharge when triggered
|
|
129
|
+
#
|
|
130
|
+
# @param enabled [Boolean] Whether auto-recharge is enabled
|
|
131
|
+
#
|
|
132
|
+
# @param threshold [String] Balance threshold that triggers recharge
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data#rate_limit
|
|
137
|
+
class RateLimit < ArkEmail::Internal::Type::BaseModel
|
|
138
|
+
# @!attribute limit
|
|
139
|
+
# Maximum requests allowed per period
|
|
140
|
+
#
|
|
141
|
+
# @return [Integer]
|
|
142
|
+
required :limit, Integer
|
|
143
|
+
|
|
144
|
+
# @!attribute period
|
|
145
|
+
# Time period for the limit
|
|
146
|
+
#
|
|
147
|
+
# @return [Symbol, ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit::Period]
|
|
148
|
+
required :period, enum: -> { ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit::Period }
|
|
149
|
+
|
|
150
|
+
# @!attribute remaining
|
|
151
|
+
# Requests remaining in current window
|
|
152
|
+
#
|
|
153
|
+
# @return [Integer]
|
|
154
|
+
required :remaining, Integer
|
|
155
|
+
|
|
156
|
+
# @!attribute reset
|
|
157
|
+
# Unix timestamp when the limit resets
|
|
158
|
+
#
|
|
159
|
+
# @return [Integer]
|
|
160
|
+
required :reset, Integer
|
|
161
|
+
|
|
162
|
+
# @!method initialize(limit:, period:, remaining:, reset:)
|
|
163
|
+
# API rate limit status
|
|
164
|
+
#
|
|
165
|
+
# @param limit [Integer] Maximum requests allowed per period
|
|
166
|
+
#
|
|
167
|
+
# @param period [Symbol, ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit::Period] Time period for the limit
|
|
168
|
+
#
|
|
169
|
+
# @param remaining [Integer] Requests remaining in current window
|
|
170
|
+
#
|
|
171
|
+
# @param reset [Integer] Unix timestamp when the limit resets
|
|
172
|
+
|
|
173
|
+
# Time period for the limit
|
|
174
|
+
#
|
|
175
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data::RateLimit#period
|
|
176
|
+
module Period
|
|
177
|
+
extend ArkEmail::Internal::Type::Enum
|
|
178
|
+
|
|
179
|
+
SECOND = :second
|
|
180
|
+
|
|
181
|
+
# @!method self.values
|
|
182
|
+
# @return [Array<Symbol>]
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data#send_limit
|
|
187
|
+
class SendLimit < ArkEmail::Internal::Type::BaseModel
|
|
188
|
+
# @!attribute approaching
|
|
189
|
+
# Whether approaching the limit (>90%)
|
|
190
|
+
#
|
|
191
|
+
# @return [Boolean]
|
|
192
|
+
required :approaching, ArkEmail::Internal::Type::Boolean
|
|
193
|
+
|
|
194
|
+
# @!attribute exceeded
|
|
195
|
+
# Whether the limit has been exceeded
|
|
196
|
+
#
|
|
197
|
+
# @return [Boolean]
|
|
198
|
+
required :exceeded, ArkEmail::Internal::Type::Boolean
|
|
199
|
+
|
|
200
|
+
# @!attribute limit
|
|
201
|
+
# Maximum emails allowed per hour (null = unlimited)
|
|
202
|
+
#
|
|
203
|
+
# @return [Integer, nil]
|
|
204
|
+
required :limit, Integer, nil?: true
|
|
205
|
+
|
|
206
|
+
# @!attribute period
|
|
207
|
+
# Time period for the limit
|
|
208
|
+
#
|
|
209
|
+
# @return [Symbol, ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit::Period]
|
|
210
|
+
required :period, enum: -> { ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit::Period }
|
|
211
|
+
|
|
212
|
+
# @!attribute remaining
|
|
213
|
+
# Emails remaining in current period (null if unlimited)
|
|
214
|
+
#
|
|
215
|
+
# @return [Integer, nil]
|
|
216
|
+
required :remaining, Integer, nil?: true
|
|
217
|
+
|
|
218
|
+
# @!attribute resets_at
|
|
219
|
+
# ISO timestamp when the limit window resets (top of next hour)
|
|
220
|
+
#
|
|
221
|
+
# @return [Time]
|
|
222
|
+
required :resets_at, Time, api_name: :resetsAt
|
|
223
|
+
|
|
224
|
+
# @!attribute usage_percent
|
|
225
|
+
# Usage as a percentage (null if unlimited)
|
|
226
|
+
#
|
|
227
|
+
# @return [Float, nil]
|
|
228
|
+
required :usage_percent, Float, api_name: :usagePercent, nil?: true
|
|
229
|
+
|
|
230
|
+
# @!attribute used
|
|
231
|
+
# Emails sent in current period
|
|
232
|
+
#
|
|
233
|
+
# @return [Integer]
|
|
234
|
+
required :used, Integer
|
|
235
|
+
|
|
236
|
+
# @!method initialize(approaching:, exceeded:, limit:, period:, remaining:, resets_at:, usage_percent:, used:)
|
|
237
|
+
# Email send limit status (hourly cap)
|
|
238
|
+
#
|
|
239
|
+
# @param approaching [Boolean] Whether approaching the limit (>90%)
|
|
240
|
+
#
|
|
241
|
+
# @param exceeded [Boolean] Whether the limit has been exceeded
|
|
242
|
+
#
|
|
243
|
+
# @param limit [Integer, nil] Maximum emails allowed per hour (null = unlimited)
|
|
244
|
+
#
|
|
245
|
+
# @param period [Symbol, ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit::Period] Time period for the limit
|
|
246
|
+
#
|
|
247
|
+
# @param remaining [Integer, nil] Emails remaining in current period (null if unlimited)
|
|
248
|
+
#
|
|
249
|
+
# @param resets_at [Time] ISO timestamp when the limit window resets (top of next hour)
|
|
250
|
+
#
|
|
251
|
+
# @param usage_percent [Float, nil] Usage as a percentage (null if unlimited)
|
|
252
|
+
#
|
|
253
|
+
# @param used [Integer] Emails sent in current period
|
|
254
|
+
|
|
255
|
+
# Time period for the limit
|
|
256
|
+
#
|
|
257
|
+
# @see ArkEmail::Models::UsageRetrieveResponse::Data::SendLimit#period
|
|
258
|
+
module Period
|
|
259
|
+
extend ArkEmail::Internal::Type::Enum
|
|
260
|
+
|
|
261
|
+
HOUR = :hour
|
|
262
|
+
|
|
263
|
+
# @!method self.values
|
|
264
|
+
# @return [Array<Symbol>]
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
end
|
|
@@ -75,8 +75,6 @@ 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
|
|
80
78
|
|
|
81
79
|
# @!method self.values
|
|
82
80
|
# @return [Array<Symbol>]
|
|
@@ -101,8 +101,6 @@ 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
|
|
106
104
|
|
|
107
105
|
# @!method self.values
|
|
108
106
|
# @return [Array<Symbol>]
|
|
@@ -70,8 +70,6 @@ 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
|
|
75
73
|
|
|
76
74
|
# @!method self.values
|
|
77
75
|
# @return [Array<Symbol>]
|
|
@@ -144,8 +144,6 @@ 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
|
|
149
147
|
|
|
150
148
|
# @!method self.values
|
|
151
149
|
# @return [Array<Symbol>]
|
|
@@ -144,8 +144,6 @@ 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
|
|
149
147
|
|
|
150
148
|
# @!method self.values
|
|
151
149
|
# @return [Array<Symbol>]
|
|
@@ -101,8 +101,6 @@ 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
|
|
106
104
|
|
|
107
105
|
# @!method self.values
|
|
108
106
|
# @return [Array<Symbol>]
|
|
@@ -30,8 +30,6 @@ 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
|
|
35
33
|
|
|
36
34
|
# @!method self.values
|
|
37
35
|
# @return [Array<Symbol>]
|
|
@@ -101,8 +101,6 @@ 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
|
|
106
104
|
|
|
107
105
|
# @!method self.values
|
|
108
106
|
# @return [Array<Symbol>]
|
data/lib/ark_email/models.rb
CHANGED
|
@@ -67,6 +67,14 @@ module ArkEmail
|
|
|
67
67
|
|
|
68
68
|
EmailSendRawParams = ArkEmail::Models::EmailSendRawParams
|
|
69
69
|
|
|
70
|
+
LogEntry = ArkEmail::Models::LogEntry
|
|
71
|
+
|
|
72
|
+
LogEntryDetail = ArkEmail::Models::LogEntryDetail
|
|
73
|
+
|
|
74
|
+
LogListParams = ArkEmail::Models::LogListParams
|
|
75
|
+
|
|
76
|
+
LogRetrieveParams = ArkEmail::Models::LogRetrieveParams
|
|
77
|
+
|
|
70
78
|
SuppressionBulkCreateParams = ArkEmail::Models::SuppressionBulkCreateParams
|
|
71
79
|
|
|
72
80
|
SuppressionCreateParams = ArkEmail::Models::SuppressionCreateParams
|
|
@@ -91,6 +99,8 @@ module ArkEmail
|
|
|
91
99
|
|
|
92
100
|
TrackingVerifyParams = ArkEmail::Models::TrackingVerifyParams
|
|
93
101
|
|
|
102
|
+
UsageRetrieveParams = ArkEmail::Models::UsageRetrieveParams
|
|
103
|
+
|
|
94
104
|
WebhookCreateParams = ArkEmail::Models::WebhookCreateParams
|
|
95
105
|
|
|
96
106
|
WebhookDeleteParams = ArkEmail::Models::WebhookDeleteParams
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Logs
|
|
6
|
+
# Retrieve detailed information about a specific API request log, including the
|
|
7
|
+
# full request and response bodies.
|
|
8
|
+
#
|
|
9
|
+
# **Body decryption:** Request and response bodies are stored encrypted and
|
|
10
|
+
# automatically decrypted when retrieved. Bodies larger than 25KB are truncated at
|
|
11
|
+
# storage time with a `... [truncated]` marker.
|
|
12
|
+
#
|
|
13
|
+
# **Use cases:**
|
|
14
|
+
#
|
|
15
|
+
# - Debug a specific failed request
|
|
16
|
+
# - Review the exact payload sent/received
|
|
17
|
+
# - Share request details with support
|
|
18
|
+
#
|
|
19
|
+
# **Related endpoints:**
|
|
20
|
+
#
|
|
21
|
+
# - `GET /logs` - List logs with filters
|
|
22
|
+
#
|
|
23
|
+
# @overload retrieve(request_id, request_options: {})
|
|
24
|
+
#
|
|
25
|
+
# @param request_id [String] The request ID (format `req_*`)
|
|
26
|
+
#
|
|
27
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
28
|
+
#
|
|
29
|
+
# @return [ArkEmail::Models::LogRetrieveResponse]
|
|
30
|
+
#
|
|
31
|
+
# @see ArkEmail::Models::LogRetrieveParams
|
|
32
|
+
def retrieve(request_id, params = {})
|
|
33
|
+
@client.request(
|
|
34
|
+
method: :get,
|
|
35
|
+
path: ["logs/%1$s", request_id],
|
|
36
|
+
model: ArkEmail::Models::LogRetrieveResponse,
|
|
37
|
+
options: params[:request_options]
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Some parameter documentations has been truncated, see
|
|
42
|
+
# {ArkEmail::Models::LogListParams} for more details.
|
|
43
|
+
#
|
|
44
|
+
# Retrieve a paginated list of API request logs for debugging and monitoring.
|
|
45
|
+
# Results are ordered by timestamp, newest first.
|
|
46
|
+
#
|
|
47
|
+
# **Use cases:**
|
|
48
|
+
#
|
|
49
|
+
# - Debug integration issues by reviewing recent requests
|
|
50
|
+
# - Monitor error rates and response times
|
|
51
|
+
# - Audit API usage patterns
|
|
52
|
+
#
|
|
53
|
+
# **Filters:**
|
|
54
|
+
#
|
|
55
|
+
# - `status` - Filter by success or error category
|
|
56
|
+
# - `statusCode` - Filter by exact HTTP status code
|
|
57
|
+
# - `endpoint` - Filter by endpoint name (e.g., `emails.send`)
|
|
58
|
+
# - `credentialId` - Filter by API key
|
|
59
|
+
# - `startDate`/`endDate` - Filter by date range
|
|
60
|
+
#
|
|
61
|
+
# **Note:** Request and response bodies are only included when retrieving a single
|
|
62
|
+
# log entry with `GET /logs/{requestId}`.
|
|
63
|
+
#
|
|
64
|
+
# **Related endpoints:**
|
|
65
|
+
#
|
|
66
|
+
# - `GET /logs/{requestId}` - Get full log details with request/response bodies
|
|
67
|
+
#
|
|
68
|
+
# @overload list(credential_id: nil, end_date: nil, endpoint: nil, page: nil, per_page: nil, request_id: nil, start_date: nil, status: nil, status_code: nil, request_options: {})
|
|
69
|
+
#
|
|
70
|
+
# @param credential_id [String] Filter by API credential ID
|
|
71
|
+
#
|
|
72
|
+
# @param end_date [Time] Filter logs before this date (ISO 8601 format)
|
|
73
|
+
#
|
|
74
|
+
# @param endpoint [String] Filter by endpoint name
|
|
75
|
+
#
|
|
76
|
+
# @param page [Integer] Page number
|
|
77
|
+
#
|
|
78
|
+
# @param per_page [Integer] Results per page (max 100)
|
|
79
|
+
#
|
|
80
|
+
# @param request_id [String] Filter by request ID (partial match)
|
|
81
|
+
#
|
|
82
|
+
# @param start_date [Time] Filter logs after this date (ISO 8601 format)
|
|
83
|
+
#
|
|
84
|
+
# @param status [Symbol, ArkEmail::Models::LogListParams::Status] Filter by status category:
|
|
85
|
+
#
|
|
86
|
+
# @param status_code [Integer] Filter by exact HTTP status code (100-599)
|
|
87
|
+
#
|
|
88
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
89
|
+
#
|
|
90
|
+
# @return [ArkEmail::Internal::PageNumberPagination<ArkEmail::Models::LogEntry>]
|
|
91
|
+
#
|
|
92
|
+
# @see ArkEmail::Models::LogListParams
|
|
93
|
+
def list(params = {})
|
|
94
|
+
parsed, options = ArkEmail::LogListParams.dump_request(params)
|
|
95
|
+
@client.request(
|
|
96
|
+
method: :get,
|
|
97
|
+
path: "logs",
|
|
98
|
+
query: parsed.transform_keys(
|
|
99
|
+
credential_id: "credentialId",
|
|
100
|
+
end_date: "endDate",
|
|
101
|
+
per_page: "perPage",
|
|
102
|
+
request_id: "requestId",
|
|
103
|
+
start_date: "startDate",
|
|
104
|
+
status_code: "statusCode"
|
|
105
|
+
),
|
|
106
|
+
page: ArkEmail::Internal::PageNumberPagination,
|
|
107
|
+
model: ArkEmail::LogEntry,
|
|
108
|
+
options: options
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# @api private
|
|
113
|
+
#
|
|
114
|
+
# @param client [ArkEmail::Client]
|
|
115
|
+
def initialize(client:)
|
|
116
|
+
@client = client
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Usage
|
|
6
|
+
# Returns current usage and limit information for your account.
|
|
7
|
+
#
|
|
8
|
+
# This endpoint is designed for:
|
|
9
|
+
#
|
|
10
|
+
# - **AI agents/MCP servers:** Check constraints before planning batch operations
|
|
11
|
+
# - **Monitoring dashboards:** Display current usage status
|
|
12
|
+
# - **Rate limit awareness:** Know remaining capacity before making requests
|
|
13
|
+
#
|
|
14
|
+
# **Response includes:**
|
|
15
|
+
#
|
|
16
|
+
# - `rateLimit` - API request rate limit (requests per second)
|
|
17
|
+
# - `sendLimit` - Email sending limit (emails per hour)
|
|
18
|
+
# - `billing` - Credit balance and auto-recharge configuration
|
|
19
|
+
#
|
|
20
|
+
# **Notes:**
|
|
21
|
+
#
|
|
22
|
+
# - This request counts against your rate limit
|
|
23
|
+
# - `sendLimit` may be null if Postal is temporarily unavailable
|
|
24
|
+
# - `billing` is null if billing is not configured
|
|
25
|
+
# - Send limit resets at the top of each hour
|
|
26
|
+
#
|
|
27
|
+
# @overload retrieve(request_options: {})
|
|
28
|
+
#
|
|
29
|
+
# @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
30
|
+
#
|
|
31
|
+
# @return [ArkEmail::Models::UsageRetrieveResponse]
|
|
32
|
+
#
|
|
33
|
+
# @see ArkEmail::Models::UsageRetrieveParams
|
|
34
|
+
def retrieve(params = {})
|
|
35
|
+
@client.request(
|
|
36
|
+
method: :get,
|
|
37
|
+
path: "usage",
|
|
38
|
+
model: ArkEmail::Models::UsageRetrieveResponse,
|
|
39
|
+
options: params[:request_options]
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @api private
|
|
44
|
+
#
|
|
45
|
+
# @param client [ArkEmail::Client]
|
|
46
|
+
def initialize(client:)
|
|
47
|
+
@client = client
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
data/lib/ark_email/version.rb
CHANGED
data/lib/ark_email.rb
CHANGED
|
@@ -53,6 +53,7 @@ require_relative "ark_email/internal/transport/base_client"
|
|
|
53
53
|
require_relative "ark_email/internal/transport/pooled_net_requester"
|
|
54
54
|
require_relative "ark_email/client"
|
|
55
55
|
require_relative "ark_email/internal/page_number_pagination"
|
|
56
|
+
require_relative "ark_email/models/log_entry"
|
|
56
57
|
require_relative "ark_email/models/api_meta"
|
|
57
58
|
require_relative "ark_email/models/dns_record"
|
|
58
59
|
require_relative "ark_email/models/domain_create_params"
|
|
@@ -79,6 +80,10 @@ require_relative "ark_email/models/email_send_params"
|
|
|
79
80
|
require_relative "ark_email/models/email_send_raw_params"
|
|
80
81
|
require_relative "ark_email/models/email_send_raw_response"
|
|
81
82
|
require_relative "ark_email/models/email_send_response"
|
|
83
|
+
require_relative "ark_email/models/log_entry_detail"
|
|
84
|
+
require_relative "ark_email/models/log_list_params"
|
|
85
|
+
require_relative "ark_email/models/log_retrieve_params"
|
|
86
|
+
require_relative "ark_email/models/log_retrieve_response"
|
|
82
87
|
require_relative "ark_email/models/suppression_bulk_create_params"
|
|
83
88
|
require_relative "ark_email/models/suppression_bulk_create_response"
|
|
84
89
|
require_relative "ark_email/models/suppression_create_params"
|
|
@@ -102,6 +107,8 @@ require_relative "ark_email/models/tracking_update_params"
|
|
|
102
107
|
require_relative "ark_email/models/tracking_update_response"
|
|
103
108
|
require_relative "ark_email/models/tracking_verify_params"
|
|
104
109
|
require_relative "ark_email/models/tracking_verify_response"
|
|
110
|
+
require_relative "ark_email/models/usage_retrieve_params"
|
|
111
|
+
require_relative "ark_email/models/usage_retrieve_response"
|
|
105
112
|
require_relative "ark_email/models/webhook_create_params"
|
|
106
113
|
require_relative "ark_email/models/webhook_create_response"
|
|
107
114
|
require_relative "ark_email/models/webhook_delete_params"
|
|
@@ -123,6 +130,8 @@ require_relative "ark_email/models/webhook_update_response"
|
|
|
123
130
|
require_relative "ark_email/models"
|
|
124
131
|
require_relative "ark_email/resources/domains"
|
|
125
132
|
require_relative "ark_email/resources/emails"
|
|
133
|
+
require_relative "ark_email/resources/logs"
|
|
126
134
|
require_relative "ark_email/resources/suppressions"
|
|
127
135
|
require_relative "ark_email/resources/tracking"
|
|
136
|
+
require_relative "ark_email/resources/usage"
|
|
128
137
|
require_relative "ark_email/resources/webhooks"
|
data/rbi/ark_email/client.rbi
CHANGED
|
@@ -34,6 +34,12 @@ module ArkEmail
|
|
|
34
34
|
sig { returns(ArkEmail::Resources::Tracking) }
|
|
35
35
|
attr_reader :tracking
|
|
36
36
|
|
|
37
|
+
sig { returns(ArkEmail::Resources::Logs) }
|
|
38
|
+
attr_reader :logs
|
|
39
|
+
|
|
40
|
+
sig { returns(ArkEmail::Resources::Usage) }
|
|
41
|
+
attr_reader :usage
|
|
42
|
+
|
|
37
43
|
# @api private
|
|
38
44
|
sig { override.returns(T::Hash[String, String]) }
|
|
39
45
|
private def auth_headers
|