@kensio/yulin 1.21.3 → 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/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-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 +46 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +67 -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 +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-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 +7 -1
|
@@ -16,6 +16,16 @@ export function publicAccessBlockXml(output) {
|
|
|
16
16
|
xmlValue("BlockPublicPolicy", configuration["BlockPublicPolicy"]) +
|
|
17
17
|
xmlValue("RestrictPublicBuckets", configuration["RestrictPublicBuckets"]));
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Write a Bucket's default encryption configuration.
|
|
21
|
+
*/
|
|
22
|
+
export function encryptionConfigurationXml(output) {
|
|
23
|
+
const configuration = (output["ServerSideEncryptionConfiguration"] ?? {});
|
|
24
|
+
return xmlDocument("ServerSideEncryptionConfiguration", (configuration.Rules ?? [])
|
|
25
|
+
.map((rule) => xmlElement("Rule", xmlElement("ApplyServerSideEncryptionByDefault", xmlValue("SSEAlgorithm", rule.ApplyServerSideEncryptionByDefault?.SSEAlgorithm) +
|
|
26
|
+
xmlValue("KMSMasterKeyID", rule.ApplyServerSideEncryptionByDefault?.KMSMasterKeyID)) + xmlValue("BucketKeyEnabled", rule.BucketKeyEnabled)))
|
|
27
|
+
.join(""));
|
|
28
|
+
}
|
|
19
29
|
/**
|
|
20
30
|
* Write an event notification configuration.
|
|
21
31
|
*/
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a default encryption configuration.
|
|
3
|
+
*
|
|
4
|
+
* Real S3 takes one rule and the SDK sends a list, so the list is read here
|
|
5
|
+
* and the Bucket decides what to do with more than one of them.
|
|
6
|
+
*/
|
|
7
|
+
export declare function readSimS3EncryptionConfiguration(body: string): object;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parseXmlDocument, xmlBoolean, xmlChild, xmlChildren, xmlText, } from "../../../../util/xml/xml-document.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read a default encryption configuration.
|
|
4
|
+
*
|
|
5
|
+
* Real S3 takes one rule and the SDK sends a list, so the list is read here
|
|
6
|
+
* and the Bucket decides what to do with more than one of them.
|
|
7
|
+
*/
|
|
8
|
+
export function readSimS3EncryptionConfiguration(body) {
|
|
9
|
+
const root = parseXmlDocument(body);
|
|
10
|
+
return {
|
|
11
|
+
Rules: xmlChildren(root, "Rule").map((rule) => {
|
|
12
|
+
const byDefault = xmlChild(rule, "ApplyServerSideEncryptionByDefault");
|
|
13
|
+
return {
|
|
14
|
+
...(byDefault !== undefined && {
|
|
15
|
+
ApplyServerSideEncryptionByDefault: {
|
|
16
|
+
...defined("SSEAlgorithm", xmlText(byDefault, "SSEAlgorithm")),
|
|
17
|
+
...defined("KMSMasterKeyID", xmlText(byDefault, "KMSMasterKeyID")),
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
...defined("BucketKeyEnabled", xmlBoolean(rule, "BucketKeyEnabled")),
|
|
21
|
+
};
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* One member of a request document, or nothing where it was absent.
|
|
27
|
+
*/
|
|
28
|
+
function defined(name, value) {
|
|
29
|
+
return value === undefined ? {} : { [name]: value };
|
|
30
|
+
}
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
* Answer a HEAD with what a read would have said and none of the Object.
|
|
10
10
|
*
|
|
11
11
|
* The `content-length` describes the Object rather than the response, which is
|
|
12
|
-
* what makes a HEAD worth sending.
|
|
12
|
+
* what makes a HEAD worth sending. A HEAD reads the same `response-` parameters
|
|
13
|
+
* a GET does, so a caller can see what a presigned URL would serve without
|
|
14
|
+
* fetching the Object.
|
|
13
15
|
*/
|
|
14
|
-
export declare function simS3HeadObjectResponse(output: Record<string, unknown
|
|
16
|
+
export declare function simS3HeadObjectResponse(output: Record<string, unknown>, overrides: Readonly<Record<string, string>>): Response;
|
|
15
17
|
/**
|
|
16
18
|
* Answer that a Bucket is there and reachable.
|
|
17
19
|
*
|
|
@@ -11,16 +11,22 @@ import { simS3SystemMetadataHeadersFrom } from "../../object/s3-system-metadata-
|
|
|
11
11
|
* Answer a HEAD with what a read would have said and none of the Object.
|
|
12
12
|
*
|
|
13
13
|
* The `content-length` describes the Object rather than the response, which is
|
|
14
|
-
* what makes a HEAD worth sending.
|
|
14
|
+
* what makes a HEAD worth sending. A HEAD reads the same `response-` parameters
|
|
15
|
+
* a GET does, so a caller can see what a presigned URL would serve without
|
|
16
|
+
* fetching the Object.
|
|
15
17
|
*/
|
|
16
|
-
export function simS3HeadObjectResponse(output) {
|
|
18
|
+
export function simS3HeadObjectResponse(output, overrides) {
|
|
17
19
|
return new Response(undefined, {
|
|
18
20
|
status: 200,
|
|
19
21
|
headers: simS3ObjectResponseHeaders({
|
|
20
22
|
metadata: simS3SystemMetadataHeadersFrom(output),
|
|
23
|
+
userMetadata: output["Metadata"],
|
|
24
|
+
overrides,
|
|
21
25
|
bodyLength: output["ContentLength"] ?? 0,
|
|
22
26
|
etag: output["ETag"],
|
|
23
27
|
lastModified: output["LastModified"],
|
|
28
|
+
storageClass: output["StorageClass"],
|
|
29
|
+
serverSideEncryption: output["ServerSideEncryption"],
|
|
24
30
|
}),
|
|
25
31
|
});
|
|
26
32
|
}
|
|
@@ -26,12 +26,6 @@ export declare function listObjectsV2Input(request: SimS3ApiRequest): object;
|
|
|
26
26
|
* The first ListObjects input, which pages by marker.
|
|
27
27
|
*/
|
|
28
28
|
export declare function listObjectsInput(request: SimS3ApiRequest): object;
|
|
29
|
-
/**
|
|
30
|
-
* The user metadata an upload carried, which S3 sends as `x-amz-meta-` headers.
|
|
31
|
-
*/
|
|
32
|
-
export declare function simS3UserMetadata(headers: Headers): {
|
|
33
|
-
Metadata?: Record<string, string>;
|
|
34
|
-
};
|
|
35
29
|
/**
|
|
36
30
|
* Include a member only when the request stated it, since an operation treats
|
|
37
31
|
* an absent member and an empty one differently.
|
|
@@ -38,6 +38,7 @@ export function listObjectsV2Input(request) {
|
|
|
38
38
|
...optional("ContinuationToken", request.query.get("continuation-token")),
|
|
39
39
|
...optional("StartAfter", request.query.get("start-after")),
|
|
40
40
|
...optionalNumber("MaxKeys", request.query.get("max-keys")),
|
|
41
|
+
...optional("EncodingType", request.query.get("encoding-type")),
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
@@ -50,21 +51,9 @@ export function listObjectsInput(request) {
|
|
|
50
51
|
...optional("Delimiter", request.query.get("delimiter")),
|
|
51
52
|
...optional("Marker", request.query.get("marker")),
|
|
52
53
|
...optionalNumber("MaxKeys", request.query.get("max-keys")),
|
|
54
|
+
...optional("EncodingType", request.query.get("encoding-type")),
|
|
53
55
|
};
|
|
54
56
|
}
|
|
55
|
-
/**
|
|
56
|
-
* The user metadata an upload carried, which S3 sends as `x-amz-meta-` headers.
|
|
57
|
-
*/
|
|
58
|
-
export function simS3UserMetadata(headers) {
|
|
59
|
-
const prefix = "x-amz-meta-";
|
|
60
|
-
const metadata = {};
|
|
61
|
-
for (const [name, value] of headers) {
|
|
62
|
-
if (name.toLowerCase().startsWith(prefix)) {
|
|
63
|
-
metadata[name.slice(prefix.length).toLowerCase()] = value;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return Object.keys(metadata).length === 0 ? {} : { Metadata: metadata };
|
|
67
|
-
}
|
|
68
57
|
/**
|
|
69
58
|
* Include a member only when the request stated it, since an operation treats
|
|
70
59
|
* an absent member and an empty one differently.
|
|
@@ -26,6 +26,7 @@ interface ListObjectsOutput {
|
|
|
26
26
|
readonly StartAfter?: string | undefined;
|
|
27
27
|
readonly Marker?: string | undefined;
|
|
28
28
|
readonly NextMarker?: string | undefined;
|
|
29
|
+
readonly EncodingType?: string | undefined;
|
|
29
30
|
}
|
|
30
31
|
interface ListBucketsOutput {
|
|
31
32
|
readonly Buckets?: readonly BucketSummary[] | undefined;
|
|
@@ -42,6 +43,10 @@ export declare function simS3ListBucketsXml(output: ListBucketsOutput): string;
|
|
|
42
43
|
* Both listing versions answer in a `ListBucketResult`, and differ only in how
|
|
43
44
|
* they say where the next page starts. The version is passed in because the
|
|
44
45
|
* output alone cannot say which was asked for.
|
|
46
|
+
*
|
|
47
|
+
* The keys arrive encoded or not according to what the listing was asked for,
|
|
48
|
+
* so nothing is encoded here. `EncodingType` says which of the two a client is
|
|
49
|
+
* reading, and is absent from a listing that asked for no encoding.
|
|
45
50
|
*/
|
|
46
51
|
export declare function simS3ListObjectsXml(output: ListObjectsOutput, version: 1 | 2): string;
|
|
47
52
|
export {};
|
|
@@ -17,6 +17,10 @@ export function simS3ListBucketsXml(output) {
|
|
|
17
17
|
* Both listing versions answer in a `ListBucketResult`, and differ only in how
|
|
18
18
|
* they say where the next page starts. The version is passed in because the
|
|
19
19
|
* output alone cannot say which was asked for.
|
|
20
|
+
*
|
|
21
|
+
* The keys arrive encoded or not according to what the listing was asked for,
|
|
22
|
+
* so nothing is encoded here. `EncodingType` says which of the two a client is
|
|
23
|
+
* reading, and is absent from a listing that asked for no encoding.
|
|
20
24
|
*/
|
|
21
25
|
export function simS3ListObjectsXml(output, version) {
|
|
22
26
|
const contents = (output.Contents ?? []).map(objectSummaryXml).join("");
|
|
@@ -26,6 +30,7 @@ export function simS3ListObjectsXml(output, version) {
|
|
|
26
30
|
return xmlDocument("ListBucketResult", xmlValue("Name", output.Name) +
|
|
27
31
|
xmlValue("Prefix", output.Prefix) +
|
|
28
32
|
xmlValue("Delimiter", output.Delimiter) +
|
|
33
|
+
xmlValue("EncodingType", output.EncodingType) +
|
|
29
34
|
xmlValue("MaxKeys", output.MaxKeys) +
|
|
30
35
|
xmlValue("IsTruncated", output.IsTruncated ?? false) +
|
|
31
36
|
pagingXml(output, version) +
|
|
@@ -15,6 +15,17 @@ export declare const simS3CopySourceHeader = "x-amz-copy-source";
|
|
|
15
15
|
* The input of an operation naming one Object.
|
|
16
16
|
*/
|
|
17
17
|
export declare function objectInput(request: SimS3ApiRequest): object;
|
|
18
|
+
/**
|
|
19
|
+
* The input of an operation naming one Object, or one version of it.
|
|
20
|
+
*
|
|
21
|
+
* Real S3 names the version in the query string alongside the sub-resource, so
|
|
22
|
+
* a request naming none acts on whatever a plain read of the key answers with.
|
|
23
|
+
*/
|
|
24
|
+
export declare function versionedObjectInput(request: SimS3ApiRequest): object;
|
|
25
|
+
/**
|
|
26
|
+
* The input of a tagging write, which carries its tag set as a document.
|
|
27
|
+
*/
|
|
28
|
+
export declare function putObjectTaggingInput(request: SimS3ApiRequest): object;
|
|
18
29
|
/**
|
|
19
30
|
* The input of a read, which can ask for part of an Object.
|
|
20
31
|
*/
|
|
@@ -36,5 +47,10 @@ export declare function copyObjectInput(request: SimS3ApiRequest): object;
|
|
|
36
47
|
/**
|
|
37
48
|
* The input of a request that describes an Object without carrying its bytes,
|
|
38
49
|
* which is what starting a multipart upload is.
|
|
50
|
+
*
|
|
51
|
+
* The metadata headers are read by the list a write and a read share, so an
|
|
52
|
+
* upload over this endpoint describes an Object exactly as a `PutObjectCommand`
|
|
53
|
+
* does. Where S3 keeps the Object and how it encrypts it are read alongside
|
|
54
|
+
* them, being facts about the storage rather than metadata about the Object.
|
|
39
55
|
*/
|
|
40
56
|
export declare function createMultipartUploadInput(request: SimS3ApiRequest): object;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { simS3WriteMetadataHeaders } from "../../object/s3-write-metadata.js";
|
|
2
|
+
import { optional, utf8 } from "./sim-s3-api-input.js";
|
|
3
|
+
import { readSimS3Tagging } from "./sim-s3-api-tagging-read.js";
|
|
2
4
|
/**
|
|
3
5
|
* Reading the Object operations' inputs out of a request.
|
|
4
6
|
*
|
|
@@ -17,6 +19,27 @@ export const simS3CopySourceHeader = "x-amz-copy-source";
|
|
|
17
19
|
export function objectInput(request) {
|
|
18
20
|
return { Bucket: request.bucketName, Key: request.objectKey };
|
|
19
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* The input of an operation naming one Object, or one version of it.
|
|
24
|
+
*
|
|
25
|
+
* Real S3 names the version in the query string alongside the sub-resource, so
|
|
26
|
+
* a request naming none acts on whatever a plain read of the key answers with.
|
|
27
|
+
*/
|
|
28
|
+
export function versionedObjectInput(request) {
|
|
29
|
+
return {
|
|
30
|
+
...objectInput(request),
|
|
31
|
+
...optional("VersionId", request.query.get("versionId")),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The input of a tagging write, which carries its tag set as a document.
|
|
36
|
+
*/
|
|
37
|
+
export function putObjectTaggingInput(request) {
|
|
38
|
+
return {
|
|
39
|
+
...versionedObjectInput(request),
|
|
40
|
+
Tagging: readSimS3Tagging(utf8(request.body)),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
20
43
|
/**
|
|
21
44
|
* The input of a read, which can ask for part of an Object.
|
|
22
45
|
*/
|
|
@@ -46,21 +69,25 @@ export function copyObjectInput(request) {
|
|
|
46
69
|
...createMultipartUploadInput(request),
|
|
47
70
|
...optional("CopySource", request.headers.get(simS3CopySourceHeader)),
|
|
48
71
|
...optional("MetadataDirective", request.headers.get("x-amz-metadata-directive")),
|
|
72
|
+
...optional("TaggingDirective", request.headers.get("x-amz-tagging-directive")),
|
|
49
73
|
};
|
|
50
74
|
}
|
|
51
75
|
/**
|
|
52
76
|
* The input of a request that describes an Object without carrying its bytes,
|
|
53
77
|
* which is what starting a multipart upload is.
|
|
78
|
+
*
|
|
79
|
+
* The metadata headers are read by the list a write and a read share, so an
|
|
80
|
+
* upload over this endpoint describes an Object exactly as a `PutObjectCommand`
|
|
81
|
+
* does. Where S3 keeps the Object and how it encrypts it are read alongside
|
|
82
|
+
* them, being facts about the storage rather than metadata about the Object.
|
|
54
83
|
*/
|
|
55
84
|
export function createMultipartUploadInput(request) {
|
|
56
85
|
return {
|
|
57
86
|
Bucket: request.bucketName,
|
|
58
87
|
Key: request.objectKey,
|
|
59
|
-
...
|
|
60
|
-
...optional("
|
|
61
|
-
...optional("
|
|
62
|
-
...optional("
|
|
63
|
-
...optional("ContentLanguage", request.headers.get("content-language")),
|
|
64
|
-
...simS3UserMetadata(request.headers),
|
|
88
|
+
...simS3WriteMetadataHeaders(request.headers),
|
|
89
|
+
...optional("StorageClass", request.headers.get("x-amz-storage-class")),
|
|
90
|
+
...optional("Tagging", request.headers.get("x-amz-tagging")),
|
|
91
|
+
...optional("ServerSideEncryption", request.headers.get("x-amz-server-side-encryption")),
|
|
65
92
|
};
|
|
66
93
|
}
|
|
@@ -11,13 +11,30 @@ interface CopyObjectOutput {
|
|
|
11
11
|
* reads the new ETag and write time out of this body and nowhere else.
|
|
12
12
|
*/
|
|
13
13
|
export declare function simS3CopyObjectXml(output: CopyObjectOutput): string;
|
|
14
|
+
interface TagSetOutput {
|
|
15
|
+
readonly TagSet?: readonly {
|
|
16
|
+
readonly Key?: string;
|
|
17
|
+
readonly Value?: string;
|
|
18
|
+
}[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write the tags on an Object as the document real S3 answers them with.
|
|
22
|
+
*
|
|
23
|
+
* An Object nobody has tagged answers with an empty `TagSet` element rather
|
|
24
|
+
* than none at all, which is what tells a client the Object exists and carries
|
|
25
|
+
* no tags.
|
|
26
|
+
*/
|
|
27
|
+
export declare function simS3ObjectTaggingXml(output: TagSetOutput): string;
|
|
14
28
|
/**
|
|
15
29
|
* Answer a read with the Object itself, headers and all.
|
|
16
30
|
*
|
|
31
|
+
* The headers the read named in its `response-` parameters are served in place
|
|
32
|
+
* of the Object's own, leaving what the Object was written with alone.
|
|
33
|
+
*
|
|
17
34
|
* A read that asked for part of the Object is answered `206 Partial Content`
|
|
18
35
|
* and says which part it carries, because a client reading a large Object in
|
|
19
36
|
* pieces at once writes each response at the offset it asked for, and a `200`
|
|
20
37
|
* carrying the whole Object would be written over its neighbours.
|
|
21
38
|
*/
|
|
22
|
-
export declare function simS3GetObjectResponse(output: Record<string, unknown
|
|
39
|
+
export declare function simS3GetObjectResponse(output: Record<string, unknown>, overrides: Readonly<Record<string, string>>): Promise<Response>;
|
|
23
40
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { xmlDocument, xmlValue } from "../../../../util/xml/xml-writer.js";
|
|
1
|
+
import { xmlDocument, xmlElement, xmlValue, } from "../../../../util/xml/xml-writer.js";
|
|
2
2
|
import { simS3ObjectResponseHeaders } from "../../object/s3-object-response-headers.js";
|
|
3
3
|
import { simS3SystemMetadataHeadersFrom } from "../../object/s3-system-metadata-read.js";
|
|
4
4
|
/**
|
|
@@ -12,25 +12,44 @@ export function simS3CopyObjectXml(output) {
|
|
|
12
12
|
return xmlDocument("CopyObjectResult", xmlValue("ETag", result.ETag) +
|
|
13
13
|
xmlValue("LastModified", result.LastModified));
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Write the tags on an Object as the document real S3 answers them with.
|
|
17
|
+
*
|
|
18
|
+
* An Object nobody has tagged answers with an empty `TagSet` element rather
|
|
19
|
+
* than none at all, which is what tells a client the Object exists and carries
|
|
20
|
+
* no tags.
|
|
21
|
+
*/
|
|
22
|
+
export function simS3ObjectTaggingXml(output) {
|
|
23
|
+
return xmlDocument("Tagging", xmlElement("TagSet", (output.TagSet ?? [])
|
|
24
|
+
.map((tag) => xmlElement("Tag", xmlValue("Key", tag.Key) + xmlValue("Value", tag.Value)))
|
|
25
|
+
.join("")));
|
|
26
|
+
}
|
|
15
27
|
/**
|
|
16
28
|
* Answer a read with the Object itself, headers and all.
|
|
17
29
|
*
|
|
30
|
+
* The headers the read named in its `response-` parameters are served in place
|
|
31
|
+
* of the Object's own, leaving what the Object was written with alone.
|
|
32
|
+
*
|
|
18
33
|
* A read that asked for part of the Object is answered `206 Partial Content`
|
|
19
34
|
* and says which part it carries, because a client reading a large Object in
|
|
20
35
|
* pieces at once writes each response at the offset it asked for, and a `200`
|
|
21
36
|
* carrying the whole Object would be written over its neighbours.
|
|
22
37
|
*/
|
|
23
|
-
export async function simS3GetObjectResponse(output) {
|
|
38
|
+
export async function simS3GetObjectResponse(output, overrides) {
|
|
24
39
|
const body = await objectBodyBytes(output["Body"]);
|
|
25
40
|
const contentRange = output["ContentRange"];
|
|
26
41
|
return new Response(body, {
|
|
27
42
|
status: contentRange === undefined ? 200 : 206,
|
|
28
43
|
headers: simS3ObjectResponseHeaders({
|
|
29
44
|
metadata: simS3SystemMetadataHeadersFrom(output),
|
|
45
|
+
userMetadata: output["Metadata"],
|
|
46
|
+
overrides,
|
|
30
47
|
bodyLength: body.length,
|
|
31
48
|
etag: output["ETag"],
|
|
32
49
|
lastModified: output["LastModified"],
|
|
33
50
|
contentRange,
|
|
51
|
+
storageClass: output["StorageClass"],
|
|
52
|
+
serverSideEncryption: output["ServerSideEncryption"],
|
|
34
53
|
}),
|
|
35
54
|
});
|
|
36
55
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { copyObjectInput, createMultipartUploadInput, getObjectInput, objectInput, putObjectInput, simS3CopySourceHeader, } from "./sim-s3-api-object-input.js";
|
|
1
|
+
import { copyObjectInput, createMultipartUploadInput, getObjectInput, objectInput, putObjectInput, putObjectTaggingInput, simS3CopySourceHeader, versionedObjectInput, } from "./sim-s3-api-object-input.js";
|
|
2
2
|
import { completeMultipartUploadInput, uploadInput, uploadPartInput, } from "./sim-s3-api-multipart-input.js";
|
|
3
3
|
/**
|
|
4
4
|
* The Object-level S3 operations this endpoint serves.
|
|
@@ -16,6 +16,13 @@ export const simS3ObjectApiRoutes = [
|
|
|
16
16
|
commandName: "GetObjectCommand",
|
|
17
17
|
input: getObjectInput,
|
|
18
18
|
},
|
|
19
|
+
{
|
|
20
|
+
method: "GET",
|
|
21
|
+
target: "object",
|
|
22
|
+
subResource: "tagging",
|
|
23
|
+
commandName: "GetObjectTaggingCommand",
|
|
24
|
+
input: versionedObjectInput,
|
|
25
|
+
},
|
|
19
26
|
{
|
|
20
27
|
method: "GET",
|
|
21
28
|
target: "object",
|
|
@@ -56,6 +63,13 @@ export const simS3ObjectApiRoutes = [
|
|
|
56
63
|
commandName: "UploadPartCommand",
|
|
57
64
|
input: uploadPartInput,
|
|
58
65
|
},
|
|
66
|
+
{
|
|
67
|
+
method: "PUT",
|
|
68
|
+
target: "object",
|
|
69
|
+
subResource: "tagging",
|
|
70
|
+
commandName: "PutObjectTaggingCommand",
|
|
71
|
+
input: putObjectTaggingInput,
|
|
72
|
+
},
|
|
59
73
|
{
|
|
60
74
|
// A copy and an upload are both a `PUT` on an Object path, and the copy
|
|
61
75
|
// names its source in a header. Matched first, so an upload carrying no
|
|
@@ -72,6 +86,13 @@ export const simS3ObjectApiRoutes = [
|
|
|
72
86
|
commandName: "PutObjectCommand",
|
|
73
87
|
input: putObjectInput,
|
|
74
88
|
},
|
|
89
|
+
{
|
|
90
|
+
method: "DELETE",
|
|
91
|
+
target: "object",
|
|
92
|
+
subResource: "tagging",
|
|
93
|
+
commandName: "DeleteObjectTaggingCommand",
|
|
94
|
+
input: versionedObjectInput,
|
|
95
|
+
},
|
|
75
96
|
{
|
|
76
97
|
method: "DELETE",
|
|
77
98
|
target: "object",
|
|
@@ -5,5 +5,9 @@
|
|
|
5
5
|
* the operation rather than of its output: a listing answers in XML, a read
|
|
6
6
|
* answers with the Object itself, and a write answers with a status and
|
|
7
7
|
* headers alone.
|
|
8
|
+
*
|
|
9
|
+
* The request's query string is read alongside the output because a read can
|
|
10
|
+
* name the headers it wants served in place of the Object's own, and those are
|
|
11
|
+
* a property of the request rather than of what the operation answered.
|
|
8
12
|
*/
|
|
9
|
-
export declare function simS3ApiResponse(commandName: string, output: unknown): Promise<Response>;
|
|
13
|
+
export declare function simS3ApiResponse(commandName: string, output: unknown, query: URLSearchParams): Promise<Response>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { deleteResultXml, notificationConfigurationXml, publicAccessBlockXml, } from "./sim-s3-api-configuration-output.js";
|
|
1
|
+
import { deleteResultXml, encryptionConfigurationXml, notificationConfigurationXml, publicAccessBlockXml, } from "./sim-s3-api-configuration-output.js";
|
|
2
2
|
import { simS3HeadBucketResponse, simS3HeadObjectResponse, } from "./sim-s3-api-head-output.js";
|
|
3
3
|
import { simS3ListBucketsXml, simS3ListObjectsXml, } from "./sim-s3-api-listing.js";
|
|
4
4
|
import { simS3MultipartResponse } from "./sim-s3-api-multipart-output.js";
|
|
5
|
-
import { simS3CopyObjectXml, simS3GetObjectResponse, } from "./sim-s3-api-object-output.js";
|
|
5
|
+
import { simS3CopyObjectXml, simS3GetObjectResponse, simS3ObjectTaggingXml, } from "./sim-s3-api-object-output.js";
|
|
6
|
+
import { simS3ResponseHeaderOverrides } from "../../object/s3-object-response-headers.js";
|
|
6
7
|
const xmlContentType = { "content-type": "application/xml" };
|
|
7
8
|
/**
|
|
8
9
|
* Build the HTTP response an S3 operation's output is sent as.
|
|
@@ -11,8 +12,12 @@ const xmlContentType = { "content-type": "application/xml" };
|
|
|
11
12
|
* the operation rather than of its output: a listing answers in XML, a read
|
|
12
13
|
* answers with the Object itself, and a write answers with a status and
|
|
13
14
|
* headers alone.
|
|
15
|
+
*
|
|
16
|
+
* The request's query string is read alongside the output because a read can
|
|
17
|
+
* name the headers it wants served in place of the Object's own, and those are
|
|
18
|
+
* a property of the request rather than of what the operation answered.
|
|
14
19
|
*/
|
|
15
|
-
export async function simS3ApiResponse(commandName, output) {
|
|
20
|
+
export async function simS3ApiResponse(commandName, output, query) {
|
|
16
21
|
const value = output;
|
|
17
22
|
switch (commandName) {
|
|
18
23
|
case "ListBucketsCommand": {
|
|
@@ -25,7 +30,7 @@ export async function simS3ApiResponse(commandName, output) {
|
|
|
25
30
|
return xml(simS3ListObjectsXml(value, 2));
|
|
26
31
|
}
|
|
27
32
|
case "GetObjectCommand": {
|
|
28
|
-
return await simS3GetObjectResponse(value);
|
|
33
|
+
return await simS3GetObjectResponse(value, simS3ResponseHeaderOverrides(query));
|
|
29
34
|
}
|
|
30
35
|
case "GetBucketPolicyCommand": {
|
|
31
36
|
// A Bucket policy is a JSON document, and real S3 answers this one
|
|
@@ -39,14 +44,20 @@ export async function simS3ApiResponse(commandName, output) {
|
|
|
39
44
|
case "GetPublicAccessBlockCommand": {
|
|
40
45
|
return xml(publicAccessBlockXml(value));
|
|
41
46
|
}
|
|
47
|
+
case "GetBucketEncryptionCommand": {
|
|
48
|
+
return xml(encryptionConfigurationXml(value));
|
|
49
|
+
}
|
|
42
50
|
case "GetBucketNotificationConfigurationCommand": {
|
|
43
51
|
return xml(notificationConfigurationXml(value));
|
|
44
52
|
}
|
|
53
|
+
case "GetObjectTaggingCommand": {
|
|
54
|
+
return xml(simS3ObjectTaggingXml(value));
|
|
55
|
+
}
|
|
45
56
|
case "DeleteObjectsCommand": {
|
|
46
57
|
return xml(deleteResultXml(value));
|
|
47
58
|
}
|
|
48
59
|
case "HeadObjectCommand": {
|
|
49
|
-
return simS3HeadObjectResponse(value);
|
|
60
|
+
return simS3HeadObjectResponse(value, simS3ResponseHeaderOverrides(query));
|
|
50
61
|
}
|
|
51
62
|
case "HeadBucketCommand": {
|
|
52
63
|
return simS3HeadBucketResponse(value);
|
|
@@ -17,12 +17,13 @@ export interface SimS3ApiRequest {
|
|
|
17
17
|
readonly body: Uint8Array;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Read a request
|
|
20
|
+
* Read a request addressed to the S3 REST API as an S3 request.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* Both of the addressing styles real S3 offers are read, because both arrive
|
|
23
|
+
* here. A client given an endpoint URL sends path style, with the Bucket as
|
|
24
|
+
* the first path segment. An SDK resolving S3's own endpoint sends virtual
|
|
25
|
+
* host style, with the Bucket in the hostname, and function code bundling the
|
|
26
|
+
* SDK reaches this endpoint with exactly that.
|
|
26
27
|
*/
|
|
27
28
|
export declare function readSimS3ApiRequest(request: Request, body: Uint8Array): SimS3ApiRequest;
|
|
28
29
|
/**
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The hostname label S3's own REST endpoints carry.
|
|
3
|
+
*/
|
|
4
|
+
const s3EndpointLabel = "s3";
|
|
5
|
+
/**
|
|
6
|
+
* Read a request addressed to the S3 REST API as an S3 request.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
+
* Both of the addressing styles real S3 offers are read, because both arrive
|
|
9
|
+
* here. A client given an endpoint URL sends path style, with the Bucket as
|
|
10
|
+
* the first path segment. An SDK resolving S3's own endpoint sends virtual
|
|
11
|
+
* host style, with the Bucket in the hostname, and function code bundling the
|
|
12
|
+
* SDK reaches this endpoint with exactly that.
|
|
8
13
|
*/
|
|
9
14
|
export function readSimS3ApiRequest(request, body) {
|
|
10
15
|
const url = new URL(request.url);
|
|
11
|
-
|
|
12
|
-
// can itself contain slashes.
|
|
13
|
-
const path = url.pathname.replace(/^\//, "");
|
|
14
|
-
const separator = path.indexOf("/");
|
|
15
|
-
const bucketName = separator === -1 ? path : path.slice(0, separator);
|
|
16
|
-
const objectKey = separator === -1 ? "" : path.slice(separator + 1);
|
|
16
|
+
const { bucketName, objectKey } = simS3ApiRequestTargetNames(url.hostname, url.pathname.replace(/^\//, ""));
|
|
17
17
|
return {
|
|
18
18
|
method: request.method,
|
|
19
19
|
bucketName: decodeURIComponent(bucketName),
|
|
@@ -23,6 +23,50 @@ export function readSimS3ApiRequest(request, body) {
|
|
|
23
23
|
body,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Split what a request addressed into the Bucket it names and the Object key
|
|
28
|
+
* below it, still encoded as they were sent.
|
|
29
|
+
*
|
|
30
|
+
* A virtual host request names its Bucket in the hostname, which leaves its
|
|
31
|
+
* whole path as the key. A path style request names both in the path, where
|
|
32
|
+
* the first segment is the Bucket and everything after it is the key, which
|
|
33
|
+
* can itself contain slashes.
|
|
34
|
+
*/
|
|
35
|
+
function simS3ApiRequestTargetNames(hostname, path) {
|
|
36
|
+
const hostedBucketName = simS3VirtualHostBucketName(hostname);
|
|
37
|
+
if (hostedBucketName !== undefined) {
|
|
38
|
+
return { bucketName: hostedBucketName, objectKey: path };
|
|
39
|
+
}
|
|
40
|
+
const separator = path.indexOf("/");
|
|
41
|
+
if (separator === -1) {
|
|
42
|
+
return { bucketName: path, objectKey: "" };
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
bucketName: path.slice(0, separator),
|
|
46
|
+
objectKey: path.slice(separator + 1),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The Bucket a virtual host style hostname names, or nothing for a hostname
|
|
51
|
+
* that names none.
|
|
52
|
+
*
|
|
53
|
+
* S3's own endpoint hostnames carry an `s3` label, and virtual host style puts
|
|
54
|
+
* the Bucket in front of it, as in `<bucket>.s3.<region>.amazonaws.com`. Path
|
|
55
|
+
* style is the same hostname with nothing in front. The labels before the
|
|
56
|
+
* first `s3` label are the Bucket, and an empty set of them is path style.
|
|
57
|
+
*
|
|
58
|
+
* A Bucket name can contain dots. One Bucket is then several hostname labels,
|
|
59
|
+
* joined back together here.
|
|
60
|
+
*
|
|
61
|
+
* A hostname carrying no `s3` label names no Bucket. That covers the local
|
|
62
|
+
* endpoint an `--endpoint-url` client sends, which addresses every service on
|
|
63
|
+
* one hostname and can only be path style.
|
|
64
|
+
*/
|
|
65
|
+
function simS3VirtualHostBucketName(hostname) {
|
|
66
|
+
const labels = hostname.split(".");
|
|
67
|
+
const endpoint = labels.indexOf(s3EndpointLabel);
|
|
68
|
+
return endpoint <= 0 ? undefined : labels.slice(0, endpoint).join(".");
|
|
69
|
+
}
|
|
26
70
|
/**
|
|
27
71
|
* Decode an Object key from the path it was sent in.
|
|
28
72
|
*
|
|
@@ -13,6 +13,8 @@ const servedSubResources = [
|
|
|
13
13
|
"delete",
|
|
14
14
|
"uploads",
|
|
15
15
|
"uploadId",
|
|
16
|
+
"encryption",
|
|
17
|
+
"tagging",
|
|
16
18
|
];
|
|
17
19
|
/**
|
|
18
20
|
* Every sub-resource S3 defines, served here or not.
|
|
@@ -29,7 +31,6 @@ const knownSubResources = new Set([
|
|
|
29
31
|
"acl",
|
|
30
32
|
"analytics",
|
|
31
33
|
"cors",
|
|
32
|
-
"encryption",
|
|
33
34
|
"intelligent-tiering",
|
|
34
35
|
"inventory",
|
|
35
36
|
"legal-hold",
|
|
@@ -45,7 +46,6 @@ const knownSubResources = new Set([
|
|
|
45
46
|
"restore",
|
|
46
47
|
"retention",
|
|
47
48
|
"select",
|
|
48
|
-
"tagging",
|
|
49
49
|
"torrent",
|
|
50
50
|
"versioning",
|
|
51
51
|
"versions",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the tag set a PutObjectTagging body carries.
|
|
3
|
+
*
|
|
4
|
+
* This sits apart from the other request-body readers because it is the only
|
|
5
|
+
* one about an Object rather than about a Bucket's configuration. A tag naming
|
|
6
|
+
* no key comes through with none, so the tagging command refuses it rather than
|
|
7
|
+
* the reader silently dropping it.
|
|
8
|
+
*/
|
|
9
|
+
export declare function readSimS3Tagging(body: string): object;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { parseXmlDocument, xmlChild, xmlChildren, xmlText, } from "../../../../util/xml/xml-document.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read the tag set a PutObjectTagging body carries.
|
|
4
|
+
*
|
|
5
|
+
* This sits apart from the other request-body readers because it is the only
|
|
6
|
+
* one about an Object rather than about a Bucket's configuration. A tag naming
|
|
7
|
+
* no key comes through with none, so the tagging command refuses it rather than
|
|
8
|
+
* the reader silently dropping it.
|
|
9
|
+
*/
|
|
10
|
+
export function readSimS3Tagging(body) {
|
|
11
|
+
return {
|
|
12
|
+
TagSet: xmlChildren(xmlChild(parseXmlDocument(body), "TagSet"), "Tag").map((tag) => ({ Key: xmlText(tag, "Key"), Value: xmlText(tag, "Value") })),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -22,7 +22,13 @@ export declare class SimS3ApiEndpoint {
|
|
|
22
22
|
* The Region is the one the request was signed for, read from its credential
|
|
23
23
|
* scope, so it arrives as whatever the client wrote rather than as a Region
|
|
24
24
|
* the simulator has already recognised.
|
|
25
|
+
*
|
|
26
|
+
* A request nothing has authenticated arrives with no caller, and runs as
|
|
27
|
+
* the ambient caller of whatever sent it, in the same way an intercepted SDK
|
|
28
|
+
* client's Command does. A sim Lambda's outbound call relies on that. Its
|
|
29
|
+
* signature is over placeholder credentials, and the invocation is already
|
|
30
|
+
* running as the execution Role.
|
|
25
31
|
*/
|
|
26
|
-
handle(request: Request, body: Uint8Array, caller: SimAwsCaller, regionName: string): Promise<Response>;
|
|
32
|
+
handle(request: Request, body: Uint8Array, caller: SimAwsCaller | undefined, regionName: string): Promise<Response>;
|
|
27
33
|
}
|
|
28
34
|
export {};
|