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,84 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Suppressions
|
|
6
|
+
# Add an email address to the suppression list. The address will not receive any
|
|
7
|
+
# emails until removed.
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
address: String,
|
|
11
|
+
reason: String,
|
|
12
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
13
|
+
).returns(ArkEmail::Models::SuppressionCreateResponse)
|
|
14
|
+
end
|
|
15
|
+
def create(
|
|
16
|
+
# Email address to suppress
|
|
17
|
+
address:,
|
|
18
|
+
# Reason for suppression
|
|
19
|
+
reason: nil,
|
|
20
|
+
request_options: {}
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Check if a specific email address is on the suppression list
|
|
25
|
+
sig do
|
|
26
|
+
params(
|
|
27
|
+
email: String,
|
|
28
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
29
|
+
).returns(ArkEmail::Models::SuppressionRetrieveResponse)
|
|
30
|
+
end
|
|
31
|
+
def retrieve(
|
|
32
|
+
# Email address (URL-encoded)
|
|
33
|
+
email,
|
|
34
|
+
request_options: {}
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Get all email addresses on the suppression list. These addresses will not
|
|
39
|
+
# receive any emails.
|
|
40
|
+
sig do
|
|
41
|
+
params(
|
|
42
|
+
page: Integer,
|
|
43
|
+
per_page: Integer,
|
|
44
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
45
|
+
).returns(
|
|
46
|
+
ArkEmail::Internal::PageNumberPagination[
|
|
47
|
+
ArkEmail::Models::SuppressionListResponse
|
|
48
|
+
]
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
def list(page: nil, per_page: nil, request_options: {})
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Remove an email address from the suppression list. The address will be able to
|
|
55
|
+
# receive emails again.
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
email: String,
|
|
59
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
60
|
+
).returns(ArkEmail::Models::SuppressionDeleteResponse)
|
|
61
|
+
end
|
|
62
|
+
def delete(email, request_options: {})
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Add up to 1000 email addresses to the suppression list at once
|
|
66
|
+
sig do
|
|
67
|
+
params(
|
|
68
|
+
suppressions:
|
|
69
|
+
T::Array[
|
|
70
|
+
ArkEmail::SuppressionBulkCreateParams::Suppression::OrHash
|
|
71
|
+
],
|
|
72
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
73
|
+
).returns(ArkEmail::Models::SuppressionBulkCreateResponse)
|
|
74
|
+
end
|
|
75
|
+
def bulk_create(suppressions:, 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,130 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Tracking
|
|
6
|
+
# Create a new track domain for open/click tracking.
|
|
7
|
+
#
|
|
8
|
+
# After creation, you must configure a CNAME record pointing to the provided DNS
|
|
9
|
+
# value before tracking will work.
|
|
10
|
+
sig do
|
|
11
|
+
params(
|
|
12
|
+
domain_id: String,
|
|
13
|
+
name: String,
|
|
14
|
+
ssl_enabled: T::Boolean,
|
|
15
|
+
track_clicks: T::Boolean,
|
|
16
|
+
track_opens: T::Boolean,
|
|
17
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
18
|
+
).returns(ArkEmail::Models::TrackingCreateResponse)
|
|
19
|
+
end
|
|
20
|
+
def create(
|
|
21
|
+
# ID of the sending domain to attach this track domain to
|
|
22
|
+
domain_id:,
|
|
23
|
+
# Subdomain name (e.g., 'track' for track.yourdomain.com)
|
|
24
|
+
name:,
|
|
25
|
+
# Enable SSL for tracking URLs (recommended)
|
|
26
|
+
ssl_enabled: nil,
|
|
27
|
+
# Enable click tracking
|
|
28
|
+
track_clicks: nil,
|
|
29
|
+
# Enable open tracking (tracking pixel)
|
|
30
|
+
track_opens: nil,
|
|
31
|
+
request_options: {}
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Get details of a specific track domain including DNS configuration
|
|
36
|
+
sig do
|
|
37
|
+
params(
|
|
38
|
+
tracking_id: String,
|
|
39
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
40
|
+
).returns(ArkEmail::Models::TrackingRetrieveResponse)
|
|
41
|
+
end
|
|
42
|
+
def retrieve(
|
|
43
|
+
# Track domain ID or UUID
|
|
44
|
+
tracking_id,
|
|
45
|
+
request_options: {}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Update track domain settings.
|
|
50
|
+
#
|
|
51
|
+
# Use this to:
|
|
52
|
+
#
|
|
53
|
+
# - Enable/disable click tracking
|
|
54
|
+
# - Enable/disable open tracking
|
|
55
|
+
# - Enable/disable SSL
|
|
56
|
+
# - Set excluded click domains
|
|
57
|
+
sig do
|
|
58
|
+
params(
|
|
59
|
+
tracking_id: String,
|
|
60
|
+
excluded_click_domains: String,
|
|
61
|
+
ssl_enabled: T::Boolean,
|
|
62
|
+
track_clicks: T::Boolean,
|
|
63
|
+
track_opens: T::Boolean,
|
|
64
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
65
|
+
).returns(ArkEmail::Models::TrackingUpdateResponse)
|
|
66
|
+
end
|
|
67
|
+
def update(
|
|
68
|
+
# Track domain ID or UUID
|
|
69
|
+
tracking_id,
|
|
70
|
+
# Comma-separated list of domains to exclude from click tracking
|
|
71
|
+
excluded_click_domains: nil,
|
|
72
|
+
# Enable or disable SSL for tracking URLs
|
|
73
|
+
ssl_enabled: nil,
|
|
74
|
+
# Enable or disable click tracking
|
|
75
|
+
track_clicks: nil,
|
|
76
|
+
# Enable or disable open tracking
|
|
77
|
+
track_opens: nil,
|
|
78
|
+
request_options: {}
|
|
79
|
+
)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# List all track domains configured for your server. Track domains enable open and
|
|
83
|
+
# click tracking for your emails.
|
|
84
|
+
sig do
|
|
85
|
+
params(request_options: ArkEmail::RequestOptions::OrHash).returns(
|
|
86
|
+
ArkEmail::Models::TrackingListResponse
|
|
87
|
+
)
|
|
88
|
+
end
|
|
89
|
+
def list(request_options: {})
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Delete a track domain. This will disable tracking for any emails using this
|
|
93
|
+
# domain.
|
|
94
|
+
sig do
|
|
95
|
+
params(
|
|
96
|
+
tracking_id: String,
|
|
97
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
98
|
+
).returns(ArkEmail::Models::TrackingDeleteResponse)
|
|
99
|
+
end
|
|
100
|
+
def delete(
|
|
101
|
+
# Track domain ID or UUID
|
|
102
|
+
tracking_id,
|
|
103
|
+
request_options: {}
|
|
104
|
+
)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Check DNS configuration for the track domain.
|
|
108
|
+
#
|
|
109
|
+
# The track domain requires a CNAME record to be configured before open and click
|
|
110
|
+
# tracking will work. Use this endpoint to verify the DNS is correctly set up.
|
|
111
|
+
sig do
|
|
112
|
+
params(
|
|
113
|
+
tracking_id: String,
|
|
114
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
115
|
+
).returns(ArkEmail::Models::TrackingVerifyResponse)
|
|
116
|
+
end
|
|
117
|
+
def verify(
|
|
118
|
+
# Track domain ID or UUID
|
|
119
|
+
tracking_id,
|
|
120
|
+
request_options: {}
|
|
121
|
+
)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# @api private
|
|
125
|
+
sig { params(client: ArkEmail::Client).returns(T.attached_class) }
|
|
126
|
+
def self.new(client:)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Resources
|
|
5
|
+
class Webhooks
|
|
6
|
+
# Create a webhook endpoint to receive email event notifications.
|
|
7
|
+
#
|
|
8
|
+
# **Available events:**
|
|
9
|
+
#
|
|
10
|
+
# - `MessageSent` - Email accepted by recipient server
|
|
11
|
+
# - `MessageDeliveryFailed` - Delivery permanently failed
|
|
12
|
+
# - `MessageDelayed` - Delivery temporarily failed, will retry
|
|
13
|
+
# - `MessageBounced` - Email bounced
|
|
14
|
+
# - `MessageHeld` - Email held for review
|
|
15
|
+
# - `MessageLinkClicked` - Recipient clicked a link
|
|
16
|
+
# - `MessageLoaded` - Recipient opened the email
|
|
17
|
+
# - `DomainDNSError` - Domain DNS issue detected
|
|
18
|
+
sig do
|
|
19
|
+
params(
|
|
20
|
+
events: T::Array[ArkEmail::WebhookCreateParams::Event::OrSymbol],
|
|
21
|
+
name: String,
|
|
22
|
+
url: String,
|
|
23
|
+
all_events: T::Boolean,
|
|
24
|
+
enabled: T::Boolean,
|
|
25
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
26
|
+
).returns(ArkEmail::Models::WebhookCreateResponse)
|
|
27
|
+
end
|
|
28
|
+
def create(
|
|
29
|
+
# Events to subscribe to:
|
|
30
|
+
#
|
|
31
|
+
# - `MessageSent` - Email successfully delivered to recipient's server
|
|
32
|
+
# - `MessageDelayed` - Temporary delivery failure, will retry
|
|
33
|
+
# - `MessageDeliveryFailed` - Permanent delivery failure
|
|
34
|
+
# - `MessageHeld` - Email held for manual review
|
|
35
|
+
# - `MessageBounced` - Email bounced back
|
|
36
|
+
# - `MessageLinkClicked` - Recipient clicked a tracked link
|
|
37
|
+
# - `MessageLoaded` - Recipient opened the email (tracking pixel loaded)
|
|
38
|
+
# - `DomainDNSError` - DNS configuration issue detected
|
|
39
|
+
events:,
|
|
40
|
+
# Webhook name for identification
|
|
41
|
+
name:,
|
|
42
|
+
# HTTPS endpoint URL
|
|
43
|
+
url:,
|
|
44
|
+
# Subscribe to all events (ignores events array)
|
|
45
|
+
all_events: nil,
|
|
46
|
+
enabled: nil,
|
|
47
|
+
request_options: {}
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Get webhook details
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
webhook_id: String,
|
|
55
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
56
|
+
).returns(ArkEmail::Models::WebhookRetrieveResponse)
|
|
57
|
+
end
|
|
58
|
+
def retrieve(webhook_id, request_options: {})
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Update a webhook
|
|
62
|
+
sig do
|
|
63
|
+
params(
|
|
64
|
+
webhook_id: String,
|
|
65
|
+
all_events: T::Boolean,
|
|
66
|
+
enabled: T::Boolean,
|
|
67
|
+
events: T::Array[String],
|
|
68
|
+
name: String,
|
|
69
|
+
url: String,
|
|
70
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
71
|
+
).returns(ArkEmail::Models::WebhookUpdateResponse)
|
|
72
|
+
end
|
|
73
|
+
def update(
|
|
74
|
+
webhook_id,
|
|
75
|
+
all_events: nil,
|
|
76
|
+
enabled: nil,
|
|
77
|
+
events: nil,
|
|
78
|
+
name: nil,
|
|
79
|
+
url: nil,
|
|
80
|
+
request_options: {}
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Get all configured webhook endpoints
|
|
85
|
+
sig do
|
|
86
|
+
params(request_options: ArkEmail::RequestOptions::OrHash).returns(
|
|
87
|
+
ArkEmail::Models::WebhookListResponse
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
def list(request_options: {})
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Delete a webhook
|
|
94
|
+
sig do
|
|
95
|
+
params(
|
|
96
|
+
webhook_id: String,
|
|
97
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
98
|
+
).returns(ArkEmail::Models::WebhookDeleteResponse)
|
|
99
|
+
end
|
|
100
|
+
def delete(webhook_id, request_options: {})
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Send a test payload to your webhook endpoint and verify it receives the data
|
|
104
|
+
# correctly.
|
|
105
|
+
#
|
|
106
|
+
# Use this to:
|
|
107
|
+
#
|
|
108
|
+
# - Verify your webhook URL is accessible
|
|
109
|
+
# - Test your signature verification code
|
|
110
|
+
# - Ensure your server handles the payload format correctly
|
|
111
|
+
#
|
|
112
|
+
# **Test payload format:** The test payload is identical to real webhook payloads,
|
|
113
|
+
# containing sample data for the specified event type. Your webhook should respond
|
|
114
|
+
# with a 2xx status code.
|
|
115
|
+
sig do
|
|
116
|
+
params(
|
|
117
|
+
webhook_id: String,
|
|
118
|
+
event: ArkEmail::WebhookTestParams::Event::OrSymbol,
|
|
119
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
120
|
+
).returns(ArkEmail::Models::WebhookTestResponse)
|
|
121
|
+
end
|
|
122
|
+
def test_(
|
|
123
|
+
# Webhook ID or UUID
|
|
124
|
+
webhook_id,
|
|
125
|
+
# Event type to simulate
|
|
126
|
+
event:,
|
|
127
|
+
request_options: {}
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# @api private
|
|
132
|
+
sig { params(client: ArkEmail::Client).returns(T.attached_class) }
|
|
133
|
+
def self.new(client:)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module ArkEmail
|
|
2
|
+
class Client < ArkEmail::Internal::Transport::BaseClient
|
|
3
|
+
DEFAULT_MAX_RETRIES: 2
|
|
4
|
+
|
|
5
|
+
DEFAULT_TIMEOUT_IN_SECONDS: Float
|
|
6
|
+
|
|
7
|
+
DEFAULT_INITIAL_RETRY_DELAY: Float
|
|
8
|
+
|
|
9
|
+
DEFAULT_MAX_RETRY_DELAY: Float
|
|
10
|
+
|
|
11
|
+
attr_reader api_key: String
|
|
12
|
+
|
|
13
|
+
attr_reader emails: ArkEmail::Resources::Emails
|
|
14
|
+
|
|
15
|
+
attr_reader domains: ArkEmail::Resources::Domains
|
|
16
|
+
|
|
17
|
+
attr_reader suppressions: ArkEmail::Resources::Suppressions
|
|
18
|
+
|
|
19
|
+
attr_reader webhooks: ArkEmail::Resources::Webhooks
|
|
20
|
+
|
|
21
|
+
attr_reader tracking: ArkEmail::Resources::Tracking
|
|
22
|
+
|
|
23
|
+
private def auth_headers: -> ::Hash[String, String]
|
|
24
|
+
|
|
25
|
+
def initialize: (
|
|
26
|
+
?api_key: String?,
|
|
27
|
+
?base_url: String?,
|
|
28
|
+
?max_retries: Integer,
|
|
29
|
+
?timeout: Float,
|
|
30
|
+
?initial_retry_delay: Float,
|
|
31
|
+
?max_retry_delay: Float
|
|
32
|
+
) -> void
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
module ArkEmail
|
|
2
|
+
module Errors
|
|
3
|
+
class Error < StandardError
|
|
4
|
+
attr_accessor cause: StandardError?
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class ConversionError < ArkEmail::Errors::Error
|
|
8
|
+
def cause: -> StandardError?
|
|
9
|
+
|
|
10
|
+
def initialize: (
|
|
11
|
+
on: Class,
|
|
12
|
+
method: Symbol,
|
|
13
|
+
target: top,
|
|
14
|
+
value: top,
|
|
15
|
+
?cause: StandardError?
|
|
16
|
+
) -> void
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class APIError < ArkEmail::Errors::Error
|
|
20
|
+
attr_accessor url: URI::Generic
|
|
21
|
+
|
|
22
|
+
attr_accessor status: Integer?
|
|
23
|
+
|
|
24
|
+
attr_accessor headers: ::Hash[String, String]?
|
|
25
|
+
|
|
26
|
+
attr_accessor body: top?
|
|
27
|
+
|
|
28
|
+
def initialize: (
|
|
29
|
+
url: URI::Generic,
|
|
30
|
+
?status: Integer?,
|
|
31
|
+
?headers: ::Hash[String, String]?,
|
|
32
|
+
?body: Object?,
|
|
33
|
+
?request: nil,
|
|
34
|
+
?response: nil,
|
|
35
|
+
?message: String?
|
|
36
|
+
) -> void
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class APIConnectionError < ArkEmail::Errors::APIError
|
|
40
|
+
def initialize: (
|
|
41
|
+
url: URI::Generic,
|
|
42
|
+
?status: nil,
|
|
43
|
+
?headers: ::Hash[String, String]?,
|
|
44
|
+
?body: nil,
|
|
45
|
+
?request: nil,
|
|
46
|
+
?response: nil,
|
|
47
|
+
?message: String?
|
|
48
|
+
) -> void
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class APITimeoutError < ArkEmail::Errors::APIConnectionError
|
|
52
|
+
def initialize: (
|
|
53
|
+
url: URI::Generic,
|
|
54
|
+
?status: nil,
|
|
55
|
+
?headers: ::Hash[String, String]?,
|
|
56
|
+
?body: nil,
|
|
57
|
+
?request: nil,
|
|
58
|
+
?response: nil,
|
|
59
|
+
?message: String?
|
|
60
|
+
) -> void
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
class APIStatusError < ArkEmail::Errors::APIError
|
|
64
|
+
def self.for: (
|
|
65
|
+
url: URI::Generic,
|
|
66
|
+
status: Integer,
|
|
67
|
+
headers: ::Hash[String, String]?,
|
|
68
|
+
body: Object?,
|
|
69
|
+
request: nil,
|
|
70
|
+
response: nil,
|
|
71
|
+
?message: String?
|
|
72
|
+
) -> instance
|
|
73
|
+
|
|
74
|
+
def initialize: (
|
|
75
|
+
url: URI::Generic,
|
|
76
|
+
status: Integer,
|
|
77
|
+
headers: ::Hash[String, String]?,
|
|
78
|
+
body: Object?,
|
|
79
|
+
request: nil,
|
|
80
|
+
response: nil,
|
|
81
|
+
?message: String?
|
|
82
|
+
) -> void
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
class BadRequestError < ArkEmail::Errors::APIStatusError
|
|
86
|
+
HTTP_STATUS: 400
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class AuthenticationError < ArkEmail::Errors::APIStatusError
|
|
90
|
+
HTTP_STATUS: 401
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class PermissionDeniedError < ArkEmail::Errors::APIStatusError
|
|
94
|
+
HTTP_STATUS: 403
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class NotFoundError < ArkEmail::Errors::APIStatusError
|
|
98
|
+
HTTP_STATUS: 404
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
class ConflictError < ArkEmail::Errors::APIStatusError
|
|
102
|
+
HTTP_STATUS: 409
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
class UnprocessableEntityError < ArkEmail::Errors::APIStatusError
|
|
106
|
+
HTTP_STATUS: 422
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
class RateLimitError < ArkEmail::Errors::APIStatusError
|
|
110
|
+
HTTP_STATUS: 429
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
class InternalServerError < ArkEmail::Errors::APIStatusError
|
|
114
|
+
HTTP_STATUS: Range[Integer]
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module ArkEmail
|
|
2
|
+
class FilePart
|
|
3
|
+
attr_reader content: Pathname | StringIO | IO | String
|
|
4
|
+
|
|
5
|
+
attr_reader content_type: String?
|
|
6
|
+
|
|
7
|
+
attr_reader filename: String?
|
|
8
|
+
|
|
9
|
+
private def read: -> String
|
|
10
|
+
|
|
11
|
+
def to_json: (*top a) -> String
|
|
12
|
+
|
|
13
|
+
def to_yaml: (*top a) -> String
|
|
14
|
+
|
|
15
|
+
def initialize: (
|
|
16
|
+
Pathname | StringIO | IO | String content,
|
|
17
|
+
?filename: (Pathname | String)?,
|
|
18
|
+
?content_type: String?
|
|
19
|
+
) -> void
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module ArkEmail
|
|
2
|
+
module Internal
|
|
3
|
+
class PageNumberPagination[Elem]
|
|
4
|
+
include ArkEmail::Internal::Type::BasePage[Elem]
|
|
5
|
+
|
|
6
|
+
attr_accessor data: ::Array[Elem]?
|
|
7
|
+
|
|
8
|
+
attr_accessor page: Integer
|
|
9
|
+
|
|
10
|
+
attr_accessor per_page: Integer
|
|
11
|
+
|
|
12
|
+
attr_accessor total: Integer
|
|
13
|
+
|
|
14
|
+
attr_accessor total_pages: Integer
|
|
15
|
+
|
|
16
|
+
attr_accessor meta: Meta
|
|
17
|
+
|
|
18
|
+
def inspect: -> String
|
|
19
|
+
|
|
20
|
+
type meta = { request_id: String }
|
|
21
|
+
class Meta < ArkEmail::Internal::Type::BaseModel
|
|
22
|
+
attr_reader request_id: String?
|
|
23
|
+
|
|
24
|
+
def request_id=: (String) -> String
|
|
25
|
+
|
|
26
|
+
def initialize: (?request_id: String) -> void
|
|
27
|
+
|
|
28
|
+
def to_hash: -> { request_id: String }
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
module ArkEmail
|
|
2
|
+
module Internal
|
|
3
|
+
module Transport
|
|
4
|
+
class BaseClient
|
|
5
|
+
extend ArkEmail::Internal::Util::SorbetRuntimeSupport
|
|
6
|
+
|
|
7
|
+
type request_components =
|
|
8
|
+
{
|
|
9
|
+
method: Symbol,
|
|
10
|
+
path: String | ::Array[String],
|
|
11
|
+
query: ::Hash[String, (::Array[String] | String)?]?,
|
|
12
|
+
headers: ::Hash[String, (String
|
|
13
|
+
| Integer
|
|
14
|
+
| ::Array[(String | Integer)?])?]?,
|
|
15
|
+
body: top?,
|
|
16
|
+
unwrap: (Symbol
|
|
17
|
+
| Integer
|
|
18
|
+
| ::Array[(Symbol | Integer)]
|
|
19
|
+
| (^(top arg0) -> top))?,
|
|
20
|
+
page: Class?,
|
|
21
|
+
stream: Class?,
|
|
22
|
+
model: ArkEmail::Internal::Type::Converter::input?,
|
|
23
|
+
options: ArkEmail::request_opts?
|
|
24
|
+
}
|
|
25
|
+
type request_input =
|
|
26
|
+
{
|
|
27
|
+
method: Symbol,
|
|
28
|
+
url: URI::Generic,
|
|
29
|
+
headers: ::Hash[String, String],
|
|
30
|
+
body: top,
|
|
31
|
+
max_retries: Integer,
|
|
32
|
+
timeout: Float
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
MAX_REDIRECTS: 20
|
|
36
|
+
|
|
37
|
+
PLATFORM_HEADERS: ::Hash[String, String]
|
|
38
|
+
|
|
39
|
+
def self.validate!: (
|
|
40
|
+
ArkEmail::Internal::Transport::BaseClient::request_components req
|
|
41
|
+
) -> void
|
|
42
|
+
|
|
43
|
+
def self.should_retry?: (
|
|
44
|
+
Integer status,
|
|
45
|
+
headers: ::Hash[String, String]
|
|
46
|
+
) -> bool
|
|
47
|
+
|
|
48
|
+
def self.follow_redirect: (
|
|
49
|
+
ArkEmail::Internal::Transport::BaseClient::request_input request,
|
|
50
|
+
status: Integer,
|
|
51
|
+
response_headers: ::Hash[String, String]
|
|
52
|
+
) -> ArkEmail::Internal::Transport::BaseClient::request_input
|
|
53
|
+
|
|
54
|
+
def self.reap_connection!: (
|
|
55
|
+
Integer | ArkEmail::Errors::APIConnectionError status,
|
|
56
|
+
stream: Enumerable[String]?
|
|
57
|
+
) -> void
|
|
58
|
+
|
|
59
|
+
attr_reader base_url: URI::Generic
|
|
60
|
+
|
|
61
|
+
attr_reader timeout: Float
|
|
62
|
+
|
|
63
|
+
attr_reader max_retries: Integer
|
|
64
|
+
|
|
65
|
+
attr_reader initial_retry_delay: Float
|
|
66
|
+
|
|
67
|
+
attr_reader max_retry_delay: Float
|
|
68
|
+
|
|
69
|
+
attr_reader headers: ::Hash[String, String]
|
|
70
|
+
|
|
71
|
+
attr_reader idempotency_header: String?
|
|
72
|
+
|
|
73
|
+
# @api private
|
|
74
|
+
attr_reader requester: ArkEmail::Internal::Transport::PooledNetRequester
|
|
75
|
+
|
|
76
|
+
def initialize: (
|
|
77
|
+
base_url: String,
|
|
78
|
+
?timeout: Float,
|
|
79
|
+
?max_retries: Integer,
|
|
80
|
+
?initial_retry_delay: Float,
|
|
81
|
+
?max_retry_delay: Float,
|
|
82
|
+
?headers: ::Hash[String, (String
|
|
83
|
+
| Integer
|
|
84
|
+
| ::Array[(String | Integer)?])?],
|
|
85
|
+
?idempotency_header: String?
|
|
86
|
+
) -> void
|
|
87
|
+
|
|
88
|
+
private def auth_headers: -> ::Hash[String, String]
|
|
89
|
+
|
|
90
|
+
private def user_agent: -> String
|
|
91
|
+
|
|
92
|
+
private def generate_idempotency_key: -> String
|
|
93
|
+
|
|
94
|
+
private def build_request: (
|
|
95
|
+
ArkEmail::Internal::Transport::BaseClient::request_components req,
|
|
96
|
+
ArkEmail::request_options opts
|
|
97
|
+
) -> ArkEmail::Internal::Transport::BaseClient::request_input
|
|
98
|
+
|
|
99
|
+
private def retry_delay: (
|
|
100
|
+
::Hash[String, String] headers,
|
|
101
|
+
retry_count: Integer
|
|
102
|
+
) -> Float
|
|
103
|
+
|
|
104
|
+
def send_request: (
|
|
105
|
+
ArkEmail::Internal::Transport::BaseClient::request_input request,
|
|
106
|
+
redirect_count: Integer,
|
|
107
|
+
retry_count: Integer,
|
|
108
|
+
send_retry_header: bool
|
|
109
|
+
) -> [Integer, top, Enumerable[String]]
|
|
110
|
+
|
|
111
|
+
def request: (
|
|
112
|
+
Symbol method,
|
|
113
|
+
String | ::Array[String] path,
|
|
114
|
+
?query: ::Hash[String, (::Array[String] | String)?]?,
|
|
115
|
+
?headers: ::Hash[String, (String
|
|
116
|
+
| Integer
|
|
117
|
+
| ::Array[(String | Integer)?])?]?,
|
|
118
|
+
?body: top?,
|
|
119
|
+
?unwrap: (Symbol
|
|
120
|
+
| Integer
|
|
121
|
+
| ::Array[(Symbol | Integer)]
|
|
122
|
+
| (^(top arg0) -> top))?,
|
|
123
|
+
?page: Class?,
|
|
124
|
+
?stream: Class?,
|
|
125
|
+
?model: ArkEmail::Internal::Type::Converter::input?,
|
|
126
|
+
?options: ArkEmail::request_opts?
|
|
127
|
+
) -> top
|
|
128
|
+
|
|
129
|
+
def inspect: -> String
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|