ark-email 0.5.1
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +71 -0
- data/README.md +303 -0
- data/SECURITY.md +27 -0
- data/lib/ark_email/client.rb +102 -0
- data/lib/ark_email/errors.rb +228 -0
- data/lib/ark_email/file_part.rb +58 -0
- data/lib/ark_email/internal/page_number_pagination.rb +121 -0
- data/lib/ark_email/internal/transport/base_client.rb +573 -0
- data/lib/ark_email/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/ark_email/internal/type/array_of.rb +168 -0
- data/lib/ark_email/internal/type/base_model.rb +529 -0
- data/lib/ark_email/internal/type/base_page.rb +55 -0
- data/lib/ark_email/internal/type/boolean.rb +77 -0
- data/lib/ark_email/internal/type/converter.rb +327 -0
- data/lib/ark_email/internal/type/enum.rb +131 -0
- data/lib/ark_email/internal/type/file_input.rb +111 -0
- data/lib/ark_email/internal/type/hash_of.rb +188 -0
- data/lib/ark_email/internal/type/request_parameters.rb +42 -0
- data/lib/ark_email/internal/type/union.rb +237 -0
- data/lib/ark_email/internal/type/unknown.rb +81 -0
- data/lib/ark_email/internal/util.rb +920 -0
- data/lib/ark_email/internal.rb +20 -0
- data/lib/ark_email/models/api_meta.rb +16 -0
- data/lib/ark_email/models/dns_record.rb +81 -0
- data/lib/ark_email/models/domain_create_params.rb +22 -0
- data/lib/ark_email/models/domain_create_response.rb +110 -0
- data/lib/ark_email/models/domain_delete_params.rb +14 -0
- data/lib/ark_email/models/domain_delete_response.rb +39 -0
- data/lib/ark_email/models/domain_list_params.rb +14 -0
- data/lib/ark_email/models/domain_list_response.rb +72 -0
- data/lib/ark_email/models/domain_retrieve_params.rb +14 -0
- data/lib/ark_email/models/domain_retrieve_response.rb +110 -0
- data/lib/ark_email/models/domain_verify_params.rb +14 -0
- data/lib/ark_email/models/domain_verify_response.rb +110 -0
- data/lib/ark_email/models/email_list_params.rb +110 -0
- data/lib/ark_email/models/email_list_response.rb +108 -0
- data/lib/ark_email/models/email_retrieve_deliveries_params.rb +14 -0
- data/lib/ark_email/models/email_retrieve_deliveries_response.rb +123 -0
- data/lib/ark_email/models/email_retrieve_params.rb +30 -0
- data/lib/ark_email/models/email_retrieve_response.rb +285 -0
- data/lib/ark_email/models/email_retry_params.rb +14 -0
- data/lib/ark_email/models/email_retry_response.rb +39 -0
- data/lib/ark_email/models/email_send_batch_params.rb +70 -0
- data/lib/ark_email/models/email_send_batch_response.rb +83 -0
- data/lib/ark_email/models/email_send_params.rb +149 -0
- data/lib/ark_email/models/email_send_raw_params.rb +38 -0
- data/lib/ark_email/models/email_send_raw_response.rb +77 -0
- data/lib/ark_email/models/email_send_response.rb +77 -0
- data/lib/ark_email/models/suppression_bulk_create_params.rb +37 -0
- data/lib/ark_email/models/suppression_bulk_create_response.rb +64 -0
- data/lib/ark_email/models/suppression_create_params.rb +30 -0
- data/lib/ark_email/models/suppression_create_response.rb +62 -0
- data/lib/ark_email/models/suppression_delete_params.rb +14 -0
- data/lib/ark_email/models/suppression_delete_response.rb +39 -0
- data/lib/ark_email/models/suppression_list_params.rb +26 -0
- data/lib/ark_email/models/suppression_list_response.rb +38 -0
- data/lib/ark_email/models/suppression_retrieve_params.rb +14 -0
- data/lib/ark_email/models/suppression_retrieve_response.rb +64 -0
- data/lib/ark_email/models/track_domain.rb +172 -0
- data/lib/ark_email/models/tracking_create_params.rb +54 -0
- data/lib/ark_email/models/tracking_create_response.rb +28 -0
- data/lib/ark_email/models/tracking_delete_params.rb +14 -0
- data/lib/ark_email/models/tracking_delete_response.rb +39 -0
- data/lib/ark_email/models/tracking_list_params.rb +14 -0
- data/lib/ark_email/models/tracking_list_response.rb +41 -0
- data/lib/ark_email/models/tracking_retrieve_params.rb +14 -0
- data/lib/ark_email/models/tracking_retrieve_response.rb +28 -0
- data/lib/ark_email/models/tracking_update_params.rb +46 -0
- data/lib/ark_email/models/tracking_update_response.rb +28 -0
- data/lib/ark_email/models/tracking_verify_params.rb +14 -0
- data/lib/ark_email/models/tracking_verify_response.rb +133 -0
- data/lib/ark_email/models/webhook_create_params.rb +81 -0
- data/lib/ark_email/models/webhook_create_response.rb +111 -0
- data/lib/ark_email/models/webhook_delete_params.rb +14 -0
- data/lib/ark_email/models/webhook_delete_response.rb +39 -0
- data/lib/ark_email/models/webhook_list_params.rb +14 -0
- data/lib/ark_email/models/webhook_list_response.rb +79 -0
- data/lib/ark_email/models/webhook_retrieve_params.rb +14 -0
- data/lib/ark_email/models/webhook_retrieve_response.rb +111 -0
- data/lib/ark_email/models/webhook_test_params.rb +39 -0
- data/lib/ark_email/models/webhook_test_response.rb +80 -0
- data/lib/ark_email/models/webhook_update_params.rb +44 -0
- data/lib/ark_email/models/webhook_update_response.rb +111 -0
- data/lib/ark_email/models.rb +105 -0
- data/lib/ark_email/request_options.rb +77 -0
- data/lib/ark_email/resources/domains.rb +127 -0
- data/lib/ark_email/resources/emails.rb +263 -0
- data/lib/ark_email/resources/suppressions.rb +124 -0
- data/lib/ark_email/resources/tracking.rb +167 -0
- data/lib/ark_email/resources/webhooks.rb +175 -0
- data/lib/ark_email/version.rb +5 -0
- data/lib/ark_email.rb +122 -0
- data/manifest.yaml +17 -0
- data/rbi/ark_email/client.rbi +73 -0
- data/rbi/ark_email/errors.rbi +205 -0
- data/rbi/ark_email/file_part.rbi +37 -0
- data/rbi/ark_email/internal/page_number_pagination.rbi +52 -0
- data/rbi/ark_email/internal/transport/base_client.rbi +297 -0
- data/rbi/ark_email/internal/transport/pooled_net_requester.rbi +83 -0
- data/rbi/ark_email/internal/type/array_of.rbi +104 -0
- data/rbi/ark_email/internal/type/base_model.rbi +306 -0
- data/rbi/ark_email/internal/type/base_page.rbi +42 -0
- data/rbi/ark_email/internal/type/boolean.rbi +58 -0
- data/rbi/ark_email/internal/type/converter.rbi +216 -0
- data/rbi/ark_email/internal/type/enum.rbi +82 -0
- data/rbi/ark_email/internal/type/file_input.rbi +59 -0
- data/rbi/ark_email/internal/type/hash_of.rbi +104 -0
- data/rbi/ark_email/internal/type/request_parameters.rbi +29 -0
- data/rbi/ark_email/internal/type/union.rbi +128 -0
- data/rbi/ark_email/internal/type/unknown.rbi +58 -0
- data/rbi/ark_email/internal/util.rbi +487 -0
- data/rbi/ark_email/internal.rbi +16 -0
- data/rbi/ark_email/models/api_meta.rbi +25 -0
- data/rbi/ark_email/models/dns_record.rbi +111 -0
- data/rbi/ark_email/models/domain_create_params.rbi +40 -0
- data/rbi/ark_email/models/domain_create_response.rbi +193 -0
- data/rbi/ark_email/models/domain_delete_params.rbi +27 -0
- data/rbi/ark_email/models/domain_delete_response.rbi +75 -0
- data/rbi/ark_email/models/domain_list_params.rbi +27 -0
- data/rbi/ark_email/models/domain_list_response.rbi +144 -0
- data/rbi/ark_email/models/domain_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/domain_retrieve_response.rbi +195 -0
- data/rbi/ark_email/models/domain_verify_params.rbi +27 -0
- data/rbi/ark_email/models/domain_verify_response.rbi +193 -0
- data/rbi/ark_email/models/email_list_params.rbi +172 -0
- data/rbi/ark_email/models/email_list_response.rbi +164 -0
- data/rbi/ark_email/models/email_retrieve_deliveries_params.rbi +30 -0
- data/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +220 -0
- data/rbi/ark_email/models/email_retrieve_params.rbi +53 -0
- data/rbi/ark_email/models/email_retrieve_response.rbi +490 -0
- data/rbi/ark_email/models/email_retry_params.rbi +27 -0
- data/rbi/ark_email/models/email_retry_response.rbi +75 -0
- data/rbi/ark_email/models/email_send_batch_params.rbi +118 -0
- data/rbi/ark_email/models/email_send_batch_response.rbi +159 -0
- data/rbi/ark_email/models/email_send_params.rbi +229 -0
- data/rbi/ark_email/models/email_send_raw_params.rbi +59 -0
- data/rbi/ark_email/models/email_send_raw_response.rbi +157 -0
- data/rbi/ark_email/models/email_send_response.rbi +153 -0
- data/rbi/ark_email/models/suppression_bulk_create_params.rbi +76 -0
- data/rbi/ark_email/models/suppression_bulk_create_response.rbi +115 -0
- data/rbi/ark_email/models/suppression_create_params.rbi +54 -0
- data/rbi/ark_email/models/suppression_create_response.rbi +109 -0
- data/rbi/ark_email/models/suppression_delete_params.rbi +27 -0
- data/rbi/ark_email/models/suppression_delete_response.rbi +77 -0
- data/rbi/ark_email/models/suppression_list_params.rbi +49 -0
- data/rbi/ark_email/models/suppression_list_response.rbi +56 -0
- data/rbi/ark_email/models/suppression_retrieve_params.rbi +30 -0
- data/rbi/ark_email/models/suppression_retrieve_response.rbi +115 -0
- data/rbi/ark_email/models/track_domain.rbi +228 -0
- data/rbi/ark_email/models/tracking_create_params.rbi +84 -0
- data/rbi/ark_email/models/tracking_create_response.rbi +52 -0
- data/rbi/ark_email/models/tracking_delete_params.rbi +27 -0
- data/rbi/ark_email/models/tracking_delete_response.rbi +77 -0
- data/rbi/ark_email/models/tracking_list_params.rbi +27 -0
- data/rbi/ark_email/models/tracking_list_response.rbi +81 -0
- data/rbi/ark_email/models/tracking_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/tracking_retrieve_response.rbi +52 -0
- data/rbi/ark_email/models/tracking_update_params.rbi +79 -0
- data/rbi/ark_email/models/tracking_update_response.rbi +52 -0
- data/rbi/ark_email/models/tracking_verify_params.rbi +27 -0
- data/rbi/ark_email/models/tracking_verify_response.rbi +254 -0
- data/rbi/ark_email/models/webhook_create_params.rbi +154 -0
- data/rbi/ark_email/models/webhook_create_response.rbi +217 -0
- data/rbi/ark_email/models/webhook_delete_params.rbi +27 -0
- data/rbi/ark_email/models/webhook_delete_response.rbi +75 -0
- data/rbi/ark_email/models/webhook_list_params.rbi +27 -0
- data/rbi/ark_email/models/webhook_list_response.rbi +152 -0
- data/rbi/ark_email/models/webhook_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/webhook_retrieve_response.rbi +219 -0
- data/rbi/ark_email/models/webhook_test_params.rbi +95 -0
- data/rbi/ark_email/models/webhook_test_response.rbi +129 -0
- data/rbi/ark_email/models/webhook_update_params.rbi +80 -0
- data/rbi/ark_email/models/webhook_update_response.rbi +217 -0
- data/rbi/ark_email/models.rbi +68 -0
- data/rbi/ark_email/request_options.rbi +59 -0
- data/rbi/ark_email/resources/domains.rbi +84 -0
- data/rbi/ark_email/resources/emails.rbi +237 -0
- data/rbi/ark_email/resources/suppressions.rbi +84 -0
- data/rbi/ark_email/resources/tracking.rbi +130 -0
- data/rbi/ark_email/resources/webhooks.rbi +137 -0
- data/rbi/ark_email/version.rbi +5 -0
- data/sig/ark_email/client.rbs +34 -0
- data/sig/ark_email/errors.rbs +117 -0
- data/sig/ark_email/file_part.rbs +21 -0
- data/sig/ark_email/internal/page_number_pagination.rbs +32 -0
- data/sig/ark_email/internal/transport/base_client.rbs +133 -0
- data/sig/ark_email/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/ark_email/internal/type/array_of.rbs +48 -0
- data/sig/ark_email/internal/type/base_model.rbs +102 -0
- data/sig/ark_email/internal/type/base_page.rbs +24 -0
- data/sig/ark_email/internal/type/boolean.rbs +26 -0
- data/sig/ark_email/internal/type/converter.rbs +79 -0
- data/sig/ark_email/internal/type/enum.rbs +32 -0
- data/sig/ark_email/internal/type/file_input.rbs +25 -0
- data/sig/ark_email/internal/type/hash_of.rbs +48 -0
- data/sig/ark_email/internal/type/request_parameters.rbs +17 -0
- data/sig/ark_email/internal/type/union.rbs +52 -0
- data/sig/ark_email/internal/type/unknown.rbs +26 -0
- data/sig/ark_email/internal/util.rbs +185 -0
- data/sig/ark_email/internal.rbs +9 -0
- data/sig/ark_email/models/api_meta.rbs +13 -0
- data/sig/ark_email/models/dns_record.rbs +59 -0
- data/sig/ark_email/models/domain_create_params.rbs +23 -0
- data/sig/ark_email/models/domain_create_response.rbs +104 -0
- data/sig/ark_email/models/domain_delete_params.rbs +15 -0
- data/sig/ark_email/models/domain_delete_response.rbs +40 -0
- data/sig/ark_email/models/domain_list_params.rbs +15 -0
- data/sig/ark_email/models/domain_list_response.rbs +71 -0
- data/sig/ark_email/models/domain_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/domain_retrieve_response.rbs +104 -0
- data/sig/ark_email/models/domain_verify_params.rbs +15 -0
- data/sig/ark_email/models/domain_verify_response.rbs +104 -0
- data/sig/ark_email/models/email_list_params.rbs +94 -0
- data/sig/ark_email/models/email_list_response.rbs +77 -0
- data/sig/ark_email/models/email_retrieve_deliveries_params.rbs +15 -0
- data/sig/ark_email/models/email_retrieve_deliveries_response.rbs +117 -0
- data/sig/ark_email/models/email_retrieve_params.rbs +25 -0
- data/sig/ark_email/models/email_retrieve_response.rbs +232 -0
- data/sig/ark_email/models/email_retry_params.rbs +15 -0
- data/sig/ark_email/models/email_retry_response.rbs +40 -0
- data/sig/ark_email/models/email_send_batch_params.rbs +81 -0
- data/sig/ark_email/models/email_send_batch_response.rbs +74 -0
- data/sig/ark_email/models/email_send_params.rbs +124 -0
- data/sig/ark_email/models/email_send_raw_params.rbs +32 -0
- data/sig/ark_email/models/email_send_raw_response.rbs +75 -0
- data/sig/ark_email/models/email_send_response.rbs +75 -0
- data/sig/ark_email/models/suppression_bulk_create_params.rbs +40 -0
- data/sig/ark_email/models/suppression_bulk_create_response.rbs +62 -0
- data/sig/ark_email/models/suppression_create_params.rbs +30 -0
- data/sig/ark_email/models/suppression_create_response.rbs +59 -0
- data/sig/ark_email/models/suppression_delete_params.rbs +15 -0
- data/sig/ark_email/models/suppression_delete_response.rbs +40 -0
- data/sig/ark_email/models/suppression_list_params.rbs +32 -0
- data/sig/ark_email/models/suppression_list_response.rbs +32 -0
- data/sig/ark_email/models/suppression_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/suppression_retrieve_response.rbs +62 -0
- data/sig/ark_email/models/track_domain.rbs +122 -0
- data/sig/ark_email/models/tracking_create_params.rbs +52 -0
- data/sig/ark_email/models/tracking_create_response.rbs +26 -0
- data/sig/ark_email/models/tracking_delete_params.rbs +15 -0
- data/sig/ark_email/models/tracking_delete_response.rbs +40 -0
- data/sig/ark_email/models/tracking_list_params.rbs +15 -0
- data/sig/ark_email/models/tracking_list_response.rbs +40 -0
- data/sig/ark_email/models/tracking_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/tracking_retrieve_response.rbs +26 -0
- data/sig/ark_email/models/tracking_update_params.rbs +49 -0
- data/sig/ark_email/models/tracking_update_response.rbs +26 -0
- data/sig/ark_email/models/tracking_verify_params.rbs +15 -0
- data/sig/ark_email/models/tracking_verify_response.rbs +109 -0
- data/sig/ark_email/models/webhook_create_params.rbs +75 -0
- data/sig/ark_email/models/webhook_create_response.rbs +107 -0
- data/sig/ark_email/models/webhook_delete_params.rbs +15 -0
- data/sig/ark_email/models/webhook_delete_response.rbs +40 -0
- data/sig/ark_email/models/webhook_list_params.rbs +15 -0
- data/sig/ark_email/models/webhook_list_response.rbs +84 -0
- data/sig/ark_email/models/webhook_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/webhook_retrieve_response.rbs +107 -0
- data/sig/ark_email/models/webhook_test_params.rbs +49 -0
- data/sig/ark_email/models/webhook_test_response.rbs +72 -0
- data/sig/ark_email/models/webhook_update_params.rbs +56 -0
- data/sig/ark_email/models/webhook_update_response.rbs +107 -0
- data/sig/ark_email/models.rbs +65 -0
- data/sig/ark_email/request_options.rbs +34 -0
- data/sig/ark_email/resources/domains.rbs +31 -0
- data/sig/ark_email/resources/emails.rbs +65 -0
- data/sig/ark_email/resources/suppressions.rbs +34 -0
- data/sig/ark_email/resources/tracking.rbs +44 -0
- data/sig/ark_email/resources/webhooks.rbs +46 -0
- data/sig/ark_email/version.rbs +3 -0
- metadata +343 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class WebhookUpdateResponse < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
ArkEmail::Models::WebhookUpdateResponse,
|
|
10
|
+
ArkEmail::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(ArkEmail::Models::WebhookUpdateResponse::Data) }
|
|
15
|
+
attr_reader :data
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(data: ArkEmail::Models::WebhookUpdateResponse::Data::OrHash).void
|
|
19
|
+
end
|
|
20
|
+
attr_writer :data
|
|
21
|
+
|
|
22
|
+
sig { returns(ArkEmail::APIMeta) }
|
|
23
|
+
attr_reader :meta
|
|
24
|
+
|
|
25
|
+
sig { params(meta: ArkEmail::APIMeta::OrHash).void }
|
|
26
|
+
attr_writer :meta
|
|
27
|
+
|
|
28
|
+
sig { returns(T::Boolean) }
|
|
29
|
+
attr_accessor :success
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
params(
|
|
33
|
+
data: ArkEmail::Models::WebhookUpdateResponse::Data::OrHash,
|
|
34
|
+
meta: ArkEmail::APIMeta::OrHash,
|
|
35
|
+
success: T::Boolean
|
|
36
|
+
).returns(T.attached_class)
|
|
37
|
+
end
|
|
38
|
+
def self.new(data:, meta:, success: true)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
override.returns(
|
|
43
|
+
{
|
|
44
|
+
data: ArkEmail::Models::WebhookUpdateResponse::Data,
|
|
45
|
+
meta: ArkEmail::APIMeta,
|
|
46
|
+
success: T::Boolean
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
def to_hash
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Data < ArkEmail::Internal::Type::BaseModel
|
|
54
|
+
OrHash =
|
|
55
|
+
T.type_alias do
|
|
56
|
+
T.any(
|
|
57
|
+
ArkEmail::Models::WebhookUpdateResponse::Data,
|
|
58
|
+
ArkEmail::Internal::AnyHash
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Webhook ID
|
|
63
|
+
sig { returns(String) }
|
|
64
|
+
attr_accessor :id
|
|
65
|
+
|
|
66
|
+
# Whether subscribed to all events
|
|
67
|
+
sig { returns(T::Boolean) }
|
|
68
|
+
attr_accessor :all_events
|
|
69
|
+
|
|
70
|
+
sig { returns(Time) }
|
|
71
|
+
attr_accessor :created_at
|
|
72
|
+
|
|
73
|
+
# Whether the webhook is active
|
|
74
|
+
sig { returns(T::Boolean) }
|
|
75
|
+
attr_accessor :enabled
|
|
76
|
+
|
|
77
|
+
# Subscribed events
|
|
78
|
+
sig do
|
|
79
|
+
returns(
|
|
80
|
+
T::Array[
|
|
81
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
82
|
+
]
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
attr_accessor :events
|
|
86
|
+
|
|
87
|
+
# Webhook name for identification
|
|
88
|
+
sig { returns(String) }
|
|
89
|
+
attr_accessor :name
|
|
90
|
+
|
|
91
|
+
# Webhook endpoint URL
|
|
92
|
+
sig { returns(String) }
|
|
93
|
+
attr_accessor :url
|
|
94
|
+
|
|
95
|
+
sig { returns(String) }
|
|
96
|
+
attr_accessor :uuid
|
|
97
|
+
|
|
98
|
+
sig do
|
|
99
|
+
params(
|
|
100
|
+
id: String,
|
|
101
|
+
all_events: T::Boolean,
|
|
102
|
+
created_at: Time,
|
|
103
|
+
enabled: T::Boolean,
|
|
104
|
+
events:
|
|
105
|
+
T::Array[
|
|
106
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::OrSymbol
|
|
107
|
+
],
|
|
108
|
+
name: String,
|
|
109
|
+
url: String,
|
|
110
|
+
uuid: String
|
|
111
|
+
).returns(T.attached_class)
|
|
112
|
+
end
|
|
113
|
+
def self.new(
|
|
114
|
+
# Webhook ID
|
|
115
|
+
id:,
|
|
116
|
+
# Whether subscribed to all events
|
|
117
|
+
all_events:,
|
|
118
|
+
created_at:,
|
|
119
|
+
# Whether the webhook is active
|
|
120
|
+
enabled:,
|
|
121
|
+
# Subscribed events
|
|
122
|
+
events:,
|
|
123
|
+
# Webhook name for identification
|
|
124
|
+
name:,
|
|
125
|
+
# Webhook endpoint URL
|
|
126
|
+
url:,
|
|
127
|
+
uuid:
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
sig do
|
|
132
|
+
override.returns(
|
|
133
|
+
{
|
|
134
|
+
id: String,
|
|
135
|
+
all_events: T::Boolean,
|
|
136
|
+
created_at: Time,
|
|
137
|
+
enabled: T::Boolean,
|
|
138
|
+
events:
|
|
139
|
+
T::Array[
|
|
140
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
141
|
+
],
|
|
142
|
+
name: String,
|
|
143
|
+
url: String,
|
|
144
|
+
uuid: String
|
|
145
|
+
}
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
def to_hash
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
module Event
|
|
152
|
+
extend ArkEmail::Internal::Type::Enum
|
|
153
|
+
|
|
154
|
+
TaggedSymbol =
|
|
155
|
+
T.type_alias do
|
|
156
|
+
T.all(
|
|
157
|
+
Symbol,
|
|
158
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event
|
|
159
|
+
)
|
|
160
|
+
end
|
|
161
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
162
|
+
|
|
163
|
+
MESSAGE_SENT =
|
|
164
|
+
T.let(
|
|
165
|
+
:MessageSent,
|
|
166
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
167
|
+
)
|
|
168
|
+
MESSAGE_DELAYED =
|
|
169
|
+
T.let(
|
|
170
|
+
:MessageDelayed,
|
|
171
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
172
|
+
)
|
|
173
|
+
MESSAGE_DELIVERY_FAILED =
|
|
174
|
+
T.let(
|
|
175
|
+
:MessageDeliveryFailed,
|
|
176
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
177
|
+
)
|
|
178
|
+
MESSAGE_HELD =
|
|
179
|
+
T.let(
|
|
180
|
+
:MessageHeld,
|
|
181
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
182
|
+
)
|
|
183
|
+
MESSAGE_BOUNCED =
|
|
184
|
+
T.let(
|
|
185
|
+
:MessageBounced,
|
|
186
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
187
|
+
)
|
|
188
|
+
MESSAGE_LINK_CLICKED =
|
|
189
|
+
T.let(
|
|
190
|
+
:MessageLinkClicked,
|
|
191
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
192
|
+
)
|
|
193
|
+
MESSAGE_LOADED =
|
|
194
|
+
T.let(
|
|
195
|
+
:MessageLoaded,
|
|
196
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
197
|
+
)
|
|
198
|
+
DOMAIN_DNS_ERROR =
|
|
199
|
+
T.let(
|
|
200
|
+
:DomainDNSError,
|
|
201
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
sig do
|
|
205
|
+
override.returns(
|
|
206
|
+
T::Array[
|
|
207
|
+
ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
|
|
208
|
+
]
|
|
209
|
+
)
|
|
210
|
+
end
|
|
211
|
+
def self.values
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
APIMeta = ArkEmail::Models::APIMeta
|
|
5
|
+
|
|
6
|
+
DNSRecord = ArkEmail::Models::DNSRecord
|
|
7
|
+
|
|
8
|
+
DomainCreateParams = ArkEmail::Models::DomainCreateParams
|
|
9
|
+
|
|
10
|
+
DomainDeleteParams = ArkEmail::Models::DomainDeleteParams
|
|
11
|
+
|
|
12
|
+
DomainListParams = ArkEmail::Models::DomainListParams
|
|
13
|
+
|
|
14
|
+
DomainRetrieveParams = ArkEmail::Models::DomainRetrieveParams
|
|
15
|
+
|
|
16
|
+
DomainVerifyParams = ArkEmail::Models::DomainVerifyParams
|
|
17
|
+
|
|
18
|
+
EmailListParams = ArkEmail::Models::EmailListParams
|
|
19
|
+
|
|
20
|
+
EmailRetrieveDeliveriesParams =
|
|
21
|
+
ArkEmail::Models::EmailRetrieveDeliveriesParams
|
|
22
|
+
|
|
23
|
+
EmailRetrieveParams = ArkEmail::Models::EmailRetrieveParams
|
|
24
|
+
|
|
25
|
+
EmailRetryParams = ArkEmail::Models::EmailRetryParams
|
|
26
|
+
|
|
27
|
+
EmailSendBatchParams = ArkEmail::Models::EmailSendBatchParams
|
|
28
|
+
|
|
29
|
+
EmailSendParams = ArkEmail::Models::EmailSendParams
|
|
30
|
+
|
|
31
|
+
EmailSendRawParams = ArkEmail::Models::EmailSendRawParams
|
|
32
|
+
|
|
33
|
+
SuppressionBulkCreateParams = ArkEmail::Models::SuppressionBulkCreateParams
|
|
34
|
+
|
|
35
|
+
SuppressionCreateParams = ArkEmail::Models::SuppressionCreateParams
|
|
36
|
+
|
|
37
|
+
SuppressionDeleteParams = ArkEmail::Models::SuppressionDeleteParams
|
|
38
|
+
|
|
39
|
+
SuppressionListParams = ArkEmail::Models::SuppressionListParams
|
|
40
|
+
|
|
41
|
+
SuppressionRetrieveParams = ArkEmail::Models::SuppressionRetrieveParams
|
|
42
|
+
|
|
43
|
+
TrackDomain = ArkEmail::Models::TrackDomain
|
|
44
|
+
|
|
45
|
+
TrackingCreateParams = ArkEmail::Models::TrackingCreateParams
|
|
46
|
+
|
|
47
|
+
TrackingDeleteParams = ArkEmail::Models::TrackingDeleteParams
|
|
48
|
+
|
|
49
|
+
TrackingListParams = ArkEmail::Models::TrackingListParams
|
|
50
|
+
|
|
51
|
+
TrackingRetrieveParams = ArkEmail::Models::TrackingRetrieveParams
|
|
52
|
+
|
|
53
|
+
TrackingUpdateParams = ArkEmail::Models::TrackingUpdateParams
|
|
54
|
+
|
|
55
|
+
TrackingVerifyParams = ArkEmail::Models::TrackingVerifyParams
|
|
56
|
+
|
|
57
|
+
WebhookCreateParams = ArkEmail::Models::WebhookCreateParams
|
|
58
|
+
|
|
59
|
+
WebhookDeleteParams = ArkEmail::Models::WebhookDeleteParams
|
|
60
|
+
|
|
61
|
+
WebhookListParams = ArkEmail::Models::WebhookListParams
|
|
62
|
+
|
|
63
|
+
WebhookRetrieveParams = ArkEmail::Models::WebhookRetrieveParams
|
|
64
|
+
|
|
65
|
+
WebhookTestParams = ArkEmail::Models::WebhookTestParams
|
|
66
|
+
|
|
67
|
+
WebhookUpdateParams = ArkEmail::Models::WebhookUpdateParams
|
|
68
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
|
5
|
+
# or override those provided at the client level.
|
|
6
|
+
#
|
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
|
9
|
+
class RequestOptions < ArkEmail::Internal::Type::BaseModel
|
|
10
|
+
OrHash =
|
|
11
|
+
T.type_alias do
|
|
12
|
+
T.any(ArkEmail::RequestOptions, ArkEmail::Internal::AnyHash)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
sig { params(opts: ArkEmail::RequestOptions::OrHash).void }
|
|
17
|
+
def self.validate!(opts)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
|
21
|
+
# sent for write requests.
|
|
22
|
+
sig { returns(T.nilable(String)) }
|
|
23
|
+
attr_accessor :idempotency_key
|
|
24
|
+
|
|
25
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
|
26
|
+
# `query` given at the client level.
|
|
27
|
+
sig do
|
|
28
|
+
returns(
|
|
29
|
+
T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
attr_accessor :extra_query
|
|
33
|
+
|
|
34
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
|
35
|
+
# `extra_headers` given at the client level.
|
|
36
|
+
sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
|
|
37
|
+
attr_accessor :extra_headers
|
|
38
|
+
|
|
39
|
+
# Extra data to send with the request. These are deep merged into any data
|
|
40
|
+
# generated as part of the normal request.
|
|
41
|
+
sig { returns(T.nilable(T.anything)) }
|
|
42
|
+
attr_accessor :extra_body
|
|
43
|
+
|
|
44
|
+
# Maximum number of retries to attempt after a failed initial request.
|
|
45
|
+
sig { returns(T.nilable(Integer)) }
|
|
46
|
+
attr_accessor :max_retries
|
|
47
|
+
|
|
48
|
+
# Request timeout in seconds.
|
|
49
|
+
sig { returns(T.nilable(Float)) }
|
|
50
|
+
attr_accessor :timeout
|
|
51
|
+
|
|
52
|
+
# Returns a new instance of RequestOptions.
|
|
53
|
+
sig do
|
|
54
|
+
params(values: ArkEmail::Internal::AnyHash).returns(T.attached_class)
|
|
55
|
+
end
|
|
56
|
+
def self.new(values = {})
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Domains
|
|
6
|
+
# Add a new domain for sending emails. Returns DNS records that must be configured
|
|
7
|
+
# before the domain can be verified.
|
|
8
|
+
#
|
|
9
|
+
# **Required DNS records:**
|
|
10
|
+
#
|
|
11
|
+
# - **SPF** - TXT record for sender authentication
|
|
12
|
+
# - **DKIM** - TXT record for email signing
|
|
13
|
+
# - **Return Path** - CNAME for bounce handling
|
|
14
|
+
#
|
|
15
|
+
# After adding DNS records, call `POST /domains/{id}/verify` to verify.
|
|
16
|
+
sig do
|
|
17
|
+
params(
|
|
18
|
+
name: String,
|
|
19
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
20
|
+
).returns(ArkEmail::Models::DomainCreateResponse)
|
|
21
|
+
end
|
|
22
|
+
def create(
|
|
23
|
+
# Domain name (e.g., "mail.example.com")
|
|
24
|
+
name:,
|
|
25
|
+
request_options: {}
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Get detailed information about a domain including DNS record status
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
domain_id: String,
|
|
33
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
34
|
+
).returns(ArkEmail::Models::DomainRetrieveResponse)
|
|
35
|
+
end
|
|
36
|
+
def retrieve(
|
|
37
|
+
# Domain ID or domain name
|
|
38
|
+
domain_id,
|
|
39
|
+
request_options: {}
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Get all sending domains with their verification status
|
|
44
|
+
sig do
|
|
45
|
+
params(request_options: ArkEmail::RequestOptions::OrHash).returns(
|
|
46
|
+
ArkEmail::Models::DomainListResponse
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
def list(request_options: {})
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Remove a sending domain. You will no longer be able to send emails from this
|
|
53
|
+
# domain.
|
|
54
|
+
#
|
|
55
|
+
# **Warning:** This action cannot be undone.
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
domain_id: String,
|
|
59
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
60
|
+
).returns(ArkEmail::Models::DomainDeleteResponse)
|
|
61
|
+
end
|
|
62
|
+
def delete(domain_id, request_options: {})
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Check if DNS records are correctly configured and verify the domain. Returns the
|
|
66
|
+
# current status of each required DNS record.
|
|
67
|
+
#
|
|
68
|
+
# Call this after you've added the DNS records shown when creating the domain.
|
|
69
|
+
sig do
|
|
70
|
+
params(
|
|
71
|
+
domain_id: String,
|
|
72
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
73
|
+
).returns(ArkEmail::Models::DomainVerifyResponse)
|
|
74
|
+
end
|
|
75
|
+
def verify(domain_id, request_options: {})
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
sig { params(client: ArkEmail::Client).returns(T.attached_class) }
|
|
80
|
+
def self.new(client:)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Emails
|
|
6
|
+
# Retrieve detailed information about a specific email including delivery status,
|
|
7
|
+
# timestamps, and optionally the email content.
|
|
8
|
+
#
|
|
9
|
+
# Use the `expand` parameter to include additional data like the HTML/text body,
|
|
10
|
+
# headers, or delivery attempts.
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
email_id: String,
|
|
14
|
+
expand: String,
|
|
15
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
16
|
+
).returns(ArkEmail::Models::EmailRetrieveResponse)
|
|
17
|
+
end
|
|
18
|
+
def retrieve(
|
|
19
|
+
# The email ID (from send response) or message token
|
|
20
|
+
email_id,
|
|
21
|
+
# Comma-separated list of fields to include:
|
|
22
|
+
#
|
|
23
|
+
# - `content` - HTML and plain text body
|
|
24
|
+
# - `headers` - Email headers
|
|
25
|
+
# - `deliveries` - Delivery attempt history
|
|
26
|
+
# - `activity` - Opens and clicks
|
|
27
|
+
expand: nil,
|
|
28
|
+
request_options: {}
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Retrieve a paginated list of sent emails. Results are ordered by send time,
|
|
33
|
+
# newest first.
|
|
34
|
+
#
|
|
35
|
+
# Use filters to narrow down results by status, recipient, sender, or tag.
|
|
36
|
+
#
|
|
37
|
+
# **Related endpoints:**
|
|
38
|
+
#
|
|
39
|
+
# - `GET /emails/{id}` - Get full details of a specific email
|
|
40
|
+
# - `POST /emails` - Send a new email
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
after: String,
|
|
44
|
+
before: String,
|
|
45
|
+
from: String,
|
|
46
|
+
page: Integer,
|
|
47
|
+
per_page: Integer,
|
|
48
|
+
status: ArkEmail::EmailListParams::Status::OrSymbol,
|
|
49
|
+
tag: String,
|
|
50
|
+
to: String,
|
|
51
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
52
|
+
).returns(
|
|
53
|
+
ArkEmail::Internal::PageNumberPagination[
|
|
54
|
+
ArkEmail::Models::EmailListResponse
|
|
55
|
+
]
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
def list(
|
|
59
|
+
# Return emails sent after this timestamp (Unix seconds or ISO 8601)
|
|
60
|
+
after: nil,
|
|
61
|
+
# Return emails sent before this timestamp
|
|
62
|
+
before: nil,
|
|
63
|
+
# Filter by sender email address
|
|
64
|
+
from: nil,
|
|
65
|
+
# Page number (starts at 1)
|
|
66
|
+
page: nil,
|
|
67
|
+
# Results per page (max 100)
|
|
68
|
+
per_page: nil,
|
|
69
|
+
# Filter by delivery status:
|
|
70
|
+
#
|
|
71
|
+
# - `pending` - Email accepted, waiting to be processed
|
|
72
|
+
# - `sent` - Email transmitted to recipient's mail server
|
|
73
|
+
# - `softfail` - Temporary delivery failure, will retry
|
|
74
|
+
# - `hardfail` - Permanent delivery failure
|
|
75
|
+
# - `bounced` - Email bounced back
|
|
76
|
+
# - `held` - Held for manual review
|
|
77
|
+
status: nil,
|
|
78
|
+
# Filter by tag
|
|
79
|
+
tag: nil,
|
|
80
|
+
# Filter by recipient email address
|
|
81
|
+
to: nil,
|
|
82
|
+
request_options: {}
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Get the history of delivery attempts for an email, including SMTP response codes
|
|
87
|
+
# and timestamps.
|
|
88
|
+
sig do
|
|
89
|
+
params(
|
|
90
|
+
email_id: String,
|
|
91
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
92
|
+
).returns(ArkEmail::Models::EmailRetrieveDeliveriesResponse)
|
|
93
|
+
end
|
|
94
|
+
def retrieve_deliveries(email_id, request_options: {})
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Retry delivery of a failed or soft-bounced email. Creates a new delivery
|
|
98
|
+
# attempt.
|
|
99
|
+
#
|
|
100
|
+
# Only works for emails that have failed or are in a retryable state.
|
|
101
|
+
sig do
|
|
102
|
+
params(
|
|
103
|
+
email_id: String,
|
|
104
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
105
|
+
).returns(ArkEmail::Models::EmailRetryResponse)
|
|
106
|
+
end
|
|
107
|
+
def retry_(email_id, request_options: {})
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Send a single email message. The email is accepted for immediate delivery and
|
|
111
|
+
# typically delivered within seconds.
|
|
112
|
+
#
|
|
113
|
+
# **Example use case:** Send a password reset email to a user.
|
|
114
|
+
#
|
|
115
|
+
# **Required fields:** `from`, `to`, `subject`, and either `html` or `text`
|
|
116
|
+
#
|
|
117
|
+
# **Idempotency:** Supports `Idempotency-Key` header for safe retries.
|
|
118
|
+
#
|
|
119
|
+
# **Related endpoints:**
|
|
120
|
+
#
|
|
121
|
+
# - `GET /emails/{id}` - Track delivery status
|
|
122
|
+
# - `GET /emails/{id}/deliveries` - View delivery attempts
|
|
123
|
+
# - `POST /emails/{id}/retry` - Retry failed delivery
|
|
124
|
+
sig do
|
|
125
|
+
params(
|
|
126
|
+
from: String,
|
|
127
|
+
subject: String,
|
|
128
|
+
to: T::Array[String],
|
|
129
|
+
attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash],
|
|
130
|
+
bcc: T::Array[String],
|
|
131
|
+
cc: T::Array[String],
|
|
132
|
+
headers: T::Hash[Symbol, String],
|
|
133
|
+
html: String,
|
|
134
|
+
reply_to: String,
|
|
135
|
+
tag: String,
|
|
136
|
+
text: String,
|
|
137
|
+
idempotency_key: String,
|
|
138
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
139
|
+
).returns(ArkEmail::Models::EmailSendResponse)
|
|
140
|
+
end
|
|
141
|
+
def send_(
|
|
142
|
+
# Body param: Sender email address. Must be from a verified domain.
|
|
143
|
+
#
|
|
144
|
+
# **Supported formats:**
|
|
145
|
+
#
|
|
146
|
+
# - Email only: `hello@yourdomain.com`
|
|
147
|
+
# - With display name: `Acme <hello@yourdomain.com>`
|
|
148
|
+
# - With quoted name: `"Acme Support" <support@yourdomain.com>`
|
|
149
|
+
#
|
|
150
|
+
# The domain portion must match a verified sending domain in your account.
|
|
151
|
+
from:,
|
|
152
|
+
# Body param: Email subject line
|
|
153
|
+
subject:,
|
|
154
|
+
# Body param: Recipient email addresses (max 50)
|
|
155
|
+
to:,
|
|
156
|
+
# Body param: File attachments
|
|
157
|
+
attachments: nil,
|
|
158
|
+
# Body param: BCC recipients
|
|
159
|
+
bcc: nil,
|
|
160
|
+
# Body param: CC recipients
|
|
161
|
+
cc: nil,
|
|
162
|
+
# Body param: Custom email headers
|
|
163
|
+
headers: nil,
|
|
164
|
+
# Body param: HTML body content. Maximum 5MB (5,242,880 characters). Combined with
|
|
165
|
+
# attachments, the total message must not exceed 14MB.
|
|
166
|
+
html: nil,
|
|
167
|
+
# Body param: Reply-to address
|
|
168
|
+
reply_to: nil,
|
|
169
|
+
# Body param: Tag for categorization and filtering
|
|
170
|
+
tag: nil,
|
|
171
|
+
# Body param: Plain text body (auto-generated from HTML if not provided). Maximum
|
|
172
|
+
# 5MB (5,242,880 characters).
|
|
173
|
+
text: nil,
|
|
174
|
+
# Header param: Unique key for idempotent requests. If a request with this key was
|
|
175
|
+
# already processed, the cached response is returned. Keys expire after 24 hours.
|
|
176
|
+
idempotency_key: nil,
|
|
177
|
+
request_options: {}
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Send up to 100 emails in a single request. Useful for sending personalized
|
|
182
|
+
# emails to multiple recipients efficiently.
|
|
183
|
+
#
|
|
184
|
+
# Each email in the batch can have different content and recipients. Failed emails
|
|
185
|
+
# don't affect other emails in the batch.
|
|
186
|
+
#
|
|
187
|
+
# **Idempotency:** Supports `Idempotency-Key` header for safe retries.
|
|
188
|
+
sig do
|
|
189
|
+
params(
|
|
190
|
+
emails: T::Array[ArkEmail::EmailSendBatchParams::Email::OrHash],
|
|
191
|
+
from: String,
|
|
192
|
+
idempotency_key: String,
|
|
193
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
194
|
+
).returns(ArkEmail::Models::EmailSendBatchResponse)
|
|
195
|
+
end
|
|
196
|
+
def send_batch(
|
|
197
|
+
# Body param:
|
|
198
|
+
emails:,
|
|
199
|
+
# Body param: Sender email for all messages
|
|
200
|
+
from:,
|
|
201
|
+
# Header param: Unique key for idempotent requests. If a request with this key was
|
|
202
|
+
# already processed, the cached response is returned. Keys expire after 24 hours.
|
|
203
|
+
idempotency_key: nil,
|
|
204
|
+
request_options: {}
|
|
205
|
+
)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# Send a pre-formatted RFC 2822 MIME message. Use this for advanced use cases or
|
|
209
|
+
# when migrating from systems that generate raw email content.
|
|
210
|
+
#
|
|
211
|
+
# The `data` field should contain the base64-encoded raw email.
|
|
212
|
+
sig do
|
|
213
|
+
params(
|
|
214
|
+
data: String,
|
|
215
|
+
mail_from: String,
|
|
216
|
+
rcpt_to: T::Array[String],
|
|
217
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
218
|
+
).returns(ArkEmail::Models::EmailSendRawResponse)
|
|
219
|
+
end
|
|
220
|
+
def send_raw(
|
|
221
|
+
# Base64-encoded RFC 2822 message
|
|
222
|
+
data:,
|
|
223
|
+
# Envelope sender address
|
|
224
|
+
mail_from:,
|
|
225
|
+
# Envelope recipient addresses
|
|
226
|
+
rcpt_to:,
|
|
227
|
+
request_options: {}
|
|
228
|
+
)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
# @api private
|
|
232
|
+
sig { params(client: ArkEmail::Client).returns(T.attached_class) }
|
|
233
|
+
def self.new(client:)
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
end
|