@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { simS3SystemMetadataHeaders } from "./s3-system-metadata.js";
|
|
1
|
+
import { simS3SystemMetadataHeaders, simS3UserMetadataPrefix, } from "./s3-system-metadata.js";
|
|
2
2
|
/**
|
|
3
3
|
* The headers S3 sets on a read from what it was told when the Object was
|
|
4
4
|
* written.
|
|
@@ -9,6 +9,17 @@ import { simS3SystemMetadataHeaders } from "./s3-system-metadata.js";
|
|
|
9
9
|
* client can decode. `Cache-Control` matters for a different reason, being the
|
|
10
10
|
* only one of these a caller can set per Object rather than per response.
|
|
11
11
|
*
|
|
12
|
+
* `x-amz-storage-class` and `x-amz-server-side-encryption` say where and how
|
|
13
|
+
* S3 keeps the Object. The class is set for an Object outside the default one,
|
|
14
|
+
* as real S3 sets it, and the encryption is set for every Object S3 stored
|
|
15
|
+
* itself.
|
|
16
|
+
*
|
|
17
|
+
* User-defined metadata goes back out under the `x-amz-meta-` prefix S3 sends
|
|
18
|
+
* it with, one header per entry. The prefix is what keeps a caller's own key
|
|
19
|
+
* apart from a header S3 sets itself, so an Object holding a `content-type`
|
|
20
|
+
* key is served an `x-amz-meta-content-type` header alongside its own content
|
|
21
|
+
* type rather than in place of it.
|
|
22
|
+
*
|
|
12
23
|
* `ETag` and `Last-Modified` are not metadata but facts about the stored bytes,
|
|
13
24
|
* and are what makes a conditional request or a content-hash comparison
|
|
14
25
|
* possible over HTTP. `Content-Range` is a fact about the response rather than
|
|
@@ -24,11 +35,16 @@ export function simS3ObjectResponseHeaders(description) {
|
|
|
24
35
|
"content-length": String(description.bodyLength),
|
|
25
36
|
};
|
|
26
37
|
for (const header of simS3SystemMetadataHeaders) {
|
|
27
|
-
const value = description.
|
|
38
|
+
const value = description.overrides?.[header.name] ??
|
|
39
|
+
description.metadata?.[header.name];
|
|
28
40
|
if (value !== undefined) {
|
|
29
41
|
headers[header.name] = value;
|
|
30
42
|
}
|
|
31
43
|
}
|
|
44
|
+
const userDefined = Object.entries(description.userMetadata ?? {});
|
|
45
|
+
for (const [key, value] of userDefined) {
|
|
46
|
+
headers[`${simS3UserMetadataPrefix}${key}`] = value;
|
|
47
|
+
}
|
|
32
48
|
if (description.etag !== undefined) {
|
|
33
49
|
headers["etag"] = description.etag;
|
|
34
50
|
}
|
|
@@ -38,5 +54,36 @@ export function simS3ObjectResponseHeaders(description) {
|
|
|
38
54
|
if (description.contentRange !== undefined) {
|
|
39
55
|
headers["content-range"] = description.contentRange;
|
|
40
56
|
}
|
|
57
|
+
if (description.storageClass !== undefined) {
|
|
58
|
+
headers["x-amz-storage-class"] = description.storageClass;
|
|
59
|
+
}
|
|
60
|
+
if (description.serverSideEncryption !== undefined) {
|
|
61
|
+
headers["x-amz-server-side-encryption"] = description.serverSideEncryption;
|
|
62
|
+
}
|
|
41
63
|
return headers;
|
|
42
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* The prefix a read overrides a response header with.
|
|
67
|
+
*/
|
|
68
|
+
const responseOverridePrefix = "response-";
|
|
69
|
+
/**
|
|
70
|
+
* The response headers a read asked to be served in place of the Object's own.
|
|
71
|
+
*
|
|
72
|
+
* Real S3 has one of these per system metadata header, named after it, so they
|
|
73
|
+
* are read by the same list rather than spelled out again. `Content-Type` and
|
|
74
|
+
* `Content-Disposition` are the two worth having: a presigned URL naming them
|
|
75
|
+
* decides whether the browser opens the file or saves it, and under what name,
|
|
76
|
+
* without anything being written to the Object.
|
|
77
|
+
*
|
|
78
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
|
|
79
|
+
*/
|
|
80
|
+
export function simS3ResponseHeaderOverrides(query) {
|
|
81
|
+
const overrides = {};
|
|
82
|
+
for (const header of simS3SystemMetadataHeaders) {
|
|
83
|
+
const value = query.get(`${responseOverridePrefix}${header.name}`);
|
|
84
|
+
if (value !== null) {
|
|
85
|
+
overrides[header.name] = value;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return overrides;
|
|
89
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SimS3Object } from "./s3-object.js";
|
|
2
|
+
import type { SimS3ServerSideEncryption } from "./s3-server-side-encryption.js";
|
|
3
|
+
import { type SimS3StorageClass } from "./s3-storage-class.js";
|
|
4
|
+
/**
|
|
5
|
+
* What a read says about where and how S3 keeps an Object.
|
|
6
|
+
*/
|
|
7
|
+
export interface SimS3ObjectStorageReport {
|
|
8
|
+
readonly StorageClass?: SimS3StorageClass;
|
|
9
|
+
readonly ServerSideEncryption?: SimS3ServerSideEncryption;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Describe where and how S3 keeps an Object, as `GetObject` and `HeadObject`
|
|
13
|
+
* report it.
|
|
14
|
+
*
|
|
15
|
+
* Real S3 leaves the storage class out of a read of a Standard Object and
|
|
16
|
+
* reports it for every other class. An Object's encryption is reported
|
|
17
|
+
* whatever it is, because S3 encrypts every Object it stores.
|
|
18
|
+
*/
|
|
19
|
+
export declare function simS3ObjectStorageReport(object: SimS3Object): SimS3ObjectStorageReport;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { simS3ReportedStorageClass, } from "./s3-storage-class.js";
|
|
2
|
+
/**
|
|
3
|
+
* Describe where and how S3 keeps an Object, as `GetObject` and `HeadObject`
|
|
4
|
+
* report it.
|
|
5
|
+
*
|
|
6
|
+
* Real S3 leaves the storage class out of a read of a Standard Object and
|
|
7
|
+
* reports it for every other class. An Object's encryption is reported
|
|
8
|
+
* whatever it is, because S3 encrypts every Object it stores.
|
|
9
|
+
*/
|
|
10
|
+
export function simS3ObjectStorageReport(object) {
|
|
11
|
+
const storageClass = simS3ReportedStorageClass(object.storageClass);
|
|
12
|
+
return {
|
|
13
|
+
...(storageClass !== undefined && { StorageClass: storageClass }),
|
|
14
|
+
...(object.serverSideEncryption !== undefined && {
|
|
15
|
+
ServerSideEncryption: object.serverSideEncryption,
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import type { SimS3Object } from "./s3-object.js";
|
|
2
|
-
|
|
3
|
-
* The storage class S3 reports for an Object nobody asked to store elsewhere.
|
|
4
|
-
*
|
|
5
|
-
* Storage classes are not simulated, and this is the one real S3 puts an Object
|
|
6
|
-
* in unless told otherwise. It is reported rather than omitted because a
|
|
7
|
-
* listing that leaves it out reads as an Object of unknown class, which is a
|
|
8
|
-
* different thing from a Standard one.
|
|
9
|
-
*/
|
|
10
|
-
export declare const simS3DefaultStorageClass = "STANDARD";
|
|
2
|
+
import type { SimS3StorageClass } from "./s3-storage-class.js";
|
|
11
3
|
/**
|
|
12
4
|
* One Object as a listing describes it.
|
|
13
5
|
*
|
|
@@ -20,7 +12,7 @@ export interface SimS3ObjectSummary {
|
|
|
20
12
|
readonly Size?: number;
|
|
21
13
|
readonly ETag?: string;
|
|
22
14
|
readonly LastModified?: Date;
|
|
23
|
-
readonly StorageClass?:
|
|
15
|
+
readonly StorageClass?: SimS3StorageClass;
|
|
24
16
|
}
|
|
25
17
|
/**
|
|
26
18
|
* Describe a stored Object the way a listing does.
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import { simS3QuotedETag } from "./s3-object-etag.js";
|
|
2
|
-
/**
|
|
3
|
-
* The storage class S3 reports for an Object nobody asked to store elsewhere.
|
|
4
|
-
*
|
|
5
|
-
* Storage classes are not simulated, and this is the one real S3 puts an Object
|
|
6
|
-
* in unless told otherwise. It is reported rather than omitted because a
|
|
7
|
-
* listing that leaves it out reads as an Object of unknown class, which is a
|
|
8
|
-
* different thing from a Standard one.
|
|
9
|
-
*/
|
|
10
|
-
export const simS3DefaultStorageClass = "STANDARD";
|
|
11
2
|
/**
|
|
12
3
|
* Describe a stored Object the way a listing does.
|
|
13
4
|
*
|
|
@@ -21,7 +12,7 @@ export function simS3ObjectSummary(object) {
|
|
|
21
12
|
Size: object.body.length,
|
|
22
13
|
ETag: simS3QuotedETag(object.etag),
|
|
23
14
|
LastModified: object.lastModified,
|
|
24
|
-
StorageClass:
|
|
15
|
+
StorageClass: object.storageClass,
|
|
25
16
|
};
|
|
26
17
|
}
|
|
27
18
|
/**
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One tag on an Object, in the form a request states it and a read hands it
|
|
3
|
+
* back.
|
|
4
|
+
*/
|
|
5
|
+
export interface SimS3ObjectTag {
|
|
6
|
+
readonly Key: string;
|
|
7
|
+
readonly Value: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* One tag as it arrives, where a request is free to leave either half out.
|
|
11
|
+
*
|
|
12
|
+
* The SDK types both members optional, so a tag naming no key reaches the
|
|
13
|
+
* simulator and is refused here rather than stored under an empty key.
|
|
14
|
+
*/
|
|
15
|
+
export interface SimS3ObjectTagInput {
|
|
16
|
+
readonly Key?: string | undefined;
|
|
17
|
+
readonly Value?: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The tags one simulated S3 Object carries.
|
|
21
|
+
*
|
|
22
|
+
* Held as a map because a tag set is keyed. Real S3 refuses two tags sharing a
|
|
23
|
+
* key, and every question anything asks of a tag set is about the value under
|
|
24
|
+
* one. The insertion order is the order the request stated, and a read hands
|
|
25
|
+
* them back in it.
|
|
26
|
+
*
|
|
27
|
+
* A set is built once and never changed, so the Object holding it cannot have
|
|
28
|
+
* its tags rewritten by whoever was handed them. `PutObjectTagging` replaces
|
|
29
|
+
* the whole set, which is what real S3 does with one.
|
|
30
|
+
*
|
|
31
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html
|
|
32
|
+
*/
|
|
33
|
+
export declare class SimS3ObjectTagSet {
|
|
34
|
+
private readonly held;
|
|
35
|
+
private constructor();
|
|
36
|
+
/**
|
|
37
|
+
* The tag set an Object nobody has tagged carries.
|
|
38
|
+
*/
|
|
39
|
+
static empty(): SimS3ObjectTagSet;
|
|
40
|
+
/**
|
|
41
|
+
* The tag set a request states, refusing one real S3 would not hold.
|
|
42
|
+
*
|
|
43
|
+
* Every refusal is checked before anything is stored. An Object is never
|
|
44
|
+
* left carrying part of a tag set S3 would have rejected whole. The context
|
|
45
|
+
* names the request, since the same tag set can arrive on a write, on a copy
|
|
46
|
+
* or on a tagging request of its own.
|
|
47
|
+
*/
|
|
48
|
+
static from(tags: readonly SimS3ObjectTagInput[], context: string): SimS3ObjectTagSet;
|
|
49
|
+
/**
|
|
50
|
+
* The tags, in the order the request that set them stated.
|
|
51
|
+
*/
|
|
52
|
+
get tags(): readonly SimS3ObjectTag[];
|
|
53
|
+
/**
|
|
54
|
+
* Whether this Object carries exactly this tag.
|
|
55
|
+
*
|
|
56
|
+
* Both halves have to match, because that is what a lifecycle rule filtering
|
|
57
|
+
* on a tag asks: a rule for `archive=true` says nothing about an Object
|
|
58
|
+
* tagged `archive=false`.
|
|
59
|
+
*/
|
|
60
|
+
has(key: string, value: string): boolean;
|
|
61
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { SimS3InvalidTag } from "../error/sim-s3.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The most tags real S3 holds against one Object.
|
|
4
|
+
*/
|
|
5
|
+
const simS3MaxObjectTags = 10;
|
|
6
|
+
/**
|
|
7
|
+
* The tags one simulated S3 Object carries.
|
|
8
|
+
*
|
|
9
|
+
* Held as a map because a tag set is keyed. Real S3 refuses two tags sharing a
|
|
10
|
+
* key, and every question anything asks of a tag set is about the value under
|
|
11
|
+
* one. The insertion order is the order the request stated, and a read hands
|
|
12
|
+
* them back in it.
|
|
13
|
+
*
|
|
14
|
+
* A set is built once and never changed, so the Object holding it cannot have
|
|
15
|
+
* its tags rewritten by whoever was handed them. `PutObjectTagging` replaces
|
|
16
|
+
* the whole set, which is what real S3 does with one.
|
|
17
|
+
*
|
|
18
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html
|
|
19
|
+
*/
|
|
20
|
+
export class SimS3ObjectTagSet {
|
|
21
|
+
held;
|
|
22
|
+
constructor(held) {
|
|
23
|
+
this.held = held;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The tag set an Object nobody has tagged carries.
|
|
27
|
+
*/
|
|
28
|
+
static empty() {
|
|
29
|
+
return new SimS3ObjectTagSet(new Map());
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The tag set a request states, refusing one real S3 would not hold.
|
|
33
|
+
*
|
|
34
|
+
* Every refusal is checked before anything is stored. An Object is never
|
|
35
|
+
* left carrying part of a tag set S3 would have rejected whole. The context
|
|
36
|
+
* names the request, since the same tag set can arrive on a write, on a copy
|
|
37
|
+
* or on a tagging request of its own.
|
|
38
|
+
*/
|
|
39
|
+
static from(tags, context) {
|
|
40
|
+
if (tags.length > simS3MaxObjectTags) {
|
|
41
|
+
throw new SimS3InvalidTag(`The tag set of ${context} holds ${tags.length} tags. An S3 Object ` +
|
|
42
|
+
`holds at most ${simS3MaxObjectTags}.`);
|
|
43
|
+
}
|
|
44
|
+
const held = new Map();
|
|
45
|
+
for (const tag of tags) {
|
|
46
|
+
const key = tag.Key;
|
|
47
|
+
if (key === undefined || key.length === 0) {
|
|
48
|
+
throw new SimS3InvalidTag(`A tag of ${context} names no key.`);
|
|
49
|
+
}
|
|
50
|
+
if (held.has(key)) {
|
|
51
|
+
throw new SimS3InvalidTag(`The tag set of ${context} states the key ${key} twice. An S3 ` +
|
|
52
|
+
`Object holds one value under each tag key.`);
|
|
53
|
+
}
|
|
54
|
+
held.set(key, tag.Value ?? "");
|
|
55
|
+
}
|
|
56
|
+
return new SimS3ObjectTagSet(held);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The tags, in the order the request that set them stated.
|
|
60
|
+
*/
|
|
61
|
+
get tags() {
|
|
62
|
+
return this.held
|
|
63
|
+
.entries()
|
|
64
|
+
.map(([Key, Value]) => ({ Key, Value }))
|
|
65
|
+
.toArray();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether this Object carries exactly this tag.
|
|
69
|
+
*
|
|
70
|
+
* Both halves have to match, because that is what a lifecycle rule filtering
|
|
71
|
+
* on a tag asks: a rule for `archive=true` says nothing about an Object
|
|
72
|
+
* tagged `archive=false`.
|
|
73
|
+
*/
|
|
74
|
+
has(key, value) {
|
|
75
|
+
return this.held.get(key) === value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { SimS3ObjectTagSet } from "./s3-object-tags.js";
|
|
2
|
+
import type { SimS3ServerSideEncryption } from "./s3-server-side-encryption.js";
|
|
3
|
+
import { type SimS3StorageClass } from "./s3-storage-class.js";
|
|
1
4
|
import { type SimS3SystemMetadataOutput } from "./s3-system-metadata-read.js";
|
|
2
5
|
/**
|
|
3
6
|
* Simulated S3 object metadata.
|
|
@@ -29,6 +32,22 @@ interface SimS3ObjectProperties {
|
|
|
29
32
|
* them. Only a multipart upload produces one.
|
|
30
33
|
*/
|
|
31
34
|
readonly etag?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The storage class the Object is in. An Object nobody asked to store
|
|
37
|
+
* elsewhere is in the default class.
|
|
38
|
+
*/
|
|
39
|
+
readonly storageClass?: SimS3StorageClass;
|
|
40
|
+
/**
|
|
41
|
+
* The encryption S3 applied when it stored these bytes, from the write or
|
|
42
|
+
* from the Bucket's default. The bytes are stored as they arrived whatever
|
|
43
|
+
* this says, and it is what a read reports about them.
|
|
44
|
+
*/
|
|
45
|
+
readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* The tags S3 holds against the Object. A write that named none, and an
|
|
48
|
+
* Object nobody has tagged since, carries an empty set.
|
|
49
|
+
*/
|
|
50
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
32
51
|
}
|
|
33
52
|
/**
|
|
34
53
|
* Simulated S3 object.
|
|
@@ -37,9 +56,31 @@ export declare class SimS3Object {
|
|
|
37
56
|
readonly key: string;
|
|
38
57
|
readonly body: Buffer;
|
|
39
58
|
readonly metadata: SimS3ObjectMetadata;
|
|
59
|
+
readonly storageClass: SimS3StorageClass;
|
|
60
|
+
readonly serverSideEncryption: SimS3ServerSideEncryption | undefined;
|
|
61
|
+
readonly tags: SimS3ObjectTagSet;
|
|
40
62
|
private readonly writtenAt;
|
|
41
63
|
private readonly givenETag;
|
|
42
64
|
constructor(properties?: SimS3ObjectProperties);
|
|
65
|
+
/**
|
|
66
|
+
* The same Object in another storage class, for a lifecycle rule that has
|
|
67
|
+
* transitioned it.
|
|
68
|
+
*
|
|
69
|
+
* The bytes are shared with the Object this came from. A transition moves
|
|
70
|
+
* where S3 keeps an Object and leaves the Object itself alone, so its ETag,
|
|
71
|
+
* its metadata, its tags and the instant it was last written all carry over.
|
|
72
|
+
*/
|
|
73
|
+
withStorageClass(storageClass: SimS3StorageClass): SimS3Object;
|
|
74
|
+
/**
|
|
75
|
+
* The same Object under another tag set, for a tagging request that has
|
|
76
|
+
* replaced the one it carried.
|
|
77
|
+
*
|
|
78
|
+
* Real S3 holds tags against an Object without rewriting it, so nothing else
|
|
79
|
+
* about it changes: the bytes, the ETag and the instant it was last written
|
|
80
|
+
* are the ones it already had. A read after tagging reports the same
|
|
81
|
+
* `LastModified` as a read before it.
|
|
82
|
+
*/
|
|
83
|
+
withTags(tags: SimS3ObjectTagSet): SimS3Object;
|
|
43
84
|
/**
|
|
44
85
|
* When S3 last wrote these bytes.
|
|
45
86
|
*
|
|
@@ -67,5 +108,13 @@ export declare class SimS3Object {
|
|
|
67
108
|
* about the joined bytes records, so it cannot be recomputed from them.
|
|
68
109
|
*/
|
|
69
110
|
get etag(): string;
|
|
111
|
+
/**
|
|
112
|
+
* The same Object with one thing about it replaced.
|
|
113
|
+
*
|
|
114
|
+
* Everything S3 remembers is carried over by hand rather than by copying the
|
|
115
|
+
* instance, because an Object holds its write time and its given ETag
|
|
116
|
+
* privately and a spread would lose both.
|
|
117
|
+
*/
|
|
118
|
+
private with;
|
|
70
119
|
}
|
|
71
120
|
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { simS3ObjectETag } from "./s3-object-etag.js";
|
|
2
|
+
import { SimS3ObjectTagSet } from "./s3-object-tags.js";
|
|
3
|
+
import { simS3DefaultStorageClass, } from "./s3-storage-class.js";
|
|
2
4
|
import { simS3SystemMetadataOutput, simS3UserDefinedMetadata, } from "./s3-system-metadata-read.js";
|
|
3
5
|
/**
|
|
4
6
|
* Simulated S3 object metadata.
|
|
@@ -33,16 +35,45 @@ export class SimS3Object {
|
|
|
33
35
|
key;
|
|
34
36
|
body;
|
|
35
37
|
metadata;
|
|
38
|
+
storageClass;
|
|
39
|
+
serverSideEncryption;
|
|
40
|
+
tags;
|
|
36
41
|
writtenAt;
|
|
37
42
|
givenETag;
|
|
38
43
|
constructor(properties = {}) {
|
|
39
|
-
const { key = "object.json", body = Buffer.alloc(0), metadata = new SimS3ObjectMetadata(), lastModified = new Date(), } = properties;
|
|
44
|
+
const { key = "object.json", body = Buffer.alloc(0), metadata = new SimS3ObjectMetadata(), lastModified = new Date(), storageClass = simS3DefaultStorageClass, tags = SimS3ObjectTagSet.empty(), } = properties;
|
|
40
45
|
this.key = key;
|
|
41
46
|
this.body = body;
|
|
42
47
|
this.metadata = metadata;
|
|
48
|
+
this.storageClass = storageClass;
|
|
49
|
+
this.serverSideEncryption = properties.serverSideEncryption;
|
|
50
|
+
this.tags = tags;
|
|
43
51
|
this.writtenAt = new Date(lastModified);
|
|
44
52
|
this.givenETag = properties.etag;
|
|
45
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* The same Object in another storage class, for a lifecycle rule that has
|
|
56
|
+
* transitioned it.
|
|
57
|
+
*
|
|
58
|
+
* The bytes are shared with the Object this came from. A transition moves
|
|
59
|
+
* where S3 keeps an Object and leaves the Object itself alone, so its ETag,
|
|
60
|
+
* its metadata, its tags and the instant it was last written all carry over.
|
|
61
|
+
*/
|
|
62
|
+
withStorageClass(storageClass) {
|
|
63
|
+
return this.with({ storageClass });
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The same Object under another tag set, for a tagging request that has
|
|
67
|
+
* replaced the one it carried.
|
|
68
|
+
*
|
|
69
|
+
* Real S3 holds tags against an Object without rewriting it, so nothing else
|
|
70
|
+
* about it changes: the bytes, the ETag and the instant it was last written
|
|
71
|
+
* are the ones it already had. A read after tagging reports the same
|
|
72
|
+
* `LastModified` as a read before it.
|
|
73
|
+
*/
|
|
74
|
+
withTags(tags) {
|
|
75
|
+
return this.with({ tags });
|
|
76
|
+
}
|
|
46
77
|
/**
|
|
47
78
|
* When S3 last wrote these bytes.
|
|
48
79
|
*
|
|
@@ -74,4 +105,24 @@ export class SimS3Object {
|
|
|
74
105
|
get etag() {
|
|
75
106
|
return this.givenETag ?? simS3ObjectETag(this.body);
|
|
76
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* The same Object with one thing about it replaced.
|
|
110
|
+
*
|
|
111
|
+
* Everything S3 remembers is carried over by hand rather than by copying the
|
|
112
|
+
* instance, because an Object holds its write time and its given ETag
|
|
113
|
+
* privately and a spread would lose both.
|
|
114
|
+
*/
|
|
115
|
+
with(changed) {
|
|
116
|
+
return new SimS3Object({
|
|
117
|
+
key: this.key,
|
|
118
|
+
body: this.body,
|
|
119
|
+
metadata: this.metadata,
|
|
120
|
+
lastModified: this.writtenAt,
|
|
121
|
+
storageClass: this.storageClass,
|
|
122
|
+
serverSideEncryption: this.serverSideEncryption,
|
|
123
|
+
tags: this.tags,
|
|
124
|
+
...(this.givenETag !== undefined && { etag: this.givenETag }),
|
|
125
|
+
...changed,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
77
128
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The server-side encryption algorithms S3 applies to an Object.
|
|
3
|
+
*
|
|
4
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html
|
|
5
|
+
*/
|
|
6
|
+
export declare const simS3ServerSideEncryptionAlgorithms: readonly ["AES256", "aws:kms", "aws:kms:dsse"];
|
|
7
|
+
/**
|
|
8
|
+
* One server-side encryption algorithm.
|
|
9
|
+
*/
|
|
10
|
+
export type SimS3ServerSideEncryption = (typeof simS3ServerSideEncryptionAlgorithms)[number];
|
|
11
|
+
/**
|
|
12
|
+
* The encryption every Bucket applies to an Object whose write named none.
|
|
13
|
+
*
|
|
14
|
+
* Real S3 has encrypted every new Object with SSE-S3 since January 2023, and
|
|
15
|
+
* reports `AES256` for one written into a Bucket carrying no default of its
|
|
16
|
+
* own. Nothing is encrypted here. The bytes are stored as they arrive, and this
|
|
17
|
+
* is what a read says about them.
|
|
18
|
+
*/
|
|
19
|
+
export declare const simS3DefaultServerSideEncryption: SimS3ServerSideEncryption;
|
|
20
|
+
/**
|
|
21
|
+
* Read the encryption a request or a Bucket configuration named, refusing an
|
|
22
|
+
* algorithm S3 does not apply.
|
|
23
|
+
*
|
|
24
|
+
* Real S3 answers `InvalidArgument` for an unsupported algorithm on a write.
|
|
25
|
+
*/
|
|
26
|
+
export declare function simS3ServerSideEncryptionFrom(value: string | undefined, context: string): SimS3ServerSideEncryption | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Whether a value names a server-side encryption algorithm.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isSimS3ServerSideEncryption(value: string): value is SimS3ServerSideEncryption;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SimS3InvalidArgument } from "../error/sim-s3.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The server-side encryption algorithms S3 applies to an Object.
|
|
4
|
+
*
|
|
5
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html
|
|
6
|
+
*/
|
|
7
|
+
export const simS3ServerSideEncryptionAlgorithms = [
|
|
8
|
+
"AES256",
|
|
9
|
+
"aws:kms",
|
|
10
|
+
"aws:kms:dsse",
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* The encryption every Bucket applies to an Object whose write named none.
|
|
14
|
+
*
|
|
15
|
+
* Real S3 has encrypted every new Object with SSE-S3 since January 2023, and
|
|
16
|
+
* reports `AES256` for one written into a Bucket carrying no default of its
|
|
17
|
+
* own. Nothing is encrypted here. The bytes are stored as they arrive, and this
|
|
18
|
+
* is what a read says about them.
|
|
19
|
+
*/
|
|
20
|
+
export const simS3DefaultServerSideEncryption = "AES256";
|
|
21
|
+
/**
|
|
22
|
+
* Read the encryption a request or a Bucket configuration named, refusing an
|
|
23
|
+
* algorithm S3 does not apply.
|
|
24
|
+
*
|
|
25
|
+
* Real S3 answers `InvalidArgument` for an unsupported algorithm on a write.
|
|
26
|
+
*/
|
|
27
|
+
export function simS3ServerSideEncryptionFrom(value, context) {
|
|
28
|
+
if (value === undefined) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
if (!isSimS3ServerSideEncryption(value)) {
|
|
32
|
+
throw new SimS3InvalidArgument(`${value} is not a server-side encryption algorithm for ${context}. ` +
|
|
33
|
+
`It is one of ${simS3ServerSideEncryptionAlgorithms.join(", ")}.`);
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether a value names a server-side encryption algorithm.
|
|
39
|
+
*/
|
|
40
|
+
export function isSimS3ServerSideEncryption(value) {
|
|
41
|
+
return simS3ServerSideEncryptionAlgorithms.includes(value);
|
|
42
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The storage class S3 puts an Object in when the write names none.
|
|
3
|
+
*
|
|
4
|
+
* Reported rather than omitted from a listing, because a listing that leaves it
|
|
5
|
+
* out reads as an Object of unknown class. Real S3 answers `STANDARD` there and
|
|
6
|
+
* leaves the `x-amz-storage-class` header off a read of one, which is what
|
|
7
|
+
* `simS3ReportedStorageClass` is for.
|
|
8
|
+
*/
|
|
9
|
+
export declare const simS3DefaultStorageClass = "STANDARD";
|
|
10
|
+
/**
|
|
11
|
+
* The storage classes an Object can be in.
|
|
12
|
+
*
|
|
13
|
+
* These are the ones a write can name or a lifecycle rule can transition to.
|
|
14
|
+
* Nothing here changes what a read costs or how long it takes, so the class is
|
|
15
|
+
* a fact about the Object that S3 reports and applies its rules to.
|
|
16
|
+
*
|
|
17
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
|
|
18
|
+
*/
|
|
19
|
+
export declare const simS3StorageClasses: readonly ["STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER_IR", "GLACIER", "DEEP_ARCHIVE", "EXPRESS_ONEZONE", "OUTPOSTS", "SNOW"];
|
|
20
|
+
/**
|
|
21
|
+
* One storage class an Object can be in.
|
|
22
|
+
*/
|
|
23
|
+
export type SimS3StorageClass = (typeof simS3StorageClasses)[number];
|
|
24
|
+
/**
|
|
25
|
+
* Read the storage class a request named, refusing one S3 has no such class
|
|
26
|
+
* for.
|
|
27
|
+
*
|
|
28
|
+
* A request naming none leaves the Object in the default class. Real S3
|
|
29
|
+
* answers `InvalidStorageClass` for a name it does not know, and does it
|
|
30
|
+
* before storing anything.
|
|
31
|
+
*/
|
|
32
|
+
export declare function simS3StorageClassFrom(value: string | undefined, context: string): SimS3StorageClass | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The storage class a read of an Object reports, which is nothing for one in
|
|
35
|
+
* the default class.
|
|
36
|
+
*
|
|
37
|
+
* Real S3 leaves `x-amz-storage-class` off a `GetObject` or a `HeadObject`
|
|
38
|
+
* response for a Standard Object, and sets it for every other class. A listing
|
|
39
|
+
* is the other way around and always carries one.
|
|
40
|
+
*/
|
|
41
|
+
export declare function simS3ReportedStorageClass(storageClass: SimS3StorageClass): SimS3StorageClass | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Whether a value names a storage class.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isSimS3StorageClass(value: string): value is SimS3StorageClass;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { SimS3InvalidStorageClass } from "../error/sim-s3.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The storage class S3 puts an Object in when the write names none.
|
|
4
|
+
*
|
|
5
|
+
* Reported rather than omitted from a listing, because a listing that leaves it
|
|
6
|
+
* out reads as an Object of unknown class. Real S3 answers `STANDARD` there and
|
|
7
|
+
* leaves the `x-amz-storage-class` header off a read of one, which is what
|
|
8
|
+
* `simS3ReportedStorageClass` is for.
|
|
9
|
+
*/
|
|
10
|
+
export const simS3DefaultStorageClass = "STANDARD";
|
|
11
|
+
/**
|
|
12
|
+
* The storage classes an Object can be in.
|
|
13
|
+
*
|
|
14
|
+
* These are the ones a write can name or a lifecycle rule can transition to.
|
|
15
|
+
* Nothing here changes what a read costs or how long it takes, so the class is
|
|
16
|
+
* a fact about the Object that S3 reports and applies its rules to.
|
|
17
|
+
*
|
|
18
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
|
|
19
|
+
*/
|
|
20
|
+
export const simS3StorageClasses = [
|
|
21
|
+
simS3DefaultStorageClass,
|
|
22
|
+
"REDUCED_REDUNDANCY",
|
|
23
|
+
"STANDARD_IA",
|
|
24
|
+
"ONEZONE_IA",
|
|
25
|
+
"INTELLIGENT_TIERING",
|
|
26
|
+
"GLACIER_IR",
|
|
27
|
+
"GLACIER",
|
|
28
|
+
"DEEP_ARCHIVE",
|
|
29
|
+
"EXPRESS_ONEZONE",
|
|
30
|
+
"OUTPOSTS",
|
|
31
|
+
"SNOW",
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Read the storage class a request named, refusing one S3 has no such class
|
|
35
|
+
* for.
|
|
36
|
+
*
|
|
37
|
+
* A request naming none leaves the Object in the default class. Real S3
|
|
38
|
+
* answers `InvalidStorageClass` for a name it does not know, and does it
|
|
39
|
+
* before storing anything.
|
|
40
|
+
*/
|
|
41
|
+
export function simS3StorageClassFrom(value, context) {
|
|
42
|
+
if (value === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
if (!isSimS3StorageClass(value)) {
|
|
46
|
+
throw new SimS3InvalidStorageClass(`${value} is not an S3 storage class for ${context}. It is one of ` +
|
|
47
|
+
`${simS3StorageClasses.join(", ")}.`);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The storage class a read of an Object reports, which is nothing for one in
|
|
53
|
+
* the default class.
|
|
54
|
+
*
|
|
55
|
+
* Real S3 leaves `x-amz-storage-class` off a `GetObject` or a `HeadObject`
|
|
56
|
+
* response for a Standard Object, and sets it for every other class. A listing
|
|
57
|
+
* is the other way around and always carries one.
|
|
58
|
+
*/
|
|
59
|
+
export function simS3ReportedStorageClass(storageClass) {
|
|
60
|
+
return storageClass === simS3DefaultStorageClass ? undefined : storageClass;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Whether a value names a storage class.
|
|
64
|
+
*/
|
|
65
|
+
export function isSimS3StorageClass(value) {
|
|
66
|
+
return simS3StorageClasses.includes(value);
|
|
67
|
+
}
|