@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,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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * AWS network implementation — VPC, subnets, NAT (managed or fck-nat).
3
+ *
4
+ * @module aws/network
5
+ */
6
+ import type { INetwork, INetworkConfig } from "../network";
7
+ /** AWS-specific network options beyond the base config. */
8
+ export interface IAwsNetworkOptions {
9
+ /** fck-nat instance type. Default: "t4g.nano". */
10
+ readonly fckNatInstanceType?: string;
11
+ /** Number of AZs to use. Default: 2. */
12
+ readonly availabilityZoneCount?: number;
13
+ }
14
+ /**
15
+ * Create an AWS VPC with public/private subnets and optional NAT.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const network = createAwsNetwork("prod", {
20
+ * cloud: "aws",
21
+ * cidr: "10.0.0.0/16",
22
+ * natStrategy: "fck-nat",
23
+ * });
24
+ * ```
25
+ */
26
+ export declare function createAwsNetwork(name: string, config: INetworkConfig, options?: IAwsNetworkOptions): INetwork;
27
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/aws/network.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAGxE,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,QAAQ,CAmHV"}
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ /**
3
+ * AWS network implementation — VPC, subnets, NAT (managed or fck-nat).
4
+ *
5
+ * @module aws/network
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.createAwsNetwork = createAwsNetwork;
42
+ const aws = __importStar(require("@pulumi/aws"));
43
+ const pulumi = __importStar(require("@pulumi/pulumi"));
44
+ const types_1 = require("../types");
45
+ /**
46
+ * Create an AWS VPC with public/private subnets and optional NAT.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const network = createAwsNetwork("prod", {
51
+ * cloud: "aws",
52
+ * cidr: "10.0.0.0/16",
53
+ * natStrategy: "fck-nat",
54
+ * });
55
+ * ```
56
+ */
57
+ function createAwsNetwork(name, config, options) {
58
+ const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "aws") : config.cloud;
59
+ const target = (0, types_1.resolveCloudTarget)(cloud);
60
+ const cidr = config.cidr ?? "10.0.0.0/16";
61
+ const azCount = options?.availabilityZoneCount ?? 2;
62
+ const natStrategy = config.natStrategy ?? "managed";
63
+ const tags = config.tags ?? {};
64
+ const vpc = new aws.ec2.Vpc(`${name}-vpc`, {
65
+ cidrBlock: cidr,
66
+ enableDnsHostnames: config.enableDnsHostnames ?? true,
67
+ enableDnsSupport: config.enableDnsSupport ?? true,
68
+ tags: { ...tags, Name: `${name}-vpc` },
69
+ });
70
+ const igw = new aws.ec2.InternetGateway(`${name}-igw`, {
71
+ vpcId: vpc.id,
72
+ tags: { ...tags, Name: `${name}-igw` },
73
+ });
74
+ const azs = aws.getAvailabilityZonesOutput({ state: "available" });
75
+ const azNames = azs.names.apply((names) => names.slice(0, azCount));
76
+ // Public subnets
77
+ const publicSubnets = azNames.apply((names) => names.map((az, i) => new aws.ec2.Subnet(`${name}-public-${i}`, {
78
+ vpcId: vpc.id,
79
+ cidrBlock: `${cidr.split(".").slice(0, 2).join(".")}.${i + 1}.0/24`,
80
+ availabilityZone: az,
81
+ mapPublicIpOnLaunch: true,
82
+ tags: {
83
+ ...tags,
84
+ Name: `${name}-public-${az}`,
85
+ "kubernetes.io/role/elb": "1",
86
+ },
87
+ })));
88
+ // Private subnets
89
+ const privateSubnets = azNames.apply((names) => names.map((az, i) => new aws.ec2.Subnet(`${name}-private-${i}`, {
90
+ vpcId: vpc.id,
91
+ cidrBlock: `${cidr.split(".").slice(0, 2).join(".")}.${i + 10}.0/24`,
92
+ availabilityZone: az,
93
+ tags: {
94
+ ...tags,
95
+ Name: `${name}-private-${az}`,
96
+ "kubernetes.io/role/internal-elb": "1",
97
+ },
98
+ })));
99
+ // Public route table
100
+ const publicRt = new aws.ec2.RouteTable(`${name}-public-rt`, {
101
+ vpcId: vpc.id,
102
+ routes: [{ cidrBlock: "0.0.0.0/0", gatewayId: igw.id }],
103
+ tags: { ...tags, Name: `${name}-public-rt` },
104
+ });
105
+ publicSubnets.apply((subnets) => subnets.map((subnet, i) => new aws.ec2.RouteTableAssociation(`${name}-public-rta-${i}`, {
106
+ subnetId: subnet.id,
107
+ routeTableId: publicRt.id,
108
+ })));
109
+ // NAT setup
110
+ let natGatewayId;
111
+ if (natStrategy === "fck-nat") {
112
+ natGatewayId = createFckNat(name, vpc, publicSubnets, privateSubnets, cidr, tags, options);
113
+ }
114
+ else if (natStrategy === "managed") {
115
+ natGatewayId = createManagedNat(name, vpc, igw, publicSubnets, privateSubnets, tags);
116
+ }
117
+ else {
118
+ // natStrategy === "none" — no NAT, private subnets have no internet
119
+ const privateRt = new aws.ec2.RouteTable(`${name}-private-rt`, {
120
+ vpcId: vpc.id,
121
+ tags: { ...tags, Name: `${name}-private-rt` },
122
+ });
123
+ privateSubnets.apply((subnets) => subnets.map((subnet, i) => new aws.ec2.RouteTableAssociation(`${name}-private-rta-${i}`, {
124
+ subnetId: subnet.id,
125
+ routeTableId: privateRt.id,
126
+ })));
127
+ }
128
+ return {
129
+ name,
130
+ cloud: target,
131
+ vpcId: vpc.id,
132
+ cidr,
133
+ publicSubnetIds: publicSubnets.apply((s) => pulumi.all(s.map((sub) => sub.id))),
134
+ privateSubnetIds: privateSubnets.apply((s) => pulumi.all(s.map((sub) => sub.id))),
135
+ natGatewayId,
136
+ nativeResource: vpc,
137
+ };
138
+ }
139
+ function createFckNat(name, vpc, publicSubnets, privateSubnets, cidr, tags, options) {
140
+ const instanceType = options?.fckNatInstanceType ?? "t4g.nano";
141
+ const fckNatAmi = aws.ec2.getAmiOutput({
142
+ mostRecent: true,
143
+ owners: ["568608671756"],
144
+ filters: [
145
+ { name: "name", values: ["fck-nat-al2023-*-arm64-ebs"] },
146
+ { name: "architecture", values: ["arm64"] },
147
+ ],
148
+ });
149
+ const sg = new aws.ec2.SecurityGroup(`${name}-fck-nat-sg`, {
150
+ namePrefix: `${name}-fck-nat`,
151
+ vpcId: vpc.id,
152
+ description: "fck-nat instance security group",
153
+ ingress: [{ fromPort: 0, toPort: 0, protocol: "-1", cidrBlocks: [cidr] }],
154
+ egress: [{ fromPort: 0, toPort: 0, protocol: "-1", cidrBlocks: ["0.0.0.0/0"] }],
155
+ tags: { ...tags, Name: `${name}-fck-nat-sg` },
156
+ });
157
+ const eni = new aws.ec2.NetworkInterface(`${name}-fck-nat-eni`, {
158
+ subnetId: publicSubnets.apply((s) => s[0].id),
159
+ securityGroups: [sg.id],
160
+ sourceDestCheck: false,
161
+ tags: { ...tags, Name: `${name}-fck-nat-eni` },
162
+ });
163
+ new aws.ec2.Eip(`${name}-fck-nat-eip`, {
164
+ domain: "vpc",
165
+ networkInterface: eni.id,
166
+ tags: { ...tags, Name: `${name}-fck-nat-eip` },
167
+ });
168
+ const role = new aws.iam.Role(`${name}-fck-nat-role`, {
169
+ namePrefix: `${name}-fck-nat`,
170
+ assumeRolePolicy: JSON.stringify({
171
+ Version: "2012-10-17",
172
+ Statement: [
173
+ {
174
+ Action: "sts:AssumeRole",
175
+ Effect: "Allow",
176
+ Principal: { Service: "ec2.amazonaws.com" },
177
+ },
178
+ ],
179
+ }),
180
+ inlinePolicies: [
181
+ {
182
+ name: "fck-nat-eni",
183
+ policy: JSON.stringify({
184
+ Version: "2012-10-17",
185
+ Statement: [
186
+ {
187
+ Effect: "Allow",
188
+ Action: [
189
+ "ec2:AttachNetworkInterface",
190
+ "ec2:ModifyNetworkInterfaceAttribute",
191
+ "ec2:AssociateAddress",
192
+ "ec2:DisassociateAddress",
193
+ ],
194
+ Resource: "*",
195
+ },
196
+ ],
197
+ }),
198
+ },
199
+ ],
200
+ tags,
201
+ });
202
+ const instanceProfile = new aws.iam.InstanceProfile(`${name}-fck-nat-profile`, {
203
+ namePrefix: `${name}-fck-nat`,
204
+ role: role.name,
205
+ });
206
+ const lt = new aws.ec2.LaunchTemplate(`${name}-fck-nat-lt`, {
207
+ namePrefix: `${name}-fck-nat`,
208
+ imageId: fckNatAmi.id,
209
+ instanceType,
210
+ vpcSecurityGroupIds: [sg.id],
211
+ iamInstanceProfile: { name: instanceProfile.name },
212
+ userData: eni.id.apply((eniId) => Buffer.from(`#!/bin/bash\necho "eni_id=${eniId}" >> /etc/fck-nat.conf\nservice fck-nat restart\n`).toString("base64")),
213
+ tagSpecifications: [
214
+ {
215
+ resourceType: "instance",
216
+ tags: { ...tags, Name: `${name}-fck-nat` },
217
+ },
218
+ ],
219
+ tags,
220
+ });
221
+ new aws.autoscaling.Group(`${name}-fck-nat-asg`, {
222
+ name: `${name}-fck-nat-asg`,
223
+ vpcZoneIdentifiers: [publicSubnets.apply((s) => s[0].id)],
224
+ minSize: 1,
225
+ maxSize: 1,
226
+ desiredCapacity: 1,
227
+ launchTemplate: { id: lt.id, version: "$Latest" },
228
+ });
229
+ // Private route table through fck-nat ENI
230
+ const privateRt = new aws.ec2.RouteTable(`${name}-private-rt`, {
231
+ vpcId: vpc.id,
232
+ routes: [{ cidrBlock: "0.0.0.0/0", networkInterfaceId: eni.id }],
233
+ tags: { ...tags, Name: `${name}-private-rt` },
234
+ });
235
+ privateSubnets.apply((subnets) => subnets.map((subnet, i) => new aws.ec2.RouteTableAssociation(`${name}-private-rta-${i}`, {
236
+ subnetId: subnet.id,
237
+ routeTableId: privateRt.id,
238
+ })));
239
+ return eni.id;
240
+ }
241
+ function createManagedNat(name, _vpc, igw, publicSubnets, privateSubnets, tags) {
242
+ const eip = new aws.ec2.Eip(`${name}-nat-eip`, {
243
+ domain: "vpc",
244
+ tags: { ...tags, Name: `${name}-nat-eip` },
245
+ }, { dependsOn: [igw] });
246
+ const natGw = new aws.ec2.NatGateway(`${name}-nat`, {
247
+ allocationId: eip.id,
248
+ subnetId: publicSubnets.apply((s) => s[0].id),
249
+ tags: { ...tags, Name: `${name}-nat` },
250
+ });
251
+ const privateRt = new aws.ec2.RouteTable(`${name}-private-rt`, {
252
+ vpcId: _vpc.id,
253
+ routes: [{ cidrBlock: "0.0.0.0/0", natGatewayId: natGw.id }],
254
+ tags: { ...tags, Name: `${name}-private-rt` },
255
+ });
256
+ privateSubnets.apply((subnets) => subnets.map((subnet, i) => new aws.ec2.RouteTableAssociation(`${name}-private-rta-${i}`, {
257
+ subnetId: subnet.id,
258
+ routeTableId: privateRt.id,
259
+ })));
260
+ return natGw.id;
261
+ }
262
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/aws/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * AWS Secrets Manager implementation.
3
+ *
4
+ * @module aws/secrets
5
+ */
6
+ import type { ISecrets, ISecretsConfig } from "../secrets";
7
+ /**
8
+ * Create an AWS Secrets Manager store.
9
+ *
10
+ * Each `putSecret(path, data)` call creates a Secret resource with
11
+ * JSON-encoded key-value pairs. `getSecretRef(ref)` retrieves a
12
+ * specific key from a stored secret.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const secrets = createAwsSecrets("prod", {
17
+ * cloud: "aws",
18
+ * backend: "aws-secrets-manager",
19
+ * });
20
+ *
21
+ * secrets.putSecret("database", { host: "db.example.com", password: dbPassword });
22
+ * const pw = secrets.getSecretRef({ path: "database", key: "password" });
23
+ * ```
24
+ */
25
+ export declare function createAwsSecrets(name: string, config: ISecretsConfig): ISecrets;
26
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/aws/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAc,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGvE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,QAAQ,CA6E/E"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * AWS Secrets Manager implementation.
4
+ *
5
+ * @module aws/secrets
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.createAwsSecrets = createAwsSecrets;
42
+ const aws = __importStar(require("@pulumi/aws"));
43
+ const pulumi = __importStar(require("@pulumi/pulumi"));
44
+ const types_1 = require("../types");
45
+ /**
46
+ * Create an AWS Secrets Manager store.
47
+ *
48
+ * Each `putSecret(path, data)` call creates a Secret resource with
49
+ * JSON-encoded key-value pairs. `getSecretRef(ref)` retrieves a
50
+ * specific key from a stored secret.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const secrets = createAwsSecrets("prod", {
55
+ * cloud: "aws",
56
+ * backend: "aws-secrets-manager",
57
+ * });
58
+ *
59
+ * secrets.putSecret("database", { host: "db.example.com", password: dbPassword });
60
+ * const pw = secrets.getSecretRef({ path: "database", key: "password" });
61
+ * ```
62
+ */
63
+ function createAwsSecrets(name, config) {
64
+ const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "aws") : config.cloud;
65
+ const target = (0, types_1.resolveCloudTarget)(cloud);
66
+ const tags = config.tags ?? {};
67
+ // Track created secrets so getSecretRef can resolve them
68
+ const secretResources = new Map();
69
+ // A "store" resource to serve as the nativeResource escape hatch.
70
+ // We use a dummy SSM parameter to represent the store itself.
71
+ const store = new aws.ssm.Parameter(`${name}-secrets-store`, {
72
+ name: `/${name}/secrets-store`,
73
+ type: aws.ssm.ParameterType.String,
74
+ value: "managed-by-nimbus",
75
+ tags: { ...tags, Name: `${name}-secrets-store` },
76
+ });
77
+ return {
78
+ name,
79
+ cloud: target,
80
+ backend: "aws-secrets-manager",
81
+ nativeResource: store,
82
+ putSecret(path, data) {
83
+ const secretName = `${name}/${path}`;
84
+ const resourceName = `${name}-${path.replace(/\//g, "-")}`;
85
+ const secret = new aws.secretsmanager.Secret(resourceName, {
86
+ namePrefix: secretName,
87
+ tags: { ...tags, Name: secretName },
88
+ });
89
+ // Store data as JSON
90
+ const secretString = pulumi.all(data).apply((resolved) => JSON.stringify(resolved));
91
+ new aws.secretsmanager.SecretVersion(`${resourceName}-v`, {
92
+ secretId: secret.id,
93
+ secretString,
94
+ });
95
+ secretResources.set(path, secret);
96
+ },
97
+ getSecretRef(ref) {
98
+ const secret = secretResources.get(ref.path);
99
+ const { key } = ref;
100
+ if (!secret) {
101
+ // Secret not created via putSecret — look up by name convention
102
+ const lookup = aws.secretsmanager.getSecretVersionOutput({
103
+ secretId: `${name}/${ref.path}`,
104
+ });
105
+ if (key) {
106
+ return lookup.secretString.apply((s) => {
107
+ const parsed = JSON.parse(s);
108
+ return parsed[key] ?? "";
109
+ });
110
+ }
111
+ return lookup.secretString;
112
+ }
113
+ // Get the current version of the secret
114
+ const version = aws.secretsmanager.getSecretVersionOutput({
115
+ secretId: secret.id,
116
+ });
117
+ if (key) {
118
+ return version.secretString.apply((s) => {
119
+ const parsed = JSON.parse(s);
120
+ return parsed[key] ?? "";
121
+ });
122
+ }
123
+ return version.secretString;
124
+ },
125
+ };
126
+ }
127
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/aws/secrets.ts"],"names":[],"mappings":"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"}