@sst-community/sst 4.20.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,1078 @@
1
+ import {
2
+ all,
3
+ ComponentResourceOptions,
4
+ interpolate,
5
+ jsonStringify,
6
+ Output,
7
+ output,
8
+ } from "@pulumi/pulumi";
9
+ import { RandomPassword } from "@pulumi/random";
10
+ import { Component, Transform, transform } from "../component.js";
11
+ import { Link } from "../link.js";
12
+ import { Input } from "../input.js";
13
+ import { elasticache, secretsmanager } from "@pulumi/aws";
14
+ import { Vpc } from "./vpc.js";
15
+ import { toGBs } from "../size.js";
16
+ import { VisibleError } from "../error.js";
17
+ import { DevCommand } from "../experimental/dev-command.js";
18
+ import { Redis as RedisV1 } from "./redis-v1";
19
+
20
+ export interface RedisArgs {
21
+ /**
22
+ * The Redis engine to use. The following engines are supported:
23
+ *
24
+ * - `"redis"`: The open-source version of Redis.
25
+ * - `"valkey"`: [Valkey](https://valkey.io/) is a Redis-compatible in-memory key-value store.
26
+ *
27
+ * :::danger
28
+ * Changing the engine will cause the database to be destroyed and recreated.
29
+ * :::
30
+ *
31
+ * @default `"redis"`
32
+ */
33
+ engine?: Input<"redis" | "valkey">;
34
+ /**
35
+ * The version of Redis.
36
+ *
37
+ * The default is `"7.1"` for the `"redis"` engine and `"7.2"` for the `"valkey"` engine.
38
+ *
39
+ * Check out the [supported versions](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/supported-engine-versions.html).
40
+ *
41
+ * :::caution
42
+ * Changing the version will cause the instance to restart on the next `sst deploy`,
43
+ * causing downtime. Learn more about [upgrading databases](/docs/upgrade-aws-databases/).
44
+ * :::
45
+ *
46
+ * @default `"7.1"` for Redis, `"7.2"` for Valkey
47
+ * @example
48
+ * ```js
49
+ * {
50
+ * version: "6.2"
51
+ * }
52
+ * ```
53
+ */
54
+ version?: Input<string>;
55
+ /**
56
+ * The type of instance to use for the nodes of the Redis instance. Check out the [supported instance types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html).
57
+ *
58
+ * :::caution
59
+ * Changing the instance type will cause the instance to restart on the next `sst deploy`,
60
+ * causing downtime. Learn more about [upgrading databases](/docs/upgrade-aws-databases/).
61
+ * :::
62
+ *
63
+ * @default `"t4g.micro"`
64
+ * @example
65
+ * ```js
66
+ * {
67
+ * instance: "m7g.xlarge"
68
+ * }
69
+ * ```
70
+ */
71
+ instance?: Input<string>;
72
+ /**
73
+ * @deprecated The `cluster.nodes` prop is now the recommended way to configure the
74
+ * number of nodes in the cluster.
75
+ */
76
+ nodes?: Input<number>;
77
+ /**
78
+ * Configure cluster mode for Redis.
79
+ *
80
+ * @default `{ nodes: 1 }`
81
+ * @example
82
+ * Disable cluster mode.
83
+ * ```js
84
+ * {
85
+ * cluster: false
86
+ * }
87
+ * ```
88
+ */
89
+ cluster?: Input<
90
+ | boolean
91
+ | {
92
+ /**
93
+ * The number of nodes to use for the Redis cluster.
94
+ *
95
+ * @default `1`
96
+ * @example
97
+ * ```js
98
+ * {
99
+ * nodes: 4
100
+ * }
101
+ * ```
102
+ */
103
+ nodes: Input<number>;
104
+ }
105
+ >;
106
+ /**
107
+ * Key-value pairs that define custom parameters for the Redis's parameter group.
108
+ * These values override the defaults set by AWS.
109
+ *
110
+ * @example
111
+ * ```js
112
+ * {
113
+ * parameters: {
114
+ * "maxmemory-policy": "noeviction"
115
+ * }
116
+ * }
117
+ * ```
118
+ */
119
+ parameters?: Input<Record<string, Input<string>>>;
120
+ /**
121
+ * Use [Amazon ElastiCache Serverless](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/WhatIs.serverless.html)
122
+ * instead of a provisioned cluster. It scales with your usage and you pay for the data
123
+ * stored and the compute you use.
124
+ *
125
+ * A serverless cache needs `version` 7 or later, which the defaults are. A lower `version`
126
+ * fails with an error. Only the major part of `version` is used, so `"7.2"` is sent as `"7"`
127
+ * and ElastiCache picks the minor version.
128
+ *
129
+ * When this is set, `instance`, `cluster`, `nodes` and `parameters` are ignored, and
130
+ * `transform.subnetGroup`, `transform.parameterGroup` and `transform.cluster` don't run.
131
+ * Use `transform.serverlessCache` instead. The password is set through an ElastiCache user
132
+ * and user group that SST creates for the cache.
133
+ *
134
+ * :::danger
135
+ * Turning this on or off for an existing Redis replaces it with a different kind of cache,
136
+ * and its data is lost.
137
+ * :::
138
+ *
139
+ * A serverless cache always uses TLS. By default SST also gives it a generated password for
140
+ * the `default` user, like a provisioned cluster, so the linked resource has the same `host`,
141
+ * `port`, `username` and `password`, and the code that connects to it doesn't change. Turn it
142
+ * off with `password: false`.
143
+ *
144
+ * :::note
145
+ * `Redis.get` only works with provisioned clusters.
146
+ * :::
147
+ *
148
+ * @default `false`
149
+ * @example
150
+ * Use the default limits.
151
+ * ```js
152
+ * {
153
+ * serverless: true
154
+ * }
155
+ * ```
156
+ *
157
+ * Set your own limits. These cap how far the cache scales, and so what it can cost.
158
+ * ```js
159
+ * {
160
+ * serverless: {
161
+ * storage: { maximum: "100 GB" },
162
+ * ecpuPerSecond: { maximum: 50000 }
163
+ * }
164
+ * }
165
+ * ```
166
+ */
167
+ serverless?:
168
+ | boolean
169
+ | {
170
+ /**
171
+ * Protect the cache with a password. SST generates one for the `default` user and links
172
+ * it as `password`, like a provisioned cluster. Without a password, anything that can
173
+ * reach the cache inside the VPC can read and write it.
174
+ *
175
+ * Set this to `false` for a cache with no password. Then the link has `host`, `port` and
176
+ * `username`, and no `password`.
177
+ *
178
+ * Linked resources get the password, and `sst shell` has it in `Resource.MyRedis.password`.
179
+ *
180
+ * With a password, the deploy role needs these ElastiCache actions, on top of the ones for
181
+ * the cache: `elasticache:CreateUser`, `elasticache:DescribeUsers`, `elasticache:DeleteUser`,
182
+ * `elasticache:CreateUserGroup`, `elasticache:DescribeUserGroups` and
183
+ * `elasticache:DeleteUserGroup`. Changing a setting later may also call the matching
184
+ * `Modify` actions.
185
+ *
186
+ * :::danger
187
+ * Turning this on or off for an existing cache changes how clients connect, so apps
188
+ * that were linked before have to be deployed again.
189
+ * :::
190
+ *
191
+ * @default `true`
192
+ */
193
+ password?: boolean;
194
+ /**
195
+ * The amount of data the cache can store, in whole GB. A fraction is rounded up. A
196
+ * `minimum` and a `maximum` have to be at least `1 GB`, and the `minimum` can't be above
197
+ * the `maximum`.
198
+ *
199
+ * @default `{ maximum: "10 GB" }`
200
+ * @example
201
+ * ```js
202
+ * {
203
+ * storage: { minimum: "1 GB", maximum: "100 GB" }
204
+ * }
205
+ * ```
206
+ */
207
+ storage?: Input<{
208
+ /**
209
+ * The smallest amount of storage the cache keeps available.
210
+ */
211
+ minimum?: Input<`${number} GB`>;
212
+ /**
213
+ * The most data the cache can store.
214
+ */
215
+ maximum?: Input<`${number} GB`>;
216
+ }>;
217
+ /**
218
+ * The ElastiCache Processing Units (ECPU) the cache can use per second. A `minimum` and
219
+ * a `maximum` have to be at least `1`, and the `minimum` can't be above the `maximum`.
220
+ *
221
+ * @default `{ maximum: 5000 }`
222
+ * @example
223
+ * ```js
224
+ * {
225
+ * ecpuPerSecond: { minimum: 1000, maximum: 50000 }
226
+ * }
227
+ * ```
228
+ */
229
+ ecpuPerSecond?: Input<{
230
+ /**
231
+ * The smallest number of ECPUs per second the cache keeps available.
232
+ */
233
+ minimum?: Input<number>;
234
+ /**
235
+ * The most ECPUs per second the cache can use.
236
+ */
237
+ maximum?: Input<number>;
238
+ }>;
239
+ };
240
+ /**
241
+ * The VPC to use for the Redis instance.
242
+ *
243
+ * @example
244
+ * Create a VPC component.
245
+ *
246
+ * ```js
247
+ * const myVpc = new sst.aws.Vpc("MyVpc");
248
+ * ```
249
+ *
250
+ * And pass it in.
251
+ *
252
+ * ```js
253
+ * {
254
+ * vpc: myVpc
255
+ * }
256
+ * ```
257
+ *
258
+ * Or pass in a custom VPC configuration.
259
+ *
260
+ * ```js
261
+ * {
262
+ * vpc: {
263
+ * subnets: ["subnet-0db7376a7ad4db5fd ", "subnet-06fc7ee8319b2c0ce"],
264
+ * securityGroups: ["sg-0399348378a4c256c"]
265
+ * }
266
+ * }
267
+ * ```
268
+ */
269
+ vpc:
270
+ | Vpc
271
+ | Input<{
272
+ /**
273
+ * A list of subnet IDs in the VPC to deploy the Redis instance in.
274
+ */
275
+ subnets: Input<Input<string>[]>;
276
+ /**
277
+ * A list of VPC security group IDs.
278
+ */
279
+ securityGroups: Input<Input<string>[]>;
280
+ }>;
281
+ /**
282
+ * Configure how this component works in `sst dev`.
283
+ *
284
+ * By default, your Redis instance is deployed in `sst dev`. But if you want to instead
285
+ * connect to a locally running Redis server, you can configure the `dev` prop.
286
+ *
287
+ * :::note
288
+ * By default, this creates a new Redis ElastiCache instance even in `sst dev`.
289
+ * :::
290
+ *
291
+ * This will skip deploying a Redis ElastiCache instance and link to the locally running
292
+ * Redis server instead.
293
+ *
294
+ * @example
295
+ *
296
+ * Setting the `dev` prop also means that any linked resources will connect to the right
297
+ * Redis instance both in `sst dev` and `sst deploy`.
298
+ *
299
+ * ```ts
300
+ * {
301
+ * dev: {
302
+ * host: "localhost",
303
+ * port: 6379
304
+ * }
305
+ * }
306
+ * ```
307
+ */
308
+ dev?: {
309
+ /**
310
+ * The host of the local Redis server to connect to when running in dev.
311
+ * @default `"localhost"`
312
+ */
313
+ host?: Input<string>;
314
+ /**
315
+ * The port of the local Redis server when running in dev.
316
+ * @default `6379`
317
+ */
318
+ port?: Input<number>;
319
+ /**
320
+ * The username of the local Redis server to connect to when running in dev.
321
+ * @default `"default"`
322
+ */
323
+ username?: Input<string>;
324
+ /**
325
+ * The password of the local Redis server to connect to when running in dev.
326
+ * @default No password
327
+ */
328
+ password?: Input<string>;
329
+ };
330
+ /**
331
+ * [Transform](/docs/components#transform) how this component creates its underlying
332
+ * resources.
333
+ */
334
+ transform?: {
335
+ /**
336
+ * Transform the Redis subnet group.
337
+ */
338
+ subnetGroup?: Transform<elasticache.SubnetGroupArgs>;
339
+ /**
340
+ * Transform the Redis parameter group.
341
+ */
342
+ parameterGroup?: Transform<elasticache.ParameterGroupArgs>;
343
+ /**
344
+ * Transform the Redis cluster.
345
+ */
346
+ cluster?: Transform<elasticache.ReplicationGroupArgs>;
347
+ /**
348
+ * Transform the Redis serverless cache.
349
+ */
350
+ serverlessCache?: Transform<elasticache.ServerlessCacheArgs>;
351
+ };
352
+ }
353
+
354
+ interface RedisRef {
355
+ ref: boolean;
356
+ clusterId: Input<string>;
357
+ }
358
+
359
+ /**
360
+ * The `Redis` component lets you add a Redis cluster to your app using
361
+ * [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html).
362
+ *
363
+ * @example
364
+ *
365
+ * #### Create the cluster
366
+ *
367
+ * ```js title="sst.config.ts"
368
+ * const vpc = new sst.aws.Vpc("MyVpc");
369
+ * const redis = new sst.aws.Redis("MyRedis", { vpc });
370
+ * ```
371
+ *
372
+ * #### Create a serverless Redis
373
+ *
374
+ * You can also create a serverless Redis instance that automatically scales based on usage.
375
+ * Check out the [serverless example](/docs/examples/#aws-redis-serverless). It connects with the same
376
+ * `username` and `password` as a provisioned Redis.
377
+ *
378
+ * ```js title="sst.config.ts"
379
+ * const vpc = new sst.aws.Vpc("MyVpc");
380
+ * const redis = new sst.aws.Redis("MyRedis", {
381
+ * vpc,
382
+ * serverless: true
383
+ * });
384
+ * ```
385
+ *
386
+ * Configure serverless limits.
387
+ *
388
+ * ```js title="sst.config.ts"
389
+ * const redis = new sst.aws.Redis("MyRedis", {
390
+ * vpc,
391
+ * serverless: {
392
+ * storage: { maximum: "100 GB" },
393
+ * ecpuPerSecond: { maximum: 50000 }
394
+ * }
395
+ * });
396
+ * ```
397
+ *
398
+ * #### Link to a resource
399
+ *
400
+ * You can link your cluster to other resources, like a function or your Next.js app.
401
+ *
402
+ * ```ts title="sst.config.ts"
403
+ * new sst.aws.Nextjs("MyWeb", {
404
+ * link: [redis],
405
+ * vpc
406
+ * });
407
+ * ```
408
+ *
409
+ * Once linked, you can connect to it from your function code.
410
+ *
411
+ * ```ts title="app/page.tsx" {1,6,7,12,13}
412
+ * import { Resource } from "sst";
413
+ * import { Cluster } from "ioredis";
414
+ *
415
+ * const client = new Cluster(
416
+ * [{
417
+ * host: Resource.MyRedis.host,
418
+ * port: Resource.MyRedis.port
419
+ * }],
420
+ * {
421
+ * redisOptions: {
422
+ * tls: { checkServerIdentity: () => undefined },
423
+ * username: Resource.MyRedis.username,
424
+ * password: Resource.MyRedis.password
425
+ * }
426
+ * }
427
+ * );
428
+ * ```
429
+ *
430
+ * #### Running locally
431
+ *
432
+ * By default, your Redis cluster is deployed in `sst dev`. But let's say you are running Redis
433
+ * locally.
434
+ *
435
+ * ```bash
436
+ * docker run \
437
+ * --rm \
438
+ * -p 6379:6379 \
439
+ * -v $(pwd)/.sst/storage/redis:/data \
440
+ * redis:latest
441
+ * ```
442
+ *
443
+ * You can connect to it in `sst dev` by configuring the `dev` prop.
444
+ *
445
+ * ```ts title="sst.config.ts" {3-6}
446
+ * const redis = new sst.aws.Redis("MyRedis", {
447
+ * vpc,
448
+ * dev: {
449
+ * host: "localhost",
450
+ * port: 6379
451
+ * }
452
+ * });
453
+ * ```
454
+ *
455
+ * This will skip deploying a Redis ElastiCache cluster and link to the locally running Redis
456
+ * server instead. [Check out the full example](/docs/examples/#aws-redis-local).
457
+ *
458
+ * ---
459
+ *
460
+ * ### Cost
461
+ *
462
+ * By default this component uses _On-demand nodes_ with a single `cache.t4g.micro` instance.
463
+ *
464
+ * The default `redis` engine costs $0.016 per hour. That works out to $0.016 x 24 x 30 or **$12 per month**.
465
+ *
466
+ * If the `valkey` engine is used, the cost is $0.0128 per hour. That works out to $0.0128 x 24 x 30 or **$9 per month**.
467
+ *
468
+ * Adjust this for the `instance` type and number of `nodes` you are using.
469
+ *
470
+ * With `serverless`, you pay for the data stored and the ECPUs used instead. A serverless cache
471
+ * is billed for at least 1 GB of storage, even when idle, and setting a `minimum` raises that floor.
472
+ * The `maximum` limits cap what it can cost. Check out the
473
+ * [ElastiCache Serverless pricing](https://aws.amazon.com/elasticache/pricing/).
474
+ *
475
+ * The above are rough estimates for _us-east-1_, check out the
476
+ * [ElastiCache pricing](https://aws.amazon.com/elasticache/pricing/) for more details.
477
+ */
478
+ export class Redis extends Component implements Link.Linkable {
479
+ private cluster?: Output<elasticache.ReplicationGroup>;
480
+ private serverlessCache?: elasticache.ServerlessCache;
481
+ private _authToken?: Output<string>;
482
+ private dev?: {
483
+ enabled: boolean;
484
+ host: Output<string>;
485
+ port: Output<number>;
486
+ username: Output<string>;
487
+ password?: Output<string>;
488
+ };
489
+ public static v1 = RedisV1;
490
+
491
+ constructor(name: string, args: RedisArgs, opts?: ComponentResourceOptions) {
492
+ super(__pulumiType, name, args, opts);
493
+ const _version = 2;
494
+ const self = this;
495
+
496
+ if (args && "ref" in args) {
497
+ const ref = reference();
498
+ this.cluster = output(ref.cluster);
499
+ this._authToken = ref.authToken;
500
+ return;
501
+ }
502
+
503
+ registerVersion();
504
+ const engine = output(args.engine).apply((v) => v ?? "redis");
505
+ const version = all([engine, args.version]).apply(
506
+ ([engine, v]) => v ?? (engine === "redis" ? "7.1" : "7.2"),
507
+ );
508
+
509
+ const dev = registerDev();
510
+ if (dev?.enabled) {
511
+ this.dev = dev;
512
+ return;
513
+ }
514
+
515
+ const vpc = normalizeVpc();
516
+ const serverless = normalizeServerless();
517
+ if (serverless) {
518
+ const auth = serverless.password ? createServerlessAuth() : undefined;
519
+ this._authToken = auth?.password;
520
+ this.serverlessCache = createServerlessCache(serverless, auth?.userGroup);
521
+ return;
522
+ }
523
+ const instance = output(args.instance).apply((v) => v ?? "t4g.micro");
524
+ const argsCluster = normalizeCluster();
525
+
526
+ const { authToken, secret } = createAuthToken();
527
+ this._authToken = authToken;
528
+
529
+ const subnetGroup = createSubnetGroup();
530
+ const parameterGroup = createParameterGroup();
531
+ const cluster = createCluster();
532
+
533
+ this.cluster = cluster;
534
+
535
+ function reference() {
536
+ const ref = args as unknown as RedisRef;
537
+ const cluster = elasticache.ReplicationGroup.get(
538
+ `${name}Cluster`,
539
+ ref.clusterId,
540
+ undefined,
541
+ { parent: self },
542
+ );
543
+
544
+ const input = cluster.tagsAll.apply((tags) => {
545
+ registerVersion(
546
+ tags?.["sst:component-version"]
547
+ ? parseInt(tags["sst:component-version"])
548
+ : undefined,
549
+ );
550
+
551
+ if (!tags?.["sst:ref:secret"])
552
+ throw new VisibleError(
553
+ `Failed to lookup secret for Redis cluster "${name}".`,
554
+ );
555
+
556
+ return {
557
+ secretRef: tags?.["sst:ref:secret"],
558
+ };
559
+ });
560
+
561
+ const secret = secretsmanager.getSecretVersionOutput(
562
+ { secretId: input.secretRef },
563
+ { parent: self },
564
+ );
565
+ const authToken = secret.secretString.apply((v) => {
566
+ return JSON.parse(v).authToken as string;
567
+ });
568
+
569
+ return { cluster, authToken };
570
+ }
571
+
572
+ function registerVersion(overrideVersion?: number) {
573
+ const oldVersion = overrideVersion ?? $cli.state.version[name];
574
+ self.registerVersion({
575
+ new: _version,
576
+ old: oldVersion,
577
+ message: [
578
+ `There is a new version of "Redis" that has breaking changes.`,
579
+ ``,
580
+ `To continue using the previous version, rename "Redis" to "Redis.v${oldVersion}".`,
581
+ `Or recreate this component to update - https://sst-community.github.io/sst/docs/components/#versioning`,
582
+ ].join("\n"),
583
+ });
584
+ }
585
+
586
+ function registerDev() {
587
+ if (!args.dev) return undefined;
588
+
589
+ const dev = {
590
+ enabled: $dev,
591
+ host: output(args.dev.host ?? "localhost"),
592
+ port: output(args.dev.port ?? 6379),
593
+ username: output(args.dev.username ?? "default"),
594
+ password: args.dev.password ? output(args.dev.password) : undefined,
595
+ };
596
+
597
+ new DevCommand(`${name}Dev`, {
598
+ dev: {
599
+ title: name,
600
+ autostart: true,
601
+ command: `sst print-and-not-quit`,
602
+ },
603
+ environment: {
604
+ SST_DEV_COMMAND_MESSAGE: interpolate`Make sure your local Redis server is using:
605
+
606
+ username: "${dev.username}"
607
+ password: "${dev.password ?? "\x1b[38;5;8m[no password]\x1b[0m"}"
608
+
609
+ Listening on "${dev.host}:${dev.port}"...`,
610
+ },
611
+ });
612
+
613
+ return dev;
614
+ }
615
+
616
+ function normalizeVpc() {
617
+ // "vpc" is a Vpc component
618
+ if (args.vpc instanceof Vpc) {
619
+ return output({
620
+ subnets: args.vpc.privateSubnets,
621
+ securityGroups: args.vpc.securityGroups,
622
+ });
623
+ }
624
+
625
+ // "vpc" is object
626
+ return output(args.vpc);
627
+ }
628
+
629
+ function normalizeCluster() {
630
+ return all([args.cluster, args.nodes]).apply(([v, nodes]) => {
631
+ if (v === false) return undefined;
632
+ if (v === true) return { nodes: 1 };
633
+ if (v === undefined) {
634
+ if (nodes) return { nodes };
635
+ return { nodes: 1 };
636
+ }
637
+ return v;
638
+ });
639
+ }
640
+
641
+ function normalizeServerless() {
642
+ const v = args.serverless;
643
+ if (!v) return undefined;
644
+ const options = v === true ? {} : v;
645
+ return {
646
+ password: options.password ?? true,
647
+ // The limits can be outputs, so flatten them before reading any value
648
+ storage: output(options.storage)
649
+ .apply((v) => all([v?.minimum, v?.maximum]))
650
+ .apply(([min, max]) => {
651
+ const minimum = min ? Math.ceil(toGBs(min)) : undefined;
652
+ const maximum = max ? Math.ceil(toGBs(max)) : 10;
653
+ checkRange(name, "storage", "GB", minimum, maximum, !max);
654
+ return { minimum, maximum };
655
+ }),
656
+ ecpuPerSecond: output(options.ecpuPerSecond)
657
+ .apply((v) => all([v?.minimum, v?.maximum]))
658
+ .apply(([min, max]) => {
659
+ const minimum = min;
660
+ const maximum = max ?? 5000;
661
+ checkRange(name, "ecpuPerSecond", "", minimum, maximum, max === undefined);
662
+ return { minimum, maximum };
663
+ }),
664
+ };
665
+ }
666
+
667
+ function checkRange(
668
+ name: string,
669
+ key: string,
670
+ unit: string,
671
+ minimum: number | undefined,
672
+ maximum: number,
673
+ maximumIsDefault: boolean,
674
+ ) {
675
+ const suffix = unit ? ` ${unit}` : "";
676
+ for (const [limit, value] of [
677
+ ["minimum", minimum],
678
+ ["maximum", maximum],
679
+ ] as const) {
680
+ if (value !== undefined && value < 1)
681
+ throw new VisibleError(
682
+ `In the Redis component "${name}", \`serverless.${key}.${limit}\` has to be at least 1${suffix}.`,
683
+ );
684
+ }
685
+ if (minimum !== undefined && minimum > maximum)
686
+ throw new VisibleError(
687
+ `In the Redis component "${name}", \`serverless.${key}.minimum\` (${minimum}${suffix}) is above \`serverless.${key}.maximum\` (${maximum}${suffix}${maximumIsDefault ? ", the default" : ""}). Set a \`maximum\` that is at least the \`minimum\`.`,
688
+ );
689
+ }
690
+
691
+ function createAuthToken() {
692
+ const authToken = new RandomPassword(
693
+ `${name}AuthToken`,
694
+ {
695
+ length: 32,
696
+ special: true,
697
+ overrideSpecial: "!&#$^<>-",
698
+ },
699
+ { parent: self },
700
+ ).result;
701
+
702
+ const secret = new secretsmanager.Secret(
703
+ `${name}ProxySecret`,
704
+ {
705
+ recoveryWindowInDays: 0,
706
+ },
707
+ { parent: self },
708
+ );
709
+
710
+ new secretsmanager.SecretVersion(
711
+ `${name}ProxySecretVersion`,
712
+ {
713
+ secretId: secret.id,
714
+ secretString: jsonStringify({ authToken }),
715
+ },
716
+ { parent: self },
717
+ );
718
+
719
+ return { secret, authToken };
720
+ }
721
+
722
+ function createSubnetGroup() {
723
+ return new elasticache.SubnetGroup(
724
+ ...transform(
725
+ args.transform?.subnetGroup,
726
+ `${name}SubnetGroup`,
727
+ {
728
+ description: "Managed by SST",
729
+ subnetIds: vpc.subnets,
730
+ },
731
+ { parent: self },
732
+ ),
733
+ );
734
+ }
735
+
736
+ function createParameterGroup() {
737
+ return new elasticache.ParameterGroup(
738
+ ...transform(
739
+ args.transform?.parameterGroup,
740
+ `${name}ParameterGroup`,
741
+ {
742
+ description: "Managed by SST",
743
+ family: all([engine, version]).apply(([engine, version]) => {
744
+ const majorVersion = version.split(".")[0];
745
+ const defaultFamily = `${engine}${majorVersion}`;
746
+ return (
747
+ {
748
+ redis4: "redis4.0",
749
+ redis5: "redis5.0",
750
+ redis6: "redis6.x",
751
+ }[defaultFamily] ?? defaultFamily
752
+ );
753
+ }),
754
+ parameters: all([args.parameters ?? {}, argsCluster]).apply(
755
+ ([parameters, argsCluster]) => [
756
+ {
757
+ name: "cluster-enabled",
758
+ value: argsCluster ? "yes" : "no",
759
+ },
760
+ ...Object.entries(parameters).map(([name, value]) => ({
761
+ name,
762
+ value,
763
+ })),
764
+ ],
765
+ ),
766
+ },
767
+ {
768
+ parent: self,
769
+ // Necessary for the parameter group to be deleted AFTER upgrading the instance.
770
+ // This is either a Pulumi bug or an undocumented feature.
771
+ deleteBeforeReplace: false,
772
+ },
773
+ ),
774
+ );
775
+ }
776
+
777
+ function createCluster() {
778
+ return argsCluster.apply(
779
+ (argsCluster) =>
780
+ new elasticache.ReplicationGroup(
781
+ ...transform(
782
+ args.transform?.cluster,
783
+ `${name}Cluster`,
784
+ {
785
+ description: "Managed by SST",
786
+ engine,
787
+ engineVersion: version,
788
+ nodeType: interpolate`cache.${instance}`,
789
+ dataTieringEnabled: instance.apply((v) =>
790
+ v.startsWith("r6gd."),
791
+ ),
792
+ port: 6379,
793
+ ...(argsCluster
794
+ ? {
795
+ clusterMode: "enabled",
796
+ numNodeGroups: argsCluster.nodes,
797
+ replicasPerNodeGroup: 0,
798
+ automaticFailoverEnabled: true,
799
+ }
800
+ : {
801
+ clusterMode: "disabled",
802
+ }),
803
+ multiAzEnabled: false,
804
+ applyImmediately: true,
805
+ autoMinorVersionUpgrade: false,
806
+ atRestEncryptionEnabled: true,
807
+ transitEncryptionEnabled: true,
808
+ transitEncryptionMode: "required",
809
+ authTokenUpdateStrategy: "ROTATE",
810
+ authToken,
811
+ subnetGroupName: subnetGroup.name,
812
+ parameterGroupName: parameterGroup.name,
813
+ securityGroupIds: vpc.securityGroups,
814
+ tags: {
815
+ "sst:component-version": _version.toString(),
816
+ "sst:ref:secret": secret.id,
817
+ },
818
+ },
819
+ { parent: self },
820
+ ),
821
+ ),
822
+ );
823
+ }
824
+
825
+ function createServerlessAuth() {
826
+ const password = new RandomPassword(
827
+ `${name}AuthToken`,
828
+ {
829
+ length: 32,
830
+ special: true,
831
+ overrideSpecial: "!&#$^<>-",
832
+ },
833
+ { parent: self },
834
+ ).result;
835
+
836
+ // A serverless cache takes its passwords from a user group. The group needs
837
+ // a user named "default", this one has the password.
838
+ const user = new elasticache.User(
839
+ `${name}User`,
840
+ {
841
+ // the id is named by SST, an empty string leaves it to the naming rule
842
+ userId: "",
843
+ userName: "default",
844
+ engine,
845
+ accessString: "on ~* +@all",
846
+ authenticationMode: {
847
+ type: "password",
848
+ passwords: [password],
849
+ },
850
+ },
851
+ { parent: self },
852
+ );
853
+ const userGroup = new elasticache.UserGroup(
854
+ `${name}UserGroup`,
855
+ {
856
+ userGroupId: "",
857
+ engine,
858
+ userIds: [user.userId],
859
+ },
860
+ { parent: self },
861
+ );
862
+
863
+ return { password, userGroup };
864
+ }
865
+
866
+ function createServerlessCache(
867
+ serverless: NonNullable<ReturnType<typeof normalizeServerless>>,
868
+ userGroup: elasticache.UserGroup | undefined,
869
+ ) {
870
+ return new elasticache.ServerlessCache(
871
+ ...transform(
872
+ args.transform?.serverlessCache,
873
+ `${name}ServerlessCache`,
874
+ {
875
+ description: "Managed by SST",
876
+ engine,
877
+ majorEngineVersion: version.apply((v) => {
878
+ const major = v.split(".")[0];
879
+ if (parseInt(major) < 7)
880
+ throw new VisibleError(
881
+ `In the Redis component "${name}", \`serverless\` needs version 7 or later, but \`version\` is "${v}".`,
882
+ );
883
+ return major;
884
+ }),
885
+ cacheUsageLimits: all([
886
+ serverless.storage,
887
+ serverless.ecpuPerSecond,
888
+ ]).apply(([storage, ecpu]) => ({
889
+ dataStorage: {
890
+ minimum: storage.minimum,
891
+ maximum: storage.maximum,
892
+ unit: "GB",
893
+ },
894
+ ecpuPerSeconds: [
895
+ {
896
+ minimum: ecpu.minimum,
897
+ maximum: ecpu.maximum,
898
+ },
899
+ ],
900
+ })),
901
+ securityGroupIds: vpc.securityGroups,
902
+ subnetIds: vpc.subnets,
903
+ userGroupId: userGroup?.userGroupId,
904
+ tags: {
905
+ "sst:component-version": _version.toString(),
906
+ },
907
+ },
908
+ { parent: self },
909
+ ),
910
+ );
911
+ }
912
+ }
913
+
914
+ /**
915
+ * The ID of the Redis cluster, or of the serverless cache when `serverless` is set.
916
+ * `Redis.get` only works with the ID of a cluster.
917
+ */
918
+ public get clusterId() {
919
+ if (this.dev) return output("placeholder");
920
+ if (this.serverlessCache) return this.serverlessCache.id;
921
+ return this.cluster!.id;
922
+ }
923
+
924
+ /**
925
+ * The username to connect to the Redis cluster.
926
+ */
927
+ public get username() {
928
+ return this.dev ? this.dev.username : output("default");
929
+ }
930
+
931
+ /**
932
+ * The password to connect to the Redis cluster. This is `undefined` for a serverless cache
933
+ * with `password: false`.
934
+ */
935
+ public get password(): Output<string> | undefined {
936
+ return this.dev ? this.dev.password ?? output("") : this._authToken;
937
+ }
938
+
939
+ /**
940
+ * The host to connect to the Redis cluster.
941
+ */
942
+ public get host() {
943
+ if (this.dev) return this.dev.host;
944
+ if (this.serverlessCache) {
945
+ return this.serverlessCache.endpoints.apply((endpoints) => {
946
+ const address = endpoints?.[0]?.address;
947
+ if (!address)
948
+ throw new VisibleError(
949
+ "The serverless Redis cache has no endpoint address yet.",
950
+ );
951
+ return address;
952
+ });
953
+ }
954
+ return this.cluster!.clusterEnabled.apply((enabled) =>
955
+ enabled
956
+ ? this.cluster!.configurationEndpointAddress
957
+ : this.cluster!.primaryEndpointAddress,
958
+ );
959
+ }
960
+
961
+ /**
962
+ * The port to connect to the Redis cluster.
963
+ */
964
+ public get port() {
965
+ if (this.dev) return this.dev.port;
966
+ if (this.serverlessCache) {
967
+ return this.serverlessCache.endpoints.apply(
968
+ (endpoints) => endpoints?.[0]?.port ?? 6379,
969
+ );
970
+ }
971
+ return this.cluster!.port.apply((v) => v!);
972
+ }
973
+
974
+ /**
975
+ * The underlying [resources](/docs/components/#nodes) this component creates.
976
+ */
977
+ public get nodes() {
978
+ const _this = this;
979
+ return {
980
+ /**
981
+ * The ElastiCache Redis cluster. This throws when `serverless` is set, use
982
+ * `serverlessCache` instead.
983
+ */
984
+ get cluster() {
985
+ if (_this.dev)
986
+ throw new VisibleError("Cannot access `nodes.cluster` in dev mode.");
987
+ if (_this.serverlessCache)
988
+ throw new VisibleError(
989
+ "Cannot access `nodes.cluster` when `serverless` is set, use `nodes.serverlessCache`.",
990
+ );
991
+ return _this.cluster!;
992
+ },
993
+ /**
994
+ * The ElastiCache Redis serverless cache. This throws when `serverless` is not set, use
995
+ * `cluster` instead.
996
+ */
997
+ get serverlessCache() {
998
+ if (_this.dev)
999
+ throw new VisibleError(
1000
+ "Cannot access `nodes.serverlessCache` in dev mode.",
1001
+ );
1002
+ if (!_this.serverlessCache)
1003
+ throw new VisibleError(
1004
+ "Cannot access `nodes.serverlessCache` when `serverless` is not set, use `nodes.cluster`.",
1005
+ );
1006
+ return _this.serverlessCache;
1007
+ },
1008
+ };
1009
+ }
1010
+
1011
+ /** @internal */
1012
+ public getSSTLink() {
1013
+ return {
1014
+ properties: {
1015
+ host: this.host,
1016
+ port: this.port,
1017
+ username: this.username,
1018
+ ...(this.password ? { password: this.password } : {}),
1019
+ },
1020
+ };
1021
+ }
1022
+
1023
+ /**
1024
+ * Reference an existing Redis cluster with the given cluster name. This is useful when you
1025
+ * create a Redis cluster in one stage and want to share it in another. It avoids having to
1026
+ * create a new Redis cluster in the other stage.
1027
+ *
1028
+ * :::tip
1029
+ * You can use the `static get` method to share Redis clusters across stages.
1030
+ * :::
1031
+ *
1032
+ * :::caution
1033
+ * This only works with a provisioned cluster. The `clusterId` of a cache created with
1034
+ * `serverless` can't be used here and fails with a "Failed to lookup secret" error.
1035
+ * :::
1036
+ *
1037
+ * @param name The name of the component.
1038
+ * @param clusterId The id of the existing Redis cluster.
1039
+ * @param opts Resource options.
1040
+ *
1041
+ * @example
1042
+ * Imagine you create a cluster in the `dev` stage. And in your personal stage `frank`,
1043
+ * instead of creating a new cluster, you want to share the same cluster from `dev`.
1044
+ *
1045
+ * ```ts title="sst.config.ts"
1046
+ * const redis = $app.stage === "frank"
1047
+ * ? sst.aws.Redis.get("MyRedis", "app-dev-myredis")
1048
+ * : new sst.aws.Redis("MyRedis");
1049
+ * ```
1050
+ *
1051
+ * Here `app-dev-myredis` is the ID of the cluster created in the `dev` stage.
1052
+ * You can find this by outputting the cluster ID in the `dev` stage.
1053
+ *
1054
+ * ```ts title="sst.config.ts"
1055
+ * return {
1056
+ * cluster: redis.clusterId
1057
+ * };
1058
+ * ```
1059
+ */
1060
+ public static get(
1061
+ name: string,
1062
+ clusterId: Input<string>,
1063
+ opts?: ComponentResourceOptions,
1064
+ ) {
1065
+ return new Redis(
1066
+ name,
1067
+ {
1068
+ ref: true,
1069
+ clusterId,
1070
+ } as unknown as RedisArgs,
1071
+ opts,
1072
+ );
1073
+ }
1074
+ }
1075
+
1076
+ const __pulumiType = "sst:aws:Redis";
1077
+ // @ts-expect-error
1078
+ Redis.__pulumiType = __pulumiType;