@kensio/yulin 1.21.3 → 1.21.5
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/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
- package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
- package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
- package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
- package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
- package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
- package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
- package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
- package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
- package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
- package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
- package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
- package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
- package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
- package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
- package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
- package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
- package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
- package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
- package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
- package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
- package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
- package/dist/service/athena/index.d.ts +1 -1
- package/dist/service/athena/index.js +1 -1
- package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
- package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
- package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
- package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
- package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
- package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
- package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
- package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
- package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
- package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
- package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
- package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
- package/dist/service/cloudformation/sim-cloudformation.js +56 -9
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
- package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
- package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
- package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
- package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
- package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
- package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
- package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
- package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
- package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
- package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
- package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
- package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
- package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
- package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
- package/dist/service/lambda/function/sim-lambda-function.js +11 -9
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
- package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
- package/dist/service/lambda/index.d.ts +1 -0
- package/dist/service/lambda/index.js +1 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
- package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
- package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
- package/dist/service/lambda/sim-lambda-commands.js +11 -0
- package/dist/service/lambda/sim-lambda.d.ts +12 -0
- package/dist/service/lambda/sim-lambda.js +13 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
- package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
- package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
- package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
- package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
- package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
- package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
- package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
- package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
- package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
- package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
- package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
- package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
- package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
- package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
- package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
- package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
- package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
- package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
- package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
- package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
- package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
- package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
- package/dist/service/s3/error/sim-s3.error.js +26 -40
- package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
- package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
- package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
- package/dist/service/s3/object/s3-key-encoding.js +14 -0
- package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
- package/dist/service/s3/object/s3-listing-encoding.js +75 -0
- package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
- package/dist/service/s3/object/s3-object-response-headers.js +49 -2
- package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
- package/dist/service/s3/object/s3-object-storage-report.js +18 -0
- package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
- package/dist/service/s3/object/s3-object-summary.js +1 -10
- package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
- package/dist/service/s3/object/s3-object-tags.js +77 -0
- package/dist/service/s3/object/s3-object.d.ts +49 -0
- package/dist/service/s3/object/s3-object.js +52 -1
- package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
- package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
- package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
- package/dist/service/s3/object/s3-storage-class.js +67 -0
- package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
- package/dist/service/s3/object/s3-write-metadata.js +43 -0
- package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
- package/dist/service/s3/object/s3-write-storage.js +21 -0
- package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
- package/dist/service/s3/object/s3-write-tagging.js +19 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
- package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
- package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
- package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
- package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
- package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
- package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
- package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
- package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
- package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
- package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
- package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
- package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
- package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
- package/dist/service/s3/sim-s3-commands.d.ts +10 -0
- package/dist/service/s3/sim-s3-commands.js +13 -0
- package/dist/service/s3/sim-s3-operations.d.ts +11 -4
- package/dist/service/s3/sim-s3-operations.js +17 -4
- package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
- package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
- package/dist/service/s3/sim-s3.d.ts +28 -0
- package/dist/service/s3/sim-s3.js +38 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
- package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
- package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
- package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
- package/dist/util/background/background-clock-waits.d.ts +52 -0
- package/dist/util/background/background-clock-waits.js +76 -0
- package/dist/util/background/background-jitter.js +1 -0
- package/dist/util/background/background-pending-tasks.d.ts +55 -0
- package/dist/util/background/background-pending-tasks.js +117 -0
- package/dist/util/background/background-settled-tasks.d.ts +4 -1
- package/dist/util/background/background-settled-tasks.js +4 -1
- package/dist/util/background/background.d.ts +43 -0
- package/dist/util/background/background.js +27 -19
- package/dist/util/background/non-deterministic-background.d.ts +12 -0
- package/dist/util/background/non-deterministic-background.js +24 -20
- package/dist/util/clock/sim-clock-control.js +23 -2
- package/docs/services/apigateway/README.md +3 -1
- package/docs/services/athena/README.md +126 -3
- package/docs/services/cloudformation/README.md +831 -67
- package/docs/services/cognito/README.md +5 -0
- package/docs/services/dynamodb/README.md +86 -11
- package/docs/services/lambda/README.md +603 -39
- package/docs/services/s3/README.md +688 -57
- package/package.json +8 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { samAuthError, samAuthorizerLogicalId, samAuthorizerResultTtl, } from "./sim-cfn-sam-api-auth.js";
|
|
2
|
+
import { samApiIdentity } from "./sim-cfn-sam-api-identity.js";
|
|
3
|
+
import { samAuthorizerPermissionResource, samAuthorizerUri, } from "./sim-cfn-sam-authorizer-function.js";
|
|
4
|
+
import { samRestIdentityPrefixes } from "./sim-cfn-sam-identity-prefixes.js";
|
|
5
|
+
/**
|
|
6
|
+
* A REST API Lambda authorizer, which asks a function of the template what to
|
|
7
|
+
* do with the request.
|
|
8
|
+
*
|
|
9
|
+
* `FunctionPayloadType` decides which of the two kinds it is. A `TOKEN`
|
|
10
|
+
* authorizer is handed one header, and a `REQUEST` authorizer the whole
|
|
11
|
+
* request. SAM defaults to `TOKEN`, and so does this. A `TOKEN` authorizer
|
|
12
|
+
* naming no header of its own reads `Authorization`, and a `REQUEST` one is
|
|
13
|
+
* allowed to read nothing by name, which is how it is asked to run on every
|
|
14
|
+
* request.
|
|
15
|
+
*/
|
|
16
|
+
export function samRestLambdaAuthorizer(authorizer, functionArn) {
|
|
17
|
+
const { api, name, definition } = authorizer;
|
|
18
|
+
const identity = samApiIdentity({
|
|
19
|
+
api,
|
|
20
|
+
authorizerName: name,
|
|
21
|
+
authorizer: definition,
|
|
22
|
+
prefixes: samRestIdentityPrefixes,
|
|
23
|
+
});
|
|
24
|
+
const logicalId = samAuthorizerLogicalId(api, name);
|
|
25
|
+
const type = payloadType(authorizer);
|
|
26
|
+
const declared = identity.identitySource.join(",");
|
|
27
|
+
return {
|
|
28
|
+
authorizationType: "CUSTOM",
|
|
29
|
+
logicalId,
|
|
30
|
+
authorizationScopes: undefined,
|
|
31
|
+
resources: {
|
|
32
|
+
[logicalId]: {
|
|
33
|
+
Type: "AWS::ApiGateway::Authorizer",
|
|
34
|
+
Properties: {
|
|
35
|
+
RestApiId: { Ref: api.logicalId },
|
|
36
|
+
Name: name,
|
|
37
|
+
Type: type,
|
|
38
|
+
AuthorizerUri: samAuthorizerUri(functionArn),
|
|
39
|
+
...identitySource(type, declared),
|
|
40
|
+
...samAuthorizerResultTtl(identity.reauthorizeEvery),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
[`${logicalId}Permission`]: samAuthorizerPermissionResource({
|
|
44
|
+
functionArn,
|
|
45
|
+
apiLogicalId: api.logicalId,
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Which kind of Lambda authorizer the definition asks for.
|
|
52
|
+
*/
|
|
53
|
+
function payloadType(authorizer) {
|
|
54
|
+
const declared = authorizer.definition["FunctionPayloadType"] ?? "TOKEN";
|
|
55
|
+
if (declared !== "TOKEN" && declared !== "REQUEST") {
|
|
56
|
+
throw samAuthError(authorizer.api, `Auth.Authorizers.${authorizer.name}.FunctionPayloadType`, "it is neither TOKEN nor REQUEST");
|
|
57
|
+
}
|
|
58
|
+
return declared;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The `IdentitySource` the authorizer is created with, which a REST API states
|
|
62
|
+
* as one comma-separated string.
|
|
63
|
+
*/
|
|
64
|
+
function identitySource(type, declared) {
|
|
65
|
+
const source = declared || (type === "TOKEN" ? "method.request.header.Authorization" : "");
|
|
66
|
+
return source === "" ? {} : { IdentitySource: source };
|
|
67
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CfnTemplateBodyRecord } from "../../../template/sim-cfn-template.js";
|
|
2
|
+
import type { SamTemplateGlobals } from "../../sim-cfn-sam-globals.js";
|
|
3
|
+
import type { SamApiAuth } from "./sim-cfn-sam-api-auth.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The `Auth` of every API of a template, by the logical ID the API is expanded
|
|
6
|
+
* under.
|
|
7
|
+
*
|
|
8
|
+
* An `Api` or `HttpApi` event puts its method on an API declared somewhere
|
|
9
|
+
* else in the template, and has to know what that API's `Auth` block declared
|
|
10
|
+
* before it can name one of its authorizers. This is read once for the whole
|
|
11
|
+
* template and handed to every event.
|
|
12
|
+
*/
|
|
13
|
+
export type SamTemplateApiAuth = ReadonlyMap<string, SamApiAuth>;
|
|
14
|
+
/**
|
|
15
|
+
* Read the `Auth` of every API a template declares, and of the two implicit
|
|
16
|
+
* APIs its events may make.
|
|
17
|
+
*
|
|
18
|
+
* The implicit APIs are read from `Globals`, which is where SAM says their
|
|
19
|
+
* `Auth` comes from. An API the template declares under one of their logical
|
|
20
|
+
* IDs is the API of that name, and is read last for that reason.
|
|
21
|
+
*
|
|
22
|
+
* An API naming a `DefinitionUri` is left out. Nothing here reads the document
|
|
23
|
+
* it points at, so the API is not expanded at all and there is no authorizer
|
|
24
|
+
* Resource for a method to name.
|
|
25
|
+
*/
|
|
26
|
+
export declare function samTemplateApiAuth(template: CfnTemplateBodyRecord, globals: SamTemplateGlobals): SamTemplateApiAuth;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { samImplicitHttpApiLogicalId } from "../../function/event/sim-cfn-sam-implicit-http-api.js";
|
|
2
|
+
import { samImplicitRestApiLogicalId } from "../../function/event/sim-cfn-sam-implicit-rest-api.js";
|
|
3
|
+
import { samResourceProperties } from "../../function/sim-cfn-sam-function-properties.js";
|
|
4
|
+
import { samMergedApiProperties } from "../../sim-cfn-sam-globals.js";
|
|
5
|
+
import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
|
|
6
|
+
import { samHttpApiType } from "../sim-cfn-sam-http-api.js";
|
|
7
|
+
import { samRestApiType } from "../sim-cfn-sam-rest-api.js";
|
|
8
|
+
import { samHttpApiAuth } from "./sim-cfn-sam-http-api-auth.js";
|
|
9
|
+
import { samRestApiAuth } from "./sim-cfn-sam-rest-api-auth.js";
|
|
10
|
+
/**
|
|
11
|
+
* Read the `Auth` of every API a template declares, and of the two implicit
|
|
12
|
+
* APIs its events may make.
|
|
13
|
+
*
|
|
14
|
+
* The implicit APIs are read from `Globals`, which is where SAM says their
|
|
15
|
+
* `Auth` comes from. An API the template declares under one of their logical
|
|
16
|
+
* IDs is the API of that name, and is read last for that reason.
|
|
17
|
+
*
|
|
18
|
+
* An API naming a `DefinitionUri` is left out. Nothing here reads the document
|
|
19
|
+
* it points at, so the API is not expanded at all and there is no authorizer
|
|
20
|
+
* Resource for a method to name.
|
|
21
|
+
*/
|
|
22
|
+
export function samTemplateApiAuth(template, globals) {
|
|
23
|
+
const resources = isSamTemplateRecord(template.Resources)
|
|
24
|
+
? Object.entries(template.Resources)
|
|
25
|
+
: [];
|
|
26
|
+
return new Map([
|
|
27
|
+
[
|
|
28
|
+
samImplicitRestApiLogicalId,
|
|
29
|
+
samRestApiAuth(samImplicitRestApiLogicalId, globals.forApi),
|
|
30
|
+
],
|
|
31
|
+
[
|
|
32
|
+
samImplicitHttpApiLogicalId,
|
|
33
|
+
samHttpApiAuth(samImplicitHttpApiLogicalId, globals.forHttpApi),
|
|
34
|
+
],
|
|
35
|
+
...resources.flatMap(([logicalId, resource]) => declaredApiAuth(logicalId, resource, globals)),
|
|
36
|
+
]);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The `Auth` of one Resource of the template, where the Resource is a SAM API
|
|
40
|
+
* this expansion covers.
|
|
41
|
+
*/
|
|
42
|
+
function declaredApiAuth(logicalId, resource, globals) {
|
|
43
|
+
if (!isSamTemplateRecord(resource)) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
const type = resource["Type"];
|
|
47
|
+
if (type === samRestApiType) {
|
|
48
|
+
return apiAuth(logicalId, resource, globals.forApi, samRestApiAuth);
|
|
49
|
+
}
|
|
50
|
+
if (type === samHttpApiType) {
|
|
51
|
+
return apiAuth(logicalId, resource, globals.forHttpApi, samHttpApiAuth);
|
|
52
|
+
}
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
function apiAuth(logicalId, resource, globals, read) {
|
|
56
|
+
const apiProperties = samMergedApiProperties(globals, samResourceProperties(resource));
|
|
57
|
+
if (apiProperties["DefinitionUri"] !== undefined) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
return [[logicalId, read(logicalId, apiProperties)]];
|
|
61
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `Auth` properties an API can declare that this expansion does not model,
|
|
3
|
+
* and what each one would have done.
|
|
4
|
+
*
|
|
5
|
+
* Every one of them is refused by name rather than dropped, because an API
|
|
6
|
+
* that quietly lost part of its `Auth` block deploys open under a template
|
|
7
|
+
* that reads as closed.
|
|
8
|
+
*/
|
|
9
|
+
export declare const samUnsupportedApiAuth: ReadonlyMap<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* The `Auth` properties an `Api` or `HttpApi` event can declare that this
|
|
12
|
+
* expansion does not model.
|
|
13
|
+
*/
|
|
14
|
+
export declare const samUnsupportedEventAuth: ReadonlyMap<string, string>;
|
|
15
|
+
/**
|
|
16
|
+
* The `Identity` properties of an authorizer this expansion does not model.
|
|
17
|
+
*/
|
|
18
|
+
export declare const samUnsupportedIdentity: ReadonlyMap<string, string>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `Auth` properties an API can declare that this expansion does not model,
|
|
3
|
+
* and what each one would have done.
|
|
4
|
+
*
|
|
5
|
+
* Every one of them is refused by name rather than dropped, because an API
|
|
6
|
+
* that quietly lost part of its `Auth` block deploys open under a template
|
|
7
|
+
* that reads as closed.
|
|
8
|
+
*/
|
|
9
|
+
export const samUnsupportedApiAuth = new Map([
|
|
10
|
+
[
|
|
11
|
+
"AddDefaultAuthorizerToCorsPreflight",
|
|
12
|
+
"it decides whether the OPTIONS method a Cors block generates is " +
|
|
13
|
+
"authorized, and Cors is not expanded here",
|
|
14
|
+
],
|
|
15
|
+
["ApiKeyRequired", "API keys and usage plans are not simulated"],
|
|
16
|
+
["UsagePlan", "API keys and usage plans are not simulated"],
|
|
17
|
+
[
|
|
18
|
+
"InvokeRole",
|
|
19
|
+
"it names the Role API Gateway calls the integration as, and an " +
|
|
20
|
+
"integration here is invoked as the API rather than as a Role",
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
"ResourcePolicy",
|
|
24
|
+
"an API Gateway resource policy is not simulated. Close the API with an " +
|
|
25
|
+
"authorizer instead",
|
|
26
|
+
],
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* The `Auth` properties an `Api` or `HttpApi` event can declare that this
|
|
30
|
+
* expansion does not model.
|
|
31
|
+
*/
|
|
32
|
+
export const samUnsupportedEventAuth = new Map([
|
|
33
|
+
["ApiKeyRequired", "API keys and usage plans are not simulated"],
|
|
34
|
+
[
|
|
35
|
+
"InvokeRole",
|
|
36
|
+
"it names the Role API Gateway calls the integration as, and an " +
|
|
37
|
+
"integration here is invoked as the API rather than as a Role",
|
|
38
|
+
],
|
|
39
|
+
[
|
|
40
|
+
"ResourcePolicy",
|
|
41
|
+
"an API Gateway resource policy is not simulated. Close the method with " +
|
|
42
|
+
"an authorizer instead",
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
"OverrideApiAuth",
|
|
46
|
+
"it lets an event replace the API's own Auth block rather than name one " +
|
|
47
|
+
"of its authorizers",
|
|
48
|
+
],
|
|
49
|
+
]);
|
|
50
|
+
/**
|
|
51
|
+
* The `Identity` properties of an authorizer this expansion does not model.
|
|
52
|
+
*/
|
|
53
|
+
export const samUnsupportedIdentity = new Map([
|
|
54
|
+
[
|
|
55
|
+
"ValidationExpression",
|
|
56
|
+
"it turns a token that does not match into a 401 before the authorizer " +
|
|
57
|
+
"runs, and that check is not simulated",
|
|
58
|
+
],
|
|
59
|
+
]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MappedFactory } from "@kensio/part-factory";
|
|
2
|
-
import { samFunctionType } from "../function/sim-cfn-sam-function.js";
|
|
2
|
+
import { samFunctionType } from "../function/sim-cfn-sam-function-type.js";
|
|
3
3
|
import { samTransformName } from "../sim-cfn-sam-transform.js";
|
|
4
4
|
import { samHttpApiType } from "./sim-cfn-sam-http-api.js";
|
|
5
5
|
/**
|
|
@@ -22,6 +22,10 @@ export declare const samHttpApiType = "AWS::Serverless::HttpApi";
|
|
|
22
22
|
* points at a document on disk or in S3. Nothing here reads either, and an API
|
|
23
23
|
* declaring one is left as the template wrote it, to be recorded as
|
|
24
24
|
* unsupported. The alternative is an API deployed with no routes at all.
|
|
25
|
+
*
|
|
26
|
+
* An `Auth` block becomes one `AWS::ApiGatewayV2::Authorizer` per authorizer it
|
|
27
|
+
* declares, named after the API and the authorizer, which the routes on the API
|
|
28
|
+
* name by `Ref`.
|
|
25
29
|
*/
|
|
26
30
|
export declare function samHttpApiResources(properties: SamHttpApiExpansionProperties): Record<string, SimCfnTemplateValue>;
|
|
27
31
|
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { samCarriedAttributes, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
|
|
1
|
+
import { samCarriedAttributes, samConditionAttribute, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
|
|
2
2
|
import { samMergedApiProperties } from "../sim-cfn-sam-globals.js";
|
|
3
3
|
import { samPickedProperties } from "../sim-cfn-sam-picked.js";
|
|
4
|
+
import { samApiAuthResources } from "./auth/sim-cfn-sam-api-auth.js";
|
|
5
|
+
import { samHttpApiAuth } from "./auth/sim-cfn-sam-http-api-auth.js";
|
|
4
6
|
import { samHttpApiStageResources } from "./sim-cfn-sam-http-api-stage.js";
|
|
5
7
|
/**
|
|
6
8
|
* The SAM Resource type this expansion covers.
|
|
@@ -10,10 +12,10 @@ export const samHttpApiType = "AWS::Serverless::HttpApi";
|
|
|
10
12
|
* The properties whose names and meanings are the same on both Resource types.
|
|
11
13
|
* Expanding one of them is carrying it across.
|
|
12
14
|
*
|
|
13
|
-
* `Auth` and `Domain` are absent from the list. SAM
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* `Auth` and `Domain` are absent from the list. SAM deploys a `Domain` as a
|
|
16
|
+
* custom domain name Resource. That is not expanded here, and an API declaring
|
|
17
|
+
* one is deployed without it. `Auth` becomes authorizer Resources of its own
|
|
18
|
+
* beside the API.
|
|
17
19
|
*/
|
|
18
20
|
const propertyNames = new Set([
|
|
19
21
|
"CorsConfiguration",
|
|
@@ -36,6 +38,10 @@ const propertyNames = new Set([
|
|
|
36
38
|
* points at a document on disk or in S3. Nothing here reads either, and an API
|
|
37
39
|
* declaring one is left as the template wrote it, to be recorded as
|
|
38
40
|
* unsupported. The alternative is an API deployed with no routes at all.
|
|
41
|
+
*
|
|
42
|
+
* An `Auth` block becomes one `AWS::ApiGatewayV2::Authorizer` per authorizer it
|
|
43
|
+
* declares, named after the API and the authorizer, which the routes on the API
|
|
44
|
+
* name by `Ref`.
|
|
39
45
|
*/
|
|
40
46
|
export function samHttpApiResources(properties) {
|
|
41
47
|
const { logicalId, resource, globals } = properties;
|
|
@@ -55,6 +61,7 @@ export function samHttpApiResources(properties) {
|
|
|
55
61
|
},
|
|
56
62
|
},
|
|
57
63
|
...samHttpApiStageResources({ logicalId, resource, apiProperties }),
|
|
64
|
+
...samApiAuthResources(samHttpApiAuth(logicalId, apiProperties), samConditionAttribute(resource["Condition"])),
|
|
58
65
|
};
|
|
59
66
|
}
|
|
60
67
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MappedFactory } from "@kensio/part-factory";
|
|
2
|
-
import { samFunctionType } from "../function/sim-cfn-sam-function.js";
|
|
2
|
+
import { samFunctionType } from "../function/sim-cfn-sam-function-type.js";
|
|
3
3
|
import { samTransformName } from "../sim-cfn-sam-transform.js";
|
|
4
4
|
import { samRestApiType } from "./sim-cfn-sam-rest-api.js";
|
|
5
5
|
/**
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { samCarriedAttributes, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
|
|
1
|
+
import { samCarriedAttributes, samConditionAttribute, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
|
|
2
2
|
import { samMergedApiProperties } from "../sim-cfn-sam-globals.js";
|
|
3
3
|
import { samPickedProperties } from "../sim-cfn-sam-picked.js";
|
|
4
|
+
import { samApiAuthResources } from "./auth/sim-cfn-sam-api-auth.js";
|
|
5
|
+
import { samRestApiAuth } from "./auth/sim-cfn-sam-rest-api-auth.js";
|
|
4
6
|
import { samRestApiStageResources } from "./sim-cfn-sam-rest-api-stage.js";
|
|
5
7
|
/**
|
|
6
8
|
* The SAM Resource type this expansion covers.
|
|
@@ -10,10 +12,11 @@ export const samRestApiType = "AWS::Serverless::Api";
|
|
|
10
12
|
* The properties whose names and meanings are the same on both Resource types.
|
|
11
13
|
* Expanding one of them is carrying it across.
|
|
12
14
|
*
|
|
13
|
-
* `
|
|
15
|
+
* `Cors`, `Domain`, `GatewayResponses`, `MethodSettings` and
|
|
14
16
|
* `BinaryMediaTypes` are absent from the list. SAM writes all of them into the
|
|
15
17
|
* Swagger document it generates, and none is expanded here, so an API
|
|
16
|
-
* declaring one is deployed without it.
|
|
18
|
+
* declaring one is deployed without it. `Auth` is absent for the opposite
|
|
19
|
+
* reason. It becomes authorizer Resources of its own beside the API.
|
|
17
20
|
*/
|
|
18
21
|
const propertyNames = new Set([
|
|
19
22
|
"Description",
|
|
@@ -60,6 +63,7 @@ export function samRestApiResources(properties) {
|
|
|
60
63
|
},
|
|
61
64
|
},
|
|
62
65
|
...samRestApiStageResources({ logicalId, resource, apiProperties }),
|
|
66
|
+
...samApiAuthResources(samRestApiAuth(logicalId, apiProperties), samConditionAttribute(resource["Condition"])),
|
|
63
67
|
};
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { samEventAuthorization } from "../../api/auth/sim-cfn-sam-event-authorization.js";
|
|
1
2
|
import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
|
|
2
3
|
import { samApiInvokePermissionResource } from "./sim-cfn-sam-api-invoke-permission.js";
|
|
3
4
|
import { samApiEventPathParts, samApiEventPathResources, samApiEventResourceId, } from "./sim-cfn-sam-api-event-path.js";
|
|
@@ -84,8 +85,11 @@ function samApiEventPath(properties) {
|
|
|
84
85
|
*
|
|
85
86
|
* SAM integrates an `Api` event as a proxy, which is the shape the function is
|
|
86
87
|
* handed the request in, and the REST API declares an integration as a block
|
|
87
|
-
* of the method.
|
|
88
|
-
*
|
|
88
|
+
* of the method.
|
|
89
|
+
*
|
|
90
|
+
* `Auth` on the event names one of the API's authorizers, and an event naming
|
|
91
|
+
* none takes the API's `DefaultAuthorizer`. A method neither of them closes
|
|
92
|
+
* authorizes nothing, and every request matching it reaches the function.
|
|
89
93
|
*/
|
|
90
94
|
function methodResource(properties) {
|
|
91
95
|
const { event, apiLogicalId, path } = properties;
|
|
@@ -96,7 +100,7 @@ function methodResource(properties) {
|
|
|
96
100
|
RestApiId: { Ref: apiLogicalId },
|
|
97
101
|
ResourceId: samApiEventResourceId(apiLogicalId, path),
|
|
98
102
|
HttpMethod: samApiEventHttpMethod(event.properties),
|
|
99
|
-
|
|
103
|
+
...samEventAuthorization(event, apiLogicalId),
|
|
100
104
|
Integration: {
|
|
101
105
|
Type: "AWS_PROXY",
|
|
102
106
|
IntegrationHttpMethod: "POST",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { SamFunctionEvent } from "./sim-cfn-sam-declared-event.js";
|
|
3
|
+
import type { SamResourceEdit } from "./sim-cfn-sam-resource-edit.js";
|
|
4
|
+
/**
|
|
5
|
+
* The Resource a `Cognito` event expands into, which is the permission the
|
|
6
|
+
* pool invokes the function under.
|
|
7
|
+
*
|
|
8
|
+
* A user pool checks the function's resource policy every time a trigger
|
|
9
|
+
* fires, so the entry in its `LambdaConfig` is not enough on its own. The
|
|
10
|
+
* grant names the pool as the source, so a permission written for one pool
|
|
11
|
+
* does not open the function to another.
|
|
12
|
+
*
|
|
13
|
+
* The pool is not made to depend on the permission. Cognito reads the policy
|
|
14
|
+
* when the trigger fires rather than when the pool is created, and a pool
|
|
15
|
+
* depending on a permission that names the pool is the circular dependency
|
|
16
|
+
* CloudFormation refuses.
|
|
17
|
+
*/
|
|
18
|
+
export declare function samCognitoEventResources(event: SamFunctionEvent): Record<string, SimCfnTemplateValue>;
|
|
19
|
+
/**
|
|
20
|
+
* The change a `Cognito` event makes to the user pool the template already
|
|
21
|
+
* declares.
|
|
22
|
+
*
|
|
23
|
+
* A trigger is a property of the pool, so this is the second event type with
|
|
24
|
+
* no Resource of its own to be.
|
|
25
|
+
*/
|
|
26
|
+
export declare function samCognitoEventEdits(event: SamFunctionEvent): readonly SamResourceEdit[];
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { isSamTemplateRecord, samValueList } from "../../sim-cfn-sam-record.js";
|
|
2
|
+
import { samTriggeredUserPool } from "./sim-cfn-sam-triggered-user-pool.js";
|
|
3
|
+
/**
|
|
4
|
+
* The Resource a `Cognito` event expands into, which is the permission the
|
|
5
|
+
* pool invokes the function under.
|
|
6
|
+
*
|
|
7
|
+
* A user pool checks the function's resource policy every time a trigger
|
|
8
|
+
* fires, so the entry in its `LambdaConfig` is not enough on its own. The
|
|
9
|
+
* grant names the pool as the source, so a permission written for one pool
|
|
10
|
+
* does not open the function to another.
|
|
11
|
+
*
|
|
12
|
+
* The pool is not made to depend on the permission. Cognito reads the policy
|
|
13
|
+
* when the trigger fires rather than when the pool is created, and a pool
|
|
14
|
+
* depending on a permission that names the pool is the circular dependency
|
|
15
|
+
* CloudFormation refuses.
|
|
16
|
+
*/
|
|
17
|
+
export function samCognitoEventResources(event) {
|
|
18
|
+
const trigger = samCognitoTrigger(event);
|
|
19
|
+
if (trigger === undefined) {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
[`${event.functionLogicalId}${event.eventName}CognitoPermission`]: {
|
|
24
|
+
Type: "AWS::Lambda::Permission",
|
|
25
|
+
...event.condition,
|
|
26
|
+
Properties: {
|
|
27
|
+
Action: "lambda:InvokeFunction",
|
|
28
|
+
FunctionName: { "Fn::GetAtt": [event.functionLogicalId, "Arn"] },
|
|
29
|
+
Principal: "cognito-idp.amazonaws.com",
|
|
30
|
+
SourceArn: { "Fn::GetAtt": [trigger.userPoolLogicalId, "Arn"] },
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The change a `Cognito` event makes to the user pool the template already
|
|
37
|
+
* declares.
|
|
38
|
+
*
|
|
39
|
+
* A trigger is a property of the pool, so this is the second event type with
|
|
40
|
+
* no Resource of its own to be.
|
|
41
|
+
*/
|
|
42
|
+
export function samCognitoEventEdits(event) {
|
|
43
|
+
const trigger = samCognitoTrigger(event);
|
|
44
|
+
if (trigger === undefined) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
logicalId: trigger.userPoolLogicalId,
|
|
50
|
+
edit: (resource) => samTriggeredUserPool(event, trigger.triggers, resource),
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the event asks of the pool, or nothing where it named no pool or no
|
|
56
|
+
* trigger.
|
|
57
|
+
*
|
|
58
|
+
* Either one missing leaves the function as it is rather than failing the
|
|
59
|
+
* deployment, the same answer an event of a type nothing expands gets.
|
|
60
|
+
*
|
|
61
|
+
* `UserPool` is the logical ID of a pool of this template, written as the name
|
|
62
|
+
* or as a `Ref` to it, which is what SAM accepts. A pool named any other way is
|
|
63
|
+
* a pool this cannot reach to put a trigger on.
|
|
64
|
+
*/
|
|
65
|
+
function samCognitoTrigger(event) {
|
|
66
|
+
const userPoolLogicalId = logicalIdOf(event.properties["UserPool"]);
|
|
67
|
+
const triggers = triggerNames(event.properties["Trigger"]);
|
|
68
|
+
if (userPoolLogicalId === undefined || triggers.length === 0) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return { userPoolLogicalId, triggers };
|
|
72
|
+
}
|
|
73
|
+
function logicalIdOf(userPool) {
|
|
74
|
+
if (typeof userPool === "string") {
|
|
75
|
+
return userPool;
|
|
76
|
+
}
|
|
77
|
+
const reference = isSamTemplateRecord(userPool) ? userPool["Ref"] : undefined;
|
|
78
|
+
return typeof reference === "string" ? reference : undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The triggers the event names, which SAM states as one name or as a list.
|
|
82
|
+
*/
|
|
83
|
+
function triggerNames(trigger) {
|
|
84
|
+
if (typeof trigger === "string") {
|
|
85
|
+
return [trigger];
|
|
86
|
+
}
|
|
87
|
+
return samValueList(trigger).filter((name) => typeof name === "string");
|
|
88
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { SamTemplateApiAuth } from "../../api/auth/sim-cfn-sam-template-api-auth.js";
|
|
2
3
|
/**
|
|
3
4
|
* What the expansion of a SAM function is asked about its events.
|
|
4
5
|
*/
|
|
@@ -12,6 +13,11 @@ export interface SamFunctionEventsProperties {
|
|
|
12
13
|
* an API of their own.
|
|
13
14
|
*/
|
|
14
15
|
readonly apiGlobals: SimCfnTemplateValueRecord;
|
|
16
|
+
/**
|
|
17
|
+
* The `Auth` of every API of the template, for the events that put a method
|
|
18
|
+
* or a route on one.
|
|
19
|
+
*/
|
|
20
|
+
readonly apiAuth: SamTemplateApiAuth;
|
|
15
21
|
/** The `Condition` the SAM Resource carried, where it carried one. */
|
|
16
22
|
readonly condition: SimCfnTemplateValue | undefined;
|
|
17
23
|
}
|
|
@@ -43,6 +49,12 @@ export interface SamFunctionEvent {
|
|
|
43
49
|
* defaults as one the template declared.
|
|
44
50
|
*/
|
|
45
51
|
readonly apiGlobals: SimCfnTemplateValueRecord;
|
|
52
|
+
/**
|
|
53
|
+
* The `Auth` of every API of the template, by the logical ID each is expanded
|
|
54
|
+
* under. An `Api` or `HttpApi` event reads the one belonging to the API it
|
|
55
|
+
* names, to say how the method or route it expands into is authorized.
|
|
56
|
+
*/
|
|
57
|
+
readonly apiAuth: SamTemplateApiAuth;
|
|
46
58
|
}
|
|
47
59
|
/**
|
|
48
60
|
* One event of a function, as the expansion tables are asked about it.
|
|
@@ -32,6 +32,7 @@ function declaredEvent(properties, eventName, event) {
|
|
|
32
32
|
properties: isSamTemplateRecord(eventProperties) ? eventProperties : {},
|
|
33
33
|
condition: samConditionAttribute(properties.condition),
|
|
34
34
|
apiGlobals: properties.apiGlobals,
|
|
35
|
+
apiAuth: properties.apiAuth,
|
|
35
36
|
},
|
|
36
37
|
},
|
|
37
38
|
];
|
|
@@ -2,6 +2,7 @@ import { samDeclaredEvents } from "./sim-cfn-sam-declared-event.js";
|
|
|
2
2
|
import { samDynamoDbEventResources, samSqsEventResources, } from "./sim-cfn-sam-event-source-mapping-event.js";
|
|
3
3
|
import { samDynamoDbEventEdits, samSqsEventEdits, } from "./sim-cfn-sam-event-source-role.js";
|
|
4
4
|
import { samApiEventResources } from "./sim-cfn-sam-api-event.js";
|
|
5
|
+
import { samCognitoEventEdits, samCognitoEventResources, } from "./sim-cfn-sam-cognito-event.js";
|
|
5
6
|
import { samEventBridgeRuleEventResources } from "./sim-cfn-sam-event-bridge-rule-event.js";
|
|
6
7
|
import { samHttpApiEventResources } from "./sim-cfn-sam-http-api-event.js";
|
|
7
8
|
import { samS3EventEdits, samS3EventResources, } from "./sim-cfn-sam-s3-event.js";
|
|
@@ -19,6 +20,7 @@ import { samSnsEventResources } from "./sim-cfn-sam-sns-event.js";
|
|
|
19
20
|
*/
|
|
20
21
|
const eventExpansions = new Map([
|
|
21
22
|
["Api", samApiEventResources],
|
|
23
|
+
["Cognito", samCognitoEventResources],
|
|
22
24
|
["DynamoDB", samDynamoDbEventResources],
|
|
23
25
|
["EventBridgeRule", samEventBridgeRuleEventResources],
|
|
24
26
|
["HttpApi", samHttpApiEventResources],
|
|
@@ -34,15 +36,16 @@ const eventExpansions = new Map([
|
|
|
34
36
|
*
|
|
35
37
|
* This is the second half of the same table, for what an event cannot express
|
|
36
38
|
* as a Resource of its own. An `S3` event notifies a Bucket the template
|
|
37
|
-
* declares,
|
|
38
|
-
*
|
|
39
|
-
* the
|
|
40
|
-
* last write wins.
|
|
39
|
+
* declares, a `Cognito` event puts a trigger on a user pool, and a polled event
|
|
40
|
+
* grants the function's own execution Role the permission to poll. Keying any
|
|
41
|
+
* of them by the logical ID it changes would deploy the change in place of the
|
|
42
|
+
* Resource, since expanded Resources are merged last write wins.
|
|
41
43
|
*
|
|
42
|
-
* An event type belongs in both tables where it does both, as all
|
|
44
|
+
* An event type belongs in both tables where it does both, as all four of
|
|
43
45
|
* these do.
|
|
44
46
|
*/
|
|
45
47
|
const eventEdits = new Map([
|
|
48
|
+
["Cognito", samCognitoEventEdits],
|
|
46
49
|
["DynamoDB", samDynamoDbEventEdits],
|
|
47
50
|
["S3", samS3EventEdits],
|
|
48
51
|
["SQS", samSqsEventEdits],
|
|
@@ -20,14 +20,16 @@ import { samImplicitHttpApiLogicalId, samImplicitHttpApiResources, } from "./sim
|
|
|
20
20
|
*/
|
|
21
21
|
export function samHttpApiEventResources(event) {
|
|
22
22
|
const apiId = samHttpApiEventApiId(event.properties);
|
|
23
|
+
const apiLogicalId = samHttpApiEventApiLogicalId(event.properties);
|
|
23
24
|
const prefix = `${event.functionLogicalId}${event.eventName}HttpApi`;
|
|
24
25
|
const integrationLogicalId = `${prefix}Integration`;
|
|
25
26
|
return {
|
|
26
27
|
...(event.properties["ApiId"] === undefined &&
|
|
27
|
-
samImplicitHttpApiResources()),
|
|
28
|
+
samImplicitHttpApiResources(event.apiAuth.get(samImplicitHttpApiLogicalId))),
|
|
28
29
|
[integrationLogicalId]: integrationResource(event, apiId),
|
|
29
30
|
[`${prefix}Route`]: samHttpApiRouteResource({
|
|
30
31
|
apiId,
|
|
32
|
+
apiLogicalId,
|
|
31
33
|
integrationLogicalId,
|
|
32
34
|
event,
|
|
33
35
|
}),
|
|
@@ -54,6 +56,26 @@ function samHttpApiEventApiId(properties) {
|
|
|
54
56
|
}
|
|
55
57
|
return isSamTemplateRecord(apiId) ? apiId : { Ref: apiId };
|
|
56
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* The logical ID of the API this event routes to, where that API is a Resource
|
|
61
|
+
* of this template.
|
|
62
|
+
*
|
|
63
|
+
* It is the name the event's `Auth` is read against, since an API's
|
|
64
|
+
* authorizers are declared on the API the template holds. An `ApiId` written
|
|
65
|
+
* as an intrinsic this cannot read names an API whose `Auth` block is out of
|
|
66
|
+
* reach, and the route it expands into takes no authorizer from it.
|
|
67
|
+
*/
|
|
68
|
+
function samHttpApiEventApiLogicalId(properties) {
|
|
69
|
+
const apiId = properties["ApiId"];
|
|
70
|
+
if (apiId === undefined) {
|
|
71
|
+
return samImplicitHttpApiLogicalId;
|
|
72
|
+
}
|
|
73
|
+
if (typeof apiId === "string") {
|
|
74
|
+
return apiId;
|
|
75
|
+
}
|
|
76
|
+
const reference = isSamTemplateRecord(apiId) ? apiId["Ref"] : undefined;
|
|
77
|
+
return typeof reference === "string" ? reference : undefined;
|
|
78
|
+
}
|
|
57
79
|
/**
|
|
58
80
|
* The AWS::ApiGatewayV2::Integration the route sends its requests through.
|
|
59
81
|
*
|
|
@@ -5,13 +5,20 @@ interface SamHttpApiRouteProperties {
|
|
|
5
5
|
readonly apiId: SimCfnTemplateValue;
|
|
6
6
|
/** The logical ID of the integration the route targets. */
|
|
7
7
|
readonly integrationLogicalId: string;
|
|
8
|
+
/**
|
|
9
|
+
* The logical ID of the API the route belongs to, where the API is one this
|
|
10
|
+
* template declares. An event naming its API with an intrinsic this cannot
|
|
11
|
+
* read names no `Auth` block either.
|
|
12
|
+
*/
|
|
13
|
+
readonly apiLogicalId: string | undefined;
|
|
8
14
|
readonly event: SamFunctionEvent;
|
|
9
15
|
}
|
|
10
16
|
/**
|
|
11
17
|
* The AWS::ApiGatewayV2::Route the event's path and method are served by.
|
|
12
18
|
*
|
|
13
|
-
* `Auth` on the event
|
|
14
|
-
*
|
|
19
|
+
* `Auth` on the event names one of the API's authorizers, and an event naming
|
|
20
|
+
* none takes the API's `DefaultAuthorizer`. A route neither of them closes
|
|
21
|
+
* authorizes nothing, and every request matching it reaches the function.
|
|
15
22
|
*/
|
|
16
23
|
export declare function samHttpApiRouteResource(route: SamHttpApiRouteProperties): SimCfnTemplateValueRecord;
|
|
17
24
|
export {};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { simHttpApiDefaultRouteKey } from "../../../../apigatewayv2/api/route/key/sim-http-api-default-route-key.js";
|
|
2
2
|
import { simHttpApiAnyMethod } from "../../../../apigatewayv2/api/route/key/sim-http-api-route-method.js";
|
|
3
|
+
import { samEventAuthorization } from "../../api/auth/sim-cfn-sam-event-authorization.js";
|
|
3
4
|
/**
|
|
4
5
|
* The AWS::ApiGatewayV2::Route the event's path and method are served by.
|
|
5
6
|
*
|
|
6
|
-
* `Auth` on the event
|
|
7
|
-
*
|
|
7
|
+
* `Auth` on the event names one of the API's authorizers, and an event naming
|
|
8
|
+
* none takes the API's `DefaultAuthorizer`. A route neither of them closes
|
|
9
|
+
* authorizes nothing, and every request matching it reaches the function.
|
|
8
10
|
*/
|
|
9
11
|
export function samHttpApiRouteResource(route) {
|
|
10
12
|
return {
|
|
@@ -13,7 +15,7 @@ export function samHttpApiRouteResource(route) {
|
|
|
13
15
|
Properties: {
|
|
14
16
|
ApiId: route.apiId,
|
|
15
17
|
...samHttpApiRouteKey(route.event.properties),
|
|
16
|
-
|
|
18
|
+
...samEventAuthorization(route.event, route.apiLogicalId),
|
|
17
19
|
Target: {
|
|
18
20
|
"Fn::Join": [
|
|
19
21
|
"",
|