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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +22 -6
  4. data/lib/ark_email/models/email_send_batch_params.rb +10 -1
  5. data/lib/ark_email/models/email_send_params.rb +8 -0
  6. data/lib/ark_email/models/webhook_list_deliveries_params.rb +79 -0
  7. data/lib/ark_email/models/webhook_list_deliveries_response.rb +154 -0
  8. data/lib/ark_email/models/webhook_replay_delivery_params.rb +20 -0
  9. data/lib/ark_email/models/webhook_replay_delivery_response.rb +82 -0
  10. data/lib/ark_email/models/webhook_retrieve_delivery_params.rb +20 -0
  11. data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +198 -0
  12. data/lib/ark_email/models.rb +6 -0
  13. data/lib/ark_email/resources/webhooks.rb +127 -0
  14. data/lib/ark_email/version.rb +1 -1
  15. data/lib/ark_email.rb +6 -0
  16. data/rbi/ark_email/models/email_send_batch_params.rbi +18 -0
  17. data/rbi/ark_email/models/email_send_params.rbi +16 -0
  18. data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +172 -0
  19. data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +257 -0
  20. data/rbi/ark_email/models/webhook_replay_delivery_params.rbi +38 -0
  21. data/rbi/ark_email/models/webhook_replay_delivery_response.rbi +132 -0
  22. data/rbi/ark_email/models/webhook_retrieve_delivery_params.rbi +38 -0
  23. data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +371 -0
  24. data/rbi/ark_email/models.rbi +7 -0
  25. data/rbi/ark_email/resources/emails.rbi +8 -0
  26. data/rbi/ark_email/resources/webhooks.rbi +105 -0
  27. data/sig/ark_email/models/webhook_list_deliveries_params.rbs +90 -0
  28. data/sig/ark_email/models/webhook_list_deliveries_response.rbs +127 -0
  29. data/sig/ark_email/models/webhook_replay_delivery_params.rbs +23 -0
  30. data/sig/ark_email/models/webhook_replay_delivery_response.rbs +72 -0
  31. data/sig/ark_email/models/webhook_retrieve_delivery_params.rbs +23 -0
  32. data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +158 -0
  33. data/sig/ark_email/models.rbs +6 -0
  34. data/sig/ark_email/resources/webhooks.rbs +23 -0
  35. metadata +20 -2
@@ -0,0 +1,257 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class WebhookListDeliveriesResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::WebhookListDeliveriesResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(T::Array[ArkEmail::Models::WebhookListDeliveriesResponse::Data])
16
+ end
17
+ attr_accessor :data
18
+
19
+ sig { returns(ArkEmail::APIMeta) }
20
+ attr_reader :meta
21
+
22
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
23
+ attr_writer :meta
24
+
25
+ # Current page number
26
+ sig { returns(Integer) }
27
+ attr_accessor :page
28
+
29
+ # Items per page
30
+ sig { returns(Integer) }
31
+ attr_accessor :per_page
32
+
33
+ # Total number of deliveries matching the filter
34
+ sig { returns(Integer) }
35
+ attr_accessor :total
36
+
37
+ # Total number of pages
38
+ sig { returns(Integer) }
39
+ attr_accessor :total_pages
40
+
41
+ # Paginated list of webhook delivery attempts
42
+ sig do
43
+ params(
44
+ data:
45
+ T::Array[
46
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::OrHash
47
+ ],
48
+ meta: ArkEmail::APIMeta::OrHash,
49
+ page: Integer,
50
+ per_page: Integer,
51
+ total: Integer,
52
+ total_pages: Integer
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ data:,
57
+ meta:,
58
+ # Current page number
59
+ page:,
60
+ # Items per page
61
+ per_page:,
62
+ # Total number of deliveries matching the filter
63
+ total:,
64
+ # Total number of pages
65
+ total_pages:
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ data:
73
+ T::Array[ArkEmail::Models::WebhookListDeliveriesResponse::Data],
74
+ meta: ArkEmail::APIMeta,
75
+ page: Integer,
76
+ per_page: Integer,
77
+ total: Integer,
78
+ total_pages: Integer
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+
85
+ class Data < ArkEmail::Internal::Type::BaseModel
86
+ OrHash =
87
+ T.type_alias do
88
+ T.any(
89
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data,
90
+ ArkEmail::Internal::AnyHash
91
+ )
92
+ end
93
+
94
+ # Unique delivery ID (UUID)
95
+ sig { returns(String) }
96
+ attr_accessor :id
97
+
98
+ # Attempt number (1 for first attempt, increments with retries)
99
+ sig { returns(Integer) }
100
+ attr_accessor :attempt
101
+
102
+ # Event type that triggered this delivery
103
+ sig do
104
+ returns(
105
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
106
+ )
107
+ end
108
+ attr_accessor :event
109
+
110
+ # HTTP status code returned by the endpoint (null if connection failed)
111
+ sig { returns(T.nilable(Integer)) }
112
+ attr_accessor :status_code
113
+
114
+ # Whether the delivery was successful (2xx response)
115
+ sig { returns(T::Boolean) }
116
+ attr_accessor :success
117
+
118
+ # When this delivery attempt occurred
119
+ sig { returns(Time) }
120
+ attr_accessor :timestamp
121
+
122
+ # URL the webhook was delivered to
123
+ sig { returns(String) }
124
+ attr_accessor :url
125
+
126
+ # ID of the webhook this delivery belongs to
127
+ sig { returns(String) }
128
+ attr_accessor :webhook_id
129
+
130
+ # Whether this delivery will be retried (true if failed and retries remaining)
131
+ sig { returns(T::Boolean) }
132
+ attr_accessor :will_retry
133
+
134
+ # Summary of a webhook delivery attempt
135
+ sig do
136
+ params(
137
+ id: String,
138
+ attempt: Integer,
139
+ event:
140
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::OrSymbol,
141
+ status_code: T.nilable(Integer),
142
+ success: T::Boolean,
143
+ timestamp: Time,
144
+ url: String,
145
+ webhook_id: String,
146
+ will_retry: T::Boolean
147
+ ).returns(T.attached_class)
148
+ end
149
+ def self.new(
150
+ # Unique delivery ID (UUID)
151
+ id:,
152
+ # Attempt number (1 for first attempt, increments with retries)
153
+ attempt:,
154
+ # Event type that triggered this delivery
155
+ event:,
156
+ # HTTP status code returned by the endpoint (null if connection failed)
157
+ status_code:,
158
+ # Whether the delivery was successful (2xx response)
159
+ success:,
160
+ # When this delivery attempt occurred
161
+ timestamp:,
162
+ # URL the webhook was delivered to
163
+ url:,
164
+ # ID of the webhook this delivery belongs to
165
+ webhook_id:,
166
+ # Whether this delivery will be retried (true if failed and retries remaining)
167
+ will_retry:
168
+ )
169
+ end
170
+
171
+ sig do
172
+ override.returns(
173
+ {
174
+ id: String,
175
+ attempt: Integer,
176
+ event:
177
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol,
178
+ status_code: T.nilable(Integer),
179
+ success: T::Boolean,
180
+ timestamp: Time,
181
+ url: String,
182
+ webhook_id: String,
183
+ will_retry: T::Boolean
184
+ }
185
+ )
186
+ end
187
+ def to_hash
188
+ end
189
+
190
+ # Event type that triggered this delivery
191
+ module Event
192
+ extend ArkEmail::Internal::Type::Enum
193
+
194
+ TaggedSymbol =
195
+ T.type_alias do
196
+ T.all(
197
+ Symbol,
198
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event
199
+ )
200
+ end
201
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
202
+
203
+ MESSAGE_SENT =
204
+ T.let(
205
+ :MessageSent,
206
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
207
+ )
208
+ MESSAGE_DELAYED =
209
+ T.let(
210
+ :MessageDelayed,
211
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
212
+ )
213
+ MESSAGE_DELIVERY_FAILED =
214
+ T.let(
215
+ :MessageDeliveryFailed,
216
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
217
+ )
218
+ MESSAGE_HELD =
219
+ T.let(
220
+ :MessageHeld,
221
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
222
+ )
223
+ MESSAGE_BOUNCED =
224
+ T.let(
225
+ :MessageBounced,
226
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
227
+ )
228
+ MESSAGE_LINK_CLICKED =
229
+ T.let(
230
+ :MessageLinkClicked,
231
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
232
+ )
233
+ MESSAGE_LOADED =
234
+ T.let(
235
+ :MessageLoaded,
236
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
237
+ )
238
+ DOMAIN_DNS_ERROR =
239
+ T.let(
240
+ :DomainDNSError,
241
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
242
+ )
243
+
244
+ sig do
245
+ override.returns(
246
+ T::Array[
247
+ ArkEmail::Models::WebhookListDeliveriesResponse::Data::Event::TaggedSymbol
248
+ ]
249
+ )
250
+ end
251
+ def self.values
252
+ end
253
+ end
254
+ end
255
+ end
256
+ end
257
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class WebhookReplayDeliveryParams < 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::WebhookReplayDeliveryParams,
13
+ ArkEmail::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :webhook_id
19
+
20
+ sig do
21
+ params(
22
+ webhook_id: String,
23
+ request_options: ArkEmail::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(webhook_id:, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { webhook_id: String, request_options: ArkEmail::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,132 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class WebhookReplayDeliveryResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::WebhookReplayDeliveryResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::WebhookReplayDeliveryResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(
19
+ data: ArkEmail::Models::WebhookReplayDeliveryResponse::Data::OrHash
20
+ ).void
21
+ end
22
+ attr_writer :data
23
+
24
+ sig { returns(ArkEmail::APIMeta) }
25
+ attr_reader :meta
26
+
27
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
28
+ attr_writer :meta
29
+
30
+ sig { returns(T::Boolean) }
31
+ attr_accessor :success
32
+
33
+ # Result of replaying a webhook delivery
34
+ sig do
35
+ params(
36
+ data: ArkEmail::Models::WebhookReplayDeliveryResponse::Data::OrHash,
37
+ meta: ArkEmail::APIMeta::OrHash,
38
+ success: T::Boolean
39
+ ).returns(T.attached_class)
40
+ end
41
+ def self.new(data:, meta:, success: true)
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ data: ArkEmail::Models::WebhookReplayDeliveryResponse::Data,
48
+ meta: ArkEmail::APIMeta,
49
+ success: T::Boolean
50
+ }
51
+ )
52
+ end
53
+ def to_hash
54
+ end
55
+
56
+ class Data < ArkEmail::Internal::Type::BaseModel
57
+ OrHash =
58
+ T.type_alias do
59
+ T.any(
60
+ ArkEmail::Models::WebhookReplayDeliveryResponse::Data,
61
+ ArkEmail::Internal::AnyHash
62
+ )
63
+ end
64
+
65
+ # Request duration in milliseconds
66
+ sig { returns(Integer) }
67
+ attr_accessor :duration
68
+
69
+ # ID of the new delivery created by the replay
70
+ sig { returns(String) }
71
+ attr_accessor :new_delivery_id
72
+
73
+ # ID of the original delivery that was replayed
74
+ sig { returns(String) }
75
+ attr_accessor :original_delivery_id
76
+
77
+ # HTTP status code from your endpoint
78
+ sig { returns(T.nilable(Integer)) }
79
+ attr_accessor :status_code
80
+
81
+ # Whether the replay was successful (2xx response from endpoint)
82
+ sig { returns(T::Boolean) }
83
+ attr_accessor :success
84
+
85
+ # When the replay was executed
86
+ sig { returns(Time) }
87
+ attr_accessor :timestamp
88
+
89
+ sig do
90
+ params(
91
+ duration: Integer,
92
+ new_delivery_id: String,
93
+ original_delivery_id: String,
94
+ status_code: T.nilable(Integer),
95
+ success: T::Boolean,
96
+ timestamp: Time
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # Request duration in milliseconds
101
+ duration:,
102
+ # ID of the new delivery created by the replay
103
+ new_delivery_id:,
104
+ # ID of the original delivery that was replayed
105
+ original_delivery_id:,
106
+ # HTTP status code from your endpoint
107
+ status_code:,
108
+ # Whether the replay was successful (2xx response from endpoint)
109
+ success:,
110
+ # When the replay was executed
111
+ timestamp:
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ {
118
+ duration: Integer,
119
+ new_delivery_id: String,
120
+ original_delivery_id: String,
121
+ status_code: T.nilable(Integer),
122
+ success: T::Boolean,
123
+ timestamp: Time
124
+ }
125
+ )
126
+ end
127
+ def to_hash
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class WebhookRetrieveDeliveryParams < 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::WebhookRetrieveDeliveryParams,
13
+ ArkEmail::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :webhook_id
19
+
20
+ sig do
21
+ params(
22
+ webhook_id: String,
23
+ request_options: ArkEmail::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(webhook_id:, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { webhook_id: String, request_options: ArkEmail::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end