@kensio/yulin 1.20.15 → 1.20.17
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 +13 -0
- package/dist/sdk/module/sim-sdk-module-client-interceptor.d.ts +5 -0
- package/dist/sdk/module/sim-sdk-module-client-interceptor.js +14 -0
- package/dist/sdk/module/sim-sdk-static-client-factory.d.ts +26 -0
- package/dist/sdk/module/sim-sdk-static-client-factory.js +59 -0
- package/dist/sdk/send-patch.d.ts +8 -0
- package/dist/sdk/send-patch.js +11 -0
- package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
- package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
- package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +39 -6
- package/dist/service/aws/caller/sim-aws-caller-resolver.js +32 -30
- package/dist/service/aws/caller/sim-aws-caller.d.ts +9 -0
- package/dist/service/aws/caller/sim-aws-resolved-caller.d.ts +19 -0
- package/dist/service/aws/caller/sim-aws-resolved-caller.js +26 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +12 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +6 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +12 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +9 -0
- package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
- package/dist/service/aws/sim-aws-properties.d.ts +15 -0
- package/dist/service/aws/sim-aws.js +2 -1
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
- package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
- package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +25 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +21 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +28 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +48 -0
- package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
- package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
- package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
- package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
- package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
- package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
- package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
- package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
- package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
- package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +27 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +42 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +8 -7
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +11 -37
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +50 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +10 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
- package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
- package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
- package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
- package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
- package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
- package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +28 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +41 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +6 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +4 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +3 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
- package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
- package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
- package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
- package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
- package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
- package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
- package/dist/service/cloudfront/sim-cf-etag.js +10 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +8 -12
- package/dist/service/cloudfront/sim-cloudfront-commands.js +8 -17
- package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +43 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.js +53 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts +13 -17
- package/dist/service/cloudfront/sim-cloudfront.js +22 -25
- package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
- package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
- package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
- package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
- package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
- package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
- package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
- package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
- package/dist/service/ecr/sim-ecr.d.ts +7 -0
- package/dist/service/ecr/sim-ecr.js +16 -4
- package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
- package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
- package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
- package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
- package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
- package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
- package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
- package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
- package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
- package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
- package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
- package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
- package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
- package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
- package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
- package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
- package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
- package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
- package/dist/service/firehose/source/sim-firehose-source.js +5 -0
- package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
- package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
- package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
- package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +33 -2
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +33 -2
- package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
- package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
- package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +36 -7
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +22 -11
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -71
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +7 -2
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +87 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +21 -3
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +34 -10
- package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
- package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
- package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
- package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
- package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +21 -5
- package/dist/service/iam/authorize/sim-iam-account-auth-z.js +7 -3
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -2
- package/dist/service/iam/authorize/sim-iam-authorizer.js +3 -1
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
- package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
- package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
- package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
- package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
- package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
- package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
- package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
- package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
- package/dist/service/iam/error/sim-iam.error.js +13 -0
- package/dist/service/iam/index.d.ts +1 -0
- package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
- package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
- package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
- package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
- package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +11 -0
- package/dist/service/iam/role/sim-iam-role-with-policy.factory.js +4 -2
- package/dist/service/iam/sim-iam-account-parts.d.ts +16 -0
- package/dist/service/iam/sim-iam-account-parts.js +2 -0
- package/dist/service/iam/sim-iam.d.ts +12 -2
- package/dist/service/iam/sim-iam.js +12 -0
- package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
- package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
- package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
- package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
- package/dist/service/kms/command/sim-kms-request-options.d.ts +11 -0
- package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
- package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
- package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
- package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
- package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
- package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
- package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
- package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
- package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
- package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
- package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
- package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
- package/dist/service/logs/sim-logs-commands.d.ts +3 -0
- package/dist/service/logs/sim-logs-commands.js +4 -0
- package/dist/service/logs/sim-logs.js +6 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
- package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
- package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
- package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
- package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +6 -4
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
- package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
- package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +15 -9
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +20 -10
- package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
- package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
- package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
- package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
- package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
- package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
- package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
- package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
- package/dist/service/stepfunctions/sim-step-functions.js +26 -9
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +9 -2
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -2
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +10 -4
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +8 -7
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +2 -2
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -2
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +14 -11
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +10 -1
- package/dist/service/sts/command/assume-role/assume-role.handler.js +6 -2
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +10 -1
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +5 -1
- package/dist/service/sts/service-role/sim-service-role.js +5 -1
- package/dist/service/sts/sim-sts.d.ts +18 -1
- package/dist/service/sts/sim-sts.js +8 -0
- package/dist/util/memo/bounded-memo.d.ts +36 -0
- package/dist/util/memo/bounded-memo.js +58 -0
- package/docs/README.md +54 -0
- package/docs/ai-skill/README.md +69 -0
- package/docs/cli/README.md +284 -0
- package/docs/factories/README.md +140 -0
- package/docs/lint/README.md +176 -0
- package/docs/non-aws-dependencies/README.md +261 -0
- package/docs/sdk/README.md +274 -0
- package/docs/serve/README.md +1126 -0
- package/docs/services/acm/README.md +823 -0
- package/docs/services/apigateway/README.md +1919 -0
- package/docs/services/apigatewayv2/README.md +2678 -0
- package/docs/services/athena/README.md +1044 -0
- package/docs/services/bedrock/README.md +350 -0
- package/docs/services/cloudformation/README.md +3625 -0
- package/docs/services/cloudfront/README.md +3098 -0
- package/docs/services/cloudwatch/README.md +422 -0
- package/docs/services/cognito/README.md +4924 -0
- package/docs/services/dynamodb/README.md +3785 -0
- package/docs/services/ecr/README.md +302 -0
- package/docs/services/ecs/README.md +2021 -0
- package/docs/services/elbv2/README.md +1901 -0
- package/docs/services/eventbridge/README.md +1118 -0
- package/docs/services/firehose/README.md +811 -0
- package/docs/services/glue/README.md +507 -0
- package/docs/services/iam/README.md +1578 -0
- package/docs/services/kinesis/README.md +455 -0
- package/docs/services/kms/README.md +664 -0
- package/docs/services/lambda/README.md +3719 -0
- package/docs/services/logs/README.md +882 -0
- package/docs/services/organizations/README.md +574 -0
- package/docs/services/personalize/README.md +835 -0
- package/docs/services/rekognition/README.md +1070 -0
- package/docs/services/route53/README.md +1783 -0
- package/docs/services/s3/README.md +3029 -0
- package/docs/services/scheduler/README.md +814 -0
- package/docs/services/secretsmanager/README.md +670 -0
- package/docs/services/ses/README.md +1013 -0
- package/docs/services/sns/README.md +1904 -0
- package/docs/services/sqs/README.md +1185 -0
- package/docs/services/ssm/README.md +1096 -0
- package/docs/services/stepfunctions/README.md +1341 -0
- package/docs/services/sts/README.md +245 -0
- package/docs/services/wafv2/README.md +1380 -0
- package/docs/terraform/README.md +248 -0
- package/docs/time/README.md +284 -0
- package/llms.txt +59 -0
- package/package.json +7 -4
- package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simAwsRunAsAmbientCaller } from "../caller/sim-aws-ambient-caller.js";
|
|
1
2
|
import { SimCloudFrontRegistry } from "../../cloudfront/registry/sim-cloud-front-registry.js";
|
|
2
3
|
import { SimIamRegistry } from "../../iam/registry/sim-iam-registry.js";
|
|
3
4
|
import { SimOrganizations } from "../../organizations/index.js";
|
|
@@ -88,6 +89,10 @@ export class SimAwsServiceFactory {
|
|
|
88
89
|
registeredServices;
|
|
89
90
|
selfContainedServices;
|
|
90
91
|
constructor(properties) {
|
|
92
|
+
// Where a request naming no caller of its own looks before the default.
|
|
93
|
+
// Keyed on the SimAws instance, so a run-as on one simulation decides
|
|
94
|
+
// nothing in another.
|
|
95
|
+
const ambientCaller = simAwsRunAsAmbientCaller(properties.simAws);
|
|
91
96
|
this.accountServices = new SimAwsAccountServiceCache({
|
|
92
97
|
simAws: properties.simAws,
|
|
93
98
|
background: properties.background,
|
|
@@ -104,10 +109,19 @@ export class SimAwsServiceFactory {
|
|
|
104
109
|
iamRegistry: this.iamRegistry,
|
|
105
110
|
accessKeyRegistry: this.requestAuth.accessKeyRegistry,
|
|
106
111
|
scpResolver: this.organizations,
|
|
112
|
+
// Simulated IAM applies this wherever a request names no caller of its
|
|
113
|
+
// own, in place of the Account root it would otherwise be decided as.
|
|
114
|
+
defaultCaller: properties.defaultCaller,
|
|
115
|
+
ambientCaller,
|
|
107
116
|
});
|
|
108
117
|
this.accountRegionServices = new SimAwsAccountRegionServiceBuilder({
|
|
109
118
|
simAws: properties.simAws,
|
|
110
119
|
background: properties.background,
|
|
120
|
+
// STS reports and evaluates the same default. An unattributed
|
|
121
|
+
// GetCallerIdentity answers with the principal everything else uses,
|
|
122
|
+
// the ambient run-as caller included.
|
|
123
|
+
defaultCaller: properties.defaultCaller,
|
|
124
|
+
ambientCaller,
|
|
111
125
|
registries: this.registries,
|
|
112
126
|
iamRegistry: this.iamRegistry,
|
|
113
127
|
lambdaUrlRegistry: this.lambdaUrlRegistry,
|
|
@@ -2,6 +2,7 @@ import type { BackgroundCompleter, BackgroundScheduler } from "../../util/backgr
|
|
|
2
2
|
import type { SimClock } from "../../util/clock/sim-clock.js";
|
|
3
3
|
import type { SimIamSigV4ExpectedScope } from "../iam/sigv4/sim-iam-sigv4-expected-scope.js";
|
|
4
4
|
import type { SimAwsAccountId } from "./sim-aws-account.js";
|
|
5
|
+
import type { SimAwsDefaultCaller } from "./caller/sim-aws-caller.js";
|
|
5
6
|
import type { AwsRegionName } from "./sim-aws-region.js";
|
|
6
7
|
/**
|
|
7
8
|
* Everything caller resolution needs besides the request itself.
|
|
@@ -28,6 +29,20 @@ export interface SimAwsProperties {
|
|
|
28
29
|
*/
|
|
29
30
|
readonly defaultAccountId?: SimAwsAccountId | string;
|
|
30
31
|
readonly defaultRegionName?: AwsRegionName;
|
|
32
|
+
/**
|
|
33
|
+
* The principal this simulation attributes a call naming no caller to.
|
|
34
|
+
*
|
|
35
|
+
* Every simulated operation takes a `caller`, and one is set for a
|
|
36
|
+
* deployment through `deployTemplate` and `deployCdkOut`. This says who the
|
|
37
|
+
* calls that name none are, such as the role an operator reads the account
|
|
38
|
+
* through. An explicit caller always wins, as does the ambient caller of a
|
|
39
|
+
* `runAs` block.
|
|
40
|
+
*
|
|
41
|
+
* Left out, a call naming no caller is decided as the root principal of the
|
|
42
|
+
* Account it reaches. A service control policy denying that root then denies
|
|
43
|
+
* the call. That is the reason to name a default.
|
|
44
|
+
*/
|
|
45
|
+
readonly defaultCaller?: SimAwsDefaultCaller;
|
|
31
46
|
readonly background?: BackgroundScheduler & BackgroundCompleter;
|
|
32
47
|
/**
|
|
33
48
|
* Clock this simulation's timestamps start from, defaulting to the real
|
|
@@ -34,7 +34,7 @@ export class SimAws extends SimAwsServiceAccessors {
|
|
|
34
34
|
requestAuthentication;
|
|
35
35
|
constructor(properties = {}) {
|
|
36
36
|
super();
|
|
37
|
-
const { defaultAccountId = DEFAULT_SIM_AWS_ACCOUNT_ID, defaultRegionName = DEFAULT_SIM_AWS_REGION_NAME, clock, background: suppliedBackground, } = properties;
|
|
37
|
+
const { defaultAccountId = DEFAULT_SIM_AWS_ACCOUNT_ID, defaultRegionName = DEFAULT_SIM_AWS_REGION_NAME, clock, defaultCaller, background: suppliedBackground, } = properties;
|
|
38
38
|
const timekeeping = new SimAwsTimekeeping({
|
|
39
39
|
clock,
|
|
40
40
|
background: suppliedBackground,
|
|
@@ -47,6 +47,7 @@ export class SimAws extends SimAwsServiceAccessors {
|
|
|
47
47
|
this.serviceFactory = new SimAwsServiceFactory({
|
|
48
48
|
simAws: this,
|
|
49
49
|
background,
|
|
50
|
+
defaultCaller,
|
|
50
51
|
});
|
|
51
52
|
this.iamRegistry = this.serviceFactory.iamRegistry;
|
|
52
53
|
this.scopes = new SimAwsScopeRegistry({ simAws: this });
|
|
@@ -8,6 +8,7 @@ import type { SimCreateStackCommand, SimCreateStackCommandOutput } from "./creat
|
|
|
8
8
|
import type { SimCdkOutContext } from "../../cdk/sim-cdk-out-context.js";
|
|
9
9
|
import type { SimCfnBinding } from "../../bind/sim-cfn-binding.js";
|
|
10
10
|
import type { SimCfnExports } from "../../export/sim-cfn-exports.js";
|
|
11
|
+
import type { SimCfnResourceOrder } from "../../stack/deploy/sim-cfn-resource-order.js";
|
|
11
12
|
interface CreateStackCommandHandlerProperties {
|
|
12
13
|
readonly simAws: SimAws;
|
|
13
14
|
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
@@ -17,6 +18,8 @@ interface CreateStackCommandHandlerProperties {
|
|
|
17
18
|
readonly bindings?: readonly SimCfnBinding[] | undefined;
|
|
18
19
|
/** The principal the Stack's Resources are created as. */
|
|
19
20
|
readonly caller?: SimAwsCaller | undefined;
|
|
21
|
+
/** The order Resources with no dependency between them are started in. */
|
|
22
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
20
23
|
readonly exports?: SimCfnExports | undefined;
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
@@ -32,6 +35,7 @@ export declare class CreateStackCommandHandler implements CommandHandler<SimCrea
|
|
|
32
35
|
private readonly cdkOutContext;
|
|
33
36
|
private readonly bindings;
|
|
34
37
|
private readonly caller;
|
|
38
|
+
private readonly resourceOrder;
|
|
35
39
|
private readonly exports;
|
|
36
40
|
constructor(properties: CreateStackCommandHandlerProperties);
|
|
37
41
|
/**
|
|
@@ -17,9 +17,10 @@ export class CreateStackCommandHandler {
|
|
|
17
17
|
cdkOutContext;
|
|
18
18
|
bindings;
|
|
19
19
|
caller;
|
|
20
|
+
resourceOrder;
|
|
20
21
|
exports;
|
|
21
22
|
constructor(properties) {
|
|
22
|
-
const { simAws, accountRegionScope, stacks, background, cdkOutContext, bindings, caller, exports, } = properties;
|
|
23
|
+
const { simAws, accountRegionScope, stacks, background, cdkOutContext, bindings, caller, resourceOrder, exports, } = properties;
|
|
23
24
|
this.simAws = simAws;
|
|
24
25
|
this.accountRegionScope = accountRegionScope;
|
|
25
26
|
this.stacks = stacks;
|
|
@@ -27,6 +28,7 @@ export class CreateStackCommandHandler {
|
|
|
27
28
|
this.cdkOutContext = cdkOutContext;
|
|
28
29
|
this.bindings = bindings;
|
|
29
30
|
this.caller = caller;
|
|
31
|
+
this.resourceOrder = resourceOrder;
|
|
30
32
|
this.exports = exports;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
@@ -63,6 +65,7 @@ export class CreateStackCommandHandler {
|
|
|
63
65
|
cdkOutContext: this.cdkOutContext,
|
|
64
66
|
bindings: this.bindings,
|
|
65
67
|
caller: this.caller,
|
|
68
|
+
resourceOrder: this.resourceOrder,
|
|
66
69
|
exports: this.exports,
|
|
67
70
|
});
|
|
68
71
|
this.stacks.set(stack.stackName, stack);
|
|
@@ -27,7 +27,7 @@ export class SimCfnCdkOutDeployer {
|
|
|
27
27
|
}
|
|
28
28
|
async deployStack(stack, plan, deployed) {
|
|
29
29
|
const { simAws, accountRegionScope } = this.scope;
|
|
30
|
-
const { transform, caller, ...options } = cdkOutOptionsFor(stack, plan.stackOptions);
|
|
30
|
+
const { transform, caller, resourceOrder, ...options } = cdkOutOptionsFor(stack, plan.stackOptions);
|
|
31
31
|
return await simAws
|
|
32
32
|
.accountRegionScope(accountRegionScope.accountId, stack.regionName)
|
|
33
33
|
.cloudFormation()
|
|
@@ -36,6 +36,7 @@ export class SimCfnCdkOutDeployer {
|
|
|
36
36
|
stackName: stack.stackName,
|
|
37
37
|
...options,
|
|
38
38
|
caller: caller ?? plan.caller,
|
|
39
|
+
resourceOrder: resourceOrder ?? plan.resourceOrder,
|
|
39
40
|
transform: cdkOutBoundTransform(transform, deployed),
|
|
40
41
|
});
|
|
41
42
|
}
|
|
@@ -2,6 +2,7 @@ import type { AwsRegionName } from "../../aws/sim-aws-region.js";
|
|
|
2
2
|
import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
3
3
|
import { type SimCdkAssemblyStack } from "../cdk/sim-cdk-assembly-manifest.js";
|
|
4
4
|
import { type SimCfnCdkOutStackOptionsByName } from "./sim-cfn-cdk-out-stack-options.js";
|
|
5
|
+
import type { SimCfnResourceOrder } from "../stack/deploy/sim-cfn-resource-order.js";
|
|
5
6
|
export interface SimCloudFormationDeployCdkOutProperties {
|
|
6
7
|
/** The `cdk.out` directory to deploy, holding a `manifest.json`. */
|
|
7
8
|
readonly directoryPath: string;
|
|
@@ -23,8 +24,15 @@ export interface SimCloudFormationDeployCdkOutProperties {
|
|
|
23
24
|
*/
|
|
24
25
|
readonly caller?: SimAwsCaller | undefined;
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
27
|
+
* The order every Stack in the assembly creates Resources with no dependency
|
|
28
|
+
* between them in, which one named in `stackOptions` overrides for its own
|
|
29
|
+
* Stack. `reversed` deploys each Stack the other way round from the one its
|
|
30
|
+
* template is written in.
|
|
31
|
+
*/
|
|
32
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Bindings, parameters, a caller, a Resource order and a transform for
|
|
35
|
+
* individual Stacks, keyed the same way `stackNames` names them.
|
|
28
36
|
*/
|
|
29
37
|
readonly stackOptions?: SimCfnCdkOutStackOptionsByName | undefined;
|
|
30
38
|
}
|
|
@@ -35,6 +43,7 @@ export interface SimCfnCdkOutPlannedStack extends SimCdkAssemblyStack {
|
|
|
35
43
|
export interface SimCfnCdkOutPlan {
|
|
36
44
|
readonly stacks: readonly SimCfnCdkOutPlannedStack[];
|
|
37
45
|
readonly caller?: SimAwsCaller | undefined;
|
|
46
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
38
47
|
readonly stackOptions?: SimCfnCdkOutStackOptionsByName | undefined;
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
@@ -10,7 +10,7 @@ import { assertCdkOutOptionsAreDeployed, } from "./sim-cfn-cdk-out-stack-options
|
|
|
10
10
|
* an assembly that cannot be deployed says so before any Stack is created.
|
|
11
11
|
*/
|
|
12
12
|
export async function planCdkOutDeployment(properties) {
|
|
13
|
-
const { directoryPath, stackNames, caller, stackOptions } = cdkOutDeployment(properties.request);
|
|
13
|
+
const { directoryPath, stackNames, caller, resourceOrder, stackOptions } = cdkOutDeployment(properties.request);
|
|
14
14
|
const selected = selectCdkAssemblyStacks({
|
|
15
15
|
stacks: await loadCdkAssemblyStacks(directoryPath),
|
|
16
16
|
stackNames,
|
|
@@ -23,6 +23,7 @@ export async function planCdkOutDeployment(properties) {
|
|
|
23
23
|
regionName: stack.regionName ?? properties.defaultRegionName,
|
|
24
24
|
})),
|
|
25
25
|
caller,
|
|
26
|
+
resourceOrder,
|
|
26
27
|
stackOptions,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
@@ -4,6 +4,7 @@ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
|
4
4
|
import type { SimCfnDeployedStack } from "../stack/sim-cfn-deployed-stack.type.js";
|
|
5
5
|
import type { CfnTemplateBodyRecord } from "../template/sim-cfn-template.js";
|
|
6
6
|
import type { SimCfnTemplateFileTransform } from "./sim-cfn-template-file-transform.js";
|
|
7
|
+
import type { SimCfnResourceOrder } from "../stack/deploy/sim-cfn-resource-order.js";
|
|
7
8
|
/**
|
|
8
9
|
* Adapts one Stack's parsed template, with the Stacks the same call has already
|
|
9
10
|
* deployed to hand.
|
|
@@ -33,6 +34,11 @@ export interface SimCfnCdkOutStackOptions {
|
|
|
33
34
|
* application Stack deployed by another is what this is for.
|
|
34
35
|
*/
|
|
35
36
|
readonly caller?: SimAwsCaller | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* The order this Stack creates Resources with no dependency between them in,
|
|
39
|
+
* where the assembly's own order is not the right one for it.
|
|
40
|
+
*/
|
|
41
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
36
42
|
readonly transform?: SimCfnCdkOutTemplateTransform | undefined;
|
|
37
43
|
}
|
|
38
44
|
export type SimCfnCdkOutStackOptionsByName = Record<string, SimCfnCdkOutStackOptions>;
|
|
@@ -9,6 +9,7 @@ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
|
9
9
|
import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
|
|
10
10
|
import type { BackgroundCompleter, BackgroundScheduler } from "../../../util/background/background.js";
|
|
11
11
|
import type { SimCfnExports } from "../export/sim-cfn-exports.js";
|
|
12
|
+
import type { SimCfnResourceOrder } from "../stack/deploy/sim-cfn-resource-order.js";
|
|
12
13
|
export interface SimCloudFormationCreateStackProperties {
|
|
13
14
|
readonly stackName?: SimCloudFormationStackName | string;
|
|
14
15
|
readonly template: CfnTemplateBodyRecord;
|
|
@@ -23,6 +24,16 @@ export interface SimCloudFormationCreateStackProperties {
|
|
|
23
24
|
* policy denying an Account's root principal then denies.
|
|
24
25
|
*/
|
|
25
26
|
readonly caller?: SimAwsCaller | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* The order Resources with no dependency between them are created in.
|
|
29
|
+
*
|
|
30
|
+
* CloudFormation is free to create them either way round, and the template's
|
|
31
|
+
* own order is what a deployment does by default. `reversed` starts each
|
|
32
|
+
* dependency batch from its last Resource, so a Stack that only deploys in
|
|
33
|
+
* the order its template happens to be written fails here rather than in the
|
|
34
|
+
* account. Declared dependencies and `DependsOn` are honoured either way.
|
|
35
|
+
*/
|
|
36
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
26
37
|
/**
|
|
27
38
|
* The synthesized CDK template file this in-memory template stands in for.
|
|
28
39
|
*
|
|
@@ -59,6 +59,7 @@ export class SimCloudFormationTemplateDeployer {
|
|
|
59
59
|
parameters: properties.parameters,
|
|
60
60
|
bindings: properties.bindings,
|
|
61
61
|
caller: properties.caller,
|
|
62
|
+
resourceOrder: properties.resourceOrder,
|
|
62
63
|
cdkOutContext: await cdkOutContextForTemplatePath(properties.templatePath),
|
|
63
64
|
});
|
|
64
65
|
}
|
|
@@ -102,33 +103,34 @@ export class SimCloudFormationTemplateDeployer {
|
|
|
102
103
|
this.watches.stopAll();
|
|
103
104
|
}
|
|
104
105
|
async deployTemplateWithContext(properties) {
|
|
105
|
-
await this.createStackWithContext(
|
|
106
|
-
input: {
|
|
107
|
-
StackName: properties.stackName,
|
|
108
|
-
TemplateBody: jsonStringify(properties.template),
|
|
109
|
-
Parameters: Object.entries(properties.parameters ?? {}).map(([parameterKey, parameterValue]) => ({
|
|
110
|
-
ParameterKey: parameterKey,
|
|
111
|
-
ParameterValue: parameterValue,
|
|
112
|
-
})),
|
|
113
|
-
},
|
|
114
|
-
}, properties.cdkOutContext, properties.bindings, properties.caller);
|
|
106
|
+
await this.createStackWithContext(properties);
|
|
115
107
|
const stack = this.stacks.get(properties.stackName);
|
|
116
108
|
assertDefined(stack, `Sim CloudFormation Stack named ${properties.stackName}`);
|
|
117
109
|
await stack.waitForDeployComplete();
|
|
118
110
|
return stack;
|
|
119
111
|
}
|
|
120
|
-
async createStackWithContext(
|
|
112
|
+
async createStackWithContext(deployment) {
|
|
121
113
|
const handler = new CreateStackCommandHandler({
|
|
122
114
|
simAws: this.simAws,
|
|
123
115
|
accountRegionScope: this.accountRegionScope,
|
|
124
116
|
stacks: this.stacks,
|
|
125
117
|
background: this.background,
|
|
126
|
-
cdkOutContext,
|
|
127
|
-
bindings,
|
|
128
|
-
caller,
|
|
118
|
+
cdkOutContext: deployment.cdkOutContext,
|
|
119
|
+
bindings: deployment.bindings,
|
|
120
|
+
caller: deployment.caller,
|
|
121
|
+
resourceOrder: deployment.resourceOrder,
|
|
129
122
|
exports: this.exports,
|
|
130
123
|
});
|
|
131
|
-
return await handler.handle(
|
|
124
|
+
return await handler.handle({
|
|
125
|
+
input: {
|
|
126
|
+
StackName: deployment.stackName,
|
|
127
|
+
TemplateBody: jsonStringify(deployment.template),
|
|
128
|
+
Parameters: Object.entries(deployment.parameters ?? {}).map(([parameterKey, parameterValue]) => ({
|
|
129
|
+
ParameterKey: parameterKey,
|
|
130
|
+
ParameterValue: parameterValue,
|
|
131
|
+
})),
|
|
132
|
+
},
|
|
133
|
+
});
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
/**
|
|
@@ -5,6 +5,7 @@ import type { SimCfnBinding } from "../bind/sim-cfn-binding.js";
|
|
|
5
5
|
import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
6
6
|
import type { SimCfnTemplateFileWatchOptions } from "../watch/sim-cfn-template-watch.type.js";
|
|
7
7
|
import { type SimCfnTemplateFileTransform } from "./sim-cfn-template-file-transform.js";
|
|
8
|
+
import type { SimCfnResourceOrder } from "../stack/deploy/sim-cfn-resource-order.js";
|
|
8
9
|
export interface SimCloudFormationDeployTemplateFileProperties {
|
|
9
10
|
readonly templatePath: string;
|
|
10
11
|
readonly stackName?: SimCloudFormationStackName | string | undefined;
|
|
@@ -19,6 +20,16 @@ export interface SimCloudFormationDeployTemplateFileProperties {
|
|
|
19
20
|
* policy denying an Account's root principal then denies.
|
|
20
21
|
*/
|
|
21
22
|
readonly caller?: SimAwsCaller | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* The order Resources with no dependency between them are created in.
|
|
25
|
+
*
|
|
26
|
+
* CloudFormation is free to create them either way round, and the template's
|
|
27
|
+
* own order is what a deployment does by default. `reversed` starts each
|
|
28
|
+
* dependency batch from its last Resource, so a Stack that only deploys in
|
|
29
|
+
* the order its template happens to be written fails here rather than in the
|
|
30
|
+
* account. Declared dependencies and `DependsOn` are honoured either way.
|
|
31
|
+
*/
|
|
32
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
22
33
|
/**
|
|
23
34
|
* Adapt the parsed template before it is deployed, and again every time a
|
|
24
35
|
* watched file changes.
|
|
@@ -53,6 +64,7 @@ export interface SimCfnLoadedTemplateFile {
|
|
|
53
64
|
readonly parameters?: Record<string, string> | undefined;
|
|
54
65
|
readonly bindings?: readonly SimCfnBinding[] | undefined;
|
|
55
66
|
readonly caller?: SimAwsCaller | undefined;
|
|
67
|
+
readonly resourceOrder?: SimCfnResourceOrder | undefined;
|
|
56
68
|
readonly cdkOutContext?: SimCdkOutContext | undefined;
|
|
57
69
|
}
|
|
58
70
|
/**
|
|
@@ -16,7 +16,7 @@ export class SimCfnTemplateFileLoader {
|
|
|
16
16
|
*/
|
|
17
17
|
async load(properties) {
|
|
18
18
|
const deployment = simCfnTemplateFileDeployment(properties);
|
|
19
|
-
const { templatePath, parameters, bindings, caller } = deployment;
|
|
19
|
+
const { templatePath, parameters, bindings, caller, resourceOrder } = deployment;
|
|
20
20
|
const stackName = deployment.stackName ?? stackNameFromTemplatePath(templatePath);
|
|
21
21
|
// The template is named to a `yulin watch` supervisor, so re-synthing a
|
|
22
22
|
// stack restarts the process that deployed it. Nothing happens outside
|
|
@@ -32,6 +32,7 @@ export class SimCfnTemplateFileLoader {
|
|
|
32
32
|
parameters,
|
|
33
33
|
bindings,
|
|
34
34
|
caller,
|
|
35
|
+
resourceOrder,
|
|
35
36
|
cdkOutContext,
|
|
36
37
|
};
|
|
37
38
|
}
|
package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { SimCloudFrontCachePolicy } from "../../../../cloudfront/cache-policy/sim-cf-cache-policy.js";
|
|
3
|
+
import type { SimCfnResourceValueAdapter } from "../sim-cfn-resource-value-adapter.js";
|
|
4
|
+
interface SimCloudFrontCachePolicyCfnProperties {
|
|
5
|
+
readonly policy: SimCloudFrontCachePolicy;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* CloudFormation-facing behavior for an AWS::CloudFront::CachePolicy Resource.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimCloudFrontCachePolicyCfn implements SimCfnResourceValueAdapter {
|
|
11
|
+
private readonly policy;
|
|
12
|
+
constructor(properties: SimCloudFrontCachePolicyCfnProperties);
|
|
13
|
+
/**
|
|
14
|
+
* CloudFormation Ref for AWS::CloudFront::CachePolicy returns the policy ID,
|
|
15
|
+
* which is what a Cache Behavior's CachePolicyId wants.
|
|
16
|
+
*/
|
|
17
|
+
refValue(): SimCfnTemplateValue;
|
|
18
|
+
/**
|
|
19
|
+
* CloudFormation attributes for AWS::CloudFront::CachePolicy.
|
|
20
|
+
*/
|
|
21
|
+
attributeValue(attributeName: string): SimCfnTemplateValue;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudFormation-facing behavior for an AWS::CloudFront::CachePolicy Resource.
|
|
3
|
+
*/
|
|
4
|
+
export class SimCloudFrontCachePolicyCfn {
|
|
5
|
+
policy;
|
|
6
|
+
constructor(properties) {
|
|
7
|
+
this.policy = properties.policy;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* CloudFormation Ref for AWS::CloudFront::CachePolicy returns the policy ID,
|
|
11
|
+
* which is what a Cache Behavior's CachePolicyId wants.
|
|
12
|
+
*/
|
|
13
|
+
refValue() {
|
|
14
|
+
return this.policy.id;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* CloudFormation attributes for AWS::CloudFront::CachePolicy.
|
|
18
|
+
*/
|
|
19
|
+
attributeValue(attributeName) {
|
|
20
|
+
switch (attributeName) {
|
|
21
|
+
case "Id": {
|
|
22
|
+
return this.policy.id;
|
|
23
|
+
}
|
|
24
|
+
default: {
|
|
25
|
+
/* v8 ignore next */
|
|
26
|
+
return `${this.policy.id}.${attributeName}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js
CHANGED
|
@@ -4,6 +4,8 @@ import { SimCloudFrontFunction } from "../../../../cloudfront/cff/sim-cloudfront
|
|
|
4
4
|
import { SimCloudFrontFunctionCfn } from "./sim-cloudfront-function-cfn.js";
|
|
5
5
|
import { SimCloudFrontResponseHeadersPolicy } from "../../../../cloudfront/response-headers-policy/sim-cf-response-headers-policy.js";
|
|
6
6
|
import { SimCloudFrontResponseHeadersPolicyCfn } from "./sim-cloudfront-rh-policy-cfn.js";
|
|
7
|
+
import { SimCloudFrontCachePolicy } from "../../../../cloudfront/cache-policy/sim-cf-cache-policy.js";
|
|
8
|
+
import { SimCloudFrontCachePolicyCfn } from "./sim-cloudfront-cache-policy-cfn.js";
|
|
7
9
|
import { SimCloudFrontOriginAccessControl } from "../../../../cloudfront/origin-access-control/sim-cf-origin-access-control.js";
|
|
8
10
|
import { SimCloudFrontOriginAccessControlCfn } from "./sim-cloudfront-oac-cfn.js";
|
|
9
11
|
import { SimCloudFrontKeyValueStore } from "../../../../cloudfront/key-value-store/sim-cf-key-value-store.js";
|
|
@@ -28,6 +30,12 @@ export function cloudFrontValueAdapter(properties) {
|
|
|
28
30
|
policy: properties.simResource,
|
|
29
31
|
});
|
|
30
32
|
}
|
|
33
|
+
if (properties.type === "AWS::CloudFront::CachePolicy" &&
|
|
34
|
+
properties.simResource instanceof SimCloudFrontCachePolicy) {
|
|
35
|
+
return new SimCloudFrontCachePolicyCfn({
|
|
36
|
+
policy: properties.simResource,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
31
39
|
if (properties.type === "AWS::CloudFront::OriginAccessControl" &&
|
|
32
40
|
properties.simResource instanceof SimCloudFrontOriginAccessControl) {
|
|
33
41
|
return new SimCloudFrontOriginAccessControlCfn({
|
|
@@ -6,18 +6,25 @@ interface SimCfnGeneratedResourceNameProperties {
|
|
|
6
6
|
/**
|
|
7
7
|
* The name CloudFormation gives a Resource whose template does not name it.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* CloudFormation generates `<stack name>-<logical ID>-<random>`. The tail here
|
|
10
|
+
* is a hash of the other two parts rather than random characters. The same
|
|
11
|
+
* template deployed under the same stack name generates the same name again,
|
|
12
|
+
* and a test can read it back and compare. Everything else follows AWS. Two
|
|
12
13
|
* stacks deploying the same template get different names, because the stack
|
|
13
14
|
* name is part of it.
|
|
14
15
|
*
|
|
15
|
-
* Each service has its own limit on how long a name can be,
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* Each service has its own limit on how long a name can be, and CloudFormation
|
|
17
|
+
* reserves the last thirteen characters of it for the tail and its hyphen. What
|
|
18
|
+
* is left over goes to the stack name and the logical ID either side of one
|
|
19
|
+
* more hyphen, half each, the stack name rounding up and either taking what the
|
|
20
|
+
* other does not use. Where a service allows 64 characters, a long stack name
|
|
21
|
+
* and a long logical ID keep 25 each. The rule is inferred from names real
|
|
22
|
+
* CloudFormation produced, since AWS documents none of it.
|
|
23
|
+
*
|
|
24
|
+
* The tail is derived from the whole untrimmed name. That is what keeps two
|
|
25
|
+
* trimmed names apart. CDK puts its own disambiguating hash at the end of a
|
|
26
|
+
* logical ID, which is exactly what trimming cuts off, so without that two
|
|
27
|
+
* Resources in one stack could end up asking for the same name.
|
|
21
28
|
*/
|
|
22
29
|
export declare class SimCfnGeneratedResourceName {
|
|
23
30
|
private readonly stackName;
|
|
@@ -29,12 +36,22 @@ export declare class SimCfnGeneratedResourceName {
|
|
|
29
36
|
*/
|
|
30
37
|
get value(): string;
|
|
31
38
|
/**
|
|
32
|
-
* The
|
|
39
|
+
* The stack name and logical ID, trimmed to the room the tail leaves them.
|
|
40
|
+
*
|
|
41
|
+
* A name that already fits is kept whole. One that does not gives each part
|
|
42
|
+
* half of what is left. The stack name is trimmed rather than lost, since
|
|
43
|
+
* that is the part an IAM policy scoped by resource prefix matches on.
|
|
44
|
+
*/
|
|
45
|
+
private trimmed;
|
|
46
|
+
/**
|
|
47
|
+
* The tail the name ends with, derived from the whole untrimmed name.
|
|
33
48
|
*
|
|
34
49
|
* It is a hash rather than the random characters real CloudFormation uses, so
|
|
35
|
-
* the name stays the same between deployments of the same template.
|
|
50
|
+
* the name stays the same between deployments of the same template. Hex
|
|
51
|
+
* suits every service, since one that only allows lowercase takes it as it
|
|
52
|
+
* is.
|
|
36
53
|
*/
|
|
37
|
-
private
|
|
54
|
+
private tail;
|
|
38
55
|
/**
|
|
39
56
|
* The name before it is trimmed to the length the service allows.
|
|
40
57
|
*
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
/**
|
|
3
|
-
* How many characters
|
|
4
|
-
*
|
|
3
|
+
* How many characters the tail on the end of a generated name is, which is as
|
|
4
|
+
* many as the random characters real CloudFormation ends one with.
|
|
5
5
|
*/
|
|
6
|
-
const
|
|
6
|
+
const tailLength = 12;
|
|
7
7
|
/**
|
|
8
8
|
* The name CloudFormation gives a Resource whose template does not name it.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* CloudFormation generates `<stack name>-<logical ID>-<random>`. The tail here
|
|
11
|
+
* is a hash of the other two parts rather than random characters. The same
|
|
12
|
+
* template deployed under the same stack name generates the same name again,
|
|
13
|
+
* and a test can read it back and compare. Everything else follows AWS. Two
|
|
13
14
|
* stacks deploying the same template get different names, because the stack
|
|
14
15
|
* name is part of it.
|
|
15
16
|
*
|
|
16
|
-
* Each service has its own limit on how long a name can be,
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* Each service has its own limit on how long a name can be, and CloudFormation
|
|
18
|
+
* reserves the last thirteen characters of it for the tail and its hyphen. What
|
|
19
|
+
* is left over goes to the stack name and the logical ID either side of one
|
|
20
|
+
* more hyphen, half each, the stack name rounding up and either taking what the
|
|
21
|
+
* other does not use. Where a service allows 64 characters, a long stack name
|
|
22
|
+
* and a long logical ID keep 25 each. The rule is inferred from names real
|
|
23
|
+
* CloudFormation produced, since AWS documents none of it.
|
|
24
|
+
*
|
|
25
|
+
* The tail is derived from the whole untrimmed name. That is what keeps two
|
|
26
|
+
* trimmed names apart. CDK puts its own disambiguating hash at the end of a
|
|
27
|
+
* logical ID, which is exactly what trimming cuts off, so without that two
|
|
28
|
+
* Resources in one stack could end up asking for the same name.
|
|
22
29
|
*/
|
|
23
30
|
export class SimCfnGeneratedResourceName {
|
|
24
31
|
stackName;
|
|
@@ -33,24 +40,48 @@ export class SimCfnGeneratedResourceName {
|
|
|
33
40
|
* The generated name.
|
|
34
41
|
*/
|
|
35
42
|
get value() {
|
|
43
|
+
const tail = this.tail();
|
|
44
|
+
if (this.maximumLength <= tailLength + 1) {
|
|
45
|
+
return tail.slice(0, this.maximumLength);
|
|
46
|
+
}
|
|
47
|
+
return `${this.trimmed()}-${tail}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The stack name and logical ID, trimmed to the room the tail leaves them.
|
|
51
|
+
*
|
|
52
|
+
* A name that already fits is kept whole. One that does not gives each part
|
|
53
|
+
* half of what is left. The stack name is trimmed rather than lost, since
|
|
54
|
+
* that is the part an IAM policy scoped by resource prefix matches on.
|
|
55
|
+
*/
|
|
56
|
+
trimmed() {
|
|
36
57
|
const composed = this.composed();
|
|
37
|
-
|
|
58
|
+
const budget = this.maximumLength - tailLength - 1;
|
|
59
|
+
if (composed.length <= budget) {
|
|
38
60
|
return composed;
|
|
39
61
|
}
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
if (this.stackName === undefined || this.stackName === "") {
|
|
63
|
+
return composed.slice(0, budget);
|
|
64
|
+
}
|
|
65
|
+
const shared = budget - 1;
|
|
66
|
+
const stackNameKept = Math.min(this.stackName.length, shared - Math.min(this.logicalId.length, Math.floor(shared / 2)));
|
|
67
|
+
return [
|
|
68
|
+
this.stackName.slice(0, stackNameKept),
|
|
69
|
+
this.logicalId.slice(0, shared - stackNameKept),
|
|
70
|
+
].join("-");
|
|
42
71
|
}
|
|
43
72
|
/**
|
|
44
|
-
* The tail
|
|
73
|
+
* The tail the name ends with, derived from the whole untrimmed name.
|
|
45
74
|
*
|
|
46
75
|
* It is a hash rather than the random characters real CloudFormation uses, so
|
|
47
|
-
* the name stays the same between deployments of the same template.
|
|
76
|
+
* the name stays the same between deployments of the same template. Hex
|
|
77
|
+
* suits every service, since one that only allows lowercase takes it as it
|
|
78
|
+
* is.
|
|
48
79
|
*/
|
|
49
|
-
|
|
80
|
+
tail() {
|
|
50
81
|
return createHash("sha1")
|
|
51
|
-
.update(composed)
|
|
82
|
+
.update(this.composed())
|
|
52
83
|
.digest("hex")
|
|
53
|
-
.slice(0,
|
|
84
|
+
.slice(0, tailLength);
|
|
54
85
|
}
|
|
55
86
|
/**
|
|
56
87
|
* The name before it is trimmed to the length the service allows.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
|
|
2
|
+
/**
|
|
3
|
+
* The order the Resources in one dependency batch are started in.
|
|
4
|
+
*
|
|
5
|
+
* CloudFormation creates Resources with no dependency between them in whatever
|
|
6
|
+
* order it likes, so a template whose Resources only work in the order it wrote
|
|
7
|
+
* them deploys some of the time. `template` is the order the template declared,
|
|
8
|
+
* which is what a deployment does unless it is asked for something else.
|
|
9
|
+
* `reversed` starts each batch from its last Resource, which is the other order
|
|
10
|
+
* a pair with nothing between them could be created in.
|
|
11
|
+
*
|
|
12
|
+
* Dependencies are unaffected either way: a Resource still waits for everything
|
|
13
|
+
* it refers to and everything its `DependsOn` names.
|
|
14
|
+
*/
|
|
15
|
+
export type SimCfnResourceOrder = "template" | "reversed";
|
|
16
|
+
/**
|
|
17
|
+
* The Resources of one batch, in the order the deployment asked for.
|
|
18
|
+
*/
|
|
19
|
+
export declare function simCfnOrderedResources(resources: readonly SimCfnResource[], order: SimCfnResourceOrder | undefined): readonly SimCfnResource[];
|