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,487 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Internal
5
+ # @api private
6
+ module Util
7
+ extend ArkEmail::Internal::Util::SorbetRuntimeSupport
8
+
9
+ # @api private
10
+ sig { returns(Float) }
11
+ def self.monotonic_secs
12
+ end
13
+
14
+ # @api private
15
+ sig do
16
+ params(ns: T.any(Module, T::Class[T.anything])).returns(
17
+ T::Enumerable[T.any(Module, T::Class[T.anything])]
18
+ )
19
+ end
20
+ def self.walk_namespaces(ns)
21
+ end
22
+
23
+ class << self
24
+ # @api private
25
+ sig { returns(String) }
26
+ def arch
27
+ end
28
+
29
+ # @api private
30
+ sig { returns(String) }
31
+ def os
32
+ end
33
+ end
34
+
35
+ class << self
36
+ # @api private
37
+ sig { params(input: T.anything).returns(T::Boolean) }
38
+ def primitive?(input)
39
+ end
40
+
41
+ # @api private
42
+ sig do
43
+ params(input: T.any(String, T::Boolean)).returns(
44
+ T.any(T::Boolean, T.anything)
45
+ )
46
+ end
47
+ def coerce_boolean(input)
48
+ end
49
+
50
+ # @api private
51
+ sig do
52
+ params(input: T.any(String, T::Boolean)).returns(
53
+ T.nilable(T::Boolean)
54
+ )
55
+ end
56
+ def coerce_boolean!(input)
57
+ end
58
+
59
+ # @api private
60
+ sig do
61
+ params(input: T.any(String, Integer)).returns(
62
+ T.any(Integer, T.anything)
63
+ )
64
+ end
65
+ def coerce_integer(input)
66
+ end
67
+
68
+ # @api private
69
+ sig do
70
+ params(input: T.any(String, Integer, Float)).returns(
71
+ T.any(Float, T.anything)
72
+ )
73
+ end
74
+ def coerce_float(input)
75
+ end
76
+
77
+ # @api private
78
+ sig do
79
+ params(input: T.anything).returns(
80
+ T.any(T::Hash[T.anything, T.anything], T.anything)
81
+ )
82
+ end
83
+ def coerce_hash(input)
84
+ end
85
+
86
+ # @api private
87
+ sig do
88
+ params(input: T.anything).returns(
89
+ T.nilable(T::Hash[T.anything, T.anything])
90
+ )
91
+ end
92
+ def coerce_hash!(input)
93
+ end
94
+ end
95
+
96
+ class << self
97
+ # @api private
98
+ sig do
99
+ params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns(
100
+ T.anything
101
+ )
102
+ end
103
+ private def deep_merge_lr(lhs, rhs, concat: false)
104
+ end
105
+
106
+ # @api private
107
+ #
108
+ # Recursively merge one hash with another. If the values at a given key are not
109
+ # both hashes, just take the new value.
110
+ sig do
111
+ params(
112
+ values: T::Array[T.anything],
113
+ sentinel: T.nilable(T.anything),
114
+ concat: T::Boolean
115
+ ).returns(T.anything)
116
+ end
117
+ def deep_merge(
118
+ *values,
119
+ # the value to return if no values are provided.
120
+ sentinel: nil,
121
+ # whether to merge sequences by concatenation.
122
+ concat: false
123
+ )
124
+ end
125
+
126
+ # @api private
127
+ sig do
128
+ params(
129
+ data:
130
+ T.any(
131
+ ArkEmail::Internal::AnyHash,
132
+ T::Array[T.anything],
133
+ T.anything
134
+ ),
135
+ pick:
136
+ T.nilable(
137
+ T.any(
138
+ Symbol,
139
+ Integer,
140
+ T::Array[T.any(Symbol, Integer)],
141
+ T.proc.params(arg0: T.anything).returns(T.anything)
142
+ )
143
+ ),
144
+ blk: T.nilable(T.proc.returns(T.anything))
145
+ ).returns(T.nilable(T.anything))
146
+ end
147
+ def dig(data, pick, &blk)
148
+ end
149
+ end
150
+
151
+ class << self
152
+ # @api private
153
+ sig { params(uri: URI::Generic).returns(String) }
154
+ def uri_origin(uri)
155
+ end
156
+
157
+ # @api private
158
+ sig { params(path: T.any(String, T::Array[String])).returns(String) }
159
+ def interpolate_path(path)
160
+ end
161
+ end
162
+
163
+ class << self
164
+ # @api private
165
+ sig do
166
+ params(query: T.nilable(String)).returns(
167
+ T::Hash[String, T::Array[String]]
168
+ )
169
+ end
170
+ def decode_query(query)
171
+ end
172
+
173
+ # @api private
174
+ sig do
175
+ params(
176
+ query:
177
+ T.nilable(
178
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
179
+ )
180
+ ).returns(T.nilable(String))
181
+ end
182
+ def encode_query(query)
183
+ end
184
+ end
185
+
186
+ ParsedUri =
187
+ T.type_alias do
188
+ {
189
+ scheme: T.nilable(String),
190
+ host: T.nilable(String),
191
+ port: T.nilable(Integer),
192
+ path: T.nilable(String),
193
+ query: T::Hash[String, T::Array[String]]
194
+ }
195
+ end
196
+
197
+ class << self
198
+ # @api private
199
+ sig do
200
+ params(url: T.any(URI::Generic, String)).returns(
201
+ ArkEmail::Internal::Util::ParsedUri
202
+ )
203
+ end
204
+ def parse_uri(url)
205
+ end
206
+
207
+ # @api private
208
+ sig do
209
+ params(parsed: ArkEmail::Internal::Util::ParsedUri).returns(
210
+ URI::Generic
211
+ )
212
+ end
213
+ def unparse_uri(parsed)
214
+ end
215
+
216
+ # @api private
217
+ sig do
218
+ params(
219
+ lhs: ArkEmail::Internal::Util::ParsedUri,
220
+ rhs: ArkEmail::Internal::Util::ParsedUri
221
+ ).returns(URI::Generic)
222
+ end
223
+ def join_parsed_uri(lhs, rhs)
224
+ end
225
+ end
226
+
227
+ class << self
228
+ # @api private
229
+ sig do
230
+ params(
231
+ headers:
232
+ T::Hash[
233
+ String,
234
+ T.nilable(
235
+ T.any(
236
+ String,
237
+ Integer,
238
+ T::Array[T.nilable(T.any(String, Integer))]
239
+ )
240
+ )
241
+ ]
242
+ ).returns(T::Hash[String, String])
243
+ end
244
+ def normalized_headers(*headers)
245
+ end
246
+ end
247
+
248
+ # @api private
249
+ #
250
+ # An adapter that satisfies the IO interface required by `::IO.copy_stream`
251
+ class ReadIOAdapter
252
+ # @api private
253
+ sig { returns(T.nilable(T::Boolean)) }
254
+ def close?
255
+ end
256
+
257
+ # @api private
258
+ sig { void }
259
+ def close
260
+ end
261
+
262
+ # @api private
263
+ sig { params(max_len: T.nilable(Integer)).returns(String) }
264
+ private def read_enum(max_len)
265
+ end
266
+
267
+ # @api private
268
+ sig do
269
+ params(
270
+ max_len: T.nilable(Integer),
271
+ out_string: T.nilable(String)
272
+ ).returns(T.nilable(String))
273
+ end
274
+ def read(max_len = nil, out_string = nil)
275
+ end
276
+
277
+ # @api private
278
+ sig do
279
+ params(
280
+ src: T.any(String, Pathname, StringIO, T::Enumerable[String]),
281
+ blk: T.proc.params(arg0: String).void
282
+ ).returns(T.attached_class)
283
+ end
284
+ def self.new(src, &blk)
285
+ end
286
+ end
287
+
288
+ class << self
289
+ sig do
290
+ params(blk: T.proc.params(y: Enumerator::Yielder).void).returns(
291
+ T::Enumerable[String]
292
+ )
293
+ end
294
+ def writable_enum(&blk)
295
+ end
296
+ end
297
+
298
+ JSON_CONTENT =
299
+ T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp)
300
+ JSONL_CONTENT =
301
+ T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
+
303
+ class << self
304
+ # @api private
305
+ sig do
306
+ params(
307
+ y: Enumerator::Yielder,
308
+ val: T.anything,
309
+ closing: T::Array[T.proc.void],
310
+ content_type: T.nilable(String)
311
+ ).void
312
+ end
313
+ private def write_multipart_content(
314
+ y,
315
+ val:,
316
+ closing:,
317
+ content_type: nil
318
+ )
319
+ end
320
+
321
+ # @api private
322
+ sig do
323
+ params(
324
+ y: Enumerator::Yielder,
325
+ boundary: String,
326
+ key: T.any(Symbol, String),
327
+ val: T.anything,
328
+ closing: T::Array[T.proc.void]
329
+ ).void
330
+ end
331
+ private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
332
+ end
333
+
334
+ # @api private
335
+ #
336
+ # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
337
+ sig do
338
+ params(body: T.anything).returns([String, T::Enumerable[String]])
339
+ end
340
+ private def encode_multipart_streaming(body)
341
+ end
342
+
343
+ # @api private
344
+ sig do
345
+ params(headers: T::Hash[String, String], body: T.anything).returns(
346
+ T.anything
347
+ )
348
+ end
349
+ def encode_content(headers, body)
350
+ end
351
+
352
+ # @api private
353
+ #
354
+ # https://www.iana.org/assignments/character-sets/character-sets.xhtml
355
+ sig { params(content_type: String, text: String).void }
356
+ def force_charset!(content_type, text:)
357
+ end
358
+
359
+ # @api private
360
+ #
361
+ # Assumes each chunk in stream has `Encoding::BINARY`.
362
+ sig do
363
+ params(
364
+ headers: T::Hash[String, String],
365
+ stream: T::Enumerable[String],
366
+ suppress_error: T::Boolean
367
+ ).returns(T.anything)
368
+ end
369
+ def decode_content(headers, stream:, suppress_error: false)
370
+ end
371
+ end
372
+
373
+ class << self
374
+ # @api private
375
+ #
376
+ # https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
377
+ sig do
378
+ params(
379
+ enum: T::Enumerable[T.anything],
380
+ external: T::Boolean,
381
+ close: T.proc.void
382
+ ).returns(T::Enumerable[T.anything])
383
+ end
384
+ def fused_enum(enum, external: false, &close)
385
+ end
386
+
387
+ # @api private
388
+ sig { params(enum: T.nilable(T::Enumerable[T.anything])).void }
389
+ def close_fused!(enum)
390
+ end
391
+
392
+ # @api private
393
+ sig do
394
+ params(
395
+ enum: T.nilable(T::Enumerable[T.anything]),
396
+ blk: T.proc.params(arg0: Enumerator::Yielder).void
397
+ ).returns(T::Enumerable[T.anything])
398
+ end
399
+ def chain_fused(enum, &blk)
400
+ end
401
+ end
402
+
403
+ ServerSentEvent =
404
+ T.type_alias do
405
+ {
406
+ event: T.nilable(String),
407
+ data: T.nilable(String),
408
+ id: T.nilable(String),
409
+ retry: T.nilable(Integer)
410
+ }
411
+ end
412
+
413
+ class << self
414
+ # @api private
415
+ #
416
+ # Assumes Strings have been forced into having `Encoding::BINARY`.
417
+ #
418
+ # This decoder is responsible for reassembling lines split across multiple
419
+ # fragments.
420
+ sig do
421
+ params(enum: T::Enumerable[String]).returns(T::Enumerable[String])
422
+ end
423
+ def decode_lines(enum)
424
+ end
425
+
426
+ # @api private
427
+ #
428
+ # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
429
+ #
430
+ # Assumes that `lines` has been decoded with `#decode_lines`.
431
+ sig do
432
+ params(lines: T::Enumerable[String]).returns(
433
+ T::Enumerable[ArkEmail::Internal::Util::ServerSentEvent]
434
+ )
435
+ end
436
+ def decode_sse(lines)
437
+ end
438
+ end
439
+
440
+ # @api private
441
+ module SorbetRuntimeSupport
442
+ class MissingSorbetRuntimeError < ::RuntimeError
443
+ end
444
+
445
+ # @api private
446
+ sig { returns(T::Hash[Symbol, T.anything]) }
447
+ private def sorbet_runtime_constants
448
+ end
449
+
450
+ # @api private
451
+ sig { params(name: Symbol).void }
452
+ def const_missing(name)
453
+ end
454
+
455
+ # @api private
456
+ sig { params(name: Symbol).returns(T::Boolean) }
457
+ def sorbet_constant_defined?(name)
458
+ end
459
+
460
+ # @api private
461
+ sig { params(name: Symbol, blk: T.proc.returns(T.anything)).void }
462
+ def define_sorbet_constant!(name, &blk)
463
+ end
464
+
465
+ # @api private
466
+ sig { returns(T.anything) }
467
+ def to_sorbet_type
468
+ end
469
+
470
+ class << self
471
+ # @api private
472
+ sig do
473
+ params(
474
+ type:
475
+ T.any(
476
+ ArkEmail::Internal::Util::SorbetRuntimeSupport,
477
+ T.anything
478
+ )
479
+ ).returns(T.anything)
480
+ end
481
+ def to_sorbet_type(type)
482
+ end
483
+ end
484
+ end
485
+ end
486
+ end
487
+ end
@@ -0,0 +1,16 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Internal
5
+ extend ArkEmail::Internal::Util::SorbetRuntimeSupport
6
+
7
+ # Due to the current WIP status of Shapes support in Sorbet, types referencing
8
+ # this alias might be refined in the future.
9
+ AnyHash = T.type_alias { T::Hash[Symbol, T.anything] }
10
+
11
+ FileInput =
12
+ T.type_alias { T.any(Pathname, StringIO, IO, String, ArkEmail::FilePart) }
13
+
14
+ OMIT = T.let(Object.new.freeze, T.anything)
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class APIMeta < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(ArkEmail::APIMeta, ArkEmail::Internal::AnyHash) }
8
+
9
+ # Unique request identifier for debugging and support
10
+ sig { returns(String) }
11
+ attr_accessor :request_id
12
+
13
+ sig { params(request_id: String).returns(T.attached_class) }
14
+ def self.new(
15
+ # Unique request identifier for debugging and support
16
+ request_id:
17
+ )
18
+ end
19
+
20
+ sig { override.returns({ request_id: String }) }
21
+ def to_hash
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,111 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class DNSRecord < ArkEmail::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(ArkEmail::DNSRecord, ArkEmail::Internal::AnyHash) }
8
+
9
+ # DNS record name (hostname)
10
+ sig { returns(String) }
11
+ attr_accessor :name
12
+
13
+ # DNS record type
14
+ sig { returns(ArkEmail::DNSRecord::Type::TaggedSymbol) }
15
+ attr_accessor :type
16
+
17
+ # DNS record value
18
+ sig { returns(String) }
19
+ attr_accessor :value
20
+
21
+ # DNS verification status:
22
+ #
23
+ # - `OK` - Record is correctly configured
24
+ # - `Missing` - Record not found in DNS
25
+ # - `Invalid` - Record exists but has wrong value
26
+ # - `null` - Not yet checked
27
+ sig { returns(T.nilable(ArkEmail::DNSRecord::Status::TaggedSymbol)) }
28
+ attr_accessor :status
29
+
30
+ sig do
31
+ params(
32
+ name: String,
33
+ type: ArkEmail::DNSRecord::Type::OrSymbol,
34
+ value: String,
35
+ status: T.nilable(ArkEmail::DNSRecord::Status::OrSymbol)
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # DNS record name (hostname)
40
+ name:,
41
+ # DNS record type
42
+ type:,
43
+ # DNS record value
44
+ value:,
45
+ # DNS verification status:
46
+ #
47
+ # - `OK` - Record is correctly configured
48
+ # - `Missing` - Record not found in DNS
49
+ # - `Invalid` - Record exists but has wrong value
50
+ # - `null` - Not yet checked
51
+ status: nil
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {
58
+ name: String,
59
+ type: ArkEmail::DNSRecord::Type::TaggedSymbol,
60
+ value: String,
61
+ status: T.nilable(ArkEmail::DNSRecord::Status::TaggedSymbol)
62
+ }
63
+ )
64
+ end
65
+ def to_hash
66
+ end
67
+
68
+ # DNS record type
69
+ module Type
70
+ extend ArkEmail::Internal::Type::Enum
71
+
72
+ TaggedSymbol = T.type_alias { T.all(Symbol, ArkEmail::DNSRecord::Type) }
73
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
74
+
75
+ TXT = T.let(:TXT, ArkEmail::DNSRecord::Type::TaggedSymbol)
76
+ CNAME = T.let(:CNAME, ArkEmail::DNSRecord::Type::TaggedSymbol)
77
+ MX = T.let(:MX, ArkEmail::DNSRecord::Type::TaggedSymbol)
78
+
79
+ sig do
80
+ override.returns(T::Array[ArkEmail::DNSRecord::Type::TaggedSymbol])
81
+ end
82
+ def self.values
83
+ end
84
+ end
85
+
86
+ # DNS verification status:
87
+ #
88
+ # - `OK` - Record is correctly configured
89
+ # - `Missing` - Record not found in DNS
90
+ # - `Invalid` - Record exists but has wrong value
91
+ # - `null` - Not yet checked
92
+ module Status
93
+ extend ArkEmail::Internal::Type::Enum
94
+
95
+ TaggedSymbol =
96
+ T.type_alias { T.all(Symbol, ArkEmail::DNSRecord::Status) }
97
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
98
+
99
+ OK = T.let(:OK, ArkEmail::DNSRecord::Status::TaggedSymbol)
100
+ MISSING = T.let(:Missing, ArkEmail::DNSRecord::Status::TaggedSymbol)
101
+ INVALID = T.let(:Invalid, ArkEmail::DNSRecord::Status::TaggedSymbol)
102
+
103
+ sig do
104
+ override.returns(T::Array[ArkEmail::DNSRecord::Status::TaggedSymbol])
105
+ end
106
+ def self.values
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module ArkEmail
4
+ module Models
5
+ class DomainCreateParams < 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::DomainCreateParams, ArkEmail::Internal::AnyHash)
12
+ end
13
+
14
+ # Domain name (e.g., "mail.example.com")
15
+ sig { returns(String) }
16
+ attr_accessor :name
17
+
18
+ sig do
19
+ params(
20
+ name: String,
21
+ request_options: ArkEmail::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(
25
+ # Domain name (e.g., "mail.example.com")
26
+ name:,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ { name: String, request_options: ArkEmail::RequestOptions }
34
+ )
35
+ end
36
+ def to_hash
37
+ end
38
+ end
39
+ end
40
+ end