ark-email 0.16.0 → 0.18.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/ark_email/client.rb +4 -0
  5. data/lib/ark_email/internal/transport/pooled_net_requester.rb +1 -1
  6. data/lib/ark_email/models/email_retrieve_deliveries_response.rb +80 -5
  7. data/lib/ark_email/models/email_retrieve_response.rb +79 -5
  8. data/lib/ark_email/models/tenant.rb +95 -0
  9. data/lib/ark_email/models/tenant_create_params.rb +57 -0
  10. data/lib/ark_email/models/tenant_create_response.rb +28 -0
  11. data/lib/ark_email/models/tenant_delete_params.rb +14 -0
  12. data/lib/ark_email/models/tenant_delete_response.rb +39 -0
  13. data/lib/ark_email/models/tenant_list_params.rb +50 -0
  14. data/lib/ark_email/models/tenant_retrieve_params.rb +14 -0
  15. data/lib/ark_email/models/tenant_retrieve_response.rb +28 -0
  16. data/lib/ark_email/models/tenant_update_params.rb +77 -0
  17. data/lib/ark_email/models/tenant_update_response.rb +28 -0
  18. data/lib/ark_email/models.rb +12 -0
  19. data/lib/ark_email/resources/tenants.rb +144 -0
  20. data/lib/ark_email/version.rb +1 -1
  21. data/lib/ark_email.rb +11 -0
  22. data/rbi/ark_email/client.rbi +3 -0
  23. data/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +166 -7
  24. data/rbi/ark_email/models/email_retrieve_response.rbi +166 -7
  25. data/rbi/ark_email/models/tenant.rbi +121 -0
  26. data/rbi/ark_email/models/tenant_create_params.rbi +100 -0
  27. data/rbi/ark_email/models/tenant_create_response.rbi +52 -0
  28. data/rbi/ark_email/models/tenant_delete_params.rbi +27 -0
  29. data/rbi/ark_email/models/tenant_delete_response.rbi +75 -0
  30. data/rbi/ark_email/models/tenant_list_params.rbi +92 -0
  31. data/rbi/ark_email/models/tenant_retrieve_params.rbi +27 -0
  32. data/rbi/ark_email/models/tenant_retrieve_response.rbi +52 -0
  33. data/rbi/ark_email/models/tenant_update_params.rbi +140 -0
  34. data/rbi/ark_email/models/tenant_update_response.rbi +52 -0
  35. data/rbi/ark_email/models.rbi +12 -0
  36. data/rbi/ark_email/resources/tenants.rbi +131 -0
  37. data/sig/ark_email/client.rbs +2 -0
  38. data/sig/ark_email/models/email_retrieve_deliveries_response.rbs +58 -3
  39. data/sig/ark_email/models/email_retrieve_response.rbs +58 -3
  40. data/sig/ark_email/models/tenant.rbs +65 -0
  41. data/sig/ark_email/models/tenant_create_params.rbs +39 -0
  42. data/sig/ark_email/models/tenant_create_response.rbs +26 -0
  43. data/sig/ark_email/models/tenant_delete_params.rbs +15 -0
  44. data/sig/ark_email/models/tenant_delete_response.rbs +40 -0
  45. data/sig/ark_email/models/tenant_list_params.rbs +56 -0
  46. data/sig/ark_email/models/tenant_retrieve_params.rbs +15 -0
  47. data/sig/ark_email/models/tenant_retrieve_response.rbs +26 -0
  48. data/sig/ark_email/models/tenant_update_params.rbs +62 -0
  49. data/sig/ark_email/models/tenant_update_response.rbs +26 -0
  50. data/sig/ark_email/models.rbs +12 -0
  51. data/sig/ark_email/resources/tenants.rbs +38 -0
  52. metadata +35 -2
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class TenantRetrieveParams < 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(ArkEmail::TenantRetrieveParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: ArkEmail::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: ArkEmail::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,52 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class TenantRetrieveResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::TenantRetrieveResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Tenant) }
15
+ attr_reader :data
16
+
17
+ sig { params(data: ArkEmail::Tenant::OrHash).void }
18
+ attr_writer :data
19
+
20
+ sig { returns(ArkEmail::APIMeta) }
21
+ attr_reader :meta
22
+
23
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
24
+ attr_writer :meta
25
+
26
+ sig { returns(T::Boolean) }
27
+ attr_accessor :success
28
+
29
+ sig do
30
+ params(
31
+ data: ArkEmail::Tenant::OrHash,
32
+ meta: ArkEmail::APIMeta::OrHash,
33
+ success: T::Boolean
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(data:, meta:, success: true)
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ {
42
+ data: ArkEmail::Tenant,
43
+ meta: ArkEmail::APIMeta,
44
+ success: T::Boolean
45
+ }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,140 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class TenantUpdateParams < 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(ArkEmail::TenantUpdateParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ # Custom key-value pairs. Useful for storing references to your internal systems.
15
+ #
16
+ # **Limits:**
17
+ #
18
+ # - Max 50 keys
19
+ # - Key names max 40 characters
20
+ # - String values max 500 characters
21
+ # - Total size max 8KB
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ T::Hash[
26
+ Symbol,
27
+ T.nilable(ArkEmail::TenantUpdateParams::Metadata::Variants)
28
+ ]
29
+ )
30
+ )
31
+ end
32
+ attr_accessor :metadata
33
+
34
+ # Display name for the tenant
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :name
37
+
38
+ sig { params(name: String).void }
39
+ attr_writer :name
40
+
41
+ # Tenant status
42
+ sig { returns(T.nilable(ArkEmail::TenantUpdateParams::Status::OrSymbol)) }
43
+ attr_reader :status
44
+
45
+ sig do
46
+ params(status: ArkEmail::TenantUpdateParams::Status::OrSymbol).void
47
+ end
48
+ attr_writer :status
49
+
50
+ sig do
51
+ params(
52
+ metadata:
53
+ T.nilable(
54
+ T::Hash[
55
+ Symbol,
56
+ T.nilable(ArkEmail::TenantUpdateParams::Metadata::Variants)
57
+ ]
58
+ ),
59
+ name: String,
60
+ status: ArkEmail::TenantUpdateParams::Status::OrSymbol,
61
+ request_options: ArkEmail::RequestOptions::OrHash
62
+ ).returns(T.attached_class)
63
+ end
64
+ def self.new(
65
+ # Custom key-value pairs. Useful for storing references to your internal systems.
66
+ #
67
+ # **Limits:**
68
+ #
69
+ # - Max 50 keys
70
+ # - Key names max 40 characters
71
+ # - String values max 500 characters
72
+ # - Total size max 8KB
73
+ metadata: nil,
74
+ # Display name for the tenant
75
+ name: nil,
76
+ # Tenant status
77
+ status: nil,
78
+ request_options: {}
79
+ )
80
+ end
81
+
82
+ sig do
83
+ override.returns(
84
+ {
85
+ metadata:
86
+ T.nilable(
87
+ T::Hash[
88
+ Symbol,
89
+ T.nilable(ArkEmail::TenantUpdateParams::Metadata::Variants)
90
+ ]
91
+ ),
92
+ name: String,
93
+ status: ArkEmail::TenantUpdateParams::Status::OrSymbol,
94
+ request_options: ArkEmail::RequestOptions
95
+ }
96
+ )
97
+ end
98
+ def to_hash
99
+ end
100
+
101
+ module Metadata
102
+ extend ArkEmail::Internal::Type::Union
103
+
104
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
105
+
106
+ sig do
107
+ override.returns(
108
+ T::Array[ArkEmail::TenantUpdateParams::Metadata::Variants]
109
+ )
110
+ end
111
+ def self.variants
112
+ end
113
+ end
114
+
115
+ # Tenant status
116
+ module Status
117
+ extend ArkEmail::Internal::Type::Enum
118
+
119
+ TaggedSymbol =
120
+ T.type_alias { T.all(Symbol, ArkEmail::TenantUpdateParams::Status) }
121
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
122
+
123
+ ACTIVE =
124
+ T.let(:active, ArkEmail::TenantUpdateParams::Status::TaggedSymbol)
125
+ SUSPENDED =
126
+ T.let(:suspended, ArkEmail::TenantUpdateParams::Status::TaggedSymbol)
127
+ ARCHIVED =
128
+ T.let(:archived, ArkEmail::TenantUpdateParams::Status::TaggedSymbol)
129
+
130
+ sig do
131
+ override.returns(
132
+ T::Array[ArkEmail::TenantUpdateParams::Status::TaggedSymbol]
133
+ )
134
+ end
135
+ def self.values
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,52 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class TenantUpdateResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::TenantUpdateResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Tenant) }
15
+ attr_reader :data
16
+
17
+ sig { params(data: ArkEmail::Tenant::OrHash).void }
18
+ attr_writer :data
19
+
20
+ sig { returns(ArkEmail::APIMeta) }
21
+ attr_reader :meta
22
+
23
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
24
+ attr_writer :meta
25
+
26
+ sig { returns(T::Boolean) }
27
+ attr_accessor :success
28
+
29
+ sig do
30
+ params(
31
+ data: ArkEmail::Tenant::OrHash,
32
+ meta: ArkEmail::APIMeta::OrHash,
33
+ success: T::Boolean
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(data:, meta:, success: true)
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ {
42
+ data: ArkEmail::Tenant,
43
+ meta: ArkEmail::APIMeta,
44
+ success: T::Boolean
45
+ }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
@@ -48,6 +48,18 @@ module ArkEmail
48
48
 
49
49
  SuppressionRetrieveParams = ArkEmail::Models::SuppressionRetrieveParams
50
50
 
51
+ Tenant = ArkEmail::Models::Tenant
52
+
53
+ TenantCreateParams = ArkEmail::Models::TenantCreateParams
54
+
55
+ TenantDeleteParams = ArkEmail::Models::TenantDeleteParams
56
+
57
+ TenantListParams = ArkEmail::Models::TenantListParams
58
+
59
+ TenantRetrieveParams = ArkEmail::Models::TenantRetrieveParams
60
+
61
+ TenantUpdateParams = ArkEmail::Models::TenantUpdateParams
62
+
51
63
  TrackDomain = ArkEmail::Models::TrackDomain
52
64
 
53
65
  TrackingCreateParams = ArkEmail::Models::TrackingCreateParams
@@ -0,0 +1,131 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Resources
5
+ class Tenants
6
+ # Create a new tenant.
7
+ #
8
+ # Returns the created tenant with a unique `id`. Store this ID in your database to
9
+ # reference this tenant later.
10
+ sig do
11
+ params(
12
+ name: String,
13
+ metadata:
14
+ T.nilable(
15
+ T::Hash[
16
+ Symbol,
17
+ T.nilable(ArkEmail::TenantCreateParams::Metadata::Variants)
18
+ ]
19
+ ),
20
+ request_options: ArkEmail::RequestOptions::OrHash
21
+ ).returns(ArkEmail::Models::TenantCreateResponse)
22
+ end
23
+ def create(
24
+ # Display name for the tenant (e.g., your customer's company name)
25
+ name:,
26
+ # Custom key-value pairs. Useful for storing references to your internal systems.
27
+ #
28
+ # **Limits:**
29
+ #
30
+ # - Max 50 keys
31
+ # - Key names max 40 characters
32
+ # - String values max 500 characters
33
+ # - Total size max 8KB
34
+ metadata: nil,
35
+ request_options: {}
36
+ )
37
+ end
38
+
39
+ # Get a tenant by ID.
40
+ sig do
41
+ params(
42
+ tenant_id: String,
43
+ request_options: ArkEmail::RequestOptions::OrHash
44
+ ).returns(ArkEmail::Models::TenantRetrieveResponse)
45
+ end
46
+ def retrieve(
47
+ # The tenant ID
48
+ tenant_id,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ # Update a tenant's name, metadata, or status. At least one field is required.
54
+ #
55
+ # Metadata is replaced entirely—include all keys you want to keep.
56
+ sig do
57
+ params(
58
+ tenant_id: String,
59
+ metadata:
60
+ T.nilable(
61
+ T::Hash[
62
+ Symbol,
63
+ T.nilable(ArkEmail::TenantUpdateParams::Metadata::Variants)
64
+ ]
65
+ ),
66
+ name: String,
67
+ status: ArkEmail::TenantUpdateParams::Status::OrSymbol,
68
+ request_options: ArkEmail::RequestOptions::OrHash
69
+ ).returns(ArkEmail::Models::TenantUpdateResponse)
70
+ end
71
+ def update(
72
+ # The tenant ID
73
+ tenant_id,
74
+ # Custom key-value pairs. Useful for storing references to your internal systems.
75
+ #
76
+ # **Limits:**
77
+ #
78
+ # - Max 50 keys
79
+ # - Key names max 40 characters
80
+ # - String values max 500 characters
81
+ # - Total size max 8KB
82
+ metadata: nil,
83
+ # Display name for the tenant
84
+ name: nil,
85
+ # Tenant status
86
+ status: nil,
87
+ request_options: {}
88
+ )
89
+ end
90
+
91
+ # List all tenants with pagination. Filter by `status` if needed.
92
+ sig do
93
+ params(
94
+ page: Integer,
95
+ per_page: Integer,
96
+ status: ArkEmail::TenantListParams::Status::OrSymbol,
97
+ request_options: ArkEmail::RequestOptions::OrHash
98
+ ).returns(ArkEmail::Internal::PageNumberPagination[ArkEmail::Tenant])
99
+ end
100
+ def list(
101
+ # Page number (1-indexed)
102
+ page: nil,
103
+ # Number of items per page (max 100)
104
+ per_page: nil,
105
+ # Filter by tenant status
106
+ status: nil,
107
+ request_options: {}
108
+ )
109
+ end
110
+
111
+ # Permanently delete a tenant. This cannot be undone.
112
+ sig do
113
+ params(
114
+ tenant_id: String,
115
+ request_options: ArkEmail::RequestOptions::OrHash
116
+ ).returns(ArkEmail::Models::TenantDeleteResponse)
117
+ end
118
+ def delete(
119
+ # The tenant ID
120
+ tenant_id,
121
+ request_options: {}
122
+ )
123
+ end
124
+
125
+ # @api private
126
+ sig { params(client: ArkEmail::Client).returns(T.attached_class) }
127
+ def self.new(client:)
128
+ end
129
+ end
130
+ end
131
+ end
@@ -24,6 +24,8 @@ module ArkEmail
24
24
 
25
25
  attr_reader usage: ArkEmail::Resources::Usage
26
26
 
27
+ attr_reader tenants: ArkEmail::Resources::Tenants
28
+
27
29
  private def auth_headers: -> ::Hash[String, String]
28
30
 
29
31
  def initialize: (
@@ -68,10 +68,14 @@ module ArkEmail
68
68
  status: String,
69
69
  timestamp: Float,
70
70
  timestamp_iso: Time,
71
+ classification: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::classification?,
72
+ classification_code: Integer?,
71
73
  code: Integer,
72
74
  details: String,
73
75
  output: String,
74
- sent_with_ssl: bool
76
+ remote_host: String?,
77
+ sent_with_ssl: bool,
78
+ smtp_enhanced_code: String?
75
79
  }
76
80
 
77
81
  class Delivery < ArkEmail::Internal::Type::BaseModel
@@ -83,6 +87,10 @@ module ArkEmail
83
87
 
84
88
  attr_accessor timestamp_iso: Time
85
89
 
90
+ attr_accessor classification: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::classification?
91
+
92
+ attr_accessor classification_code: Integer?
93
+
86
94
  attr_reader code: Integer?
87
95
 
88
96
  def code=: (Integer) -> Integer
@@ -95,19 +103,27 @@ module ArkEmail
95
103
 
96
104
  def output=: (String) -> String
97
105
 
106
+ attr_accessor remote_host: String?
107
+
98
108
  attr_reader sent_with_ssl: bool?
99
109
 
100
110
  def sent_with_ssl=: (bool) -> bool
101
111
 
112
+ attr_accessor smtp_enhanced_code: String?
113
+
102
114
  def initialize: (
103
115
  id: String,
104
116
  status: String,
105
117
  timestamp: Float,
106
118
  timestamp_iso: Time,
119
+ ?classification: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::classification?,
120
+ ?classification_code: Integer?,
107
121
  ?code: Integer,
108
122
  ?details: String,
109
123
  ?output: String,
110
- ?sent_with_ssl: bool
124
+ ?remote_host: String?,
125
+ ?sent_with_ssl: bool,
126
+ ?smtp_enhanced_code: String?
111
127
  ) -> void
112
128
 
113
129
  def to_hash: -> {
@@ -115,11 +131,50 @@ module ArkEmail
115
131
  status: String,
116
132
  timestamp: Float,
117
133
  timestamp_iso: Time,
134
+ classification: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::classification?,
135
+ classification_code: Integer?,
118
136
  code: Integer,
119
137
  details: String,
120
138
  output: String,
121
- sent_with_ssl: bool
139
+ remote_host: String?,
140
+ sent_with_ssl: bool,
141
+ smtp_enhanced_code: String?
122
142
  }
143
+
144
+ type classification =
145
+ :invalid_recipient
146
+ | :mailbox_full
147
+ | :message_too_large
148
+ | :spam_block
149
+ | :policy_violation
150
+ | :no_mailbox
151
+ | :not_accepting_mail
152
+ | :temporarily_unavailable
153
+ | :protocol_error
154
+ | :tls_required
155
+ | :connection_error
156
+ | :dns_error
157
+ | :unclassified
158
+
159
+ module Classification
160
+ extend ArkEmail::Internal::Type::Enum
161
+
162
+ INVALID_RECIPIENT: :invalid_recipient
163
+ MAILBOX_FULL: :mailbox_full
164
+ MESSAGE_TOO_LARGE: :message_too_large
165
+ SPAM_BLOCK: :spam_block
166
+ POLICY_VIOLATION: :policy_violation
167
+ NO_MAILBOX: :no_mailbox
168
+ NOT_ACCEPTING_MAIL: :not_accepting_mail
169
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
170
+ PROTOCOL_ERROR: :protocol_error
171
+ TLS_REQUIRED: :tls_required
172
+ CONNECTION_ERROR: :connection_error
173
+ DNS_ERROR: :dns_error
174
+ UNCLASSIFIED: :unclassified
175
+
176
+ def self?.values: -> ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery::classification]
177
+ end
123
178
  end
124
179
 
125
180
  type retry_state =
@@ -347,10 +347,14 @@ module ArkEmail
347
347
  status: String,
348
348
  timestamp: Float,
349
349
  timestamp_iso: Time,
350
+ classification: ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::classification?,
351
+ classification_code: Integer?,
350
352
  code: Integer,
351
353
  details: String,
352
354
  output: String,
353
- sent_with_ssl: bool
355
+ remote_host: String?,
356
+ sent_with_ssl: bool,
357
+ smtp_enhanced_code: String?
354
358
  }
355
359
 
356
360
  class Delivery < ArkEmail::Internal::Type::BaseModel
@@ -362,6 +366,10 @@ module ArkEmail
362
366
 
363
367
  attr_accessor timestamp_iso: Time
364
368
 
369
+ attr_accessor classification: ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::classification?
370
+
371
+ attr_accessor classification_code: Integer?
372
+
365
373
  attr_reader code: Integer?
366
374
 
367
375
  def code=: (Integer) -> Integer
@@ -374,19 +382,27 @@ module ArkEmail
374
382
 
375
383
  def output=: (String) -> String
376
384
 
385
+ attr_accessor remote_host: String?
386
+
377
387
  attr_reader sent_with_ssl: bool?
378
388
 
379
389
  def sent_with_ssl=: (bool) -> bool
380
390
 
391
+ attr_accessor smtp_enhanced_code: String?
392
+
381
393
  def initialize: (
382
394
  id: String,
383
395
  status: String,
384
396
  timestamp: Float,
385
397
  timestamp_iso: Time,
398
+ ?classification: ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::classification?,
399
+ ?classification_code: Integer?,
386
400
  ?code: Integer,
387
401
  ?details: String,
388
402
  ?output: String,
389
- ?sent_with_ssl: bool
403
+ ?remote_host: String?,
404
+ ?sent_with_ssl: bool,
405
+ ?smtp_enhanced_code: String?
390
406
  ) -> void
391
407
 
392
408
  def to_hash: -> {
@@ -394,11 +410,50 @@ module ArkEmail
394
410
  status: String,
395
411
  timestamp: Float,
396
412
  timestamp_iso: Time,
413
+ classification: ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::classification?,
414
+ classification_code: Integer?,
397
415
  code: Integer,
398
416
  details: String,
399
417
  output: String,
400
- sent_with_ssl: bool
418
+ remote_host: String?,
419
+ sent_with_ssl: bool,
420
+ smtp_enhanced_code: String?
401
421
  }
422
+
423
+ type classification =
424
+ :invalid_recipient
425
+ | :mailbox_full
426
+ | :message_too_large
427
+ | :spam_block
428
+ | :policy_violation
429
+ | :no_mailbox
430
+ | :not_accepting_mail
431
+ | :temporarily_unavailable
432
+ | :protocol_error
433
+ | :tls_required
434
+ | :connection_error
435
+ | :dns_error
436
+ | :unclassified
437
+
438
+ module Classification
439
+ extend ArkEmail::Internal::Type::Enum
440
+
441
+ INVALID_RECIPIENT: :invalid_recipient
442
+ MAILBOX_FULL: :mailbox_full
443
+ MESSAGE_TOO_LARGE: :message_too_large
444
+ SPAM_BLOCK: :spam_block
445
+ POLICY_VIOLATION: :policy_violation
446
+ NO_MAILBOX: :no_mailbox
447
+ NOT_ACCEPTING_MAIL: :not_accepting_mail
448
+ TEMPORARILY_UNAVAILABLE: :temporarily_unavailable
449
+ PROTOCOL_ERROR: :protocol_error
450
+ TLS_REQUIRED: :tls_required
451
+ CONNECTION_ERROR: :connection_error
452
+ DNS_ERROR: :dns_error
453
+ UNCLASSIFIED: :unclassified
454
+
455
+ def self?.values: -> ::Array[ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::classification]
456
+ end
402
457
  end
403
458
  end
404
459
  end