@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,988 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import crypto from "crypto";
4
+ import archiver from "archiver";
5
+ import { glob } from "glob";
6
+ import {
7
+ ComponentResourceOptions,
8
+ Output,
9
+ all,
10
+ asset,
11
+ interpolate,
12
+ output,
13
+ } from "@pulumi/pulumi";
14
+ import {
15
+ cloudwatch,
16
+ getCallerIdentityOutput,
17
+ getPartitionOutput,
18
+ getRegionOutput,
19
+ iam,
20
+ lambda,
21
+ lambdamicrovms,
22
+ s3,
23
+ } from "@pulumi/aws";
24
+ import { Component, Transform, transform } from "../component";
25
+ import { Link } from "../link";
26
+ import { Input } from "../input";
27
+ import { VisibleError } from "../error";
28
+ import { physicalName } from "../naming";
29
+ import { DurationHours, toSeconds } from "../duration";
30
+ import { DevCommand } from "../experimental/dev-command";
31
+ import { bootstrap } from "./helpers/bootstrap";
32
+ import { RETENTION } from "./logging";
33
+ import { FunctionArgs } from "./function";
34
+ import { Permission, permission } from "./permission";
35
+ import { Vpc } from "./vpc";
36
+ import { warnOnce } from "../../util/warn";
37
+ import { MicrovmImagePrune } from "./providers/microvm-image-prune";
38
+
39
+ export interface MicroVmArgs {
40
+ /**
41
+ * The image to run. Lambda builds it from your `Dockerfile`, on top of its Amazon Linux
42
+ * 2023 base image.
43
+ *
44
+ * SST zips the `context` directory, puts the `dockerfile` at the root of the zip, and
45
+ * uploads it. Lambda builds the image from the zip, starts your app, and takes a snapshot
46
+ * that every MicroVM starts from. So your app starts once, at build time: anything it
47
+ * does on startup, like reading the time or generating an ID, is the same in every
48
+ * MicroVM.
49
+ *
50
+ * A build takes a few minutes, and runs again whenever the code, the `environment` or a
51
+ * link's values change. If it fails, the deploy fails, and the build's logs are in the
52
+ * log group. MicroVMs keep starting from the last version that built.
53
+ *
54
+ * Each build adds a version to the image, and Lambda allows 50. After a build, SST
55
+ * deletes the old ones. It keeps the newest 5 that built, and any that MicroVMs still
56
+ * run from.
57
+ *
58
+ * Lambda runs the `Dockerfile` itself, so Docker build args, targets, secrets and caches
59
+ * don't apply. Files matched by a `.dockerignore` in the `context` aren't uploaded, and
60
+ * neither are the `sst-env.d.ts` files SST generates, so writing them doesn't rebuild
61
+ * the image.
62
+ *
63
+ * @default `{ context: ".", dockerfile: "Dockerfile" }`
64
+ * @example
65
+ * ```js
66
+ * {
67
+ * image: {
68
+ * context: "./sandbox",
69
+ * dockerfile: "Dockerfile"
70
+ * }
71
+ * }
72
+ * ```
73
+ */
74
+ image?: Input<{
75
+ /**
76
+ * The path to the directory that's zipped and uploaded, relative to your project root.
77
+ * @default `"."`
78
+ */
79
+ context?: Input<string>;
80
+ /**
81
+ * The path to the `Dockerfile`, relative to the `context`.
82
+ * @default `"Dockerfile"`
83
+ */
84
+ dockerfile?: Input<string>;
85
+ }>;
86
+ /**
87
+ * The port your app listens on. The SDK sends requests to this port.
88
+ * @default `8080`
89
+ */
90
+ port?: Input<number>;
91
+ /**
92
+ * Key-value pairs set as environment variables in the image.
93
+ *
94
+ * They're part of the image, so changing them rebuilds it. Lambda allows up to 50.
95
+ */
96
+ environment?: FunctionArgs["environment"];
97
+ /**
98
+ * [Link resources](/docs/linking/) to your MicroVMs. This grants the execution role the
99
+ * permissions of the linked resources, and sets them as environment variables in the
100
+ * image, so your app can read them through the SDK.
101
+ *
102
+ * Changing a linked resource's values rebuilds the image.
103
+ *
104
+ * To read them with `Resource`, add `sst` to your app's dependencies. It comes with the
105
+ * SST CLI, about 75 MB, as an optional dependency that your app doesn't need. To leave it
106
+ * out of the image, install with `npm install --omit=optional`.
107
+ *
108
+ * :::caution
109
+ * The links' values, `Secret` values included, are stored in the image. Anyone allowed
110
+ * to call `lambda:GetMicrovmImageVersion` on it can read them.
111
+ * :::
112
+ *
113
+ * @example
114
+ * ```js
115
+ * {
116
+ * link: [bucket]
117
+ * }
118
+ * ```
119
+ */
120
+ link?: FunctionArgs["link"];
121
+ /**
122
+ * Permissions and the resources that your MicroVMs need to access. They're added to the
123
+ * execution role.
124
+ *
125
+ * @example
126
+ * ```js
127
+ * {
128
+ * permissions: [
129
+ * {
130
+ * actions: ["bedrock:InvokeModel"],
131
+ * resources: ["*"]
132
+ * }
133
+ * ]
134
+ * }
135
+ * ```
136
+ */
137
+ permissions?: FunctionArgs["permissions"];
138
+ /**
139
+ * The longest a MicroVM can exist, running and suspended. Lambda terminates it after
140
+ * this, up to 8 hours.
141
+ *
142
+ * This is the default for `microvm.run()` in the SDK, which can override it.
143
+ *
144
+ * @default `"1 hour"`
145
+ */
146
+ duration?: Input<DurationHours>;
147
+ /**
148
+ * When a MicroVM gets no requests for a while, Lambda suspends it, and you stop paying
149
+ * for compute. Its memory and disk are kept. Then, if it stays suspended for too long,
150
+ * Lambda terminates it.
151
+ *
152
+ * Pass `false` to keep MicroVMs running until `duration` is up.
153
+ *
154
+ * This is the default for `microvm.run()` in the SDK, which can override it.
155
+ *
156
+ * @default `{ suspendAfter: "15 minutes", terminateAfter: "15 minutes", autoResume: true }`
157
+ */
158
+ idle?: Input<
159
+ | false
160
+ | {
161
+ /**
162
+ * How long a MicroVM can go without a request before it's suspended. At least
163
+ * 1 minute.
164
+ * @default `"15 minutes"`
165
+ */
166
+ suspendAfter?: Input<DurationHours>;
167
+ /**
168
+ * How long a MicroVM can stay suspended before it's terminated.
169
+ * @default `"15 minutes"`
170
+ */
171
+ terminateAfter?: Input<DurationHours>;
172
+ /**
173
+ * Resume a suspended MicroVM when a request arrives for it.
174
+ * @default `true`
175
+ */
176
+ autoResume?: Input<boolean>;
177
+ }
178
+ >;
179
+ /**
180
+ * Configure the log group for your MicroVMs' logs.
181
+ * @default `{ retention: "1 month" }`
182
+ */
183
+ logging?: Input<{
184
+ /**
185
+ * How long to keep the logs.
186
+ * @default `"1 month"`
187
+ */
188
+ retention?: Input<keyof typeof RETENTION>;
189
+ }>;
190
+ /**
191
+ * Send your MicroVMs' outbound traffic through the private subnets of a VPC, so they can
192
+ * reach private resources, like a database.
193
+ *
194
+ * Requests to a MicroVM still come in through its HTTPS endpoint. Only its outbound
195
+ * traffic goes through the VPC, and it reaches the internet only through the VPC's NAT.
196
+ *
197
+ * This creates a Lambda network connector that every MicroVM is run with. Creating it
198
+ * takes about 5 minutes. Lambda's docs say to terminate the MicroVMs that use it before
199
+ * it's changed or removed.
200
+ *
201
+ * @example
202
+ * Create a `Vpc` component, with a NAT if your MicroVMs need the internet.
203
+ *
204
+ * ```js title="sst.config.ts"
205
+ * const myVpc = new sst.aws.Vpc("MyVpc", { nat: "ec2" });
206
+ * ```
207
+ *
208
+ * And pass it in.
209
+ *
210
+ * ```js
211
+ * {
212
+ * vpc: myVpc
213
+ * }
214
+ * ```
215
+ *
216
+ * Or pass in the subnets and security groups of an existing VPC.
217
+ *
218
+ * ```js
219
+ * {
220
+ * vpc: {
221
+ * privateSubnets: ["subnet-0b6a2b73896dc8c4c", "subnet-021389ebee680c2f0"],
222
+ * securityGroups: ["sg-0399348378a4c256c"]
223
+ * }
224
+ * }
225
+ * ```
226
+ */
227
+ vpc?:
228
+ | Vpc
229
+ | Input<{
230
+ /**
231
+ * A list of VPC security group IDs.
232
+ */
233
+ securityGroups: Input<Input<string>[]>;
234
+ /**
235
+ * A list of VPC subnet IDs.
236
+ */
237
+ privateSubnets: Input<Input<string>[]>;
238
+ }>;
239
+ /**
240
+ * Configure how this component works in `sst dev`.
241
+ *
242
+ * By default, the image isn't built in `sst dev`. Instead, `dev.command` runs your app on
243
+ * your machine, in a tab of the `sst dev` multiplexer, with the links and the execution
244
+ * role's permissions.
245
+ *
246
+ * In `sst dev`, the SDK sends the requests of every MicroVM you run to `dev.url`. So the
247
+ * MicroVMs aren't isolated from each other the way they are once deployed.
248
+ *
249
+ * So that the CLI can assume it, the execution role trusts your AWS account in `sst dev`,
250
+ * as `Service`'s and `Task`'s roles do. Any IAM user or role in the account whose
251
+ * policies allow `sts:AssumeRole` on it can then assume it too.
252
+ *
253
+ * To build the image and run real MicroVMs in `sst dev`, pass in `false`.
254
+ */
255
+ dev?:
256
+ | false
257
+ | {
258
+ /**
259
+ * The command that `sst dev` runs to start your app.
260
+ */
261
+ command?: Input<string>;
262
+ /**
263
+ * The directory the `command` runs in.
264
+ * @default The `image.context`
265
+ */
266
+ directory?: Input<string>;
267
+ /**
268
+ * The URL your app listens on in `sst dev`.
269
+ * @default `"http://localhost:8080"`, with your `port`
270
+ */
271
+ url?: Input<string>;
272
+ };
273
+ /**
274
+ * [Transform](/docs/components#transform) how this component creates its underlying
275
+ * resources.
276
+ */
277
+ transform?: {
278
+ /**
279
+ * Transform the MicroVM image resource.
280
+ */
281
+ image?: Transform<lambdamicrovms.ImageArgs>;
282
+ /**
283
+ * Transform the IAM role Lambda uses to build the image.
284
+ */
285
+ buildRole?: Transform<iam.RoleArgs>;
286
+ /**
287
+ * Transform the IAM role your MicroVMs run with.
288
+ */
289
+ executionRole?: Transform<iam.RoleArgs>;
290
+ /**
291
+ * Transform the CloudWatch log group.
292
+ */
293
+ logGroup?: Transform<cloudwatch.LogGroupArgs>;
294
+ /**
295
+ * Transform the Lambda network connector, created when `vpc` is set.
296
+ */
297
+ networkConnector?: Transform<lambda.CoreNetworkConnectorArgs>;
298
+ /**
299
+ * Transform the IAM role Lambda uses to create the network connector's network
300
+ * interfaces in the VPC.
301
+ */
302
+ operatorRole?: Transform<iam.RoleArgs>;
303
+ };
304
+ }
305
+
306
+ /**
307
+ * The `MicroVm` component lets you run your code in
308
+ * [AWS Lambda MicroVMs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-microvms-guide.html):
309
+ * isolated, stateful sandboxes, each with its own HTTPS endpoint, that live for up to
310
+ * 8 hours. For example, to run code that an AI agent wrote.
311
+ *
312
+ * The component creates the image. Your app then starts MicroVMs from it, and sends them
313
+ * requests, with the [SDK](/docs/component/aws/microvm#sdk).
314
+ *
315
+ * :::note
316
+ * Lambda MicroVMs run on ARM64 only, and are available in `us-east-1`, `us-east-2`,
317
+ * `us-west-2`, `eu-west-1` and `ap-northeast-1`.
318
+ * :::
319
+ *
320
+ * @example
321
+ *
322
+ * #### Create a MicroVM image
323
+ *
324
+ * ```ts title="sst.config.ts"
325
+ * const sandbox = new sst.aws.MicroVm("Sandbox", {
326
+ * image: { context: "./sandbox" },
327
+ * dev: { command: "node app.js" }
328
+ * });
329
+ * ```
330
+ *
331
+ * Here `./sandbox` has a `Dockerfile` that starts an app listening on port 8080.
332
+ *
333
+ * #### Link it and run MicroVMs
334
+ *
335
+ * ```ts title="sst.config.ts"
336
+ * new sst.aws.Function("MyFunction", {
337
+ * handler: "src/lambda.handler",
338
+ * link: [sandbox]
339
+ * });
340
+ * ```
341
+ *
342
+ * ```ts title="src/lambda.ts"
343
+ * import { Resource } from "sst";
344
+ * import { microvm } from "sst/aws/microvm";
345
+ *
346
+ * const vm = await microvm.run(Resource.Sandbox);
347
+ * const res = await vm.fetch("/exec", {
348
+ * method: "POST",
349
+ * body: JSON.stringify({ code: "print(1 + 1)" })
350
+ * });
351
+ * await vm.terminate();
352
+ * ```
353
+ *
354
+ * #### Reach private resources in a VPC
355
+ *
356
+ * ```ts title="sst.config.ts"
357
+ * const vpc = new sst.aws.Vpc("MyVpc", { nat: "ec2" });
358
+ *
359
+ * new sst.aws.MicroVm("Sandbox", {
360
+ * image: { context: "./sandbox" },
361
+ * vpc
362
+ * });
363
+ * ```
364
+ *
365
+ * #### Limit how long MicroVMs live
366
+ *
367
+ * A MicroVM you don't terminate keeps running until it's idle, or until its `duration` is
368
+ * up. These defaults keep that short; change them for long sessions.
369
+ *
370
+ * ```ts title="sst.config.ts"
371
+ * new sst.aws.MicroVm("Sandbox", {
372
+ * image: { context: "./sandbox" },
373
+ * duration: "4 hours",
374
+ * idle: { suspendAfter: "10 minutes", terminateAfter: "1 hour" }
375
+ * });
376
+ * ```
377
+ *
378
+ * Your account has a quota for the memory of all its MicroVMs in a region, running and
379
+ * suspended, and each MicroVM has 2 GB. Once it's reached, `microvm.run()` fails until
380
+ * some are terminated. You can ask for more in the Service Quotas console.
381
+ *
382
+ * :::caution
383
+ * Lambda can't delete an image while MicroVMs from it are running. So `sst remove`, and
384
+ * starting `sst dev` on a deployed stage, fail until they're terminated, idle, or their
385
+ * `duration` is up.
386
+ * :::
387
+ */
388
+ export class MicroVm extends Component implements Link.Linkable {
389
+ private readonly image?: lambdamicrovms.Image;
390
+ private readonly buildRole?: iam.Role;
391
+ private readonly executionRole: iam.Role;
392
+ private readonly logGroup: cloudwatch.LogGroup;
393
+ private readonly networkConnector?: lambda.CoreNetworkConnector;
394
+ private readonly region: Output<string>;
395
+ private readonly partition: Output<string>;
396
+ private readonly runDefaults: Output<{
397
+ port: number;
398
+ duration: number;
399
+ idle?: {
400
+ autoResumeEnabled: boolean;
401
+ maxIdleDurationSeconds: number;
402
+ suspendedDurationSeconds: number;
403
+ };
404
+ }>;
405
+ private readonly devUrl?: Output<string>;
406
+
407
+ constructor(
408
+ name: string,
409
+ args: MicroVmArgs = {},
410
+ opts: ComponentResourceOptions = {},
411
+ ) {
412
+ super(__pulumiType, name, args, opts);
413
+
414
+ const self = this;
415
+ const dev = normalizeDev();
416
+ const partition = getPartitionOutput({}, opts).partition;
417
+ const region = getRegionOutput({}, opts).region;
418
+ const image = normalizeImage();
419
+ const runDefaults = normalizeRunDefaults();
420
+
421
+ const logGroup = createLogGroup();
422
+ const imageName = logGroup.name.apply((v) => v.split("/").at(-1)!);
423
+ const executionRole = createExecutionRole();
424
+
425
+ this.executionRole = executionRole;
426
+ this.logGroup = logGroup;
427
+ this.region = region;
428
+ this.partition = partition;
429
+ this.runDefaults = runDefaults;
430
+
431
+ if (dev) {
432
+ this.devUrl = all([args.dev ? args.dev.url : undefined, args.port]).apply(
433
+ ([url, port]) => url ?? `http://localhost:${port ?? 8080}`,
434
+ );
435
+ registerDevCommand();
436
+ return;
437
+ }
438
+
439
+ const vpc = normalizeVpc();
440
+ const code = createCode();
441
+ const buildRole = createBuildRole();
442
+ this.buildRole = buildRole;
443
+ this.image = createImage();
444
+ this.networkConnector = createNetworkConnector();
445
+ pruneImageVersions();
446
+
447
+ function normalizeDev() {
448
+ if (!$dev) return false;
449
+ if (args.dev === false) return false;
450
+ return true;
451
+ }
452
+
453
+ function normalizeImage() {
454
+ return output(args.image ?? {}).apply((image) => {
455
+ const context = path.resolve($cli.paths.root, image.context ?? ".");
456
+ const dockerfile = image.dockerfile ?? "Dockerfile";
457
+ if (!fs.existsSync(path.join(context, dockerfile)))
458
+ throw new VisibleError(
459
+ `The "${name}" MicroVm can't find its Dockerfile at "${path.join(
460
+ context,
461
+ dockerfile,
462
+ )}". Set "image.context" and "image.dockerfile".`,
463
+ );
464
+ return {
465
+ context,
466
+ dockerfile,
467
+ // `sst dev` runs `dev.command` in a directory relative to the project root.
468
+ directory: path.relative($cli.paths.root, context) || ".",
469
+ };
470
+ });
471
+ }
472
+
473
+ function normalizeRunDefaults() {
474
+ return all([args.port, args.duration, args.idle]).apply(
475
+ ([port, duration, idle]) => {
476
+ const maxDuration = toSeconds(duration ?? "1 hour");
477
+ if (maxDuration < 1 || maxDuration > 28800)
478
+ throw new VisibleError(
479
+ `The "${name}" MicroVm's "duration" is ${duration}. It has to be between 1 second and 8 hours.`,
480
+ );
481
+ if (idle === false)
482
+ return { port: port ?? 8080, duration: maxDuration };
483
+
484
+ const suspendAfter = toSeconds(idle?.suspendAfter ?? "15 minutes");
485
+ if (suspendAfter < 60 || suspendAfter > 28800)
486
+ throw new VisibleError(
487
+ `The "${name}" MicroVm's "idle.suspendAfter" is ${idle?.suspendAfter}. It has to be between 1 minute and 8 hours.`,
488
+ );
489
+ return {
490
+ port: port ?? 8080,
491
+ duration: maxDuration,
492
+ idle: {
493
+ autoResumeEnabled: idle?.autoResume ?? true,
494
+ maxIdleDurationSeconds: suspendAfter,
495
+ suspendedDurationSeconds: toSeconds(
496
+ idle?.terminateAfter ?? "15 minutes",
497
+ ),
498
+ },
499
+ };
500
+ },
501
+ );
502
+ }
503
+
504
+ function createLogGroup() {
505
+ return new cloudwatch.LogGroup(
506
+ ...transform(
507
+ args.transform?.logGroup,
508
+ `${name}LogGroup`,
509
+ {
510
+ // Lambda writes the build logs to this log group, and the SDK sends the
511
+ // MicroVMs' logs to it.
512
+ name: `/aws/lambda-microvms/${physicalName(64, name)}`,
513
+ retentionInDays: output(args.logging).apply(
514
+ (logging) => RETENTION[logging?.retention ?? "1 month"],
515
+ ),
516
+ },
517
+ { parent: self, ignoreChanges: ["name"] },
518
+ ),
519
+ );
520
+ }
521
+
522
+ function createExecutionRole() {
523
+ const policy = all([
524
+ args.permissions ?? [],
525
+ Link.getInclude<Permission>("aws.permission", args.link),
526
+ ]).apply(([argsPermissions, linkPermissions]) =>
527
+ iam.getPolicyDocumentOutput({
528
+ statements: [
529
+ ...argsPermissions,
530
+ ...linkPermissions,
531
+ {
532
+ effect: "allow" as const,
533
+ actions: ["logs:CreateLogStream", "logs:PutLogEvents"],
534
+ resources: [interpolate`${logGroup.arn}:*`],
535
+ },
536
+ ].map((item) => ({
537
+ effect: (() => {
538
+ const effect = item.effect ?? "allow";
539
+ return effect.charAt(0).toUpperCase() + effect.slice(1);
540
+ })(),
541
+ actions: item.actions,
542
+ resources: item.resources,
543
+ conditions: "conditions" in item ? item.conditions : undefined,
544
+ })),
545
+ }),
546
+ );
547
+
548
+ return new iam.Role(
549
+ ...transform(
550
+ args.transform?.executionRole,
551
+ `${name}ExecutionRole`,
552
+ {
553
+ assumeRolePolicy: iam.getPolicyDocumentOutput({
554
+ statements: [
555
+ {
556
+ actions: ["sts:AssumeRole", "sts:TagSession"],
557
+ principals: [
558
+ { type: "Service", identifiers: ["lambda.amazonaws.com"] },
559
+ ],
560
+ },
561
+ // In `sst dev`, the CLI assumes this role to run `dev.command`.
562
+ ...(dev
563
+ ? [
564
+ {
565
+ actions: ["sts:AssumeRole"],
566
+ principals: [
567
+ {
568
+ type: "AWS",
569
+ identifiers: [
570
+ getCallerIdentityOutput({}, opts).accountId,
571
+ ],
572
+ },
573
+ ],
574
+ },
575
+ ]
576
+ : []),
577
+ ],
578
+ }).json,
579
+ inlinePolicies: policy.apply(({ statements }) =>
580
+ statements ? [{ name: "inline", policy: policy.json }] : [],
581
+ ),
582
+ },
583
+ { parent: self },
584
+ ),
585
+ );
586
+ }
587
+
588
+ function registerDevCommand() {
589
+ new DevCommand(
590
+ `${name}Dev`,
591
+ {
592
+ link: args.link,
593
+ dev: {
594
+ title: name,
595
+ autostart: true,
596
+ directory: image.directory,
597
+ ...(args.dev || {}),
598
+ },
599
+ environment: all([args.environment, region]).apply(
600
+ ([environment, region]) => ({
601
+ ...environment,
602
+ AWS_REGION: region,
603
+ }),
604
+ ),
605
+ aws: {
606
+ role: executionRole.arn,
607
+ },
608
+ },
609
+ { parent: self },
610
+ );
611
+ }
612
+
613
+ function createCode() {
614
+ const zip = image.apply(async ({ context, dockerfile }) => {
615
+ const zipPath = path.resolve(
616
+ $cli.paths.work,
617
+ "artifacts",
618
+ `${name}-microvm`,
619
+ "code.zip",
620
+ );
621
+ await fs.promises.mkdir(path.dirname(zipPath), { recursive: true });
622
+
623
+ const files = (
624
+ await glob("**", {
625
+ cwd: context,
626
+ dot: true,
627
+ nodir: true,
628
+ ignore: [
629
+ ".sst/**",
630
+ ".git/**",
631
+ // SST writes these after a deploy, and the root one changes with every
632
+ // resource in the app, so they'd rebuild the image for nothing.
633
+ "**/sst-env.d.ts",
634
+ ...(await readDockerignore(context)),
635
+ // Lambda reads the Dockerfile from the root of the zip.
636
+ ...(dockerfile === "Dockerfile" ? [] : ["Dockerfile"]),
637
+ ],
638
+ })
639
+ )
640
+ .map((file) => ({ from: path.join(context, file), to: file }))
641
+ .concat(
642
+ dockerfile === "Dockerfile"
643
+ ? []
644
+ : [{ from: path.join(context, dockerfile), to: "Dockerfile" }],
645
+ )
646
+ .sort((a, b) => a.to.localeCompare(b.to));
647
+
648
+ await new Promise<void>((resolve, reject) => {
649
+ const ws = fs.createWriteStream(zipPath);
650
+ // statConcurrency and the fixed dates keep the zip, and its hash, the same
651
+ // when nothing changed, so the image isn't rebuilt.
652
+ const archive = archiver("zip", { statConcurrency: 1 });
653
+ archive.on("warning", reject);
654
+ archive.on("error", reject);
655
+ ws.once("close", () => resolve());
656
+ archive.pipe(ws);
657
+ for (const file of files)
658
+ archive.file(file.from, { name: file.to, date: new Date(0) });
659
+ archive.finalize();
660
+ });
661
+
662
+ const hash = crypto
663
+ .createHash("sha256")
664
+ .update(await fs.promises.readFile(zipPath))
665
+ .digest("hex");
666
+ return { path: zipPath, hash };
667
+ });
668
+
669
+ const bucket = region.apply((region) =>
670
+ bootstrap.forRegion(region).then((d) => d.asset),
671
+ );
672
+ // One key per image, updated in place. With the hash in the key, a deploy that
673
+ // fails and is then reverted replaces the object with one of the same key and
674
+ // deletes it, and a later rebuild of unchanged code can't find it.
675
+ const object = new s3.BucketObjectv2(
676
+ `${name}Code`,
677
+ {
678
+ key: interpolate`assets/microvm/${imageName}.zip`,
679
+ bucket,
680
+ source: zip.path.apply((p) => new asset.FileArchive(p)),
681
+ },
682
+ { parent: self },
683
+ );
684
+ return { object, hash: zip.hash };
685
+ }
686
+
687
+ function createBuildRole() {
688
+ return new iam.Role(
689
+ ...transform(
690
+ args.transform?.buildRole,
691
+ `${name}BuildRole`,
692
+ {
693
+ assumeRolePolicy: iam.getPolicyDocumentOutput({
694
+ statements: [
695
+ {
696
+ actions: ["sts:AssumeRole", "sts:TagSession"],
697
+ principals: [
698
+ { type: "Service", identifiers: ["lambda.amazonaws.com"] },
699
+ ],
700
+ },
701
+ ],
702
+ }).json,
703
+ inlinePolicies: [
704
+ {
705
+ name: "inline",
706
+ policy: iam.getPolicyDocumentOutput({
707
+ statements: [
708
+ {
709
+ actions: ["s3:GetObject"],
710
+ resources: [
711
+ interpolate`arn:${partition}:s3:::${code.object.bucket}/${code.object.key}`,
712
+ ],
713
+ },
714
+ {
715
+ actions: ["logs:CreateLogStream", "logs:PutLogEvents"],
716
+ resources: [interpolate`${logGroup.arn}:*`],
717
+ },
718
+ ],
719
+ }).json,
720
+ },
721
+ ],
722
+ },
723
+ { parent: self },
724
+ ),
725
+ );
726
+ }
727
+
728
+ function createImage() {
729
+ return new lambdamicrovms.Image(
730
+ ...transform(
731
+ args.transform?.image,
732
+ `${name}Image`,
733
+ {
734
+ name: imageName,
735
+ baseImageArn: interpolate`arn:${partition}:lambda:${region}:aws:microvm-image:al2023-1`,
736
+ buildRoleArn: buildRole.arn,
737
+ codeArtifact: {
738
+ uri: interpolate`s3://${code.object.bucket}/${code.object.key}`,
739
+ },
740
+ // The code's key doesn't change, so its hash is what rebuilds the image
741
+ // when the code changes.
742
+ description: interpolate`Code ${code.hash.apply((h) =>
743
+ h.slice(0, 16),
744
+ )}`,
745
+ environmentVariables: all([
746
+ args.environment ?? {},
747
+ Link.propertiesToEnv(Link.getProperties(args.link)),
748
+ ]).apply(([environment, linkEnvironment]) => {
749
+ const variables = { ...environment, ...linkEnvironment };
750
+ if (Object.keys(variables).length > 50)
751
+ throw new VisibleError(
752
+ `The "${name}" MicroVm has ${
753
+ Object.keys(variables).length
754
+ } environment variables, from "environment" and one for each link. Lambda allows up to 50.`,
755
+ );
756
+ return variables;
757
+ }),
758
+ },
759
+ { parent: self, ignoreChanges: ["name"] },
760
+ ),
761
+ );
762
+ }
763
+
764
+ // Every build adds a version to the image, and Lambda allows 50.
765
+ function pruneImageVersions() {
766
+ new MicrovmImagePrune(
767
+ `${name}ImagePrune`,
768
+ {
769
+ imageArn: self.image!.arn,
770
+ imageVersion: self.image!.imageVersion,
771
+ region,
772
+ keep: 5,
773
+ },
774
+ { parent: self },
775
+ );
776
+ }
777
+
778
+ function normalizeVpc() {
779
+ if (!args.vpc) return;
780
+
781
+ if (args.vpc instanceof Vpc) {
782
+ const result = {
783
+ privateSubnets: args.vpc.privateSubnets,
784
+ securityGroups: args.vpc.securityGroups,
785
+ };
786
+ return all([
787
+ args.vpc.id,
788
+ args.vpc.nodes.natGateways,
789
+ args.vpc.nodes.natInstances,
790
+ ]).apply(([id, natGateways, natInstances]) => {
791
+ if (natGateways.length === 0 && natInstances.length === 0)
792
+ warnOnce(
793
+ `\nWarning: The "${name}" MicroVm is in the "${id}" VPC, which does not have a NAT gateway. Its MicroVMs can't reach the internet. To let them, set the "nat" prop on the "Vpc" component.\n`,
794
+ );
795
+ return result;
796
+ });
797
+ }
798
+
799
+ return output(args.vpc);
800
+ }
801
+
802
+ function createNetworkConnector() {
803
+ if (!vpc) return;
804
+
805
+ const operatorRole = new iam.Role(
806
+ ...transform(
807
+ args.transform?.operatorRole,
808
+ `${name}OperatorRole`,
809
+ {
810
+ assumeRolePolicy: iam.assumeRolePolicyForPrincipal({
811
+ Service: "network-connectors.lambda.amazonaws.com",
812
+ }),
813
+ inlinePolicies: [
814
+ {
815
+ name: "inline",
816
+ policy: iam.getPolicyDocumentOutput({
817
+ statements: [
818
+ {
819
+ actions: ["ec2:CreateNetworkInterface"],
820
+ resources: [
821
+ interpolate`arn:${partition}:ec2:*:*:network-interface/*`,
822
+ interpolate`arn:${partition}:ec2:*:*:subnet/*`,
823
+ interpolate`arn:${partition}:ec2:*:*:security-group/*`,
824
+ ],
825
+ },
826
+ {
827
+ actions: ["ec2:CreateTags"],
828
+ resources: [
829
+ interpolate`arn:${partition}:ec2:*:*:network-interface/*`,
830
+ ],
831
+ conditions: [
832
+ {
833
+ test: "StringEquals",
834
+ variable: "ec2:ManagedResourceOperator",
835
+ values: ["network-connectors.lambda.amazonaws.com"],
836
+ },
837
+ ],
838
+ },
839
+ ],
840
+ }).json,
841
+ },
842
+ ],
843
+ },
844
+ { parent: self },
845
+ ),
846
+ );
847
+
848
+ return new lambda.CoreNetworkConnector(
849
+ ...transform(
850
+ args.transform?.networkConnector,
851
+ `${name}NetworkConnector`,
852
+ {
853
+ configuration: {
854
+ vpcEgressConfiguration: {
855
+ associatedComputeResourceTypes: ["MicroVm"],
856
+ networkProtocol: "IPv4",
857
+ subnetIds: vpc!.privateSubnets,
858
+ securityGroupIds: vpc!.securityGroups,
859
+ },
860
+ },
861
+ // Lambda checks the operator role as soon as the connector is created. A
862
+ // role IAM hasn't finished propagating fails that check, and leaves a
863
+ // FAILED connector behind, so wait until the role is 20 seconds old.
864
+ operatorRole: all([
865
+ operatorRole.arn,
866
+ operatorRole.createDate,
867
+ ]).apply(async ([arn, created]) => {
868
+ const wait = Date.parse(created) + 20_000 - Date.now();
869
+ if (wait > 0) await new Promise((r) => setTimeout(r, wait));
870
+ return arn;
871
+ }),
872
+ },
873
+ { parent: self },
874
+ ),
875
+ );
876
+ }
877
+
878
+ async function readDockerignore(context: string) {
879
+ const content = await fs.promises
880
+ .readFile(path.join(context, ".dockerignore"), "utf8")
881
+ .catch(() => "");
882
+ const patterns = content
883
+ .split("\n")
884
+ .map((line) => line.trim())
885
+ .filter((line) => line && !line.startsWith("#"));
886
+ if (patterns.some((p) => p.startsWith("!")))
887
+ throw new VisibleError(
888
+ `The "${name}" MicroVm's .dockerignore has an exception ("!"), which isn't supported yet.`,
889
+ );
890
+ return patterns
891
+ .map((p) => p.replace(/^\.?\//, "").replace(/\/$/, ""))
892
+ .flatMap((p) => [p, `${p}/**`]);
893
+ }
894
+ }
895
+
896
+ /**
897
+ * The ARN of the MicroVM image. Not created in `sst dev`, unless `dev` is `false`.
898
+ */
899
+ public get arn() {
900
+ return this.image?.arn;
901
+ }
902
+
903
+ /**
904
+ * The underlying [resources](/docs/components/#nodes) this component creates.
905
+ */
906
+ public get nodes() {
907
+ return {
908
+ /**
909
+ * The MicroVM image. Not created in `sst dev`, unless `dev` is `false`.
910
+ */
911
+ image: this.image,
912
+ /**
913
+ * The IAM role Lambda uses to build the image.
914
+ */
915
+ buildRole: this.buildRole,
916
+ /**
917
+ * The IAM role your MicroVMs run with.
918
+ */
919
+ executionRole: this.executionRole,
920
+ /**
921
+ * The CloudWatch log group.
922
+ */
923
+ logGroup: this.logGroup,
924
+ /**
925
+ * The Lambda network connector. Only created when `vpc` is set, and not in
926
+ * `sst dev`.
927
+ */
928
+ networkConnector: this.networkConnector,
929
+ };
930
+ }
931
+
932
+ /** @internal */
933
+ public getSSTLink() {
934
+ if (this.devUrl)
935
+ return {
936
+ properties: {
937
+ dev: { url: this.devUrl },
938
+ port: this.runDefaults.port,
939
+ },
940
+ };
941
+
942
+ const connector = (type: string) =>
943
+ interpolate`arn:${this.partition}:lambda:${this.region}:aws:network-connector:aws-network-connector:${type}`;
944
+
945
+ return {
946
+ properties: {
947
+ imageArn: this.image!.arn,
948
+ // Pin the version, so a MicroVM runs the image deployed with the code that started it.
949
+ imageVersion: this.image!.imageVersion,
950
+ executionRoleArn: this.executionRole.arn,
951
+ logGroup: this.logGroup.name,
952
+ ingressNetworkConnectors: [connector("ALL_INGRESS")],
953
+ egressNetworkConnectors: [
954
+ this.networkConnector?.arn ?? connector("INTERNET_EGRESS"),
955
+ ],
956
+ port: this.runDefaults.port,
957
+ duration: this.runDefaults.duration,
958
+ idle: this.runDefaults.idle,
959
+ },
960
+ include: [
961
+ permission({
962
+ actions: [
963
+ "lambda:RunMicrovm",
964
+ "lambda:GetMicrovm",
965
+ "lambda:SuspendMicrovm",
966
+ "lambda:ResumeMicrovm",
967
+ "lambda:TerminateMicrovm",
968
+ "lambda:CreateMicrovmAuthToken",
969
+ ],
970
+ // A MicroVM has no ARN of its own: these are authorized on its image.
971
+ resources: [this.image!.arn],
972
+ }),
973
+ permission({
974
+ actions: ["lambda:ListMicrovms", "lambda:PassNetworkConnector"],
975
+ resources: ["*"],
976
+ }),
977
+ permission({
978
+ actions: ["iam:PassRole"],
979
+ resources: [this.executionRole.arn],
980
+ }),
981
+ ],
982
+ };
983
+ }
984
+ }
985
+
986
+ const __pulumiType = "sst:aws:MicroVm";
987
+ // @ts-expect-error
988
+ MicroVm.__pulumiType = __pulumiType;