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,217 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class WebhookUpdateResponse < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ArkEmail::Models::WebhookUpdateResponse,
10
+ ArkEmail::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ArkEmail::Models::WebhookUpdateResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: ArkEmail::Models::WebhookUpdateResponse::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::WebhookUpdateResponse::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::WebhookUpdateResponse::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::WebhookUpdateResponse::Data,
58
+ ArkEmail::Internal::AnyHash
59
+ )
60
+ end
61
+
62
+ # Webhook ID
63
+ sig { returns(String) }
64
+ attr_accessor :id
65
+
66
+ # Whether subscribed to all events
67
+ sig { returns(T::Boolean) }
68
+ attr_accessor :all_events
69
+
70
+ sig { returns(Time) }
71
+ attr_accessor :created_at
72
+
73
+ # Whether the webhook is active
74
+ sig { returns(T::Boolean) }
75
+ attr_accessor :enabled
76
+
77
+ # Subscribed events
78
+ sig do
79
+ returns(
80
+ T::Array[
81
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
82
+ ]
83
+ )
84
+ end
85
+ attr_accessor :events
86
+
87
+ # Webhook name for identification
88
+ sig { returns(String) }
89
+ attr_accessor :name
90
+
91
+ # Webhook endpoint URL
92
+ sig { returns(String) }
93
+ attr_accessor :url
94
+
95
+ sig { returns(String) }
96
+ attr_accessor :uuid
97
+
98
+ sig do
99
+ params(
100
+ id: String,
101
+ all_events: T::Boolean,
102
+ created_at: Time,
103
+ enabled: T::Boolean,
104
+ events:
105
+ T::Array[
106
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::OrSymbol
107
+ ],
108
+ name: String,
109
+ url: String,
110
+ uuid: String
111
+ ).returns(T.attached_class)
112
+ end
113
+ def self.new(
114
+ # Webhook ID
115
+ id:,
116
+ # Whether subscribed to all events
117
+ all_events:,
118
+ created_at:,
119
+ # Whether the webhook is active
120
+ enabled:,
121
+ # Subscribed events
122
+ events:,
123
+ # Webhook name for identification
124
+ name:,
125
+ # Webhook endpoint URL
126
+ url:,
127
+ uuid:
128
+ )
129
+ end
130
+
131
+ sig do
132
+ override.returns(
133
+ {
134
+ id: String,
135
+ all_events: T::Boolean,
136
+ created_at: Time,
137
+ enabled: T::Boolean,
138
+ events:
139
+ T::Array[
140
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
141
+ ],
142
+ name: String,
143
+ url: String,
144
+ uuid: String
145
+ }
146
+ )
147
+ end
148
+ def to_hash
149
+ end
150
+
151
+ module Event
152
+ extend ArkEmail::Internal::Type::Enum
153
+
154
+ TaggedSymbol =
155
+ T.type_alias do
156
+ T.all(
157
+ Symbol,
158
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event
159
+ )
160
+ end
161
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
162
+
163
+ MESSAGE_SENT =
164
+ T.let(
165
+ :MessageSent,
166
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
167
+ )
168
+ MESSAGE_DELAYED =
169
+ T.let(
170
+ :MessageDelayed,
171
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
172
+ )
173
+ MESSAGE_DELIVERY_FAILED =
174
+ T.let(
175
+ :MessageDeliveryFailed,
176
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
177
+ )
178
+ MESSAGE_HELD =
179
+ T.let(
180
+ :MessageHeld,
181
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
182
+ )
183
+ MESSAGE_BOUNCED =
184
+ T.let(
185
+ :MessageBounced,
186
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
187
+ )
188
+ MESSAGE_LINK_CLICKED =
189
+ T.let(
190
+ :MessageLinkClicked,
191
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
192
+ )
193
+ MESSAGE_LOADED =
194
+ T.let(
195
+ :MessageLoaded,
196
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
197
+ )
198
+ DOMAIN_DNS_ERROR =
199
+ T.let(
200
+ :DomainDNSError,
201
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
202
+ )
203
+
204
+ sig do
205
+ override.returns(
206
+ T::Array[
207
+ ArkEmail::Models::WebhookUpdateResponse::Data::Event::TaggedSymbol
208
+ ]
209
+ )
210
+ end
211
+ def self.values
212
+ end
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ APIMeta = ArkEmail::Models::APIMeta
5
+
6
+ DNSRecord = ArkEmail::Models::DNSRecord
7
+
8
+ DomainCreateParams = ArkEmail::Models::DomainCreateParams
9
+
10
+ DomainDeleteParams = ArkEmail::Models::DomainDeleteParams
11
+
12
+ DomainListParams = ArkEmail::Models::DomainListParams
13
+
14
+ DomainRetrieveParams = ArkEmail::Models::DomainRetrieveParams
15
+
16
+ DomainVerifyParams = ArkEmail::Models::DomainVerifyParams
17
+
18
+ EmailListParams = ArkEmail::Models::EmailListParams
19
+
20
+ EmailRetrieveDeliveriesParams =
21
+ ArkEmail::Models::EmailRetrieveDeliveriesParams
22
+
23
+ EmailRetrieveParams = ArkEmail::Models::EmailRetrieveParams
24
+
25
+ EmailRetryParams = ArkEmail::Models::EmailRetryParams
26
+
27
+ EmailSendBatchParams = ArkEmail::Models::EmailSendBatchParams
28
+
29
+ EmailSendParams = ArkEmail::Models::EmailSendParams
30
+
31
+ EmailSendRawParams = ArkEmail::Models::EmailSendRawParams
32
+
33
+ SuppressionBulkCreateParams = ArkEmail::Models::SuppressionBulkCreateParams
34
+
35
+ SuppressionCreateParams = ArkEmail::Models::SuppressionCreateParams
36
+
37
+ SuppressionDeleteParams = ArkEmail::Models::SuppressionDeleteParams
38
+
39
+ SuppressionListParams = ArkEmail::Models::SuppressionListParams
40
+
41
+ SuppressionRetrieveParams = ArkEmail::Models::SuppressionRetrieveParams
42
+
43
+ TrackDomain = ArkEmail::Models::TrackDomain
44
+
45
+ TrackingCreateParams = ArkEmail::Models::TrackingCreateParams
46
+
47
+ TrackingDeleteParams = ArkEmail::Models::TrackingDeleteParams
48
+
49
+ TrackingListParams = ArkEmail::Models::TrackingListParams
50
+
51
+ TrackingRetrieveParams = ArkEmail::Models::TrackingRetrieveParams
52
+
53
+ TrackingUpdateParams = ArkEmail::Models::TrackingUpdateParams
54
+
55
+ TrackingVerifyParams = ArkEmail::Models::TrackingVerifyParams
56
+
57
+ WebhookCreateParams = ArkEmail::Models::WebhookCreateParams
58
+
59
+ WebhookDeleteParams = ArkEmail::Models::WebhookDeleteParams
60
+
61
+ WebhookListParams = ArkEmail::Models::WebhookListParams
62
+
63
+ WebhookRetrieveParams = ArkEmail::Models::WebhookRetrieveParams
64
+
65
+ WebhookTestParams = ArkEmail::Models::WebhookTestParams
66
+
67
+ WebhookUpdateParams = ArkEmail::Models::WebhookUpdateParams
68
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ # Specify HTTP behaviour to use for a specific request. These options supplement
5
+ # or override those provided at the client level.
6
+ #
7
+ # When making a request, you can pass an actual {RequestOptions} instance, or
8
+ # simply pass a Hash with symbol keys matching the attributes on this class.
9
+ class RequestOptions < ArkEmail::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(ArkEmail::RequestOptions, ArkEmail::Internal::AnyHash)
13
+ end
14
+
15
+ # @api private
16
+ sig { params(opts: ArkEmail::RequestOptions::OrHash).void }
17
+ def self.validate!(opts)
18
+ end
19
+
20
+ # Idempotency key to send with request and all associated retries. Will only be
21
+ # sent for write requests.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :idempotency_key
24
+
25
+ # Extra query params to send with the request. These are `.merge`’d into any
26
+ # `query` given at the client level.
27
+ sig do
28
+ returns(
29
+ T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
30
+ )
31
+ end
32
+ attr_accessor :extra_query
33
+
34
+ # Extra headers to send with the request. These are `.merged`’d into any
35
+ # `extra_headers` given at the client level.
36
+ sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
37
+ attr_accessor :extra_headers
38
+
39
+ # Extra data to send with the request. These are deep merged into any data
40
+ # generated as part of the normal request.
41
+ sig { returns(T.nilable(T.anything)) }
42
+ attr_accessor :extra_body
43
+
44
+ # Maximum number of retries to attempt after a failed initial request.
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_accessor :max_retries
47
+
48
+ # Request timeout in seconds.
49
+ sig { returns(T.nilable(Float)) }
50
+ attr_accessor :timeout
51
+
52
+ # Returns a new instance of RequestOptions.
53
+ sig do
54
+ params(values: ArkEmail::Internal::AnyHash).returns(T.attached_class)
55
+ end
56
+ def self.new(values = {})
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Resources
5
+ class Domains
6
+ # Add a new domain for sending emails. Returns DNS records that must be configured
7
+ # before the domain can be verified.
8
+ #
9
+ # **Required DNS records:**
10
+ #
11
+ # - **SPF** - TXT record for sender authentication
12
+ # - **DKIM** - TXT record for email signing
13
+ # - **Return Path** - CNAME for bounce handling
14
+ #
15
+ # After adding DNS records, call `POST /domains/{id}/verify` to verify.
16
+ sig do
17
+ params(
18
+ name: String,
19
+ request_options: ArkEmail::RequestOptions::OrHash
20
+ ).returns(ArkEmail::Models::DomainCreateResponse)
21
+ end
22
+ def create(
23
+ # Domain name (e.g., "mail.example.com")
24
+ name:,
25
+ request_options: {}
26
+ )
27
+ end
28
+
29
+ # Get detailed information about a domain including DNS record status
30
+ sig do
31
+ params(
32
+ domain_id: String,
33
+ request_options: ArkEmail::RequestOptions::OrHash
34
+ ).returns(ArkEmail::Models::DomainRetrieveResponse)
35
+ end
36
+ def retrieve(
37
+ # Domain ID or domain name
38
+ domain_id,
39
+ request_options: {}
40
+ )
41
+ end
42
+
43
+ # Get all sending domains with their verification status
44
+ sig do
45
+ params(request_options: ArkEmail::RequestOptions::OrHash).returns(
46
+ ArkEmail::Models::DomainListResponse
47
+ )
48
+ end
49
+ def list(request_options: {})
50
+ end
51
+
52
+ # Remove a sending domain. You will no longer be able to send emails from this
53
+ # domain.
54
+ #
55
+ # **Warning:** This action cannot be undone.
56
+ sig do
57
+ params(
58
+ domain_id: String,
59
+ request_options: ArkEmail::RequestOptions::OrHash
60
+ ).returns(ArkEmail::Models::DomainDeleteResponse)
61
+ end
62
+ def delete(domain_id, request_options: {})
63
+ end
64
+
65
+ # Check if DNS records are correctly configured and verify the domain. Returns the
66
+ # current status of each required DNS record.
67
+ #
68
+ # Call this after you've added the DNS records shown when creating the domain.
69
+ sig do
70
+ params(
71
+ domain_id: String,
72
+ request_options: ArkEmail::RequestOptions::OrHash
73
+ ).returns(ArkEmail::Models::DomainVerifyResponse)
74
+ end
75
+ def verify(domain_id, request_options: {})
76
+ end
77
+
78
+ # @api private
79
+ sig { params(client: ArkEmail::Client).returns(T.attached_class) }
80
+ def self.new(client:)
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,237 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Resources
5
+ class Emails
6
+ # Retrieve detailed information about a specific email including delivery status,
7
+ # timestamps, and optionally the email content.
8
+ #
9
+ # Use the `expand` parameter to include additional data like the HTML/text body,
10
+ # headers, or delivery attempts.
11
+ sig do
12
+ params(
13
+ email_id: String,
14
+ expand: String,
15
+ request_options: ArkEmail::RequestOptions::OrHash
16
+ ).returns(ArkEmail::Models::EmailRetrieveResponse)
17
+ end
18
+ def retrieve(
19
+ # The email ID (from send response) or message token
20
+ email_id,
21
+ # Comma-separated list of fields to include:
22
+ #
23
+ # - `content` - HTML and plain text body
24
+ # - `headers` - Email headers
25
+ # - `deliveries` - Delivery attempt history
26
+ # - `activity` - Opens and clicks
27
+ expand: nil,
28
+ request_options: {}
29
+ )
30
+ end
31
+
32
+ # Retrieve a paginated list of sent emails. Results are ordered by send time,
33
+ # newest first.
34
+ #
35
+ # Use filters to narrow down results by status, recipient, sender, or tag.
36
+ #
37
+ # **Related endpoints:**
38
+ #
39
+ # - `GET /emails/{id}` - Get full details of a specific email
40
+ # - `POST /emails` - Send a new email
41
+ sig do
42
+ params(
43
+ after: String,
44
+ before: String,
45
+ from: String,
46
+ page: Integer,
47
+ per_page: Integer,
48
+ status: ArkEmail::EmailListParams::Status::OrSymbol,
49
+ tag: String,
50
+ to: String,
51
+ request_options: ArkEmail::RequestOptions::OrHash
52
+ ).returns(
53
+ ArkEmail::Internal::PageNumberPagination[
54
+ ArkEmail::Models::EmailListResponse
55
+ ]
56
+ )
57
+ end
58
+ def list(
59
+ # Return emails sent after this timestamp (Unix seconds or ISO 8601)
60
+ after: nil,
61
+ # Return emails sent before this timestamp
62
+ before: nil,
63
+ # Filter by sender email address
64
+ from: nil,
65
+ # Page number (starts at 1)
66
+ page: nil,
67
+ # Results per page (max 100)
68
+ per_page: nil,
69
+ # Filter by delivery status:
70
+ #
71
+ # - `pending` - Email accepted, waiting to be processed
72
+ # - `sent` - Email transmitted to recipient's mail server
73
+ # - `softfail` - Temporary delivery failure, will retry
74
+ # - `hardfail` - Permanent delivery failure
75
+ # - `bounced` - Email bounced back
76
+ # - `held` - Held for manual review
77
+ status: nil,
78
+ # Filter by tag
79
+ tag: nil,
80
+ # Filter by recipient email address
81
+ to: nil,
82
+ request_options: {}
83
+ )
84
+ end
85
+
86
+ # Get the history of delivery attempts for an email, including SMTP response codes
87
+ # and timestamps.
88
+ sig do
89
+ params(
90
+ email_id: String,
91
+ request_options: ArkEmail::RequestOptions::OrHash
92
+ ).returns(ArkEmail::Models::EmailRetrieveDeliveriesResponse)
93
+ end
94
+ def retrieve_deliveries(email_id, request_options: {})
95
+ end
96
+
97
+ # Retry delivery of a failed or soft-bounced email. Creates a new delivery
98
+ # attempt.
99
+ #
100
+ # Only works for emails that have failed or are in a retryable state.
101
+ sig do
102
+ params(
103
+ email_id: String,
104
+ request_options: ArkEmail::RequestOptions::OrHash
105
+ ).returns(ArkEmail::Models::EmailRetryResponse)
106
+ end
107
+ def retry_(email_id, request_options: {})
108
+ end
109
+
110
+ # Send a single email message. The email is accepted for immediate delivery and
111
+ # typically delivered within seconds.
112
+ #
113
+ # **Example use case:** Send a password reset email to a user.
114
+ #
115
+ # **Required fields:** `from`, `to`, `subject`, and either `html` or `text`
116
+ #
117
+ # **Idempotency:** Supports `Idempotency-Key` header for safe retries.
118
+ #
119
+ # **Related endpoints:**
120
+ #
121
+ # - `GET /emails/{id}` - Track delivery status
122
+ # - `GET /emails/{id}/deliveries` - View delivery attempts
123
+ # - `POST /emails/{id}/retry` - Retry failed delivery
124
+ sig do
125
+ params(
126
+ from: String,
127
+ subject: String,
128
+ to: T::Array[String],
129
+ attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash],
130
+ bcc: T::Array[String],
131
+ cc: T::Array[String],
132
+ headers: T::Hash[Symbol, String],
133
+ html: String,
134
+ reply_to: String,
135
+ tag: String,
136
+ text: String,
137
+ idempotency_key: String,
138
+ request_options: ArkEmail::RequestOptions::OrHash
139
+ ).returns(ArkEmail::Models::EmailSendResponse)
140
+ end
141
+ def send_(
142
+ # Body param: Sender email address. Must be from a verified domain.
143
+ #
144
+ # **Supported formats:**
145
+ #
146
+ # - Email only: `hello@yourdomain.com`
147
+ # - With display name: `Acme <hello@yourdomain.com>`
148
+ # - With quoted name: `"Acme Support" <support@yourdomain.com>`
149
+ #
150
+ # The domain portion must match a verified sending domain in your account.
151
+ from:,
152
+ # Body param: Email subject line
153
+ subject:,
154
+ # Body param: Recipient email addresses (max 50)
155
+ to:,
156
+ # Body param: File attachments
157
+ attachments: nil,
158
+ # Body param: BCC recipients
159
+ bcc: nil,
160
+ # Body param: CC recipients
161
+ cc: nil,
162
+ # Body param: Custom email headers
163
+ headers: nil,
164
+ # Body param: HTML body content. Maximum 5MB (5,242,880 characters). Combined with
165
+ # attachments, the total message must not exceed 14MB.
166
+ html: nil,
167
+ # Body param: Reply-to address
168
+ reply_to: nil,
169
+ # Body param: Tag for categorization and filtering
170
+ tag: nil,
171
+ # Body param: Plain text body (auto-generated from HTML if not provided). Maximum
172
+ # 5MB (5,242,880 characters).
173
+ text: nil,
174
+ # Header param: Unique key for idempotent requests. If a request with this key was
175
+ # already processed, the cached response is returned. Keys expire after 24 hours.
176
+ idempotency_key: nil,
177
+ request_options: {}
178
+ )
179
+ end
180
+
181
+ # Send up to 100 emails in a single request. Useful for sending personalized
182
+ # emails to multiple recipients efficiently.
183
+ #
184
+ # Each email in the batch can have different content and recipients. Failed emails
185
+ # don't affect other emails in the batch.
186
+ #
187
+ # **Idempotency:** Supports `Idempotency-Key` header for safe retries.
188
+ sig do
189
+ params(
190
+ emails: T::Array[ArkEmail::EmailSendBatchParams::Email::OrHash],
191
+ from: String,
192
+ idempotency_key: String,
193
+ request_options: ArkEmail::RequestOptions::OrHash
194
+ ).returns(ArkEmail::Models::EmailSendBatchResponse)
195
+ end
196
+ def send_batch(
197
+ # Body param:
198
+ emails:,
199
+ # Body param: Sender email for all messages
200
+ from:,
201
+ # Header param: Unique key for idempotent requests. If a request with this key was
202
+ # already processed, the cached response is returned. Keys expire after 24 hours.
203
+ idempotency_key: nil,
204
+ request_options: {}
205
+ )
206
+ end
207
+
208
+ # Send a pre-formatted RFC 2822 MIME message. Use this for advanced use cases or
209
+ # when migrating from systems that generate raw email content.
210
+ #
211
+ # The `data` field should contain the base64-encoded raw email.
212
+ sig do
213
+ params(
214
+ data: String,
215
+ mail_from: String,
216
+ rcpt_to: T::Array[String],
217
+ request_options: ArkEmail::RequestOptions::OrHash
218
+ ).returns(ArkEmail::Models::EmailSendRawResponse)
219
+ end
220
+ def send_raw(
221
+ # Base64-encoded RFC 2822 message
222
+ data:,
223
+ # Envelope sender address
224
+ mail_from:,
225
+ # Envelope recipient addresses
226
+ rcpt_to:,
227
+ request_options: {}
228
+ )
229
+ end
230
+
231
+ # @api private
232
+ sig { params(client: ArkEmail::Client).returns(T.attached_class) }
233
+ def self.new(client:)
234
+ end
235
+ end
236
+ end
237
+ end