@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
|
@@ -12,7 +12,9 @@ export interface SimListObjectsV2Command {
|
|
|
12
12
|
*
|
|
13
13
|
* `ContinuationToken` resumes a truncated listing and takes precedence over
|
|
14
14
|
* `StartAfter`, which only positions the first page. `Delimiter` rolls every
|
|
15
|
-
* key holding it after the `Prefix` up into a common prefix.
|
|
15
|
+
* key holding it after the `Prefix` up into a common prefix. `EncodingType`
|
|
16
|
+
* asks for the keys the listing answers with to be encoded, so that a key
|
|
17
|
+
* holding a character XML cannot carry survives the response.
|
|
16
18
|
*/
|
|
17
19
|
export interface SimListObjectsV2CommandInput {
|
|
18
20
|
readonly Bucket?: string | undefined;
|
|
@@ -21,6 +23,7 @@ export interface SimListObjectsV2CommandInput {
|
|
|
21
23
|
readonly MaxKeys?: number | undefined;
|
|
22
24
|
readonly ContinuationToken?: string | undefined;
|
|
23
25
|
readonly StartAfter?: string | undefined;
|
|
26
|
+
readonly EncodingType?: string | undefined;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Minimal structural sim S3 ListObjectsV2 output.
|
|
@@ -42,5 +45,6 @@ export interface SimListObjectsV2CommandOutput {
|
|
|
42
45
|
readonly ContinuationToken?: string | undefined;
|
|
43
46
|
readonly NextContinuationToken?: string | undefined;
|
|
44
47
|
readonly StartAfter?: string | undefined;
|
|
48
|
+
readonly EncodingType?: string | undefined;
|
|
45
49
|
readonly $metadata: SimResponseMetadata;
|
|
46
50
|
}
|
|
@@ -2,6 +2,7 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
|
2
2
|
import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
|
|
3
3
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
4
4
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
5
|
+
import { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
5
6
|
import { simS3EffectiveMaxKeys } from "../../object/s3-object-listing.js";
|
|
6
7
|
import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
|
|
7
8
|
import { ListObjectsAuthorizer } from "../list-objects/list-objects-authorizer.js";
|
|
@@ -45,6 +46,9 @@ export class ListObjectsV2CommandHandler {
|
|
|
45
46
|
}
|
|
46
47
|
// Complete request sequencing before authorization and storage access.
|
|
47
48
|
await this.background.sequence();
|
|
49
|
+
// Refused before anything is listed, the way real S3 refuses an argument
|
|
50
|
+
// it cannot read, rather than after a page has been built.
|
|
51
|
+
const encoding = new SimS3ListingEncoding(command.input.EncodingType);
|
|
48
52
|
const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.listing.maxKeysPerPage);
|
|
49
53
|
this.authorizer.authorize({
|
|
50
54
|
bucket,
|
|
@@ -60,6 +64,7 @@ export class ListObjectsV2CommandHandler {
|
|
|
60
64
|
continuationToken: command.input.ContinuationToken,
|
|
61
65
|
startAfter: command.input.StartAfter,
|
|
62
66
|
maxKeys,
|
|
67
|
+
encoding,
|
|
63
68
|
});
|
|
64
69
|
}
|
|
65
70
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
2
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
3
|
-
import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
|
|
4
3
|
import { SimS3MultipartAccess, } from "../multipart/sim-s3-multipart-access.js";
|
|
5
4
|
/**
|
|
6
5
|
* Simulated S3 ListPartsCommand handler.
|
|
@@ -25,7 +24,8 @@ export class ListPartsCommandHandler {
|
|
|
25
24
|
assertDefined(Key, "ListPartsCommand.input.Key");
|
|
26
25
|
assertDefined(UploadId, "ListPartsCommand.input.UploadId");
|
|
27
26
|
const { bucket } = await this.access.reach(Bucket, Key, options);
|
|
28
|
-
const
|
|
27
|
+
const upload = this.access.requireUpload(bucket, UploadId);
|
|
28
|
+
const parts = upload.storedParts();
|
|
29
29
|
return {
|
|
30
30
|
Bucket: bucket.bucketName,
|
|
31
31
|
Key,
|
|
@@ -38,7 +38,7 @@ export class ListPartsCommandHandler {
|
|
|
38
38
|
Size: part.body.length,
|
|
39
39
|
LastModified: part.lastModified,
|
|
40
40
|
})),
|
|
41
|
-
StorageClass:
|
|
41
|
+
StorageClass: upload.storageClass,
|
|
42
42
|
IsTruncated: false,
|
|
43
43
|
$metadata: {},
|
|
44
44
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
2
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
-
import { SimS3NoSuchUpload } from "../../error/sim-s3.error.js";
|
|
3
|
+
import { SimS3NoSuchUpload } from "../../error/sim-s3-upload.error.js";
|
|
4
4
|
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
5
5
|
import { SimS3MultipartAuthorizer } from "./sim-s3-multipart-authorizer.js";
|
|
6
6
|
/**
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3ServerSideEncryptionConfiguration } from "../../bucket/encryption/sim-s3-bucket-encryption.js";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal structural sim S3 PutBucketEncryption command.
|
|
5
|
+
*/
|
|
6
|
+
export interface SimPutBucketEncryptionCommand {
|
|
7
|
+
readonly input: SimPutBucketEncryptionCommandInput;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Minimal structural sim S3 PutBucketEncryption input.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimPutBucketEncryptionCommandInput {
|
|
13
|
+
readonly Bucket?: string | undefined;
|
|
14
|
+
readonly ServerSideEncryptionConfiguration?: SimS3ServerSideEncryptionConfiguration | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Minimal structural sim S3 PutBucketEncryption output.
|
|
18
|
+
*/
|
|
19
|
+
export interface SimPutBucketEncryptionCommandOutput {
|
|
20
|
+
readonly $metadata: SimResponseMetadata;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
3
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
5
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
6
|
+
import type { SimPutBucketEncryptionCommand, SimPutBucketEncryptionCommandOutput } from "./put-bucket-encryption.command.js";
|
|
7
|
+
interface PutBucketEncryptionHandlerProperties {
|
|
8
|
+
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
9
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
10
|
+
readonly background?: BackgroundScheduler;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Simulated S3 PutBucketEncryptionCommand handler.
|
|
14
|
+
*
|
|
15
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutBucketEncryptionCommand/
|
|
16
|
+
*/
|
|
17
|
+
export declare class PutBucketEncryptionCommandHandler implements CommandHandler<SimPutBucketEncryptionCommand, SimPutBucketEncryptionCommandOutput> {
|
|
18
|
+
private readonly buckets;
|
|
19
|
+
private readonly authorizer;
|
|
20
|
+
private readonly background;
|
|
21
|
+
constructor(properties: PutBucketEncryptionHandlerProperties);
|
|
22
|
+
/**
|
|
23
|
+
* Authorize and apply a Bucket's default encryption.
|
|
24
|
+
*
|
|
25
|
+
* The configuration decides the algorithm an Object written without one is
|
|
26
|
+
* stamped with. Objects already in the Bucket keep what they were written
|
|
27
|
+
* with, as they do in real S3.
|
|
28
|
+
*/
|
|
29
|
+
handle(command: SimPutBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<SimPutBucketEncryptionCommandOutput>;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { SimS3BucketEncryption } from "../../bucket/encryption/sim-s3-bucket-encryption.js";
|
|
5
|
+
import { SimS3EncryptionAuthorizer } from "../encryption/sim-s3-encryption-authorizer.js";
|
|
6
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
7
|
+
/**
|
|
8
|
+
* Simulated S3 PutBucketEncryptionCommand handler.
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutBucketEncryptionCommand/
|
|
11
|
+
*/
|
|
12
|
+
export class PutBucketEncryptionCommandHandler {
|
|
13
|
+
buckets;
|
|
14
|
+
authorizer;
|
|
15
|
+
background;
|
|
16
|
+
constructor(properties) {
|
|
17
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
18
|
+
this.buckets = buckets;
|
|
19
|
+
this.authorizer = new SimS3EncryptionAuthorizer({ iam });
|
|
20
|
+
this.background = background;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Authorize and apply a Bucket's default encryption.
|
|
24
|
+
*
|
|
25
|
+
* The configuration decides the algorithm an Object written without one is
|
|
26
|
+
* stamped with. Objects already in the Bucket keep what they were written
|
|
27
|
+
* with, as they do in real S3.
|
|
28
|
+
*/
|
|
29
|
+
async handle(command, options) {
|
|
30
|
+
assertDefined(command.input.Bucket, "PutBucketEncryptionCommand.input.Bucket");
|
|
31
|
+
assertDefined(command.input.ServerSideEncryptionConfiguration, "PutBucketEncryptionCommand.input.ServerSideEncryptionConfiguration");
|
|
32
|
+
const bucketName = command.input.Bucket;
|
|
33
|
+
const bucket = requireSimS3Bucket(this.buckets, bucketName);
|
|
34
|
+
await this.background.sequence();
|
|
35
|
+
this.authorizer.authorizeWrite(bucket, options);
|
|
36
|
+
bucket.configureEncryption(SimS3BucketEncryption.fromConfiguration(command.input.ServerSideEncryptionConfiguration, bucketName));
|
|
37
|
+
return {
|
|
38
|
+
$metadata: {},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimS3Object } from "../../object/s3-object.js";
|
|
2
|
+
import type { SimS3ServerSideEncryption } from "../../object/s3-server-side-encryption.js";
|
|
2
3
|
import type { SimPutObjectCommand } from "./put-object.command.js";
|
|
3
4
|
import type { SimClock } from "../../../../util/clock/sim-clock.js";
|
|
4
5
|
interface PutObjectBuilderProperties {
|
|
@@ -25,7 +26,10 @@ export declare class PutObjectBuilder {
|
|
|
25
26
|
*
|
|
26
27
|
* The Object is dated by the simulation's clock rather than the host's, so a
|
|
27
28
|
* test that freezes time gets a last-modified time it can assert on.
|
|
29
|
+
*
|
|
30
|
+
* The Bucket's default encryption is passed in because the request has the
|
|
31
|
+
* last word on it and the Bucket answers for a request that names none.
|
|
28
32
|
*/
|
|
29
|
-
build(command: SimPutObjectCommand): SimS3Object;
|
|
33
|
+
build(command: SimPutObjectCommand, bucketEncryption: SimS3ServerSideEncryption): SimS3Object;
|
|
30
34
|
}
|
|
31
35
|
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SimS3Object } from "../../object/s3-object.js";
|
|
2
2
|
import { simS3WriteBodyBuffer } from "../../object/s3-write-body.js";
|
|
3
3
|
import { simS3WriteMetadata } from "../../object/s3-write-metadata.js";
|
|
4
|
+
import { simS3WriteEncryption, simS3WriteStorageClass, } from "../../object/s3-write-storage.js";
|
|
5
|
+
import { simS3WriteTags } from "../../object/s3-write-tagging.js";
|
|
4
6
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
5
7
|
/**
|
|
6
8
|
* Converts the supported PutObject request fields into a stored sim S3 Object.
|
|
@@ -25,14 +27,21 @@ export class PutObjectBuilder {
|
|
|
25
27
|
*
|
|
26
28
|
* The Object is dated by the simulation's clock rather than the host's, so a
|
|
27
29
|
* test that freezes time gets a last-modified time it can assert on.
|
|
30
|
+
*
|
|
31
|
+
* The Bucket's default encryption is passed in because the request has the
|
|
32
|
+
* last word on it and the Bucket answers for a request that names none.
|
|
28
33
|
*/
|
|
29
|
-
build(command) {
|
|
34
|
+
build(command, bucketEncryption) {
|
|
30
35
|
assertDefined(command.input.Key, "PutObjectCommand.input.Key");
|
|
36
|
+
const storageClass = simS3WriteStorageClass(command.input, "PutObjectCommand");
|
|
31
37
|
return new SimS3Object({
|
|
32
38
|
key: command.input.Key,
|
|
33
39
|
body: simS3WriteBodyBuffer(command.input.Body, "PutObjectCommand"),
|
|
34
40
|
metadata: simS3WriteMetadata(command.input),
|
|
41
|
+
tags: simS3WriteTags(command.input, "PutObjectCommand"),
|
|
35
42
|
lastModified: this.clock.now(),
|
|
43
|
+
...(storageClass !== undefined && { storageClass }),
|
|
44
|
+
serverSideEncryption: simS3WriteEncryption(command.input, bucketEncryption, "PutObjectCommand"),
|
|
36
45
|
});
|
|
37
46
|
}
|
|
38
47
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
2
|
import type { SimS3WriteBody } from "../../object/s3-write-body.js";
|
|
3
3
|
import type { SimS3ObjectWriteMetadata } from "../../object/s3-write-metadata.js";
|
|
4
|
+
import type { SimS3ObjectWriteStorage } from "../../object/s3-write-storage.js";
|
|
5
|
+
import type { SimS3ObjectWriteTagging } from "../../object/s3-write-tagging.js";
|
|
4
6
|
/**
|
|
5
7
|
* Minimal structural sim S3 PutObject command.
|
|
6
8
|
*/
|
|
@@ -14,7 +16,7 @@ export interface SimPutObjectCommand {
|
|
|
14
16
|
* Object carries, which is why they are declared once in
|
|
15
17
|
* `SimS3ObjectWriteMetadata` and shared with `CreateMultipartUpload`.
|
|
16
18
|
*/
|
|
17
|
-
export interface SimPutObjectCommandInput extends SimS3ObjectWriteMetadata {
|
|
19
|
+
export interface SimPutObjectCommandInput extends SimS3ObjectWriteMetadata, SimS3ObjectWriteStorage, SimS3ObjectWriteTagging {
|
|
18
20
|
readonly Bucket?: string | undefined;
|
|
19
21
|
readonly Key?: string | undefined;
|
|
20
22
|
readonly Body?: SimPutObjectBody;
|
|
@@ -30,6 +32,8 @@ export interface SimPutObjectCommandInput extends SimS3ObjectWriteMetadata {
|
|
|
30
32
|
export interface SimPutObjectCommandOutput {
|
|
31
33
|
readonly ETag?: string;
|
|
32
34
|
readonly VersionId?: string | undefined;
|
|
35
|
+
/** The encryption S3 stamped on the Object it stored. */
|
|
36
|
+
readonly ServerSideEncryption?: string | undefined;
|
|
33
37
|
readonly $metadata: SimResponseMetadata;
|
|
34
38
|
}
|
|
35
39
|
/**
|
|
@@ -44,7 +44,7 @@ export class PutObjectCommandHandler {
|
|
|
44
44
|
// Allow for potential non-deterministic sequencing of async events.
|
|
45
45
|
await this.background.sequence();
|
|
46
46
|
const caller = this.authorizer.authorize(bucket, Key, options);
|
|
47
|
-
const object = this.objectBuilder.build(command);
|
|
47
|
+
const object = this.objectBuilder.build(command, bucket.getEncryption().algorithm);
|
|
48
48
|
const version = await bucket.putObject(object);
|
|
49
49
|
const versionId = version?.versionId;
|
|
50
50
|
// Every write path funnels through here, so this one call covers the SDK,
|
|
@@ -59,6 +59,7 @@ export class PutObjectCommandHandler {
|
|
|
59
59
|
return {
|
|
60
60
|
ETag: simS3QuotedETag(object.etag),
|
|
61
61
|
...(versionId !== undefined && { VersionId: versionId }),
|
|
62
|
+
ServerSideEncryption: object.serverSideEncryption,
|
|
62
63
|
$metadata: {},
|
|
63
64
|
};
|
|
64
65
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3ObjectTagInput } from "../../object/s3-object-tags.js";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal structural sim S3 PutObjectTagging command.
|
|
5
|
+
*/
|
|
6
|
+
export interface SimPutObjectTaggingCommand {
|
|
7
|
+
readonly input: SimPutObjectTaggingCommandInput;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Minimal structural sim S3 PutObjectTagging input.
|
|
11
|
+
*
|
|
12
|
+
* The tag set arrives as a list here rather than as the query string a write
|
|
13
|
+
* carries it in, because this request has a body of its own to put it in.
|
|
14
|
+
*/
|
|
15
|
+
export interface SimPutObjectTaggingCommandInput {
|
|
16
|
+
readonly Bucket?: string | undefined;
|
|
17
|
+
readonly Key?: string | undefined;
|
|
18
|
+
/** The version to tag. A request naming none tags the current one. */
|
|
19
|
+
readonly VersionId?: string | undefined;
|
|
20
|
+
readonly Tagging?: SimS3TaggingInput | undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Minimal structural sim S3 tag set, as a tagging request states one.
|
|
24
|
+
*/
|
|
25
|
+
export interface SimS3TaggingInput {
|
|
26
|
+
readonly TagSet?: readonly SimS3ObjectTagInput[] | undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Minimal structural sim S3 PutObjectTagging output.
|
|
30
|
+
*
|
|
31
|
+
* `VersionId` is the version the tags were put on, on a Bucket keeping
|
|
32
|
+
* versions.
|
|
33
|
+
*/
|
|
34
|
+
export interface SimPutObjectTaggingCommandOutput {
|
|
35
|
+
readonly VersionId?: string | undefined;
|
|
36
|
+
readonly $metadata: SimResponseMetadata;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type SimS3ObjectTaggingAccessProperties } from "../tagging/sim-s3-object-tagging-access.js";
|
|
3
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
4
|
+
import type { SimPutObjectTaggingCommand, SimPutObjectTaggingCommandOutput } from "./put-object-tagging.command.js";
|
|
5
|
+
/**
|
|
6
|
+
* Simulated S3 PutObjectTaggingCommand handler.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutObjectTaggingCommand/
|
|
9
|
+
*/
|
|
10
|
+
export declare class PutObjectTaggingCommandHandler implements CommandHandler<SimPutObjectTaggingCommand, SimPutObjectTaggingCommandOutput> {
|
|
11
|
+
private readonly access;
|
|
12
|
+
constructor(properties: SimS3ObjectTaggingAccessProperties);
|
|
13
|
+
/**
|
|
14
|
+
* Replace the tags on an Object, or on the version the request named.
|
|
15
|
+
*
|
|
16
|
+
* Real S3 puts the whole tag set rather than adding to it, so a request
|
|
17
|
+
* naming one tag leaves the Object carrying that tag alone. The set is read
|
|
18
|
+
* before anything is written, which is what refuses eleven tags without
|
|
19
|
+
* leaving ten of them on the Object.
|
|
20
|
+
*/
|
|
21
|
+
handle(command: SimPutObjectTaggingCommand, options?: SimS3RequestOptions): Promise<SimPutObjectTaggingCommandOutput>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimS3ObjectTagSet } from "../../object/s3-object-tags.js";
|
|
3
|
+
import { SimS3ObjectTaggingAccess, } from "../tagging/sim-s3-object-tagging-access.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated S3 PutObjectTaggingCommand handler.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutObjectTaggingCommand/
|
|
8
|
+
*/
|
|
9
|
+
export class PutObjectTaggingCommandHandler {
|
|
10
|
+
access;
|
|
11
|
+
constructor(properties) {
|
|
12
|
+
this.access = new SimS3ObjectTaggingAccess(properties);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Replace the tags on an Object, or on the version the request named.
|
|
16
|
+
*
|
|
17
|
+
* Real S3 puts the whole tag set rather than adding to it, so a request
|
|
18
|
+
* naming one tag leaves the Object carrying that tag alone. The set is read
|
|
19
|
+
* before anything is written, which is what refuses eleven tags without
|
|
20
|
+
* leaving ten of them on the Object.
|
|
21
|
+
*/
|
|
22
|
+
async handle(command, options) {
|
|
23
|
+
const { Tagging } = command.input;
|
|
24
|
+
assertDefined(Tagging, "PutObjectTaggingCommand.input.Tagging");
|
|
25
|
+
const tags = SimS3ObjectTagSet.from(Tagging.TagSet ?? [], "PutObjectTaggingCommand");
|
|
26
|
+
const { bucket, taggable, caller } = await this.access.reach({
|
|
27
|
+
commandName: "PutObjectTaggingCommand",
|
|
28
|
+
action: "s3:PutObjectTagging",
|
|
29
|
+
input: command.input,
|
|
30
|
+
}, options);
|
|
31
|
+
const object = await taggable.retag(tags);
|
|
32
|
+
this.access.notifications.objectTagged({
|
|
33
|
+
bucket,
|
|
34
|
+
object,
|
|
35
|
+
caller,
|
|
36
|
+
eventName: "s3:ObjectTagging:Put",
|
|
37
|
+
versionId: taggable.versionId,
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
...(taggable.versionId !== undefined && {
|
|
41
|
+
VersionId: taggable.versionId,
|
|
42
|
+
}),
|
|
43
|
+
$metadata: {},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -16,7 +16,10 @@ export type { SimDeletePublicAccessBlockCommand, SimDeletePublicAccessBlockComma
|
|
|
16
16
|
export type { SimDeleteBucketLifecycleCommand, SimDeleteBucketLifecycleCommandOutput, } from "./delete-bucket-lifecycle/delete-bucket-lifecycle.command.js";
|
|
17
17
|
export type { SimGetBucketLifecycleConfigurationCommand, SimGetBucketLifecycleConfigurationCommandOutput, } from "./get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.command.js";
|
|
18
18
|
export type { SimPutBucketLifecycleConfigurationCommand, SimPutBucketLifecycleConfigurationCommandOutput, SimS3LifecycleConfiguration, SimS3LifecycleRule, } from "./put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js";
|
|
19
|
+
export type { SimDeleteBucketEncryptionCommand, SimDeleteBucketEncryptionCommandOutput, } from "./delete-bucket-encryption/delete-bucket-encryption.command.js";
|
|
20
|
+
export type { SimGetBucketEncryptionCommand, SimGetBucketEncryptionCommandOutput, } from "./get-bucket-encryption/get-bucket-encryption.command.js";
|
|
19
21
|
export type { SimGetBucketVersioningCommand, SimGetBucketVersioningCommandOutput, } from "./get-bucket-versioning/get-bucket-versioning.command.js";
|
|
22
|
+
export type { SimPutBucketEncryptionCommand, SimPutBucketEncryptionCommandOutput, } from "./put-bucket-encryption/put-bucket-encryption.command.js";
|
|
20
23
|
export type { SimPutBucketVersioningCommand, SimPutBucketVersioningCommandOutput, } from "./put-bucket-versioning/put-bucket-versioning.command.js";
|
|
21
24
|
export type { SimListObjectVersionsCommand, SimListObjectVersionsCommandOutput, SimS3DeleteMarkerSummary, SimS3ObjectVersionSummary, } from "./list-object-versions/list-object-versions.command.js";
|
|
22
25
|
export type { SimGetBucketPolicyCommand, SimGetBucketPolicyCommandOutput, } from "./get-bucket-policy/get-bucket-policy.command.js";
|
|
@@ -41,3 +44,6 @@ export type { SimPutObjectLockConfigurationCommand, SimPutObjectLockConfiguratio
|
|
|
41
44
|
export type { SimGetObjectLockConfigurationCommand, SimGetObjectLockConfigurationCommandInput, SimGetObjectLockConfigurationCommandOutput, } from "./get-object-lock-configuration/get-object-lock-configuration.command.js";
|
|
42
45
|
export type { SimPutObjectRetentionCommand, SimPutObjectRetentionCommandInput, SimPutObjectRetentionCommandOutput, } from "./put-object-retention/put-object-retention.command.js";
|
|
43
46
|
export type { SimPutObjectLegalHoldCommand, SimPutObjectLegalHoldCommandInput, SimPutObjectLegalHoldCommandOutput, } from "./put-object-legal-hold/put-object-legal-hold.command.js";
|
|
47
|
+
export type { SimPutObjectTaggingCommand, SimPutObjectTaggingCommandInput, SimPutObjectTaggingCommandOutput, SimS3TaggingInput, } from "./put-object-tagging/put-object-tagging.command.js";
|
|
48
|
+
export type { SimGetObjectTaggingCommand, SimGetObjectTaggingCommandInput, SimGetObjectTaggingCommandOutput, } from "./get-object-tagging/get-object-tagging.command.js";
|
|
49
|
+
export type { SimDeleteObjectTaggingCommand, SimDeleteObjectTaggingCommandInput, SimDeleteObjectTaggingCommandOutput, } from "./delete-object-tagging/delete-object-tagging.command.js";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
2
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
3
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
5
|
+
import type { SimS3TaggableObject } from "../../bucket/tagging/sim-s3-taggable-object.js";
|
|
6
|
+
import type { SimS3ObjectNotifier } from "../../notification/sim-s3-object-notifier.js";
|
|
7
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
8
|
+
import { type SimS3ObjectTaggingAction } from "./sim-s3-object-tagging-authorizer.js";
|
|
9
|
+
export interface SimS3ObjectTaggingAccessProperties {
|
|
10
|
+
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
11
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
12
|
+
readonly background?: BackgroundScheduler;
|
|
13
|
+
readonly notifications: SimS3ObjectNotifier;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The members every tagging request states, alongside the IAM action it is
|
|
17
|
+
* granted by and the command name to report a missing member against.
|
|
18
|
+
*/
|
|
19
|
+
export interface SimS3TaggingRequest {
|
|
20
|
+
readonly commandName: string;
|
|
21
|
+
readonly action: SimS3ObjectTaggingAction;
|
|
22
|
+
readonly input: {
|
|
23
|
+
readonly Bucket?: string | undefined;
|
|
24
|
+
readonly Key?: string | undefined;
|
|
25
|
+
readonly VersionId?: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* What a tagging request names once it has been allowed.
|
|
30
|
+
*/
|
|
31
|
+
interface SimS3ReachedObject {
|
|
32
|
+
readonly bucket: SimS3Bucket;
|
|
33
|
+
readonly taggable: SimS3TaggableObject;
|
|
34
|
+
readonly caller: SimAwsResolvedCaller;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Getting at the tags on an Object, with permission.
|
|
38
|
+
*
|
|
39
|
+
* The three tagging operations share the whole of their preamble: read the
|
|
40
|
+
* Bucket and key the request has to state, find the Bucket or answer
|
|
41
|
+
* NoSuchBucket, let the background scheduler order the request, authorize it
|
|
42
|
+
* under the action that operation is granted by, and find the Object or the
|
|
43
|
+
* version it names. Holding that here leaves each handler with the one thing it
|
|
44
|
+
* actually does to the tags.
|
|
45
|
+
*/
|
|
46
|
+
export declare class SimS3ObjectTaggingAccess {
|
|
47
|
+
readonly notifications: SimS3ObjectNotifier;
|
|
48
|
+
private readonly buckets;
|
|
49
|
+
private readonly authorizer;
|
|
50
|
+
private readonly background;
|
|
51
|
+
constructor(properties: SimS3ObjectTaggingAccessProperties);
|
|
52
|
+
/**
|
|
53
|
+
* Find and authorize the Object a tagging request names.
|
|
54
|
+
*
|
|
55
|
+
* The Bucket is looked up before authorization so a request against a Bucket
|
|
56
|
+
* that is not there keeps S3's error, and the Object is read after it, which
|
|
57
|
+
* leaves a refused caller knowing nothing about which keys exist.
|
|
58
|
+
*/
|
|
59
|
+
reach(request: SimS3TaggingRequest, options?: SimS3RequestOptions): Promise<SimS3ReachedObject>;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
5
|
+
import { SimS3ObjectTaggingAuthorizer, } from "./sim-s3-object-tagging-authorizer.js";
|
|
6
|
+
/**
|
|
7
|
+
* Getting at the tags on an Object, with permission.
|
|
8
|
+
*
|
|
9
|
+
* The three tagging operations share the whole of their preamble: read the
|
|
10
|
+
* Bucket and key the request has to state, find the Bucket or answer
|
|
11
|
+
* NoSuchBucket, let the background scheduler order the request, authorize it
|
|
12
|
+
* under the action that operation is granted by, and find the Object or the
|
|
13
|
+
* version it names. Holding that here leaves each handler with the one thing it
|
|
14
|
+
* actually does to the tags.
|
|
15
|
+
*/
|
|
16
|
+
export class SimS3ObjectTaggingAccess {
|
|
17
|
+
notifications;
|
|
18
|
+
buckets;
|
|
19
|
+
authorizer;
|
|
20
|
+
background;
|
|
21
|
+
constructor(properties) {
|
|
22
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
23
|
+
this.buckets = buckets;
|
|
24
|
+
this.authorizer = new SimS3ObjectTaggingAuthorizer({ iam });
|
|
25
|
+
this.background = background;
|
|
26
|
+
this.notifications = properties.notifications;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Find and authorize the Object a tagging request names.
|
|
30
|
+
*
|
|
31
|
+
* The Bucket is looked up before authorization so a request against a Bucket
|
|
32
|
+
* that is not there keeps S3's error, and the Object is read after it, which
|
|
33
|
+
* leaves a refused caller knowing nothing about which keys exist.
|
|
34
|
+
*/
|
|
35
|
+
async reach(request, options) {
|
|
36
|
+
const { Bucket, Key, VersionId } = request.input;
|
|
37
|
+
assertDefined(Bucket, `${request.commandName}.input.Bucket`);
|
|
38
|
+
assertDefined(Key, `${request.commandName}.input.Key`);
|
|
39
|
+
const bucket = requireSimS3Bucket(this.buckets, Bucket);
|
|
40
|
+
// Allow for potential non-deterministic sequencing of async events.
|
|
41
|
+
await this.background.sequence();
|
|
42
|
+
const caller = this.authorizer.authorize(request.action, bucket, Key, options);
|
|
43
|
+
return {
|
|
44
|
+
bucket,
|
|
45
|
+
taggable: await bucket.taggableObject(Key, VersionId),
|
|
46
|
+
caller,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
|
+
import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
4
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
5
|
+
/**
|
|
6
|
+
* The IAM action one of the three tagging commands is granted by.
|
|
7
|
+
*
|
|
8
|
+
* Real S3 grants them separately, so a policy can let a caller read the tags on
|
|
9
|
+
* an Object it may not retag, and `s3:PutObject` grants none of them.
|
|
10
|
+
*/
|
|
11
|
+
export type SimS3ObjectTaggingAction = "s3:GetObjectTagging" | "s3:PutObjectTagging" | "s3:DeleteObjectTagging";
|
|
12
|
+
interface SimS3ObjectTaggingAuthorizerProperties {
|
|
13
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Applies IAM authorization to the S3 Object tagging commands.
|
|
17
|
+
*
|
|
18
|
+
* All three are authorized against the Object ARN, because tags belong to the
|
|
19
|
+
* Object rather than to the Bucket holding it.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimS3ObjectTaggingAuthorizer {
|
|
22
|
+
private readonly iam;
|
|
23
|
+
constructor(properties: SimS3ObjectTaggingAuthorizerProperties);
|
|
24
|
+
/**
|
|
25
|
+
* Ensure the caller may take this tagging action on an Object, answering the
|
|
26
|
+
* principal it turned out to be.
|
|
27
|
+
*/
|
|
28
|
+
authorize(action: SimS3ObjectTaggingAction, bucket: SimS3Bucket, key: string, options?: SimS3RequestOptions): SimAwsResolvedCaller;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { simS3BucketArn } from "../../bucket/sim-s3-bucket-arn.js";
|
|
2
|
+
import { simS3AuthorizeAction } from "../authorize/sim-s3-authorize-action.js";
|
|
3
|
+
/**
|
|
4
|
+
* Applies IAM authorization to the S3 Object tagging commands.
|
|
5
|
+
*
|
|
6
|
+
* All three are authorized against the Object ARN, because tags belong to the
|
|
7
|
+
* Object rather than to the Bucket holding it.
|
|
8
|
+
*/
|
|
9
|
+
export class SimS3ObjectTaggingAuthorizer {
|
|
10
|
+
iam;
|
|
11
|
+
constructor(properties) {
|
|
12
|
+
this.iam = properties.iam;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Ensure the caller may take this tagging action on an Object, answering the
|
|
16
|
+
* principal it turned out to be.
|
|
17
|
+
*/
|
|
18
|
+
authorize(action, bucket, key, options) {
|
|
19
|
+
return simS3AuthorizeAction({
|
|
20
|
+
iam: this.iam,
|
|
21
|
+
action,
|
|
22
|
+
resource: `${simS3BucketArn(bucket.bucketName)}/${key}`,
|
|
23
|
+
bucket,
|
|
24
|
+
options,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimS3BucketCommandState } from "../sim-s3-bucket-command-state.js";
|
|
2
|
+
import type * as simS3Commands from "../sim-s3-command.types.js";
|
|
3
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
4
|
+
/**
|
|
5
|
+
* The Object tagging commands of one simulated S3 scope.
|
|
6
|
+
*
|
|
7
|
+
* Real S3 holds tags against an Object without rewriting it, and grants each of
|
|
8
|
+
* the three a permission of its own, which is why they are an area rather than
|
|
9
|
+
* three more Object commands.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimS3ObjectTaggingCommands {
|
|
12
|
+
private readonly state;
|
|
13
|
+
constructor(state: SimS3BucketCommandState);
|
|
14
|
+
/**
|
|
15
|
+
* Replace the tags on an Object.
|
|
16
|
+
*/
|
|
17
|
+
put(command: simS3Commands.SimPutObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectTaggingCommandOutput>;
|
|
18
|
+
/**
|
|
19
|
+
* Read the tags on an Object.
|
|
20
|
+
*/
|
|
21
|
+
get(command: simS3Commands.SimGetObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetObjectTaggingCommandOutput>;
|
|
22
|
+
/**
|
|
23
|
+
* Take every tag off an Object.
|
|
24
|
+
*/
|
|
25
|
+
delete(command: simS3Commands.SimDeleteObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteObjectTaggingCommandOutput>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DeleteObjectTaggingCommandHandler } from "../delete-object-tagging/delete-object-tagging.handler.js";
|
|
2
|
+
import { GetObjectTaggingCommandHandler } from "../get-object-tagging/get-object-tagging.handler.js";
|
|
3
|
+
import { PutObjectTaggingCommandHandler } from "../put-object-tagging/put-object-tagging.handler.js";
|
|
4
|
+
/**
|
|
5
|
+
* The Object tagging commands of one simulated S3 scope.
|
|
6
|
+
*
|
|
7
|
+
* Real S3 holds tags against an Object without rewriting it, and grants each of
|
|
8
|
+
* the three a permission of its own, which is why they are an area rather than
|
|
9
|
+
* three more Object commands.
|
|
10
|
+
*/
|
|
11
|
+
export class SimS3ObjectTaggingCommands {
|
|
12
|
+
state;
|
|
13
|
+
constructor(state) {
|
|
14
|
+
this.state = state;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Replace the tags on an Object.
|
|
18
|
+
*/
|
|
19
|
+
async put(command, options) {
|
|
20
|
+
return await new PutObjectTaggingCommandHandler(this.state).handle(command, options);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read the tags on an Object.
|
|
24
|
+
*/
|
|
25
|
+
async get(command, options) {
|
|
26
|
+
return await new GetObjectTaggingCommandHandler(this.state).handle(command, options);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Take every tag off an Object.
|
|
30
|
+
*/
|
|
31
|
+
async delete(command, options) {
|
|
32
|
+
return await new DeleteObjectTaggingCommandHandler(this.state).handle(command, options);
|
|
33
|
+
}
|
|
34
|
+
}
|