@kensio/yulin 1.21.0 → 1.21.1
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/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/sqs/README.md +47 -10
- package/llms.txt +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
# Simulated AWS Backup
|
|
2
|
+
|
|
3
|
+
Yulin includes simulated AWS Backup vaults, plans, selections, backup jobs and recovery points for
|
|
4
|
+
tests and local development. AWS Backup types are imported from the `@kensio/yulin/backup` subpath.
|
|
5
|
+
|
|
6
|
+
## Creating a vault, plan and selection
|
|
7
|
+
|
|
8
|
+
`simAws.backup()` gives the AWS Backup service for the default account and Region. A plan rule names
|
|
9
|
+
an existing vault. A selection belongs to one plan and records the resource ARNs assigned to it.
|
|
10
|
+
|
|
11
|
+
```typescript sim-backup-create-plan-selection
|
|
12
|
+
/**
|
|
13
|
+
* Creating a daily backup plan for one DynamoDB table.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import {
|
|
17
|
+
CreateBackupPlanCommand,
|
|
18
|
+
CreateBackupSelectionCommand,
|
|
19
|
+
CreateBackupVaultCommand,
|
|
20
|
+
GetBackupPlanCommand,
|
|
21
|
+
GetBackupSelectionCommand,
|
|
22
|
+
} from "@aws-sdk/client-backup";
|
|
23
|
+
import { assertNonNullable } from "@kensio/smartass";
|
|
24
|
+
|
|
25
|
+
import { SimAws } from "@kensio/yulin";
|
|
26
|
+
|
|
27
|
+
const simAws = new SimAws();
|
|
28
|
+
const backup = simAws.backup();
|
|
29
|
+
|
|
30
|
+
await backup.createBackupVault(
|
|
31
|
+
new CreateBackupVaultCommand({
|
|
32
|
+
BackupVaultName: "application-backups",
|
|
33
|
+
}),
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const createdPlan = await backup.createBackupPlan(
|
|
37
|
+
new CreateBackupPlanCommand({
|
|
38
|
+
BackupPlan: {
|
|
39
|
+
BackupPlanName: "application-plan",
|
|
40
|
+
Rules: [
|
|
41
|
+
{
|
|
42
|
+
RuleName: "daily",
|
|
43
|
+
TargetBackupVaultName: "application-backups",
|
|
44
|
+
ScheduleExpression: "cron(0 1 ? * * *)",
|
|
45
|
+
Lifecycle: { DeleteAfterDays: 35 },
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
);
|
|
51
|
+
assertNonNullable(createdPlan.BackupPlanId);
|
|
52
|
+
|
|
53
|
+
const createdSelection = await backup.createBackupSelection(
|
|
54
|
+
new CreateBackupSelectionCommand({
|
|
55
|
+
BackupPlanId: createdPlan.BackupPlanId,
|
|
56
|
+
BackupSelection: {
|
|
57
|
+
SelectionName: "orders",
|
|
58
|
+
IamRoleArn: "arn:aws:iam::888888888888:role/BackupRole",
|
|
59
|
+
Resources: ["arn:aws:dynamodb:us-east-1:888888888888:table/orders"],
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
);
|
|
63
|
+
assertNonNullable(createdSelection.SelectionId);
|
|
64
|
+
|
|
65
|
+
const plan = await backup.getBackupPlan(
|
|
66
|
+
new GetBackupPlanCommand({ BackupPlanId: createdPlan.BackupPlanId }),
|
|
67
|
+
);
|
|
68
|
+
console.log(plan.BackupPlan?.Rules?.[0]?.ScheduleExpression);
|
|
69
|
+
// "cron(0 1 ? * * *)"
|
|
70
|
+
|
|
71
|
+
const selection = await backup.getBackupSelection(
|
|
72
|
+
new GetBackupSelectionCommand({
|
|
73
|
+
BackupPlanId: createdPlan.BackupPlanId,
|
|
74
|
+
SelectionId: createdSelection.SelectionId,
|
|
75
|
+
}),
|
|
76
|
+
);
|
|
77
|
+
console.log(selection.BackupSelection?.Resources);
|
|
78
|
+
// ["arn:aws:dynamodb:us-east-1:888888888888:table/orders"]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
A plan needs at least one rule. Every rule needs a name and a target vault. An omitted schedule uses
|
|
82
|
+
`cron(0 5 ? * * *)`, the AWS Backup default. Six-field AWS cron expressions and rate expressions
|
|
83
|
+
are validated when the plan is created. A one-time `at(...)` expression is refused.
|
|
84
|
+
|
|
85
|
+
`MoveToColdStorageAfterDays` can be combined with `DeleteAfterDays`. The deletion must be at least
|
|
86
|
+
90 days after the move to cold storage. A shorter lifecycle raises
|
|
87
|
+
`InvalidParameterValueException`. Set both values to `-1` to retain recovery points indefinitely.
|
|
88
|
+
|
|
89
|
+
## Running scheduled backups
|
|
90
|
+
|
|
91
|
+
Each plan rule runs on the simulated clock. A due rule creates one recovery point for each distinct
|
|
92
|
+
resource ARN in the plan's selections. The recovery point records the rule, resource ARN, lifecycle
|
|
93
|
+
and creation time. The simulation completes backup jobs at the scheduled instant.
|
|
94
|
+
|
|
95
|
+
```typescript sim-backup-run-schedule
|
|
96
|
+
/**
|
|
97
|
+
* Advancing a plan through its next scheduled backup.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
import {
|
|
101
|
+
CreateBackupPlanCommand,
|
|
102
|
+
CreateBackupSelectionCommand,
|
|
103
|
+
CreateBackupVaultCommand,
|
|
104
|
+
ListBackupJobsCommand,
|
|
105
|
+
ListRecoveryPointsByBackupVaultCommand,
|
|
106
|
+
} from "@aws-sdk/client-backup";
|
|
107
|
+
import { assertArrayLength, assertNonNullable } from "@kensio/smartass";
|
|
108
|
+
|
|
109
|
+
import { SimAws, SimFixedClock } from "@kensio/yulin";
|
|
110
|
+
|
|
111
|
+
const simAws = new SimAws({
|
|
112
|
+
clock: new SimFixedClock(new Date("2026-08-31T09:30:00.000Z")),
|
|
113
|
+
});
|
|
114
|
+
const backup = simAws.backup();
|
|
115
|
+
|
|
116
|
+
await backup.createBackupVault(
|
|
117
|
+
new CreateBackupVaultCommand({ BackupVaultName: "application-backups" }),
|
|
118
|
+
);
|
|
119
|
+
const createdPlan = await backup.createBackupPlan(
|
|
120
|
+
new CreateBackupPlanCommand({
|
|
121
|
+
BackupPlan: {
|
|
122
|
+
BackupPlanName: "application-plan",
|
|
123
|
+
Rules: [
|
|
124
|
+
{
|
|
125
|
+
RuleName: "hourly",
|
|
126
|
+
TargetBackupVaultName: "application-backups",
|
|
127
|
+
ScheduleExpression: "rate(1 hour)",
|
|
128
|
+
Lifecycle: { DeleteAfterDays: 35 },
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
}),
|
|
133
|
+
);
|
|
134
|
+
assertNonNullable(createdPlan.BackupPlanId);
|
|
135
|
+
await backup.createBackupSelection(
|
|
136
|
+
new CreateBackupSelectionCommand({
|
|
137
|
+
BackupPlanId: createdPlan.BackupPlanId,
|
|
138
|
+
BackupSelection: {
|
|
139
|
+
SelectionName: "orders",
|
|
140
|
+
IamRoleArn: "arn:aws:iam::888888888888:role/BackupRole",
|
|
141
|
+
Resources: ["arn:aws:dynamodb:us-east-1:888888888888:table/orders"],
|
|
142
|
+
},
|
|
143
|
+
}),
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
await simAws.clock().advanceBy({ hours: 1 });
|
|
147
|
+
|
|
148
|
+
const stored = backup.vault("application-backups").recoveryPoints();
|
|
149
|
+
assertArrayLength(stored, 1);
|
|
150
|
+
console.log(stored[0].creationDate.toISOString());
|
|
151
|
+
// "2026-08-31T10:30:00.000Z"
|
|
152
|
+
|
|
153
|
+
const points = await backup.listRecoveryPointsByBackupVault(
|
|
154
|
+
new ListRecoveryPointsByBackupVaultCommand({
|
|
155
|
+
BackupVaultName: "application-backups",
|
|
156
|
+
}),
|
|
157
|
+
);
|
|
158
|
+
const jobs = await backup.listBackupJobs(new ListBackupJobsCommand({}));
|
|
159
|
+
console.log(points.RecoveryPoints?.[0]?.ResourceArn);
|
|
160
|
+
// "arn:aws:dynamodb:us-east-1:888888888888:table/orders"
|
|
161
|
+
console.log(jobs.BackupJobs?.[0]?.State); // "COMPLETED"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
`DeleteAfterDays` removes a recovery point when the clock reaches its deletion time. Vault reads,
|
|
165
|
+
`ListRecoveryPointsByBackupVault` and `DescribeRecoveryPoint` apply the expiry before returning.
|
|
166
|
+
Repeated schedules keep every unexpired recovery point.
|
|
167
|
+
|
|
168
|
+
Vault Lock bounds apply when a backup starts. A lifecycle shorter than `MinRetentionDays`, longer
|
|
169
|
+
than `MaxRetentionDays` or indefinite under a finite maximum produces a `FAILED` backup job. The
|
|
170
|
+
vault receives no recovery point for that job. Use `ListBackupJobs` or `DescribeBackupJob` to read
|
|
171
|
+
the failure and its `StatusMessage`.
|
|
172
|
+
|
|
173
|
+
## Starting an on-demand backup
|
|
174
|
+
|
|
175
|
+
`StartBackupJob` completes an on-demand job at the current simulated time. It applies the same
|
|
176
|
+
lifecycle validation and Vault Lock bounds as a scheduled rule.
|
|
177
|
+
|
|
178
|
+
```typescript sim-backup-start-job
|
|
179
|
+
/**
|
|
180
|
+
* Creating an on-demand recovery point.
|
|
181
|
+
*/
|
|
182
|
+
|
|
183
|
+
import {
|
|
184
|
+
CreateBackupVaultCommand,
|
|
185
|
+
DescribeRecoveryPointCommand,
|
|
186
|
+
StartBackupJobCommand,
|
|
187
|
+
} from "@aws-sdk/client-backup";
|
|
188
|
+
import { assertNonNullable } from "@kensio/smartass";
|
|
189
|
+
|
|
190
|
+
import { SimAws, SimFixedClock } from "@kensio/yulin";
|
|
191
|
+
|
|
192
|
+
const simAws = new SimAws({
|
|
193
|
+
clock: new SimFixedClock(new Date("2026-08-31T12:00:00.000Z")),
|
|
194
|
+
});
|
|
195
|
+
const backup = simAws.backup();
|
|
196
|
+
await backup.createBackupVault(
|
|
197
|
+
new CreateBackupVaultCommand({ BackupVaultName: "manual-backups" }),
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
const started = await backup.startBackupJob(
|
|
201
|
+
new StartBackupJobCommand({
|
|
202
|
+
BackupVaultName: "manual-backups",
|
|
203
|
+
ResourceArn: "arn:aws:s3:::application-files",
|
|
204
|
+
IamRoleArn: "arn:aws:iam::888888888888:role/BackupRole",
|
|
205
|
+
Lifecycle: { DeleteAfterDays: 14 },
|
|
206
|
+
}),
|
|
207
|
+
);
|
|
208
|
+
assertNonNullable(started.RecoveryPointArn);
|
|
209
|
+
|
|
210
|
+
const point = await backup.describeRecoveryPoint(
|
|
211
|
+
new DescribeRecoveryPointCommand({
|
|
212
|
+
BackupVaultName: "manual-backups",
|
|
213
|
+
RecoveryPointArn: started.RecoveryPointArn,
|
|
214
|
+
}),
|
|
215
|
+
);
|
|
216
|
+
console.log(point.CreationDate?.toISOString());
|
|
217
|
+
// "2026-08-31T12:00:00.000Z"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Vault Lock
|
|
221
|
+
|
|
222
|
+
`PutBackupVaultLockConfiguration` records minimum and maximum retention periods on a vault. Adding
|
|
223
|
+
`ChangeableForDays` creates a compliance lock. The configuration stays changeable until the grace
|
|
224
|
+
period ends, then becomes immutable.
|
|
225
|
+
|
|
226
|
+
```typescript sim-backup-vault-lock
|
|
227
|
+
/**
|
|
228
|
+
* Advancing a compliance lock through its grace period.
|
|
229
|
+
*/
|
|
230
|
+
|
|
231
|
+
import {
|
|
232
|
+
CreateBackupVaultCommand,
|
|
233
|
+
DescribeBackupVaultCommand,
|
|
234
|
+
PutBackupVaultLockConfigurationCommand,
|
|
235
|
+
} from "@aws-sdk/client-backup";
|
|
236
|
+
|
|
237
|
+
import { SimAws, SimFixedClock } from "@kensio/yulin";
|
|
238
|
+
|
|
239
|
+
const simAws = new SimAws({
|
|
240
|
+
clock: new SimFixedClock(new Date("2026-08-30T10:00:00.000Z")),
|
|
241
|
+
});
|
|
242
|
+
const backup = simAws.backup();
|
|
243
|
+
|
|
244
|
+
await backup.createBackupVault(
|
|
245
|
+
new CreateBackupVaultCommand({ BackupVaultName: "compliance-backups" }),
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
await backup.putBackupVaultLockConfiguration(
|
|
249
|
+
new PutBackupVaultLockConfigurationCommand({
|
|
250
|
+
BackupVaultName: "compliance-backups",
|
|
251
|
+
ChangeableForDays: 3,
|
|
252
|
+
MinRetentionDays: 7,
|
|
253
|
+
MaxRetentionDays: 365,
|
|
254
|
+
}),
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
const changeable = await backup.describeBackupVault(
|
|
258
|
+
new DescribeBackupVaultCommand({
|
|
259
|
+
BackupVaultName: "compliance-backups",
|
|
260
|
+
}),
|
|
261
|
+
);
|
|
262
|
+
console.log(changeable.LockDate?.toISOString());
|
|
263
|
+
// "2026-09-02T10:00:00.000Z"
|
|
264
|
+
|
|
265
|
+
await simAws.clock().advanceBy({ days: 3 });
|
|
266
|
+
|
|
267
|
+
try {
|
|
268
|
+
await backup.putBackupVaultLockConfiguration(
|
|
269
|
+
new PutBackupVaultLockConfigurationCommand({
|
|
270
|
+
BackupVaultName: "compliance-backups",
|
|
271
|
+
MinRetentionDays: 14,
|
|
272
|
+
}),
|
|
273
|
+
);
|
|
274
|
+
} catch (error) {
|
|
275
|
+
console.log(error instanceof Error ? error.name : "unknown error");
|
|
276
|
+
// "InvalidParameterValueException"
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
`ChangeableForDays` must be between 3 and 36,500. Retention periods are whole days. A minimum cannot
|
|
281
|
+
exceed the maximum, and the maximum cannot exceed 36,500 days. A lock without
|
|
282
|
+
`ChangeableForDays` remains changeable.
|
|
283
|
+
|
|
284
|
+
## Deploying from CloudFormation
|
|
285
|
+
|
|
286
|
+
Simulated CloudFormation deploys `AWS::Backup::BackupVault`, `AWS::Backup::BackupPlan` and
|
|
287
|
+
`AWS::Backup::BackupSelection`. References between the resources resolve before AWS Backup creates
|
|
288
|
+
them.
|
|
289
|
+
|
|
290
|
+
```typescript sim-backup-cloudformation
|
|
291
|
+
/**
|
|
292
|
+
* Deploying a vault, plan and selection from one template.
|
|
293
|
+
*/
|
|
294
|
+
|
|
295
|
+
import { GetBackupSelectionCommand } from "@aws-sdk/client-backup";
|
|
296
|
+
|
|
297
|
+
import { SimAws } from "@kensio/yulin";
|
|
298
|
+
|
|
299
|
+
const simAws = new SimAws();
|
|
300
|
+
const stack = await simAws.cloudFormation().deployTemplate({
|
|
301
|
+
stackName: "backup-stack",
|
|
302
|
+
template: {
|
|
303
|
+
Resources: {
|
|
304
|
+
Vault: {
|
|
305
|
+
Type: "AWS::Backup::BackupVault",
|
|
306
|
+
Properties: {
|
|
307
|
+
BackupVaultName: "application-backups",
|
|
308
|
+
LockConfiguration: {
|
|
309
|
+
MinRetentionDays: 7,
|
|
310
|
+
MaxRetentionDays: 365,
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
Plan: {
|
|
315
|
+
Type: "AWS::Backup::BackupPlan",
|
|
316
|
+
Properties: {
|
|
317
|
+
BackupPlan: {
|
|
318
|
+
BackupPlanName: "application-plan",
|
|
319
|
+
BackupPlanRule: [
|
|
320
|
+
{
|
|
321
|
+
RuleName: "daily",
|
|
322
|
+
TargetBackupVault: { Ref: "Vault" },
|
|
323
|
+
ScheduleExpression: "cron(0 1 ? * * *)",
|
|
324
|
+
Lifecycle: { DeleteAfterDays: 35 },
|
|
325
|
+
},
|
|
326
|
+
],
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
Selection: {
|
|
331
|
+
Type: "AWS::Backup::BackupSelection",
|
|
332
|
+
Properties: {
|
|
333
|
+
BackupPlanId: { Ref: "Plan" },
|
|
334
|
+
BackupSelection: {
|
|
335
|
+
SelectionName: "orders",
|
|
336
|
+
IamRoleArn: "arn:aws:iam::888888888888:role/BackupRole",
|
|
337
|
+
Resources: ["arn:aws:dynamodb:us-east-1:888888888888:table/orders"],
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
Outputs: {
|
|
343
|
+
VaultArn: {
|
|
344
|
+
Value: { "Fn::GetAtt": ["Vault", "BackupVaultArn"] },
|
|
345
|
+
},
|
|
346
|
+
PlanId: { Value: { Ref: "Plan" } },
|
|
347
|
+
SelectionId: { Value: { Ref: "Selection" } },
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
await stack.waitForDeployComplete();
|
|
353
|
+
|
|
354
|
+
const selection = await simAws.backup().getBackupSelection(
|
|
355
|
+
new GetBackupSelectionCommand({
|
|
356
|
+
BackupPlanId: stack.output("PlanId"),
|
|
357
|
+
SelectionId: stack.output("SelectionId"),
|
|
358
|
+
}),
|
|
359
|
+
);
|
|
360
|
+
|
|
361
|
+
console.log(stack.output("VaultArn"));
|
|
362
|
+
// "arn:aws:backup:us-east-1:888888888888:backup-vault:application-backups"
|
|
363
|
+
console.log(selection.BackupSelection?.SelectionName); // "orders"
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
`Ref` and `Fn::GetAtt` return these values:
|
|
367
|
+
|
|
368
|
+
- `AWS::Backup::BackupVault` returns the vault name from `Ref`. `BackupVaultArn` and
|
|
369
|
+
`BackupVaultName` are available through `Fn::GetAtt`.
|
|
370
|
+
- `AWS::Backup::BackupPlan` returns the plan ID from `Ref`. `BackupPlanArn`, `BackupPlanId` and
|
|
371
|
+
`VersionId` are available through `Fn::GetAtt`.
|
|
372
|
+
- `AWS::Backup::BackupSelection` returns the selection ID from `Ref`. `Id`, `SelectionId` and
|
|
373
|
+
`BackupPlanId` are available through `Fn::GetAtt`.
|
|
374
|
+
|
|
375
|
+
Stack teardown removes all three resource types from the simulation.
|
|
376
|
+
|
|
377
|
+
## Permissions
|
|
378
|
+
|
|
379
|
+
Every supported operation is authorized by simulated IAM. Vault operations use the vault ARN. Plan
|
|
380
|
+
and selection operations use the plan ARN. `ListBackupVaults` has no resource in its request and is
|
|
381
|
+
authorized against `*`. `StartBackupJob` and `ListRecoveryPointsByBackupVault` use the vault ARN.
|
|
382
|
+
`DescribeRecoveryPoint` uses the recovery point ARN. Backup job reads use `*`.
|
|
383
|
+
|
|
384
|
+
```typescript sim-backup-iam-policy
|
|
385
|
+
/**
|
|
386
|
+
* A Role allowed to create one named backup vault.
|
|
387
|
+
*/
|
|
388
|
+
|
|
389
|
+
import { CreateBackupVaultCommand } from "@aws-sdk/client-backup";
|
|
390
|
+
import { CreateRoleCommand, PutRolePolicyCommand } from "@aws-sdk/client-iam";
|
|
391
|
+
|
|
392
|
+
import { SimAws } from "@kensio/yulin";
|
|
393
|
+
|
|
394
|
+
const simAws = new SimAws();
|
|
395
|
+
const role = await simAws.iam().createRole(
|
|
396
|
+
new CreateRoleCommand({
|
|
397
|
+
RoleName: "BackupAdministrator",
|
|
398
|
+
AssumeRolePolicyDocument: JSON.stringify({
|
|
399
|
+
Version: "2012-10-17",
|
|
400
|
+
Statement: {
|
|
401
|
+
Effect: "Allow",
|
|
402
|
+
Principal: { AWS: "arn:aws:iam::888888888888:root" },
|
|
403
|
+
Action: "sts:AssumeRole",
|
|
404
|
+
},
|
|
405
|
+
}),
|
|
406
|
+
}),
|
|
407
|
+
);
|
|
408
|
+
|
|
409
|
+
await simAws.iam().putRolePolicy(
|
|
410
|
+
new PutRolePolicyCommand({
|
|
411
|
+
RoleName: "BackupAdministrator",
|
|
412
|
+
PolicyName: "CreateApplicationVault",
|
|
413
|
+
PolicyDocument: JSON.stringify({
|
|
414
|
+
Version: "2012-10-17",
|
|
415
|
+
Statement: {
|
|
416
|
+
Effect: "Allow",
|
|
417
|
+
Action: "backup:CreateBackupVault",
|
|
418
|
+
Resource:
|
|
419
|
+
"arn:aws:backup:us-east-1:888888888888:backup-vault:application-backups",
|
|
420
|
+
},
|
|
421
|
+
}),
|
|
422
|
+
}),
|
|
423
|
+
);
|
|
424
|
+
|
|
425
|
+
const created = await simAws.backup().createBackupVault(
|
|
426
|
+
new CreateBackupVaultCommand({
|
|
427
|
+
BackupVaultName: "application-backups",
|
|
428
|
+
}),
|
|
429
|
+
{ caller: { kind: "arn", arn: role.Role.Arn } },
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
console.log(created.BackupVaultName); // "application-backups"
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Authorization runs before resource lookup. An unauthorized request for a missing vault or plan
|
|
436
|
+
raises `AccessDeniedException`, without revealing whether the resource exists.
|
|
437
|
+
|
|
438
|
+
## SDK interception
|
|
439
|
+
|
|
440
|
+
`SimSdk` routes commands from an AWS `BackupClient` to the simulation. Intercept the client instance
|
|
441
|
+
when a test owns it, or intercept the class when application code creates the client.
|
|
442
|
+
|
|
443
|
+
```typescript sim-backup-sdk-interception
|
|
444
|
+
/**
|
|
445
|
+
* Routing an AWS Backup client into the simulation.
|
|
446
|
+
*/
|
|
447
|
+
|
|
448
|
+
import {
|
|
449
|
+
BackupClient,
|
|
450
|
+
CreateBackupVaultCommand,
|
|
451
|
+
ListBackupVaultsCommand,
|
|
452
|
+
} from "@aws-sdk/client-backup";
|
|
453
|
+
|
|
454
|
+
import { SimSdk } from "@kensio/yulin/sdk";
|
|
455
|
+
|
|
456
|
+
using simSdk = new SimSdk();
|
|
457
|
+
const client = new BackupClient({ region: "us-east-1" });
|
|
458
|
+
simSdk.intercept(client);
|
|
459
|
+
|
|
460
|
+
await client.send(
|
|
461
|
+
new CreateBackupVaultCommand({ BackupVaultName: "application-backups" }),
|
|
462
|
+
);
|
|
463
|
+
|
|
464
|
+
const listed = await client.send(new ListBackupVaultsCommand({}));
|
|
465
|
+
console.log(listed.BackupVaultList?.[0]?.BackupVaultName);
|
|
466
|
+
// "application-backups"
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
The client's configured Region selects the simulated Region. Credentials select the account and
|
|
470
|
+
caller when the intercepted client has them. See the [SDK interception docs](https://yulinsim.dev/sdk/)
|
|
471
|
+
for class interception and credential handling.
|
|
472
|
+
|
|
473
|
+
## Account and Region scoping
|
|
474
|
+
|
|
475
|
+
AWS Backup state belongs to one account and Region. The same vault name can exist in another scope.
|
|
476
|
+
|
|
477
|
+
```typescript sim-backup-account-region-scoping
|
|
478
|
+
/**
|
|
479
|
+
* Keeping backup vaults inside their account and Region.
|
|
480
|
+
*/
|
|
481
|
+
|
|
482
|
+
import {
|
|
483
|
+
CreateBackupVaultCommand,
|
|
484
|
+
ListBackupVaultsCommand,
|
|
485
|
+
} from "@aws-sdk/client-backup";
|
|
486
|
+
|
|
487
|
+
import { SimAws } from "@kensio/yulin";
|
|
488
|
+
|
|
489
|
+
const simAws = new SimAws();
|
|
490
|
+
|
|
491
|
+
await simAws
|
|
492
|
+
.account("111111111111")
|
|
493
|
+
.region("eu-west-2")
|
|
494
|
+
.backup()
|
|
495
|
+
.createBackupVault(
|
|
496
|
+
new CreateBackupVaultCommand({ BackupVaultName: "application-backups" }),
|
|
497
|
+
);
|
|
498
|
+
|
|
499
|
+
const inLondon = await simAws
|
|
500
|
+
.account("111111111111")
|
|
501
|
+
.region("eu-west-2")
|
|
502
|
+
.backup()
|
|
503
|
+
.listBackupVaults(new ListBackupVaultsCommand({}));
|
|
504
|
+
|
|
505
|
+
const inVirginia = await simAws
|
|
506
|
+
.account("111111111111")
|
|
507
|
+
.region("us-east-1")
|
|
508
|
+
.backup()
|
|
509
|
+
.listBackupVaults(new ListBackupVaultsCommand({}));
|
|
510
|
+
|
|
511
|
+
console.log(inLondon.BackupVaultList?.length); // 1
|
|
512
|
+
console.log(inVirginia.BackupVaultList?.length); // 0
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
## Available functionality
|
|
516
|
+
|
|
517
|
+
- `CreateBackupVault`, `DescribeBackupVault`, `DeleteBackupVault` and `ListBackupVaults`.
|
|
518
|
+
- `PutBackupVaultLockConfiguration`, including compliance lock grace periods driven by simulated
|
|
519
|
+
time.
|
|
520
|
+
- `CreateBackupPlan` and `GetBackupPlan`, with rule schedule and lifecycle validation.
|
|
521
|
+
- `CreateBackupSelection`, `GetBackupSelection` and `ListBackupSelections`.
|
|
522
|
+
- Scheduled backup jobs driven by `simAws.clock()` and the plan rule schedule.
|
|
523
|
+
- `StartBackupJob`, `ListBackupJobs` and `DescribeBackupJob`.
|
|
524
|
+
- `ListRecoveryPointsByBackupVault`, `DescribeRecoveryPoint` and
|
|
525
|
+
`simAws.backup().vault(name).recoveryPoints()`.
|
|
526
|
+
- Recovery point expiry from `DeleteAfterDays` and Vault Lock retention checks.
|
|
527
|
+
- IAM authorization for every supported command.
|
|
528
|
+
- SDK interception of `BackupClient`.
|
|
529
|
+
- Account and Region scoped state, ARNs and timestamps.
|
|
530
|
+
- `AWS::Backup::BackupVault`, `AWS::Backup::BackupPlan` and `AWS::Backup::BackupSelection` through
|
|
531
|
+
simulated CloudFormation.
|
|
532
|
+
|
|
533
|
+
## Limitations
|
|
534
|
+
|
|
535
|
+
- Recovery point copies and restores are outside the simulation.
|
|
536
|
+
- Backup jobs complete immediately at their scheduled or requested simulated instant. Start and
|
|
537
|
+
completion windows are accepted by the SDK types and ignored by the simulation.
|
|
538
|
+
- Cold-storage lifecycle values are recorded. Recovery points stay in one storage state.
|
|
539
|
+
- Overlapping plan rules are evaluated independently. AWS Backup's overlapping-window optimisation
|
|
540
|
+
is outside the simulation.
|
|
541
|
+
- Vault deletion removes the vault and its recovery points.
|
|
542
|
+
- A selection stores its `Resources`. `Conditions`, `ListOfTags` and wildcard resource matching are
|
|
543
|
+
outside the selection model.
|
|
544
|
+
- The selection's `IamRoleArn` is stored. No backup job assumes it, and creating a selection does
|
|
545
|
+
no `iam:PassRole` check.
|
|
546
|
+
- `EncryptionKeyArn` is stored on a vault. KMS calls and recovery point encryption are outside the
|
|
547
|
+
simulation.
|
|
548
|
+
- Backup tags are accepted and discarded.
|
|
549
|
+
- List operations return every item. `MaxResults` and `NextToken` do not paginate the result.
|
|
550
|
+
- `GetBackupPlan` returns the one stored plan version. `VersionId` is accepted and ignored. Plan
|
|
551
|
+
updates are outside the simulation.
|
|
552
|
+
- A compliance lock becomes immutable when its grace period ends. Deleting a lock configuration is
|
|
553
|
+
unsupported.
|
|
@@ -3353,7 +3353,7 @@ const stack = await simAws.cloudFormation().deployTemplate({
|
|
|
3353
3353
|
Type: "AWS::S3::Bucket",
|
|
3354
3354
|
Properties: {
|
|
3355
3355
|
BucketName: "uploads",
|
|
3356
|
-
|
|
3356
|
+
AccelerateConfiguration: { AccelerationStatus: "Enabled" },
|
|
3357
3357
|
},
|
|
3358
3358
|
},
|
|
3359
3359
|
},
|
|
@@ -3362,15 +3362,15 @@ const stack = await simAws.cloudFormation().deployTemplate({
|
|
|
3362
3362
|
|
|
3363
3363
|
await stack.waitForDeployComplete();
|
|
3364
3364
|
|
|
3365
|
-
// The Bucket exists and is usable,
|
|
3365
|
+
// The Bucket exists and is usable, without transfer acceleration.
|
|
3366
3366
|
console.log(stack.getResource("UploadsBucket")?.deployed);
|
|
3367
3367
|
// true
|
|
3368
3368
|
|
|
3369
3369
|
for (const ignored of stack.ignoredProperties) {
|
|
3370
3370
|
console.log(ignored.logicalId, ignored.path, ignored.reason);
|
|
3371
|
-
// "UploadsBucket
|
|
3372
|
-
// AWS::S3::Bucket property simulated S3 does not act on:
|
|
3373
|
-
//
|
|
3371
|
+
// "UploadsBucket AccelerateConfiguration AccelerateConfiguration is a real
|
|
3372
|
+
// AWS::S3::Bucket property simulated S3 does not act on: transfer
|
|
3373
|
+
// acceleration is not simulated"
|
|
3374
3374
|
}
|
|
3375
3375
|
```
|
|
3376
3376
|
|
|
@@ -3393,7 +3393,7 @@ A property name AWS has never had is recorded the same way, and never fails the
|
|
|
3393
3393
|
property AWS added after this simulator read the docs look identical from here, and a Resource that
|
|
3394
3394
|
deploys with the unread name reported is more useful than a stack that fails over either.
|
|
3395
3395
|
|
|
3396
|
-
|
|
3396
|
+
Three things are still refused outright, and fail the Resource:
|
|
3397
3397
|
|
|
3398
3398
|
- A property that leaves nothing coherent to create, such as an `AWS::S3::Bucket` whose `BucketName`
|
|
3399
3399
|
is some type other than a string, or an `AWS::DynamoDB::GlobalTable` whose replica list omits the
|
|
@@ -3401,6 +3401,16 @@ Two things are still refused outright, and fail the Resource:
|
|
|
3401
3401
|
- A value the simulated service itself refuses, in the same words an SDK caller gets. An
|
|
3402
3402
|
`AWS::SQS::Queue` with `FifoQueue: true` is one. A FIFO queue is named `<name>.fifo`, which
|
|
3403
3403
|
simulated SQS refuses, leaving no queue to create under the name the template gave it.
|
|
3404
|
+
- A value real AWS answers with a 400, on a property that is skipped. Nothing acts on the property
|
|
3405
|
+
either way, and what it says is read far enough to catch a template CloudFormation will reject. A
|
|
3406
|
+
value that passes is recorded like any other skipped property. One that fails takes the Resource
|
|
3407
|
+
with it, before anything is recorded against it. Two properties do this today. An
|
|
3408
|
+
`AWS::S3::Bucket` `ReplicationConfiguration` is checked against the constraints the S3 API
|
|
3409
|
+
documents, covered under
|
|
3410
|
+
[Buckets from CloudFormation](https://yulinsim.dev/services/s3/#buckets-from-cloudformation "Buckets from CloudFormation"),
|
|
3411
|
+
and an `AWS::SQS::Queue` `KmsDataKeyReusePeriodSeconds` against the minute to a day real SQS
|
|
3412
|
+
accepts, covered under
|
|
3413
|
+
[Deploying a queue from CloudFormation](https://yulinsim.dev/services/sqs/#deploying-a-queue-from-cloudformation "Deploying a queue from CloudFormation").
|
|
3404
3414
|
|
|
3405
3415
|
Properties nothing simulated could tell apart are left off the list. There is no simulated KMS and
|
|
3406
3416
|
Object bytes are stored as they arrive. An `AWS::S3::Bucket` carrying `BucketEncryption` and `Tags`,
|