@sst-community/sst 4.19.0 → 5.0.0-alpha.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 (832) hide show
  1. package/README.md +92 -52
  2. package/package.json +35 -11
  3. package/platform/js/chunks/chunk-HIZZCEDS.js +328 -0
  4. package/platform/js/chunks/chunk-HIZZCEDS.js.map +6 -0
  5. package/platform/js/chunks/chunk-KOKHGKJ2.js +639 -0
  6. package/platform/js/chunks/chunk-KOKHGKJ2.js.map +6 -0
  7. package/platform/js/chunks/chunk-ONNI4XNK.js +367 -0
  8. package/platform/js/chunks/chunk-ONNI4XNK.js.map +6 -0
  9. package/platform/js/chunks/chunk-VIFHC73J.js +108 -0
  10. package/platform/js/chunks/chunk-VIFHC73J.js.map +6 -0
  11. package/platform/js/chunks/chunk-WJ6BVA46.js +10 -0
  12. package/platform/js/chunks/chunk-WJ6BVA46.js.map +6 -0
  13. package/platform/js/chunks/chunk-ZOXXXME5.js +472 -0
  14. package/platform/js/chunks/chunk-ZOXXXME5.js.map +6 -0
  15. package/platform/js/chunks/component-32FCLIRK.js +26 -0
  16. package/platform/js/chunks/component-32FCLIRK.js.map +6 -0
  17. package/platform/js/chunks/config-DMGMTLNB.js +10 -0
  18. package/platform/js/chunks/config-DMGMTLNB.js.map +6 -0
  19. package/platform/js/chunks/link-OJ3RNGQ3.js +9 -0
  20. package/platform/js/chunks/link-OJ3RNGQ3.js.map +6 -0
  21. package/platform/js/components/aws/index.js +35362 -0
  22. package/platform/js/components/aws/index.js.map +6 -0
  23. package/platform/js/components/cloudflare/index.js +3246 -0
  24. package/platform/js/components/cloudflare/index.js.map +6 -0
  25. package/platform/js/components/core.js +114 -0
  26. package/platform/js/components/core.js.map +6 -0
  27. package/platform/js/components/vercel/index.js +120 -0
  28. package/platform/js/components/vercel/index.js.map +6 -0
  29. package/platform/js/testing/index.js +569 -0
  30. package/platform/js/testing/index.js.map +6 -0
  31. package/platform/package.json +25 -0
  32. package/platform/src/ast/add.mjs +190 -0
  33. package/platform/src/auto/run.ts +109 -0
  34. package/platform/src/components/README.md +652 -0
  35. package/platform/src/components/args.ts +133 -0
  36. package/platform/src/components/aws/alb.ts +577 -0
  37. package/platform/src/components/aws/analog.ts +462 -0
  38. package/platform/src/components/aws/apigateway-websocket-route.ts +206 -0
  39. package/platform/src/components/aws/apigateway-websocket.ts +894 -0
  40. package/platform/src/components/aws/apigatewayv1-api-key.ts +90 -0
  41. package/platform/src/components/aws/apigatewayv1-authorizer.ts +178 -0
  42. package/platform/src/components/aws/apigatewayv1-base-route.ts +78 -0
  43. package/platform/src/components/aws/apigatewayv1-integration-route.ts +92 -0
  44. package/platform/src/components/aws/apigatewayv1-lambda-route.ts +152 -0
  45. package/platform/src/components/aws/apigatewayv1-usage-plan.ts +109 -0
  46. package/platform/src/components/aws/apigatewayv1.ts +1691 -0
  47. package/platform/src/components/aws/apigatewayv2-authorizer.ts +199 -0
  48. package/platform/src/components/aws/apigatewayv2-base-route.ts +69 -0
  49. package/platform/src/components/aws/apigatewayv2-lambda-route.ts +141 -0
  50. package/platform/src/components/aws/apigatewayv2-private-route.ts +101 -0
  51. package/platform/src/components/aws/apigatewayv2-url-route.ts +90 -0
  52. package/platform/src/components/aws/apigatewayv2.ts +1439 -0
  53. package/platform/src/components/aws/app-sync-data-source.ts +264 -0
  54. package/platform/src/components/aws/app-sync-function.ts +79 -0
  55. package/platform/src/components/aws/app-sync-resolver.ts +110 -0
  56. package/platform/src/components/aws/app-sync.ts +849 -0
  57. package/platform/src/components/aws/astro.ts +580 -0
  58. package/platform/src/components/aws/aurora.ts +1356 -0
  59. package/platform/src/components/aws/auth-v1.ts +69 -0
  60. package/platform/src/components/aws/auth.ts +417 -0
  61. package/platform/src/components/aws/bucket-lambda-subscriber.ts +162 -0
  62. package/platform/src/components/aws/bucket-notification.ts +254 -0
  63. package/platform/src/components/aws/bucket-queue-subscriber.ts +122 -0
  64. package/platform/src/components/aws/bucket-topic-subscriber.ts +144 -0
  65. package/platform/src/components/aws/bucket.ts +2046 -0
  66. package/platform/src/components/aws/bus-base-subscriber.ts +52 -0
  67. package/platform/src/components/aws/bus-lambda-subscriber.ts +125 -0
  68. package/platform/src/components/aws/bus-queue-subscriber.ts +88 -0
  69. package/platform/src/components/aws/bus.ts +630 -0
  70. package/platform/src/components/aws/cdn.ts +561 -0
  71. package/platform/src/components/aws/cluster-v1.ts +932 -0
  72. package/platform/src/components/aws/cluster.ts +584 -0
  73. package/platform/src/components/aws/cognito-identity-pool.ts +433 -0
  74. package/platform/src/components/aws/cognito-identity-provider.ts +96 -0
  75. package/platform/src/components/aws/cognito-user-pool-client.ts +114 -0
  76. package/platform/src/components/aws/cognito-user-pool.ts +1089 -0
  77. package/platform/src/components/aws/cron-v2.ts +555 -0
  78. package/platform/src/components/aws/cron.ts +435 -0
  79. package/platform/src/components/aws/dns-validated-certificate.ts +108 -0
  80. package/platform/src/components/aws/dns.ts +221 -0
  81. package/platform/src/components/aws/dsql.ts +741 -0
  82. package/platform/src/components/aws/dynamo-lambda-subscriber.ts +124 -0
  83. package/platform/src/components/aws/dynamo.ts +929 -0
  84. package/platform/src/components/aws/efs.ts +410 -0
  85. package/platform/src/components/aws/email.ts +673 -0
  86. package/platform/src/components/aws/fargate.ts +1279 -0
  87. package/platform/src/components/aws/function.ts +3227 -0
  88. package/platform/src/components/aws/helpers/apigateway-account.ts +78 -0
  89. package/platform/src/components/aws/helpers/apigatewayv2-domain.ts +144 -0
  90. package/platform/src/components/aws/helpers/arn.ts +182 -0
  91. package/platform/src/components/aws/helpers/bootstrap.ts +16 -0
  92. package/platform/src/components/aws/helpers/client.ts +76 -0
  93. package/platform/src/components/aws/helpers/container-builder.ts +33 -0
  94. package/platform/src/components/aws/helpers/custom-domain.ts +128 -0
  95. package/platform/src/components/aws/helpers/event-source.ts +41 -0
  96. package/platform/src/components/aws/helpers/fargate.ts +727 -0
  97. package/platform/src/components/aws/helpers/function-builder.ts +133 -0
  98. package/platform/src/components/aws/helpers/function-code.ts +224 -0
  99. package/platform/src/components/aws/helpers/function-part.ts +202 -0
  100. package/platform/src/components/aws/helpers/function-permission.ts +29 -0
  101. package/platform/src/components/aws/helpers/load-balancer-args.ts +88 -0
  102. package/platform/src/components/aws/helpers/load-balancer.ts +17 -0
  103. package/platform/src/components/aws/helpers/provider.ts +36 -0
  104. package/platform/src/components/aws/helpers/queue-policy.ts +33 -0
  105. package/platform/src/components/aws/helpers/rds.ts +212 -0
  106. package/platform/src/components/aws/helpers/site-builder.ts +41 -0
  107. package/platform/src/components/aws/helpers/subscriber.ts +23 -0
  108. package/platform/src/components/aws/helpers/vpc.ts +27 -0
  109. package/platform/src/components/aws/https-redirect.ts +216 -0
  110. package/platform/src/components/aws/iam-edit.ts +50 -0
  111. package/platform/src/components/aws/index.ts +61 -0
  112. package/platform/src/components/aws/kinesis-stream-lambda-subscriber.ts +122 -0
  113. package/platform/src/components/aws/kinesis-stream.ts +416 -0
  114. package/platform/src/components/aws/linkable.ts +32 -0
  115. package/platform/src/components/aws/logging.ts +25 -0
  116. package/platform/src/components/aws/microvm.ts +988 -0
  117. package/platform/src/components/aws/mysql.ts +1047 -0
  118. package/platform/src/components/aws/nextjs.ts +1052 -0
  119. package/platform/src/components/aws/nuxt.ts +527 -0
  120. package/platform/src/components/aws/open-search.ts +603 -0
  121. package/platform/src/components/aws/opencontrol.ts +235 -0
  122. package/platform/src/components/aws/permission.ts +80 -0
  123. package/platform/src/components/aws/postgres-v1.ts +537 -0
  124. package/platform/src/components/aws/postgres.ts +1074 -0
  125. package/platform/src/components/aws/providers/bucket-files.ts +32 -0
  126. package/platform/src/components/aws/providers/distribution-deployment-waiter.ts +27 -0
  127. package/platform/src/components/aws/providers/distribution-invalidation.ts +24 -0
  128. package/platform/src/components/aws/providers/function-environment-update.ts +46 -0
  129. package/platform/src/components/aws/providers/hosted-zone-lookup.ts +25 -0
  130. package/platform/src/components/aws/providers/kv-keys.ts +15 -0
  131. package/platform/src/components/aws/providers/kv-routes-update.ts +24 -0
  132. package/platform/src/components/aws/providers/microvm-image-prune.ts +48 -0
  133. package/platform/src/components/aws/providers/origin-access-control.ts +21 -0
  134. package/platform/src/components/aws/providers/rds-role-lookup.ts +21 -0
  135. package/platform/src/components/aws/providers/vector-table.ts +25 -0
  136. package/platform/src/components/aws/queue-lambda-subscriber.ts +135 -0
  137. package/platform/src/components/aws/queue.ts +712 -0
  138. package/platform/src/components/aws/react.ts +510 -0
  139. package/platform/src/components/aws/realtime-lambda-subscriber.ts +129 -0
  140. package/platform/src/components/aws/realtime.ts +345 -0
  141. package/platform/src/components/aws/redis-v1.ts +595 -0
  142. package/platform/src/components/aws/redis.ts +1078 -0
  143. package/platform/src/components/aws/remix.ts +576 -0
  144. package/platform/src/components/aws/router-base-route.ts +83 -0
  145. package/platform/src/components/aws/router-bucket-route.ts +63 -0
  146. package/platform/src/components/aws/router-url-route.ts +75 -0
  147. package/platform/src/components/aws/router.ts +3281 -0
  148. package/platform/src/components/aws/service-v1.ts +876 -0
  149. package/platform/src/components/aws/service.ts +2994 -0
  150. package/platform/src/components/aws/sns-topic-lambda-subscriber.ts +127 -0
  151. package/platform/src/components/aws/sns-topic-queue-subscriber.ts +105 -0
  152. package/platform/src/components/aws/sns-topic.ts +700 -0
  153. package/platform/src/components/aws/solid-start.ts +467 -0
  154. package/platform/src/components/aws/ssr-site.ts +2204 -0
  155. package/platform/src/components/aws/static-site.ts +1389 -0
  156. package/platform/src/components/aws/step-functions/choice.ts +123 -0
  157. package/platform/src/components/aws/step-functions/fail.ts +69 -0
  158. package/platform/src/components/aws/step-functions/map.ts +264 -0
  159. package/platform/src/components/aws/step-functions/parallel.ts +170 -0
  160. package/platform/src/components/aws/step-functions/pass.ts +48 -0
  161. package/platform/src/components/aws/step-functions/state.ts +376 -0
  162. package/platform/src/components/aws/step-functions/succeed.ts +31 -0
  163. package/platform/src/components/aws/step-functions/task.ts +538 -0
  164. package/platform/src/components/aws/step-functions/wait.ts +105 -0
  165. package/platform/src/components/aws/step-functions.ts +804 -0
  166. package/platform/src/components/aws/svelte-kit.ts +563 -0
  167. package/platform/src/components/aws/takeover/alb.ts +9 -0
  168. package/platform/src/components/aws/takeover/apigatewayv2.ts +43 -0
  169. package/platform/src/components/aws/takeover/app-sync.ts +45 -0
  170. package/platform/src/components/aws/takeover/aurora.ts +19 -0
  171. package/platform/src/components/aws/takeover/bucket.ts +94 -0
  172. package/platform/src/components/aws/takeover/bus.ts +43 -0
  173. package/platform/src/components/aws/takeover/cognito-user-pool.ts +21 -0
  174. package/platform/src/components/aws/takeover/cron-v2.ts +9 -0
  175. package/platform/src/components/aws/takeover/dsql.ts +12 -0
  176. package/platform/src/components/aws/takeover/dynamo.ts +31 -0
  177. package/platform/src/components/aws/takeover/efs.ts +9 -0
  178. package/platform/src/components/aws/takeover/function.ts +21 -0
  179. package/platform/src/components/aws/takeover/helpers.ts +26 -0
  180. package/platform/src/components/aws/takeover/index.ts +27 -0
  181. package/platform/src/components/aws/takeover/mysql.ts +17 -0
  182. package/platform/src/components/aws/takeover/postgres.ts +17 -0
  183. package/platform/src/components/aws/takeover/queue.ts +21 -0
  184. package/platform/src/components/aws/takeover/redis.ts +10 -0
  185. package/platform/src/components/aws/takeover/service.ts +22 -0
  186. package/platform/src/components/aws/takeover/sns-topic.ts +27 -0
  187. package/platform/src/components/aws/takeover/task.ts +13 -0
  188. package/platform/src/components/aws/tan-stack-start.ts +479 -0
  189. package/platform/src/components/aws/task.ts +571 -0
  190. package/platform/src/components/aws/v5/alb.ts +310 -0
  191. package/platform/src/components/aws/v5/apigatewayv2.ts +845 -0
  192. package/platform/src/components/aws/v5/app-sync.ts +673 -0
  193. package/platform/src/components/aws/v5/aurora.ts +855 -0
  194. package/platform/src/components/aws/v5/bucket.ts +1001 -0
  195. package/platform/src/components/aws/v5/bus.ts +321 -0
  196. package/platform/src/components/aws/v5/cluster.ts +230 -0
  197. package/platform/src/components/aws/v5/cognito-user-pool-client.ts +100 -0
  198. package/platform/src/components/aws/v5/cognito-user-pool.ts +693 -0
  199. package/platform/src/components/aws/v5/cron-v2.ts +316 -0
  200. package/platform/src/components/aws/v5/dsql.ts +665 -0
  201. package/platform/src/components/aws/v5/dynamo.ts +477 -0
  202. package/platform/src/components/aws/v5/efs.ts +311 -0
  203. package/platform/src/components/aws/v5/function.ts +1527 -0
  204. package/platform/src/components/aws/v5/index.ts +26 -0
  205. package/platform/src/components/aws/v5/mysql.ts +604 -0
  206. package/platform/src/components/aws/v5/postgres.ts +612 -0
  207. package/platform/src/components/aws/v5/queue.ts +271 -0
  208. package/platform/src/components/aws/v5/redis.ts +550 -0
  209. package/platform/src/components/aws/v5/service.ts +2209 -0
  210. package/platform/src/components/aws/v5/sns-topic.ts +284 -0
  211. package/platform/src/components/aws/v5/task.ts +549 -0
  212. package/platform/src/components/aws/vector.ts +316 -0
  213. package/platform/src/components/aws/vpc-v1.ts +580 -0
  214. package/platform/src/components/aws/vpc.ts +1641 -0
  215. package/platform/src/components/aws/workflow.ts +421 -0
  216. package/platform/src/components/base/base-site.ts +101 -0
  217. package/platform/src/components/base/base-ssr-site.ts +120 -0
  218. package/platform/src/components/base/base-static-site.ts +314 -0
  219. package/platform/src/components/cloudflare/account-id.ts +1 -0
  220. package/platform/src/components/cloudflare/ai.ts +77 -0
  221. package/platform/src/components/cloudflare/astro.ts +355 -0
  222. package/platform/src/components/cloudflare/auth.ts +69 -0
  223. package/platform/src/components/cloudflare/binding.ts +132 -0
  224. package/platform/src/components/cloudflare/bucket.ts +142 -0
  225. package/platform/src/components/cloudflare/cron.ts +207 -0
  226. package/platform/src/components/cloudflare/d1.ts +230 -0
  227. package/platform/src/components/cloudflare/dns.ts +253 -0
  228. package/platform/src/components/cloudflare/durable-object.ts +144 -0
  229. package/platform/src/components/cloudflare/experimental/index.ts +3 -0
  230. package/platform/src/components/cloudflare/experimental/solid-start.ts +288 -0
  231. package/platform/src/components/cloudflare/experimental/static-site.ts +4 -0
  232. package/platform/src/components/cloudflare/helpers/compatibility.ts +44 -0
  233. package/platform/src/components/cloudflare/helpers/fetch.ts +81 -0
  234. package/platform/src/components/cloudflare/helpers/validation.ts +74 -0
  235. package/platform/src/components/cloudflare/helpers/worker-builder.ts +57 -0
  236. package/platform/src/components/cloudflare/helpers/wrangler.ts +222 -0
  237. package/platform/src/components/cloudflare/hyperdrive.ts +402 -0
  238. package/platform/src/components/cloudflare/index.ts +25 -0
  239. package/platform/src/components/cloudflare/kv.ts +218 -0
  240. package/platform/src/components/cloudflare/providers/dns-record.ts +43 -0
  241. package/platform/src/components/cloudflare/providers/kv-data.ts +107 -0
  242. package/platform/src/components/cloudflare/providers/worker-assets.ts +41 -0
  243. package/platform/src/components/cloudflare/providers/worker-placement.ts +93 -0
  244. package/platform/src/components/cloudflare/providers/worker-script.ts +47 -0
  245. package/platform/src/components/cloudflare/providers/worker-url.ts +109 -0
  246. package/platform/src/components/cloudflare/providers/zone-lookup.ts +85 -0
  247. package/platform/src/components/cloudflare/queue-worker-subscriber.ts +192 -0
  248. package/platform/src/components/cloudflare/queue.ts +310 -0
  249. package/platform/src/components/cloudflare/rate-limit.ts +178 -0
  250. package/platform/src/components/cloudflare/react-router.ts +322 -0
  251. package/platform/src/components/cloudflare/ssr-site.ts +293 -0
  252. package/platform/src/components/cloudflare/static-site-v2.ts +428 -0
  253. package/platform/src/components/cloudflare/static-site.ts +470 -0
  254. package/platform/src/components/cloudflare/tan-stack-start.ts +408 -0
  255. package/platform/src/components/cloudflare/worker.ts +1080 -0
  256. package/platform/src/components/cloudflare/workflow.ts +319 -0
  257. package/platform/src/components/component.ts +242 -0
  258. package/platform/src/components/core.ts +43 -0
  259. package/platform/src/components/cpu.ts +10 -0
  260. package/platform/src/components/dns.ts +82 -0
  261. package/platform/src/components/duration.ts +67 -0
  262. package/platform/src/components/error.ts +5 -0
  263. package/platform/src/components/esbuild.ts +15 -0
  264. package/platform/src/components/experimental/dev-command.ts +127 -0
  265. package/platform/src/components/experimental/index.ts +1 -0
  266. package/platform/src/components/groups.ts +9 -0
  267. package/platform/src/components/index.ts +9 -0
  268. package/platform/src/components/input.ts +2 -0
  269. package/platform/src/components/link.ts +201 -0
  270. package/platform/src/components/linkable.ts +360 -0
  271. package/platform/src/components/naming-rules.ts +299 -0
  272. package/platform/src/components/naming.ts +189 -0
  273. package/platform/src/components/parts-component.ts +662 -0
  274. package/platform/src/components/parts.ts +299 -0
  275. package/platform/src/components/path.ts +5 -0
  276. package/platform/src/components/rpc/rpc.ts +110 -0
  277. package/platform/src/components/secret.ts +159 -0
  278. package/platform/src/components/size.ts +28 -0
  279. package/platform/src/components/takeover.ts +131 -0
  280. package/platform/src/components/transform.ts +107 -0
  281. package/platform/src/components/vercel/account-id.ts +1 -0
  282. package/platform/src/components/vercel/dns.ts +171 -0
  283. package/platform/src/components/vercel/index.ts +2 -0
  284. package/platform/src/components/vercel/providers/dns-record.ts +34 -0
  285. package/platform/src/config.ts +1460 -0
  286. package/platform/src/global-aliases.d.ts +37 -0
  287. package/platform/src/global.d.ts +374 -0
  288. package/platform/src/internal.d.ts +18 -0
  289. package/platform/src/runtime/worker/unenv.d.ts +14 -0
  290. package/platform/src/runtime/worker/unenv.mjs +26 -0
  291. package/platform/src/shim/run.js +25 -0
  292. package/platform/src/testing/global.ts +83 -0
  293. package/platform/src/testing/index.ts +103 -0
  294. package/platform/src/testing/mock.ts +646 -0
  295. package/platform/src/testing/vitest.ts +36 -0
  296. package/platform/src/util/compare-semver.ts +23 -0
  297. package/platform/src/util/fs.ts +49 -0
  298. package/platform/src/util/lazy.ts +12 -0
  299. package/platform/src/util/minify.ts +10 -0
  300. package/platform/src/util/package.ts +29 -0
  301. package/platform/src/util/semaphore.ts +29 -0
  302. package/platform/src/util/warn.ts +7 -0
  303. package/platform/types/auto/run.d.ts +9 -0
  304. package/platform/types/auto/run.d.ts.map +1 -0
  305. package/platform/types/components/args.d.ts +77 -0
  306. package/platform/types/components/args.d.ts.map +1 -0
  307. package/platform/types/components/aws/alb.d.ts +283 -0
  308. package/platform/types/components/aws/alb.d.ts.map +1 -0
  309. package/platform/types/components/aws/analog.d.ts +408 -0
  310. package/platform/types/components/aws/analog.d.ts.map +1 -0
  311. package/platform/types/components/aws/apigateway-websocket-route.d.ts +74 -0
  312. package/platform/types/components/aws/apigateway-websocket-route.d.ts.map +1 -0
  313. package/platform/types/components/aws/apigateway-websocket.d.ts +560 -0
  314. package/platform/types/components/aws/apigateway-websocket.d.ts.map +1 -0
  315. package/platform/types/components/aws/apigatewayv1-api-key.d.ts +48 -0
  316. package/platform/types/components/aws/apigatewayv1-api-key.d.ts.map +1 -0
  317. package/platform/types/components/aws/apigatewayv1-authorizer.d.ts +55 -0
  318. package/platform/types/components/aws/apigatewayv1-authorizer.d.ts.map +1 -0
  319. package/platform/types/components/aws/apigatewayv1-base-route.d.ts +36 -0
  320. package/platform/types/components/aws/apigatewayv1-base-route.d.ts.map +1 -0
  321. package/platform/types/components/aws/apigatewayv1-integration-route.d.ts +39 -0
  322. package/platform/types/components/aws/apigatewayv1-integration-route.d.ts.map +1 -0
  323. package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts +53 -0
  324. package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts.map +1 -0
  325. package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts +53 -0
  326. package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts.map +1 -0
  327. package/platform/types/components/aws/apigatewayv1.d.ts +1028 -0
  328. package/platform/types/components/aws/apigatewayv1.d.ts.map +1 -0
  329. package/platform/types/components/aws/apigatewayv2-authorizer.d.ts +54 -0
  330. package/platform/types/components/aws/apigatewayv2-authorizer.d.ts.map +1 -0
  331. package/platform/types/components/aws/apigatewayv2-base-route.d.ts +28 -0
  332. package/platform/types/components/aws/apigatewayv2-base-route.d.ts.map +1 -0
  333. package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts +59 -0
  334. package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts.map +1 -0
  335. package/platform/types/components/aws/apigatewayv2-private-route.d.ts +54 -0
  336. package/platform/types/components/aws/apigatewayv2-private-route.d.ts.map +1 -0
  337. package/platform/types/components/aws/apigatewayv2-url-route.d.ts +44 -0
  338. package/platform/types/components/aws/apigatewayv2-url-route.d.ts.map +1 -0
  339. package/platform/types/components/aws/apigatewayv2.d.ts +955 -0
  340. package/platform/types/components/aws/apigatewayv2.d.ts.map +1 -0
  341. package/platform/types/components/aws/app-sync-data-source.d.ts +52 -0
  342. package/platform/types/components/aws/app-sync-data-source.d.ts.map +1 -0
  343. package/platform/types/components/aws/app-sync-function.d.ts +33 -0
  344. package/platform/types/components/aws/app-sync-function.d.ts.map +1 -0
  345. package/platform/types/components/aws/app-sync-resolver.d.ts +41 -0
  346. package/platform/types/components/aws/app-sync-resolver.d.ts.map +1 -0
  347. package/platform/types/components/aws/app-sync.d.ts +638 -0
  348. package/platform/types/components/aws/app-sync.d.ts.map +1 -0
  349. package/platform/types/components/aws/astro.d.ts +409 -0
  350. package/platform/types/components/aws/astro.d.ts.map +1 -0
  351. package/platform/types/components/aws/aurora.d.ts +720 -0
  352. package/platform/types/components/aws/aurora.d.ts.map +1 -0
  353. package/platform/types/components/aws/auth-v1.d.ts +26 -0
  354. package/platform/types/components/aws/auth-v1.d.ts.map +1 -0
  355. package/platform/types/components/aws/auth.d.ts +295 -0
  356. package/platform/types/components/aws/auth.d.ts.map +1 -0
  357. package/platform/types/components/aws/bucket-lambda-subscriber.d.ts +61 -0
  358. package/platform/types/components/aws/bucket-lambda-subscriber.d.ts.map +1 -0
  359. package/platform/types/components/aws/bucket-notification.d.ts +47 -0
  360. package/platform/types/components/aws/bucket-notification.d.ts.map +1 -0
  361. package/platform/types/components/aws/bucket-queue-subscriber.d.ts +55 -0
  362. package/platform/types/components/aws/bucket-queue-subscriber.d.ts.map +1 -0
  363. package/platform/types/components/aws/bucket-topic-subscriber.d.ts +55 -0
  364. package/platform/types/components/aws/bucket-topic-subscriber.d.ts.map +1 -0
  365. package/platform/types/components/aws/bucket.d.ts +1356 -0
  366. package/platform/types/components/aws/bucket.d.ts.map +1 -0
  367. package/platform/types/components/aws/bus-base-subscriber.d.ts +20 -0
  368. package/platform/types/components/aws/bus-base-subscriber.d.ts.map +1 -0
  369. package/platform/types/components/aws/bus-lambda-subscriber.d.ts +50 -0
  370. package/platform/types/components/aws/bus-lambda-subscriber.d.ts.map +1 -0
  371. package/platform/types/components/aws/bus-queue-subscriber.d.ts +44 -0
  372. package/platform/types/components/aws/bus-queue-subscriber.d.ts.map +1 -0
  373. package/platform/types/components/aws/bus.d.ts +447 -0
  374. package/platform/types/components/aws/bus.d.ts.map +1 -0
  375. package/platform/types/components/aws/cdn.d.ts +310 -0
  376. package/platform/types/components/aws/cdn.d.ts.map +1 -0
  377. package/platform/types/components/aws/cluster-v1.d.ts +885 -0
  378. package/platform/types/components/aws/cluster-v1.d.ts.map +1 -0
  379. package/platform/types/components/aws/cluster.d.ts +364 -0
  380. package/platform/types/components/aws/cluster.d.ts.map +1 -0
  381. package/platform/types/components/aws/cognito-identity-pool.d.ts +199 -0
  382. package/platform/types/components/aws/cognito-identity-pool.d.ts.map +1 -0
  383. package/platform/types/components/aws/cognito-identity-provider.d.ts +38 -0
  384. package/platform/types/components/aws/cognito-identity-provider.d.ts.map +1 -0
  385. package/platform/types/components/aws/cognito-user-pool-client.d.ts +50 -0
  386. package/platform/types/components/aws/cognito-user-pool-client.d.ts.map +1 -0
  387. package/platform/types/components/aws/cognito-user-pool.d.ts +703 -0
  388. package/platform/types/components/aws/cognito-user-pool.d.ts.map +1 -0
  389. package/platform/types/components/aws/cron-v2.d.ts +325 -0
  390. package/platform/types/components/aws/cron-v2.d.ts.map +1 -0
  391. package/platform/types/components/aws/cron.d.ts +259 -0
  392. package/platform/types/components/aws/cron.d.ts.map +1 -0
  393. package/platform/types/components/aws/dns-validated-certificate.d.ts +27 -0
  394. package/platform/types/components/aws/dns-validated-certificate.d.ts.map +1 -0
  395. package/platform/types/components/aws/dns.d.ts +94 -0
  396. package/platform/types/components/aws/dns.d.ts.map +1 -0
  397. package/platform/types/components/aws/dsql.d.ts +369 -0
  398. package/platform/types/components/aws/dsql.d.ts.map +1 -0
  399. package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts +55 -0
  400. package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts.map +1 -0
  401. package/platform/types/components/aws/dynamo.d.ts +628 -0
  402. package/platform/types/components/aws/dynamo.d.ts.map +1 -0
  403. package/platform/types/components/aws/efs.d.ts +217 -0
  404. package/platform/types/components/aws/efs.d.ts.map +1 -0
  405. package/platform/types/components/aws/email.d.ts +370 -0
  406. package/platform/types/components/aws/email.d.ts.map +1 -0
  407. package/platform/types/components/aws/fargate.d.ts +894 -0
  408. package/platform/types/components/aws/fargate.d.ts.map +1 -0
  409. package/platform/types/components/aws/function.d.ts +1755 -0
  410. package/platform/types/components/aws/function.d.ts.map +1 -0
  411. package/platform/types/components/aws/helpers/apigateway-account.d.ts +3 -0
  412. package/platform/types/components/aws/helpers/apigateway-account.d.ts.map +1 -0
  413. package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts +144 -0
  414. package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts.map +1 -0
  415. package/platform/types/components/aws/helpers/arn.d.ts +51 -0
  416. package/platform/types/components/aws/helpers/arn.d.ts.map +1 -0
  417. package/platform/types/components/aws/helpers/bootstrap.d.ts +13 -0
  418. package/platform/types/components/aws/helpers/bootstrap.d.ts.map +1 -0
  419. package/platform/types/components/aws/helpers/client.d.ts +7 -0
  420. package/platform/types/components/aws/helpers/client.d.ts.map +1 -0
  421. package/platform/types/components/aws/helpers/container-builder.d.ts +4 -0
  422. package/platform/types/components/aws/helpers/container-builder.d.ts.map +1 -0
  423. package/platform/types/components/aws/helpers/custom-domain.d.ts +111 -0
  424. package/platform/types/components/aws/helpers/custom-domain.d.ts.map +1 -0
  425. package/platform/types/components/aws/helpers/event-source.d.ts +26 -0
  426. package/platform/types/components/aws/helpers/event-source.d.ts.map +1 -0
  427. package/platform/types/components/aws/helpers/fargate.d.ts +225 -0
  428. package/platform/types/components/aws/helpers/fargate.d.ts.map +1 -0
  429. package/platform/types/components/aws/helpers/function-builder.d.ts +14 -0
  430. package/platform/types/components/aws/helpers/function-builder.d.ts.map +1 -0
  431. package/platform/types/components/aws/helpers/function-code.d.ts +80 -0
  432. package/platform/types/components/aws/helpers/function-code.d.ts.map +1 -0
  433. package/platform/types/components/aws/helpers/function-part.d.ts +61 -0
  434. package/platform/types/components/aws/helpers/function-part.d.ts.map +1 -0
  435. package/platform/types/components/aws/helpers/function-permission.d.ts +17 -0
  436. package/platform/types/components/aws/helpers/function-permission.d.ts.map +1 -0
  437. package/platform/types/components/aws/helpers/load-balancer-args.d.ts +40 -0
  438. package/platform/types/components/aws/helpers/load-balancer-args.d.ts.map +1 -0
  439. package/platform/types/components/aws/helpers/load-balancer.d.ts +9 -0
  440. package/platform/types/components/aws/helpers/load-balancer.d.ts.map +1 -0
  441. package/platform/types/components/aws/helpers/provider.d.ts +3 -0
  442. package/platform/types/components/aws/helpers/provider.d.ts.map +1 -0
  443. package/platform/types/components/aws/helpers/queue-policy.d.ts +11 -0
  444. package/platform/types/components/aws/helpers/queue-policy.d.ts.map +1 -0
  445. package/platform/types/components/aws/helpers/rds.d.ts +98 -0
  446. package/platform/types/components/aws/helpers/rds.d.ts.map +1 -0
  447. package/platform/types/components/aws/helpers/site-builder.d.ts +4 -0
  448. package/platform/types/components/aws/helpers/site-builder.d.ts.map +1 -0
  449. package/platform/types/components/aws/helpers/subscriber.d.ts +6 -0
  450. package/platform/types/components/aws/helpers/subscriber.d.ts.map +1 -0
  451. package/platform/types/components/aws/helpers/vpc.d.ts +14 -0
  452. package/platform/types/components/aws/helpers/vpc.d.ts.map +1 -0
  453. package/platform/types/components/aws/https-redirect.d.ts +38 -0
  454. package/platform/types/components/aws/https-redirect.d.ts.map +1 -0
  455. package/platform/types/components/aws/iam-edit.d.ts +39 -0
  456. package/platform/types/components/aws/iam-edit.d.ts.map +1 -0
  457. package/platform/types/components/aws/index.d.ts +56 -0
  458. package/platform/types/components/aws/index.d.ts.map +1 -0
  459. package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts +49 -0
  460. package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts.map +1 -0
  461. package/platform/types/components/aws/kinesis-stream.d.ts +254 -0
  462. package/platform/types/components/aws/kinesis-stream.d.ts.map +1 -0
  463. package/platform/types/components/aws/linkable.d.ts +17 -0
  464. package/platform/types/components/aws/linkable.d.ts.map +1 -0
  465. package/platform/types/components/aws/logging.d.ts +26 -0
  466. package/platform/types/components/aws/logging.d.ts.map +1 -0
  467. package/platform/types/components/aws/microvm.d.ts +439 -0
  468. package/platform/types/components/aws/microvm.d.ts.map +1 -0
  469. package/platform/types/components/aws/mysql.d.ts +525 -0
  470. package/platform/types/components/aws/mysql.d.ts.map +1 -0
  471. package/platform/types/components/aws/nextjs.d.ts +534 -0
  472. package/platform/types/components/aws/nextjs.d.ts.map +1 -0
  473. package/platform/types/components/aws/nuxt.d.ts +480 -0
  474. package/platform/types/components/aws/nuxt.d.ts.map +1 -0
  475. package/platform/types/components/aws/open-search.d.ts +306 -0
  476. package/platform/types/components/aws/open-search.d.ts.map +1 -0
  477. package/platform/types/components/aws/opencontrol.d.ts +169 -0
  478. package/platform/types/components/aws/opencontrol.d.ts.map +1 -0
  479. package/platform/types/components/aws/permission.d.ts +80 -0
  480. package/platform/types/components/aws/permission.d.ts.map +1 -0
  481. package/platform/types/components/aws/postgres-v1.d.ts +328 -0
  482. package/platform/types/components/aws/postgres-v1.d.ts.map +1 -0
  483. package/platform/types/components/aws/postgres.d.ts +529 -0
  484. package/platform/types/components/aws/postgres.d.ts.map +1 -0
  485. package/platform/types/components/aws/providers/bucket-files.d.ts +18 -0
  486. package/platform/types/components/aws/providers/bucket-files.d.ts.map +1 -0
  487. package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts +13 -0
  488. package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts.map +1 -0
  489. package/platform/types/components/aws/providers/distribution-invalidation.d.ts +11 -0
  490. package/platform/types/components/aws/providers/distribution-invalidation.d.ts.map +1 -0
  491. package/platform/types/components/aws/providers/function-environment-update.d.ts +33 -0
  492. package/platform/types/components/aws/providers/function-environment-update.d.ts.map +1 -0
  493. package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts +11 -0
  494. package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts.map +1 -0
  495. package/platform/types/components/aws/providers/kv-keys.d.ts +11 -0
  496. package/platform/types/components/aws/providers/kv-keys.d.ts.map +1 -0
  497. package/platform/types/components/aws/providers/kv-routes-update.d.ts +11 -0
  498. package/platform/types/components/aws/providers/kv-routes-update.d.ts.map +1 -0
  499. package/platform/types/components/aws/providers/microvm-image-prune.d.ts +35 -0
  500. package/platform/types/components/aws/providers/microvm-image-prune.d.ts.map +1 -0
  501. package/platform/types/components/aws/providers/origin-access-control.d.ts +8 -0
  502. package/platform/types/components/aws/providers/origin-access-control.d.ts.map +1 -0
  503. package/platform/types/components/aws/providers/rds-role-lookup.d.ts +8 -0
  504. package/platform/types/components/aws/providers/rds-role-lookup.d.ts.map +1 -0
  505. package/platform/types/components/aws/providers/vector-table.d.ts +12 -0
  506. package/platform/types/components/aws/providers/vector-table.d.ts.map +1 -0
  507. package/platform/types/components/aws/queue-lambda-subscriber.d.ts +53 -0
  508. package/platform/types/components/aws/queue-lambda-subscriber.d.ts.map +1 -0
  509. package/platform/types/components/aws/queue.d.ts +494 -0
  510. package/platform/types/components/aws/queue.d.ts.map +1 -0
  511. package/platform/types/components/aws/react.d.ts +407 -0
  512. package/platform/types/components/aws/react.d.ts.map +1 -0
  513. package/platform/types/components/aws/realtime-lambda-subscriber.d.ts +53 -0
  514. package/platform/types/components/aws/realtime-lambda-subscriber.d.ts.map +1 -0
  515. package/platform/types/components/aws/realtime.d.ts +237 -0
  516. package/platform/types/components/aws/realtime.d.ts.map +1 -0
  517. package/platform/types/components/aws/redis-v1.d.ts +348 -0
  518. package/platform/types/components/aws/redis-v1.d.ts.map +1 -0
  519. package/platform/types/components/aws/redis.d.ts +545 -0
  520. package/platform/types/components/aws/redis.d.ts.map +1 -0
  521. package/platform/types/components/aws/remix.d.ts +408 -0
  522. package/platform/types/components/aws/remix.d.ts.map +1 -0
  523. package/platform/types/components/aws/router-base-route.d.ts +28 -0
  524. package/platform/types/components/aws/router-base-route.d.ts.map +1 -0
  525. package/platform/types/components/aws/router-bucket-route.d.ts +29 -0
  526. package/platform/types/components/aws/router-bucket-route.d.ts.map +1 -0
  527. package/platform/types/components/aws/router-url-route.d.ts +28 -0
  528. package/platform/types/components/aws/router-url-route.d.ts.map +1 -0
  529. package/platform/types/components/aws/router.d.ts +1754 -0
  530. package/platform/types/components/aws/router.d.ts.map +1 -0
  531. package/platform/types/components/aws/service-v1.d.ts +78 -0
  532. package/platform/types/components/aws/service-v1.d.ts.map +1 -0
  533. package/platform/types/components/aws/service.d.ts +1756 -0
  534. package/platform/types/components/aws/service.d.ts.map +1 -0
  535. package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts +53 -0
  536. package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts.map +1 -0
  537. package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts +55 -0
  538. package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts.map +1 -0
  539. package/platform/types/components/aws/sns-topic.d.ts +394 -0
  540. package/platform/types/components/aws/sns-topic.d.ts.map +1 -0
  541. package/platform/types/components/aws/solid-start.d.ts +399 -0
  542. package/platform/types/components/aws/solid-start.d.ts.map +1 -0
  543. package/platform/types/components/aws/ssr-site.d.ts +895 -0
  544. package/platform/types/components/aws/ssr-site.d.ts.map +1 -0
  545. package/platform/types/components/aws/static-site.d.ts +744 -0
  546. package/platform/types/components/aws/static-site.d.ts.map +1 -0
  547. package/platform/types/components/aws/step-functions/choice.d.ts +73 -0
  548. package/platform/types/components/aws/step-functions/choice.d.ts.map +1 -0
  549. package/platform/types/components/aws/step-functions/fail.d.ts +63 -0
  550. package/platform/types/components/aws/step-functions/fail.d.ts.map +1 -0
  551. package/platform/types/components/aws/step-functions/map.d.ts +236 -0
  552. package/platform/types/components/aws/step-functions/map.d.ts.map +1 -0
  553. package/platform/types/components/aws/step-functions/parallel.d.ts +127 -0
  554. package/platform/types/components/aws/step-functions/parallel.d.ts.map +1 -0
  555. package/platform/types/components/aws/step-functions/pass.d.ts +39 -0
  556. package/platform/types/components/aws/step-functions/pass.d.ts.map +1 -0
  557. package/platform/types/components/aws/step-functions/state.d.ts +231 -0
  558. package/platform/types/components/aws/step-functions/state.d.ts.map +1 -0
  559. package/platform/types/components/aws/step-functions/succeed.d.ts +26 -0
  560. package/platform/types/components/aws/step-functions/succeed.d.ts.map +1 -0
  561. package/platform/types/components/aws/step-functions/task.d.ts +485 -0
  562. package/platform/types/components/aws/step-functions/task.d.ts.map +1 -0
  563. package/platform/types/components/aws/step-functions/wait.d.ts +91 -0
  564. package/platform/types/components/aws/step-functions/wait.d.ts.map +1 -0
  565. package/platform/types/components/aws/step-functions.d.ts +478 -0
  566. package/platform/types/components/aws/step-functions.d.ts.map +1 -0
  567. package/platform/types/components/aws/svelte-kit.d.ts +456 -0
  568. package/platform/types/components/aws/svelte-kit.d.ts.map +1 -0
  569. package/platform/types/components/aws/takeover/alb.d.ts +2 -0
  570. package/platform/types/components/aws/takeover/alb.d.ts.map +1 -0
  571. package/platform/types/components/aws/takeover/apigatewayv2.d.ts +2 -0
  572. package/platform/types/components/aws/takeover/apigatewayv2.d.ts.map +1 -0
  573. package/platform/types/components/aws/takeover/app-sync.d.ts +2 -0
  574. package/platform/types/components/aws/takeover/app-sync.d.ts.map +1 -0
  575. package/platform/types/components/aws/takeover/aurora.d.ts +2 -0
  576. package/platform/types/components/aws/takeover/aurora.d.ts.map +1 -0
  577. package/platform/types/components/aws/takeover/bucket.d.ts +2 -0
  578. package/platform/types/components/aws/takeover/bucket.d.ts.map +1 -0
  579. package/platform/types/components/aws/takeover/bus.d.ts +2 -0
  580. package/platform/types/components/aws/takeover/bus.d.ts.map +1 -0
  581. package/platform/types/components/aws/takeover/cognito-user-pool.d.ts +2 -0
  582. package/platform/types/components/aws/takeover/cognito-user-pool.d.ts.map +1 -0
  583. package/platform/types/components/aws/takeover/cron-v2.d.ts +2 -0
  584. package/platform/types/components/aws/takeover/cron-v2.d.ts.map +1 -0
  585. package/platform/types/components/aws/takeover/dsql.d.ts +2 -0
  586. package/platform/types/components/aws/takeover/dsql.d.ts.map +1 -0
  587. package/platform/types/components/aws/takeover/dynamo.d.ts +2 -0
  588. package/platform/types/components/aws/takeover/dynamo.d.ts.map +1 -0
  589. package/platform/types/components/aws/takeover/efs.d.ts +2 -0
  590. package/platform/types/components/aws/takeover/efs.d.ts.map +1 -0
  591. package/platform/types/components/aws/takeover/function.d.ts +2 -0
  592. package/platform/types/components/aws/takeover/function.d.ts.map +1 -0
  593. package/platform/types/components/aws/takeover/helpers.d.ts +16 -0
  594. package/platform/types/components/aws/takeover/helpers.d.ts.map +1 -0
  595. package/platform/types/components/aws/takeover/index.d.ts +28 -0
  596. package/platform/types/components/aws/takeover/index.d.ts.map +1 -0
  597. package/platform/types/components/aws/takeover/mysql.d.ts +2 -0
  598. package/platform/types/components/aws/takeover/mysql.d.ts.map +1 -0
  599. package/platform/types/components/aws/takeover/postgres.d.ts +2 -0
  600. package/platform/types/components/aws/takeover/postgres.d.ts.map +1 -0
  601. package/platform/types/components/aws/takeover/queue.d.ts +2 -0
  602. package/platform/types/components/aws/takeover/queue.d.ts.map +1 -0
  603. package/platform/types/components/aws/takeover/redis.d.ts +2 -0
  604. package/platform/types/components/aws/takeover/redis.d.ts.map +1 -0
  605. package/platform/types/components/aws/takeover/service.d.ts +2 -0
  606. package/platform/types/components/aws/takeover/service.d.ts.map +1 -0
  607. package/platform/types/components/aws/takeover/sns-topic.d.ts +2 -0
  608. package/platform/types/components/aws/takeover/sns-topic.d.ts.map +1 -0
  609. package/platform/types/components/aws/takeover/task.d.ts +2 -0
  610. package/platform/types/components/aws/takeover/task.d.ts.map +1 -0
  611. package/platform/types/components/aws/tan-stack-start.d.ts +359 -0
  612. package/platform/types/components/aws/tan-stack-start.d.ts.map +1 -0
  613. package/platform/types/components/aws/task.d.ts +342 -0
  614. package/platform/types/components/aws/task.d.ts.map +1 -0
  615. package/platform/types/components/aws/v5/alb.d.ts +177 -0
  616. package/platform/types/components/aws/v5/alb.d.ts.map +1 -0
  617. package/platform/types/components/aws/v5/apigatewayv2.d.ts +482 -0
  618. package/platform/types/components/aws/v5/apigatewayv2.d.ts.map +1 -0
  619. package/platform/types/components/aws/v5/app-sync.d.ts +424 -0
  620. package/platform/types/components/aws/v5/app-sync.d.ts.map +1 -0
  621. package/platform/types/components/aws/v5/aurora.d.ts +459 -0
  622. package/platform/types/components/aws/v5/aurora.d.ts.map +1 -0
  623. package/platform/types/components/aws/v5/bucket.d.ts +578 -0
  624. package/platform/types/components/aws/v5/bucket.d.ts.map +1 -0
  625. package/platform/types/components/aws/v5/bus.d.ts +255 -0
  626. package/platform/types/components/aws/v5/bus.d.ts.map +1 -0
  627. package/platform/types/components/aws/v5/cluster.d.ts +167 -0
  628. package/platform/types/components/aws/v5/cluster.d.ts.map +1 -0
  629. package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts +69 -0
  630. package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts.map +1 -0
  631. package/platform/types/components/aws/v5/cognito-user-pool.d.ts +396 -0
  632. package/platform/types/components/aws/v5/cognito-user-pool.d.ts.map +1 -0
  633. package/platform/types/components/aws/v5/cron-v2.d.ts +206 -0
  634. package/platform/types/components/aws/v5/cron-v2.d.ts.map +1 -0
  635. package/platform/types/components/aws/v5/dsql.d.ts +453 -0
  636. package/platform/types/components/aws/v5/dsql.d.ts.map +1 -0
  637. package/platform/types/components/aws/v5/dynamo.d.ts +328 -0
  638. package/platform/types/components/aws/v5/dynamo.d.ts.map +1 -0
  639. package/platform/types/components/aws/v5/efs.d.ts +178 -0
  640. package/platform/types/components/aws/v5/efs.d.ts.map +1 -0
  641. package/platform/types/components/aws/v5/function.d.ts +582 -0
  642. package/platform/types/components/aws/v5/function.d.ts.map +1 -0
  643. package/platform/types/components/aws/v5/index.d.ts +27 -0
  644. package/platform/types/components/aws/v5/index.d.ts.map +1 -0
  645. package/platform/types/components/aws/v5/mysql.d.ts +347 -0
  646. package/platform/types/components/aws/v5/mysql.d.ts.map +1 -0
  647. package/platform/types/components/aws/v5/postgres.d.ts +348 -0
  648. package/platform/types/components/aws/v5/postgres.d.ts.map +1 -0
  649. package/platform/types/components/aws/v5/queue.d.ts +190 -0
  650. package/platform/types/components/aws/v5/queue.d.ts.map +1 -0
  651. package/platform/types/components/aws/v5/redis.d.ts +214 -0
  652. package/platform/types/components/aws/v5/redis.d.ts.map +1 -0
  653. package/platform/types/components/aws/v5/service.d.ts +1347 -0
  654. package/platform/types/components/aws/v5/service.d.ts.map +1 -0
  655. package/platform/types/components/aws/v5/sns-topic.d.ts +226 -0
  656. package/platform/types/components/aws/v5/sns-topic.d.ts.map +1 -0
  657. package/platform/types/components/aws/v5/task.d.ts +346 -0
  658. package/platform/types/components/aws/v5/task.d.ts.map +1 -0
  659. package/platform/types/components/aws/vector.d.ts +163 -0
  660. package/platform/types/components/aws/vector.d.ts.map +1 -0
  661. package/platform/types/components/aws/vpc-v1.d.ts +208 -0
  662. package/platform/types/components/aws/vpc-v1.d.ts.map +1 -0
  663. package/platform/types/components/aws/vpc.d.ts +491 -0
  664. package/platform/types/components/aws/vpc.d.ts.map +1 -0
  665. package/platform/types/components/aws/workflow.d.ts +331 -0
  666. package/platform/types/components/aws/workflow.d.ts.map +1 -0
  667. package/platform/types/components/base/base-site.d.ts +53 -0
  668. package/platform/types/components/base/base-site.d.ts.map +1 -0
  669. package/platform/types/components/base/base-ssr-site.d.ts +13 -0
  670. package/platform/types/components/base/base-ssr-site.d.ts.map +1 -0
  671. package/platform/types/components/base/base-static-site.d.ts +199 -0
  672. package/platform/types/components/base/base-static-site.d.ts.map +1 -0
  673. package/platform/types/components/cloudflare/account-id.d.ts +2 -0
  674. package/platform/types/components/cloudflare/account-id.d.ts.map +1 -0
  675. package/platform/types/components/cloudflare/ai.d.ts +68 -0
  676. package/platform/types/components/cloudflare/ai.d.ts.map +1 -0
  677. package/platform/types/components/cloudflare/astro.d.ts +249 -0
  678. package/platform/types/components/cloudflare/astro.d.ts.map +1 -0
  679. package/platform/types/components/cloudflare/auth.d.ts +22 -0
  680. package/platform/types/components/cloudflare/auth.d.ts.map +1 -0
  681. package/platform/types/components/cloudflare/binding.d.ts +109 -0
  682. package/platform/types/components/cloudflare/binding.d.ts.map +1 -0
  683. package/platform/types/components/cloudflare/bucket.d.ts +98 -0
  684. package/platform/types/components/cloudflare/bucket.d.ts.map +1 -0
  685. package/platform/types/components/cloudflare/cron.d.ts +151 -0
  686. package/platform/types/components/cloudflare/cron.d.ts.map +1 -0
  687. package/platform/types/components/cloudflare/d1.d.ts +142 -0
  688. package/platform/types/components/cloudflare/d1.d.ts.map +1 -0
  689. package/platform/types/components/cloudflare/dns.d.ts +100 -0
  690. package/platform/types/components/cloudflare/dns.d.ts.map +1 -0
  691. package/platform/types/components/cloudflare/durable-object.d.ts +125 -0
  692. package/platform/types/components/cloudflare/durable-object.d.ts.map +1 -0
  693. package/platform/types/components/cloudflare/experimental/index.d.ts +4 -0
  694. package/platform/types/components/cloudflare/experimental/index.d.ts.map +1 -0
  695. package/platform/types/components/cloudflare/experimental/solid-start.d.ts +219 -0
  696. package/platform/types/components/cloudflare/experimental/solid-start.d.ts.map +1 -0
  697. package/platform/types/components/cloudflare/experimental/static-site.d.ts +3 -0
  698. package/platform/types/components/cloudflare/experimental/static-site.d.ts.map +1 -0
  699. package/platform/types/components/cloudflare/helpers/compatibility.d.ts +21 -0
  700. package/platform/types/components/cloudflare/helpers/compatibility.d.ts.map +1 -0
  701. package/platform/types/components/cloudflare/helpers/fetch.d.ts +19 -0
  702. package/platform/types/components/cloudflare/helpers/fetch.d.ts.map +1 -0
  703. package/platform/types/components/cloudflare/helpers/validation.d.ts +15 -0
  704. package/platform/types/components/cloudflare/helpers/validation.d.ts.map +1 -0
  705. package/platform/types/components/cloudflare/helpers/worker-builder.d.ts +10 -0
  706. package/platform/types/components/cloudflare/helpers/worker-builder.d.ts.map +1 -0
  707. package/platform/types/components/cloudflare/helpers/wrangler.d.ts +31 -0
  708. package/platform/types/components/cloudflare/helpers/wrangler.d.ts.map +1 -0
  709. package/platform/types/components/cloudflare/hyperdrive.d.ts +302 -0
  710. package/platform/types/components/cloudflare/hyperdrive.d.ts.map +1 -0
  711. package/platform/types/components/cloudflare/index.d.ts +25 -0
  712. package/platform/types/components/cloudflare/index.d.ts.map +1 -0
  713. package/platform/types/components/cloudflare/kv.d.ts +140 -0
  714. package/platform/types/components/cloudflare/kv.d.ts.map +1 -0
  715. package/platform/types/components/cloudflare/providers/dns-record.d.ts +21 -0
  716. package/platform/types/components/cloudflare/providers/dns-record.d.ts.map +1 -0
  717. package/platform/types/components/cloudflare/providers/kv-data.d.ts +23 -0
  718. package/platform/types/components/cloudflare/providers/kv-data.d.ts.map +1 -0
  719. package/platform/types/components/cloudflare/providers/worker-assets.d.ts +19 -0
  720. package/platform/types/components/cloudflare/providers/worker-assets.d.ts.map +1 -0
  721. package/platform/types/components/cloudflare/providers/worker-placement.d.ts +27 -0
  722. package/platform/types/components/cloudflare/providers/worker-placement.d.ts.map +1 -0
  723. package/platform/types/components/cloudflare/providers/worker-script.d.ts +23 -0
  724. package/platform/types/components/cloudflare/providers/worker-script.d.ts.map +1 -0
  725. package/platform/types/components/cloudflare/providers/worker-url.d.ts +24 -0
  726. package/platform/types/components/cloudflare/providers/worker-url.d.ts.map +1 -0
  727. package/platform/types/components/cloudflare/providers/zone-lookup.d.ts +22 -0
  728. package/platform/types/components/cloudflare/providers/zone-lookup.d.ts.map +1 -0
  729. package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts +122 -0
  730. package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts.map +1 -0
  731. package/platform/types/components/cloudflare/queue.d.ts +235 -0
  732. package/platform/types/components/cloudflare/queue.d.ts.map +1 -0
  733. package/platform/types/components/cloudflare/rate-limit.d.ts +117 -0
  734. package/platform/types/components/cloudflare/rate-limit.d.ts.map +1 -0
  735. package/platform/types/components/cloudflare/react-router.d.ts +262 -0
  736. package/platform/types/components/cloudflare/react-router.d.ts.map +1 -0
  737. package/platform/types/components/cloudflare/ssr-site.d.ts +60 -0
  738. package/platform/types/components/cloudflare/ssr-site.d.ts.map +1 -0
  739. package/platform/types/components/cloudflare/static-site-v2.d.ts +302 -0
  740. package/platform/types/components/cloudflare/static-site-v2.d.ts.map +1 -0
  741. package/platform/types/components/cloudflare/static-site.d.ts +270 -0
  742. package/platform/types/components/cloudflare/static-site.d.ts.map +1 -0
  743. package/platform/types/components/cloudflare/tan-stack-start.d.ts +259 -0
  744. package/platform/types/components/cloudflare/tan-stack-start.d.ts.map +1 -0
  745. package/platform/types/components/cloudflare/worker.d.ts +483 -0
  746. package/platform/types/components/cloudflare/worker.d.ts.map +1 -0
  747. package/platform/types/components/cloudflare/workflow.d.ts +248 -0
  748. package/platform/types/components/cloudflare/workflow.d.ts.map +1 -0
  749. package/platform/types/components/component.d.ts +67 -0
  750. package/platform/types/components/component.d.ts.map +1 -0
  751. package/platform/types/components/core.d.ts +16 -0
  752. package/platform/types/components/core.d.ts.map +1 -0
  753. package/platform/types/components/cpu.d.ts +3 -0
  754. package/platform/types/components/cpu.d.ts.map +1 -0
  755. package/platform/types/components/dns.d.ts +63 -0
  756. package/platform/types/components/dns.d.ts.map +1 -0
  757. package/platform/types/components/duration.d.ts +9 -0
  758. package/platform/types/components/duration.d.ts.map +1 -0
  759. package/platform/types/components/error.d.ts +4 -0
  760. package/platform/types/components/error.d.ts.map +1 -0
  761. package/platform/types/components/esbuild.d.ts +3 -0
  762. package/platform/types/components/esbuild.d.ts.map +1 -0
  763. package/platform/types/components/experimental/dev-command.d.ts +99 -0
  764. package/platform/types/components/experimental/dev-command.d.ts.map +1 -0
  765. package/platform/types/components/experimental/index.d.ts +2 -0
  766. package/platform/types/components/experimental/index.d.ts.map +1 -0
  767. package/platform/types/components/groups.d.ts +6 -0
  768. package/platform/types/components/groups.d.ts.map +1 -0
  769. package/platform/types/components/index.d.ts +5 -0
  770. package/platform/types/components/index.d.ts.map +1 -0
  771. package/platform/types/components/input.d.ts +3 -0
  772. package/platform/types/components/input.d.ts.map +1 -0
  773. package/platform/types/components/link.d.ts +41 -0
  774. package/platform/types/components/link.d.ts.map +1 -0
  775. package/platform/types/components/linkable.d.ts +301 -0
  776. package/platform/types/components/linkable.d.ts.map +1 -0
  777. package/platform/types/components/naming-rules.d.ts +32 -0
  778. package/platform/types/components/naming-rules.d.ts.map +1 -0
  779. package/platform/types/components/naming.d.ts +21 -0
  780. package/platform/types/components/naming.d.ts.map +1 -0
  781. package/platform/types/components/parts-component.d.ts +241 -0
  782. package/platform/types/components/parts-component.d.ts.map +1 -0
  783. package/platform/types/components/parts.d.ts +194 -0
  784. package/platform/types/components/parts.d.ts.map +1 -0
  785. package/platform/types/components/path.d.ts +2 -0
  786. package/platform/types/components/path.d.ts.map +1 -0
  787. package/platform/types/components/rpc/rpc.d.ts +19 -0
  788. package/platform/types/components/rpc/rpc.d.ts.map +1 -0
  789. package/platform/types/components/secret.d.ts +123 -0
  790. package/platform/types/components/secret.d.ts.map +1 -0
  791. package/platform/types/components/size.d.ts +5 -0
  792. package/platform/types/components/size.d.ts.map +1 -0
  793. package/platform/types/components/takeover.d.ts +88 -0
  794. package/platform/types/components/takeover.d.ts.map +1 -0
  795. package/platform/types/components/transform.d.ts +34 -0
  796. package/platform/types/components/transform.d.ts.map +1 -0
  797. package/platform/types/components/vercel/account-id.d.ts +2 -0
  798. package/platform/types/components/vercel/account-id.d.ts.map +1 -0
  799. package/platform/types/components/vercel/dns.d.ts +73 -0
  800. package/platform/types/components/vercel/dns.d.ts.map +1 -0
  801. package/platform/types/components/vercel/index.d.ts +3 -0
  802. package/platform/types/components/vercel/index.d.ts.map +1 -0
  803. package/platform/types/components/vercel/providers/dns-record.d.ts +15 -0
  804. package/platform/types/components/vercel/providers/dns-record.d.ts.map +1 -0
  805. package/platform/types/config.d.ts +1437 -0
  806. package/platform/types/config.d.ts.map +1 -0
  807. package/platform/types/global-aliases.d.ts +37 -0
  808. package/platform/types/global.d.ts +374 -0
  809. package/platform/types/internal.d.ts +18 -0
  810. package/platform/types/runtime/worker/unenv.d.ts +14 -0
  811. package/platform/types/testing/global.d.ts +11 -0
  812. package/platform/types/testing/global.d.ts.map +1 -0
  813. package/platform/types/testing/index.d.ts +80 -0
  814. package/platform/types/testing/index.d.ts.map +1 -0
  815. package/platform/types/testing/mock.d.ts +136 -0
  816. package/platform/types/testing/mock.d.ts.map +1 -0
  817. package/platform/types/testing/vitest.d.ts +19 -0
  818. package/platform/types/testing/vitest.d.ts.map +1 -0
  819. package/platform/types/util/compare-semver.d.ts +4 -0
  820. package/platform/types/util/compare-semver.d.ts.map +1 -0
  821. package/platform/types/util/fs.d.ts +5 -0
  822. package/platform/types/util/fs.d.ts.map +1 -0
  823. package/platform/types/util/lazy.d.ts +2 -0
  824. package/platform/types/util/lazy.d.ts.map +1 -0
  825. package/platform/types/util/minify.d.ts +2 -0
  826. package/platform/types/util/minify.d.ts.map +1 -0
  827. package/platform/types/util/package.d.ts +10 -0
  828. package/platform/types/util/package.d.ts.map +1 -0
  829. package/platform/types/util/semaphore.d.ts +9 -0
  830. package/platform/types/util/semaphore.d.ts.map +1 -0
  831. package/platform/types/util/warn.d.ts +2 -0
  832. package/platform/types/util/warn.d.ts.map +1 -0
@@ -0,0 +1,1356 @@
1
+ import {
2
+ all,
3
+ ComponentResourceOptions,
4
+ interpolate,
5
+ jsonStringify,
6
+ output,
7
+ Output,
8
+ } from "@pulumi/pulumi";
9
+ import { Component, Transform, transform } from "../component.js";
10
+ import { Link } from "../link.js";
11
+ import { Input } from "../input.js";
12
+ import { iam, rds, secretsmanager } from "@pulumi/aws";
13
+ import { VisibleError } from "../error.js";
14
+ import { Vpc } from "./vpc.js";
15
+ import { RandomPassword } from "@pulumi/random";
16
+ import { DevCommand } from "../experimental/dev-command.js";
17
+ import { RdsRoleLookup } from "./providers/rds-role-lookup.js";
18
+ import { DurationHours, toSeconds } from "../duration.js";
19
+ import { permission } from "./permission.js";
20
+
21
+ type ACU = `${number} ACU`;
22
+
23
+ function parseACU(acu: ACU) {
24
+ const result = parseFloat(acu.split(" ")[0]);
25
+ return result;
26
+ }
27
+
28
+ export interface AuroraArgs {
29
+ /**
30
+ * The Aurora engine to use.
31
+ *
32
+ * :::danger
33
+ * Changing the engine will cause the database to be destroyed and recreated.
34
+ * :::
35
+ *
36
+ * @example
37
+ * ```js
38
+ * {
39
+ * engine: "postgres"
40
+ * }
41
+ * ```
42
+ */
43
+ engine: Input<"postgres" | "mysql">;
44
+ /**
45
+ * The version of the Aurora engine.
46
+ *
47
+ * The default is `"17"` for Postgres and `"3.08.0"` for MySQL.
48
+ *
49
+ * Check out the [available Postgres versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.apg) and [available MySQL versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.amy) in your region.
50
+ *
51
+ * :::tip
52
+ * Not all versions support scaling to 0 with auto-pause and resume.
53
+ * :::
54
+ *
55
+ * Auto-pause and resume is only supported in the following versions:
56
+ * - Aurora PostgresSQL 16.3 and higher
57
+ * - Aurora PostgresSQL 15.7 and higher
58
+ * - Aurora PostgresSQL 14.12 and higher
59
+ * - Aurora PostgresSQL 13.15 and higher
60
+ * - Aurora MySQL 3.08.0 and higher
61
+ *
62
+ * :::caution
63
+ * Changing the version will cause the database to restart on the next `sst deploy`,
64
+ * causing downtime. Learn more about [upgrading databases](/docs/upgrade-aws-databases/).
65
+ * :::
66
+ *
67
+ * @default `"17"` for Postgres, `"3.08.0"` for MySQL
68
+ * @example
69
+ * ```js
70
+ * {
71
+ * version: "17.3"
72
+ * }
73
+ * ```
74
+ */
75
+ version?: Input<string>;
76
+ /**
77
+ * The username of the master user.
78
+ *
79
+ * :::danger
80
+ * Changing the username will cause the database to be destroyed and recreated.
81
+ * :::
82
+ *
83
+ * @default `"postgres"` for Postgres, `"root"` for MySQL
84
+ * @example
85
+ * ```js
86
+ * {
87
+ * username: "admin"
88
+ * }
89
+ * ```
90
+ */
91
+ username?: Input<string>;
92
+ /**
93
+ * The password of the master user.
94
+ * @default A random password is generated.
95
+ * @example
96
+ * ```js
97
+ * {
98
+ * password: "Passw0rd!"
99
+ * }
100
+ * ```
101
+ *
102
+ * You can use a [`Secret`](/docs/component/secret) to manage the password.
103
+ *
104
+ * ```js
105
+ * {
106
+ * password: (new sst.Secret("MyDBPassword")).value
107
+ * }
108
+ * ```
109
+ */
110
+ password?: Input<string>;
111
+ /**
112
+ * Name of a database that is automatically created inside the cluster.
113
+ *
114
+ * The name must begin with a letter and contain only lowercase letters, numbers, or
115
+ * underscores.
116
+ *
117
+ * By default, it takes the name of the app, and replaces the hyphens with underscores.
118
+ *
119
+ * :::danger
120
+ * Changing the database name will cause the database to be destroyed and recreated.
121
+ * :::
122
+ *
123
+ * @default Based on the name of the current app
124
+ * @example
125
+ * ```js
126
+ * {
127
+ * databaseName: "acme"
128
+ * }
129
+ * ```
130
+ */
131
+ database?: Input<string>;
132
+ /**
133
+ * The Aurora Serverless v2 scaling config.
134
+ *
135
+ * By default, the cluster has one DB instance that is used for both writes and reads. The
136
+ * instance can scale from a minimum number of ACUs to the maximum number of ACUs.
137
+ *
138
+ * :::tip
139
+ * Pick the `min` and `max` ACUs based on the baseline and peak memory usage of your app.
140
+ * :::
141
+ *
142
+ * An ACU or _Aurora Capacity Unit_ is roughly equivalent to 2 GB of memory and a corresponding
143
+ * amount of CPU and network resources. So pick the minimum and maximum based on the baseline
144
+ * and peak memory usage of your app.
145
+ *
146
+ * If you set a `min` of 0 ACUs, the database will be paused when there are no active
147
+ * connections in the `pauseAfter` specified time period.
148
+ *
149
+ * This is useful for dev environments since you are not charged when the database is paused.
150
+ * But it's not recommended for production environments because it takes around 15 seconds for
151
+ * the database to resume.
152
+ *
153
+ * @default `{min: "0 ACU", max: "4 ACU"}`
154
+ */
155
+ scaling?: Input<{
156
+ /**
157
+ * The minimum number of ACUs or _Aurora Capacity Units_. Ranges from 0 to 256, in
158
+ * increments of 0.5. Where each ACU is roughly equivalent to 2 GB of memory.
159
+ *
160
+ * If you set this to 0 ACUs, the database will be paused when there are no active
161
+ * connections in the `pauseAfter` specified time period.
162
+ *
163
+ * :::note
164
+ * If you set a `min` ACU to 0, the database will be paused after the `pauseAfter` time
165
+ * period.
166
+ * :::
167
+ *
168
+ * On the next database connection, the database will resume. It takes about 15 seconds for
169
+ * the database to resume.
170
+ *
171
+ * :::tip
172
+ * Avoid setting a low number of `min` ACUs for production workloads.
173
+ * :::
174
+ *
175
+ * For your production workloads, setting a minimum of 0.5 ACUs might not be a great idea
176
+ * because:
177
+ *
178
+ * 1. It takes longer to scale from a low number of ACUs to a much higher number.
179
+ * 2. Query performance depends on the buffer cache. So if frequently accessed data cannot
180
+ * fit into the buffer cache, you might see uneven performance.
181
+ * 3. The max connections for a 0.5 ACU instance is capped at 2000.
182
+ *
183
+ * You can [read more here](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.setting-capacity.incompatible_parameters).
184
+ *
185
+ * @default `0.5 ACU`
186
+ * @example
187
+ * ```js
188
+ * {
189
+ * scaling: {
190
+ * min: "2 ACU"
191
+ * }
192
+ * }
193
+ * ```
194
+ */
195
+ min?: Input<ACU>;
196
+ /**
197
+ * The maximum number of ACUs or _Aurora Capacity Units_. Ranges from 1 to 128, in
198
+ * increments of 0.5. Where each ACU is roughly equivalent to 2 GB of memory.
199
+ *
200
+ * @default `4 ACU`
201
+ * @example
202
+ * ```js
203
+ * {
204
+ * scaling: {
205
+ * max: "128 ACU"
206
+ * }
207
+ * }
208
+ * ```
209
+ */
210
+ max?: Input<ACU>;
211
+ /**
212
+ * The amount of time before the database is paused when there are no active connections.
213
+ * Only applies when the `min` is set to 0 ACUs.
214
+ *
215
+ * :::note
216
+ * This only applies when the `min` is set to 0 ACUs.
217
+ * :::
218
+ *
219
+ * Must be between `"5 minutes"` and `"60 minutes"` or `"1 hour"`. So if the `min` is set
220
+ * to 0 ACUs, by default, the database will be auto-paused after `"5 minutes"`.
221
+ *
222
+ * When the database is paused, you are not charged for the ACUs. On the next database
223
+ * connection, the database will resume. It takes about 15 seconds for the database to
224
+ * resume.
225
+ *
226
+ * :::tip
227
+ * Auto-pause is not recommended for production environments.
228
+ * :::
229
+ *
230
+ * Auto-pause is useful for minimizing costs in the development environments where the
231
+ * database is not used frequently. It's not recommended for production environments.
232
+ *
233
+ * @default `"5 minutes"`
234
+ * @example
235
+ * ```js
236
+ * {
237
+ * scaling: {
238
+ * pauseAfter: "20 minutes"
239
+ * }
240
+ * }
241
+ * ```
242
+ */
243
+ pauseAfter?: Input<DurationHours>;
244
+ }>;
245
+ /**
246
+ * The number of read-only Aurora replicas to create.
247
+ *
248
+ * By default, the cluster has one primary DB instance that is used for both writes and
249
+ * reads. You can add up to 15 read-only replicas to offload the read traffic from the
250
+ * primary instance.
251
+ *
252
+ * @default `0`
253
+ * @example
254
+ * ```js
255
+ * {
256
+ * replicas: 2
257
+ * }
258
+ * ```
259
+ */
260
+ replicas?: Input<number>;
261
+ /**
262
+ * Enable [RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html)
263
+ * for the database.
264
+ *
265
+ * The RDS Data API provides a secure HTTP endpoint and does not need a persistent connection.
266
+ * You also doesn't need the `sst tunnel` or a VPN to connect to it from your local machine.
267
+ *
268
+ * RDS Data API is [billed per request](#cost). Check out the [RDS Data API
269
+ * pricing](https://aws.amazon.com/rds/aurora/pricing/#Data_API_costs) for more details.
270
+ *
271
+ * @default `false`
272
+ * @example
273
+ * ```js
274
+ * {
275
+ * dataApi: true
276
+ * }
277
+ * ```
278
+ */
279
+ dataApi?: Input<boolean>;
280
+ /**
281
+ * Enable [RDS Proxy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html)
282
+ * for the database.
283
+ *
284
+ * Amazon RDS Proxy sits between your application and the database and manages connections to
285
+ * it. It's useful for serverless applications, or Lambda functions where each invocation
286
+ * might create a new connection.
287
+ *
288
+ * There's an [extra cost](#cost) attached to enabling this. Check out the [RDS Proxy
289
+ * pricing](https://aws.amazon.com/rds/proxy/pricing/) for more details.
290
+ *
291
+ * @default `false`
292
+ * @example
293
+ * ```js
294
+ * {
295
+ * proxy: true
296
+ * }
297
+ * ```
298
+ */
299
+ proxy?: Input<
300
+ | boolean
301
+ | {
302
+ /**
303
+ * Add extra credentials the proxy can use to connect to the database.
304
+ *
305
+ * Your app will use the master `username` and `password`. So you don't need to specify
306
+ * them here.
307
+ *
308
+ * These credentials are for any other services that need to connect to your database
309
+ * directly.
310
+ *
311
+ * :::tip
312
+ * You need to create these credentials manually in the database.
313
+ * :::
314
+ *
315
+ * These credentials are not automatically created. You'll need to create these
316
+ * credentials manually in the database.
317
+ *
318
+ * @example
319
+ * ```js
320
+ * {
321
+ * credentials: [
322
+ * {
323
+ * username: "metabase",
324
+ * password: "Passw0rd!"
325
+ * }
326
+ * ]
327
+ * }
328
+ * ```
329
+ *
330
+ * You can use a [`Secret`](/docs/component/secret) to manage the password.
331
+ *
332
+ * ```js
333
+ * {
334
+ * credentials: [
335
+ * {
336
+ * username: "metabase",
337
+ * password: (new sst.Secret("MyDBPassword")).value
338
+ * }
339
+ * ]
340
+ * }
341
+ * ```
342
+ */
343
+ credentials?: Input<
344
+ Input<{
345
+ /**
346
+ * The username of the user.
347
+ */
348
+ username: Input<string>;
349
+ /**
350
+ * The password of the user.
351
+ */
352
+ password: Input<string>;
353
+ }>[]
354
+ >;
355
+ }
356
+ >;
357
+ /**
358
+ * The VPC to use for the database cluster.
359
+ *
360
+ * @example
361
+ * Create a VPC component.
362
+ *
363
+ * ```js
364
+ * const myVpc = new sst.aws.Vpc("MyVpc");
365
+ * ```
366
+ *
367
+ * And pass it in.
368
+ *
369
+ * ```js
370
+ * {
371
+ * vpc: myVpc
372
+ * }
373
+ * ```
374
+ *
375
+ * Or pass in a custom VPC configuration.
376
+ *
377
+ * ```js
378
+ * {
379
+ * vpc: {
380
+ * subnets: ["subnet-0db7376a7ad4db5fd ", "subnet-06fc7ee8319b2c0ce"],
381
+ * securityGroups: ["sg-0399348378a4c256c"]
382
+ * }
383
+ * }
384
+ * ```
385
+ */
386
+ vpc:
387
+ | Vpc
388
+ | Input<{
389
+ /**
390
+ * A list of subnet IDs in the VPC to deploy the Aurora cluster in.
391
+ */
392
+ subnets: Input<Input<string>[]>;
393
+ /**
394
+ * A list of VPC security group IDs.
395
+ */
396
+ securityGroups: Input<Input<string>[]>;
397
+ }>;
398
+ /**
399
+ * Configure how this component works in `sst dev`.
400
+ *
401
+ * By default, your Aurora database is deployed in `sst dev`. But if you want to instead
402
+ * connect to a locally running database, you can configure the `dev` prop.
403
+ *
404
+ * This will skip deploying an Aurora database and link to the locally running database
405
+ * instead.
406
+ *
407
+ * @example
408
+ *
409
+ * Setting the `dev` prop also means that any linked resources will connect to the right
410
+ * database both in `sst dev` and `sst deploy`.
411
+ *
412
+ * ```ts
413
+ * {
414
+ * dev: {
415
+ * username: "postgres",
416
+ * password: "password",
417
+ * database: "postgres",
418
+ * host: "localhost",
419
+ * port: 5432
420
+ * }
421
+ * }
422
+ * ```
423
+ */
424
+ dev?: {
425
+ /**
426
+ * The host of the local database to connect to when running in dev.
427
+ * @default `"localhost"`
428
+ */
429
+ host?: Input<string>;
430
+ /**
431
+ * The port of the local database to connect to when running in dev.
432
+ * @default `5432`
433
+ */
434
+ port?: Input<number>;
435
+ /**
436
+ * The database of the local database to connect to when running in dev.
437
+ * @default Inherit from the top-level [`database`](#database).
438
+ */
439
+ database?: Input<string>;
440
+ /**
441
+ * The username of the local database to connect to when running in dev.
442
+ * @default Inherit from the top-level [`username`](#username).
443
+ */
444
+ username?: Input<string>;
445
+ /**
446
+ * The password of the local database to connect to when running in dev.
447
+ * @default Inherit from the top-level [`password`](#password).
448
+ */
449
+ password?: Input<string>;
450
+ };
451
+ /**
452
+ * [Transform](/docs/components#transform) how this component creates its underlying
453
+ * resources.
454
+ */
455
+ transform?: {
456
+ /**
457
+ * Transform the RDS subnet group.
458
+ */
459
+ subnetGroup?: Transform<rds.SubnetGroupArgs>;
460
+ /**
461
+ * Transform the RDS cluster parameter group.
462
+ */
463
+ clusterParameterGroup?: Transform<rds.ClusterParameterGroupArgs>;
464
+ /**
465
+ * Transform the RDS instance parameter group.
466
+ */
467
+ instanceParameterGroup?: Transform<rds.ParameterGroupArgs>;
468
+ /**
469
+ * Transform the RDS Cluster.
470
+ */
471
+ cluster?: Transform<rds.ClusterArgs>;
472
+ /**
473
+ * Transform the database instance in the RDS Cluster.
474
+ */
475
+ instance?: Transform<rds.ClusterInstanceArgs>;
476
+ /**
477
+ * Transform the RDS Proxy.
478
+ */
479
+ proxy?: Transform<rds.ProxyArgs>;
480
+ };
481
+ }
482
+
483
+ interface AuroraRef {
484
+ ref: boolean;
485
+ id: Input<string>;
486
+ }
487
+
488
+ /**
489
+ * The `Aurora` component lets you add a Aurora Postgres or MySQL cluster to your app
490
+ * using [Amazon Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html).
491
+ *
492
+ * @example
493
+ *
494
+ * #### Create an Aurora Postgres cluster
495
+ *
496
+ * ```js title="sst.config.ts"
497
+ * const vpc = new sst.aws.Vpc("MyVpc");
498
+ * const database = new sst.aws.Aurora("MyDatabase", {
499
+ * engine: "postgres",
500
+ * vpc
501
+ * });
502
+ * ```
503
+ *
504
+ * #### Create an Aurora MySQL cluster
505
+ *
506
+ * ```js title="sst.config.ts"
507
+ * const vpc = new sst.aws.Vpc("MyVpc");
508
+ * const database = new sst.aws.Aurora("MyDatabase", {
509
+ * engine: "mysql",
510
+ * vpc
511
+ * });
512
+ * ```
513
+ *
514
+ * #### Change the scaling config
515
+ *
516
+ * ```js title="sst.config.ts"
517
+ * new sst.aws.Aurora("MyDatabase", {
518
+ * engine: "postgres",
519
+ * scaling: {
520
+ * min: "2 ACU",
521
+ * max: "128 ACU"
522
+ * },
523
+ * vpc
524
+ * });
525
+ * ```
526
+ *
527
+ * #### Link to a resource
528
+ *
529
+ * You can link your database to other resources, like a function or your Next.js app.
530
+ *
531
+ * ```ts title="sst.config.ts"
532
+ * new sst.aws.Nextjs("MyWeb", {
533
+ * link: [database],
534
+ * vpc
535
+ * });
536
+ * ```
537
+ *
538
+ * Once linked, you can connect to it from your function code.
539
+ *
540
+ * ```ts title="app/page.tsx" {1,5-9}
541
+ * import { Resource } from "sst";
542
+ * import postgres from "postgres";
543
+ *
544
+ * const sql = postgres({
545
+ * username: Resource.MyDatabase.username,
546
+ * password: Resource.MyDatabase.password,
547
+ * database: Resource.MyDatabase.database,
548
+ * host: Resource.MyDatabase.host,
549
+ * port: Resource.MyDatabase.port
550
+ * });
551
+ * ```
552
+ *
553
+ * #### Enable the RDS Data API
554
+ *
555
+ * ```ts title="sst.config.ts"
556
+ * new sst.aws.Aurora("MyDatabase", {
557
+ * engine: "postgres",
558
+ * dataApi: true,
559
+ * vpc
560
+ * });
561
+ * ```
562
+ *
563
+ * When using the Data API, connecting to the database does not require a persistent
564
+ * connection, and works over HTTP. You also don't need the `sst tunnel` or a VPN to connect
565
+ * to it from your local machine.
566
+ *
567
+ * ```ts title="app/page.tsx" {1,6,7,8}
568
+ * import { Resource } from "sst";
569
+ * import { drizzle } from "drizzle-orm/aws-data-api/pg";
570
+ * import { RDSDataClient } from "@aws-sdk/client-rds-data";
571
+ *
572
+ * drizzle(new RDSDataClient({}), {
573
+ * database: Resource.MyDatabase.database,
574
+ * secretArn: Resource.MyDatabase.secretArn,
575
+ * resourceArn: Resource.MyDatabase.clusterArn
576
+ * });
577
+ * ```
578
+ *
579
+ * #### Running locally
580
+ *
581
+ * By default, your Aurora database is deployed in `sst dev`. But let's say you are running
582
+ * Postgres locally.
583
+ *
584
+ * ```bash
585
+ * docker run \
586
+ * --rm \
587
+ * -p 5432:5432 \
588
+ * -v $(pwd)/.sst/storage/postgres:/var/lib/postgresql/data \
589
+ * -e POSTGRES_USER=postgres \
590
+ * -e POSTGRES_PASSWORD=password \
591
+ * -e POSTGRES_DB=local \
592
+ * postgres:17
593
+ * ```
594
+ *
595
+ * You can connect to it in `sst dev` by configuring the `dev` prop.
596
+ *
597
+ * ```ts title="sst.config.ts" {4-9}
598
+ * new sst.aws.Aurora("MyDatabase", {
599
+ * engine: "postgres",
600
+ * vpc,
601
+ * dev: {
602
+ * username: "postgres",
603
+ * password: "password",
604
+ * database: "local",
605
+ * port: 5432
606
+ * }
607
+ * });
608
+ * ```
609
+ *
610
+ * This will skip deploying the database and link to the locally running Postgres database
611
+ * instead. [Check out the full example](/docs/examples/#aws-aurora-local).
612
+ *
613
+ * ---
614
+ *
615
+ * ### Cost
616
+ *
617
+ * This component has one DB instance that is used for both writes and reads. The
618
+ * instance can scale from the minimum number of ACUs to the maximum number of ACUs. By default,
619
+ * this uses a `min` of 0 ACUs and a `max` of 4 ACUs.
620
+ *
621
+ * When the database is paused, you are not charged for the ACUs.
622
+ *
623
+ * Each ACU costs $0.12 per hour for both `postgres` and `mysql` engine. The storage costs
624
+ * $0.01 per GB per month for standard storage.
625
+ *
626
+ * So if your database is constantly using 1GB of memory or 0.5 ACUs, then you are charged
627
+ * $0.12 x 0.5 x 24 x 30 or **$43 per month**. And add the storage costs to this as well.
628
+ *
629
+ * The above are rough estimates for _us-east-1_, check out the
630
+ * [Amazon Aurora pricing](https://aws.amazon.com/rds/aurora/pricing) for more details.
631
+ *
632
+ * #### RDS Proxy
633
+ *
634
+ * If you enable the `proxy`, it uses _Aurora Capacity Units_ with a minumum of 8 ACUs at
635
+ * $0.015 per ACU hour.
636
+ *
637
+ * That works out to an **additional** $0.015 x 8 x 24 x 30 or **$86 per month**. Adjust
638
+ * this if you end up using more than 8 ACUs.
639
+ *
640
+ * The above are rough estimates for _us-east-1_, check out the
641
+ * [RDS Proxy pricing](https://aws.amazon.com/rds/proxy/pricing/) for more details.
642
+ *
643
+ * #### RDS Data API
644
+ *
645
+ * If you enable `dataApi`, you get charged an **additional** $0.35 per million requests for
646
+ * the first billion requests. After that, it's $0.20 per million requests.
647
+ *
648
+ * Check out the [RDS Data API pricing](https://aws.amazon.com/rds/aurora/pricing/#Data_API_costs)
649
+ * for more details.
650
+ */
651
+ export class Aurora extends Component implements Link.Linkable {
652
+ private cluster?: rds.Cluster;
653
+ private instance?: rds.ClusterInstance;
654
+ private secret?: secretsmanager.Secret;
655
+ private _password?: Output<string>;
656
+ private proxy?: Output<rds.Proxy | undefined>;
657
+ private dev?: {
658
+ enabled: boolean;
659
+ host: Output<string>;
660
+ port: Output<number>;
661
+ username: Output<string>;
662
+ password: Output<string>;
663
+ database: Output<string>;
664
+ };
665
+
666
+ constructor(name: string, args: AuroraArgs, opts?: ComponentResourceOptions) {
667
+ super(__pulumiType, name, args, opts);
668
+ const self = this;
669
+
670
+ if (args && "ref" in args) {
671
+ const ref = reference();
672
+ this.cluster = ref.cluster;
673
+ this.instance = ref.instance;
674
+ this._password = ref.password;
675
+ this.proxy = output(ref.proxy);
676
+ this.secret = ref.secret;
677
+ return;
678
+ }
679
+
680
+ const engine = output(args.engine);
681
+ const version = all([args.version, engine]).apply(
682
+ ([version, engine]) =>
683
+ version ?? { postgres: "17", mysql: "3.08.0" }[engine],
684
+ );
685
+ const username = all([args.username, engine]).apply(
686
+ ([username, engine]) =>
687
+ username ?? { postgres: "postgres", mysql: "root" }[engine],
688
+ );
689
+ const dbName = output(args.database).apply(
690
+ (name) => name ?? $app.name.replaceAll("-", "_"),
691
+ );
692
+ const dataApi = output(args.dataApi).apply((v) => v ?? false);
693
+ const scaling = normalizeScaling();
694
+ const replicas = normalizeReplicas();
695
+ const vpc = normalizeVpc();
696
+
697
+ const dev = registerDev();
698
+ if (dev?.enabled) {
699
+ this.dev = dev;
700
+ return;
701
+ }
702
+
703
+ const password = createPassword();
704
+ const secret = createSecret();
705
+ const subnetGroup = createSubnetGroup();
706
+ const instanceParameterGroup = createInstanceParameterGroup();
707
+ const clusterParameterGroup = createClusterParameterGroup();
708
+ const proxy = createProxy();
709
+ const cluster = createCluster();
710
+ const instance = createInstances();
711
+ createProxyTarget();
712
+
713
+ this.cluster = cluster;
714
+ this.instance = instance;
715
+ this.secret = secret;
716
+ this._password = password;
717
+ this.proxy = proxy;
718
+
719
+ function reference() {
720
+ const ref = args as unknown as AuroraRef;
721
+ const cluster = rds.Cluster.get(`${name}Cluster`, ref.id, undefined, {
722
+ parent: self,
723
+ });
724
+
725
+ const instance = rds.ClusterInstance.get(
726
+ `${name}Instance`,
727
+ rds
728
+ .getInstancesOutput(
729
+ {
730
+ filters: [
731
+ {
732
+ name: "db-cluster-id",
733
+ values: [cluster.id],
734
+ },
735
+ ],
736
+ },
737
+ { parent: self },
738
+ )
739
+ .instanceIdentifiers.apply((ids) => {
740
+ if (!ids.length) {
741
+ throw new VisibleError(
742
+ `Database instance not found in cluster ${cluster.id}`,
743
+ );
744
+ }
745
+ return ids[0];
746
+ }),
747
+ undefined,
748
+ { parent: self },
749
+ );
750
+
751
+ const secretId = cluster.tagsAll
752
+ .apply((tags) => tags?.["sst:ref:password"])
753
+ .apply((passwordTag) => {
754
+ if (!passwordTag)
755
+ throw new VisibleError(
756
+ `Failed to get password for Postgres ${name}.`,
757
+ );
758
+ return passwordTag;
759
+ });
760
+
761
+ const secret = secretsmanager.Secret.get(
762
+ `${name}ProxySecret`,
763
+ secretId,
764
+ undefined,
765
+ { parent: self },
766
+ );
767
+ const secretVersion = secretsmanager.getSecretVersionOutput(
768
+ { secretId },
769
+ { parent: self },
770
+ );
771
+ const password = $jsonParse(secretVersion.secretString).apply(
772
+ (v) => v.password as string,
773
+ );
774
+
775
+ const proxy = cluster.tagsAll
776
+ .apply((tags) => tags?.["sst:ref:proxy"])
777
+ .apply((proxyTag) =>
778
+ proxyTag
779
+ ? rds.Proxy.get(`${name}Proxy`, proxyTag, undefined, {
780
+ parent: self,
781
+ })
782
+ : undefined,
783
+ );
784
+
785
+ return { cluster, instance, proxy, password, secret };
786
+ }
787
+
788
+ function normalizeScaling() {
789
+ return output(args.scaling).apply((scaling) => {
790
+ const max = scaling?.max ?? "4 ACU";
791
+ const min = scaling?.min ?? "0 ACU";
792
+ const isAutoPauseEnabled = parseACU(min) === 0;
793
+ if (scaling?.pauseAfter && !isAutoPauseEnabled) {
794
+ throw new VisibleError(
795
+ `Cannot configure "pauseAfter" when the minimum ACU is not 0 for the "${name}" Aurora database.`,
796
+ );
797
+ }
798
+
799
+ return {
800
+ max,
801
+ min,
802
+ pauseAfter: isAutoPauseEnabled
803
+ ? scaling?.pauseAfter ?? "5 minutes"
804
+ : undefined,
805
+ };
806
+ });
807
+ }
808
+
809
+ function normalizeReplicas() {
810
+ return output(args.replicas ?? 0).apply((replicas) => {
811
+ if (replicas > 15) {
812
+ throw new VisibleError(
813
+ `Cannot create more than 15 read-only replicas for the "${name}" Aurora database.`,
814
+ );
815
+ }
816
+ return replicas;
817
+ });
818
+ }
819
+
820
+ function normalizeVpc() {
821
+ // "vpc" is a Vpc component
822
+ if (args.vpc instanceof Vpc) {
823
+ return {
824
+ subnets: args.vpc.privateSubnets,
825
+ securityGroups: args.vpc.securityGroups,
826
+ };
827
+ }
828
+
829
+ // "vpc" is object
830
+ return output(args.vpc);
831
+ }
832
+
833
+ function registerDev() {
834
+ if (!args.dev) return undefined;
835
+
836
+ if (
837
+ $dev &&
838
+ args.dev.password === undefined &&
839
+ args.password === undefined
840
+ ) {
841
+ throw new VisibleError(
842
+ `You must provide the password to connect to your locally running database either by setting the "dev.password" or by setting the top-level "password" property.`,
843
+ );
844
+ }
845
+
846
+ const dev = {
847
+ enabled: $dev,
848
+ host: output(args.dev.host ?? "localhost"),
849
+ port: all([args.dev.port, engine]).apply(
850
+ ([port, engine]) => port ?? { postgres: 5432, mysql: 3306 }[engine],
851
+ ),
852
+ username: args.dev.username ? output(args.dev.username) : username,
853
+ password: output(args.dev.password ?? args.password ?? ""),
854
+ database: args.dev.database ? output(args.dev.database) : dbName,
855
+ };
856
+
857
+ new DevCommand(`${name}Dev`, {
858
+ dev: {
859
+ title: name,
860
+ autostart: true,
861
+ command: `sst print-and-not-quit`,
862
+ },
863
+ environment: {
864
+ SST_DEV_COMMAND_MESSAGE: interpolate`Make sure your local database is using:
865
+
866
+ username: "${dev.username}"
867
+ password: "${dev.password}"
868
+ database: "${dev.database}"
869
+
870
+ Listening on "${dev.host}:${dev.port}"...`,
871
+ },
872
+ });
873
+
874
+ return dev;
875
+ }
876
+
877
+ function createPassword() {
878
+ return args.password
879
+ ? output(args.password)
880
+ : new RandomPassword(
881
+ `${name}Password`,
882
+ {
883
+ length: 32,
884
+ special: false,
885
+ },
886
+ { parent: self },
887
+ ).result;
888
+ }
889
+
890
+ function createSecret() {
891
+ const secret = new secretsmanager.Secret(
892
+ `${name}ProxySecret`,
893
+ {
894
+ recoveryWindowInDays: 0,
895
+ },
896
+ { parent: self },
897
+ );
898
+
899
+ new secretsmanager.SecretVersion(
900
+ `${name}ProxySecretVersion`,
901
+ {
902
+ secretId: secret.id,
903
+ secretString: jsonStringify({ username, password }),
904
+ },
905
+ { parent: self },
906
+ );
907
+
908
+ return secret;
909
+ }
910
+
911
+ function createSubnetGroup() {
912
+ return new rds.SubnetGroup(
913
+ ...transform(
914
+ args.transform?.subnetGroup,
915
+ `${name}SubnetGroup`,
916
+ {
917
+ subnetIds: vpc.subnets,
918
+ },
919
+ { parent: self },
920
+ ),
921
+ );
922
+ }
923
+
924
+ function createInstanceParameterGroup() {
925
+ return new rds.ParameterGroup(
926
+ ...transform(
927
+ args.transform?.instanceParameterGroup,
928
+ `${name}ParameterGroup`,
929
+ {
930
+ family: all([engine, version]).apply(([engine, version]) => {
931
+ if (engine === "postgres")
932
+ return `aurora-postgresql${version.split(".")[0]}`;
933
+ return version.startsWith("2")
934
+ ? `aurora-mysql5.7`
935
+ : `aurora-mysql8.0`;
936
+ }),
937
+ parameters: [],
938
+ },
939
+ {
940
+ parent: self,
941
+ ignoreChanges: args.version ? [] : ["family"],
942
+ // Necessary for the subnet to be deleted after the instance.
943
+ // This is either a Pulumi bug or an undocumented feature.
944
+ deleteBeforeReplace: false,
945
+ },
946
+ ),
947
+ );
948
+ }
949
+
950
+ function createClusterParameterGroup() {
951
+ return new rds.ClusterParameterGroup(
952
+ ...transform(
953
+ args.transform?.clusterParameterGroup,
954
+ `${name}ClusterParameterGroup`,
955
+ {
956
+ family: all([engine, version]).apply(([engine, version]) => {
957
+ if (engine === "postgres")
958
+ return `aurora-postgresql${version.split(".")[0]}`;
959
+ return version.startsWith("2")
960
+ ? `aurora-mysql5.7`
961
+ : `aurora-mysql8.0`;
962
+ }),
963
+ parameters: [],
964
+ },
965
+ {
966
+ parent: self,
967
+ ignoreChanges: args.version ? [] : ["family"],
968
+ // Necessary for the subnet to be deleted after the instance.
969
+ // This is either a Pulumi bug or an undocumented feature.
970
+ deleteBeforeReplace: false,
971
+ },
972
+ ),
973
+ );
974
+ }
975
+
976
+ function createCluster() {
977
+ return new rds.Cluster(
978
+ ...transform(
979
+ args.transform?.cluster,
980
+ `${name}Cluster`,
981
+ {
982
+ engine: engine.apply((engine) =>
983
+ engine === "postgres"
984
+ ? rds.EngineType.AuroraPostgresql
985
+ : rds.EngineType.AuroraMysql,
986
+ ),
987
+ engineMode: "provisioned",
988
+ engineVersion: all([engine, version]).apply(([engine, version]) => {
989
+ if (engine === "postgres") return version;
990
+
991
+ return version.startsWith("2")
992
+ ? `5.7.mysql_aurora.${version}`
993
+ : `8.0.mysql_aurora.${version}`;
994
+ }),
995
+ databaseName: dbName,
996
+ masterUsername: username,
997
+ masterPassword: password,
998
+ dbClusterParameterGroupName: clusterParameterGroup.name,
999
+ dbInstanceParameterGroupName: instanceParameterGroup.name,
1000
+ serverlessv2ScalingConfiguration: scaling.apply((scaling) => ({
1001
+ maxCapacity: parseACU(scaling.max),
1002
+ minCapacity: parseACU(scaling.min),
1003
+ secondsUntilAutoPause: scaling.pauseAfter
1004
+ ? toSeconds(scaling.pauseAfter)
1005
+ : undefined,
1006
+ })),
1007
+ applyImmediately: true,
1008
+ allowMajorVersionUpgrade: true,
1009
+ skipFinalSnapshot: true,
1010
+ storageEncrypted: true,
1011
+ enableHttpEndpoint: dataApi,
1012
+ dbSubnetGroupName: subnetGroup?.name,
1013
+ vpcSecurityGroupIds: vpc.securityGroups,
1014
+ tags: proxy.apply((proxy) => ({
1015
+ "sst:ref:password": secret.id,
1016
+ ...(proxy ? { "sst:ref:proxy": proxy.id } : {}),
1017
+ })),
1018
+ },
1019
+ {
1020
+ parent: self,
1021
+ ignoreChanges: args.version ? [] : ["engineVersion"],
1022
+ },
1023
+ ),
1024
+ );
1025
+ }
1026
+
1027
+ function createInstances() {
1028
+ const props = {
1029
+ clusterIdentifier: cluster.id,
1030
+ instanceClass: "db.serverless",
1031
+ engine: cluster.engine.apply((v) => v as rds.EngineType),
1032
+ engineVersion: cluster.engineVersion,
1033
+ dbSubnetGroupName: cluster.dbSubnetGroupName,
1034
+ dbParameterGroupName: instanceParameterGroup.name,
1035
+ autoMinorVersionUpgrade: false,
1036
+ };
1037
+
1038
+ // Create primary instance
1039
+ const instance = new rds.ClusterInstance(
1040
+ ...transform(args.transform?.instance, `${name}Instance`, props, {
1041
+ parent: self,
1042
+ }),
1043
+ );
1044
+
1045
+ // Create replicas
1046
+ replicas.apply((replicas) => {
1047
+ for (let i = 0; i < replicas; i++) {
1048
+ new rds.ClusterInstance(
1049
+ ...transform(
1050
+ args.transform?.instance,
1051
+ `${name}Replica${i}`,
1052
+ {
1053
+ ...props,
1054
+ promotionTier: 15,
1055
+ },
1056
+ {
1057
+ parent: self,
1058
+ ignoreChanges: args.version ? [] : ["engineVersion"],
1059
+ },
1060
+ ),
1061
+ );
1062
+ }
1063
+ });
1064
+
1065
+ return instance;
1066
+ }
1067
+
1068
+ function createProxy() {
1069
+ return all([args.proxy]).apply(([proxy]) => {
1070
+ if (!proxy) return;
1071
+
1072
+ const credentials = proxy === true ? [] : proxy.credentials ?? [];
1073
+
1074
+ // Create secrets
1075
+ const secrets = credentials.map((credential) => {
1076
+ const secret = new secretsmanager.Secret(
1077
+ `${name}ProxySecret${credential.username}`,
1078
+ {
1079
+ recoveryWindowInDays: 0,
1080
+ },
1081
+ { parent: self },
1082
+ );
1083
+
1084
+ new secretsmanager.SecretVersion(
1085
+ `${name}ProxySecretVersion${credential.username}`,
1086
+ {
1087
+ secretId: secret.id,
1088
+ secretString: jsonStringify({
1089
+ username: credential.username,
1090
+ password: credential.password,
1091
+ }),
1092
+ },
1093
+ { parent: self },
1094
+ );
1095
+ return secret;
1096
+ });
1097
+
1098
+ const role = new iam.Role(
1099
+ `${name}ProxyRole`,
1100
+ {
1101
+ assumeRolePolicy: iam.assumeRolePolicyForPrincipal({
1102
+ Service: "rds.amazonaws.com",
1103
+ }),
1104
+ inlinePolicies: [
1105
+ {
1106
+ name: "inline",
1107
+ policy: iam.getPolicyDocumentOutput({
1108
+ statements: [
1109
+ {
1110
+ actions: ["secretsmanager:GetSecretValue"],
1111
+ resources: [secret.arn, ...secrets.map((s) => s.arn)],
1112
+ },
1113
+ ],
1114
+ }).json,
1115
+ },
1116
+ ],
1117
+ },
1118
+ { parent: self },
1119
+ );
1120
+
1121
+ const lookup = new RdsRoleLookup(
1122
+ `${name}ProxyRoleLookup`,
1123
+ { name: "AWSServiceRoleForRDS" },
1124
+ { parent: self },
1125
+ );
1126
+
1127
+ return new rds.Proxy(
1128
+ ...transform(
1129
+ args.transform?.proxy,
1130
+ `${name}Proxy`,
1131
+ {
1132
+ engineFamily: engine.apply((engine) =>
1133
+ engine === "postgres" ? "POSTGRESQL" : "MYSQL",
1134
+ ),
1135
+ auths: [
1136
+ {
1137
+ authScheme: "SECRETS",
1138
+ iamAuth: "DISABLED",
1139
+ secretArn: secret.arn,
1140
+ },
1141
+ ...secrets.map((s) => ({
1142
+ authScheme: "SECRETS",
1143
+ iamAuth: "DISABLED",
1144
+ secretArn: s.arn,
1145
+ })),
1146
+ ],
1147
+ roleArn: role.arn,
1148
+ vpcSubnetIds: vpc.subnets,
1149
+ },
1150
+ { parent: self, dependsOn: [lookup] },
1151
+ ),
1152
+ );
1153
+ });
1154
+ }
1155
+
1156
+ function createProxyTarget() {
1157
+ proxy.apply((proxy) => {
1158
+ if (!proxy) return;
1159
+
1160
+ const targetGroup = new rds.ProxyDefaultTargetGroup(
1161
+ `${name}ProxyTargetGroup`,
1162
+ {
1163
+ dbProxyName: proxy.name,
1164
+ },
1165
+ { parent: self },
1166
+ );
1167
+
1168
+ new rds.ProxyTarget(
1169
+ `${name}ProxyTarget`,
1170
+ {
1171
+ dbProxyName: proxy.name,
1172
+ targetGroupName: targetGroup.name,
1173
+ dbClusterIdentifier: cluster.clusterIdentifier,
1174
+ },
1175
+ { parent: self },
1176
+ );
1177
+ });
1178
+ }
1179
+ }
1180
+
1181
+ /**
1182
+ * The ID of the RDS Cluster.
1183
+ */
1184
+ public get id() {
1185
+ if (this.dev?.enabled) return output("placeholder");
1186
+ return this.cluster!.id;
1187
+ }
1188
+
1189
+ /**
1190
+ * The ARN of the RDS Cluster.
1191
+ */
1192
+ public get clusterArn() {
1193
+ if (this.dev?.enabled) return output("placeholder");
1194
+ return this.cluster!.arn;
1195
+ }
1196
+
1197
+ /**
1198
+ * The ARN of the master user secret.
1199
+ */
1200
+ public get secretArn() {
1201
+ if (this.dev?.enabled) return output("placeholder");
1202
+ return this.secret!.arn;
1203
+ }
1204
+
1205
+ /** The username of the master user. */
1206
+ public get username() {
1207
+ if (this.dev?.enabled) return this.dev.username;
1208
+ return this.cluster!.masterUsername;
1209
+ }
1210
+
1211
+ /** The password of the master user. */
1212
+ public get password() {
1213
+ if (this.dev?.enabled) return this.dev.password;
1214
+ return this._password!;
1215
+ }
1216
+
1217
+ /**
1218
+ * The name of the database.
1219
+ */
1220
+ public get database() {
1221
+ if (this.dev?.enabled) return this.dev.database;
1222
+ return this.cluster!.databaseName;
1223
+ }
1224
+
1225
+ /**
1226
+ * The port of the database.
1227
+ */
1228
+ public get port() {
1229
+ if (this.dev?.enabled) return this.dev.port;
1230
+ return this.instance!.port;
1231
+ }
1232
+
1233
+ /**
1234
+ * The host of the database.
1235
+ */
1236
+ public get host() {
1237
+ if (this.dev?.enabled) return this.dev.host;
1238
+ return all([this.cluster!.endpoint, this.proxy!]).apply(
1239
+ ([endpoint, proxy]) => proxy?.endpoint ?? output(endpoint.split(":")[0]),
1240
+ );
1241
+ }
1242
+
1243
+ /**
1244
+ * The reader endpoint of the database.
1245
+ */
1246
+ public get reader() {
1247
+ if (this.dev?.enabled) return this.dev.host;
1248
+ return all([this.cluster!.readerEndpoint, this.proxy!]).apply(
1249
+ ([endpoint, proxy]) => {
1250
+ if (proxy) {
1251
+ throw new VisibleError(
1252
+ "Reader endpoint is not currently supported for RDS Proxy. Please contact us on Discord or open a GitHub issue.",
1253
+ );
1254
+ }
1255
+ return output(endpoint.split(":")[0]);
1256
+ },
1257
+ );
1258
+ }
1259
+
1260
+ public get nodes() {
1261
+ return {
1262
+ cluster: this.cluster,
1263
+ instance: this.instance,
1264
+ };
1265
+ }
1266
+
1267
+ /** @internal */
1268
+ public getSSTLink() {
1269
+ return {
1270
+ properties: {
1271
+ clusterArn: this.clusterArn,
1272
+ secretArn: this.secretArn,
1273
+ database: this.database,
1274
+ username: this.username,
1275
+ password: this.password,
1276
+ port: this.port,
1277
+ host: this.host,
1278
+ reader: this.dev?.enabled
1279
+ ? this.dev.host
1280
+ : all([this.cluster!.readerEndpoint, this.proxy!]).apply(
1281
+ ([endpoint, proxy]) => {
1282
+ if (proxy) return output(undefined);
1283
+ return output(endpoint.split(":")[0]);
1284
+ },
1285
+ ),
1286
+ },
1287
+ include: this.dev?.enabled
1288
+ ? []
1289
+ : [
1290
+ permission({
1291
+ actions: ["secretsmanager:GetSecretValue"],
1292
+ resources: [this.secretArn],
1293
+ }),
1294
+ permission({
1295
+ actions: [
1296
+ "rds-data:BatchExecuteStatement",
1297
+ "rds-data:BeginTransaction",
1298
+ "rds-data:CommitTransaction",
1299
+ "rds-data:ExecuteStatement",
1300
+ "rds-data:RollbackTransaction",
1301
+ ],
1302
+ resources: [this.clusterArn],
1303
+ }),
1304
+ ],
1305
+ };
1306
+ }
1307
+
1308
+ /**
1309
+ * Reference an existing Aurora cluster with its RDS cluster ID. This is useful when you
1310
+ * create a Aurora cluster in one stage and want to share it in another. It avoids having to
1311
+ * create a new Aurora cluster in the other stage.
1312
+ *
1313
+ * :::tip
1314
+ * You can use the `static get` method to share Aurora clusters across stages.
1315
+ * :::
1316
+ *
1317
+ * @param name The name of the component.
1318
+ * @param id The ID of the existing Aurora cluster.
1319
+ * @param opts Resource options.
1320
+ *
1321
+ * @example
1322
+ * Imagine you create a cluster in the `dev` stage. And in your personal stage `frank`,
1323
+ * instead of creating a new cluster, you want to share the same cluster from `dev`.
1324
+ *
1325
+ * ```ts title="sst.config.ts"
1326
+ * const database = $app.stage === "frank"
1327
+ * ? sst.aws.Aurora.get("MyDatabase", "app-dev-mydatabase")
1328
+ * : new sst.aws.Aurora("MyDatabase");
1329
+ * ```
1330
+ *
1331
+ * Here `app-dev-mydatabase` is the ID of the cluster created in the `dev` stage.
1332
+ * You can find this by outputting the cluster ID in the `dev` stage.
1333
+ *
1334
+ * ```ts title="sst.config.ts"
1335
+ * return database.id;
1336
+ * ```
1337
+ */
1338
+ public static get(
1339
+ name: string,
1340
+ id: Input<string>,
1341
+ opts?: ComponentResourceOptions,
1342
+ ) {
1343
+ return new Aurora(
1344
+ name,
1345
+ {
1346
+ ref: true,
1347
+ id,
1348
+ } as unknown as AuroraArgs,
1349
+ opts,
1350
+ );
1351
+ }
1352
+ }
1353
+
1354
+ const __pulumiType = "sst:aws:Aurora";
1355
+ // @ts-expect-error
1356
+ Aurora.__pulumiType = __pulumiType;