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,159 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailSendBatchResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::EmailSendBatchResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::EmailSendBatchResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(
19
+ data: ArkEmail::Models::EmailSendBatchResponse::Data::OrHash
20
+ ).void
21
+ end
22
+ attr_writer :data
23
+
24
+ sig { returns(ArkEmail::APIMeta) }
25
+ attr_reader :meta
26
+
27
+ sig { params(meta: ArkEmail::APIMeta::OrHash).void }
28
+ attr_writer :meta
29
+
30
+ sig { returns(T::Boolean) }
31
+ attr_accessor :success
32
+
33
+ sig do
34
+ params(
35
+ data: ArkEmail::Models::EmailSendBatchResponse::Data::OrHash,
36
+ meta: ArkEmail::APIMeta::OrHash,
37
+ success: T::Boolean
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(data:, meta:, success: true)
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ data: ArkEmail::Models::EmailSendBatchResponse::Data,
47
+ meta: ArkEmail::APIMeta,
48
+ success: T::Boolean
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+
55
+ class Data < ArkEmail::Internal::Type::BaseModel
56
+ OrHash =
57
+ T.type_alias do
58
+ T.any(
59
+ ArkEmail::Models::EmailSendBatchResponse::Data,
60
+ ArkEmail::Internal::AnyHash
61
+ )
62
+ end
63
+
64
+ # Successfully accepted emails
65
+ sig { returns(Integer) }
66
+ attr_accessor :accepted
67
+
68
+ # Failed emails
69
+ sig { returns(Integer) }
70
+ attr_accessor :failed
71
+
72
+ # Map of recipient email to message info
73
+ sig do
74
+ returns(
75
+ T::Hash[
76
+ Symbol,
77
+ ArkEmail::Models::EmailSendBatchResponse::Data::Message
78
+ ]
79
+ )
80
+ end
81
+ attr_accessor :messages
82
+
83
+ # Total emails in the batch
84
+ sig { returns(Integer) }
85
+ attr_accessor :total
86
+
87
+ sig do
88
+ params(
89
+ accepted: Integer,
90
+ failed: Integer,
91
+ messages:
92
+ T::Hash[
93
+ Symbol,
94
+ ArkEmail::Models::EmailSendBatchResponse::Data::Message::OrHash
95
+ ],
96
+ total: Integer
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # Successfully accepted emails
101
+ accepted:,
102
+ # Failed emails
103
+ failed:,
104
+ # Map of recipient email to message info
105
+ messages:,
106
+ # Total emails in the batch
107
+ total:
108
+ )
109
+ end
110
+
111
+ sig do
112
+ override.returns(
113
+ {
114
+ accepted: Integer,
115
+ failed: Integer,
116
+ messages:
117
+ T::Hash[
118
+ Symbol,
119
+ ArkEmail::Models::EmailSendBatchResponse::Data::Message
120
+ ],
121
+ total: Integer
122
+ }
123
+ )
124
+ end
125
+ def to_hash
126
+ end
127
+
128
+ class Message < ArkEmail::Internal::Type::BaseModel
129
+ OrHash =
130
+ T.type_alias do
131
+ T.any(
132
+ ArkEmail::Models::EmailSendBatchResponse::Data::Message,
133
+ ArkEmail::Internal::AnyHash
134
+ )
135
+ end
136
+
137
+ # Message ID
138
+ sig { returns(String) }
139
+ attr_accessor :id
140
+
141
+ sig { returns(String) }
142
+ attr_accessor :token
143
+
144
+ sig { params(id: String, token: String).returns(T.attached_class) }
145
+ def self.new(
146
+ # Message ID
147
+ id:,
148
+ token:
149
+ )
150
+ end
151
+
152
+ sig { override.returns({ id: String, token: String }) }
153
+ def to_hash
154
+ end
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,229 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailSendParams < 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::EmailSendParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ # Sender email address. Must be from a verified domain.
15
+ #
16
+ # **Supported formats:**
17
+ #
18
+ # - Email only: `hello@yourdomain.com`
19
+ # - With display name: `Acme <hello@yourdomain.com>`
20
+ # - With quoted name: `"Acme Support" <support@yourdomain.com>`
21
+ #
22
+ # The domain portion must match a verified sending domain in your account.
23
+ sig { returns(String) }
24
+ attr_accessor :from
25
+
26
+ # Email subject line
27
+ sig { returns(String) }
28
+ attr_accessor :subject
29
+
30
+ # Recipient email addresses (max 50)
31
+ sig { returns(T::Array[String]) }
32
+ attr_accessor :to
33
+
34
+ # File attachments
35
+ sig do
36
+ returns(T.nilable(T::Array[ArkEmail::EmailSendParams::Attachment]))
37
+ end
38
+ attr_reader :attachments
39
+
40
+ sig do
41
+ params(
42
+ attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash]
43
+ ).void
44
+ end
45
+ attr_writer :attachments
46
+
47
+ # BCC recipients
48
+ sig { returns(T.nilable(T::Array[String])) }
49
+ attr_reader :bcc
50
+
51
+ sig { params(bcc: T::Array[String]).void }
52
+ attr_writer :bcc
53
+
54
+ # CC recipients
55
+ sig { returns(T.nilable(T::Array[String])) }
56
+ attr_reader :cc
57
+
58
+ sig { params(cc: T::Array[String]).void }
59
+ attr_writer :cc
60
+
61
+ # Custom email headers
62
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
63
+ attr_reader :headers
64
+
65
+ sig { params(headers: T::Hash[Symbol, String]).void }
66
+ attr_writer :headers
67
+
68
+ # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
69
+ # attachments, the total message must not exceed 14MB.
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :html
72
+
73
+ sig { params(html: String).void }
74
+ attr_writer :html
75
+
76
+ # Reply-to address
77
+ sig { returns(T.nilable(String)) }
78
+ attr_reader :reply_to
79
+
80
+ sig { params(reply_to: String).void }
81
+ attr_writer :reply_to
82
+
83
+ # Tag for categorization and filtering
84
+ sig { returns(T.nilable(String)) }
85
+ attr_reader :tag
86
+
87
+ sig { params(tag: String).void }
88
+ attr_writer :tag
89
+
90
+ # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
91
+ # (5,242,880 characters).
92
+ sig { returns(T.nilable(String)) }
93
+ attr_reader :text
94
+
95
+ sig { params(text: String).void }
96
+ attr_writer :text
97
+
98
+ sig { returns(T.nilable(String)) }
99
+ attr_reader :idempotency_key
100
+
101
+ sig { params(idempotency_key: String).void }
102
+ attr_writer :idempotency_key
103
+
104
+ sig do
105
+ params(
106
+ from: String,
107
+ subject: String,
108
+ to: T::Array[String],
109
+ attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash],
110
+ bcc: T::Array[String],
111
+ cc: T::Array[String],
112
+ headers: T::Hash[Symbol, String],
113
+ html: String,
114
+ reply_to: String,
115
+ tag: String,
116
+ text: String,
117
+ idempotency_key: String,
118
+ request_options: ArkEmail::RequestOptions::OrHash
119
+ ).returns(T.attached_class)
120
+ end
121
+ def self.new(
122
+ # Sender email address. Must be from a verified domain.
123
+ #
124
+ # **Supported formats:**
125
+ #
126
+ # - Email only: `hello@yourdomain.com`
127
+ # - With display name: `Acme <hello@yourdomain.com>`
128
+ # - With quoted name: `"Acme Support" <support@yourdomain.com>`
129
+ #
130
+ # The domain portion must match a verified sending domain in your account.
131
+ from:,
132
+ # Email subject line
133
+ subject:,
134
+ # Recipient email addresses (max 50)
135
+ to:,
136
+ # File attachments
137
+ attachments: nil,
138
+ # BCC recipients
139
+ bcc: nil,
140
+ # CC recipients
141
+ cc: nil,
142
+ # Custom email headers
143
+ headers: nil,
144
+ # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
145
+ # attachments, the total message must not exceed 14MB.
146
+ html: nil,
147
+ # Reply-to address
148
+ reply_to: nil,
149
+ # Tag for categorization and filtering
150
+ tag: nil,
151
+ # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
152
+ # (5,242,880 characters).
153
+ text: nil,
154
+ idempotency_key: nil,
155
+ request_options: {}
156
+ )
157
+ end
158
+
159
+ sig do
160
+ override.returns(
161
+ {
162
+ from: String,
163
+ subject: String,
164
+ to: T::Array[String],
165
+ attachments: T::Array[ArkEmail::EmailSendParams::Attachment],
166
+ bcc: T::Array[String],
167
+ cc: T::Array[String],
168
+ headers: T::Hash[Symbol, String],
169
+ html: String,
170
+ reply_to: String,
171
+ tag: String,
172
+ text: String,
173
+ idempotency_key: String,
174
+ request_options: ArkEmail::RequestOptions
175
+ }
176
+ )
177
+ end
178
+ def to_hash
179
+ end
180
+
181
+ class Attachment < ArkEmail::Internal::Type::BaseModel
182
+ OrHash =
183
+ T.type_alias do
184
+ T.any(
185
+ ArkEmail::EmailSendParams::Attachment,
186
+ ArkEmail::Internal::AnyHash
187
+ )
188
+ end
189
+
190
+ # Base64-encoded file content
191
+ sig { returns(String) }
192
+ attr_accessor :content
193
+
194
+ # MIME type
195
+ sig { returns(String) }
196
+ attr_accessor :content_type
197
+
198
+ # Attachment filename
199
+ sig { returns(String) }
200
+ attr_accessor :filename
201
+
202
+ sig do
203
+ params(
204
+ content: String,
205
+ content_type: String,
206
+ filename: String
207
+ ).returns(T.attached_class)
208
+ end
209
+ def self.new(
210
+ # Base64-encoded file content
211
+ content:,
212
+ # MIME type
213
+ content_type:,
214
+ # Attachment filename
215
+ filename:
216
+ )
217
+ end
218
+
219
+ sig do
220
+ override.returns(
221
+ { content: String, content_type: String, filename: String }
222
+ )
223
+ end
224
+ def to_hash
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailSendRawParams < 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::EmailSendRawParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ # Base64-encoded RFC 2822 message
15
+ sig { returns(String) }
16
+ attr_accessor :data
17
+
18
+ # Envelope sender address
19
+ sig { returns(String) }
20
+ attr_accessor :mail_from
21
+
22
+ # Envelope recipient addresses
23
+ sig { returns(T::Array[String]) }
24
+ attr_accessor :rcpt_to
25
+
26
+ sig do
27
+ params(
28
+ data: String,
29
+ mail_from: String,
30
+ rcpt_to: T::Array[String],
31
+ request_options: ArkEmail::RequestOptions::OrHash
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # Base64-encoded RFC 2822 message
36
+ data:,
37
+ # Envelope sender address
38
+ mail_from:,
39
+ # Envelope recipient addresses
40
+ rcpt_to:,
41
+ request_options: {}
42
+ )
43
+ end
44
+
45
+ sig do
46
+ override.returns(
47
+ {
48
+ data: String,
49
+ mail_from: String,
50
+ rcpt_to: T::Array[String],
51
+ request_options: ArkEmail::RequestOptions
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,157 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class EmailSendRawResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::EmailSendRawResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::EmailSendRawResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: ArkEmail::Models::EmailSendRawResponse::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::EmailSendRawResponse::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::EmailSendRawResponse::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::EmailSendRawResponse::Data,
58
+ ArkEmail::Internal::AnyHash
59
+ )
60
+ end
61
+
62
+ # Unique message ID (format: msg*{id}*{token})
63
+ sig { returns(String) }
64
+ attr_accessor :id
65
+
66
+ # Current delivery status
67
+ sig do
68
+ returns(
69
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol
70
+ )
71
+ end
72
+ attr_accessor :status
73
+
74
+ # List of recipient addresses
75
+ sig { returns(T::Array[String]) }
76
+ attr_accessor :to
77
+
78
+ # SMTP Message-ID header value
79
+ sig { returns(T.nilable(String)) }
80
+ attr_reader :message_id
81
+
82
+ sig { params(message_id: String).void }
83
+ attr_writer :message_id
84
+
85
+ sig do
86
+ params(
87
+ id: String,
88
+ status:
89
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::OrSymbol,
90
+ to: T::Array[String],
91
+ message_id: String
92
+ ).returns(T.attached_class)
93
+ end
94
+ def self.new(
95
+ # Unique message ID (format: msg*{id}*{token})
96
+ id:,
97
+ # Current delivery status
98
+ status:,
99
+ # List of recipient addresses
100
+ to:,
101
+ # SMTP Message-ID header value
102
+ message_id: nil
103
+ )
104
+ end
105
+
106
+ sig do
107
+ override.returns(
108
+ {
109
+ id: String,
110
+ status:
111
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol,
112
+ to: T::Array[String],
113
+ message_id: String
114
+ }
115
+ )
116
+ end
117
+ def to_hash
118
+ end
119
+
120
+ # Current delivery status
121
+ module Status
122
+ extend ArkEmail::Internal::Type::Enum
123
+
124
+ TaggedSymbol =
125
+ T.type_alias do
126
+ T.all(
127
+ Symbol,
128
+ ArkEmail::Models::EmailSendRawResponse::Data::Status
129
+ )
130
+ end
131
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
132
+
133
+ PENDING =
134
+ T.let(
135
+ :pending,
136
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol
137
+ )
138
+ SENT =
139
+ T.let(
140
+ :sent,
141
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol
142
+ )
143
+
144
+ sig do
145
+ override.returns(
146
+ T::Array[
147
+ ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol
148
+ ]
149
+ )
150
+ end
151
+ def self.values
152
+ end
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end