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,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#retry_
6
+ class EmailRetryResponse < ArkEmail::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [ArkEmail::Models::EmailRetryResponse::Data]
10
+ required :data, -> { ArkEmail::Models::EmailRetryResponse::Data }
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ArkEmail::Models::APIMeta]
15
+ required :meta, -> { ArkEmail::APIMeta }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, true]
20
+ required :success, const: true
21
+
22
+ # @!method initialize(data:, meta:, success: true)
23
+ # @param data [ArkEmail::Models::EmailRetryResponse::Data]
24
+ # @param meta [ArkEmail::Models::APIMeta]
25
+ # @param success [Boolean, true]
26
+
27
+ # @see ArkEmail::Models::EmailRetryResponse#data
28
+ class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute message
30
+ #
31
+ # @return [String]
32
+ required :message, String
33
+
34
+ # @!method initialize(message:)
35
+ # @param message [String]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_batch
6
+ class EmailSendBatchParams < ArkEmail::Internal::Type::BaseModel
7
+ extend ArkEmail::Internal::Type::RequestParameters::Converter
8
+ include ArkEmail::Internal::Type::RequestParameters
9
+
10
+ # @!attribute emails
11
+ #
12
+ # @return [Array<ArkEmail::Models::EmailSendBatchParams::Email>]
13
+ required :emails, -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::EmailSendBatchParams::Email] }
14
+
15
+ # @!attribute from
16
+ # Sender email for all messages
17
+ #
18
+ # @return [String]
19
+ required :from, String
20
+
21
+ # @!attribute idempotency_key
22
+ #
23
+ # @return [String, nil]
24
+ optional :idempotency_key, String
25
+
26
+ # @!method initialize(emails:, from:, idempotency_key: nil, request_options: {})
27
+ # @param emails [Array<ArkEmail::Models::EmailSendBatchParams::Email>]
28
+ #
29
+ # @param from [String] Sender email for all messages
30
+ #
31
+ # @param idempotency_key [String]
32
+ #
33
+ # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
34
+
35
+ class Email < ArkEmail::Internal::Type::BaseModel
36
+ # @!attribute subject
37
+ #
38
+ # @return [String]
39
+ required :subject, String
40
+
41
+ # @!attribute to
42
+ #
43
+ # @return [Array<String>]
44
+ required :to, ArkEmail::Internal::Type::ArrayOf[String]
45
+
46
+ # @!attribute html
47
+ #
48
+ # @return [String, nil]
49
+ optional :html, String
50
+
51
+ # @!attribute tag
52
+ #
53
+ # @return [String, nil]
54
+ optional :tag, String
55
+
56
+ # @!attribute text
57
+ #
58
+ # @return [String, nil]
59
+ optional :text, String
60
+
61
+ # @!method initialize(subject:, to:, html: nil, tag: nil, text: nil)
62
+ # @param subject [String]
63
+ # @param to [Array<String>]
64
+ # @param html [String]
65
+ # @param tag [String]
66
+ # @param text [String]
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_batch
6
+ class EmailSendBatchResponse < ArkEmail::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [ArkEmail::Models::EmailSendBatchResponse::Data]
10
+ required :data, -> { ArkEmail::Models::EmailSendBatchResponse::Data }
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ArkEmail::Models::APIMeta]
15
+ required :meta, -> { ArkEmail::APIMeta }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, true]
20
+ required :success, const: true
21
+
22
+ # @!method initialize(data:, meta:, success: true)
23
+ # @param data [ArkEmail::Models::EmailSendBatchResponse::Data]
24
+ # @param meta [ArkEmail::Models::APIMeta]
25
+ # @param success [Boolean, true]
26
+
27
+ # @see ArkEmail::Models::EmailSendBatchResponse#data
28
+ class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute accepted
30
+ # Successfully accepted emails
31
+ #
32
+ # @return [Integer]
33
+ required :accepted, Integer
34
+
35
+ # @!attribute failed
36
+ # Failed emails
37
+ #
38
+ # @return [Integer]
39
+ required :failed, Integer
40
+
41
+ # @!attribute messages
42
+ # Map of recipient email to message info
43
+ #
44
+ # @return [Hash{Symbol=>ArkEmail::Models::EmailSendBatchResponse::Data::Message}]
45
+ required :messages,
46
+ -> { ArkEmail::Internal::Type::HashOf[ArkEmail::Models::EmailSendBatchResponse::Data::Message] }
47
+
48
+ # @!attribute total
49
+ # Total emails in the batch
50
+ #
51
+ # @return [Integer]
52
+ required :total, Integer
53
+
54
+ # @!method initialize(accepted:, failed:, messages:, total:)
55
+ # @param accepted [Integer] Successfully accepted emails
56
+ #
57
+ # @param failed [Integer] Failed emails
58
+ #
59
+ # @param messages [Hash{Symbol=>ArkEmail::Models::EmailSendBatchResponse::Data::Message}] Map of recipient email to message info
60
+ #
61
+ # @param total [Integer] Total emails in the batch
62
+
63
+ class Message < ArkEmail::Internal::Type::BaseModel
64
+ # @!attribute id
65
+ # Message ID
66
+ #
67
+ # @return [String]
68
+ required :id, String
69
+
70
+ # @!attribute token
71
+ #
72
+ # @return [String]
73
+ required :token, String
74
+
75
+ # @!method initialize(id:, token:)
76
+ # @param id [String] Message ID
77
+ #
78
+ # @param token [String]
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,149 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_
6
+ class EmailSendParams < ArkEmail::Internal::Type::BaseModel
7
+ extend ArkEmail::Internal::Type::RequestParameters::Converter
8
+ include ArkEmail::Internal::Type::RequestParameters
9
+
10
+ # @!attribute from
11
+ # Sender email address. Must be from a verified domain.
12
+ #
13
+ # **Supported formats:**
14
+ #
15
+ # - Email only: `hello@yourdomain.com`
16
+ # - With display name: `Acme <hello@yourdomain.com>`
17
+ # - With quoted name: `"Acme Support" <support@yourdomain.com>`
18
+ #
19
+ # The domain portion must match a verified sending domain in your account.
20
+ #
21
+ # @return [String]
22
+ required :from, String
23
+
24
+ # @!attribute subject
25
+ # Email subject line
26
+ #
27
+ # @return [String]
28
+ required :subject, String
29
+
30
+ # @!attribute to
31
+ # Recipient email addresses (max 50)
32
+ #
33
+ # @return [Array<String>]
34
+ required :to, ArkEmail::Internal::Type::ArrayOf[String]
35
+
36
+ # @!attribute attachments
37
+ # File attachments
38
+ #
39
+ # @return [Array<ArkEmail::Models::EmailSendParams::Attachment>, nil]
40
+ optional :attachments, -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::EmailSendParams::Attachment] }
41
+
42
+ # @!attribute bcc
43
+ # BCC recipients
44
+ #
45
+ # @return [Array<String>, nil]
46
+ optional :bcc, ArkEmail::Internal::Type::ArrayOf[String]
47
+
48
+ # @!attribute cc
49
+ # CC recipients
50
+ #
51
+ # @return [Array<String>, nil]
52
+ optional :cc, ArkEmail::Internal::Type::ArrayOf[String]
53
+
54
+ # @!attribute headers
55
+ # Custom email headers
56
+ #
57
+ # @return [Hash{Symbol=>String}, nil]
58
+ optional :headers, ArkEmail::Internal::Type::HashOf[String]
59
+
60
+ # @!attribute html
61
+ # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
62
+ # attachments, the total message must not exceed 14MB.
63
+ #
64
+ # @return [String, nil]
65
+ optional :html, String
66
+
67
+ # @!attribute reply_to
68
+ # Reply-to address
69
+ #
70
+ # @return [String, nil]
71
+ optional :reply_to, String, api_name: :replyTo
72
+
73
+ # @!attribute tag
74
+ # Tag for categorization and filtering
75
+ #
76
+ # @return [String, nil]
77
+ optional :tag, String
78
+
79
+ # @!attribute text
80
+ # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
81
+ # (5,242,880 characters).
82
+ #
83
+ # @return [String, nil]
84
+ optional :text, String
85
+
86
+ # @!attribute idempotency_key
87
+ #
88
+ # @return [String, nil]
89
+ optional :idempotency_key, String
90
+
91
+ # @!method initialize(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, reply_to: nil, tag: nil, text: nil, idempotency_key: nil, request_options: {})
92
+ # Some parameter documentations has been truncated, see
93
+ # {ArkEmail::Models::EmailSendParams} for more details.
94
+ #
95
+ # @param from [String] Sender email address. Must be from a verified domain.
96
+ #
97
+ # @param subject [String] Email subject line
98
+ #
99
+ # @param to [Array<String>] Recipient email addresses (max 50)
100
+ #
101
+ # @param attachments [Array<ArkEmail::Models::EmailSendParams::Attachment>] File attachments
102
+ #
103
+ # @param bcc [Array<String>] BCC recipients
104
+ #
105
+ # @param cc [Array<String>] CC recipients
106
+ #
107
+ # @param headers [Hash{Symbol=>String}] Custom email headers
108
+ #
109
+ # @param html [String] HTML body content.
110
+ #
111
+ # @param reply_to [String] Reply-to address
112
+ #
113
+ # @param tag [String] Tag for categorization and filtering
114
+ #
115
+ # @param text [String] Plain text body (auto-generated from HTML if not provided).
116
+ #
117
+ # @param idempotency_key [String]
118
+ #
119
+ # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
120
+
121
+ class Attachment < ArkEmail::Internal::Type::BaseModel
122
+ # @!attribute content
123
+ # Base64-encoded file content
124
+ #
125
+ # @return [String]
126
+ required :content, String
127
+
128
+ # @!attribute content_type
129
+ # MIME type
130
+ #
131
+ # @return [String]
132
+ required :content_type, String, api_name: :contentType
133
+
134
+ # @!attribute filename
135
+ # Attachment filename
136
+ #
137
+ # @return [String]
138
+ required :filename, String
139
+
140
+ # @!method initialize(content:, content_type:, filename:)
141
+ # @param content [String] Base64-encoded file content
142
+ #
143
+ # @param content_type [String] MIME type
144
+ #
145
+ # @param filename [String] Attachment filename
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_raw
6
+ class EmailSendRawParams < ArkEmail::Internal::Type::BaseModel
7
+ extend ArkEmail::Internal::Type::RequestParameters::Converter
8
+ include ArkEmail::Internal::Type::RequestParameters
9
+
10
+ # @!attribute data
11
+ # Base64-encoded RFC 2822 message
12
+ #
13
+ # @return [String]
14
+ required :data, String
15
+
16
+ # @!attribute mail_from
17
+ # Envelope sender address
18
+ #
19
+ # @return [String]
20
+ required :mail_from, String, api_name: :mailFrom
21
+
22
+ # @!attribute rcpt_to
23
+ # Envelope recipient addresses
24
+ #
25
+ # @return [Array<String>]
26
+ required :rcpt_to, ArkEmail::Internal::Type::ArrayOf[String], api_name: :rcptTo
27
+
28
+ # @!method initialize(data:, mail_from:, rcpt_to:, request_options: {})
29
+ # @param data [String] Base64-encoded RFC 2822 message
30
+ #
31
+ # @param mail_from [String] Envelope sender address
32
+ #
33
+ # @param rcpt_to [Array<String>] Envelope recipient addresses
34
+ #
35
+ # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_raw
6
+ class EmailSendRawResponse < ArkEmail::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [ArkEmail::Models::EmailSendRawResponse::Data]
10
+ required :data, -> { ArkEmail::Models::EmailSendRawResponse::Data }
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ArkEmail::Models::APIMeta]
15
+ required :meta, -> { ArkEmail::APIMeta }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, true]
20
+ required :success, const: true
21
+
22
+ # @!method initialize(data:, meta:, success: true)
23
+ # @param data [ArkEmail::Models::EmailSendRawResponse::Data]
24
+ # @param meta [ArkEmail::Models::APIMeta]
25
+ # @param success [Boolean, true]
26
+
27
+ # @see ArkEmail::Models::EmailSendRawResponse#data
28
+ class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute id
30
+ # Unique message ID (format: msg*{id}*{token})
31
+ #
32
+ # @return [String]
33
+ required :id, String
34
+
35
+ # @!attribute status
36
+ # Current delivery status
37
+ #
38
+ # @return [Symbol, ArkEmail::Models::EmailSendRawResponse::Data::Status]
39
+ required :status, enum: -> { ArkEmail::Models::EmailSendRawResponse::Data::Status }
40
+
41
+ # @!attribute to
42
+ # List of recipient addresses
43
+ #
44
+ # @return [Array<String>]
45
+ required :to, ArkEmail::Internal::Type::ArrayOf[String]
46
+
47
+ # @!attribute message_id
48
+ # SMTP Message-ID header value
49
+ #
50
+ # @return [String, nil]
51
+ optional :message_id, String, api_name: :messageId
52
+
53
+ # @!method initialize(id:, status:, to:, message_id: nil)
54
+ # @param id [String] Unique message ID (format: msg*{id}*{token})
55
+ #
56
+ # @param status [Symbol, ArkEmail::Models::EmailSendRawResponse::Data::Status] Current delivery status
57
+ #
58
+ # @param to [Array<String>] List of recipient addresses
59
+ #
60
+ # @param message_id [String] SMTP Message-ID header value
61
+
62
+ # Current delivery status
63
+ #
64
+ # @see ArkEmail::Models::EmailSendRawResponse::Data#status
65
+ module Status
66
+ extend ArkEmail::Internal::Type::Enum
67
+
68
+ PENDING = :pending
69
+ SENT = :sent
70
+
71
+ # @!method self.values
72
+ # @return [Array<Symbol>]
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Emails#send_
6
+ class EmailSendResponse < ArkEmail::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [ArkEmail::Models::EmailSendResponse::Data]
10
+ required :data, -> { ArkEmail::Models::EmailSendResponse::Data }
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ArkEmail::Models::APIMeta]
15
+ required :meta, -> { ArkEmail::APIMeta }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, true]
20
+ required :success, const: true
21
+
22
+ # @!method initialize(data:, meta:, success: true)
23
+ # @param data [ArkEmail::Models::EmailSendResponse::Data]
24
+ # @param meta [ArkEmail::Models::APIMeta]
25
+ # @param success [Boolean, true]
26
+
27
+ # @see ArkEmail::Models::EmailSendResponse#data
28
+ class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute id
30
+ # Unique message ID (format: msg*{id}*{token})
31
+ #
32
+ # @return [String]
33
+ required :id, String
34
+
35
+ # @!attribute status
36
+ # Current delivery status
37
+ #
38
+ # @return [Symbol, ArkEmail::Models::EmailSendResponse::Data::Status]
39
+ required :status, enum: -> { ArkEmail::Models::EmailSendResponse::Data::Status }
40
+
41
+ # @!attribute to
42
+ # List of recipient addresses
43
+ #
44
+ # @return [Array<String>]
45
+ required :to, ArkEmail::Internal::Type::ArrayOf[String]
46
+
47
+ # @!attribute message_id
48
+ # SMTP Message-ID header value
49
+ #
50
+ # @return [String, nil]
51
+ optional :message_id, String, api_name: :messageId
52
+
53
+ # @!method initialize(id:, status:, to:, message_id: nil)
54
+ # @param id [String] Unique message ID (format: msg*{id}*{token})
55
+ #
56
+ # @param status [Symbol, ArkEmail::Models::EmailSendResponse::Data::Status] Current delivery status
57
+ #
58
+ # @param to [Array<String>] List of recipient addresses
59
+ #
60
+ # @param message_id [String] SMTP Message-ID header value
61
+
62
+ # Current delivery status
63
+ #
64
+ # @see ArkEmail::Models::EmailSendResponse::Data#status
65
+ module Status
66
+ extend ArkEmail::Internal::Type::Enum
67
+
68
+ PENDING = :pending
69
+ SENT = :sent
70
+
71
+ # @!method self.values
72
+ # @return [Array<Symbol>]
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Suppressions#bulk_create
6
+ class SuppressionBulkCreateParams < ArkEmail::Internal::Type::BaseModel
7
+ extend ArkEmail::Internal::Type::RequestParameters::Converter
8
+ include ArkEmail::Internal::Type::RequestParameters
9
+
10
+ # @!attribute suppressions
11
+ #
12
+ # @return [Array<ArkEmail::Models::SuppressionBulkCreateParams::Suppression>]
13
+ required :suppressions,
14
+ -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::SuppressionBulkCreateParams::Suppression] }
15
+
16
+ # @!method initialize(suppressions:, request_options: {})
17
+ # @param suppressions [Array<ArkEmail::Models::SuppressionBulkCreateParams::Suppression>]
18
+ # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
19
+
20
+ class Suppression < ArkEmail::Internal::Type::BaseModel
21
+ # @!attribute address
22
+ #
23
+ # @return [String]
24
+ required :address, String
25
+
26
+ # @!attribute reason
27
+ #
28
+ # @return [String, nil]
29
+ optional :reason, String
30
+
31
+ # @!method initialize(address:, reason: nil)
32
+ # @param address [String]
33
+ # @param reason [String]
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Suppressions#bulk_create
6
+ class SuppressionBulkCreateResponse < ArkEmail::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [ArkEmail::Models::SuppressionBulkCreateResponse::Data]
10
+ required :data, -> { ArkEmail::Models::SuppressionBulkCreateResponse::Data }
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ArkEmail::Models::APIMeta]
15
+ required :meta, -> { ArkEmail::APIMeta }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, true]
20
+ required :success, const: true
21
+
22
+ # @!method initialize(data:, meta:, success: true)
23
+ # @param data [ArkEmail::Models::SuppressionBulkCreateResponse::Data]
24
+ # @param meta [ArkEmail::Models::APIMeta]
25
+ # @param success [Boolean, true]
26
+
27
+ # @see ArkEmail::Models::SuppressionBulkCreateResponse#data
28
+ class Data < ArkEmail::Internal::Type::BaseModel
29
+ # @!attribute added
30
+ # Newly suppressed addresses
31
+ #
32
+ # @return [Integer]
33
+ required :added, Integer
34
+
35
+ # @!attribute failed
36
+ # Invalid addresses skipped
37
+ #
38
+ # @return [Integer]
39
+ required :failed, Integer
40
+
41
+ # @!attribute total_requested
42
+ # Total addresses in request
43
+ #
44
+ # @return [Integer]
45
+ required :total_requested, Integer, api_name: :totalRequested
46
+
47
+ # @!attribute updated
48
+ # Already suppressed addresses (updated reason)
49
+ #
50
+ # @return [Integer]
51
+ required :updated, Integer
52
+
53
+ # @!method initialize(added:, failed:, total_requested:, updated:)
54
+ # @param added [Integer] Newly suppressed addresses
55
+ #
56
+ # @param failed [Integer] Invalid addresses skipped
57
+ #
58
+ # @param total_requested [Integer] Total addresses in request
59
+ #
60
+ # @param updated [Integer] Already suppressed addresses (updated reason)
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArkEmail
4
+ module Models
5
+ # @see ArkEmail::Resources::Suppressions#create
6
+ class SuppressionCreateParams < ArkEmail::Internal::Type::BaseModel
7
+ extend ArkEmail::Internal::Type::RequestParameters::Converter
8
+ include ArkEmail::Internal::Type::RequestParameters
9
+
10
+ # @!attribute address
11
+ # Email address to suppress
12
+ #
13
+ # @return [String]
14
+ required :address, String
15
+
16
+ # @!attribute reason
17
+ # Reason for suppression
18
+ #
19
+ # @return [String, nil]
20
+ optional :reason, String
21
+
22
+ # @!method initialize(address:, reason: nil, request_options: {})
23
+ # @param address [String] Email address to suppress
24
+ #
25
+ # @param reason [String] Reason for suppression
26
+ #
27
+ # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
28
+ end
29
+ end
30
+ end