@kensio/yulin 1.21.0 → 1.21.2
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/README.md +1 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.js +4 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
- package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
- package/dist/service/aws/sim-aws-account.d.ts +3 -0
- package/dist/service/aws/sim-aws-account.js +4 -0
- package/dist/service/aws/sim-aws-region.d.ts +3 -0
- package/dist/service/aws/sim-aws-region.js +4 -0
- package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
- package/dist/service/aws/sim-aws-service-accessors.js +4 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
- package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
- package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
- package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
- package/dist/service/backup/command/sim-backup-command.types.js +1 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
- package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
- package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
- package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
- package/dist/service/backup/command/sim-backup-request-options.js +1 -0
- package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
- package/dist/service/backup/command/sim-backup-required-string.js +8 -0
- package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
- package/dist/service/backup/error/sim-backup.error.js +50 -0
- package/dist/service/backup/index.d.ts +9 -0
- package/dist/service/backup/index.js +7 -0
- package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
- package/dist/service/backup/job/sim-backup-job-input.js +1 -0
- package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
- package/dist/service/backup/job/sim-backup-job-page.js +54 -0
- package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
- package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
- package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
- package/dist/service/backup/job/sim-backup-job.js +54 -0
- package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
- package/dist/service/backup/job/sim-backup-jobs.js +33 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
- package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
- package/dist/service/backup/plan/sim-backup-plan.js +37 -0
- package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
- package/dist/service/backup/plan/sim-backup-rule.js +71 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
- package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
- package/dist/service/backup/selection/sim-backup-selection.js +43 -0
- package/dist/service/backup/sim-backup-arn.d.ts +7 -0
- package/dist/service/backup/sim-backup-arn.js +12 -0
- package/dist/service/backup/sim-backup-properties.d.ts +8 -0
- package/dist/service/backup/sim-backup-properties.js +1 -0
- package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
- package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
- package/dist/service/backup/sim-backup-store.d.ts +29 -0
- package/dist/service/backup/sim-backup-store.js +80 -0
- package/dist/service/backup/sim-backup.d.ts +48 -0
- package/dist/service/backup/sim-backup.js +139 -0
- package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
- package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
- package/dist/service/backup/vault/sim-backup-vault.js +49 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
- package/dist/service/cloudwatch/index.d.ts +1 -0
- package/dist/service/cloudwatch/index.js +1 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
- package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
- package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
- package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
- package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
- package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
- package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
- package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
- package/dist/service/cognito/index.d.ts +2 -0
- package/dist/service/cognito/index.js +2 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
- package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
- package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
- 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 +4 -1
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
- package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
- package/dist/service/lambda/function/sim-lambda-function.js +6 -2
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
- package/dist/service/lambda/sim-lambda-commands.js +2 -1
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
- package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
- package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
- package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
- package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
- package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
- package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
- package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
- package/dist/service/logs/group/sim-logs-log-group.js +6 -0
- package/dist/service/logs/index.d.ts +6 -0
- package/dist/service/logs/index.js +4 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
- package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
- package/dist/service/logs/sim-logs-commands.d.ts +12 -0
- package/dist/service/logs/sim-logs-commands.js +17 -0
- package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
- package/dist/service/logs/sim-logs-metric-operations.js +37 -0
- package/dist/service/logs/sim-logs.d.ts +4 -3
- package/dist/service/logs/sim-logs.js +4 -3
- package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
- package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -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 +9 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
- package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
- package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
- package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
- package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
- package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
- package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
- package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
- package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
- package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
- package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
- package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
- package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
- package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
- 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 +9 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
- package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
- package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
- package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
- package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
- package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
- package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3.error.js +26 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
- package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
- package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
- package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -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 +5 -5
- package/dist/service/s3/sim-s3-operations.js +5 -6
- package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
- package/dist/service/s3/sim-s3-version-operations.js +45 -0
- package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
- package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
- package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
- package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
- package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
- package/dist/service/scheduler/index.d.ts +1 -1
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
- package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
- package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +13 -5
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +1 -1
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +9 -9
- package/dist/service/ses/command/send/send.command.d.ts +10 -1
- package/dist/service/ses/command/send/sim-ses-read-content.d.ts +2 -1
- package/dist/service/ses/command/send/sim-ses-send-email.js +1 -0
- package/dist/service/ses/command/send/sim-ses-service-send.js +1 -0
- package/dist/service/ses/command/send/sim-ses-simple-content.js +26 -5
- package/dist/service/ses/command/send/sim-ses-template-send.js +1 -0
- package/dist/service/ses/command/suppression/suppression.command.d.ts +3 -2
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +9 -10
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +7 -8
- package/dist/service/ses/email/sim-ses-sent-email-store.d.ts +8 -0
- package/dist/service/ses/email/sim-ses-sent-email-store.js +17 -0
- package/dist/service/ses/email/sim-ses-sent-email.d.ts +18 -0
- package/dist/service/ses/email/sim-ses-sent-email.js +3 -0
- package/dist/service/ses/error/sim-ses.error.d.ts +10 -0
- package/dist/service/ses/error/sim-ses.error.js +10 -0
- package/dist/service/ses/feedback/sim-ses-feedback-recorder.d.ts +34 -0
- package/dist/service/ses/feedback/sim-ses-feedback-recorder.js +55 -0
- package/dist/service/ses/index.d.ts +3 -2
- package/dist/service/ses/index.js +2 -1
- package/dist/service/ses/sim-ses-commands.d.ts +2 -0
- package/dist/service/ses/sim-ses-commands.js +9 -0
- package/dist/service/ses/sim-ses-configuration-sets.d.ts +4 -4
- package/dist/service/ses/sim-ses-configuration-sets.js +4 -4
- package/dist/service/ses/sim-ses-suppression.d.ts +3 -2
- package/dist/service/ses/sim-ses-suppression.js +3 -2
- package/dist/service/ses/sim-ses-v2.d.ts +13 -0
- package/dist/service/ses/sim-ses-v2.js +13 -0
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +3 -4
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +3 -4
- package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +4 -4
- package/dist/service/ses/suppression/sim-ses-suppression-list.js +4 -4
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
- package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
- package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
- package/docs/README.md +1 -0
- package/docs/services/backup/README.md +553 -0
- package/docs/services/cloudformation/README.md +16 -6
- package/docs/services/cloudwatch/README.md +159 -3
- package/docs/services/cognito/README.md +370 -7
- package/docs/services/lambda/README.md +28 -0
- package/docs/services/logs/README.md +284 -3
- package/docs/services/s3/README.md +463 -20
- package/docs/services/scheduler/README.md +48 -9
- package/docs/services/ses/README.md +164 -41
- package/docs/services/sqs/README.md +47 -10
- package/llms.txt +1 -0
- package/package.json +7 -2
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
export const simulatedPropertyNames = new Set([
|
|
5
5
|
"BucketName",
|
|
6
6
|
"LifecycleConfiguration",
|
|
7
|
+
"ObjectLockConfiguration",
|
|
8
|
+
"ObjectLockEnabled",
|
|
7
9
|
"NotificationConfiguration",
|
|
8
10
|
"PublicAccessBlockConfiguration",
|
|
11
|
+
"VersioningConfiguration",
|
|
9
12
|
"WebsiteConfiguration",
|
|
10
13
|
]);
|
|
11
14
|
/**
|
|
@@ -21,15 +24,19 @@ export const inertPropertyNames = new Set([
|
|
|
21
24
|
"BucketEncryption",
|
|
22
25
|
"Tags",
|
|
23
26
|
]);
|
|
27
|
+
import { validateSimCfnS3BucketReplication } from "./replication/sim-cfn-s3-bucket-replication-rules.js";
|
|
24
28
|
/**
|
|
25
29
|
* Real AWS::S3::Bucket properties this simulation does not model, with what
|
|
26
30
|
* each of them would have changed.
|
|
27
31
|
*
|
|
28
32
|
* The Bucket is created without them and each one is recorded against the
|
|
29
|
-
* Resource. A
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
+
* Resource. A Bucket declaring replication, for instance, copies nothing to
|
|
34
|
+
* the Bucket it names, so a test expecting an Object to arrive there needs to
|
|
35
|
+
* find out that nothing was ever going to send it.
|
|
36
|
+
*
|
|
37
|
+
* A property whose value real S3 answers with a 400 states what it has to
|
|
38
|
+
* satisfy here as well. Nothing acts on the value either way, and reading it
|
|
39
|
+
* this far is what keeps a template AWS refuses from deploying.
|
|
33
40
|
*/
|
|
34
41
|
export const unsimulatedPropertyReasons = new Map([
|
|
35
42
|
["AbacStatus", "attribute-based access control is not simulated"],
|
|
@@ -55,19 +62,12 @@ export const unsimulatedPropertyReasons = new Map([
|
|
|
55
62
|
["MetadataConfiguration", "Bucket metadata tables are not simulated"],
|
|
56
63
|
["MetadataTableConfiguration", "Bucket metadata tables are not simulated"],
|
|
57
64
|
["MetricsConfigurations", "CloudWatch request metrics are not simulated"],
|
|
58
|
-
[
|
|
59
|
-
"ObjectLockConfiguration",
|
|
60
|
-
"Object Lock is not simulated, so a retained Object can still be deleted",
|
|
61
|
-
],
|
|
62
|
-
[
|
|
63
|
-
"ObjectLockEnabled",
|
|
64
|
-
"Object Lock is not simulated, so a retained Object can still be deleted",
|
|
65
|
-
],
|
|
66
65
|
["OwnershipControls", "Object ownership and ACLs are not simulated"],
|
|
67
|
-
["ReplicationConfiguration", "Bucket replication is not simulated"],
|
|
68
66
|
[
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
"ReplicationConfiguration",
|
|
68
|
+
{
|
|
69
|
+
reason: "Bucket replication is not simulated",
|
|
70
|
+
constraint: validateSimCfnS3BucketReplication,
|
|
71
|
+
},
|
|
72
72
|
],
|
|
73
73
|
]);
|
|
@@ -10,9 +10,12 @@ interface SimCfnS3BucketPropertyRulesProperties {
|
|
|
10
10
|
*
|
|
11
11
|
* Simulated CloudFormation deploys what it can, so a property this simulation
|
|
12
12
|
* cannot act on does not stop the Bucket being created. It is left out and
|
|
13
|
-
* recorded against the Resource, where a test can find it.
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* recorded against the Resource, where a test can find it.
|
|
14
|
+
*
|
|
15
|
+
* Refusing is kept for two cases. There is nothing coherent to create, as a
|
|
16
|
+
* BucketName that is not a name leaves. Or the value is one real S3 answers
|
|
17
|
+
* with a 400, which a skipped property can carry as readily as a simulated
|
|
18
|
+
* one, and deploying it here would report a template AWS refuses as working.
|
|
16
19
|
*
|
|
17
20
|
* A property this simulation has never heard of is treated the same way. It may
|
|
18
21
|
* be a typo, or a property AWS added since this list was written, and a Bucket
|
|
@@ -23,10 +26,11 @@ export declare class SimCfnS3BucketPropertyRules {
|
|
|
23
26
|
private readonly logicalId;
|
|
24
27
|
private readonly properties;
|
|
25
28
|
private readonly ignorer;
|
|
29
|
+
private readonly skipped;
|
|
26
30
|
constructor(properties: SimCfnS3BucketPropertyRulesProperties);
|
|
27
31
|
/**
|
|
28
|
-
* Record everything about this Resource that is not simulated, refusing
|
|
29
|
-
* what leaves nothing to create.
|
|
32
|
+
* Record everything about this Resource that is not simulated, refusing
|
|
33
|
+
* what leaves nothing to create and what real S3 answers with a 400.
|
|
30
34
|
*/
|
|
31
35
|
apply(): void;
|
|
32
36
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SimCfnSkippedProperties } from "../../../cloudformation/resource/ignore/sim-cfn-skipped-properties.js";
|
|
1
2
|
import { s3BucketResourceError } from "./error/sim-cfn-s3-bucket-error.js";
|
|
2
3
|
import { inertPropertyNames, simulatedPropertyNames, unsimulatedPropertyReasons, } from "./sim-cfn-s3-bucket-property-names.js";
|
|
3
4
|
/**
|
|
@@ -5,9 +6,12 @@ import { inertPropertyNames, simulatedPropertyNames, unsimulatedPropertyReasons,
|
|
|
5
6
|
*
|
|
6
7
|
* Simulated CloudFormation deploys what it can, so a property this simulation
|
|
7
8
|
* cannot act on does not stop the Bucket being created. It is left out and
|
|
8
|
-
* recorded against the Resource, where a test can find it.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* recorded against the Resource, where a test can find it.
|
|
10
|
+
*
|
|
11
|
+
* Refusing is kept for two cases. There is nothing coherent to create, as a
|
|
12
|
+
* BucketName that is not a name leaves. Or the value is one real S3 answers
|
|
13
|
+
* with a 400, which a skipped property can carry as readily as a simulated
|
|
14
|
+
* one, and deploying it here would report a template AWS refuses as working.
|
|
11
15
|
*
|
|
12
16
|
* A property this simulation has never heard of is treated the same way. It may
|
|
13
17
|
* be a typo, or a property AWS added since this list was written, and a Bucket
|
|
@@ -18,17 +22,24 @@ export class SimCfnS3BucketPropertyRules {
|
|
|
18
22
|
logicalId;
|
|
19
23
|
properties;
|
|
20
24
|
ignorer;
|
|
25
|
+
skipped;
|
|
21
26
|
constructor(properties) {
|
|
22
27
|
this.logicalId = properties.logicalId;
|
|
23
28
|
this.properties = properties.properties;
|
|
24
29
|
this.ignorer = properties.ignorer;
|
|
30
|
+
this.skipped = new SimCfnSkippedProperties({
|
|
31
|
+
rules: unsimulatedPropertyReasons,
|
|
32
|
+
properties: this.properties,
|
|
33
|
+
error: (reason) => s3BucketResourceError(this.logicalId, reason),
|
|
34
|
+
});
|
|
25
35
|
}
|
|
26
36
|
/**
|
|
27
|
-
* Record everything about this Resource that is not simulated, refusing
|
|
28
|
-
* what leaves nothing to create.
|
|
37
|
+
* Record everything about this Resource that is not simulated, refusing
|
|
38
|
+
* what leaves nothing to create and what real S3 answers with a 400.
|
|
29
39
|
*/
|
|
30
40
|
apply() {
|
|
31
41
|
this.refuseUnusableBucketName();
|
|
42
|
+
this.skipped.assertConstraints();
|
|
32
43
|
for (const name of Object.keys(this.properties)) {
|
|
33
44
|
this.applyToProperty(name);
|
|
34
45
|
}
|
|
@@ -52,7 +63,7 @@ export class SimCfnS3BucketPropertyRules {
|
|
|
52
63
|
if (simulatedPropertyNames.has(name) || inertPropertyNames.has(name)) {
|
|
53
64
|
return;
|
|
54
65
|
}
|
|
55
|
-
const unsimulatedReason =
|
|
66
|
+
const unsimulatedReason = this.skipped.reasonFor(name);
|
|
56
67
|
if (unsimulatedReason !== undefined) {
|
|
57
68
|
this.ignorer.ignoreProperty(name, `${name} is a real AWS::S3::Bucket property simulated S3 does not ` +
|
|
58
69
|
`act on: ${unsimulatedReason}`);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SimCfnTemplateValueRecord } from "../../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { SimS3VersioningConfiguration } from "../../../bucket/versioning/sim-s3-bucket-versioning.js";
|
|
3
|
+
/**
|
|
4
|
+
* Reads the `VersioningConfiguration` property of an AWS::S3::Bucket Resource.
|
|
5
|
+
*
|
|
6
|
+
* CloudFormation names the status exactly as PutBucketVersioning does, so the
|
|
7
|
+
* property is handed to the command rather than translated here. The command
|
|
8
|
+
* is also what refuses a status S3 does not take, which keeps a template and
|
|
9
|
+
* an SDK caller answering alike.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimCfnS3BucketVersioningConfiguration {
|
|
12
|
+
private readonly properties;
|
|
13
|
+
private readonly shape;
|
|
14
|
+
constructor(logicalId: string, properties: SimCfnTemplateValueRecord);
|
|
15
|
+
/**
|
|
16
|
+
* The configuration to apply, or nothing when the Resource declares none.
|
|
17
|
+
*/
|
|
18
|
+
read(): SimS3VersioningConfiguration | undefined;
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SimCfnValueShape } from "../../../../cloudformation/template/value/sim-cfn-value-shape.js";
|
|
2
|
+
import { s3BucketResourceError } from "../error/sim-cfn-s3-bucket-error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Reads the `VersioningConfiguration` property of an AWS::S3::Bucket Resource.
|
|
5
|
+
*
|
|
6
|
+
* CloudFormation names the status exactly as PutBucketVersioning does, so the
|
|
7
|
+
* property is handed to the command rather than translated here. The command
|
|
8
|
+
* is also what refuses a status S3 does not take, which keeps a template and
|
|
9
|
+
* an SDK caller answering alike.
|
|
10
|
+
*/
|
|
11
|
+
export class SimCfnS3BucketVersioningConfiguration {
|
|
12
|
+
properties;
|
|
13
|
+
shape;
|
|
14
|
+
constructor(logicalId, properties) {
|
|
15
|
+
this.properties = properties;
|
|
16
|
+
this.shape = new SimCfnValueShape((reason) => s3BucketResourceError(logicalId, reason));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The configuration to apply, or nothing when the Resource declares none.
|
|
20
|
+
*/
|
|
21
|
+
read() {
|
|
22
|
+
const declared = this.properties["VersioningConfiguration"];
|
|
23
|
+
if (declared === undefined) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return this.shape.record(declared, "VersioningConfiguration");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
2
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
3
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
4
|
+
/** One S3 request, as the decision to allow it is asked for. */
|
|
5
|
+
export interface SimS3AuthorizedAction {
|
|
6
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
7
|
+
/** The real IAM action, such as `s3:PutObjectRetention`. */
|
|
8
|
+
readonly action: string;
|
|
9
|
+
/** The Bucket ARN or the Object ARN, whichever the action is granted on. */
|
|
10
|
+
readonly resource: string;
|
|
11
|
+
/** The Bucket whose own policy is part of the decision. */
|
|
12
|
+
readonly bucket: SimS3Bucket;
|
|
13
|
+
readonly options: SimS3RequestOptions | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ensure one caller may take one action on one S3 resource.
|
|
17
|
+
*
|
|
18
|
+
* The Bucket's own policy is part of every decision, alongside whatever the
|
|
19
|
+
* caller's identity policies say, and the request's source ARN and Account are
|
|
20
|
+
* supplied as the condition keys a Bucket policy is usually written against.
|
|
21
|
+
* An omitted caller is passed through to sim IAM, so Account root fallback
|
|
22
|
+
* stays owned by IAM.
|
|
23
|
+
*/
|
|
24
|
+
export declare function simS3AuthorizeAction(request: SimS3AuthorizedAction): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
|
|
2
|
+
import { simS3BucketResourcePolicies } from "./sim-s3-bucket-resource-policies.js";
|
|
3
|
+
import { simS3ConditionContext } from "./sim-s3-condition-context.js";
|
|
4
|
+
/**
|
|
5
|
+
* Ensure one caller may take one action on one S3 resource.
|
|
6
|
+
*
|
|
7
|
+
* The Bucket's own policy is part of every decision, alongside whatever the
|
|
8
|
+
* caller's identity policies say, and the request's source ARN and Account are
|
|
9
|
+
* supplied as the condition keys a Bucket policy is usually written against.
|
|
10
|
+
* An omitted caller is passed through to sim IAM, so Account root fallback
|
|
11
|
+
* stays owned by IAM.
|
|
12
|
+
*/
|
|
13
|
+
export function simS3AuthorizeAction(request) {
|
|
14
|
+
const { iam, action, resource, bucket, options } = request;
|
|
15
|
+
const decision = iam.authorize({
|
|
16
|
+
action,
|
|
17
|
+
resource,
|
|
18
|
+
caller: options?.caller,
|
|
19
|
+
conditionContext: simS3ConditionContext(options),
|
|
20
|
+
resourcePolicies: simS3BucketResourcePolicies(bucket),
|
|
21
|
+
});
|
|
22
|
+
if (decision.isDenied) {
|
|
23
|
+
throw new SimIamAccessDenied({
|
|
24
|
+
principal: decision.caller.principal,
|
|
25
|
+
reason: decision.denialReason,
|
|
26
|
+
action,
|
|
27
|
+
resource,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts
CHANGED
|
@@ -37,5 +37,7 @@ export interface SimCompleteMultipartUploadCommandOutput {
|
|
|
37
37
|
readonly Bucket?: string;
|
|
38
38
|
readonly Key?: string;
|
|
39
39
|
readonly ETag?: string;
|
|
40
|
+
/** The version the assembled Object was written as, if the Bucket keeps them. */
|
|
41
|
+
readonly VersionId?: string | undefined;
|
|
40
42
|
readonly $metadata: SimResponseMetadata;
|
|
41
43
|
}
|
package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js
CHANGED
|
@@ -34,19 +34,21 @@ export class CompleteMultipartUploadCommandHandler {
|
|
|
34
34
|
parts: namedParts(command.input.MultipartUpload?.Parts ?? []),
|
|
35
35
|
completedAt: this.access.now(),
|
|
36
36
|
});
|
|
37
|
-
await bucket.putObject(object);
|
|
37
|
+
const version = await bucket.putObject(object);
|
|
38
38
|
bucket.getMultipartUploads().discard(UploadId);
|
|
39
39
|
this.notifications.objectCreated({
|
|
40
40
|
bucket,
|
|
41
41
|
object,
|
|
42
42
|
caller,
|
|
43
43
|
eventName: "s3:ObjectCreated:CompleteMultipartUpload",
|
|
44
|
+
versionId: version?.versionId,
|
|
44
45
|
});
|
|
45
46
|
return {
|
|
46
47
|
Location: new URL(object.key, uploadedTo(bucket)).href,
|
|
47
48
|
Bucket: bucket.bucketName,
|
|
48
49
|
Key: object.key,
|
|
49
50
|
ETag: simS3QuotedETag(object.etag),
|
|
51
|
+
...(version !== undefined && { VersionId: version.versionId }),
|
|
50
52
|
$metadata: {},
|
|
51
53
|
};
|
|
52
54
|
}
|
|
@@ -25,10 +25,12 @@ export interface SimCopyObjectCommandInput extends SimS3ObjectWriteMetadata {
|
|
|
25
25
|
*
|
|
26
26
|
* The copy's own ETag and write time arrive nested in `CopyObjectResult`
|
|
27
27
|
* rather than at the top level, because real S3 sends them in the response
|
|
28
|
-
* body and the top-level headers describe the request.
|
|
28
|
+
* body and the top-level headers describe the request. `VersionId` is the
|
|
29
|
+
* version the copy was written as, on a Bucket keeping versions.
|
|
29
30
|
*/
|
|
30
31
|
export interface SimCopyObjectCommandOutput {
|
|
31
32
|
readonly CopyObjectResult?: SimCopyObjectResult;
|
|
33
|
+
readonly VersionId?: string | undefined;
|
|
32
34
|
readonly $metadata: SimResponseMetadata;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
@@ -57,18 +57,20 @@ export class CopyObjectCommandHandler {
|
|
|
57
57
|
const caller = this.destinationAuthorizer.authorize(destination, key, options);
|
|
58
58
|
const stored = await simS3CopySourceObject(source, from.key);
|
|
59
59
|
const object = this.objectBuilder.build(command.input, key, stored);
|
|
60
|
-
await destination.putObject(object);
|
|
60
|
+
const version = await destination.putObject(object);
|
|
61
61
|
this.notifications.objectCreated({
|
|
62
62
|
bucket: destination,
|
|
63
63
|
object,
|
|
64
64
|
caller,
|
|
65
65
|
eventName: "s3:ObjectCreated:Copy",
|
|
66
|
+
versionId: version?.versionId,
|
|
66
67
|
});
|
|
67
68
|
return {
|
|
68
69
|
CopyObjectResult: {
|
|
69
70
|
ETag: simS3QuotedETag(object.etag),
|
|
70
71
|
LastModified: object.lastModified,
|
|
71
72
|
},
|
|
73
|
+
...(version !== undefined && { VersionId: version.versionId }),
|
|
72
74
|
$metadata: {},
|
|
73
75
|
};
|
|
74
76
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
|
+
import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
4
|
+
import type { SimS3ObjectNotifier } from "../../notification/sim-s3-object-notifier.js";
|
|
5
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
6
|
+
import type { SimDeleteObjectCommandOutput } from "./delete-object.command.js";
|
|
7
|
+
interface DeleteObjectVersionRemovalProperties {
|
|
8
|
+
readonly notifications: SimS3ObjectNotifier;
|
|
9
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* One request to remove one named version.
|
|
13
|
+
*/
|
|
14
|
+
export interface SimS3VersionRemoval {
|
|
15
|
+
readonly bucket: SimS3Bucket;
|
|
16
|
+
readonly key: string;
|
|
17
|
+
readonly versionId: string;
|
|
18
|
+
readonly caller: SimAwsResolvedCaller;
|
|
19
|
+
readonly bypassGovernance: boolean | undefined;
|
|
20
|
+
readonly options: SimS3RequestOptions | undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Removes one named version of a key for good.
|
|
24
|
+
*
|
|
25
|
+
* Separate from the request-level delete because the two answer differently.
|
|
26
|
+
* A delete without a version id writes a marker over the current version and
|
|
27
|
+
* leaves the bytes where they are. This one takes a version away, and only
|
|
28
|
+
* this one can leave a key with nothing under it on a versioned Bucket. It is
|
|
29
|
+
* also the only one Object Lock has anything to say about.
|
|
30
|
+
*/
|
|
31
|
+
export declare class DeleteObjectVersionRemoval {
|
|
32
|
+
private readonly notifications;
|
|
33
|
+
private readonly objectLock;
|
|
34
|
+
constructor(properties: DeleteObjectVersionRemovalProperties);
|
|
35
|
+
/**
|
|
36
|
+
* Remove the named version, reporting what went.
|
|
37
|
+
*
|
|
38
|
+
* Real S3 answers a version that was never there the same way it answers one
|
|
39
|
+
* it removed, so a version id nothing matches is reported back rather than
|
|
40
|
+
* raised. Removing a delete marker is reported as such, which is how a
|
|
41
|
+
* caller undoing a delete knows the marker was what went.
|
|
42
|
+
*
|
|
43
|
+
* A version Object Lock is holding is refused with `AccessDenied` before
|
|
44
|
+
* anything is removed. Naming `BypassGovernanceRetention` gets past a
|
|
45
|
+
* governance period, and needs `s3:BypassGovernanceRetention` as well as the
|
|
46
|
+
* `s3:DeleteObject` the request already needed.
|
|
47
|
+
*/
|
|
48
|
+
remove(request: SimS3VersionRemoval): Promise<SimDeleteObjectCommandOutput>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { SimS3ObjectLockAuthorizer } from "../object-lock/sim-s3-object-lock-authorizer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Removes one named version of a key for good.
|
|
4
|
+
*
|
|
5
|
+
* Separate from the request-level delete because the two answer differently.
|
|
6
|
+
* A delete without a version id writes a marker over the current version and
|
|
7
|
+
* leaves the bytes where they are. This one takes a version away, and only
|
|
8
|
+
* this one can leave a key with nothing under it on a versioned Bucket. It is
|
|
9
|
+
* also the only one Object Lock has anything to say about.
|
|
10
|
+
*/
|
|
11
|
+
export class DeleteObjectVersionRemoval {
|
|
12
|
+
notifications;
|
|
13
|
+
objectLock;
|
|
14
|
+
constructor(properties) {
|
|
15
|
+
this.notifications = properties.notifications;
|
|
16
|
+
this.objectLock = new SimS3ObjectLockAuthorizer({ iam: properties.iam });
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Remove the named version, reporting what went.
|
|
20
|
+
*
|
|
21
|
+
* Real S3 answers a version that was never there the same way it answers one
|
|
22
|
+
* it removed, so a version id nothing matches is reported back rather than
|
|
23
|
+
* raised. Removing a delete marker is reported as such, which is how a
|
|
24
|
+
* caller undoing a delete knows the marker was what went.
|
|
25
|
+
*
|
|
26
|
+
* A version Object Lock is holding is refused with `AccessDenied` before
|
|
27
|
+
* anything is removed. Naming `BypassGovernanceRetention` gets past a
|
|
28
|
+
* governance period, and needs `s3:BypassGovernanceRetention` as well as the
|
|
29
|
+
* `s3:DeleteObject` the request already needed.
|
|
30
|
+
*/
|
|
31
|
+
async remove(request) {
|
|
32
|
+
const { bucket, key, versionId, caller } = request;
|
|
33
|
+
const bypassed = this.objectLock.authorizeBypass(bucket, key, request.bypassGovernance, request.options);
|
|
34
|
+
const removed = await bucket.deleteObjectVersion(key, versionId, bypassed);
|
|
35
|
+
if (removed !== undefined && !removed.isDeleteMarker) {
|
|
36
|
+
this.notifications.objectRemoved({
|
|
37
|
+
bucket,
|
|
38
|
+
key,
|
|
39
|
+
caller,
|
|
40
|
+
eventName: "s3:ObjectRemoved:Delete",
|
|
41
|
+
// A Bucket keeping no versions raises a record without one, as real S3
|
|
42
|
+
// does, even where the request named the null version to get here.
|
|
43
|
+
...(bucket.getVersions().keepsVersions && { versionId }),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
...(removed?.isDeleteMarker === true && { DeleteMarker: true }),
|
|
48
|
+
VersionId: versionId,
|
|
49
|
+
$metadata: {},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -11,13 +11,30 @@ export interface SimDeleteObjectCommand {
|
|
|
11
11
|
export interface SimDeleteObjectCommandInput {
|
|
12
12
|
readonly Bucket?: string | undefined;
|
|
13
13
|
readonly Key?: string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* The version to remove permanently.
|
|
16
|
+
*
|
|
17
|
+
* A request naming none asks for the current version, which a versioned
|
|
18
|
+
* Bucket answers by writing a delete marker rather than removing anything.
|
|
19
|
+
*/
|
|
20
|
+
readonly VersionId?: string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to get past a governance retention period holding the named
|
|
23
|
+
* version, which the caller also needs `s3:BypassGovernanceRetention` for.
|
|
24
|
+
*
|
|
25
|
+
* A compliance period and a legal hold have no bypass, so this changes
|
|
26
|
+
* nothing for either.
|
|
27
|
+
*/
|
|
28
|
+
readonly BypassGovernanceRetention?: boolean | undefined;
|
|
14
29
|
}
|
|
15
30
|
/**
|
|
16
31
|
* Minimal structural sim S3 DeleteObject output.
|
|
17
32
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
33
|
+
* `DeleteMarker` and `VersionId` describe what a versioned Bucket did. A
|
|
34
|
+
* Bucket without versioning carries neither, as real S3 does.
|
|
20
35
|
*/
|
|
21
36
|
export interface SimDeleteObjectCommandOutput {
|
|
37
|
+
readonly DeleteMarker?: boolean | undefined;
|
|
38
|
+
readonly VersionId?: string | undefined;
|
|
22
39
|
readonly $metadata: SimResponseMetadata;
|
|
23
40
|
}
|
|
@@ -21,13 +21,19 @@ export declare class DeleteObjectCommandHandler implements CommandHandler<SimDel
|
|
|
21
21
|
private readonly authorizer;
|
|
22
22
|
private readonly background;
|
|
23
23
|
private readonly notifications;
|
|
24
|
+
private readonly versionRemoval;
|
|
24
25
|
constructor(properties: DeleteObjectCommandHandlerProperties);
|
|
25
26
|
/**
|
|
26
27
|
* Authorize and remove an Object from a Bucket.
|
|
27
28
|
*
|
|
28
|
-
* A missing Bucket is reported, but a missing key is not
|
|
29
|
+
* A missing Bucket is reported, but a missing key is not. Real S3 answers a
|
|
29
30
|
* deletion the same way whether or not the Object was there, so code that
|
|
30
31
|
* deletes something twice sees the same success both times.
|
|
32
|
+
*
|
|
33
|
+
* A `VersionId` asks for that one version and removes it for good. A request
|
|
34
|
+
* without one asks for the current version, which a versioned Bucket answers
|
|
35
|
+
* by writing a delete marker over it. Object Lock holds a named version and
|
|
36
|
+
* never the marker, since a marker hides an Object without losing it.
|
|
31
37
|
*/
|
|
32
38
|
handle(command: SimDeleteObjectCommand, options?: SimS3RequestOptions): Promise<SimDeleteObjectCommandOutput>;
|
|
33
39
|
}
|
|
@@ -3,6 +3,8 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
|
3
3
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
4
|
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
5
5
|
import { DeleteObjectAuthorizer } from "./delete-object-authorizer.js";
|
|
6
|
+
import { DeleteObjectVersionRemoval } from "./delete-object-version-removal.js";
|
|
7
|
+
import { simS3NotifyDeleted } from "./sim-s3-notify-deleted.js";
|
|
6
8
|
/**
|
|
7
9
|
* Simulated S3 DeleteObjectCommand handler.
|
|
8
10
|
*
|
|
@@ -13,40 +15,50 @@ export class DeleteObjectCommandHandler {
|
|
|
13
15
|
authorizer;
|
|
14
16
|
background;
|
|
15
17
|
notifications;
|
|
18
|
+
versionRemoval;
|
|
16
19
|
constructor(properties) {
|
|
17
20
|
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
18
21
|
this.buckets = buckets;
|
|
19
22
|
this.authorizer = new DeleteObjectAuthorizer({ iam });
|
|
20
23
|
this.background = background;
|
|
21
24
|
this.notifications = properties.notifications;
|
|
25
|
+
this.versionRemoval = new DeleteObjectVersionRemoval({
|
|
26
|
+
notifications: properties.notifications,
|
|
27
|
+
iam,
|
|
28
|
+
});
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* Authorize and remove an Object from a Bucket.
|
|
25
32
|
*
|
|
26
|
-
* A missing Bucket is reported, but a missing key is not
|
|
33
|
+
* A missing Bucket is reported, but a missing key is not. Real S3 answers a
|
|
27
34
|
* deletion the same way whether or not the Object was there, so code that
|
|
28
35
|
* deletes something twice sees the same success both times.
|
|
36
|
+
*
|
|
37
|
+
* A `VersionId` asks for that one version and removes it for good. A request
|
|
38
|
+
* without one asks for the current version, which a versioned Bucket answers
|
|
39
|
+
* by writing a delete marker over it. Object Lock holds a named version and
|
|
40
|
+
* never the marker, since a marker hides an Object without losing it.
|
|
29
41
|
*/
|
|
30
42
|
async handle(command, options) {
|
|
31
|
-
|
|
32
|
-
assertDefined(
|
|
33
|
-
|
|
34
|
-
const bucket = requireSimS3Bucket(this.buckets,
|
|
43
|
+
const { Bucket, Key, VersionId, BypassGovernanceRetention } = command.input;
|
|
44
|
+
assertDefined(Bucket, "DeleteObjectCommand.input.Bucket");
|
|
45
|
+
assertDefined(Key, "DeleteObjectCommand.input.Key");
|
|
46
|
+
const bucket = requireSimS3Bucket(this.buckets, Bucket);
|
|
35
47
|
await this.background.sequence();
|
|
36
|
-
const caller = this.authorizer.authorize(bucket,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// ObjectRemoved for an Object that was deleted, not for a request to
|
|
40
|
-
// delete one.
|
|
41
|
-
if (removed) {
|
|
42
|
-
this.notifications.objectRemoved({
|
|
48
|
+
const caller = this.authorizer.authorize(bucket, Key, options);
|
|
49
|
+
if (VersionId !== undefined) {
|
|
50
|
+
return await this.versionRemoval.remove({
|
|
43
51
|
bucket,
|
|
44
|
-
key:
|
|
52
|
+
key: Key,
|
|
53
|
+
versionId: VersionId,
|
|
45
54
|
caller,
|
|
55
|
+
bypassGovernance: BypassGovernanceRetention,
|
|
56
|
+
options,
|
|
46
57
|
});
|
|
47
58
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
59
|
+
const deletion = await bucket.deleteObject(Key);
|
|
60
|
+
const notifications = this.notifications;
|
|
61
|
+
simS3NotifyDeleted({ notifications, bucket, key: Key, caller, deletion });
|
|
62
|
+
return { ...deletion.reported, $metadata: {} };
|
|
51
63
|
}
|
|
52
64
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
3
|
+
import type { SimS3ObjectDeletion } from "../../bucket/sim-s3-object-deletion.js";
|
|
4
|
+
import type { SimS3ObjectNotifier } from "../../notification/sim-s3-object-notifier.js";
|
|
5
|
+
interface SimS3NotifyDeletedProperties {
|
|
6
|
+
readonly notifications: SimS3ObjectNotifier;
|
|
7
|
+
readonly bucket: SimS3Bucket;
|
|
8
|
+
readonly key: string;
|
|
9
|
+
readonly caller: SimAwsResolvedCaller;
|
|
10
|
+
readonly deletion: SimS3ObjectDeletion;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Raise the event a delete earned, if it earned one.
|
|
14
|
+
*
|
|
15
|
+
* Three outcomes and three different events, which is why every delete path
|
|
16
|
+
* comes through here rather than deciding for itself. A versioned Bucket wrote
|
|
17
|
+
* a marker, so the event is `s3:ObjectRemoved:DeleteMarkerCreated` and carries
|
|
18
|
+
* the marker's version id. A Bucket without versioning lost the Object, so it
|
|
19
|
+
* is `s3:ObjectRemoved:Delete`. A delete that removed nothing raises neither,
|
|
20
|
+
* because real S3 raises ObjectRemoved for an Object that was deleted rather
|
|
21
|
+
* than for a request to delete one.
|
|
22
|
+
*/
|
|
23
|
+
export declare function simS3NotifyDeleted(properties: SimS3NotifyDeletedProperties): void;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raise the event a delete earned, if it earned one.
|
|
3
|
+
*
|
|
4
|
+
* Three outcomes and three different events, which is why every delete path
|
|
5
|
+
* comes through here rather than deciding for itself. A versioned Bucket wrote
|
|
6
|
+
* a marker, so the event is `s3:ObjectRemoved:DeleteMarkerCreated` and carries
|
|
7
|
+
* the marker's version id. A Bucket without versioning lost the Object, so it
|
|
8
|
+
* is `s3:ObjectRemoved:Delete`. A delete that removed nothing raises neither,
|
|
9
|
+
* because real S3 raises ObjectRemoved for an Object that was deleted rather
|
|
10
|
+
* than for a request to delete one.
|
|
11
|
+
*/
|
|
12
|
+
export function simS3NotifyDeleted(properties) {
|
|
13
|
+
const { notifications, bucket, key, caller, deletion } = properties;
|
|
14
|
+
if (deletion.deleteMarker !== undefined) {
|
|
15
|
+
notifications.objectRemoved({
|
|
16
|
+
bucket,
|
|
17
|
+
key,
|
|
18
|
+
caller,
|
|
19
|
+
eventName: "s3:ObjectRemoved:DeleteMarkerCreated",
|
|
20
|
+
versionId: deletion.deleteMarker.versionId,
|
|
21
|
+
});
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (deletion.removedObject) {
|
|
25
|
+
notifications.objectRemoved({
|
|
26
|
+
bucket,
|
|
27
|
+
key,
|
|
28
|
+
caller,
|
|
29
|
+
eventName: "s3:ObjectRemoved:Delete",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
import type { SimS3ObjectVersion } from "../../bucket/versioning/sim-s3-object-version.js";
|
|
1
2
|
/**
|
|
2
3
|
* What one key of a DeleteObjects request came to.
|
|
3
4
|
*
|
|
4
5
|
* A batch deletion carries on past a key it could not remove, so the failure
|
|
5
|
-
* travels with the key it belongs to rather than being raised.
|
|
6
|
+
* travels with the key it belongs to rather than being raised. So does the
|
|
7
|
+
* delete marker, which a versioned Bucket reports per key alongside the id it
|
|
8
|
+
* was written under.
|
|
6
9
|
*/
|
|
7
10
|
export declare class DeleteObjectAttempt {
|
|
8
11
|
readonly key: string;
|
|
9
12
|
readonly error: unknown;
|
|
10
|
-
|
|
13
|
+
readonly deleteMarker: SimS3ObjectVersion | undefined;
|
|
14
|
+
constructor(key: string, error?: unknown, deleteMarker?: SimS3ObjectVersion);
|
|
11
15
|
}
|