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.
Files changed (272) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +71 -0
  4. data/README.md +303 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/ark_email/client.rb +102 -0
  7. data/lib/ark_email/errors.rb +228 -0
  8. data/lib/ark_email/file_part.rb +58 -0
  9. data/lib/ark_email/internal/page_number_pagination.rb +121 -0
  10. data/lib/ark_email/internal/transport/base_client.rb +573 -0
  11. data/lib/ark_email/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/ark_email/internal/type/array_of.rb +168 -0
  13. data/lib/ark_email/internal/type/base_model.rb +529 -0
  14. data/lib/ark_email/internal/type/base_page.rb +55 -0
  15. data/lib/ark_email/internal/type/boolean.rb +77 -0
  16. data/lib/ark_email/internal/type/converter.rb +327 -0
  17. data/lib/ark_email/internal/type/enum.rb +131 -0
  18. data/lib/ark_email/internal/type/file_input.rb +111 -0
  19. data/lib/ark_email/internal/type/hash_of.rb +188 -0
  20. data/lib/ark_email/internal/type/request_parameters.rb +42 -0
  21. data/lib/ark_email/internal/type/union.rb +237 -0
  22. data/lib/ark_email/internal/type/unknown.rb +81 -0
  23. data/lib/ark_email/internal/util.rb +920 -0
  24. data/lib/ark_email/internal.rb +20 -0
  25. data/lib/ark_email/models/api_meta.rb +16 -0
  26. data/lib/ark_email/models/dns_record.rb +81 -0
  27. data/lib/ark_email/models/domain_create_params.rb +22 -0
  28. data/lib/ark_email/models/domain_create_response.rb +110 -0
  29. data/lib/ark_email/models/domain_delete_params.rb +14 -0
  30. data/lib/ark_email/models/domain_delete_response.rb +39 -0
  31. data/lib/ark_email/models/domain_list_params.rb +14 -0
  32. data/lib/ark_email/models/domain_list_response.rb +72 -0
  33. data/lib/ark_email/models/domain_retrieve_params.rb +14 -0
  34. data/lib/ark_email/models/domain_retrieve_response.rb +110 -0
  35. data/lib/ark_email/models/domain_verify_params.rb +14 -0
  36. data/lib/ark_email/models/domain_verify_response.rb +110 -0
  37. data/lib/ark_email/models/email_list_params.rb +110 -0
  38. data/lib/ark_email/models/email_list_response.rb +108 -0
  39. data/lib/ark_email/models/email_retrieve_deliveries_params.rb +14 -0
  40. data/lib/ark_email/models/email_retrieve_deliveries_response.rb +123 -0
  41. data/lib/ark_email/models/email_retrieve_params.rb +30 -0
  42. data/lib/ark_email/models/email_retrieve_response.rb +285 -0
  43. data/lib/ark_email/models/email_retry_params.rb +14 -0
  44. data/lib/ark_email/models/email_retry_response.rb +39 -0
  45. data/lib/ark_email/models/email_send_batch_params.rb +70 -0
  46. data/lib/ark_email/models/email_send_batch_response.rb +83 -0
  47. data/lib/ark_email/models/email_send_params.rb +149 -0
  48. data/lib/ark_email/models/email_send_raw_params.rb +38 -0
  49. data/lib/ark_email/models/email_send_raw_response.rb +77 -0
  50. data/lib/ark_email/models/email_send_response.rb +77 -0
  51. data/lib/ark_email/models/suppression_bulk_create_params.rb +37 -0
  52. data/lib/ark_email/models/suppression_bulk_create_response.rb +64 -0
  53. data/lib/ark_email/models/suppression_create_params.rb +30 -0
  54. data/lib/ark_email/models/suppression_create_response.rb +62 -0
  55. data/lib/ark_email/models/suppression_delete_params.rb +14 -0
  56. data/lib/ark_email/models/suppression_delete_response.rb +39 -0
  57. data/lib/ark_email/models/suppression_list_params.rb +26 -0
  58. data/lib/ark_email/models/suppression_list_response.rb +38 -0
  59. data/lib/ark_email/models/suppression_retrieve_params.rb +14 -0
  60. data/lib/ark_email/models/suppression_retrieve_response.rb +64 -0
  61. data/lib/ark_email/models/track_domain.rb +172 -0
  62. data/lib/ark_email/models/tracking_create_params.rb +54 -0
  63. data/lib/ark_email/models/tracking_create_response.rb +28 -0
  64. data/lib/ark_email/models/tracking_delete_params.rb +14 -0
  65. data/lib/ark_email/models/tracking_delete_response.rb +39 -0
  66. data/lib/ark_email/models/tracking_list_params.rb +14 -0
  67. data/lib/ark_email/models/tracking_list_response.rb +41 -0
  68. data/lib/ark_email/models/tracking_retrieve_params.rb +14 -0
  69. data/lib/ark_email/models/tracking_retrieve_response.rb +28 -0
  70. data/lib/ark_email/models/tracking_update_params.rb +46 -0
  71. data/lib/ark_email/models/tracking_update_response.rb +28 -0
  72. data/lib/ark_email/models/tracking_verify_params.rb +14 -0
  73. data/lib/ark_email/models/tracking_verify_response.rb +133 -0
  74. data/lib/ark_email/models/webhook_create_params.rb +81 -0
  75. data/lib/ark_email/models/webhook_create_response.rb +111 -0
  76. data/lib/ark_email/models/webhook_delete_params.rb +14 -0
  77. data/lib/ark_email/models/webhook_delete_response.rb +39 -0
  78. data/lib/ark_email/models/webhook_list_params.rb +14 -0
  79. data/lib/ark_email/models/webhook_list_response.rb +79 -0
  80. data/lib/ark_email/models/webhook_retrieve_params.rb +14 -0
  81. data/lib/ark_email/models/webhook_retrieve_response.rb +111 -0
  82. data/lib/ark_email/models/webhook_test_params.rb +39 -0
  83. data/lib/ark_email/models/webhook_test_response.rb +80 -0
  84. data/lib/ark_email/models/webhook_update_params.rb +44 -0
  85. data/lib/ark_email/models/webhook_update_response.rb +111 -0
  86. data/lib/ark_email/models.rb +105 -0
  87. data/lib/ark_email/request_options.rb +77 -0
  88. data/lib/ark_email/resources/domains.rb +127 -0
  89. data/lib/ark_email/resources/emails.rb +263 -0
  90. data/lib/ark_email/resources/suppressions.rb +124 -0
  91. data/lib/ark_email/resources/tracking.rb +167 -0
  92. data/lib/ark_email/resources/webhooks.rb +175 -0
  93. data/lib/ark_email/version.rb +5 -0
  94. data/lib/ark_email.rb +122 -0
  95. data/manifest.yaml +17 -0
  96. data/rbi/ark_email/client.rbi +73 -0
  97. data/rbi/ark_email/errors.rbi +205 -0
  98. data/rbi/ark_email/file_part.rbi +37 -0
  99. data/rbi/ark_email/internal/page_number_pagination.rbi +52 -0
  100. data/rbi/ark_email/internal/transport/base_client.rbi +297 -0
  101. data/rbi/ark_email/internal/transport/pooled_net_requester.rbi +83 -0
  102. data/rbi/ark_email/internal/type/array_of.rbi +104 -0
  103. data/rbi/ark_email/internal/type/base_model.rbi +306 -0
  104. data/rbi/ark_email/internal/type/base_page.rbi +42 -0
  105. data/rbi/ark_email/internal/type/boolean.rbi +58 -0
  106. data/rbi/ark_email/internal/type/converter.rbi +216 -0
  107. data/rbi/ark_email/internal/type/enum.rbi +82 -0
  108. data/rbi/ark_email/internal/type/file_input.rbi +59 -0
  109. data/rbi/ark_email/internal/type/hash_of.rbi +104 -0
  110. data/rbi/ark_email/internal/type/request_parameters.rbi +29 -0
  111. data/rbi/ark_email/internal/type/union.rbi +128 -0
  112. data/rbi/ark_email/internal/type/unknown.rbi +58 -0
  113. data/rbi/ark_email/internal/util.rbi +487 -0
  114. data/rbi/ark_email/internal.rbi +16 -0
  115. data/rbi/ark_email/models/api_meta.rbi +25 -0
  116. data/rbi/ark_email/models/dns_record.rbi +111 -0
  117. data/rbi/ark_email/models/domain_create_params.rbi +40 -0
  118. data/rbi/ark_email/models/domain_create_response.rbi +193 -0
  119. data/rbi/ark_email/models/domain_delete_params.rbi +27 -0
  120. data/rbi/ark_email/models/domain_delete_response.rbi +75 -0
  121. data/rbi/ark_email/models/domain_list_params.rbi +27 -0
  122. data/rbi/ark_email/models/domain_list_response.rbi +144 -0
  123. data/rbi/ark_email/models/domain_retrieve_params.rbi +27 -0
  124. data/rbi/ark_email/models/domain_retrieve_response.rbi +195 -0
  125. data/rbi/ark_email/models/domain_verify_params.rbi +27 -0
  126. data/rbi/ark_email/models/domain_verify_response.rbi +193 -0
  127. data/rbi/ark_email/models/email_list_params.rbi +172 -0
  128. data/rbi/ark_email/models/email_list_response.rbi +164 -0
  129. data/rbi/ark_email/models/email_retrieve_deliveries_params.rbi +30 -0
  130. data/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +220 -0
  131. data/rbi/ark_email/models/email_retrieve_params.rbi +53 -0
  132. data/rbi/ark_email/models/email_retrieve_response.rbi +490 -0
  133. data/rbi/ark_email/models/email_retry_params.rbi +27 -0
  134. data/rbi/ark_email/models/email_retry_response.rbi +75 -0
  135. data/rbi/ark_email/models/email_send_batch_params.rbi +118 -0
  136. data/rbi/ark_email/models/email_send_batch_response.rbi +159 -0
  137. data/rbi/ark_email/models/email_send_params.rbi +229 -0
  138. data/rbi/ark_email/models/email_send_raw_params.rbi +59 -0
  139. data/rbi/ark_email/models/email_send_raw_response.rbi +157 -0
  140. data/rbi/ark_email/models/email_send_response.rbi +153 -0
  141. data/rbi/ark_email/models/suppression_bulk_create_params.rbi +76 -0
  142. data/rbi/ark_email/models/suppression_bulk_create_response.rbi +115 -0
  143. data/rbi/ark_email/models/suppression_create_params.rbi +54 -0
  144. data/rbi/ark_email/models/suppression_create_response.rbi +109 -0
  145. data/rbi/ark_email/models/suppression_delete_params.rbi +27 -0
  146. data/rbi/ark_email/models/suppression_delete_response.rbi +77 -0
  147. data/rbi/ark_email/models/suppression_list_params.rbi +49 -0
  148. data/rbi/ark_email/models/suppression_list_response.rbi +56 -0
  149. data/rbi/ark_email/models/suppression_retrieve_params.rbi +30 -0
  150. data/rbi/ark_email/models/suppression_retrieve_response.rbi +115 -0
  151. data/rbi/ark_email/models/track_domain.rbi +228 -0
  152. data/rbi/ark_email/models/tracking_create_params.rbi +84 -0
  153. data/rbi/ark_email/models/tracking_create_response.rbi +52 -0
  154. data/rbi/ark_email/models/tracking_delete_params.rbi +27 -0
  155. data/rbi/ark_email/models/tracking_delete_response.rbi +77 -0
  156. data/rbi/ark_email/models/tracking_list_params.rbi +27 -0
  157. data/rbi/ark_email/models/tracking_list_response.rbi +81 -0
  158. data/rbi/ark_email/models/tracking_retrieve_params.rbi +27 -0
  159. data/rbi/ark_email/models/tracking_retrieve_response.rbi +52 -0
  160. data/rbi/ark_email/models/tracking_update_params.rbi +79 -0
  161. data/rbi/ark_email/models/tracking_update_response.rbi +52 -0
  162. data/rbi/ark_email/models/tracking_verify_params.rbi +27 -0
  163. data/rbi/ark_email/models/tracking_verify_response.rbi +254 -0
  164. data/rbi/ark_email/models/webhook_create_params.rbi +154 -0
  165. data/rbi/ark_email/models/webhook_create_response.rbi +217 -0
  166. data/rbi/ark_email/models/webhook_delete_params.rbi +27 -0
  167. data/rbi/ark_email/models/webhook_delete_response.rbi +75 -0
  168. data/rbi/ark_email/models/webhook_list_params.rbi +27 -0
  169. data/rbi/ark_email/models/webhook_list_response.rbi +152 -0
  170. data/rbi/ark_email/models/webhook_retrieve_params.rbi +27 -0
  171. data/rbi/ark_email/models/webhook_retrieve_response.rbi +219 -0
  172. data/rbi/ark_email/models/webhook_test_params.rbi +95 -0
  173. data/rbi/ark_email/models/webhook_test_response.rbi +129 -0
  174. data/rbi/ark_email/models/webhook_update_params.rbi +80 -0
  175. data/rbi/ark_email/models/webhook_update_response.rbi +217 -0
  176. data/rbi/ark_email/models.rbi +68 -0
  177. data/rbi/ark_email/request_options.rbi +59 -0
  178. data/rbi/ark_email/resources/domains.rbi +84 -0
  179. data/rbi/ark_email/resources/emails.rbi +237 -0
  180. data/rbi/ark_email/resources/suppressions.rbi +84 -0
  181. data/rbi/ark_email/resources/tracking.rbi +130 -0
  182. data/rbi/ark_email/resources/webhooks.rbi +137 -0
  183. data/rbi/ark_email/version.rbi +5 -0
  184. data/sig/ark_email/client.rbs +34 -0
  185. data/sig/ark_email/errors.rbs +117 -0
  186. data/sig/ark_email/file_part.rbs +21 -0
  187. data/sig/ark_email/internal/page_number_pagination.rbs +32 -0
  188. data/sig/ark_email/internal/transport/base_client.rbs +133 -0
  189. data/sig/ark_email/internal/transport/pooled_net_requester.rbs +48 -0
  190. data/sig/ark_email/internal/type/array_of.rbs +48 -0
  191. data/sig/ark_email/internal/type/base_model.rbs +102 -0
  192. data/sig/ark_email/internal/type/base_page.rbs +24 -0
  193. data/sig/ark_email/internal/type/boolean.rbs +26 -0
  194. data/sig/ark_email/internal/type/converter.rbs +79 -0
  195. data/sig/ark_email/internal/type/enum.rbs +32 -0
  196. data/sig/ark_email/internal/type/file_input.rbs +25 -0
  197. data/sig/ark_email/internal/type/hash_of.rbs +48 -0
  198. data/sig/ark_email/internal/type/request_parameters.rbs +17 -0
  199. data/sig/ark_email/internal/type/union.rbs +52 -0
  200. data/sig/ark_email/internal/type/unknown.rbs +26 -0
  201. data/sig/ark_email/internal/util.rbs +185 -0
  202. data/sig/ark_email/internal.rbs +9 -0
  203. data/sig/ark_email/models/api_meta.rbs +13 -0
  204. data/sig/ark_email/models/dns_record.rbs +59 -0
  205. data/sig/ark_email/models/domain_create_params.rbs +23 -0
  206. data/sig/ark_email/models/domain_create_response.rbs +104 -0
  207. data/sig/ark_email/models/domain_delete_params.rbs +15 -0
  208. data/sig/ark_email/models/domain_delete_response.rbs +40 -0
  209. data/sig/ark_email/models/domain_list_params.rbs +15 -0
  210. data/sig/ark_email/models/domain_list_response.rbs +71 -0
  211. data/sig/ark_email/models/domain_retrieve_params.rbs +15 -0
  212. data/sig/ark_email/models/domain_retrieve_response.rbs +104 -0
  213. data/sig/ark_email/models/domain_verify_params.rbs +15 -0
  214. data/sig/ark_email/models/domain_verify_response.rbs +104 -0
  215. data/sig/ark_email/models/email_list_params.rbs +94 -0
  216. data/sig/ark_email/models/email_list_response.rbs +77 -0
  217. data/sig/ark_email/models/email_retrieve_deliveries_params.rbs +15 -0
  218. data/sig/ark_email/models/email_retrieve_deliveries_response.rbs +117 -0
  219. data/sig/ark_email/models/email_retrieve_params.rbs +25 -0
  220. data/sig/ark_email/models/email_retrieve_response.rbs +232 -0
  221. data/sig/ark_email/models/email_retry_params.rbs +15 -0
  222. data/sig/ark_email/models/email_retry_response.rbs +40 -0
  223. data/sig/ark_email/models/email_send_batch_params.rbs +81 -0
  224. data/sig/ark_email/models/email_send_batch_response.rbs +74 -0
  225. data/sig/ark_email/models/email_send_params.rbs +124 -0
  226. data/sig/ark_email/models/email_send_raw_params.rbs +32 -0
  227. data/sig/ark_email/models/email_send_raw_response.rbs +75 -0
  228. data/sig/ark_email/models/email_send_response.rbs +75 -0
  229. data/sig/ark_email/models/suppression_bulk_create_params.rbs +40 -0
  230. data/sig/ark_email/models/suppression_bulk_create_response.rbs +62 -0
  231. data/sig/ark_email/models/suppression_create_params.rbs +30 -0
  232. data/sig/ark_email/models/suppression_create_response.rbs +59 -0
  233. data/sig/ark_email/models/suppression_delete_params.rbs +15 -0
  234. data/sig/ark_email/models/suppression_delete_response.rbs +40 -0
  235. data/sig/ark_email/models/suppression_list_params.rbs +32 -0
  236. data/sig/ark_email/models/suppression_list_response.rbs +32 -0
  237. data/sig/ark_email/models/suppression_retrieve_params.rbs +15 -0
  238. data/sig/ark_email/models/suppression_retrieve_response.rbs +62 -0
  239. data/sig/ark_email/models/track_domain.rbs +122 -0
  240. data/sig/ark_email/models/tracking_create_params.rbs +52 -0
  241. data/sig/ark_email/models/tracking_create_response.rbs +26 -0
  242. data/sig/ark_email/models/tracking_delete_params.rbs +15 -0
  243. data/sig/ark_email/models/tracking_delete_response.rbs +40 -0
  244. data/sig/ark_email/models/tracking_list_params.rbs +15 -0
  245. data/sig/ark_email/models/tracking_list_response.rbs +40 -0
  246. data/sig/ark_email/models/tracking_retrieve_params.rbs +15 -0
  247. data/sig/ark_email/models/tracking_retrieve_response.rbs +26 -0
  248. data/sig/ark_email/models/tracking_update_params.rbs +49 -0
  249. data/sig/ark_email/models/tracking_update_response.rbs +26 -0
  250. data/sig/ark_email/models/tracking_verify_params.rbs +15 -0
  251. data/sig/ark_email/models/tracking_verify_response.rbs +109 -0
  252. data/sig/ark_email/models/webhook_create_params.rbs +75 -0
  253. data/sig/ark_email/models/webhook_create_response.rbs +107 -0
  254. data/sig/ark_email/models/webhook_delete_params.rbs +15 -0
  255. data/sig/ark_email/models/webhook_delete_response.rbs +40 -0
  256. data/sig/ark_email/models/webhook_list_params.rbs +15 -0
  257. data/sig/ark_email/models/webhook_list_response.rbs +84 -0
  258. data/sig/ark_email/models/webhook_retrieve_params.rbs +15 -0
  259. data/sig/ark_email/models/webhook_retrieve_response.rbs +107 -0
  260. data/sig/ark_email/models/webhook_test_params.rbs +49 -0
  261. data/sig/ark_email/models/webhook_test_response.rbs +72 -0
  262. data/sig/ark_email/models/webhook_update_params.rbs +56 -0
  263. data/sig/ark_email/models/webhook_update_response.rbs +107 -0
  264. data/sig/ark_email/models.rbs +65 -0
  265. data/sig/ark_email/request_options.rbs +34 -0
  266. data/sig/ark_email/resources/domains.rbs +31 -0
  267. data/sig/ark_email/resources/emails.rbs +65 -0
  268. data/sig/ark_email/resources/suppressions.rbs +34 -0
  269. data/sig/ark_email/resources/tracking.rbs +44 -0
  270. data/sig/ark_email/resources/webhooks.rbs +46 -0
  271. data/sig/ark_email/version.rbs +3 -0
  272. metadata +343 -0
@@ -0,0 +1,490 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailRetrieveResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::EmailRetrieveResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::EmailRetrieveResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: ArkEmail::Models::EmailRetrieveResponse::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::EmailRetrieveResponse::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::EmailRetrieveResponse::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::EmailRetrieveResponse::Data,
58
+ ArkEmail::Internal::AnyHash
59
+ )
60
+ end
61
+
62
+ # Internal message ID
63
+ sig { returns(String) }
64
+ attr_accessor :id
65
+
66
+ # Unique message token used to retrieve this email via API. Combined with id to
67
+ # form the full message identifier: msg*{id}*{token} Use this token with GET
68
+ # /emails/{emailId} where emailId = "msg*{id}*{token}"
69
+ sig { returns(String) }
70
+ attr_accessor :token
71
+
72
+ # Sender address
73
+ sig { returns(String) }
74
+ attr_accessor :from
75
+
76
+ # Message direction
77
+ sig do
78
+ returns(
79
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::TaggedSymbol
80
+ )
81
+ end
82
+ attr_accessor :scope
83
+
84
+ # Current delivery status:
85
+ #
86
+ # - `pending` - Email accepted, waiting to be processed
87
+ # - `sent` - Email transmitted to recipient's mail server
88
+ # - `softfail` - Temporary delivery failure, will retry
89
+ # - `hardfail` - Permanent delivery failure
90
+ # - `bounced` - Email bounced back
91
+ # - `held` - Held for manual review
92
+ sig do
93
+ returns(
94
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
95
+ )
96
+ end
97
+ attr_accessor :status
98
+
99
+ # Email subject line
100
+ sig { returns(String) }
101
+ attr_accessor :subject
102
+
103
+ # Unix timestamp when the email was sent
104
+ sig { returns(Float) }
105
+ attr_accessor :timestamp
106
+
107
+ # ISO 8601 formatted timestamp
108
+ sig { returns(Time) }
109
+ attr_accessor :timestamp_iso
110
+
111
+ # Recipient address
112
+ sig { returns(String) }
113
+ attr_accessor :to
114
+
115
+ # Delivery attempt history (included if expand=deliveries)
116
+ sig do
117
+ returns(
118
+ T.nilable(
119
+ T::Array[ArkEmail::Models::EmailRetrieveResponse::Data::Delivery]
120
+ )
121
+ )
122
+ end
123
+ attr_reader :deliveries
124
+
125
+ sig do
126
+ params(
127
+ deliveries:
128
+ T::Array[
129
+ ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::OrHash
130
+ ]
131
+ ).void
132
+ end
133
+ attr_writer :deliveries
134
+
135
+ # Email headers (included if expand=headers)
136
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
137
+ attr_reader :headers
138
+
139
+ sig { params(headers: T::Hash[Symbol, String]).void }
140
+ attr_writer :headers
141
+
142
+ # HTML body content (included if expand=content)
143
+ sig { returns(T.nilable(String)) }
144
+ attr_reader :html_body
145
+
146
+ sig { params(html_body: String).void }
147
+ attr_writer :html_body
148
+
149
+ # SMTP Message-ID header
150
+ sig { returns(T.nilable(String)) }
151
+ attr_reader :message_id
152
+
153
+ sig { params(message_id: String).void }
154
+ attr_writer :message_id
155
+
156
+ # Plain text body (included if expand=content)
157
+ sig { returns(T.nilable(String)) }
158
+ attr_reader :plain_body
159
+
160
+ sig { params(plain_body: String).void }
161
+ attr_writer :plain_body
162
+
163
+ # Whether the message was flagged as spam
164
+ sig { returns(T.nilable(T::Boolean)) }
165
+ attr_reader :spam
166
+
167
+ sig { params(spam: T::Boolean).void }
168
+ attr_writer :spam
169
+
170
+ # Spam score (if applicable)
171
+ sig { returns(T.nilable(Float)) }
172
+ attr_reader :spam_score
173
+
174
+ sig { params(spam_score: Float).void }
175
+ attr_writer :spam_score
176
+
177
+ # Optional categorization tag
178
+ sig { returns(T.nilable(String)) }
179
+ attr_reader :tag
180
+
181
+ sig { params(tag: String).void }
182
+ attr_writer :tag
183
+
184
+ sig do
185
+ params(
186
+ id: String,
187
+ token: String,
188
+ from: String,
189
+ scope:
190
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::OrSymbol,
191
+ status:
192
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::OrSymbol,
193
+ subject: String,
194
+ timestamp: Float,
195
+ timestamp_iso: Time,
196
+ to: String,
197
+ deliveries:
198
+ T::Array[
199
+ ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::OrHash
200
+ ],
201
+ headers: T::Hash[Symbol, String],
202
+ html_body: String,
203
+ message_id: String,
204
+ plain_body: String,
205
+ spam: T::Boolean,
206
+ spam_score: Float,
207
+ tag: String
208
+ ).returns(T.attached_class)
209
+ end
210
+ def self.new(
211
+ # Internal message ID
212
+ id:,
213
+ # Unique message token used to retrieve this email via API. Combined with id to
214
+ # form the full message identifier: msg*{id}*{token} Use this token with GET
215
+ # /emails/{emailId} where emailId = "msg*{id}*{token}"
216
+ token:,
217
+ # Sender address
218
+ from:,
219
+ # Message direction
220
+ scope:,
221
+ # Current delivery status:
222
+ #
223
+ # - `pending` - Email accepted, waiting to be processed
224
+ # - `sent` - Email transmitted to recipient's mail server
225
+ # - `softfail` - Temporary delivery failure, will retry
226
+ # - `hardfail` - Permanent delivery failure
227
+ # - `bounced` - Email bounced back
228
+ # - `held` - Held for manual review
229
+ status:,
230
+ # Email subject line
231
+ subject:,
232
+ # Unix timestamp when the email was sent
233
+ timestamp:,
234
+ # ISO 8601 formatted timestamp
235
+ timestamp_iso:,
236
+ # Recipient address
237
+ to:,
238
+ # Delivery attempt history (included if expand=deliveries)
239
+ deliveries: nil,
240
+ # Email headers (included if expand=headers)
241
+ headers: nil,
242
+ # HTML body content (included if expand=content)
243
+ html_body: nil,
244
+ # SMTP Message-ID header
245
+ message_id: nil,
246
+ # Plain text body (included if expand=content)
247
+ plain_body: nil,
248
+ # Whether the message was flagged as spam
249
+ spam: nil,
250
+ # Spam score (if applicable)
251
+ spam_score: nil,
252
+ # Optional categorization tag
253
+ tag: nil
254
+ )
255
+ end
256
+
257
+ sig do
258
+ override.returns(
259
+ {
260
+ id: String,
261
+ token: String,
262
+ from: String,
263
+ scope:
264
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::TaggedSymbol,
265
+ status:
266
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol,
267
+ subject: String,
268
+ timestamp: Float,
269
+ timestamp_iso: Time,
270
+ to: String,
271
+ deliveries:
272
+ T::Array[
273
+ ArkEmail::Models::EmailRetrieveResponse::Data::Delivery
274
+ ],
275
+ headers: T::Hash[Symbol, String],
276
+ html_body: String,
277
+ message_id: String,
278
+ plain_body: String,
279
+ spam: T::Boolean,
280
+ spam_score: Float,
281
+ tag: String
282
+ }
283
+ )
284
+ end
285
+ def to_hash
286
+ end
287
+
288
+ # Message direction
289
+ module Scope
290
+ extend ArkEmail::Internal::Type::Enum
291
+
292
+ TaggedSymbol =
293
+ T.type_alias do
294
+ T.all(
295
+ Symbol,
296
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope
297
+ )
298
+ end
299
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
300
+
301
+ OUTGOING =
302
+ T.let(
303
+ :outgoing,
304
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::TaggedSymbol
305
+ )
306
+ INCOMING =
307
+ T.let(
308
+ :incoming,
309
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::TaggedSymbol
310
+ )
311
+
312
+ sig do
313
+ override.returns(
314
+ T::Array[
315
+ ArkEmail::Models::EmailRetrieveResponse::Data::Scope::TaggedSymbol
316
+ ]
317
+ )
318
+ end
319
+ def self.values
320
+ end
321
+ end
322
+
323
+ # Current delivery status:
324
+ #
325
+ # - `pending` - Email accepted, waiting to be processed
326
+ # - `sent` - Email transmitted to recipient's mail server
327
+ # - `softfail` - Temporary delivery failure, will retry
328
+ # - `hardfail` - Permanent delivery failure
329
+ # - `bounced` - Email bounced back
330
+ # - `held` - Held for manual review
331
+ module Status
332
+ extend ArkEmail::Internal::Type::Enum
333
+
334
+ TaggedSymbol =
335
+ T.type_alias do
336
+ T.all(
337
+ Symbol,
338
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status
339
+ )
340
+ end
341
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
342
+
343
+ PENDING =
344
+ T.let(
345
+ :pending,
346
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
347
+ )
348
+ SENT =
349
+ T.let(
350
+ :sent,
351
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
352
+ )
353
+ SOFTFAIL =
354
+ T.let(
355
+ :softfail,
356
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
357
+ )
358
+ HARDFAIL =
359
+ T.let(
360
+ :hardfail,
361
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
362
+ )
363
+ BOUNCED =
364
+ T.let(
365
+ :bounced,
366
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
367
+ )
368
+ HELD =
369
+ T.let(
370
+ :held,
371
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
372
+ )
373
+
374
+ sig do
375
+ override.returns(
376
+ T::Array[
377
+ ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol
378
+ ]
379
+ )
380
+ end
381
+ def self.values
382
+ end
383
+ end
384
+
385
+ class Delivery < ArkEmail::Internal::Type::BaseModel
386
+ OrHash =
387
+ T.type_alias do
388
+ T.any(
389
+ ArkEmail::Models::EmailRetrieveResponse::Data::Delivery,
390
+ ArkEmail::Internal::AnyHash
391
+ )
392
+ end
393
+
394
+ # Delivery attempt ID
395
+ sig { returns(String) }
396
+ attr_accessor :id
397
+
398
+ # Delivery status (lowercase)
399
+ sig { returns(String) }
400
+ attr_accessor :status
401
+
402
+ # Unix timestamp
403
+ sig { returns(Float) }
404
+ attr_accessor :timestamp
405
+
406
+ # ISO 8601 timestamp
407
+ sig { returns(Time) }
408
+ attr_accessor :timestamp_iso
409
+
410
+ # SMTP response code
411
+ sig { returns(T.nilable(Integer)) }
412
+ attr_reader :code
413
+
414
+ sig { params(code: Integer).void }
415
+ attr_writer :code
416
+
417
+ # Status details
418
+ sig { returns(T.nilable(String)) }
419
+ attr_reader :details
420
+
421
+ sig { params(details: String).void }
422
+ attr_writer :details
423
+
424
+ # SMTP server response from the receiving mail server
425
+ sig { returns(T.nilable(String)) }
426
+ attr_reader :output
427
+
428
+ sig { params(output: String).void }
429
+ attr_writer :output
430
+
431
+ # Whether TLS was used
432
+ sig { returns(T.nilable(T::Boolean)) }
433
+ attr_reader :sent_with_ssl
434
+
435
+ sig { params(sent_with_ssl: T::Boolean).void }
436
+ attr_writer :sent_with_ssl
437
+
438
+ sig do
439
+ params(
440
+ id: String,
441
+ status: String,
442
+ timestamp: Float,
443
+ timestamp_iso: Time,
444
+ code: Integer,
445
+ details: String,
446
+ output: String,
447
+ sent_with_ssl: T::Boolean
448
+ ).returns(T.attached_class)
449
+ end
450
+ def self.new(
451
+ # Delivery attempt ID
452
+ id:,
453
+ # Delivery status (lowercase)
454
+ status:,
455
+ # Unix timestamp
456
+ timestamp:,
457
+ # ISO 8601 timestamp
458
+ timestamp_iso:,
459
+ # SMTP response code
460
+ code: nil,
461
+ # Status details
462
+ details: nil,
463
+ # SMTP server response from the receiving mail server
464
+ output: nil,
465
+ # Whether TLS was used
466
+ sent_with_ssl: nil
467
+ )
468
+ end
469
+
470
+ sig do
471
+ override.returns(
472
+ {
473
+ id: String,
474
+ status: String,
475
+ timestamp: Float,
476
+ timestamp_iso: Time,
477
+ code: Integer,
478
+ details: String,
479
+ output: String,
480
+ sent_with_ssl: T::Boolean
481
+ }
482
+ )
483
+ end
484
+ def to_hash
485
+ end
486
+ end
487
+ end
488
+ end
489
+ end
490
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailRetryParams < 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::EmailRetryParams, 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,75 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailRetryResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::EmailRetryResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::EmailRetryResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: ArkEmail::Models::EmailRetryResponse::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::EmailRetryResponse::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::EmailRetryResponse::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::EmailRetryResponse::Data,
58
+ ArkEmail::Internal::AnyHash
59
+ )
60
+ end
61
+
62
+ sig { returns(String) }
63
+ attr_accessor :message
64
+
65
+ sig { params(message: String).returns(T.attached_class) }
66
+ def self.new(message:)
67
+ end
68
+
69
+ sig { override.returns({ message: String }) }
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,118 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailSendBatchParams < 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::EmailSendBatchParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T::Array[ArkEmail::EmailSendBatchParams::Email]) }
15
+ attr_accessor :emails
16
+
17
+ # Sender email for all messages
18
+ sig { returns(String) }
19
+ attr_accessor :from
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :idempotency_key
23
+
24
+ sig { params(idempotency_key: String).void }
25
+ attr_writer :idempotency_key
26
+
27
+ sig do
28
+ params(
29
+ emails: T::Array[ArkEmail::EmailSendBatchParams::Email::OrHash],
30
+ from: String,
31
+ idempotency_key: String,
32
+ request_options: ArkEmail::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ emails:,
37
+ # Sender email for all messages
38
+ from:,
39
+ idempotency_key: nil,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ emails: T::Array[ArkEmail::EmailSendBatchParams::Email],
48
+ from: String,
49
+ idempotency_key: String,
50
+ request_options: ArkEmail::RequestOptions
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+
57
+ class Email < ArkEmail::Internal::Type::BaseModel
58
+ OrHash =
59
+ T.type_alias do
60
+ T.any(
61
+ ArkEmail::EmailSendBatchParams::Email,
62
+ ArkEmail::Internal::AnyHash
63
+ )
64
+ end
65
+
66
+ sig { returns(String) }
67
+ attr_accessor :subject
68
+
69
+ sig { returns(T::Array[String]) }
70
+ attr_accessor :to
71
+
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :html
74
+
75
+ sig { params(html: String).void }
76
+ attr_writer :html
77
+
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :tag
80
+
81
+ sig { params(tag: String).void }
82
+ attr_writer :tag
83
+
84
+ sig { returns(T.nilable(String)) }
85
+ attr_reader :text
86
+
87
+ sig { params(text: String).void }
88
+ attr_writer :text
89
+
90
+ sig do
91
+ params(
92
+ subject: String,
93
+ to: T::Array[String],
94
+ html: String,
95
+ tag: String,
96
+ text: String
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(subject:, to:, html: nil, tag: nil, text: nil)
100
+ end
101
+
102
+ sig do
103
+ override.returns(
104
+ {
105
+ subject: String,
106
+ to: T::Array[String],
107
+ html: String,
108
+ tag: String,
109
+ text: String
110
+ }
111
+ )
112
+ end
113
+ def to_hash
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end