ark-email 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +3 -3
  4. data/lib/ark_email/client.rb +8 -0
  5. data/lib/ark_email/models/dns_record.rb +49 -19
  6. data/lib/ark_email/models/domain_create_response.rb +117 -25
  7. data/lib/ark_email/models/domain_list_response.rb +12 -13
  8. data/lib/ark_email/models/domain_retrieve_response.rb +117 -25
  9. data/lib/ark_email/models/domain_verify_response.rb +117 -25
  10. data/lib/ark_email/models/email_retrieve_params.rb +4 -1
  11. data/lib/ark_email/models/email_retrieve_response.rb +177 -1
  12. data/lib/ark_email/models/log_entry.rb +298 -0
  13. data/lib/ark_email/models/log_entry_detail.rb +102 -0
  14. data/lib/ark_email/models/log_list_params.rb +106 -0
  15. data/lib/ark_email/models/log_retrieve_params.rb +14 -0
  16. data/lib/ark_email/models/log_retrieve_response.rb +33 -0
  17. data/lib/ark_email/models/track_domain.rb +6 -2
  18. data/lib/ark_email/models/usage_retrieve_params.rb +14 -0
  19. data/lib/ark_email/models/usage_retrieve_response.rb +270 -0
  20. data/lib/ark_email/models/webhook_create_params.rb +0 -2
  21. data/lib/ark_email/models/webhook_create_response.rb +0 -2
  22. data/lib/ark_email/models/webhook_list_deliveries_params.rb +0 -2
  23. data/lib/ark_email/models/webhook_list_deliveries_response.rb +0 -2
  24. data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +0 -2
  25. data/lib/ark_email/models/webhook_retrieve_response.rb +0 -2
  26. data/lib/ark_email/models/webhook_test_params.rb +0 -2
  27. data/lib/ark_email/models/webhook_update_response.rb +0 -2
  28. data/lib/ark_email/models.rb +10 -0
  29. data/lib/ark_email/resources/logs.rb +120 -0
  30. data/lib/ark_email/resources/usage.rb +51 -0
  31. data/lib/ark_email/version.rb +1 -1
  32. data/lib/ark_email.rb +9 -0
  33. data/rbi/ark_email/client.rbi +6 -0
  34. data/rbi/ark_email/models/dns_record.rbi +57 -22
  35. data/rbi/ark_email/models/domain_create_response.rbi +189 -28
  36. data/rbi/ark_email/models/domain_list_response.rbi +13 -19
  37. data/rbi/ark_email/models/domain_retrieve_response.rbi +191 -28
  38. data/rbi/ark_email/models/domain_verify_response.rbi +189 -28
  39. data/rbi/ark_email/models/email_retrieve_params.rbi +8 -2
  40. data/rbi/ark_email/models/email_retrieve_response.rbi +379 -0
  41. data/rbi/ark_email/models/log_entry.rbi +431 -0
  42. data/rbi/ark_email/models/log_entry_detail.rbi +192 -0
  43. data/rbi/ark_email/models/log_list_params.rbi +163 -0
  44. data/rbi/ark_email/models/log_retrieve_params.rbi +27 -0
  45. data/rbi/ark_email/models/log_retrieve_response.rbi +59 -0
  46. data/rbi/ark_email/models/track_domain.rbi +4 -2
  47. data/rbi/ark_email/models/usage_retrieve_params.rbi +27 -0
  48. data/rbi/ark_email/models/usage_retrieve_response.rbi +511 -0
  49. data/rbi/ark_email/models/webhook_create_params.rbi +0 -10
  50. data/rbi/ark_email/models/webhook_create_response.rbi +0 -10
  51. data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +0 -10
  52. data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +0 -10
  53. data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +0 -10
  54. data/rbi/ark_email/models/webhook_retrieve_response.rbi +0 -10
  55. data/rbi/ark_email/models/webhook_test_params.rbi +0 -10
  56. data/rbi/ark_email/models/webhook_update_response.rbi +0 -10
  57. data/rbi/ark_email/models.rbi +10 -0
  58. data/rbi/ark_email/resources/emails.rbi +4 -1
  59. data/rbi/ark_email/resources/logs.rbi +104 -0
  60. data/rbi/ark_email/resources/usage.rbi +40 -0
  61. data/sig/ark_email/client.rbs +4 -0
  62. data/sig/ark_email/models/dns_record.rbs +5 -0
  63. data/sig/ark_email/models/domain_create_response.rbs +27 -20
  64. data/sig/ark_email/models/domain_list_response.rbs +4 -16
  65. data/sig/ark_email/models/domain_retrieve_response.rbs +27 -20
  66. data/sig/ark_email/models/domain_verify_response.rbs +27 -20
  67. data/sig/ark_email/models/email_retrieve_response.rbs +179 -0
  68. data/sig/ark_email/models/log_entry.rbs +209 -0
  69. data/sig/ark_email/models/log_entry_detail.rbs +97 -0
  70. data/sig/ark_email/models/log_list_params.rbs +97 -0
  71. data/sig/ark_email/models/log_retrieve_params.rbs +15 -0
  72. data/sig/ark_email/models/log_retrieve_response.rbs +26 -0
  73. data/sig/ark_email/models/usage_retrieve_params.rbs +15 -0
  74. data/sig/ark_email/models/usage_retrieve_response.rbs +212 -0
  75. data/sig/ark_email/models/webhook_create_params.rbs +0 -4
  76. data/sig/ark_email/models/webhook_create_response.rbs +0 -4
  77. data/sig/ark_email/models/webhook_list_deliveries_params.rbs +0 -4
  78. data/sig/ark_email/models/webhook_list_deliveries_response.rbs +0 -4
  79. data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +0 -4
  80. data/sig/ark_email/models/webhook_retrieve_response.rbs +0 -4
  81. data/sig/ark_email/models/webhook_test_params.rbs +0 -4
  82. data/sig/ark_email/models/webhook_update_response.rbs +0 -4
  83. data/sig/ark_email/models.rbs +10 -0
  84. data/sig/ark_email/resources/logs.rbs +25 -0
  85. data/sig/ark_email/resources/usage.rbs +11 -0
  86. metadata +29 -2
@@ -0,0 +1,163 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class LogListParams < 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::LogListParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ # Filter by API credential ID
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :credential_id
17
+
18
+ sig { params(credential_id: String).void }
19
+ attr_writer :credential_id
20
+
21
+ # Filter logs before this date (ISO 8601 format)
22
+ sig { returns(T.nilable(Time)) }
23
+ attr_reader :end_date
24
+
25
+ sig { params(end_date: Time).void }
26
+ attr_writer :end_date
27
+
28
+ # Filter by endpoint name
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :endpoint
31
+
32
+ sig { params(endpoint: String).void }
33
+ attr_writer :endpoint
34
+
35
+ # Page number
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :page
38
+
39
+ sig { params(page: Integer).void }
40
+ attr_writer :page
41
+
42
+ # Results per page (max 100)
43
+ sig { returns(T.nilable(Integer)) }
44
+ attr_reader :per_page
45
+
46
+ sig { params(per_page: Integer).void }
47
+ attr_writer :per_page
48
+
49
+ # Filter by request ID (partial match)
50
+ sig { returns(T.nilable(String)) }
51
+ attr_reader :request_id
52
+
53
+ sig { params(request_id: String).void }
54
+ attr_writer :request_id
55
+
56
+ # Filter logs after this date (ISO 8601 format)
57
+ sig { returns(T.nilable(Time)) }
58
+ attr_reader :start_date
59
+
60
+ sig { params(start_date: Time).void }
61
+ attr_writer :start_date
62
+
63
+ # Filter by status category:
64
+ #
65
+ # - `success` - Status codes < 400
66
+ # - `error` - Status codes >= 400
67
+ sig { returns(T.nilable(ArkEmail::LogListParams::Status::OrSymbol)) }
68
+ attr_reader :status
69
+
70
+ sig { params(status: ArkEmail::LogListParams::Status::OrSymbol).void }
71
+ attr_writer :status
72
+
73
+ # Filter by exact HTTP status code (100-599)
74
+ sig { returns(T.nilable(Integer)) }
75
+ attr_reader :status_code
76
+
77
+ sig { params(status_code: Integer).void }
78
+ attr_writer :status_code
79
+
80
+ sig do
81
+ params(
82
+ credential_id: String,
83
+ end_date: Time,
84
+ endpoint: String,
85
+ page: Integer,
86
+ per_page: Integer,
87
+ request_id: String,
88
+ start_date: Time,
89
+ status: ArkEmail::LogListParams::Status::OrSymbol,
90
+ status_code: Integer,
91
+ request_options: ArkEmail::RequestOptions::OrHash
92
+ ).returns(T.attached_class)
93
+ end
94
+ def self.new(
95
+ # Filter by API credential ID
96
+ credential_id: nil,
97
+ # Filter logs before this date (ISO 8601 format)
98
+ end_date: nil,
99
+ # Filter by endpoint name
100
+ endpoint: nil,
101
+ # Page number
102
+ page: nil,
103
+ # Results per page (max 100)
104
+ per_page: nil,
105
+ # Filter by request ID (partial match)
106
+ request_id: nil,
107
+ # Filter logs after this date (ISO 8601 format)
108
+ start_date: nil,
109
+ # Filter by status category:
110
+ #
111
+ # - `success` - Status codes < 400
112
+ # - `error` - Status codes >= 400
113
+ status: nil,
114
+ # Filter by exact HTTP status code (100-599)
115
+ status_code: nil,
116
+ request_options: {}
117
+ )
118
+ end
119
+
120
+ sig do
121
+ override.returns(
122
+ {
123
+ credential_id: String,
124
+ end_date: Time,
125
+ endpoint: String,
126
+ page: Integer,
127
+ per_page: Integer,
128
+ request_id: String,
129
+ start_date: Time,
130
+ status: ArkEmail::LogListParams::Status::OrSymbol,
131
+ status_code: Integer,
132
+ request_options: ArkEmail::RequestOptions
133
+ }
134
+ )
135
+ end
136
+ def to_hash
137
+ end
138
+
139
+ # Filter by status category:
140
+ #
141
+ # - `success` - Status codes < 400
142
+ # - `error` - Status codes >= 400
143
+ module Status
144
+ extend ArkEmail::Internal::Type::Enum
145
+
146
+ TaggedSymbol =
147
+ T.type_alias { T.all(Symbol, ArkEmail::LogListParams::Status) }
148
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
149
+
150
+ SUCCESS = T.let(:success, ArkEmail::LogListParams::Status::TaggedSymbol)
151
+ ERROR = T.let(:error, ArkEmail::LogListParams::Status::TaggedSymbol)
152
+
153
+ sig do
154
+ override.returns(
155
+ T::Array[ArkEmail::LogListParams::Status::TaggedSymbol]
156
+ )
157
+ end
158
+ def self.values
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class LogRetrieveParams < 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::LogRetrieveParams, 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,59 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class LogRetrieveResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::LogRetrieveResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Full API request log entry with bodies
15
+ sig { returns(ArkEmail::LogEntryDetail) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: ArkEmail::LogEntryDetail::OrHash).void }
19
+ attr_writer :data
20
+
21
+ sig { returns(ArkEmail::APIMeta) }
22
+ attr_reader :meta
23
+
24
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
25
+ attr_writer :meta
26
+
27
+ sig { returns(T::Boolean) }
28
+ attr_accessor :success
29
+
30
+ # Detailed API request log with request/response bodies
31
+ sig do
32
+ params(
33
+ data: ArkEmail::LogEntryDetail::OrHash,
34
+ meta: ArkEmail::APIMeta::OrHash,
35
+ success: T::Boolean
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Full API request log entry with bodies
40
+ data:,
41
+ meta:,
42
+ success: true
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ data: ArkEmail::LogEntryDetail,
50
+ meta: ArkEmail::APIMeta,
51
+ success: T::Boolean
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+ end
58
+ end
59
+ end
@@ -16,7 +16,8 @@ module ArkEmail
16
16
  sig { returns(Time) }
17
17
  attr_accessor :created_at
18
18
 
19
- # Whether DNS is correctly configured
19
+ # Whether the tracking CNAME record is correctly configured. Must be true to use
20
+ # tracking features.
20
21
  sig { returns(T::Boolean) }
21
22
  attr_accessor :dns_ok
22
23
 
@@ -99,7 +100,8 @@ module ArkEmail
99
100
  id:,
100
101
  # When the track domain was created
101
102
  created_at:,
102
- # Whether DNS is correctly configured
103
+ # Whether the tracking CNAME record is correctly configured. Must be true to use
104
+ # tracking features.
103
105
  dns_ok:,
104
106
  # ID of the parent sending domain
105
107
  domain_id:,
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class UsageRetrieveParams < 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::UsageRetrieveParams, 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