@reyemtech/nimbus 0.1.0

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 (363) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +399 -0
  3. package/dist/cjs/aws/cluster.d.ts +32 -0
  4. package/dist/cjs/aws/cluster.d.ts.map +1 -0
  5. package/dist/cjs/aws/cluster.js +214 -0
  6. package/dist/cjs/aws/cluster.js.map +1 -0
  7. package/dist/cjs/aws/dns.d.ts +22 -0
  8. package/dist/cjs/aws/dns.d.ts.map +1 -0
  9. package/dist/cjs/aws/dns.js +95 -0
  10. package/dist/cjs/aws/dns.js.map +1 -0
  11. package/dist/cjs/aws/index.d.ts +10 -0
  12. package/dist/cjs/aws/index.d.ts.map +1 -0
  13. package/dist/cjs/aws/index.js +17 -0
  14. package/dist/cjs/aws/index.js.map +1 -0
  15. package/dist/cjs/aws/network.d.ts +27 -0
  16. package/dist/cjs/aws/network.d.ts.map +1 -0
  17. package/dist/cjs/aws/network.js +262 -0
  18. package/dist/cjs/aws/network.js.map +1 -0
  19. package/dist/cjs/aws/secrets.d.ts +26 -0
  20. package/dist/cjs/aws/secrets.d.ts.map +1 -0
  21. package/dist/cjs/aws/secrets.js +127 -0
  22. package/dist/cjs/aws/secrets.js.map +1 -0
  23. package/dist/cjs/azure/cluster.d.ts +44 -0
  24. package/dist/cjs/azure/cluster.d.ts.map +1 -0
  25. package/dist/cjs/azure/cluster.js +143 -0
  26. package/dist/cjs/azure/cluster.js.map +1 -0
  27. package/dist/cjs/azure/dns.d.ts +28 -0
  28. package/dist/cjs/azure/dns.d.ts.map +1 -0
  29. package/dist/cjs/azure/dns.js +169 -0
  30. package/dist/cjs/azure/dns.js.map +1 -0
  31. package/dist/cjs/azure/index.d.ts +10 -0
  32. package/dist/cjs/azure/index.d.ts.map +1 -0
  33. package/dist/cjs/azure/index.js +17 -0
  34. package/dist/cjs/azure/index.js.map +1 -0
  35. package/dist/cjs/azure/network.d.ts +28 -0
  36. package/dist/cjs/azure/network.d.ts.map +1 -0
  37. package/dist/cjs/azure/network.js +176 -0
  38. package/dist/cjs/azure/network.js.map +1 -0
  39. package/dist/cjs/azure/secrets.d.ts +37 -0
  40. package/dist/cjs/azure/secrets.d.ts.map +1 -0
  41. package/dist/cjs/azure/secrets.js +150 -0
  42. package/dist/cjs/azure/secrets.js.map +1 -0
  43. package/dist/cjs/cache/index.d.ts +7 -0
  44. package/dist/cjs/cache/index.d.ts.map +1 -0
  45. package/dist/cjs/cache/index.js +8 -0
  46. package/dist/cjs/cache/index.js.map +1 -0
  47. package/dist/cjs/cache/interfaces.d.ts +60 -0
  48. package/dist/cjs/cache/interfaces.d.ts.map +1 -0
  49. package/dist/cjs/cache/interfaces.js +11 -0
  50. package/dist/cjs/cache/interfaces.js.map +1 -0
  51. package/dist/cjs/cluster/index.d.ts +7 -0
  52. package/dist/cjs/cluster/index.d.ts.map +1 -0
  53. package/dist/cjs/cluster/index.js +8 -0
  54. package/dist/cjs/cluster/index.js.map +1 -0
  55. package/dist/cjs/cluster/interfaces.d.ts +120 -0
  56. package/dist/cjs/cluster/interfaces.d.ts.map +1 -0
  57. package/dist/cjs/cluster/interfaces.js +12 -0
  58. package/dist/cjs/cluster/interfaces.js.map +1 -0
  59. package/dist/cjs/database/index.d.ts +7 -0
  60. package/dist/cjs/database/index.d.ts.map +1 -0
  61. package/dist/cjs/database/index.js +8 -0
  62. package/dist/cjs/database/index.js.map +1 -0
  63. package/dist/cjs/database/interfaces.d.ts +93 -0
  64. package/dist/cjs/database/interfaces.d.ts.map +1 -0
  65. package/dist/cjs/database/interfaces.js +12 -0
  66. package/dist/cjs/database/interfaces.js.map +1 -0
  67. package/dist/cjs/dns/index.d.ts +7 -0
  68. package/dist/cjs/dns/index.d.ts.map +1 -0
  69. package/dist/cjs/dns/index.js +8 -0
  70. package/dist/cjs/dns/index.js.map +1 -0
  71. package/dist/cjs/dns/interfaces.d.ts +55 -0
  72. package/dist/cjs/dns/interfaces.d.ts.map +1 -0
  73. package/dist/cjs/dns/interfaces.js +11 -0
  74. package/dist/cjs/dns/interfaces.js.map +1 -0
  75. package/dist/cjs/factories/cluster.d.ts +45 -0
  76. package/dist/cjs/factories/cluster.d.ts.map +1 -0
  77. package/dist/cjs/factories/cluster.js +90 -0
  78. package/dist/cjs/factories/cluster.js.map +1 -0
  79. package/dist/cjs/factories/dns.d.ts +30 -0
  80. package/dist/cjs/factories/dns.d.ts.map +1 -0
  81. package/dist/cjs/factories/dns.js +56 -0
  82. package/dist/cjs/factories/dns.js.map +1 -0
  83. package/dist/cjs/factories/index.d.ts +15 -0
  84. package/dist/cjs/factories/index.d.ts.map +1 -0
  85. package/dist/cjs/factories/index.js +23 -0
  86. package/dist/cjs/factories/index.js.map +1 -0
  87. package/dist/cjs/factories/network.d.ts +40 -0
  88. package/dist/cjs/factories/network.d.ts.map +1 -0
  89. package/dist/cjs/factories/network.js +85 -0
  90. package/dist/cjs/factories/network.js.map +1 -0
  91. package/dist/cjs/factories/secrets.d.ts +38 -0
  92. package/dist/cjs/factories/secrets.d.ts.map +1 -0
  93. package/dist/cjs/factories/secrets.js +67 -0
  94. package/dist/cjs/factories/secrets.js.map +1 -0
  95. package/dist/cjs/factories/types.d.ts +75 -0
  96. package/dist/cjs/factories/types.d.ts.map +1 -0
  97. package/dist/cjs/factories/types.js +28 -0
  98. package/dist/cjs/factories/types.js.map +1 -0
  99. package/dist/cjs/global-lb/glb.d.ts +29 -0
  100. package/dist/cjs/global-lb/glb.d.ts.map +1 -0
  101. package/dist/cjs/global-lb/glb.js +220 -0
  102. package/dist/cjs/global-lb/glb.js.map +1 -0
  103. package/dist/cjs/global-lb/index.d.ts +8 -0
  104. package/dist/cjs/global-lb/index.d.ts.map +1 -0
  105. package/dist/cjs/global-lb/index.js +11 -0
  106. package/dist/cjs/global-lb/index.js.map +1 -0
  107. package/dist/cjs/global-lb/interfaces.d.ts +62 -0
  108. package/dist/cjs/global-lb/interfaces.d.ts.map +1 -0
  109. package/dist/cjs/global-lb/interfaces.js +11 -0
  110. package/dist/cjs/global-lb/interfaces.js.map +1 -0
  111. package/dist/cjs/index.d.ts +28 -0
  112. package/dist/cjs/index.d.ts.map +1 -0
  113. package/dist/cjs/index.js +72 -0
  114. package/dist/cjs/index.js.map +1 -0
  115. package/dist/cjs/network/cidr.d.ts +92 -0
  116. package/dist/cjs/network/cidr.d.ts.map +1 -0
  117. package/dist/cjs/network/cidr.js +189 -0
  118. package/dist/cjs/network/cidr.js.map +1 -0
  119. package/dist/cjs/network/index.d.ts +8 -0
  120. package/dist/cjs/network/index.d.ts.map +1 -0
  121. package/dist/cjs/network/index.js +17 -0
  122. package/dist/cjs/network/index.js.map +1 -0
  123. package/dist/cjs/network/interfaces.d.ts +60 -0
  124. package/dist/cjs/network/interfaces.d.ts.map +1 -0
  125. package/dist/cjs/network/interfaces.js +12 -0
  126. package/dist/cjs/network/interfaces.js.map +1 -0
  127. package/dist/cjs/platform/index.d.ts +8 -0
  128. package/dist/cjs/platform/index.d.ts.map +1 -0
  129. package/dist/cjs/platform/index.js +11 -0
  130. package/dist/cjs/platform/index.js.map +1 -0
  131. package/dist/cjs/platform/interfaces.d.ts +86 -0
  132. package/dist/cjs/platform/interfaces.d.ts.map +1 -0
  133. package/dist/cjs/platform/interfaces.js +12 -0
  134. package/dist/cjs/platform/interfaces.js.map +1 -0
  135. package/dist/cjs/platform/stack.d.ts +32 -0
  136. package/dist/cjs/platform/stack.d.ts.map +1 -0
  137. package/dist/cjs/platform/stack.js +258 -0
  138. package/dist/cjs/platform/stack.js.map +1 -0
  139. package/dist/cjs/queue/index.d.ts +7 -0
  140. package/dist/cjs/queue/index.d.ts.map +1 -0
  141. package/dist/cjs/queue/index.js +8 -0
  142. package/dist/cjs/queue/index.js.map +1 -0
  143. package/dist/cjs/queue/interfaces.d.ts +46 -0
  144. package/dist/cjs/queue/interfaces.d.ts.map +1 -0
  145. package/dist/cjs/queue/interfaces.js +11 -0
  146. package/dist/cjs/queue/interfaces.js.map +1 -0
  147. package/dist/cjs/secrets/index.d.ts +7 -0
  148. package/dist/cjs/secrets/index.d.ts.map +1 -0
  149. package/dist/cjs/secrets/index.js +8 -0
  150. package/dist/cjs/secrets/index.js.map +1 -0
  151. package/dist/cjs/secrets/interfaces.d.ts +73 -0
  152. package/dist/cjs/secrets/interfaces.d.ts.map +1 -0
  153. package/dist/cjs/secrets/interfaces.js +11 -0
  154. package/dist/cjs/secrets/interfaces.js.map +1 -0
  155. package/dist/cjs/storage/index.d.ts +7 -0
  156. package/dist/cjs/storage/index.d.ts.map +1 -0
  157. package/dist/cjs/storage/index.js +8 -0
  158. package/dist/cjs/storage/index.js.map +1 -0
  159. package/dist/cjs/storage/interfaces.d.ts +63 -0
  160. package/dist/cjs/storage/interfaces.d.ts.map +1 -0
  161. package/dist/cjs/storage/interfaces.js +11 -0
  162. package/dist/cjs/storage/interfaces.js.map +1 -0
  163. package/dist/cjs/types/cloud-target.d.ts +89 -0
  164. package/dist/cjs/types/cloud-target.d.ts.map +1 -0
  165. package/dist/cjs/types/cloud-target.js +73 -0
  166. package/dist/cjs/types/cloud-target.js.map +1 -0
  167. package/dist/cjs/types/errors.d.ts +96 -0
  168. package/dist/cjs/types/errors.d.ts.map +1 -0
  169. package/dist/cjs/types/errors.js +127 -0
  170. package/dist/cjs/types/errors.js.map +1 -0
  171. package/dist/cjs/types/index.d.ts +10 -0
  172. package/dist/cjs/types/index.d.ts.map +1 -0
  173. package/dist/cjs/types/index.js +33 -0
  174. package/dist/cjs/types/index.js.map +1 -0
  175. package/dist/cjs/types/tags.d.ts +53 -0
  176. package/dist/cjs/types/tags.d.ts.map +1 -0
  177. package/dist/cjs/types/tags.js +110 -0
  178. package/dist/cjs/types/tags.js.map +1 -0
  179. package/dist/cjs/types/validation.d.ts +63 -0
  180. package/dist/cjs/types/validation.d.ts.map +1 -0
  181. package/dist/cjs/types/validation.js +158 -0
  182. package/dist/cjs/types/validation.js.map +1 -0
  183. package/dist/esm/aws/cluster.d.ts +32 -0
  184. package/dist/esm/aws/cluster.d.ts.map +1 -0
  185. package/dist/esm/aws/cluster.js +214 -0
  186. package/dist/esm/aws/cluster.js.map +1 -0
  187. package/dist/esm/aws/dns.d.ts +22 -0
  188. package/dist/esm/aws/dns.d.ts.map +1 -0
  189. package/dist/esm/aws/dns.js +95 -0
  190. package/dist/esm/aws/dns.js.map +1 -0
  191. package/dist/esm/aws/index.d.ts +10 -0
  192. package/dist/esm/aws/index.d.ts.map +1 -0
  193. package/dist/esm/aws/index.js +17 -0
  194. package/dist/esm/aws/index.js.map +1 -0
  195. package/dist/esm/aws/network.d.ts +27 -0
  196. package/dist/esm/aws/network.d.ts.map +1 -0
  197. package/dist/esm/aws/network.js +262 -0
  198. package/dist/esm/aws/network.js.map +1 -0
  199. package/dist/esm/aws/secrets.d.ts +26 -0
  200. package/dist/esm/aws/secrets.d.ts.map +1 -0
  201. package/dist/esm/aws/secrets.js +127 -0
  202. package/dist/esm/aws/secrets.js.map +1 -0
  203. package/dist/esm/azure/cluster.d.ts +44 -0
  204. package/dist/esm/azure/cluster.d.ts.map +1 -0
  205. package/dist/esm/azure/cluster.js +143 -0
  206. package/dist/esm/azure/cluster.js.map +1 -0
  207. package/dist/esm/azure/dns.d.ts +28 -0
  208. package/dist/esm/azure/dns.d.ts.map +1 -0
  209. package/dist/esm/azure/dns.js +169 -0
  210. package/dist/esm/azure/dns.js.map +1 -0
  211. package/dist/esm/azure/index.d.ts +10 -0
  212. package/dist/esm/azure/index.d.ts.map +1 -0
  213. package/dist/esm/azure/index.js +17 -0
  214. package/dist/esm/azure/index.js.map +1 -0
  215. package/dist/esm/azure/network.d.ts +28 -0
  216. package/dist/esm/azure/network.d.ts.map +1 -0
  217. package/dist/esm/azure/network.js +176 -0
  218. package/dist/esm/azure/network.js.map +1 -0
  219. package/dist/esm/azure/secrets.d.ts +37 -0
  220. package/dist/esm/azure/secrets.d.ts.map +1 -0
  221. package/dist/esm/azure/secrets.js +150 -0
  222. package/dist/esm/azure/secrets.js.map +1 -0
  223. package/dist/esm/cache/index.d.ts +7 -0
  224. package/dist/esm/cache/index.d.ts.map +1 -0
  225. package/dist/esm/cache/index.js +8 -0
  226. package/dist/esm/cache/index.js.map +1 -0
  227. package/dist/esm/cache/interfaces.d.ts +60 -0
  228. package/dist/esm/cache/interfaces.d.ts.map +1 -0
  229. package/dist/esm/cache/interfaces.js +11 -0
  230. package/dist/esm/cache/interfaces.js.map +1 -0
  231. package/dist/esm/cluster/index.d.ts +7 -0
  232. package/dist/esm/cluster/index.d.ts.map +1 -0
  233. package/dist/esm/cluster/index.js +8 -0
  234. package/dist/esm/cluster/index.js.map +1 -0
  235. package/dist/esm/cluster/interfaces.d.ts +120 -0
  236. package/dist/esm/cluster/interfaces.d.ts.map +1 -0
  237. package/dist/esm/cluster/interfaces.js +12 -0
  238. package/dist/esm/cluster/interfaces.js.map +1 -0
  239. package/dist/esm/database/index.d.ts +7 -0
  240. package/dist/esm/database/index.d.ts.map +1 -0
  241. package/dist/esm/database/index.js +8 -0
  242. package/dist/esm/database/index.js.map +1 -0
  243. package/dist/esm/database/interfaces.d.ts +93 -0
  244. package/dist/esm/database/interfaces.d.ts.map +1 -0
  245. package/dist/esm/database/interfaces.js +12 -0
  246. package/dist/esm/database/interfaces.js.map +1 -0
  247. package/dist/esm/dns/index.d.ts +7 -0
  248. package/dist/esm/dns/index.d.ts.map +1 -0
  249. package/dist/esm/dns/index.js +8 -0
  250. package/dist/esm/dns/index.js.map +1 -0
  251. package/dist/esm/dns/interfaces.d.ts +55 -0
  252. package/dist/esm/dns/interfaces.d.ts.map +1 -0
  253. package/dist/esm/dns/interfaces.js +11 -0
  254. package/dist/esm/dns/interfaces.js.map +1 -0
  255. package/dist/esm/factories/cluster.d.ts +45 -0
  256. package/dist/esm/factories/cluster.d.ts.map +1 -0
  257. package/dist/esm/factories/cluster.js +90 -0
  258. package/dist/esm/factories/cluster.js.map +1 -0
  259. package/dist/esm/factories/dns.d.ts +30 -0
  260. package/dist/esm/factories/dns.d.ts.map +1 -0
  261. package/dist/esm/factories/dns.js +56 -0
  262. package/dist/esm/factories/dns.js.map +1 -0
  263. package/dist/esm/factories/index.d.ts +15 -0
  264. package/dist/esm/factories/index.d.ts.map +1 -0
  265. package/dist/esm/factories/index.js +23 -0
  266. package/dist/esm/factories/index.js.map +1 -0
  267. package/dist/esm/factories/network.d.ts +40 -0
  268. package/dist/esm/factories/network.d.ts.map +1 -0
  269. package/dist/esm/factories/network.js +85 -0
  270. package/dist/esm/factories/network.js.map +1 -0
  271. package/dist/esm/factories/secrets.d.ts +38 -0
  272. package/dist/esm/factories/secrets.d.ts.map +1 -0
  273. package/dist/esm/factories/secrets.js +67 -0
  274. package/dist/esm/factories/secrets.js.map +1 -0
  275. package/dist/esm/factories/types.d.ts +75 -0
  276. package/dist/esm/factories/types.d.ts.map +1 -0
  277. package/dist/esm/factories/types.js +28 -0
  278. package/dist/esm/factories/types.js.map +1 -0
  279. package/dist/esm/global-lb/glb.d.ts +29 -0
  280. package/dist/esm/global-lb/glb.d.ts.map +1 -0
  281. package/dist/esm/global-lb/glb.js +220 -0
  282. package/dist/esm/global-lb/glb.js.map +1 -0
  283. package/dist/esm/global-lb/index.d.ts +8 -0
  284. package/dist/esm/global-lb/index.d.ts.map +1 -0
  285. package/dist/esm/global-lb/index.js +11 -0
  286. package/dist/esm/global-lb/index.js.map +1 -0
  287. package/dist/esm/global-lb/interfaces.d.ts +62 -0
  288. package/dist/esm/global-lb/interfaces.d.ts.map +1 -0
  289. package/dist/esm/global-lb/interfaces.js +11 -0
  290. package/dist/esm/global-lb/interfaces.js.map +1 -0
  291. package/dist/esm/index.d.ts +28 -0
  292. package/dist/esm/index.d.ts.map +1 -0
  293. package/dist/esm/index.js +72 -0
  294. package/dist/esm/index.js.map +1 -0
  295. package/dist/esm/network/cidr.d.ts +92 -0
  296. package/dist/esm/network/cidr.d.ts.map +1 -0
  297. package/dist/esm/network/cidr.js +189 -0
  298. package/dist/esm/network/cidr.js.map +1 -0
  299. package/dist/esm/network/index.d.ts +8 -0
  300. package/dist/esm/network/index.d.ts.map +1 -0
  301. package/dist/esm/network/index.js +17 -0
  302. package/dist/esm/network/index.js.map +1 -0
  303. package/dist/esm/network/interfaces.d.ts +60 -0
  304. package/dist/esm/network/interfaces.d.ts.map +1 -0
  305. package/dist/esm/network/interfaces.js +12 -0
  306. package/dist/esm/network/interfaces.js.map +1 -0
  307. package/dist/esm/platform/index.d.ts +8 -0
  308. package/dist/esm/platform/index.d.ts.map +1 -0
  309. package/dist/esm/platform/index.js +11 -0
  310. package/dist/esm/platform/index.js.map +1 -0
  311. package/dist/esm/platform/interfaces.d.ts +86 -0
  312. package/dist/esm/platform/interfaces.d.ts.map +1 -0
  313. package/dist/esm/platform/interfaces.js +12 -0
  314. package/dist/esm/platform/interfaces.js.map +1 -0
  315. package/dist/esm/platform/stack.d.ts +32 -0
  316. package/dist/esm/platform/stack.d.ts.map +1 -0
  317. package/dist/esm/platform/stack.js +258 -0
  318. package/dist/esm/platform/stack.js.map +1 -0
  319. package/dist/esm/queue/index.d.ts +7 -0
  320. package/dist/esm/queue/index.d.ts.map +1 -0
  321. package/dist/esm/queue/index.js +8 -0
  322. package/dist/esm/queue/index.js.map +1 -0
  323. package/dist/esm/queue/interfaces.d.ts +46 -0
  324. package/dist/esm/queue/interfaces.d.ts.map +1 -0
  325. package/dist/esm/queue/interfaces.js +11 -0
  326. package/dist/esm/queue/interfaces.js.map +1 -0
  327. package/dist/esm/secrets/index.d.ts +7 -0
  328. package/dist/esm/secrets/index.d.ts.map +1 -0
  329. package/dist/esm/secrets/index.js +8 -0
  330. package/dist/esm/secrets/index.js.map +1 -0
  331. package/dist/esm/secrets/interfaces.d.ts +73 -0
  332. package/dist/esm/secrets/interfaces.d.ts.map +1 -0
  333. package/dist/esm/secrets/interfaces.js +11 -0
  334. package/dist/esm/secrets/interfaces.js.map +1 -0
  335. package/dist/esm/storage/index.d.ts +7 -0
  336. package/dist/esm/storage/index.d.ts.map +1 -0
  337. package/dist/esm/storage/index.js +8 -0
  338. package/dist/esm/storage/index.js.map +1 -0
  339. package/dist/esm/storage/interfaces.d.ts +63 -0
  340. package/dist/esm/storage/interfaces.d.ts.map +1 -0
  341. package/dist/esm/storage/interfaces.js +11 -0
  342. package/dist/esm/storage/interfaces.js.map +1 -0
  343. package/dist/esm/types/cloud-target.d.ts +89 -0
  344. package/dist/esm/types/cloud-target.d.ts.map +1 -0
  345. package/dist/esm/types/cloud-target.js +73 -0
  346. package/dist/esm/types/cloud-target.js.map +1 -0
  347. package/dist/esm/types/errors.d.ts +96 -0
  348. package/dist/esm/types/errors.d.ts.map +1 -0
  349. package/dist/esm/types/errors.js +127 -0
  350. package/dist/esm/types/errors.js.map +1 -0
  351. package/dist/esm/types/index.d.ts +10 -0
  352. package/dist/esm/types/index.d.ts.map +1 -0
  353. package/dist/esm/types/index.js +33 -0
  354. package/dist/esm/types/index.js.map +1 -0
  355. package/dist/esm/types/tags.d.ts +53 -0
  356. package/dist/esm/types/tags.d.ts.map +1 -0
  357. package/dist/esm/types/tags.js +110 -0
  358. package/dist/esm/types/tags.js.map +1 -0
  359. package/dist/esm/types/validation.d.ts +63 -0
  360. package/dist/esm/types/validation.d.ts.map +1 -0
  361. package/dist/esm/types/validation.js +158 -0
  362. package/dist/esm/types/validation.js.map +1 -0
  363. package/package.json +88 -0
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Cross-cloud validation utilities.
3
+ *
4
+ * Validates multi-cloud configurations for compatibility:
5
+ * - Region naming consistency
6
+ * - Resource naming conflicts
7
+ * - Feature availability per provider
8
+ *
9
+ * @module types/validation
10
+ */
11
+ import type { CloudProvider, ResolvedCloudTarget } from "./cloud-target";
12
+ /** Validation result with warnings and errors. */
13
+ export interface IValidationResult {
14
+ readonly valid: boolean;
15
+ readonly errors: ReadonlyArray<string>;
16
+ readonly warnings: ReadonlyArray<string>;
17
+ }
18
+ /**
19
+ * Validate that a feature is supported on a given provider.
20
+ *
21
+ * @param feature - Feature name to check
22
+ * @param provider - Cloud provider
23
+ * @throws {UnsupportedFeatureError} If the feature is not available
24
+ */
25
+ export declare function validateFeature(feature: string, provider: CloudProvider): void;
26
+ /**
27
+ * Check if a feature is available on a provider (non-throwing).
28
+ *
29
+ * @param feature - Feature name
30
+ * @param provider - Cloud provider
31
+ * @returns True if the feature is supported
32
+ */
33
+ export declare function isFeatureSupported(feature: string, provider: CloudProvider): boolean;
34
+ /**
35
+ * Validate a multi-cloud deployment configuration.
36
+ *
37
+ * Checks for:
38
+ * - Duplicate provider+region combinations
39
+ * - Resource name length constraints per provider
40
+ * - Region availability
41
+ *
42
+ * @param targets - Array of resolved cloud targets
43
+ * @param resourceName - Name that will be used for resources
44
+ * @returns Validation result with any errors/warnings
45
+ */
46
+ export declare function validateMultiCloud(targets: ReadonlyArray<ResolvedCloudTarget>, resourceName: string): IValidationResult;
47
+ /**
48
+ * Validate a resource name against provider-specific constraints.
49
+ *
50
+ * @param name - Resource name to validate
51
+ * @param provider - Target cloud provider
52
+ * @returns Validation result
53
+ */
54
+ export declare function validateResourceName(name: string, provider: CloudProvider): IValidationResult;
55
+ /**
56
+ * Assert that a multi-cloud configuration is valid, throwing on errors.
57
+ *
58
+ * @param targets - Resolved cloud targets
59
+ * @param resourceName - Resource name
60
+ * @throws {CloudValidationError} If validation fails
61
+ */
62
+ export declare function assertValidMultiCloud(targets: ReadonlyArray<ResolvedCloudTarget>, resourceName: string): void;
63
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGzE,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAwBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAK9E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC3C,YAAY,EAAE,MAAM,GACnB,iBAAiB,CA0BnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,iBAAiB,CA0C7F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC3C,YAAY,EAAE,MAAM,GACnB,IAAI,CAKN"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /**
3
+ * Cross-cloud validation utilities.
4
+ *
5
+ * Validates multi-cloud configurations for compatibility:
6
+ * - Region naming consistency
7
+ * - Resource naming conflicts
8
+ * - Feature availability per provider
9
+ *
10
+ * @module types/validation
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.validateFeature = validateFeature;
14
+ exports.isFeatureSupported = isFeatureSupported;
15
+ exports.validateMultiCloud = validateMultiCloud;
16
+ exports.validateResourceName = validateResourceName;
17
+ exports.assertValidMultiCloud = assertValidMultiCloud;
18
+ const errors_1 = require("./errors");
19
+ /** Features that may not be available on all providers. */
20
+ const PROVIDER_FEATURES = {
21
+ aws: new Set([
22
+ "eks-auto-mode",
23
+ "fck-nat",
24
+ "managed-nat",
25
+ "spot-instances",
26
+ "route53",
27
+ "secrets-manager",
28
+ ]),
29
+ azure: new Set([
30
+ "virtual-nodes",
31
+ "azure-cni",
32
+ "managed-nat",
33
+ "spot-instances",
34
+ "azure-dns",
35
+ "key-vault",
36
+ ]),
37
+ gcp: new Set(["autopilot", "managed-nat", "spot-instances", "cloud-dns", "secret-manager"]),
38
+ rackspace: new Set(["spot-instances"]),
39
+ };
40
+ /**
41
+ * Validate that a feature is supported on a given provider.
42
+ *
43
+ * @param feature - Feature name to check
44
+ * @param provider - Cloud provider
45
+ * @throws {UnsupportedFeatureError} If the feature is not available
46
+ */
47
+ function validateFeature(feature, provider) {
48
+ const supported = PROVIDER_FEATURES[provider];
49
+ if (!supported.has(feature)) {
50
+ throw new errors_1.UnsupportedFeatureError(feature, provider);
51
+ }
52
+ }
53
+ /**
54
+ * Check if a feature is available on a provider (non-throwing).
55
+ *
56
+ * @param feature - Feature name
57
+ * @param provider - Cloud provider
58
+ * @returns True if the feature is supported
59
+ */
60
+ function isFeatureSupported(feature, provider) {
61
+ return PROVIDER_FEATURES[provider].has(feature);
62
+ }
63
+ /**
64
+ * Validate a multi-cloud deployment configuration.
65
+ *
66
+ * Checks for:
67
+ * - Duplicate provider+region combinations
68
+ * - Resource name length constraints per provider
69
+ * - Region availability
70
+ *
71
+ * @param targets - Array of resolved cloud targets
72
+ * @param resourceName - Name that will be used for resources
73
+ * @returns Validation result with any errors/warnings
74
+ */
75
+ function validateMultiCloud(targets, resourceName) {
76
+ const errors = [];
77
+ const warnings = [];
78
+ // Check for duplicate targets
79
+ const seen = new Set();
80
+ for (const target of targets) {
81
+ const key = `${target.provider}:${target.region}`;
82
+ if (seen.has(key)) {
83
+ errors.push(`Duplicate target: ${key}. Each provider+region combination must be unique.`);
84
+ }
85
+ seen.add(key);
86
+ }
87
+ // Validate resource naming per provider
88
+ for (const target of targets) {
89
+ const nameIssues = validateResourceName(resourceName, target.provider);
90
+ errors.push(...nameIssues.errors);
91
+ warnings.push(...nameIssues.warnings);
92
+ }
93
+ return {
94
+ valid: errors.length === 0,
95
+ errors,
96
+ warnings,
97
+ };
98
+ }
99
+ /**
100
+ * Validate a resource name against provider-specific constraints.
101
+ *
102
+ * @param name - Resource name to validate
103
+ * @param provider - Target cloud provider
104
+ * @returns Validation result
105
+ */
106
+ function validateResourceName(name, provider) {
107
+ const errors = [];
108
+ const warnings = [];
109
+ switch (provider) {
110
+ case "aws":
111
+ // AWS names are generally flexible but some have 63-char limits
112
+ if (name.length > 63) {
113
+ errors.push(`Resource name "${name}" exceeds AWS 63-character limit.`);
114
+ }
115
+ break;
116
+ case "azure":
117
+ // Azure resource names: 1-63 chars, alphanumeric + hyphens
118
+ if (name.length > 63) {
119
+ errors.push(`Resource name "${name}" exceeds Azure 63-character limit.`);
120
+ }
121
+ if (/[^a-zA-Z0-9-]/.test(name)) {
122
+ warnings.push(`Resource name "${name}" contains characters not allowed in Azure (only alphanumeric + hyphens).`);
123
+ }
124
+ break;
125
+ case "gcp":
126
+ // GCP: 1-63 chars, lowercase + hyphens, must start with letter
127
+ if (name.length > 63) {
128
+ errors.push(`Resource name "${name}" exceeds GCP 63-character limit.`);
129
+ }
130
+ if (name !== name.toLowerCase()) {
131
+ warnings.push(`Resource name "${name}" will be lowercased for GCP.`);
132
+ }
133
+ if (!/^[a-z]/.test(name.toLowerCase())) {
134
+ errors.push(`Resource name "${name}" must start with a letter for GCP.`);
135
+ }
136
+ break;
137
+ case "rackspace":
138
+ if (name.length > 255) {
139
+ errors.push(`Resource name "${name}" exceeds Rackspace 255-character limit.`);
140
+ }
141
+ break;
142
+ }
143
+ return { valid: errors.length === 0, errors, warnings };
144
+ }
145
+ /**
146
+ * Assert that a multi-cloud configuration is valid, throwing on errors.
147
+ *
148
+ * @param targets - Resolved cloud targets
149
+ * @param resourceName - Resource name
150
+ * @throws {CloudValidationError} If validation fails
151
+ */
152
+ function assertValidMultiCloud(targets, resourceName) {
153
+ const result = validateMultiCloud(targets, resourceName);
154
+ if (!result.valid) {
155
+ throw new errors_1.CloudValidationError(`Multi-cloud validation failed:\n${result.errors.join("\n")}`);
156
+ }
157
+ }
158
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * AWS EKS cluster implementation with Auto Mode support.
3
+ *
4
+ * @module aws/cluster
5
+ */
6
+ import type { ICluster, IClusterConfig } from "../cluster";
7
+ import type { INetwork } from "../network";
8
+ /** AWS-specific EKS options beyond the base config. */
9
+ export interface IEksOptions {
10
+ /** Enable EKS Auto Mode (managed node provisioning). Default: false. */
11
+ readonly autoMode?: boolean;
12
+ /** EKS add-ons to install. Default: vpc-cni, coredns, kube-proxy. */
13
+ readonly addons?: ReadonlyArray<string>;
14
+ /** Endpoint access: "public", "private", or "both". Default: "both". */
15
+ readonly endpointAccess?: "public" | "private" | "both";
16
+ }
17
+ /**
18
+ * Create an EKS cluster with optional Auto Mode.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const cluster = createEksCluster("prod", {
23
+ * cloud: "aws",
24
+ * nodePools: [
25
+ * { name: "system", instanceType: "t4g.small", minNodes: 2, maxNodes: 3 },
26
+ * { name: "spot", instanceType: "t4g.medium", minNodes: 1, maxNodes: 10, spot: true },
27
+ * ],
28
+ * }, network, { autoMode: true });
29
+ * ```
30
+ */
31
+ export declare function createEksCluster(name: string, config: IClusterConfig, network: INetwork, options?: IEksOptions): ICluster;
32
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../../src/aws/cluster.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACzD;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,QAAQ,EACjB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ,CA8IV"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ /**
3
+ * AWS EKS cluster implementation with Auto Mode support.
4
+ *
5
+ * @module aws/cluster
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.createEksCluster = createEksCluster;
42
+ const aws = __importStar(require("@pulumi/aws"));
43
+ const k8s = __importStar(require("@pulumi/kubernetes"));
44
+ const pulumi = __importStar(require("@pulumi/pulumi"));
45
+ const types_1 = require("../types");
46
+ const DEFAULT_ADDONS = ["vpc-cni", "coredns", "kube-proxy"];
47
+ /**
48
+ * Create an EKS cluster with optional Auto Mode.
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const cluster = createEksCluster("prod", {
53
+ * cloud: "aws",
54
+ * nodePools: [
55
+ * { name: "system", instanceType: "t4g.small", minNodes: 2, maxNodes: 3 },
56
+ * { name: "spot", instanceType: "t4g.medium", minNodes: 1, maxNodes: 10, spot: true },
57
+ * ],
58
+ * }, network, { autoMode: true });
59
+ * ```
60
+ */
61
+ function createEksCluster(name, config, network, options) {
62
+ const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "aws") : config.cloud;
63
+ const target = (0, types_1.resolveCloudTarget)(cloud);
64
+ const tags = config.tags ?? {};
65
+ const autoMode = options?.autoMode ?? config.autoMode ?? false;
66
+ const addons = options?.addons ?? DEFAULT_ADDONS;
67
+ const endpointAccess = options?.endpointAccess ?? "both";
68
+ // EKS cluster IAM role
69
+ const clusterRole = new aws.iam.Role(`${name}-cluster-role`, {
70
+ namePrefix: `${name}-eks`,
71
+ assumeRolePolicy: JSON.stringify({
72
+ Version: "2012-10-17",
73
+ Statement: [
74
+ {
75
+ Action: "sts:AssumeRole",
76
+ Effect: "Allow",
77
+ Principal: { Service: "eks.amazonaws.com" },
78
+ },
79
+ ],
80
+ }),
81
+ tags,
82
+ });
83
+ new aws.iam.RolePolicyAttachment(`${name}-cluster-policy`, {
84
+ policyArn: "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy",
85
+ role: clusterRole.name,
86
+ });
87
+ // EKS Cluster
88
+ const cluster = new aws.eks.Cluster(`${name}-cluster`, {
89
+ name,
90
+ roleArn: clusterRole.arn,
91
+ version: config.version,
92
+ vpcConfig: {
93
+ subnetIds: pulumi
94
+ .all([network.publicSubnetIds, network.privateSubnetIds])
95
+ .apply(([pub, priv]) => [...pub, ...priv]),
96
+ endpointPrivateAccess: endpointAccess === "private" || endpointAccess === "both",
97
+ endpointPublicAccess: endpointAccess === "public" || endpointAccess === "both",
98
+ },
99
+ computeConfig: autoMode ? { enabled: true } : undefined,
100
+ accessConfig: { authenticationMode: "API_AND_CONFIG_MAP" },
101
+ tags: { ...tags, [`kubernetes.io/cluster/${name}`]: "owned" },
102
+ });
103
+ // Node pools — Auto Mode delegates to EKS, standard uses managed node groups
104
+ const nodeGroups = [];
105
+ if (!autoMode) {
106
+ for (const np of config.nodePools) {
107
+ const nodeRole = createNodeRole(`${name}-${np.name}`, tags);
108
+ nodeGroups.push(new aws.eks.NodeGroup(`${name}-ng-${np.name}`, {
109
+ clusterName: cluster.name,
110
+ nodeGroupName: `${name}-${np.name}`,
111
+ nodeRoleArn: nodeRole.arn,
112
+ instanceTypes: [np.instanceType],
113
+ capacityType: np.spot ? "SPOT" : "ON_DEMAND",
114
+ scalingConfig: {
115
+ desiredSize: np.desiredNodes ?? np.minNodes,
116
+ minSize: np.minNodes,
117
+ maxSize: np.maxNodes,
118
+ },
119
+ subnetIds: network.privateSubnetIds,
120
+ labels: np.labels,
121
+ tags: { ...tags, Name: `${name}-${np.name}` },
122
+ }));
123
+ }
124
+ }
125
+ const firstNodeGroup = nodeGroups[0];
126
+ // EKS Add-ons
127
+ for (const addon of addons) {
128
+ new aws.eks.Addon(`${name}-addon-${addon}`, {
129
+ clusterName: cluster.name,
130
+ addonName: addon,
131
+ resolveConflictsOnCreate: "OVERWRITE",
132
+ resolveConflictsOnUpdate: "OVERWRITE",
133
+ tags,
134
+ }, firstNodeGroup ? { dependsOn: [firstNodeGroup] } : undefined);
135
+ }
136
+ // K8s provider for this cluster
137
+ const kubeconfig = pulumi
138
+ .all([cluster.endpoint, cluster.certificateAuthority, cluster.name])
139
+ .apply(([endpoint, ca, clusterName]) => JSON.stringify({
140
+ apiVersion: "v1",
141
+ kind: "Config",
142
+ clusters: [
143
+ {
144
+ cluster: {
145
+ server: endpoint,
146
+ "certificate-authority-data": ca.data,
147
+ },
148
+ name: clusterName,
149
+ },
150
+ ],
151
+ contexts: [
152
+ {
153
+ context: { cluster: clusterName, user: clusterName },
154
+ name: clusterName,
155
+ },
156
+ ],
157
+ "current-context": clusterName,
158
+ users: [
159
+ {
160
+ name: clusterName,
161
+ user: {
162
+ exec: {
163
+ apiVersion: "client.authentication.k8s.io/v1beta1",
164
+ command: "aws",
165
+ args: ["eks", "get-token", "--cluster-name", clusterName],
166
+ },
167
+ },
168
+ },
169
+ ],
170
+ }));
171
+ const provider = new k8s.Provider(`${name}-k8s`, {
172
+ kubeconfig,
173
+ });
174
+ return {
175
+ name,
176
+ cloud: target,
177
+ endpoint: cluster.endpoint,
178
+ kubeconfig,
179
+ version: cluster.version,
180
+ nodePools: config.nodePools,
181
+ nativeResource: cluster,
182
+ provider,
183
+ };
184
+ }
185
+ function createNodeRole(name, tags) {
186
+ const role = new aws.iam.Role(`${name}-node-role`, {
187
+ namePrefix: `${name}-node`,
188
+ assumeRolePolicy: JSON.stringify({
189
+ Version: "2012-10-17",
190
+ Statement: [
191
+ {
192
+ Action: "sts:AssumeRole",
193
+ Effect: "Allow",
194
+ Principal: { Service: "ec2.amazonaws.com" },
195
+ },
196
+ ],
197
+ }),
198
+ tags,
199
+ });
200
+ const policies = [
201
+ "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy",
202
+ "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy",
203
+ "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
204
+ ];
205
+ for (const policyArn of policies) {
206
+ const shortName = policyArn.split("/").pop() ?? policyArn;
207
+ new aws.iam.RolePolicyAttachment(`${name}-${shortName}`, {
208
+ policyArn,
209
+ role: role.name,
210
+ });
211
+ }
212
+ return role;
213
+ }
214
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../src/aws/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * AWS Route 53 DNS implementation.
3
+ *
4
+ * @module aws/dns
5
+ */
6
+ import type { IDns, IDnsConfig } from "../dns";
7
+ /**
8
+ * Create a Route 53 hosted zone with optional initial records.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const dns = createRoute53Dns("prod", {
13
+ * cloud: "aws",
14
+ * zoneName: "example.com",
15
+ * records: [
16
+ * { name: "app", type: "A", values: ["1.2.3.4"], ttl: 300 },
17
+ * ],
18
+ * });
19
+ * ```
20
+ */
21
+ export declare function createRoute53Dns(name: string, config: IDnsConfig): IDns;
22
+ //# sourceMappingURL=dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../src/aws/dns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAc,MAAM,QAAQ,CAAC;AAG3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA6BvE"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * AWS Route 53 DNS implementation.
4
+ *
5
+ * @module aws/dns
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.createRoute53Dns = createRoute53Dns;
42
+ const aws = __importStar(require("@pulumi/aws"));
43
+ const types_1 = require("../types");
44
+ /**
45
+ * Create a Route 53 hosted zone with optional initial records.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const dns = createRoute53Dns("prod", {
50
+ * cloud: "aws",
51
+ * zoneName: "example.com",
52
+ * records: [
53
+ * { name: "app", type: "A", values: ["1.2.3.4"], ttl: 300 },
54
+ * ],
55
+ * });
56
+ * ```
57
+ */
58
+ function createRoute53Dns(name, config) {
59
+ const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "aws") : config.cloud;
60
+ const target = (0, types_1.resolveCloudTarget)(cloud);
61
+ const tags = config.tags ?? {};
62
+ const zone = new aws.route53.Zone(`${name}-zone`, {
63
+ name: config.zoneName,
64
+ tags: { ...tags, Name: `${name}-zone` },
65
+ });
66
+ // Create initial records
67
+ if (config.records) {
68
+ for (const rec of config.records) {
69
+ createRecord(name, zone, rec);
70
+ }
71
+ }
72
+ return {
73
+ name,
74
+ cloud: target,
75
+ zoneId: zone.zoneId,
76
+ zoneName: config.zoneName,
77
+ nameServers: zone.nameServers,
78
+ nativeResource: zone,
79
+ addRecord(record) {
80
+ createRecord(name, zone, record);
81
+ },
82
+ };
83
+ }
84
+ function createRecord(name, zone, record) {
85
+ const fqdn = record.name === "@" ? "" : record.name ? `${record.name}.` : "";
86
+ const resourceName = `${name}-${record.name || "root"}-${record.type.toLowerCase()}`;
87
+ return new aws.route53.Record(resourceName, {
88
+ zoneId: zone.zoneId,
89
+ name: zone.name.apply((zoneName) => `${fqdn}${zoneName}`),
90
+ type: record.type,
91
+ ttl: record.ttl ?? 300,
92
+ records: [...record.values],
93
+ });
94
+ }
95
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../src/aws/dns.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,4CA6BC;AAhDD,iDAAmC;AAGnC,oCAA8C;AAE9C;;;;;;;;;;;;;GAaG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,MAAkB;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACtF,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE;QAChD,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE;KACxC,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,IAAI,CAAC,WAAmD;QACrE,cAAc,EAAE,IAAI;QACpB,SAAS,CAAC,MAAkB;YAC1B,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,IAAY,EACZ,IAAsB,EACtB,MAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IAErF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE;QAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;QACzD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG;QACtB,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * AWS provider implementations for @reyemtech/nimbus.
3
+ *
4
+ * @module aws
5
+ */
6
+ export { createAwsNetwork, type IAwsNetworkOptions } from "./network";
7
+ export { createEksCluster, type IEksOptions } from "./cluster";
8
+ export { createRoute53Dns } from "./dns";
9
+ export { createAwsSecrets } from "./secrets";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * AWS provider implementations for @reyemtech/nimbus.
4
+ *
5
+ * @module aws
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createAwsSecrets = exports.createRoute53Dns = exports.createEksCluster = exports.createAwsNetwork = void 0;
9
+ var network_1 = require("./network");
10
+ Object.defineProperty(exports, "createAwsNetwork", { enumerable: true, get: function () { return network_1.createAwsNetwork; } });
11
+ var cluster_1 = require("./cluster");
12
+ Object.defineProperty(exports, "createEksCluster", { enumerable: true, get: function () { return cluster_1.createEksCluster; } });
13
+ var dns_1 = require("./dns");
14
+ Object.defineProperty(exports, "createRoute53Dns", { enumerable: true, get: function () { return dns_1.createRoute53Dns; } });
15
+ var secrets_1 = require("./secrets");
16
+ Object.defineProperty(exports, "createAwsSecrets", { enumerable: true, get: function () { return secrets_1.createAwsSecrets; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qCAAsE;AAA7D,2GAAA,gBAAgB,OAAA;AACzB,qCAA+D;AAAtD,2GAAA,gBAAgB,OAAA;AACzB,6BAAyC;AAAhC,uGAAA,gBAAgB,OAAA;AACzB,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA"}