@kensio/yulin 1.21.2 → 1.21.4
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/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/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.js +12 -12
- 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.js +8 -15
- 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/factory/sim-cfn-resource-factory.type.d.ts +9 -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 +19 -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/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
- package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -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-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 +51 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -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 +16 -1
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -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/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
- 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/dynamodb/table/sim-dynamodb-index-update.js +1 -2
- 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-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-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 +4 -0
- package/dist/service/s3/sim-s3-commands.js +6 -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 +12 -0
- package/dist/service/s3/sim-s3.js +13 -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 +775 -65
- 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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimS3MalformedXml } from "../../error/sim-s3.error.js";
|
|
2
|
+
import { simS3StorageClassFrom } from "../../object/s3-storage-class.js";
|
|
2
3
|
const ruleStatuses = new Set(["Enabled", "Disabled"]);
|
|
3
4
|
/**
|
|
4
5
|
* The fields that make a rule do something, for the refusal to name.
|
|
@@ -49,4 +50,21 @@ function validateRule(rule, bucketName) {
|
|
|
49
50
|
throw new SimS3MalformedXml(`Lifecycle rule ${named} for S3 Bucket ${bucketName} must state at ` +
|
|
50
51
|
`least one of ${ruleActionNames}`);
|
|
51
52
|
}
|
|
53
|
+
validateTransitionClasses(rule, named, bucketName);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Refuse a transition to a storage class S3 has no such class for.
|
|
57
|
+
*
|
|
58
|
+
* The class is read here, where the configuration is stored, so a rule that
|
|
59
|
+
* names one nothing can transition to is refused before it is applied to
|
|
60
|
+
* anything.
|
|
61
|
+
*/
|
|
62
|
+
function validateTransitionClasses(rule, named, bucketName) {
|
|
63
|
+
const transitions = [
|
|
64
|
+
...(rule.Transitions ?? []),
|
|
65
|
+
...(rule.NoncurrentVersionTransitions ?? []),
|
|
66
|
+
];
|
|
67
|
+
for (const transition of transitions) {
|
|
68
|
+
simS3StorageClassFrom(transition.StorageClass, `lifecycle rule ${named} of S3 Bucket ${bucketName}`);
|
|
69
|
+
}
|
|
52
70
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
-
import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
|
|
3
2
|
import { SimS3MultipartAccess, } from "../multipart/sim-s3-multipart-access.js";
|
|
4
3
|
/**
|
|
5
4
|
* Simulated S3 ListMultipartUploadsCommand handler.
|
|
@@ -33,7 +32,7 @@ export class ListMultipartUploadsCommandHandler {
|
|
|
33
32
|
Key: upload.key,
|
|
34
33
|
UploadId: upload.uploadId,
|
|
35
34
|
Initiated: upload.initiated,
|
|
36
|
-
StorageClass:
|
|
35
|
+
StorageClass: upload.storageClass,
|
|
37
36
|
})),
|
|
38
37
|
IsTruncated: false,
|
|
39
38
|
$metadata: {},
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
2
|
-
import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
|
|
3
2
|
/**
|
|
4
3
|
* Describe the Objects among a page of versions.
|
|
5
4
|
*/
|
|
@@ -13,7 +12,7 @@ export function simS3ObjectVersionSummaries(page, isLatest) {
|
|
|
13
12
|
LastModified: version.lastModified,
|
|
14
13
|
ETag: simS3QuotedETag(version.object.etag),
|
|
15
14
|
Size: version.object.body.length,
|
|
16
|
-
StorageClass:
|
|
15
|
+
StorageClass: version.object.storageClass,
|
|
17
16
|
}));
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
2
3
|
import type { SimListObjectsCommandOutput } from "./list-objects.command.js";
|
|
3
4
|
interface ListObjectsPageInput {
|
|
4
5
|
readonly bucket: SimS3Bucket;
|
|
@@ -6,6 +7,7 @@ interface ListObjectsPageInput {
|
|
|
6
7
|
readonly delimiter?: string | undefined;
|
|
7
8
|
readonly marker?: string | undefined;
|
|
8
9
|
readonly maxKeys: number;
|
|
10
|
+
readonly encoding: SimS3ListingEncoding;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Reads, orders, and paginates Objects for a ListObjects response.
|
|
@@ -18,6 +20,9 @@ interface ListObjectsPageInput {
|
|
|
18
20
|
* operations differ in how a caller names where to resume rather than in which
|
|
19
21
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
20
22
|
*
|
|
23
|
+
* The keys, the prefix, the delimiter and both markers are written the way the
|
|
24
|
+
* listing asked for them, which is encoded or as they are stored.
|
|
25
|
+
*
|
|
21
26
|
* NextMarker is returned only when another page exists, and identifies the
|
|
22
27
|
* final entry in the current page. That entry is a common prefix where the
|
|
23
28
|
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
@@ -12,6 +12,9 @@ import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
|
|
|
12
12
|
* operations differ in how a caller names where to resume rather than in which
|
|
13
13
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
14
14
|
*
|
|
15
|
+
* The keys, the prefix, the delimiter and both markers are written the way the
|
|
16
|
+
* listing asked for them, which is encoded or as they are stored.
|
|
17
|
+
*
|
|
15
18
|
* NextMarker is returned only when another page exists, and identifies the
|
|
16
19
|
* final entry in the current page. That entry is a common prefix where the
|
|
17
20
|
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
@@ -28,16 +31,18 @@ export class ListObjectsPageBuilder {
|
|
|
28
31
|
startAfter: input.marker,
|
|
29
32
|
maxKeys: input.maxKeys,
|
|
30
33
|
});
|
|
34
|
+
const { encoding } = input;
|
|
31
35
|
return {
|
|
32
|
-
Contents: simS3ObjectSummaries(page.objects),
|
|
33
|
-
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
36
|
+
Contents: encoding.summaries(simS3ObjectSummaries(page.objects)),
|
|
37
|
+
CommonPrefixes: encoding.commonPrefixes(simS3CommonPrefixes(page.commonPrefixes)),
|
|
34
38
|
Name: input.bucket.bucketName,
|
|
35
|
-
Prefix: input.prefix,
|
|
36
|
-
Delimiter: input.delimiter,
|
|
37
|
-
Marker: input.marker,
|
|
39
|
+
Prefix: encoding.value(input.prefix),
|
|
40
|
+
Delimiter: encoding.value(input.delimiter),
|
|
41
|
+
Marker: encoding.value(input.marker),
|
|
38
42
|
MaxKeys: input.maxKeys,
|
|
39
43
|
IsTruncated: page.isTruncated,
|
|
40
|
-
NextMarker: page.resumeAfter,
|
|
44
|
+
NextMarker: encoding.value(page.resumeAfter),
|
|
45
|
+
EncodingType: encoding.encodingType,
|
|
41
46
|
$metadata: {},
|
|
42
47
|
};
|
|
43
48
|
}
|
|
@@ -12,7 +12,9 @@ export interface SimListObjectsCommand {
|
|
|
12
12
|
* Minimal structural sim S3 ListObjects input.
|
|
13
13
|
*
|
|
14
14
|
* `Delimiter` rolls every key holding it after the `Prefix` up into a common
|
|
15
|
-
* prefix, which is how a Bucket is walked one folder at a time.
|
|
15
|
+
* prefix, which is how a Bucket is walked one folder at a time. `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 SimListObjectsCommandInput {
|
|
18
20
|
readonly Bucket?: string | undefined;
|
|
@@ -20,6 +22,7 @@ export interface SimListObjectsCommandInput {
|
|
|
20
22
|
readonly Delimiter?: string | undefined;
|
|
21
23
|
readonly Marker?: string | undefined;
|
|
22
24
|
readonly MaxKeys?: number | undefined;
|
|
25
|
+
readonly EncodingType?: string | undefined;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* Minimal structural sim S3 ListObjects output.
|
|
@@ -34,5 +37,6 @@ export interface SimListObjectsCommandOutput {
|
|
|
34
37
|
readonly MaxKeys?: number;
|
|
35
38
|
readonly IsTruncated?: boolean;
|
|
36
39
|
readonly NextMarker?: string | undefined;
|
|
40
|
+
readonly EncodingType?: string | undefined;
|
|
37
41
|
readonly $metadata: SimResponseMetadata;
|
|
38
42
|
}
|
|
@@ -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-authorizer.js";
|
|
@@ -40,6 +41,9 @@ export class ListObjectsCommandHandler {
|
|
|
40
41
|
}
|
|
41
42
|
// Complete request sequencing before authorization and storage access.
|
|
42
43
|
await this.background.sequence();
|
|
44
|
+
// Refused before anything is listed, the way real S3 refuses an argument
|
|
45
|
+
// it cannot read, rather than after a page has been built.
|
|
46
|
+
const encoding = new SimS3ListingEncoding(command.input.EncodingType);
|
|
43
47
|
const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.listing.maxKeysPerPage);
|
|
44
48
|
this.authorizer.authorize({
|
|
45
49
|
bucket,
|
|
@@ -54,6 +58,7 @@ export class ListObjectsCommandHandler {
|
|
|
54
58
|
delimiter: command.input.Delimiter,
|
|
55
59
|
marker: command.input.Marker,
|
|
56
60
|
maxKeys,
|
|
61
|
+
encoding,
|
|
57
62
|
});
|
|
58
63
|
}
|
|
59
64
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
2
3
|
import type { SimListObjectsV2CommandOutput } from "./list-objects-v2.command.js";
|
|
3
4
|
interface ListObjectsV2PageInput {
|
|
4
5
|
readonly bucket: SimS3Bucket;
|
|
@@ -7,6 +8,7 @@ interface ListObjectsV2PageInput {
|
|
|
7
8
|
readonly continuationToken?: string | undefined;
|
|
8
9
|
readonly startAfter?: string | undefined;
|
|
9
10
|
readonly maxKeys: number;
|
|
11
|
+
readonly encoding: SimS3ListingEncoding;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Reads, orders, and paginates Objects for a ListObjectsV2 response.
|
|
@@ -15,6 +17,10 @@ interface ListObjectsV2PageInput {
|
|
|
15
17
|
* called, as it is for the first version of the operation, so a denied request
|
|
16
18
|
* cannot examine Object keys or sizes.
|
|
17
19
|
*
|
|
20
|
+
* The keys, the prefix, the delimiter and the key a first page started after
|
|
21
|
+
* are written the way the listing asked for them, which is encoded or as they
|
|
22
|
+
* are stored. A continuation token is not, because it is opaque either way.
|
|
23
|
+
*
|
|
18
24
|
* The keys on a page are chosen exactly as ListObjects chooses them. What
|
|
19
25
|
* differs is how a caller says where to carry on from: a continuation token
|
|
20
26
|
* from the previous page, which wins, or a StartAfter key that positions the
|
|
@@ -9,6 +9,10 @@ import { simS3ContinuationToken, simS3ContinuationTokenKey, } from "./list-objec
|
|
|
9
9
|
* called, as it is for the first version of the operation, so a denied request
|
|
10
10
|
* cannot examine Object keys or sizes.
|
|
11
11
|
*
|
|
12
|
+
* The keys, the prefix, the delimiter and the key a first page started after
|
|
13
|
+
* are written the way the listing asked for them, which is encoded or as they
|
|
14
|
+
* are stored. A continuation token is not, because it is opaque either way.
|
|
15
|
+
*
|
|
12
16
|
* The keys on a page are chosen exactly as ListObjects chooses them. What
|
|
13
17
|
* differs is how a caller says where to carry on from: a continuation token
|
|
14
18
|
* from the previous page, which wins, or a StartAfter key that positions the
|
|
@@ -27,12 +31,13 @@ export class ListObjectsV2PageBuilder {
|
|
|
27
31
|
startAfter: this.resumeAfter(input),
|
|
28
32
|
maxKeys: input.maxKeys,
|
|
29
33
|
});
|
|
34
|
+
const { encoding } = input;
|
|
30
35
|
return {
|
|
31
|
-
Contents: simS3ObjectSummaries(page.objects),
|
|
32
|
-
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
36
|
+
Contents: encoding.summaries(simS3ObjectSummaries(page.objects)),
|
|
37
|
+
CommonPrefixes: encoding.commonPrefixes(simS3CommonPrefixes(page.commonPrefixes)),
|
|
33
38
|
Name: input.bucket.bucketName,
|
|
34
|
-
Prefix: input.prefix,
|
|
35
|
-
Delimiter: input.delimiter,
|
|
39
|
+
Prefix: encoding.value(input.prefix),
|
|
40
|
+
Delimiter: encoding.value(input.delimiter),
|
|
36
41
|
MaxKeys: input.maxKeys,
|
|
37
42
|
KeyCount: page.objects.length + page.commonPrefixes.length,
|
|
38
43
|
IsTruncated: page.isTruncated,
|
|
@@ -40,7 +45,8 @@ export class ListObjectsV2PageBuilder {
|
|
|
40
45
|
NextContinuationToken: page.resumeAfter === undefined
|
|
41
46
|
? undefined
|
|
42
47
|
: simS3ContinuationToken(page.resumeAfter),
|
|
43
|
-
StartAfter: input.startAfter,
|
|
48
|
+
StartAfter: encoding.value(input.startAfter),
|
|
49
|
+
EncodingType: encoding.encodingType,
|
|
44
50
|
$metadata: {},
|
|
45
51
|
};
|
|
46
52
|
}
|
|
@@ -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
|
+
}
|