@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal structural sim S3 ListObjectVersions command.
|
|
4
|
+
*/
|
|
5
|
+
export interface SimListObjectVersionsCommand {
|
|
6
|
+
readonly input: SimListObjectVersionsCommandInput;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Minimal structural sim S3 ListObjectVersions input.
|
|
10
|
+
*/
|
|
11
|
+
export interface SimListObjectVersionsCommandInput {
|
|
12
|
+
readonly Bucket?: string | undefined;
|
|
13
|
+
readonly Prefix?: string | undefined;
|
|
14
|
+
readonly MaxKeys?: number | undefined;
|
|
15
|
+
/** The key the previous page ended on, resumed after rather than at. */
|
|
16
|
+
readonly KeyMarker?: string | undefined;
|
|
17
|
+
/** The version the previous page ended on, within `KeyMarker`. */
|
|
18
|
+
readonly VersionIdMarker?: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Minimal structural sim S3 ListObjectVersions output.
|
|
22
|
+
*
|
|
23
|
+
* Objects and delete markers come back in two lists rather than one, as real
|
|
24
|
+
* S3 sends them, because a marker holds no size or ETag to describe.
|
|
25
|
+
*/
|
|
26
|
+
export interface SimListObjectVersionsCommandOutput {
|
|
27
|
+
readonly Versions?: readonly SimS3ObjectVersionSummary[];
|
|
28
|
+
readonly DeleteMarkers?: readonly SimS3DeleteMarkerSummary[];
|
|
29
|
+
readonly Name?: string;
|
|
30
|
+
readonly Prefix?: string | undefined;
|
|
31
|
+
readonly MaxKeys?: number;
|
|
32
|
+
readonly IsTruncated?: boolean;
|
|
33
|
+
readonly KeyMarker?: string | undefined;
|
|
34
|
+
readonly VersionIdMarker?: string | undefined;
|
|
35
|
+
readonly NextKeyMarker?: string | undefined;
|
|
36
|
+
readonly NextVersionIdMarker?: string | undefined;
|
|
37
|
+
readonly $metadata: SimResponseMetadata;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* One version of an Object, as a listing describes it.
|
|
41
|
+
*/
|
|
42
|
+
export interface SimS3ObjectVersionSummary {
|
|
43
|
+
readonly Key: string;
|
|
44
|
+
readonly VersionId: string;
|
|
45
|
+
readonly IsLatest: boolean;
|
|
46
|
+
readonly LastModified: Date;
|
|
47
|
+
readonly ETag: string;
|
|
48
|
+
readonly Size: number;
|
|
49
|
+
readonly StorageClass: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* One delete marker, as a listing describes it.
|
|
53
|
+
*/
|
|
54
|
+
export interface SimS3DeleteMarkerSummary {
|
|
55
|
+
readonly Key: string;
|
|
56
|
+
readonly VersionId: string;
|
|
57
|
+
readonly IsLatest: boolean;
|
|
58
|
+
readonly LastModified: Date;
|
|
59
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
3
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
5
|
+
import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
|
|
6
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
7
|
+
import type { SimListObjectVersionsCommand, SimListObjectVersionsCommandOutput } from "./list-object-versions.command.js";
|
|
8
|
+
interface ListObjectVersionsHandlerProperties {
|
|
9
|
+
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
10
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
11
|
+
readonly background?: BackgroundScheduler;
|
|
12
|
+
readonly listing?: SimS3ObjectListingLimits;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Simulated S3 ListObjectVersionsCommand handler.
|
|
16
|
+
*
|
|
17
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListObjectVersionsCommand/
|
|
18
|
+
*/
|
|
19
|
+
export declare class ListObjectVersionsCommandHandler implements CommandHandler<SimListObjectVersionsCommand, SimListObjectVersionsCommandOutput> {
|
|
20
|
+
private readonly buckets;
|
|
21
|
+
private readonly authorizer;
|
|
22
|
+
private readonly background;
|
|
23
|
+
private readonly limits;
|
|
24
|
+
constructor(properties: ListObjectVersionsHandlerProperties);
|
|
25
|
+
/**
|
|
26
|
+
* Authorize and report the versions a Bucket holds.
|
|
27
|
+
*
|
|
28
|
+
* Objects and delete markers come back in two lists, as real S3 sends them.
|
|
29
|
+
* Both are paged together, so a page carrying the maximum number of entries
|
|
30
|
+
* can hold some of each.
|
|
31
|
+
*/
|
|
32
|
+
handle(command: SimListObjectVersionsCommand, options?: SimS3RequestOptions): Promise<SimListObjectVersionsCommandOutput>;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { simS3VersionPage } from "../../bucket/versioning/sim-s3-version-page.js";
|
|
5
|
+
import { simS3EffectiveMaxKeys } from "../../object/s3-object-listing.js";
|
|
6
|
+
import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
|
|
7
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
8
|
+
import { SimS3VersioningAuthorizer } from "../versioning/sim-s3-versioning-authorizer.js";
|
|
9
|
+
import { ListObjectVersionsListing } from "./list-object-versions-listing.js";
|
|
10
|
+
/**
|
|
11
|
+
* Simulated S3 ListObjectVersionsCommand handler.
|
|
12
|
+
*
|
|
13
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListObjectVersionsCommand/
|
|
14
|
+
*/
|
|
15
|
+
export class ListObjectVersionsCommandHandler {
|
|
16
|
+
buckets;
|
|
17
|
+
authorizer;
|
|
18
|
+
background;
|
|
19
|
+
limits;
|
|
20
|
+
constructor(properties) {
|
|
21
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), listing = new SimS3ObjectListingLimits(), } = properties;
|
|
22
|
+
this.buckets = buckets;
|
|
23
|
+
this.authorizer = new SimS3VersioningAuthorizer({ iam });
|
|
24
|
+
this.background = background;
|
|
25
|
+
this.limits = listing;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Authorize and report the versions a Bucket holds.
|
|
29
|
+
*
|
|
30
|
+
* Objects and delete markers come back in two lists, as real S3 sends them.
|
|
31
|
+
* Both are paged together, so a page carrying the maximum number of entries
|
|
32
|
+
* can hold some of each.
|
|
33
|
+
*/
|
|
34
|
+
async handle(command, options) {
|
|
35
|
+
assertDefined(command.input.Bucket, "ListObjectVersionsCommand.input.Bucket");
|
|
36
|
+
const bucketName = command.input.Bucket;
|
|
37
|
+
const bucket = requireSimS3Bucket(this.buckets, bucketName);
|
|
38
|
+
await this.background.sequence();
|
|
39
|
+
this.authorizer.authorizeList(bucket, options);
|
|
40
|
+
const listing = new ListObjectVersionsListing(bucket);
|
|
41
|
+
const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.limits.maxKeysPerPage);
|
|
42
|
+
const page = simS3VersionPage({
|
|
43
|
+
versions: await listing.versions(command.input.Prefix),
|
|
44
|
+
maxKeys,
|
|
45
|
+
keyMarker: command.input.KeyMarker,
|
|
46
|
+
versionIdMarker: command.input.VersionIdMarker,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
Versions: listing.objectSummaries(page.versions),
|
|
50
|
+
DeleteMarkers: listing.deleteMarkerSummaries(page.versions),
|
|
51
|
+
Name: bucketName,
|
|
52
|
+
Prefix: command.input.Prefix,
|
|
53
|
+
MaxKeys: maxKeys,
|
|
54
|
+
IsTruncated: page.isTruncated,
|
|
55
|
+
KeyMarker: command.input.KeyMarker,
|
|
56
|
+
VersionIdMarker: command.input.VersionIdMarker,
|
|
57
|
+
NextKeyMarker: page.nextKeyMarker,
|
|
58
|
+
NextVersionIdMarker: page.nextVersionIdMarker,
|
|
59
|
+
$metadata: {},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ObjectLock } from "../../bucket/lock/sim-s3-object-lock.js";
|
|
3
|
+
import type { SimS3Object } from "../../object/s3-object.js";
|
|
4
|
+
/**
|
|
5
|
+
* An Object a read resolved, and the version it came from.
|
|
6
|
+
*
|
|
7
|
+
* The version id travels with the Object because every read reports it, and a
|
|
8
|
+
* Bucket without versioning has none to report.
|
|
9
|
+
*/
|
|
10
|
+
export interface SimS3ReadObjectVersion {
|
|
11
|
+
readonly object: SimS3Object;
|
|
12
|
+
readonly versionId: string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* What Object Lock holds against the version read.
|
|
15
|
+
*
|
|
16
|
+
* A Bucket keeping no versions has none, and a Bucket that keeps them but
|
|
17
|
+
* has never been locked has an empty one. Both report nothing.
|
|
18
|
+
*/
|
|
19
|
+
readonly lock: SimS3ObjectLock | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Read one version of a key, or the current one where no version was named.
|
|
23
|
+
*
|
|
24
|
+
* A read without a `VersionId` goes through the Bucket, which is what applies
|
|
25
|
+
* lifecycle rules and what hides an Object behind a delete marker. A read that
|
|
26
|
+
* names one goes to the version history instead, so an Object under a marker
|
|
27
|
+
* is still readable by its own id.
|
|
28
|
+
*
|
|
29
|
+
* Answering `undefined` means the key holds nothing to read, which each caller
|
|
30
|
+
* turns into the error its own command answers with. A named version that was
|
|
31
|
+
* never issued is a different thing and is raised here, because NoSuchVersion
|
|
32
|
+
* is what real S3 answers rather than the missing-key error.
|
|
33
|
+
*/
|
|
34
|
+
export declare function simS3ReadObjectVersion(bucket: SimS3Bucket, key: string, versionId?: string): Promise<SimS3ReadObjectVersion | undefined>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { simS3NullVersionId } from "../../bucket/versioning/sim-s3-bucket-versioning.js";
|
|
2
|
+
import { SimS3MethodNotAllowed, SimS3NoSuchVersion, } from "../../error/sim-s3.error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read one version of a key, or the current one where no version was named.
|
|
5
|
+
*
|
|
6
|
+
* A read without a `VersionId` goes through the Bucket, which is what applies
|
|
7
|
+
* lifecycle rules and what hides an Object behind a delete marker. A read that
|
|
8
|
+
* names one goes to the version history instead, so an Object under a marker
|
|
9
|
+
* is still readable by its own id.
|
|
10
|
+
*
|
|
11
|
+
* Answering `undefined` means the key holds nothing to read, which each caller
|
|
12
|
+
* turns into the error its own command answers with. A named version that was
|
|
13
|
+
* never issued is a different thing and is raised here, because NoSuchVersion
|
|
14
|
+
* is what real S3 answers rather than the missing-key error.
|
|
15
|
+
*/
|
|
16
|
+
export async function simS3ReadObjectVersion(bucket, key, versionId) {
|
|
17
|
+
const versions = bucket.getVersions();
|
|
18
|
+
if (versionId === undefined) {
|
|
19
|
+
const object = await bucket.getObject(key);
|
|
20
|
+
if (object === undefined) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const current = versions.current(key);
|
|
24
|
+
return { object, versionId: current?.versionId, lock: current?.lock };
|
|
25
|
+
}
|
|
26
|
+
if (!versions.keepsVersions) {
|
|
27
|
+
return await simS3ReadUnversioned(bucket, key, versionId);
|
|
28
|
+
}
|
|
29
|
+
const version = versions.find(key, versionId);
|
|
30
|
+
if (version === undefined) {
|
|
31
|
+
throw new SimS3NoSuchVersion(`No version ${versionId} of S3 Object ${key}`);
|
|
32
|
+
}
|
|
33
|
+
if (version.isDeleteMarker) {
|
|
34
|
+
throw new SimS3MethodNotAllowed(`Version ${versionId} of S3 Object ${key} is a delete marker`);
|
|
35
|
+
}
|
|
36
|
+
return { object: version.object, versionId, lock: version.lock };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read a named version from a Bucket that keeps none.
|
|
40
|
+
*
|
|
41
|
+
* Real S3 gives every Object in such a Bucket the null version id, so that one
|
|
42
|
+
* reads the Object and any other names a version the Bucket never issued.
|
|
43
|
+
*/
|
|
44
|
+
async function simS3ReadUnversioned(bucket, key, versionId) {
|
|
45
|
+
if (versionId !== simS3NullVersionId) {
|
|
46
|
+
throw new SimS3NoSuchVersion(`No version ${versionId} of S3 Object ${key}`);
|
|
47
|
+
}
|
|
48
|
+
const object = await bucket.getObject(key);
|
|
49
|
+
return object === undefined
|
|
50
|
+
? undefined
|
|
51
|
+
: { object, versionId: undefined, lock: undefined };
|
|
52
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ObjectVersion } from "../../bucket/versioning/sim-s3-object-version.js";
|
|
3
|
+
/**
|
|
4
|
+
* The version a retention or a legal hold is being put on.
|
|
5
|
+
*
|
|
6
|
+
* A request naming no version acts on the current one, which is what real S3
|
|
7
|
+
* does. A Bucket without Object Lock has no version to put either on, and
|
|
8
|
+
* refusing there is what stops a test believing a retention it set is holding
|
|
9
|
+
* anything.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simS3LockedVersion(bucket: SimS3Bucket, key: string, versionId: string | undefined): SimS3ObjectVersion;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SimS3InvalidRequest, SimS3MethodNotAllowed, SimS3NoSuchKey, SimS3NoSuchVersion, } from "../../error/sim-s3.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The version a retention or a legal hold is being put on.
|
|
4
|
+
*
|
|
5
|
+
* A request naming no version acts on the current one, which is what real S3
|
|
6
|
+
* does. A Bucket without Object Lock has no version to put either on, and
|
|
7
|
+
* refusing there is what stops a test believing a retention it set is holding
|
|
8
|
+
* anything.
|
|
9
|
+
*/
|
|
10
|
+
export function simS3LockedVersion(bucket, key, versionId) {
|
|
11
|
+
if (!bucket.getObjectLock().isEnabled) {
|
|
12
|
+
throw new SimS3InvalidRequest(`Bucket ${bucket.bucketName} does not have Object Lock enabled`);
|
|
13
|
+
}
|
|
14
|
+
const versions = bucket.getVersions();
|
|
15
|
+
const version = versionId === undefined
|
|
16
|
+
? versions.current(key)
|
|
17
|
+
: versions.find(key, versionId);
|
|
18
|
+
if (version === undefined) {
|
|
19
|
+
throw versionId === undefined
|
|
20
|
+
? new SimS3NoSuchKey(`No S3 Object named ${key}`)
|
|
21
|
+
: new SimS3NoSuchVersion(`No version ${versionId} of S3 Object ${key}`);
|
|
22
|
+
}
|
|
23
|
+
if (version.isDeleteMarker) {
|
|
24
|
+
throw new SimS3MethodNotAllowed(`Version ${version.versionId} of S3 Object ${key} is a delete marker`);
|
|
25
|
+
}
|
|
26
|
+
return version;
|
|
27
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
/** The IAM action a caller needs to get past a governance retention period. */
|
|
5
|
+
export declare const simS3BypassGovernanceAction = "s3:BypassGovernanceRetention";
|
|
6
|
+
interface SimS3ObjectLockAuthorizerProperties {
|
|
7
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Applies IAM authorization to the S3 Object Lock commands.
|
|
11
|
+
*
|
|
12
|
+
* The two Bucket configuration actions are authorized against the Bucket ARN
|
|
13
|
+
* and the two version actions against the Object ARN, which is how real S3
|
|
14
|
+
* splits them: a policy can let a caller retain the Objects under one prefix
|
|
15
|
+
* without letting it configure the Bucket they are in.
|
|
16
|
+
*
|
|
17
|
+
* `s3:BypassGovernanceRetention` is authorized separately from the request it
|
|
18
|
+
* accompanies. A caller deleting a retained version needs both that and
|
|
19
|
+
* `s3:DeleteObject`, and real S3 checks them as two decisions.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimS3ObjectLockAuthorizer {
|
|
22
|
+
private readonly iam;
|
|
23
|
+
constructor(properties: SimS3ObjectLockAuthorizerProperties);
|
|
24
|
+
/** Ensure the caller may read how the Bucket is locked. */
|
|
25
|
+
authorizeReadConfiguration(bucket: SimS3Bucket, options?: SimS3RequestOptions): void;
|
|
26
|
+
/** Ensure the caller may change how the Bucket is locked. */
|
|
27
|
+
authorizeWriteConfiguration(bucket: SimS3Bucket, options?: SimS3RequestOptions): void;
|
|
28
|
+
/** Ensure the caller may put a retention period on a version. */
|
|
29
|
+
authorizeRetention(bucket: SimS3Bucket, key: string, options?: SimS3RequestOptions): void;
|
|
30
|
+
/** Ensure the caller may put a legal hold on a version. */
|
|
31
|
+
authorizeLegalHold(bucket: SimS3Bucket, key: string, options?: SimS3RequestOptions): void;
|
|
32
|
+
/**
|
|
33
|
+
* Ensure the caller may get past a governance retention period, where the
|
|
34
|
+
* request asked to.
|
|
35
|
+
*
|
|
36
|
+
* A request that asked for nothing is answered without a decision, so a
|
|
37
|
+
* caller who never needed the permission is never refused for lacking it.
|
|
38
|
+
*/
|
|
39
|
+
authorizeBypass(bucket: SimS3Bucket, key: string, asked: boolean | undefined, options?: SimS3RequestOptions): boolean;
|
|
40
|
+
private authorize;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { simS3BucketArn } from "../../bucket/sim-s3-bucket-arn.js";
|
|
2
|
+
import { simS3AuthorizeAction } from "../authorize/sim-s3-authorize-action.js";
|
|
3
|
+
/** The IAM action a caller needs to get past a governance retention period. */
|
|
4
|
+
export const simS3BypassGovernanceAction = "s3:BypassGovernanceRetention";
|
|
5
|
+
const readConfiguration = "s3:GetBucketObjectLockConfiguration";
|
|
6
|
+
const writeConfiguration = "s3:PutBucketObjectLockConfiguration";
|
|
7
|
+
const putRetention = "s3:PutObjectRetention";
|
|
8
|
+
const putLegalHold = "s3:PutObjectLegalHold";
|
|
9
|
+
/**
|
|
10
|
+
* Applies IAM authorization to the S3 Object Lock commands.
|
|
11
|
+
*
|
|
12
|
+
* The two Bucket configuration actions are authorized against the Bucket ARN
|
|
13
|
+
* and the two version actions against the Object ARN, which is how real S3
|
|
14
|
+
* splits them: a policy can let a caller retain the Objects under one prefix
|
|
15
|
+
* without letting it configure the Bucket they are in.
|
|
16
|
+
*
|
|
17
|
+
* `s3:BypassGovernanceRetention` is authorized separately from the request it
|
|
18
|
+
* accompanies. A caller deleting a retained version needs both that and
|
|
19
|
+
* `s3:DeleteObject`, and real S3 checks them as two decisions.
|
|
20
|
+
*/
|
|
21
|
+
export class SimS3ObjectLockAuthorizer {
|
|
22
|
+
iam;
|
|
23
|
+
constructor(properties) {
|
|
24
|
+
this.iam = properties.iam;
|
|
25
|
+
}
|
|
26
|
+
/** Ensure the caller may read how the Bucket is locked. */
|
|
27
|
+
authorizeReadConfiguration(bucket, options) {
|
|
28
|
+
this.authorize(readConfiguration, bucketArn(bucket), bucket, options);
|
|
29
|
+
}
|
|
30
|
+
/** Ensure the caller may change how the Bucket is locked. */
|
|
31
|
+
authorizeWriteConfiguration(bucket, options) {
|
|
32
|
+
this.authorize(writeConfiguration, bucketArn(bucket), bucket, options);
|
|
33
|
+
}
|
|
34
|
+
/** Ensure the caller may put a retention period on a version. */
|
|
35
|
+
authorizeRetention(bucket, key, options) {
|
|
36
|
+
this.authorize(putRetention, objectArn(bucket, key), bucket, options);
|
|
37
|
+
}
|
|
38
|
+
/** Ensure the caller may put a legal hold on a version. */
|
|
39
|
+
authorizeLegalHold(bucket, key, options) {
|
|
40
|
+
this.authorize(putLegalHold, objectArn(bucket, key), bucket, options);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ensure the caller may get past a governance retention period, where the
|
|
44
|
+
* request asked to.
|
|
45
|
+
*
|
|
46
|
+
* A request that asked for nothing is answered without a decision, so a
|
|
47
|
+
* caller who never needed the permission is never refused for lacking it.
|
|
48
|
+
*/
|
|
49
|
+
authorizeBypass(bucket, key, asked, options) {
|
|
50
|
+
if (asked !== true) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const action = simS3BypassGovernanceAction;
|
|
54
|
+
this.authorize(action, objectArn(bucket, key), bucket, options);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
authorize(action, resource, bucket, options) {
|
|
58
|
+
simS3AuthorizeAction({ iam: this.iam, action, resource, bucket, options });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function bucketArn(bucket) {
|
|
62
|
+
return simS3BucketArn(bucket.bucketName);
|
|
63
|
+
}
|
|
64
|
+
function objectArn(bucket, key) {
|
|
65
|
+
return `${bucketArn(bucket)}/${key}`;
|
|
66
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SimS3BucketCommandState } from "../sim-s3-bucket-command-state.js";
|
|
2
|
+
import type * as simS3Commands from "../sim-s3-command.types.js";
|
|
3
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
4
|
+
/**
|
|
5
|
+
* The Object Lock commands of one simulated S3 scope.
|
|
6
|
+
*
|
|
7
|
+
* Two of them configure a Bucket and two of them hold one version of one
|
|
8
|
+
* Object, and they are kept together because a version can only be held on a
|
|
9
|
+
* Bucket the first two turned Object Lock on for.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimS3ObjectLockCommands {
|
|
12
|
+
private readonly state;
|
|
13
|
+
constructor(state: SimS3BucketCommandState);
|
|
14
|
+
/**
|
|
15
|
+
* Turn Object Lock on for a Bucket, with the default retention it carries.
|
|
16
|
+
*/
|
|
17
|
+
putConfiguration(command: simS3Commands.SimPutObjectLockConfigurationCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectLockConfigurationCommandOutput>;
|
|
18
|
+
/**
|
|
19
|
+
* Read how a Bucket is locked.
|
|
20
|
+
*/
|
|
21
|
+
getConfiguration(command: simS3Commands.SimGetObjectLockConfigurationCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetObjectLockConfigurationCommandOutput>;
|
|
22
|
+
/**
|
|
23
|
+
* Put a retention period on one version.
|
|
24
|
+
*/
|
|
25
|
+
putRetention(command: simS3Commands.SimPutObjectRetentionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectRetentionCommandOutput>;
|
|
26
|
+
/**
|
|
27
|
+
* Turn the legal hold on one version on or off.
|
|
28
|
+
*/
|
|
29
|
+
putLegalHold(command: simS3Commands.SimPutObjectLegalHoldCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectLegalHoldCommandOutput>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GetObjectLockConfigurationCommandHandler } from "../get-object-lock-configuration/get-object-lock-configuration.handler.js";
|
|
2
|
+
import { PutObjectLegalHoldCommandHandler } from "../put-object-legal-hold/put-object-legal-hold.handler.js";
|
|
3
|
+
import { PutObjectLockConfigurationCommandHandler } from "../put-object-lock-configuration/put-object-lock-configuration.handler.js";
|
|
4
|
+
import { PutObjectRetentionCommandHandler } from "../put-object-retention/put-object-retention.handler.js";
|
|
5
|
+
/**
|
|
6
|
+
* The Object Lock commands of one simulated S3 scope.
|
|
7
|
+
*
|
|
8
|
+
* Two of them configure a Bucket and two of them hold one version of one
|
|
9
|
+
* Object, and they are kept together because a version can only be held on a
|
|
10
|
+
* Bucket the first two turned Object Lock on for.
|
|
11
|
+
*/
|
|
12
|
+
export class SimS3ObjectLockCommands {
|
|
13
|
+
state;
|
|
14
|
+
constructor(state) {
|
|
15
|
+
this.state = state;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Turn Object Lock on for a Bucket, with the default retention it carries.
|
|
19
|
+
*/
|
|
20
|
+
async putConfiguration(command, options) {
|
|
21
|
+
return await new PutObjectLockConfigurationCommandHandler(this.state).handle(command, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read how a Bucket is locked.
|
|
25
|
+
*/
|
|
26
|
+
async getConfiguration(command, options) {
|
|
27
|
+
return await new GetObjectLockConfigurationCommandHandler(this.state).handle(command, options);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Put a retention period on one version.
|
|
31
|
+
*/
|
|
32
|
+
async putRetention(command, options) {
|
|
33
|
+
return await new PutObjectRetentionCommandHandler(this.state).handle(command, options);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Turn the legal hold on one version on or off.
|
|
37
|
+
*/
|
|
38
|
+
async putLegalHold(command, options) {
|
|
39
|
+
return await new PutObjectLegalHoldCommandHandler(this.state).handle(command, options);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3VersioningConfiguration } from "../../bucket/versioning/sim-s3-bucket-versioning.js";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal structural sim S3 PutBucketVersioning command.
|
|
5
|
+
*/
|
|
6
|
+
export interface SimPutBucketVersioningCommand {
|
|
7
|
+
readonly input: SimPutBucketVersioningCommandInput;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Minimal structural sim S3 PutBucketVersioning input.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimPutBucketVersioningCommandInput {
|
|
13
|
+
readonly Bucket?: string | undefined;
|
|
14
|
+
readonly VersioningConfiguration?: SimS3VersioningConfiguration | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Minimal structural sim S3 PutBucketVersioning output.
|
|
18
|
+
*/
|
|
19
|
+
export interface SimPutBucketVersioningCommandOutput {
|
|
20
|
+
readonly $metadata: SimResponseMetadata;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
3
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
5
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
6
|
+
import type { SimPutBucketVersioningCommand, SimPutBucketVersioningCommandOutput } from "./put-bucket-versioning.command.js";
|
|
7
|
+
interface PutBucketVersioningHandlerProperties {
|
|
8
|
+
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
9
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
10
|
+
readonly background?: BackgroundScheduler;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Simulated S3 PutBucketVersioningCommand handler.
|
|
14
|
+
*
|
|
15
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutBucketVersioningCommand/
|
|
16
|
+
*/
|
|
17
|
+
export declare class PutBucketVersioningCommandHandler implements CommandHandler<SimPutBucketVersioningCommand, SimPutBucketVersioningCommandOutput> {
|
|
18
|
+
private readonly buckets;
|
|
19
|
+
private readonly authorizer;
|
|
20
|
+
private readonly background;
|
|
21
|
+
constructor(properties: PutBucketVersioningHandlerProperties);
|
|
22
|
+
/**
|
|
23
|
+
* Authorize and apply a Bucket's versioning configuration.
|
|
24
|
+
*
|
|
25
|
+
* Enabling versioning over a Bucket that already holds Objects gives each of
|
|
26
|
+
* them the null version id, which is what real S3 does with the Objects
|
|
27
|
+
* written before the configuration arrived.
|
|
28
|
+
*/
|
|
29
|
+
handle(command: SimPutBucketVersioningCommand, options?: SimS3RequestOptions): Promise<SimPutBucketVersioningCommandOutput>;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { SimS3BucketVersioning } from "../../bucket/versioning/sim-s3-bucket-versioning.js";
|
|
5
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
6
|
+
import { SimS3VersioningAuthorizer } from "../versioning/sim-s3-versioning-authorizer.js";
|
|
7
|
+
import { validateSimS3VersioningConfiguration } from "../versioning/sim-s3-versioning-configuration-validation.js";
|
|
8
|
+
/**
|
|
9
|
+
* Simulated S3 PutBucketVersioningCommand handler.
|
|
10
|
+
*
|
|
11
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/PutBucketVersioningCommand/
|
|
12
|
+
*/
|
|
13
|
+
export class PutBucketVersioningCommandHandler {
|
|
14
|
+
buckets;
|
|
15
|
+
authorizer;
|
|
16
|
+
background;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
19
|
+
this.buckets = buckets;
|
|
20
|
+
this.authorizer = new SimS3VersioningAuthorizer({ iam });
|
|
21
|
+
this.background = background;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Authorize and apply a Bucket's versioning configuration.
|
|
25
|
+
*
|
|
26
|
+
* Enabling versioning over a Bucket that already holds Objects gives each of
|
|
27
|
+
* them the null version id, which is what real S3 does with the Objects
|
|
28
|
+
* written before the configuration arrived.
|
|
29
|
+
*/
|
|
30
|
+
async handle(command, options) {
|
|
31
|
+
assertDefined(command.input.Bucket, "PutBucketVersioningCommand.input.Bucket");
|
|
32
|
+
assertDefined(command.input.VersioningConfiguration, "PutBucketVersioningCommand.input.VersioningConfiguration");
|
|
33
|
+
const bucketName = command.input.Bucket;
|
|
34
|
+
const bucket = requireSimS3Bucket(this.buckets, bucketName);
|
|
35
|
+
await this.background.sequence();
|
|
36
|
+
this.authorizer.authorizeWrite(bucket, options);
|
|
37
|
+
const configuration = command.input.VersioningConfiguration;
|
|
38
|
+
validateSimS3VersioningConfiguration(configuration, bucketName);
|
|
39
|
+
await bucket.configureVersioning(SimS3BucketVersioning.fromConfiguration(configuration));
|
|
40
|
+
return {
|
|
41
|
+
$metadata: {},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -24,9 +24,12 @@ export interface SimPutObjectCommandInput extends SimS3ObjectWriteMetadata {
|
|
|
24
24
|
*
|
|
25
25
|
* `ETag` is the quoted MD5 of the body S3 has just stored, which is what a
|
|
26
26
|
* caller keeps to recognise the same content later without reading it back.
|
|
27
|
+
* `VersionId` is the version a Bucket keeping versions gave the write, and is
|
|
28
|
+
* absent on a Bucket without versioning.
|
|
27
29
|
*/
|
|
28
30
|
export interface SimPutObjectCommandOutput {
|
|
29
31
|
readonly ETag?: string;
|
|
32
|
+
readonly VersionId?: string | undefined;
|
|
30
33
|
readonly $metadata: SimResponseMetadata;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
2
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
3
|
-
import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
|
|
4
3
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
5
5
|
import { PutObjectAuthorizer } from "./put-object-authorizer.js";
|
|
6
6
|
import { PutObjectBuilder } from "./put-object-builder.js";
|
|
7
7
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
@@ -37,18 +37,16 @@ export class PutObjectCommandHandler {
|
|
|
37
37
|
* sequencing while body and metadata conversion stay isolated from it.
|
|
38
38
|
*/
|
|
39
39
|
async handle(command, options) {
|
|
40
|
-
|
|
41
|
-
assertDefined(
|
|
42
|
-
|
|
43
|
-
const bucket = this.buckets
|
|
44
|
-
if (bucket === undefined) {
|
|
45
|
-
throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
|
|
46
|
-
}
|
|
40
|
+
const { Bucket, Key } = command.input;
|
|
41
|
+
assertDefined(Bucket, "PutObjectCommand.input.Bucket");
|
|
42
|
+
assertDefined(Key, "PutObjectCommand.input.Key");
|
|
43
|
+
const bucket = requireSimS3Bucket(this.buckets, Bucket);
|
|
47
44
|
// Allow for potential non-deterministic sequencing of async events.
|
|
48
45
|
await this.background.sequence();
|
|
49
|
-
const caller = this.authorizer.authorize(bucket,
|
|
46
|
+
const caller = this.authorizer.authorize(bucket, Key, options);
|
|
50
47
|
const object = this.objectBuilder.build(command);
|
|
51
|
-
await bucket.putObject(object);
|
|
48
|
+
const version = await bucket.putObject(object);
|
|
49
|
+
const versionId = version?.versionId;
|
|
52
50
|
// Every write path funnels through here, so this one call covers the SDK,
|
|
53
51
|
// an intercepted SDK client and the REST endpoint alike.
|
|
54
52
|
this.notifications.objectCreated({
|
|
@@ -56,9 +54,11 @@ export class PutObjectCommandHandler {
|
|
|
56
54
|
object,
|
|
57
55
|
caller,
|
|
58
56
|
eventName: "s3:ObjectCreated:Put",
|
|
57
|
+
versionId,
|
|
59
58
|
});
|
|
60
59
|
return {
|
|
61
60
|
ETag: simS3QuotedETag(object.etag),
|
|
61
|
+
...(versionId !== undefined && { VersionId: versionId }),
|
|
62
62
|
$metadata: {},
|
|
63
63
|
};
|
|
64
64
|
}
|