sst 3.0.0 → 3.0.1-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.
- package/package.json +7 -139
- package/src/index.ts +1 -0
- package/src/resource.ts +15 -0
- package/tsconfig.json +11 -0
- package/LICENSE +0 -21
- package/README.md +0 -43
- package/bootstrap.d.ts +0 -5
- package/bootstrap.js +0 -318
- package/bus.d.ts +0 -20
- package/bus.js +0 -52
- package/cache.d.ts +0 -4
- package/cache.js +0 -31
- package/cdk/deploy-stack.d.ts +0 -223
- package/cdk/deploy-stack.js +0 -562
- package/cdk/deployments-wrapper.d.ts +0 -3
- package/cdk/deployments-wrapper.js +0 -135
- package/cdk/deployments.d.ts +0 -327
- package/cdk/deployments.js +0 -360
- package/cdk/util.d.ts +0 -1
- package/cdk/util.js +0 -17
- package/cli/ci-info.d.ts +0 -4
- package/cli/ci-info.js +0 -8
- package/cli/colors.d.ts +0 -17
- package/cli/colors.js +0 -27
- package/cli/commands/bind.d.ts +0 -19
- package/cli/commands/bind.js +0 -360
- package/cli/commands/bootstrap.d.ts +0 -15
- package/cli/commands/bootstrap.js +0 -11
- package/cli/commands/build.d.ts +0 -17
- package/cli/commands/build.js +0 -25
- package/cli/commands/connect.d.ts +0 -17
- package/cli/commands/connect.js +0 -55
- package/cli/commands/console.d.ts +0 -15
- package/cli/commands/console.js +0 -22
- package/cli/commands/deploy.d.ts +0 -19
- package/cli/commands/deploy.js +0 -112
- package/cli/commands/dev.d.ts +0 -25
- package/cli/commands/dev.js +0 -351
- package/cli/commands/diff.d.ts +0 -19
- package/cli/commands/diff.js +0 -89
- package/cli/commands/plugins/kysely.d.ts +0 -1
- package/cli/commands/plugins/kysely.js +0 -87
- package/cli/commands/plugins/pothos.d.ts +0 -1
- package/cli/commands/plugins/pothos.js +0 -58
- package/cli/commands/plugins/warmer.d.ts +0 -1
- package/cli/commands/plugins/warmer.js +0 -33
- package/cli/commands/remove.d.ts +0 -19
- package/cli/commands/remove.js +0 -62
- package/cli/commands/secrets/get.d.ts +0 -19
- package/cli/commands/secrets/get.js +0 -27
- package/cli/commands/secrets/list.d.ts +0 -19
- package/cli/commands/secrets/list.js +0 -69
- package/cli/commands/secrets/load.d.ts +0 -17
- package/cli/commands/secrets/load.js +0 -47
- package/cli/commands/secrets/remove.d.ts +0 -19
- package/cli/commands/secrets/remove.js +0 -27
- package/cli/commands/secrets/secrets.d.ts +0 -2
- package/cli/commands/secrets/secrets.js +0 -16
- package/cli/commands/secrets/set.d.ts +0 -21
- package/cli/commands/secrets/set.js +0 -54
- package/cli/commands/telemetry.d.ts +0 -17
- package/cli/commands/telemetry.js +0 -24
- package/cli/commands/transform.d.ts +0 -17
- package/cli/commands/transform.js +0 -62
- package/cli/commands/types.d.ts +0 -15
- package/cli/commands/types.js +0 -25
- package/cli/commands/update.d.ts +0 -17
- package/cli/commands/update.js +0 -116
- package/cli/commands/version.d.ts +0 -15
- package/cli/commands/version.js +0 -15
- package/cli/local/router.d.ts +0 -44
- package/cli/local/router.js +0 -43
- package/cli/local/server.d.ts +0 -22
- package/cli/local/server.js +0 -319
- package/cli/program.d.ts +0 -19
- package/cli/program.js +0 -87
- package/cli/spinner.d.ts +0 -3
- package/cli/spinner.js +0 -14
- package/cli/sst.d.ts +0 -2
- package/cli/sst.js +0 -74
- package/cli/telemetry/environment.d.ts +0 -15
- package/cli/telemetry/environment.js +0 -27
- package/cli/telemetry/post-payload.d.ts +0 -1
- package/cli/telemetry/post-payload.js +0 -27
- package/cli/telemetry/project-id.d.ts +0 -2
- package/cli/telemetry/project-id.js +0 -47
- package/cli/telemetry/telemetry.d.ts +0 -19
- package/cli/telemetry/telemetry.js +0 -103
- package/cli/terminal.d.ts +0 -1
- package/cli/terminal.js +0 -8
- package/cli/ui/deploy.d.ts +0 -10
- package/cli/ui/deploy.js +0 -172
- package/cli/ui/functions.d.ts +0 -2
- package/cli/ui/functions.js +0 -130
- package/cli/ui/header.d.ts +0 -5
- package/cli/ui/header.js +0 -16
- package/cli/ui/stack.d.ts +0 -1
- package/cli/ui/stack.js +0 -6
- package/config.d.ts +0 -56
- package/config.js +0 -244
- package/constructs/Api.d.ts +0 -814
- package/constructs/Api.js +0 -743
- package/constructs/ApiGatewayV1Api.d.ts +0 -642
- package/constructs/ApiGatewayV1Api.js +0 -767
- package/constructs/App.d.ts +0 -168
- package/constructs/App.js +0 -493
- package/constructs/AppSyncApi.d.ts +0 -550
- package/constructs/AppSyncApi.js +0 -493
- package/constructs/AstroSite.d.ts +0 -39
- package/constructs/AstroSite.js +0 -78
- package/constructs/AstroSite.tsdoc.d.ts +0 -2
- package/constructs/AstroSite.tsdoc.js +0 -2
- package/constructs/Auth.d.ts +0 -100
- package/constructs/Auth.js +0 -177
- package/constructs/BaseSite.d.ts +0 -29
- package/constructs/BaseSite.js +0 -43
- package/constructs/Bucket.d.ts +0 -364
- package/constructs/Bucket.js +0 -327
- package/constructs/Cognito.d.ts +0 -232
- package/constructs/Cognito.js +0 -370
- package/constructs/Config.d.ts +0 -3
- package/constructs/Config.js +0 -3
- package/constructs/Construct.d.ts +0 -23
- package/constructs/Construct.js +0 -46
- package/constructs/Cron.d.ts +0 -164
- package/constructs/Cron.js +0 -114
- package/constructs/Distribution.d.ts +0 -143
- package/constructs/Distribution.js +0 -260
- package/constructs/EdgeFunction.d.ts +0 -49
- package/constructs/EdgeFunction.js +0 -442
- package/constructs/EventBus.d.ts +0 -444
- package/constructs/EventBus.js +0 -440
- package/constructs/Function.d.ts +0 -690
- package/constructs/Function.js +0 -583
- package/constructs/FunctionalStack.d.ts +0 -13
- package/constructs/FunctionalStack.js +0 -62
- package/constructs/Job.d.ts +0 -337
- package/constructs/Job.js +0 -404
- package/constructs/KinesisStream.d.ts +0 -224
- package/constructs/KinesisStream.js +0 -207
- package/constructs/Metadata.d.ts +0 -60
- package/constructs/Metadata.js +0 -1
- package/constructs/NextjsSite.d.ts +0 -104
- package/constructs/NextjsSite.js +0 -308
- package/constructs/Parameter.d.ts +0 -37
- package/constructs/Parameter.js +0 -53
- package/constructs/Queue.d.ts +0 -194
- package/constructs/Queue.js +0 -204
- package/constructs/RDS.d.ts +0 -221
- package/constructs/RDS.js +0 -363
- package/constructs/RemixSite.d.ts +0 -42
- package/constructs/RemixSite.js +0 -158
- package/constructs/RemixSite.tsdoc.d.ts +0 -2
- package/constructs/RemixSite.tsdoc.js +0 -2
- package/constructs/Script.d.ts +0 -160
- package/constructs/Script.js +0 -179
- package/constructs/Secret.d.ts +0 -30
- package/constructs/Secret.js +0 -59
- package/constructs/Service.d.ts +0 -487
- package/constructs/Service.js +0 -655
- package/constructs/SolidStartSite.d.ts +0 -37
- package/constructs/SolidStartSite.js +0 -66
- package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
- package/constructs/SolidStartSite.tsdoc.js +0 -2
- package/constructs/SsrFunction.d.ts +0 -60
- package/constructs/SsrFunction.js +0 -226
- package/constructs/SsrSite.d.ts +0 -407
- package/constructs/SsrSite.js +0 -850
- package/constructs/Stack.d.ts +0 -127
- package/constructs/Stack.js +0 -243
- package/constructs/StaticSite.d.ts +0 -348
- package/constructs/StaticSite.js +0 -468
- package/constructs/SvelteKitSite.d.ts +0 -40
- package/constructs/SvelteKitSite.js +0 -106
- package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
- package/constructs/SvelteKitSite.tsdoc.js +0 -2
- package/constructs/Table.d.ts +0 -410
- package/constructs/Table.js +0 -425
- package/constructs/Topic.d.ts +0 -257
- package/constructs/Topic.js +0 -273
- package/constructs/WebSocketApi.d.ts +0 -355
- package/constructs/WebSocketApi.js +0 -404
- package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
- package/constructs/cdk/HttpAwsIntegration.js +0 -24
- package/constructs/cdk/certificate-base.d.ts +0 -18
- package/constructs/cdk/certificate-base.js +0 -26
- package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
- package/constructs/cdk/dns-validated-certificate.js +0 -125
- package/constructs/cdk/website-redirect.d.ts +0 -53
- package/constructs/cdk/website-redirect.js +0 -77
- package/constructs/context.d.ts +0 -3
- package/constructs/context.js +0 -27
- package/constructs/deferred_task.d.ts +0 -6
- package/constructs/deferred_task.js +0 -45
- package/constructs/deprecated/NextjsSite.d.ts +0 -309
- package/constructs/deprecated/NextjsSite.js +0 -1074
- package/constructs/deprecated/cross-region-helper.d.ts +0 -7
- package/constructs/deprecated/cross-region-helper.js +0 -152
- package/constructs/deprecated/index.d.ts +0 -1
- package/constructs/deprecated/index.js +0 -1
- package/constructs/future/Auth.d.ts +0 -80
- package/constructs/future/Auth.js +0 -122
- package/constructs/future/index.d.ts +0 -1
- package/constructs/future/index.js +0 -1
- package/constructs/index.d.ts +0 -32
- package/constructs/index.js +0 -32
- package/constructs/static-file-list.d.ts +0 -1
- package/constructs/static-file-list.js +0 -51
- package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
- package/constructs/util/apiGatewayV1AccessLog.js +0 -76
- package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
- package/constructs/util/apiGatewayV2AccessLog.js +0 -107
- package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
- package/constructs/util/apiGatewayV2Cors.js +0 -21
- package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
- package/constructs/util/apiGatewayV2Domain.js +0 -208
- package/constructs/util/appSyncApiDomain.d.ts +0 -41
- package/constructs/util/appSyncApiDomain.js +0 -176
- package/constructs/util/builder.d.ts +0 -3
- package/constructs/util/builder.js +0 -9
- package/constructs/util/duration.d.ts +0 -3
- package/constructs/util/duration.js +0 -19
- package/constructs/util/functionBinding.d.ts +0 -31
- package/constructs/util/functionBinding.js +0 -104
- package/constructs/util/functionUrlCors.d.ts +0 -67
- package/constructs/util/functionUrlCors.js +0 -23
- package/constructs/util/permission.d.ts +0 -8
- package/constructs/util/permission.js +0 -228
- package/constructs/util/size.d.ts +0 -3
- package/constructs/util/size.js +0 -12
- package/constructs/util/warning.d.ts +0 -11
- package/constructs/util/warning.js +0 -21
- package/context/context.d.ts +0 -13
- package/context/context.js +0 -69
- package/context/context2.d.ts +0 -16
- package/context/context2.js +0 -108
- package/context/handler.d.ts +0 -25
- package/context/handler.js +0 -21
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -2
- package/credentials.d.ts +0 -9
- package/credentials.js +0 -145
- package/error.d.ts +0 -6
- package/error.js +0 -10
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/iot.d.ts +0 -6
- package/iot.js +0 -163
- package/logger.d.ts +0 -3
- package/logger.js +0 -32
- package/node/actor/index.d.ts +0 -29
- package/node/actor/index.js +0 -17
- package/node/api/index.d.ts +0 -64
- package/node/api/index.js +0 -179
- package/node/auth/adapter/adapter.d.ts +0 -3
- package/node/auth/adapter/adapter.js +0 -3
- package/node/auth/adapter/facebook.d.ts +0 -2
- package/node/auth/adapter/facebook.js +0 -26
- package/node/auth/adapter/github.d.ts +0 -2
- package/node/auth/adapter/github.js +0 -21
- package/node/auth/adapter/google.d.ts +0 -9
- package/node/auth/adapter/google.js +0 -18
- package/node/auth/adapter/link.d.ts +0 -8
- package/node/auth/adapter/link.js +0 -39
- package/node/auth/adapter/oauth.d.ts +0 -25
- package/node/auth/adapter/oauth.js +0 -52
- package/node/auth/adapter/oidc.d.ts +0 -17
- package/node/auth/adapter/oidc.js +0 -50
- package/node/auth/adapter/twitch.d.ts +0 -2
- package/node/auth/adapter/twitch.js +0 -11
- package/node/auth/auth.d.ts +0 -24
- package/node/auth/auth.js +0 -74
- package/node/auth/index.d.ts +0 -13
- package/node/auth/index.js +0 -12
- package/node/auth/session.d.ts +0 -76
- package/node/auth/session.js +0 -121
- package/node/bucket/index.d.ts +0 -3
- package/node/bucket/index.js +0 -2
- package/node/config/index.d.ts +0 -13
- package/node/config/index.js +0 -22
- package/node/event-bus/index.d.ts +0 -51
- package/node/event-bus/index.js +0 -76
- package/node/function/index.d.ts +0 -3
- package/node/function/index.js +0 -3
- package/node/future/auth/adapter/adapter.d.ts +0 -10
- package/node/future/auth/adapter/adapter.js +0 -1
- package/node/future/auth/adapter/code.d.ts +0 -17
- package/node/future/auth/adapter/code.js +0 -68
- package/node/future/auth/adapter/facebook.d.ts +0 -16
- package/node/future/auth/adapter/facebook.js +0 -27
- package/node/future/auth/adapter/github.d.ts +0 -23
- package/node/future/auth/adapter/github.js +0 -23
- package/node/future/auth/adapter/google.d.ts +0 -28
- package/node/future/auth/adapter/google.js +0 -22
- package/node/future/auth/adapter/link.d.ts +0 -13
- package/node/future/auth/adapter/link.js +0 -47
- package/node/future/auth/adapter/microsoft.d.ts +0 -22
- package/node/future/auth/adapter/microsoft.js +0 -16
- package/node/future/auth/adapter/oauth.d.ts +0 -41
- package/node/future/auth/adapter/oauth.js +0 -67
- package/node/future/auth/adapter/oidc.d.ts +0 -30
- package/node/future/auth/adapter/oidc.js +0 -63
- package/node/future/auth/adapter/spotify.d.ts +0 -23
- package/node/future/auth/adapter/spotify.js +0 -22
- package/node/future/auth/encryption.d.ts +0 -2
- package/node/future/auth/encryption.js +0 -30
- package/node/future/auth/handler.d.ts +0 -46
- package/node/future/auth/handler.js +0 -280
- package/node/future/auth/index.d.ts +0 -17
- package/node/future/auth/index.js +0 -15
- package/node/future/auth/session.d.ts +0 -71
- package/node/future/auth/session.js +0 -146
- package/node/graphql/index.d.ts +0 -15
- package/node/graphql/index.js +0 -32
- package/node/job/index.d.ts +0 -37
- package/node/job/index.js +0 -64
- package/node/kinesis-stream/index.d.ts +0 -3
- package/node/kinesis-stream/index.js +0 -3
- package/node/queue/index.d.ts +0 -3
- package/node/queue/index.js +0 -2
- package/node/rds/index.d.ts +0 -3
- package/node/rds/index.js +0 -2
- package/node/service/index.d.ts +0 -3
- package/node/service/index.js +0 -4
- package/node/site/index.d.ts +0 -18
- package/node/site/index.js +0 -18
- package/node/table/index.d.ts +0 -3
- package/node/table/index.js +0 -4
- package/node/topic/index.d.ts +0 -3
- package/node/topic/index.js +0 -4
- package/node/util/index.d.ts +0 -2
- package/node/util/index.js +0 -196
- package/node/util/loader.d.ts +0 -2
- package/node/util/loader.js +0 -51
- package/node/websocket-api/index.d.ts +0 -23
- package/node/websocket-api/index.js +0 -48
- package/pothos.d.ts +0 -7
- package/pothos.js +0 -160
- package/project.d.ts +0 -75
- package/project.js +0 -188
- package/runtime/handlers/container.d.ts +0 -2
- package/runtime/handlers/container.js +0 -263
- package/runtime/handlers/dotnet.d.ts +0 -2
- package/runtime/handlers/dotnet.js +0 -115
- package/runtime/handlers/go.d.ts +0 -2
- package/runtime/handlers/go.js +0 -126
- package/runtime/handlers/java.d.ts +0 -2
- package/runtime/handlers/java.js +0 -103
- package/runtime/handlers/node.d.ts +0 -2
- package/runtime/handlers/node.js +0 -269
- package/runtime/handlers/python.d.ts +0 -2
- package/runtime/handlers/python.js +0 -141
- package/runtime/handlers/pythonBundling.d.ts +0 -82
- package/runtime/handlers/pythonBundling.js +0 -80
- package/runtime/handlers/rust.d.ts +0 -2
- package/runtime/handlers/rust.js +0 -110
- package/runtime/handlers.d.ts +0 -74
- package/runtime/handlers.js +0 -151
- package/runtime/iot.d.ts +0 -1
- package/runtime/iot.js +0 -17
- package/runtime/runtime.d.ts +0 -32
- package/runtime/runtime.js +0 -1
- package/runtime/server.d.ts +0 -6
- package/runtime/server.js +0 -150
- package/runtime/workers.d.ts +0 -37
- package/runtime/workers.js +0 -85
- package/stacks/app-metadata.d.ts +0 -7
- package/stacks/app-metadata.js +0 -75
- package/stacks/assembly.d.ts +0 -1
- package/stacks/assembly.js +0 -4
- package/stacks/build.d.ts +0 -9
- package/stacks/build.js +0 -110
- package/stacks/deploy.d.ts +0 -9
- package/stacks/deploy.js +0 -240
- package/stacks/diff.d.ts +0 -8
- package/stacks/diff.js +0 -62
- package/stacks/index.d.ts +0 -10
- package/stacks/index.js +0 -10
- package/stacks/metadata.d.ts +0 -11
- package/stacks/metadata.js +0 -83
- package/stacks/monitor.d.ts +0 -32
- package/stacks/monitor.js +0 -151
- package/stacks/remove.d.ts +0 -8
- package/stacks/remove.js +0 -76
- package/stacks/synth.d.ts +0 -12
- package/stacks/synth.js +0 -94
- package/support/base-site-archiver.mjs +0 -99
- package/support/base-site-custom-resource/s3-handler.py +0 -195
- package/support/base-site-custom-resource/s3-upload.py +0 -89
- package/support/bootstrap-metadata-function/index.mjs +0 -58011
- package/support/bridge/Dockerfile +0 -3
- package/support/bridge/bridge.mjs +0 -146
- package/support/certificate-requestor/index.js +0 -549
- package/support/custom-resources/index.mjs +0 -180627
- package/support/dotnet31-bootstrap/Program.cs +0 -17
- package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
- package/support/dotnet6-bootstrap/Program.cs +0 -17
- package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
- package/support/edge-function/edge-lambda-version.mjs +0 -3
- package/support/edge-function/edge-lambda.mjs +0 -3
- package/support/edge-function/s3-bucket.mjs +0 -3
- package/support/event-bus-retrier/index.mjs +0 -75
- package/support/java-runtime/install.sh +0 -25
- package/support/java-runtime/pom.xml +0 -39
- package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
- package/support/job-manager/index.mjs +0 -57679
- package/support/nixpacks/Dockerfile +0 -6
- package/support/nodejs-runtime/index.mjs +0 -169
- package/support/python-runtime/Dockerfile +0 -9
- package/support/python-runtime/Dockerfile.custom +0 -21
- package/support/python-runtime/Dockerfile.dependencies +0 -26
- package/support/python-runtime/runtime.py +0 -127
- package/support/rds-migrator/index.mjs +0 -49
- package/support/remix-site-function/edge-server.js +0 -161
- package/support/remix-site-function/polyfill.js +0 -24
- package/support/remix-site-function/regional-server.js +0 -164
- package/support/script-function/index.mjs +0 -48760
- package/support/service-dev-function/index.js +0 -1
- package/support/signing-function/index.mjs +0 -3769
- package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
- package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
- package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
- package/support/sls-nextjs-site-stub/index.html +0 -99
- package/support/ssr-site-function-archiver.mjs +0 -96
- package/support/ssr-site-function-stub/index.js +0 -5
- package/support/ssr-warmer/index.mjs +0 -34235
- package/util/error.d.ts +0 -3
- package/util/error.js +0 -6
- package/util/fs.d.ts +0 -4
- package/util/fs.js +0 -46
- package/util/lazy.d.ts +0 -1
- package/util/lazy.js +0 -11
- package/util/module.d.ts +0 -1
- package/util/module.js +0 -5
- package/util/process.d.ts +0 -2
- package/util/process.js +0 -3
- package/watcher.d.ts +0 -14
- package/watcher.js +0 -35
package/constructs/Api.d.ts
DELETED
|
@@ -1,814 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { HttpUrlIntegrationProps, HttpAlbIntegrationProps, HttpNlbIntegrationProps } from "@aws-cdk/aws-apigatewayv2-integrations-alpha";
|
|
3
|
-
import { HttpAwsIntegrationProps } from "./cdk/HttpAwsIntegration.js";
|
|
4
|
-
import { SSTConstruct } from "./Construct.js";
|
|
5
|
-
import { Function as Fn, FunctionProps, FunctionInlineDefinition, FunctionDefinition } from "./Function.js";
|
|
6
|
-
import { FunctionBindingProps } from "./util/functionBinding.js";
|
|
7
|
-
import { Duration } from "./util/duration.js";
|
|
8
|
-
import { Permissions } from "./util/permission.js";
|
|
9
|
-
import * as apigV2Cors from "./util/apiGatewayV2Cors.js";
|
|
10
|
-
import * as apigV2Domain from "./util/apiGatewayV2Domain.js";
|
|
11
|
-
import * as apigV2AccessLog from "./util/apiGatewayV2AccessLog.js";
|
|
12
|
-
import { DomainName, HttpApi, HttpApiProps, HttpRouteIntegration, HttpStageProps, IHttpApi } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
13
|
-
import { HttpJwtAuthorizer, HttpLambdaAuthorizer, HttpLambdaResponseType, HttpUserPoolAuthorizer } from "@aws-cdk/aws-apigatewayv2-authorizers-alpha";
|
|
14
|
-
import { IFunction } from "aws-cdk-lib/aws-lambda";
|
|
15
|
-
import { IApplicationListener, INetworkListener } from "aws-cdk-lib/aws-elasticloadbalancingv2";
|
|
16
|
-
import { LogGroup } from "aws-cdk-lib/aws-logs";
|
|
17
|
-
import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
|
|
18
|
-
declare const PayloadFormatVersions: readonly ["1.0", "2.0"];
|
|
19
|
-
export type ApiPayloadFormatVersion = (typeof PayloadFormatVersions)[number];
|
|
20
|
-
export interface CdkHttpAwsIntegrationProps extends HttpAwsIntegrationProps {
|
|
21
|
-
}
|
|
22
|
-
export type ApiAuthorizer = ApiUserPoolAuthorizer | ApiJwtAuthorizer | ApiLambdaAuthorizer;
|
|
23
|
-
interface ApiBaseAuthorizer {
|
|
24
|
-
/**
|
|
25
|
-
* The name of the authorizer.
|
|
26
|
-
*/
|
|
27
|
-
name?: string;
|
|
28
|
-
/**
|
|
29
|
-
* The identity source for which authorization is requested.
|
|
30
|
-
* @default `["$request.header.Authorization"]`
|
|
31
|
-
*/
|
|
32
|
-
identitySource?: string[];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Specify a user pool authorizer and configure additional options.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```js
|
|
39
|
-
* new Api(stack, "Api", {
|
|
40
|
-
* authorizers: {
|
|
41
|
-
* Authorizer: {
|
|
42
|
-
* type: "user_pool",
|
|
43
|
-
* userPool: {
|
|
44
|
-
* id: userPool.userPoolId,
|
|
45
|
-
* clientIds: [userPoolClient.userPoolClientId],
|
|
46
|
-
* },
|
|
47
|
-
* },
|
|
48
|
-
* },
|
|
49
|
-
* });
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export interface ApiUserPoolAuthorizer extends ApiBaseAuthorizer {
|
|
53
|
-
/**
|
|
54
|
-
* String li any shot and having even a miniscule shotteral to signify that the authorizer is user pool authorizer.
|
|
55
|
-
*/
|
|
56
|
-
type: "user_pool";
|
|
57
|
-
userPool?: {
|
|
58
|
-
/**
|
|
59
|
-
* The id of the user pool to use for authorization.
|
|
60
|
-
*/
|
|
61
|
-
id: string;
|
|
62
|
-
/**
|
|
63
|
-
* The ids of the user pool clients to use for authorization.
|
|
64
|
-
*/
|
|
65
|
-
clientIds?: string[];
|
|
66
|
-
/**
|
|
67
|
-
* The AWS region of the user pool.
|
|
68
|
-
*/
|
|
69
|
-
region?: string;
|
|
70
|
-
};
|
|
71
|
-
cdk?: {
|
|
72
|
-
/**
|
|
73
|
-
* This allows you to override the default settings this construct uses internally to create the authorizer.
|
|
74
|
-
*/
|
|
75
|
-
authorizer: HttpUserPoolAuthorizer;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Specify a JWT authorizer and configure additional options.
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```js
|
|
83
|
-
* new Api(stack, "Api", {
|
|
84
|
-
* authorizers: {
|
|
85
|
-
* Authorizer: {
|
|
86
|
-
* type: "jwt",
|
|
87
|
-
* userPool: {
|
|
88
|
-
* issuer: "https://abc.us.auth0.com",
|
|
89
|
-
* audience: ["123"],
|
|
90
|
-
* },
|
|
91
|
-
* },
|
|
92
|
-
* },
|
|
93
|
-
* });
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
export interface ApiJwtAuthorizer extends ApiBaseAuthorizer {
|
|
97
|
-
/**
|
|
98
|
-
* String literal to signify that the authorizer is JWT authorizer.
|
|
99
|
-
*/
|
|
100
|
-
type: "jwt";
|
|
101
|
-
jwt?: {
|
|
102
|
-
/**
|
|
103
|
-
* The base domain of the identity provider that issues JWT.
|
|
104
|
-
*/
|
|
105
|
-
issuer: string;
|
|
106
|
-
/**
|
|
107
|
-
* A list of the intended recipients of the JWT.
|
|
108
|
-
*/
|
|
109
|
-
audience: string[];
|
|
110
|
-
};
|
|
111
|
-
cdk?: {
|
|
112
|
-
/**
|
|
113
|
-
* This allows you to override the default settings this construct uses internally to create the authorizer.
|
|
114
|
-
*/
|
|
115
|
-
authorizer: HttpJwtAuthorizer;
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Specify a Lambda authorizer and configure additional options.
|
|
120
|
-
*
|
|
121
|
-
* @example
|
|
122
|
-
* ```js
|
|
123
|
-
* new Api(stack, "Api", {
|
|
124
|
-
* authorizers: {
|
|
125
|
-
* Authorizer: {
|
|
126
|
-
* type: "lambda",
|
|
127
|
-
* function: new Function(stack, "Authorizer", {
|
|
128
|
-
* handler: "test/lambda.handler",
|
|
129
|
-
* }),
|
|
130
|
-
* },
|
|
131
|
-
* },
|
|
132
|
-
* });
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
export interface ApiLambdaAuthorizer extends ApiBaseAuthorizer {
|
|
136
|
-
/**
|
|
137
|
-
* String literal to signify that the authorizer is Lambda authorizer.
|
|
138
|
-
*/
|
|
139
|
-
type: "lambda";
|
|
140
|
-
/**
|
|
141
|
-
* Used to create the authorizer function
|
|
142
|
-
*/
|
|
143
|
-
function?: Fn;
|
|
144
|
-
/**
|
|
145
|
-
* The types of responses the lambda can return.
|
|
146
|
-
*
|
|
147
|
-
* If `simple` is included then response format 2.0 will be used.
|
|
148
|
-
* @default ["iam"]
|
|
149
|
-
*/
|
|
150
|
-
responseTypes?: Lowercase<keyof typeof HttpLambdaResponseType>[];
|
|
151
|
-
/**
|
|
152
|
-
* The amount of time the results are cached.
|
|
153
|
-
* @default Not cached
|
|
154
|
-
*/
|
|
155
|
-
resultsCacheTtl?: Duration;
|
|
156
|
-
cdk?: {
|
|
157
|
-
/**
|
|
158
|
-
* This allows you to override the default settings this construct uses internally to create the authorizer.
|
|
159
|
-
*/
|
|
160
|
-
authorizer: HttpLambdaAuthorizer;
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
export interface ApiCorsProps extends apigV2Cors.CorsProps {
|
|
164
|
-
}
|
|
165
|
-
export interface ApiDomainProps extends apigV2Domain.CustomDomainProps {
|
|
166
|
-
}
|
|
167
|
-
export interface ApiAccessLogProps extends apigV2AccessLog.AccessLogProps {
|
|
168
|
-
}
|
|
169
|
-
export interface ApiProps<Authorizers extends Record<string, ApiAuthorizer> = Record<string, ApiAuthorizer>, AuthorizerKeys = keyof Authorizers> {
|
|
170
|
-
/**
|
|
171
|
-
* Define the routes for the API. Can be a function, proxy to another API, or point to an load balancer
|
|
172
|
-
*
|
|
173
|
-
* @example
|
|
174
|
-
*
|
|
175
|
-
* ```js
|
|
176
|
-
* new Api(stack, "api", {
|
|
177
|
-
* routes: {
|
|
178
|
-
* "GET /notes" : "src/list.main",
|
|
179
|
-
* "GET /notes/{id}" : "src/get.main",
|
|
180
|
-
* "$default": "src/default.main"
|
|
181
|
-
* }
|
|
182
|
-
* })
|
|
183
|
-
* ```
|
|
184
|
-
*/
|
|
185
|
-
routes?: Record<string, ApiRouteProps<AuthorizerKeys>>;
|
|
186
|
-
/**
|
|
187
|
-
* CORS support applied to all endpoints in this API
|
|
188
|
-
*
|
|
189
|
-
* @default true
|
|
190
|
-
*
|
|
191
|
-
* @example
|
|
192
|
-
*
|
|
193
|
-
* ```js
|
|
194
|
-
* new Api(stack, "Api", {
|
|
195
|
-
* cors: {
|
|
196
|
-
* allowMethods: ["GET"],
|
|
197
|
-
* },
|
|
198
|
-
* });
|
|
199
|
-
* ```
|
|
200
|
-
*
|
|
201
|
-
*/
|
|
202
|
-
cors?: boolean | ApiCorsProps;
|
|
203
|
-
/**
|
|
204
|
-
* Enable CloudWatch access logs for this API
|
|
205
|
-
*
|
|
206
|
-
* @default true
|
|
207
|
-
*
|
|
208
|
-
* @example
|
|
209
|
-
* ```js
|
|
210
|
-
* new Api(stack, "Api", {
|
|
211
|
-
* accessLog: true
|
|
212
|
-
* });
|
|
213
|
-
* ```
|
|
214
|
-
*
|
|
215
|
-
* ```js
|
|
216
|
-
* new Api(stack, "Api", {
|
|
217
|
-
* accessLog: {
|
|
218
|
-
* retention: "one_week",
|
|
219
|
-
* },
|
|
220
|
-
* });
|
|
221
|
-
* ```
|
|
222
|
-
*/
|
|
223
|
-
accessLog?: boolean | string | ApiAccessLogProps;
|
|
224
|
-
/**
|
|
225
|
-
* Specify a custom domain to use in addition to the automatically generated one. SST currently supports domains that are configured using [Route 53](https://aws.amazon.com/route53/)
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* ```js
|
|
229
|
-
* new Api(stack, "Api", {
|
|
230
|
-
* customDomain: "api.example.com"
|
|
231
|
-
* })
|
|
232
|
-
* ```
|
|
233
|
-
*
|
|
234
|
-
* ```js
|
|
235
|
-
* new Api(stack, "Api", {
|
|
236
|
-
* customDomain: {
|
|
237
|
-
* domainName: "api.example.com",
|
|
238
|
-
* hostedZone: "domain.com",
|
|
239
|
-
* path: "v1"
|
|
240
|
-
* }
|
|
241
|
-
* })
|
|
242
|
-
* ```
|
|
243
|
-
*/
|
|
244
|
-
customDomain?: string | ApiDomainProps;
|
|
245
|
-
/**
|
|
246
|
-
* Define the authorizers for the API. Can be a user pool, JWT, or Lambda authorizers.
|
|
247
|
-
*
|
|
248
|
-
* @example
|
|
249
|
-
* ```js
|
|
250
|
-
* new Api(stack, "Api", {
|
|
251
|
-
* authorizers: {
|
|
252
|
-
* Authorizer: {
|
|
253
|
-
* type: "user_pool",
|
|
254
|
-
* userPool: {
|
|
255
|
-
* id: userPool.userPoolId,
|
|
256
|
-
* clientIds: [userPoolClient.userPoolClientId],
|
|
257
|
-
* },
|
|
258
|
-
* },
|
|
259
|
-
* },
|
|
260
|
-
* });
|
|
261
|
-
* ```
|
|
262
|
-
*/
|
|
263
|
-
authorizers?: Authorizers;
|
|
264
|
-
defaults?: {
|
|
265
|
-
/**
|
|
266
|
-
* The default function props to be applied to all the Lambda functions in the API. The `environment`, `permissions` and `layers` properties will be merged with per route definitions if they are defined.
|
|
267
|
-
*
|
|
268
|
-
* @example
|
|
269
|
-
* ```js
|
|
270
|
-
* new Api(stack, "Api", {
|
|
271
|
-
* defaults: {
|
|
272
|
-
* function: {
|
|
273
|
-
* timeout: 20,
|
|
274
|
-
* environment: { tableName: table.tableName },
|
|
275
|
-
* permissions: [table],
|
|
276
|
-
* }
|
|
277
|
-
* }
|
|
278
|
-
* });
|
|
279
|
-
* ```
|
|
280
|
-
*/
|
|
281
|
-
function?: FunctionProps;
|
|
282
|
-
/**
|
|
283
|
-
* The default authorizer for all the routes in the API.
|
|
284
|
-
*
|
|
285
|
-
* @example
|
|
286
|
-
* ```js
|
|
287
|
-
* new Api(stack, "Api", {
|
|
288
|
-
* defaults: {
|
|
289
|
-
* authorizer: "iam",
|
|
290
|
-
* }
|
|
291
|
-
* });
|
|
292
|
-
* ```
|
|
293
|
-
*
|
|
294
|
-
* @example
|
|
295
|
-
* ```js
|
|
296
|
-
* new Api(stack, "Api", {
|
|
297
|
-
* authorizers: {
|
|
298
|
-
* Authorizer: {
|
|
299
|
-
* type: "user_pool",
|
|
300
|
-
* userPool: {
|
|
301
|
-
* id: userPool.userPoolId,
|
|
302
|
-
* clientIds: [userPoolClient.userPoolClientId],
|
|
303
|
-
* },
|
|
304
|
-
* },
|
|
305
|
-
* },
|
|
306
|
-
* defaults: {
|
|
307
|
-
* authorizer: "Authorizer",
|
|
308
|
-
* }
|
|
309
|
-
* });
|
|
310
|
-
* ```
|
|
311
|
-
*/
|
|
312
|
-
authorizer?: "none" | "iam" | (string extends AuthorizerKeys ? Omit<AuthorizerKeys, "none" | "iam"> : AuthorizerKeys);
|
|
313
|
-
/**
|
|
314
|
-
* An array of scopes to include in the authorization when using `user_pool` or `jwt` authorizers. These will be merged with the scopes from the attached authorizer.
|
|
315
|
-
* @default []
|
|
316
|
-
*/
|
|
317
|
-
authorizationScopes?: string[];
|
|
318
|
-
/**
|
|
319
|
-
* The [payload format version](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) for all the endpoints in the API.
|
|
320
|
-
* @default "2.0"
|
|
321
|
-
*/
|
|
322
|
-
payloadFormatVersion?: ApiPayloadFormatVersion;
|
|
323
|
-
throttle?: {
|
|
324
|
-
/**
|
|
325
|
-
* The [burst rate](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-throttling.html) of the number of concurrent request for all the routes in the API.
|
|
326
|
-
*
|
|
327
|
-
* @example
|
|
328
|
-
* ```js
|
|
329
|
-
* new Api(stack, "Api", {
|
|
330
|
-
* defaults: {
|
|
331
|
-
* throttle: {
|
|
332
|
-
* burst: 100
|
|
333
|
-
* }
|
|
334
|
-
* }
|
|
335
|
-
* })
|
|
336
|
-
* ```
|
|
337
|
-
*/
|
|
338
|
-
burst?: number;
|
|
339
|
-
/**
|
|
340
|
-
* The [steady-state rate](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-throttling.html) of the number of concurrent request for all the routes in the API.
|
|
341
|
-
*
|
|
342
|
-
* @example
|
|
343
|
-
* ```js
|
|
344
|
-
* new Api(stack, "Api", {
|
|
345
|
-
* defaults: {
|
|
346
|
-
* throttle: {
|
|
347
|
-
* rate: 10
|
|
348
|
-
* }
|
|
349
|
-
* }
|
|
350
|
-
* })
|
|
351
|
-
* ```
|
|
352
|
-
*/
|
|
353
|
-
rate?: number;
|
|
354
|
-
};
|
|
355
|
-
};
|
|
356
|
-
cdk?: {
|
|
357
|
-
/**
|
|
358
|
-
* Allows you to override default id for this construct.
|
|
359
|
-
*/
|
|
360
|
-
id?: string;
|
|
361
|
-
/**
|
|
362
|
-
* Import the underlying HTTP API or override the default configuration
|
|
363
|
-
*
|
|
364
|
-
* @example
|
|
365
|
-
* ```js
|
|
366
|
-
* import { HttpApi } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
367
|
-
*
|
|
368
|
-
* new Api(stack, "Api", {
|
|
369
|
-
* cdk: {
|
|
370
|
-
* httpApi: HttpApi.fromHttpApiAttributes(stack, "MyHttpApi", {
|
|
371
|
-
* httpApiId,
|
|
372
|
-
* }),
|
|
373
|
-
* }
|
|
374
|
-
* });
|
|
375
|
-
* ```
|
|
376
|
-
*/
|
|
377
|
-
httpApi?: IHttpApi | HttpApiProps;
|
|
378
|
-
/**
|
|
379
|
-
* Configures the stages to create for the HTTP API.
|
|
380
|
-
*
|
|
381
|
-
* Note that, a default stage is automatically created, unless the `cdk.httpApi.createDefaultStage` is set to `false.
|
|
382
|
-
*
|
|
383
|
-
* @example
|
|
384
|
-
* ```js
|
|
385
|
-
* import { HttpApi } from "@aws-cdk/aws-apigatewayv2-alpha";
|
|
386
|
-
*
|
|
387
|
-
* new Api(stack, "Api", {
|
|
388
|
-
* cdk: {
|
|
389
|
-
* httpStages: [{
|
|
390
|
-
* stageName: "dev",
|
|
391
|
-
* autoDeploy: false,
|
|
392
|
-
* }],
|
|
393
|
-
* }
|
|
394
|
-
* });
|
|
395
|
-
* ```
|
|
396
|
-
*/
|
|
397
|
-
httpStages?: Omit<HttpStageProps, "httpApi">[];
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
export type ApiRouteProps<AuthorizerKeys> = FunctionInlineDefinition | ApiFunctionRouteProps<AuthorizerKeys> | ApiAwsRouteProps<AuthorizerKeys> | ApiHttpRouteProps<AuthorizerKeys> | ApiAlbRouteProps<AuthorizerKeys> | ApiNlbRouteProps<AuthorizerKeys> | ApiGraphQLRouteProps<AuthorizerKeys>;
|
|
401
|
-
interface ApiBaseRouteProps<AuthorizerKeys = string> {
|
|
402
|
-
authorizer?: "none" | "iam" | (string extends AuthorizerKeys ? Omit<AuthorizerKeys, "none" | "iam"> : AuthorizerKeys);
|
|
403
|
-
authorizationScopes?: string[];
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Specify a function route handler and configure additional options
|
|
407
|
-
*
|
|
408
|
-
* @example
|
|
409
|
-
* ```js
|
|
410
|
-
* api.addRoutes(stack, {
|
|
411
|
-
* "GET /notes/{id}": {
|
|
412
|
-
* type: "function",
|
|
413
|
-
* function: "src/get.main",
|
|
414
|
-
* payloadFormatVersion: "1.0",
|
|
415
|
-
* }
|
|
416
|
-
* });
|
|
417
|
-
* ```
|
|
418
|
-
*/
|
|
419
|
-
export interface ApiFunctionRouteProps<AuthorizersKeys = string> extends ApiBaseRouteProps<AuthorizersKeys> {
|
|
420
|
-
type?: "function";
|
|
421
|
-
/**
|
|
422
|
-
*The function definition used to create the function for this route.
|
|
423
|
-
*/
|
|
424
|
-
function?: FunctionDefinition;
|
|
425
|
-
/**
|
|
426
|
-
* The payload format version for the route.
|
|
427
|
-
*
|
|
428
|
-
* @default "2.0"
|
|
429
|
-
*/
|
|
430
|
-
payloadFormatVersion?: ApiPayloadFormatVersion;
|
|
431
|
-
cdk?: {
|
|
432
|
-
/**
|
|
433
|
-
* Use an existing Lambda function.
|
|
434
|
-
*/
|
|
435
|
-
function?: IFunction;
|
|
436
|
-
};
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Specify a function route handler and configure additional options
|
|
440
|
-
*
|
|
441
|
-
* @example
|
|
442
|
-
* ```js
|
|
443
|
-
* api.addRoutes(stack, {
|
|
444
|
-
* "GET /notes/{id}": {
|
|
445
|
-
* type: "aws",
|
|
446
|
-
* cdk: {
|
|
447
|
-
* integration: {
|
|
448
|
-
* subtype: apig.HttpIntegrationSubtype.EVENTBRIDGE_PUT_EVENTS,
|
|
449
|
-
* parameterMapping: ParameterMapping.fromObject({
|
|
450
|
-
* Source: MappingValue.custom("$request.body.source"),
|
|
451
|
-
* DetailType: MappingValue.custom("$request.body.detailType"),
|
|
452
|
-
* Detail: MappingValue.custom("$request.body.detail"),
|
|
453
|
-
* }),
|
|
454
|
-
* }
|
|
455
|
-
* }
|
|
456
|
-
* }
|
|
457
|
-
* });
|
|
458
|
-
* ```
|
|
459
|
-
*/
|
|
460
|
-
export interface ApiAwsRouteProps<AuthorizersKeys> extends ApiBaseRouteProps<AuthorizersKeys> {
|
|
461
|
-
/**
|
|
462
|
-
* This is a constant
|
|
463
|
-
*/
|
|
464
|
-
type: "aws";
|
|
465
|
-
cdk: {
|
|
466
|
-
integration: Omit<CdkHttpAwsIntegrationProps, "credentials">;
|
|
467
|
-
};
|
|
468
|
-
}
|
|
469
|
-
/**
|
|
470
|
-
* Specify a route handler that forwards to another URL
|
|
471
|
-
*
|
|
472
|
-
* @example
|
|
473
|
-
* ```js
|
|
474
|
-
* api.addRoutes(stack, {
|
|
475
|
-
* "GET /notes/{id}": {
|
|
476
|
-
* type: "url",
|
|
477
|
-
* url: "https://example.com/notes/{id}",
|
|
478
|
-
* }
|
|
479
|
-
* });
|
|
480
|
-
* ```
|
|
481
|
-
*/
|
|
482
|
-
export interface ApiHttpRouteProps<AuthorizersKeys> extends ApiBaseRouteProps<AuthorizersKeys> {
|
|
483
|
-
/**
|
|
484
|
-
* This is a constant
|
|
485
|
-
*/
|
|
486
|
-
type: "url";
|
|
487
|
-
/**
|
|
488
|
-
* The URL to forward to
|
|
489
|
-
*/
|
|
490
|
-
url: string;
|
|
491
|
-
cdk?: {
|
|
492
|
-
/**
|
|
493
|
-
* Override the underlying CDK integration
|
|
494
|
-
*/
|
|
495
|
-
integration: HttpUrlIntegrationProps;
|
|
496
|
-
};
|
|
497
|
-
}
|
|
498
|
-
/**
|
|
499
|
-
* Specify a route handler that forwards to an ALB
|
|
500
|
-
*
|
|
501
|
-
* @example
|
|
502
|
-
* ```js
|
|
503
|
-
* api.addRoutes(stack, {
|
|
504
|
-
* "GET /notes/{id}": {
|
|
505
|
-
* type: "alb",
|
|
506
|
-
* cdk: {
|
|
507
|
-
* albListener: listener,
|
|
508
|
-
* }
|
|
509
|
-
* }
|
|
510
|
-
* });
|
|
511
|
-
* ```
|
|
512
|
-
*/
|
|
513
|
-
export interface ApiAlbRouteProps<AuthorizersKeys> extends ApiBaseRouteProps<AuthorizersKeys> {
|
|
514
|
-
type: "alb";
|
|
515
|
-
cdk: {
|
|
516
|
-
/**
|
|
517
|
-
* The listener to the application load balancer used for the integration.
|
|
518
|
-
*/
|
|
519
|
-
albListener: IApplicationListener;
|
|
520
|
-
integration?: HttpAlbIntegrationProps;
|
|
521
|
-
};
|
|
522
|
-
}
|
|
523
|
-
/**
|
|
524
|
-
* Specify a route handler that forwards to an NLB
|
|
525
|
-
*
|
|
526
|
-
* @example
|
|
527
|
-
* ```js
|
|
528
|
-
* api.addRoutes(stack, {
|
|
529
|
-
* "GET /notes/{id}": {
|
|
530
|
-
* type: "nlb",
|
|
531
|
-
* cdk: {
|
|
532
|
-
* nlbListener: listener,
|
|
533
|
-
* }
|
|
534
|
-
* }
|
|
535
|
-
* });
|
|
536
|
-
* ```
|
|
537
|
-
*/
|
|
538
|
-
export interface ApiNlbRouteProps<AuthorizersKeys> extends ApiBaseRouteProps<AuthorizersKeys> {
|
|
539
|
-
type: "nlb";
|
|
540
|
-
cdk: {
|
|
541
|
-
/**
|
|
542
|
-
* The listener to the application load balancer used for the integration.
|
|
543
|
-
*/
|
|
544
|
-
nlbListener: INetworkListener;
|
|
545
|
-
integration?: HttpNlbIntegrationProps;
|
|
546
|
-
};
|
|
547
|
-
}
|
|
548
|
-
/**
|
|
549
|
-
* Specify a route handler that handles GraphQL queries using Pothos
|
|
550
|
-
*
|
|
551
|
-
* @example
|
|
552
|
-
* ```js
|
|
553
|
-
* api.addRoutes(stack, {
|
|
554
|
-
* "POST /graphql": {
|
|
555
|
-
* type: "graphql",
|
|
556
|
-
* function: {
|
|
557
|
-
* handler: "functions/graphql/graphql.ts",
|
|
558
|
-
* },
|
|
559
|
-
* pothos: {
|
|
560
|
-
* schema: "backend/functions/graphql/schema.ts",
|
|
561
|
-
* output: "graphql/schema.graphql",
|
|
562
|
-
* commands: [
|
|
563
|
-
* "./genql graphql/graphql.schema graphql/
|
|
564
|
-
* ]
|
|
565
|
-
* }
|
|
566
|
-
* }
|
|
567
|
-
* })
|
|
568
|
-
* ```
|
|
569
|
-
*/
|
|
570
|
-
export interface ApiGraphQLRouteProps<AuthorizerKeys> extends ApiBaseRouteProps<AuthorizerKeys> {
|
|
571
|
-
type: "graphql";
|
|
572
|
-
/**
|
|
573
|
-
* The function definition used to create the function for this route. Must be a graphql handler
|
|
574
|
-
*/
|
|
575
|
-
function: FunctionDefinition;
|
|
576
|
-
pothos?: {
|
|
577
|
-
/**
|
|
578
|
-
* Path to pothos schema
|
|
579
|
-
*/
|
|
580
|
-
schema?: string;
|
|
581
|
-
/**
|
|
582
|
-
* File to write graphql schema to
|
|
583
|
-
*/
|
|
584
|
-
output?: string;
|
|
585
|
-
/**
|
|
586
|
-
* Commands to run after generating schema. Useful for code generation steps
|
|
587
|
-
*/
|
|
588
|
-
commands?: string[];
|
|
589
|
-
/**
|
|
590
|
-
* List of packages that should be considered internal during schema generation
|
|
591
|
-
*/
|
|
592
|
-
internalPackages?: string[];
|
|
593
|
-
};
|
|
594
|
-
}
|
|
595
|
-
/**
|
|
596
|
-
* The Api construct is a higher level CDK construct that makes it easy to create an API.
|
|
597
|
-
*
|
|
598
|
-
* @example
|
|
599
|
-
*
|
|
600
|
-
* ```ts
|
|
601
|
-
* import { Api } from "sst/constructs";
|
|
602
|
-
*
|
|
603
|
-
* new Api(stack, "Api", {
|
|
604
|
-
* routes: {
|
|
605
|
-
* "GET /notes": "src/list.main",
|
|
606
|
-
* "POST /notes": "src/create.main",
|
|
607
|
-
* "GET /notes/{id}": "src/get.main",
|
|
608
|
-
* "PUT /notes/{id}": "src/update.main",
|
|
609
|
-
* "DELETE /notes/{id}": "src/delete.main",
|
|
610
|
-
* },
|
|
611
|
-
* });
|
|
612
|
-
* ```
|
|
613
|
-
*/
|
|
614
|
-
export declare class Api<Authorizers extends Record<string, ApiAuthorizer> = Record<string, ApiAuthorizer>> extends Construct implements SSTConstruct {
|
|
615
|
-
readonly id: string;
|
|
616
|
-
readonly cdk: {
|
|
617
|
-
/**
|
|
618
|
-
* The internally created CDK HttpApi instance.
|
|
619
|
-
*/
|
|
620
|
-
httpApi: HttpApi;
|
|
621
|
-
/**
|
|
622
|
-
* If access logs are enabled, this is the internally created CDK LogGroup instance.
|
|
623
|
-
*/
|
|
624
|
-
accessLogGroup?: LogGroup;
|
|
625
|
-
/**
|
|
626
|
-
* If custom domain is enabled, this is the internally created CDK DomainName instance.
|
|
627
|
-
*/
|
|
628
|
-
domainName?: DomainName;
|
|
629
|
-
/**
|
|
630
|
-
* If custom domain is enabled, this is the internally created CDK Certificate instance.
|
|
631
|
-
*/
|
|
632
|
-
certificate?: Certificate;
|
|
633
|
-
};
|
|
634
|
-
private props;
|
|
635
|
-
private _customDomainUrl?;
|
|
636
|
-
private routesData;
|
|
637
|
-
private authorizersData;
|
|
638
|
-
private bindingForAllRoutes;
|
|
639
|
-
private permissionsAttachedForAllRoutes;
|
|
640
|
-
constructor(scope: Construct, id: string, props?: ApiProps<Authorizers>);
|
|
641
|
-
/**
|
|
642
|
-
* The AWS generated URL of the Api.
|
|
643
|
-
*/
|
|
644
|
-
get url(): string;
|
|
645
|
-
/**
|
|
646
|
-
* If custom domain is enabled, this is the custom domain URL of the Api.
|
|
647
|
-
*
|
|
648
|
-
* :::note
|
|
649
|
-
* If you are setting the base mapping for the custom domain, you need to include the trailing slash while using the custom domain URL. For example, if the [`domainName`](#domainname) is set to `api.domain.com` and the [`path`](#path) is `v1`, the custom domain URL of the API will be `https://api.domain.com/v1/`.
|
|
650
|
-
* :::
|
|
651
|
-
*/
|
|
652
|
-
get customDomainUrl(): string | undefined;
|
|
653
|
-
/**
|
|
654
|
-
* The routes for the Api
|
|
655
|
-
*/
|
|
656
|
-
get routes(): string[];
|
|
657
|
-
/**
|
|
658
|
-
* The ARN of the internally created API Gateway HTTP API
|
|
659
|
-
*/
|
|
660
|
-
get httpApiArn(): string;
|
|
661
|
-
/**
|
|
662
|
-
* The id of the internally created API Gateway HTTP API
|
|
663
|
-
*/
|
|
664
|
-
get httpApiId(): string;
|
|
665
|
-
/**
|
|
666
|
-
* Adds routes to the Api after it has been created.
|
|
667
|
-
*
|
|
668
|
-
* @example
|
|
669
|
-
* ```js
|
|
670
|
-
* api.addRoutes(stack, {
|
|
671
|
-
* "GET /notes/{id}": "src/get.main",
|
|
672
|
-
* "PUT /notes/{id}": "src/update.main",
|
|
673
|
-
* "DELETE /notes/{id}": "src/delete.main",
|
|
674
|
-
* });
|
|
675
|
-
* ```
|
|
676
|
-
*/
|
|
677
|
-
addRoutes(scope: Construct, routes: Record<string, ApiRouteProps<keyof Authorizers>>): void;
|
|
678
|
-
/**
|
|
679
|
-
* Get the instance of the internally created Function, for a given route key where the `routeKey` is the key used to define a route. For example, `GET /notes`.
|
|
680
|
-
*
|
|
681
|
-
* @example
|
|
682
|
-
* ```js
|
|
683
|
-
* const api = new Api(stack, "Api", {
|
|
684
|
-
* routes: {
|
|
685
|
-
* "GET /notes": "src/list.main",
|
|
686
|
-
* },
|
|
687
|
-
* });
|
|
688
|
-
*
|
|
689
|
-
* const listFunction = api.getFunction("GET /notes");
|
|
690
|
-
* ```
|
|
691
|
-
*/
|
|
692
|
-
getFunction(routeKey: string): Fn | undefined;
|
|
693
|
-
/**
|
|
694
|
-
* Binds the given list of resources to all the routes.
|
|
695
|
-
*
|
|
696
|
-
* @example
|
|
697
|
-
*
|
|
698
|
-
* ```js
|
|
699
|
-
* api.bind([STRIPE_KEY, bucket]);
|
|
700
|
-
* ```
|
|
701
|
-
*/
|
|
702
|
-
bind(constructs: SSTConstruct[]): void;
|
|
703
|
-
/**
|
|
704
|
-
* Binds the given list of resources to a specific route.
|
|
705
|
-
*
|
|
706
|
-
* @example
|
|
707
|
-
* ```js
|
|
708
|
-
* const api = new Api(stack, "Api", {
|
|
709
|
-
* routes: {
|
|
710
|
-
* "GET /notes": "src/list.main",
|
|
711
|
-
* },
|
|
712
|
-
* });
|
|
713
|
-
*
|
|
714
|
-
* api.bindToRoute("GET /notes", [STRIPE_KEY, bucket]);
|
|
715
|
-
* ```
|
|
716
|
-
*
|
|
717
|
-
*/
|
|
718
|
-
bindToRoute(routeKey: string, constructs: SSTConstruct[]): void;
|
|
719
|
-
/**
|
|
720
|
-
* Attaches the given list of permissions to all the routes. This allows the functions to access other AWS resources.
|
|
721
|
-
*
|
|
722
|
-
* @example
|
|
723
|
-
*
|
|
724
|
-
* ```js
|
|
725
|
-
* api.attachPermissions(["s3"]);
|
|
726
|
-
* ```
|
|
727
|
-
*/
|
|
728
|
-
attachPermissions(permissions: Permissions): void;
|
|
729
|
-
/**
|
|
730
|
-
* Attaches the given list of permissions to a specific route. This allows that function to access other AWS resources.
|
|
731
|
-
*
|
|
732
|
-
* @example
|
|
733
|
-
* ```js
|
|
734
|
-
* const api = new Api(stack, "Api", {
|
|
735
|
-
* routes: {
|
|
736
|
-
* "GET /notes": "src/list.main",
|
|
737
|
-
* },
|
|
738
|
-
* });
|
|
739
|
-
*
|
|
740
|
-
* api.attachPermissionsToRoute("GET /notes", ["s3"]);
|
|
741
|
-
* ```
|
|
742
|
-
*
|
|
743
|
-
*/
|
|
744
|
-
attachPermissionsToRoute(routeKey: string, permissions: Permissions): void;
|
|
745
|
-
getConstructMetadata(): {
|
|
746
|
-
type: "Api";
|
|
747
|
-
data: {
|
|
748
|
-
graphql: boolean;
|
|
749
|
-
url: string | undefined;
|
|
750
|
-
httpApiId: string;
|
|
751
|
-
customDomainUrl: string | undefined;
|
|
752
|
-
routes: ({
|
|
753
|
-
type: "function";
|
|
754
|
-
route: string;
|
|
755
|
-
fn: {
|
|
756
|
-
node: string;
|
|
757
|
-
stack: string;
|
|
758
|
-
} | undefined;
|
|
759
|
-
schema?: undefined;
|
|
760
|
-
internalPackages?: undefined;
|
|
761
|
-
output?: undefined;
|
|
762
|
-
commands?: undefined;
|
|
763
|
-
} | {
|
|
764
|
-
type: "graphql";
|
|
765
|
-
route: string;
|
|
766
|
-
fn: {
|
|
767
|
-
node: string;
|
|
768
|
-
stack: string;
|
|
769
|
-
} | undefined;
|
|
770
|
-
schema: string | undefined;
|
|
771
|
-
internalPackages: string[] | undefined;
|
|
772
|
-
output: string | undefined;
|
|
773
|
-
commands: string[] | undefined;
|
|
774
|
-
} | {
|
|
775
|
-
type: "lambda_function" | "aws" | "url" | "alb" | "nlb";
|
|
776
|
-
route: string;
|
|
777
|
-
fn?: undefined;
|
|
778
|
-
schema?: undefined;
|
|
779
|
-
internalPackages?: undefined;
|
|
780
|
-
output?: undefined;
|
|
781
|
-
commands?: undefined;
|
|
782
|
-
})[];
|
|
783
|
-
};
|
|
784
|
-
};
|
|
785
|
-
/** @internal */
|
|
786
|
-
getFunctionBinding(): FunctionBindingProps;
|
|
787
|
-
private createHttpApi;
|
|
788
|
-
private addAuthorizers;
|
|
789
|
-
private addRoute;
|
|
790
|
-
private createAwsProxyIntegration;
|
|
791
|
-
private createHttpIntegration;
|
|
792
|
-
private createAlbIntegration;
|
|
793
|
-
private createNlbIntegration;
|
|
794
|
-
protected createGraphQLIntegration(scope: Construct, routeKey: string, routeProps: ApiGraphQLRouteProps<keyof Authorizers>, postfixName: string): HttpRouteIntegration;
|
|
795
|
-
protected createCdkFunctionIntegration(_scope: Construct, routeKey: string, routeProps: ApiFunctionRouteProps<keyof Authorizers>, postfixName: string): HttpRouteIntegration;
|
|
796
|
-
protected createFunctionIntegration(scope: Construct, routeKey: string, routeProps: ApiFunctionRouteProps<keyof Authorizers>, postfixName: string): HttpRouteIntegration;
|
|
797
|
-
private buildRouteAuth;
|
|
798
|
-
private normalizeRouteKey;
|
|
799
|
-
/**
|
|
800
|
-
* Binds the given list of resources to a specific route.
|
|
801
|
-
*
|
|
802
|
-
* @example
|
|
803
|
-
* ```js
|
|
804
|
-
* const api = new Api(stack, "Api");
|
|
805
|
-
*
|
|
806
|
-
* api.setCors({
|
|
807
|
-
* allowMethods: ["GET"],
|
|
808
|
-
* });
|
|
809
|
-
* ```
|
|
810
|
-
*
|
|
811
|
-
*/
|
|
812
|
-
setCors(cors?: boolean | ApiCorsProps): void;
|
|
813
|
-
}
|
|
814
|
-
export {};
|