@kensio/yulin 1.20.16 → 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/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 +17 -6
- package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
- package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +9 -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 +9 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
- 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 +11 -3
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
- 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 +14 -5
- package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -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 +3 -1
- package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
- package/dist/service/iam/sim-iam-account-parts.js +1 -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/command/assume-role/assume-role.handler.d.ts +5 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
- package/dist/service/sts/sim-sts.d.ts +9 -0
- package/dist/service/sts/sim-sts.js +4 -0
- package/dist/util/memo/bounded-memo.d.ts +36 -0
- package/dist/util/memo/bounded-memo.js +58 -0
- package/docs/sdk/README.md +3 -1
- package/docs/services/cloudformation/README.md +196 -11
- package/docs/services/cloudfront/README.md +230 -6
- package/docs/services/cloudwatch/README.md +6 -4
- package/docs/services/cognito/README.md +8 -7
- package/docs/services/dynamodb/README.md +6 -5
- package/docs/services/ecs/README.md +20 -9
- package/docs/services/elbv2/README.md +6 -2
- package/docs/services/eventbridge/README.md +9 -1
- package/docs/services/firehose/README.md +9 -3
- package/docs/services/glue/README.md +6 -0
- package/docs/services/iam/README.md +322 -27
- package/docs/services/kinesis/README.md +3 -2
- package/docs/services/kms/README.md +7 -2
- package/docs/services/lambda/README.md +76 -2
- package/docs/services/logs/README.md +16 -2
- package/docs/services/s3/README.md +7 -2
- package/docs/services/scheduler/README.md +12 -4
- package/docs/services/secretsmanager/README.md +6 -3
- package/docs/services/ses/README.md +3 -1
- package/docs/services/sns/README.md +5 -5
- package/docs/services/sqs/README.md +5 -5
- package/docs/services/ssm/README.md +40 -16
- package/docs/services/stepfunctions/README.md +11 -2
- package/docs/services/wafv2/README.md +5 -3
- package/package.json +1 -1
- package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { SimCloudFrontCachePolicy, } from "./sim-cf-cache-policy.js";
|
|
2
|
+
/**
|
|
3
|
+
* The IDs AWS publishes for its managed cache policies.
|
|
4
|
+
*
|
|
5
|
+
* A template names one of these directly. CDK's `CachePolicy` statics carry
|
|
6
|
+
* the same seven, and synthesize the ID into a Behavior's `CachePolicyId` with
|
|
7
|
+
* no Resource behind it.
|
|
8
|
+
*/
|
|
9
|
+
export const simCfManagedCachePolicyIds = {
|
|
10
|
+
amplify: "2e54312d-136d-493c-8eb9-b001f22f67d2",
|
|
11
|
+
cachingOptimized: "658327ea-f89d-4fab-a63d-7e88639e58f6",
|
|
12
|
+
cachingOptimizedForUncompressedObjects: "b2884449-e4de-46a7-ac36-70bc7f1ddd6d",
|
|
13
|
+
cachingDisabled: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
|
|
14
|
+
elementalMediaPackage: "08627262-05a9-4f76-9ded-b50ca2e3a84f",
|
|
15
|
+
useOriginCacheControlHeaders: "83da9c7e-98b4-4e11-a168-04f0df8e2c65",
|
|
16
|
+
useOriginCacheControlHeadersQueryStrings: "4cc15a8a-d715-48a4-82b8-cc0b614638fe",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The seven managed cache policies, built fresh for one simulated CloudFront.
|
|
20
|
+
*
|
|
21
|
+
* CloudFront owns these and every account has them, so a Behavior can name one
|
|
22
|
+
* without a template creating anything. Each carries the ID and the name AWS
|
|
23
|
+
* publishes for it. The cache key and the TTLs behind each one are left out,
|
|
24
|
+
* along with those of a policy a template creates.
|
|
25
|
+
*
|
|
26
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html
|
|
27
|
+
*/
|
|
28
|
+
export function simCfManagedCachePolicies() {
|
|
29
|
+
const policies = [
|
|
30
|
+
managedCachePolicy(simCfManagedCachePolicyIds.amplify, "Amplify"),
|
|
31
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimized, "CachingOptimized"),
|
|
32
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimizedForUncompressedObjects, "CachingOptimizedForUncompressedObjects"),
|
|
33
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingDisabled, "CachingDisabled"),
|
|
34
|
+
managedCachePolicy(simCfManagedCachePolicyIds.elementalMediaPackage, "Elemental-MediaPackage"),
|
|
35
|
+
managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeaders, "UseOriginCacheControlHeaders"),
|
|
36
|
+
managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeadersQueryStrings, "UseOriginCacheControlHeaders-QueryStrings"),
|
|
37
|
+
];
|
|
38
|
+
return new Map(policies.map((policy) => [policy.id, policy]));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* One managed policy, under the ID and the name AWS gives it.
|
|
42
|
+
*/
|
|
43
|
+
function managedCachePolicy(id, name) {
|
|
44
|
+
return new SimCloudFrontCachePolicy({
|
|
45
|
+
id: id,
|
|
46
|
+
name,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -7,6 +7,14 @@ type FunctionCodeInput = SimCreateFunctionCommand["input"]["FunctionCode"];
|
|
|
7
7
|
* CloudFront CreateFunction Command input FunctionCode.
|
|
8
8
|
*/
|
|
9
9
|
export declare function makeCffFunctionCodeInput(handlerFunction: CloudFrontFunction.Handler): FunctionCodeInput;
|
|
10
|
+
/**
|
|
11
|
+
* The source a Function reports as the code it was created with.
|
|
12
|
+
*
|
|
13
|
+
* A Function created from source keeps the bytes it was given. One created
|
|
14
|
+
* from a handler function reference was never given any source, so what it
|
|
15
|
+
* keeps is that handler's own source text, which is the code it runs.
|
|
16
|
+
*/
|
|
17
|
+
export declare function cffFunctionCodeSource(functionCodeInput: FunctionCodeInput): Uint8Array;
|
|
10
18
|
/**
|
|
11
19
|
* A little trick to allow passing a handler function into CreateFunctionCommand
|
|
12
20
|
* input as if it were a Uint8Array without TypeScript complaining.
|
|
@@ -9,6 +9,19 @@ export function makeCffFunctionCodeInput(handlerFunction) {
|
|
|
9
9
|
stowaway.stowawayHandlerFunction(handlerFunction);
|
|
10
10
|
return stowaway;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* The source a Function reports as the code it was created with.
|
|
14
|
+
*
|
|
15
|
+
* A Function created from source keeps the bytes it was given. One created
|
|
16
|
+
* from a handler function reference was never given any source, so what it
|
|
17
|
+
* keeps is that handler's own source text, which is the code it runs.
|
|
18
|
+
*/
|
|
19
|
+
export function cffFunctionCodeSource(functionCodeInput) {
|
|
20
|
+
if (functionCodeInput instanceof CffUint8ArrayStowaway) {
|
|
21
|
+
return Buffer.from(functionCodeInput.handlerFunction.toString());
|
|
22
|
+
}
|
|
23
|
+
return functionCodeInput ?? new Uint8Array();
|
|
24
|
+
}
|
|
12
25
|
/**
|
|
13
26
|
* A little trick to allow passing a handler function into CreateFunctionCommand
|
|
14
27
|
* input as if it were a Uint8Array without TypeScript complaining.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../util/background/background.js";
|
|
2
|
+
import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
3
|
+
import type { SimAwsAccountId } from "../../aws/sim-aws-account.js";
|
|
4
|
+
import type { SimIamInterServiceAuthZ } from "../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
5
|
+
import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "../command/create-function/create-function.command.js";
|
|
6
|
+
import { type SimCloudFrontFunctionMap } from "../command/create-function/create-function.handler.js";
|
|
7
|
+
import type { SimDeleteFunctionCommand, SimDeleteFunctionCommandOutput } from "../command/delete-function/delete-function.command.js";
|
|
8
|
+
import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput, SimGetFunctionCommand, SimGetFunctionCommandOutput, SimListFunctionsCommand, SimListFunctionsCommandOutput } from "../command/function/sim-cf-function-command.types.js";
|
|
9
|
+
import type { SimCloudFrontKeyValueStoreRegistry } from "../key-value-store/sim-cf-key-value-store-registry.js";
|
|
10
|
+
interface SimCfFunctionCommandsProperties {
|
|
11
|
+
readonly accountId: SimAwsAccountId;
|
|
12
|
+
readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
|
|
13
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
14
|
+
readonly background: BackgroundScheduler;
|
|
15
|
+
readonly keyValueStores: SimCloudFrontKeyValueStoreRegistry;
|
|
16
|
+
}
|
|
17
|
+
interface FunctionRequestOptions {
|
|
18
|
+
readonly caller?: SimAwsCaller;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The CloudFront Function commands on the CloudFront client.
|
|
22
|
+
*
|
|
23
|
+
* They are grouped here rather than beside the Distribution commands on
|
|
24
|
+
* SimCloudFrontCommands because they work on their own state, the Account's
|
|
25
|
+
* Functions, and because there are enough of them to be their own thing.
|
|
26
|
+
*/
|
|
27
|
+
export declare class SimCfFunctionCommands {
|
|
28
|
+
private readonly writeState;
|
|
29
|
+
private readonly access;
|
|
30
|
+
constructor(properties: SimCfFunctionCommandsProperties);
|
|
31
|
+
/**
|
|
32
|
+
* Handle a Create Function Command from the SDK.
|
|
33
|
+
*/
|
|
34
|
+
createFunction(command: SimCreateFunctionCommand, options?: FunctionRequestOptions): Promise<SimCreateFunctionCommandOutput>;
|
|
35
|
+
/**
|
|
36
|
+
* Handle a Delete Function Command from the SDK.
|
|
37
|
+
*/
|
|
38
|
+
deleteFunction(command: SimDeleteFunctionCommand, options?: FunctionRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
|
|
39
|
+
/**
|
|
40
|
+
* Handle a List Functions Command from the SDK.
|
|
41
|
+
*/
|
|
42
|
+
listFunctions(command: SimListFunctionsCommand, options?: FunctionRequestOptions): Promise<SimListFunctionsCommandOutput>;
|
|
43
|
+
/**
|
|
44
|
+
* Handle a Describe Function Command from the SDK.
|
|
45
|
+
*/
|
|
46
|
+
describeFunction(command: SimDescribeFunctionCommand, options?: FunctionRequestOptions): Promise<SimDescribeFunctionCommandOutput>;
|
|
47
|
+
/**
|
|
48
|
+
* Handle a Get Function Command from the SDK.
|
|
49
|
+
*/
|
|
50
|
+
getFunction(command: SimGetFunctionCommand, options?: FunctionRequestOptions): Promise<SimGetFunctionCommandOutput>;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { CreateFunctionCommandHandler, } from "../command/create-function/create-function.handler.js";
|
|
2
|
+
import { DeleteFunctionCommandHandler } from "../command/delete-function/delete-function.handler.js";
|
|
3
|
+
import { SimCfDescribeFunction } from "../command/function/sim-cf-describe-function.js";
|
|
4
|
+
import { SimCfFunctionAccess } from "../command/function/sim-cf-function-access.js";
|
|
5
|
+
import { SimCfGetFunction } from "../command/function/sim-cf-get-function.js";
|
|
6
|
+
import { SimCfListFunctions } from "../command/function/sim-cf-list-functions.js";
|
|
7
|
+
/**
|
|
8
|
+
* The CloudFront Function commands on the CloudFront client.
|
|
9
|
+
*
|
|
10
|
+
* They are grouped here rather than beside the Distribution commands on
|
|
11
|
+
* SimCloudFrontCommands because they work on their own state, the Account's
|
|
12
|
+
* Functions, and because there are enough of them to be their own thing.
|
|
13
|
+
*/
|
|
14
|
+
export class SimCfFunctionCommands {
|
|
15
|
+
writeState;
|
|
16
|
+
access;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.writeState = properties;
|
|
19
|
+
this.access = new SimCfFunctionAccess(properties);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handle a Create Function Command from the SDK.
|
|
23
|
+
*/
|
|
24
|
+
async createFunction(command, options) {
|
|
25
|
+
return await new CreateFunctionCommandHandler(this.writeState).handle(command, options);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handle a Delete Function Command from the SDK.
|
|
29
|
+
*/
|
|
30
|
+
async deleteFunction(command, options) {
|
|
31
|
+
return await new DeleteFunctionCommandHandler(this.writeState).handle(command, options);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Handle a List Functions Command from the SDK.
|
|
35
|
+
*/
|
|
36
|
+
async listFunctions(command, options) {
|
|
37
|
+
return await new SimCfListFunctions(this.access).handle(command, options);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handle a Describe Function Command from the SDK.
|
|
41
|
+
*/
|
|
42
|
+
async describeFunction(command, options) {
|
|
43
|
+
return await new SimCfDescribeFunction(this.access).handle(command, options);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Handle a Get Function Command from the SDK.
|
|
47
|
+
*/
|
|
48
|
+
async getFunction(command, options) {
|
|
49
|
+
return await new SimCfGetFunction(this.access).handle(command, options);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The JavaScript runtime a CloudFront Function is written against.
|
|
3
|
+
*/
|
|
4
|
+
export type SimCloudFrontFunctionRuntime = "cloudfront-js-1.0" | "cloudfront-js-2.0";
|
|
5
|
+
export interface SimCffConfigurationProperties {
|
|
6
|
+
/** The `FunctionConfig` comment, which CloudFront requires and reports. */
|
|
7
|
+
readonly comment?: string | undefined;
|
|
8
|
+
/** The `FunctionConfig` runtime this Function is written against. */
|
|
9
|
+
readonly runtime?: SimCloudFrontFunctionRuntime | undefined;
|
|
10
|
+
/** The source this Function was created with, which GetFunction reports. */
|
|
11
|
+
readonly functionCode?: Uint8Array | undefined;
|
|
12
|
+
/** When this Function was created, off the simulation's clock. */
|
|
13
|
+
readonly createdTime?: Date | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* What a CloudFront Function was created with, which every read of it reports.
|
|
17
|
+
*
|
|
18
|
+
* This is the `FunctionConfig` and `FunctionMetadata` pair the API answers
|
|
19
|
+
* with, held together because they are written once at creation and read
|
|
20
|
+
* together afterwards. The Function itself is what runs; this is what it says
|
|
21
|
+
* about itself.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimCffConfiguration {
|
|
24
|
+
readonly comment: string;
|
|
25
|
+
readonly runtime: SimCloudFrontFunctionRuntime;
|
|
26
|
+
readonly functionCode: Uint8Array;
|
|
27
|
+
/**
|
|
28
|
+
* When this Function was created, and when it was last changed.
|
|
29
|
+
*
|
|
30
|
+
* They are the same instant here. What moves the modified time apart from
|
|
31
|
+
* the created time in CloudFront is UpdateFunction and PublishFunction, and
|
|
32
|
+
* neither is simulated yet.
|
|
33
|
+
*/
|
|
34
|
+
readonly createdTime: Date;
|
|
35
|
+
readonly lastModifiedTime: Date;
|
|
36
|
+
/**
|
|
37
|
+
* The version of this Function a write has to carry to be accepted.
|
|
38
|
+
*/
|
|
39
|
+
readonly etag: string;
|
|
40
|
+
constructor(properties?: SimCffConfigurationProperties);
|
|
41
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { makeSimCloudFrontETag } from "../sim-cf-etag.js";
|
|
2
|
+
/**
|
|
3
|
+
* What a CloudFront Function was created with, which every read of it reports.
|
|
4
|
+
*
|
|
5
|
+
* This is the `FunctionConfig` and `FunctionMetadata` pair the API answers
|
|
6
|
+
* with, held together because they are written once at creation and read
|
|
7
|
+
* together afterwards. The Function itself is what runs; this is what it says
|
|
8
|
+
* about itself.
|
|
9
|
+
*/
|
|
10
|
+
export class SimCffConfiguration {
|
|
11
|
+
comment;
|
|
12
|
+
runtime;
|
|
13
|
+
functionCode;
|
|
14
|
+
/**
|
|
15
|
+
* When this Function was created, and when it was last changed.
|
|
16
|
+
*
|
|
17
|
+
* They are the same instant here. What moves the modified time apart from
|
|
18
|
+
* the created time in CloudFront is UpdateFunction and PublishFunction, and
|
|
19
|
+
* neither is simulated yet.
|
|
20
|
+
*/
|
|
21
|
+
createdTime;
|
|
22
|
+
lastModifiedTime;
|
|
23
|
+
/**
|
|
24
|
+
* The version of this Function a write has to carry to be accepted.
|
|
25
|
+
*/
|
|
26
|
+
etag = makeSimCloudFrontETag();
|
|
27
|
+
constructor(properties = {}) {
|
|
28
|
+
this.comment = properties.comment ?? "";
|
|
29
|
+
this.runtime = properties.runtime ?? "cloudfront-js-2.0";
|
|
30
|
+
this.functionCode = properties.functionCode ?? new Uint8Array();
|
|
31
|
+
this.createdTime = properties.createdTime ?? new Date();
|
|
32
|
+
this.lastModifiedTime = this.createdTime;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SimCloudFrontFunction } from "./sim-cloudfront-function.js";
|
|
2
|
+
/**
|
|
3
|
+
* The two stages a CloudFront Function can be read from.
|
|
4
|
+
*
|
|
5
|
+
* A Function is created into DEVELOPMENT and reaches LIVE once it is
|
|
6
|
+
* published. LIVE is the copy a Distribution runs.
|
|
7
|
+
*/
|
|
8
|
+
export type SimCloudFrontFunctionStage = "DEVELOPMENT" | "LIVE";
|
|
9
|
+
/**
|
|
10
|
+
* Read the stage a request asked for.
|
|
11
|
+
*
|
|
12
|
+
* CloudFront defaults an omitted `Stage` to DEVELOPMENT, the copy a Function
|
|
13
|
+
* is created into, and refuses a value that names neither stage.
|
|
14
|
+
*/
|
|
15
|
+
export declare function simCffRequestedStage(stage: string | undefined): SimCloudFrontFunctionStage;
|
|
16
|
+
/**
|
|
17
|
+
* Whether a Function can be read from a stage.
|
|
18
|
+
*
|
|
19
|
+
* Every Function is in DEVELOPMENT from the moment it is created. It reaches
|
|
20
|
+
* LIVE once it is published, so a Function still waiting to publish answers to
|
|
21
|
+
* DEVELOPMENT alone.
|
|
22
|
+
*/
|
|
23
|
+
export declare function simCffInStage(cloudFrontFunction: SimCloudFrontFunction, stage: SimCloudFrontFunctionStage): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SimCloudFrontInvalidArgument } from "../error/sim-cloudfront.error.js";
|
|
2
|
+
const simCffStages = new Set([
|
|
3
|
+
"DEVELOPMENT",
|
|
4
|
+
"LIVE",
|
|
5
|
+
]);
|
|
6
|
+
/**
|
|
7
|
+
* Read the stage a request asked for.
|
|
8
|
+
*
|
|
9
|
+
* CloudFront defaults an omitted `Stage` to DEVELOPMENT, the copy a Function
|
|
10
|
+
* is created into, and refuses a value that names neither stage.
|
|
11
|
+
*/
|
|
12
|
+
export function simCffRequestedStage(stage) {
|
|
13
|
+
if (stage === undefined) {
|
|
14
|
+
return "DEVELOPMENT";
|
|
15
|
+
}
|
|
16
|
+
if (!simCffStages.has(stage)) {
|
|
17
|
+
throw new SimCloudFrontInvalidArgument(`CloudFront Function stage ${stage} is neither DEVELOPMENT nor LIVE`);
|
|
18
|
+
}
|
|
19
|
+
return stage;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Whether a Function can be read from a stage.
|
|
23
|
+
*
|
|
24
|
+
* Every Function is in DEVELOPMENT from the moment it is created. It reaches
|
|
25
|
+
* LIVE once it is published, so a Function still waiting to publish answers to
|
|
26
|
+
* DEVELOPMENT alone.
|
|
27
|
+
*/
|
|
28
|
+
export function simCffInStage(cloudFrontFunction, stage) {
|
|
29
|
+
return stage === "DEVELOPMENT" || cloudFrontFunction.status !== "UNPUBLISHED";
|
|
30
|
+
}
|
|
@@ -4,9 +4,10 @@ import type { Brand } from "../../../util/brand.type.js";
|
|
|
4
4
|
import type { SimArn } from "../../aws/arn.js";
|
|
5
5
|
import { type SimAwsAccountId } from "../../aws/sim-aws-account.js";
|
|
6
6
|
import type { SimCloudFrontKeyValueStore } from "../key-value-store/sim-cf-key-value-store.js";
|
|
7
|
+
import { SimCffConfiguration, type SimCffConfigurationProperties } from "./sim-cff-configuration.js";
|
|
7
8
|
export type SimCloudFrontFunctionName = Brand<string, "SimCloudFrontFunctionName">;
|
|
8
9
|
export type CloudFrontFunctionStatus = "UNPUBLISHED" | "UNASSOCIATED" | "ASSOCIATED";
|
|
9
|
-
interface SimCloudFrontFunctionProperties {
|
|
10
|
+
interface SimCloudFrontFunctionProperties extends SimCffConfigurationProperties {
|
|
10
11
|
name: SimCloudFrontFunctionName | string;
|
|
11
12
|
status?: CloudFrontFunctionStatus;
|
|
12
13
|
readonly accountId?: SimAwsAccountId;
|
|
@@ -22,6 +23,10 @@ export declare class SimCloudFrontFunction {
|
|
|
22
23
|
#private;
|
|
23
24
|
readonly name: SimCloudFrontFunctionName;
|
|
24
25
|
readonly accountId: SimAwsAccountId;
|
|
26
|
+
/**
|
|
27
|
+
* What this Function was created with, which every read of it reports.
|
|
28
|
+
*/
|
|
29
|
+
readonly config: SimCffConfiguration;
|
|
25
30
|
private readonly handlerFunction;
|
|
26
31
|
private readonly eventAdapter;
|
|
27
32
|
private readonly associatedKeyValueStore;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimCffEventAdapter } from "./adapter/sim-cff-event-adapter.js";
|
|
2
2
|
import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
|
|
3
|
+
import { SimCffConfiguration, } from "./sim-cff-configuration.js";
|
|
3
4
|
import { cffCloudFrontModule } from "./kvs/cff-cloudfront-module.js";
|
|
4
5
|
import { simCffCloudFrontGlobal } from "./kvs/sim-cff-cloudfront-global.js";
|
|
5
6
|
export const defaultCffHandler = (event) => {
|
|
@@ -14,6 +15,10 @@ export const defaultCffHandler = (event) => {
|
|
|
14
15
|
export class SimCloudFrontFunction {
|
|
15
16
|
name;
|
|
16
17
|
accountId;
|
|
18
|
+
/**
|
|
19
|
+
* What this Function was created with, which every read of it reports.
|
|
20
|
+
*/
|
|
21
|
+
config;
|
|
17
22
|
#status;
|
|
18
23
|
handlerFunction;
|
|
19
24
|
eventAdapter;
|
|
@@ -23,6 +28,7 @@ export class SimCloudFrontFunction {
|
|
|
23
28
|
this.name = name;
|
|
24
29
|
this.#status = status;
|
|
25
30
|
this.accountId = accountId;
|
|
31
|
+
this.config = new SimCffConfiguration(properties);
|
|
26
32
|
this.handlerFunction = handlerFunction;
|
|
27
33
|
this.eventAdapter = eventAdapter;
|
|
28
34
|
this.associatedKeyValueStore = properties.keyValueStore;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
import { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
|
|
4
|
+
/**
|
|
5
|
+
* Reads an AWS::CloudFront::CachePolicy Resource into a simulated policy.
|
|
6
|
+
*
|
|
7
|
+
* `Name` and `Comment` are what the policy carries. The cache key sections and
|
|
8
|
+
* the TTLs are read past: what they configure is a cache this simulation has
|
|
9
|
+
* yet to grow. A Resource missing its `Name` is refused, as CloudFormation
|
|
10
|
+
* refuses one.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimCfnCfCachePolicyConfig {
|
|
13
|
+
private readonly resource;
|
|
14
|
+
private readonly properties;
|
|
15
|
+
constructor(properties: {
|
|
16
|
+
readonly resource: SimCfnResource;
|
|
17
|
+
readonly properties: SimCfnTemplateValueRecord;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Build the simulated policy this Resource describes.
|
|
21
|
+
*/
|
|
22
|
+
build(): SimCloudFrontCachePolicy;
|
|
23
|
+
/**
|
|
24
|
+
* Refuse this Resource, saying which part of it could not be read.
|
|
25
|
+
*/
|
|
26
|
+
private refuse;
|
|
27
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isRecord } from "../../../../util/type-guard/record.js";
|
|
2
|
+
import { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
|
|
3
|
+
/**
|
|
4
|
+
* Reads an AWS::CloudFront::CachePolicy Resource into a simulated policy.
|
|
5
|
+
*
|
|
6
|
+
* `Name` and `Comment` are what the policy carries. The cache key sections and
|
|
7
|
+
* the TTLs are read past: what they configure is a cache this simulation has
|
|
8
|
+
* yet to grow. A Resource missing its `Name` is refused, as CloudFormation
|
|
9
|
+
* refuses one.
|
|
10
|
+
*/
|
|
11
|
+
export class SimCfnCfCachePolicyConfig {
|
|
12
|
+
resource;
|
|
13
|
+
properties;
|
|
14
|
+
constructor(properties) {
|
|
15
|
+
this.resource = properties.resource;
|
|
16
|
+
this.properties = properties.properties;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build the simulated policy this Resource describes.
|
|
20
|
+
*/
|
|
21
|
+
build() {
|
|
22
|
+
const config = this.properties["CachePolicyConfig"];
|
|
23
|
+
if (!isRecord(config)) {
|
|
24
|
+
return this.refuse("CachePolicyConfig must be an object");
|
|
25
|
+
}
|
|
26
|
+
const name = config["Name"];
|
|
27
|
+
if (typeof name !== "string") {
|
|
28
|
+
return this.refuse("CachePolicyConfig needs a string Name");
|
|
29
|
+
}
|
|
30
|
+
const comment = config["Comment"];
|
|
31
|
+
return new SimCloudFrontCachePolicy({
|
|
32
|
+
name,
|
|
33
|
+
...(typeof comment === "string" && { comment }),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Refuse this Resource, saying which part of it could not be read.
|
|
38
|
+
*/
|
|
39
|
+
refuse(detail) {
|
|
40
|
+
throw new Error(`Invalid AWS::CloudFront::CachePolicy ${this.resource.logicalId}: ${detail}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
4
|
+
import type { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
|
|
5
|
+
interface SimCfnCfCachePolicyCreatorProperties {
|
|
6
|
+
readonly cloudFront: SimCloudFront;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates simulated cache policies from AWS::CloudFront::CachePolicy
|
|
10
|
+
* Resources.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimCfnCfCachePolicyCreator {
|
|
13
|
+
private readonly cloudFront;
|
|
14
|
+
constructor(properties: SimCfnCfCachePolicyCreatorProperties);
|
|
15
|
+
/**
|
|
16
|
+
* Create and store the policy one Resource describes.
|
|
17
|
+
*/
|
|
18
|
+
create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCloudFrontCachePolicy;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a policy created from a Resource.
|
|
21
|
+
*/
|
|
22
|
+
delete(resource: SimCfnResource): void;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SimCfnCfCachePolicyConfig } from "./sim-cfn-cf-cache-policy-config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates simulated cache policies from AWS::CloudFront::CachePolicy
|
|
4
|
+
* Resources.
|
|
5
|
+
*/
|
|
6
|
+
export class SimCfnCfCachePolicyCreator {
|
|
7
|
+
cloudFront;
|
|
8
|
+
constructor(properties) {
|
|
9
|
+
this.cloudFront = properties.cloudFront;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create and store the policy one Resource describes.
|
|
13
|
+
*/
|
|
14
|
+
create(resource, properties) {
|
|
15
|
+
const policy = new SimCfnCfCachePolicyConfig({
|
|
16
|
+
resource,
|
|
17
|
+
properties,
|
|
18
|
+
}).build();
|
|
19
|
+
this.cloudFront.addCachePolicy(policy);
|
|
20
|
+
return policy;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Remove a policy created from a Resource.
|
|
24
|
+
*/
|
|
25
|
+
delete(resource) {
|
|
26
|
+
const policy = resource.simResource;
|
|
27
|
+
if (policy === undefined) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.cloudFront.removeCachePolicy(policy.id);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -2,8 +2,8 @@ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-re
|
|
|
2
2
|
import type { SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
|
|
3
3
|
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
4
4
|
/**
|
|
5
|
-
* The DistributionConfig to deploy, without a
|
|
6
|
-
* a
|
|
5
|
+
* The DistributionConfig to deploy, without a policy ID naming a response
|
|
6
|
+
* headers policy or a cache policy this simulation does not hold.
|
|
7
7
|
*
|
|
8
8
|
* `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
|
|
9
9
|
* a Distribution deployed from a template is the one place that refusal costs
|
|
@@ -14,10 +14,11 @@ import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
|
14
14
|
* make with it. That is the same reason an absent `WebACLId` is left out here.
|
|
15
15
|
*
|
|
16
16
|
* So the property is left off that Behavior and recorded on
|
|
17
|
-
* `stack.ignoredProperties`. The Behavior deploys and
|
|
18
|
-
*
|
|
17
|
+
* `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
|
|
18
|
+
* the record. CloudFront's managed policies count as held, so a Behavior
|
|
19
|
+
* naming one keeps it.
|
|
19
20
|
*
|
|
20
|
-
* One Behavior losing
|
|
21
|
-
*
|
|
21
|
+
* One Behavior losing a policy leaves the others holding theirs, and a
|
|
22
|
+
* Behavior losing one kind of policy keeps the other.
|
|
22
23
|
*/
|
|
23
|
-
export declare function
|
|
24
|
+
export declare function simCfnCfDistroWithHeldBehaviorPolicies(resource: SimCfnResource, distributionConfig: SimCloudFrontDistributionConfig, cloudFront: SimCloudFront): SimCloudFrontDistributionConfig;
|
|
@@ -1,39 +1,12 @@
|
|
|
1
1
|
import { normalizeSimCfList } from "../../command/create-distribution/sim-cf-normalize-list.js";
|
|
2
|
+
import { SimCfnCfDistroPolicyDrops } from "./sim-cfn-cf-distro-policy-drops.js";
|
|
2
3
|
/**
|
|
3
4
|
* The path a dropped policy on the default Behavior is recorded under.
|
|
4
5
|
*/
|
|
5
6
|
const defaultBehaviorPath = "DistributionConfig.DefaultCacheBehavior";
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
class SimCfnCfDistroPolicyDrops {
|
|
11
|
-
resource;
|
|
12
|
-
cloudFront;
|
|
13
|
-
count = 0;
|
|
14
|
-
constructor(resource, cloudFront) {
|
|
15
|
-
this.resource = resource;
|
|
16
|
-
this.cloudFront = cloudFront;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* One Behavior, keeping a policy that is here and dropping one that is not.
|
|
20
|
-
*/
|
|
21
|
-
heldPolicy(behavior, behaviorPath) {
|
|
22
|
-
const policyId = behavior.ResponseHeadersPolicyId;
|
|
23
|
-
if (policyId === undefined ||
|
|
24
|
-
this.cloudFront.getResponseHeadersPolicyById(policyId) !== undefined) {
|
|
25
|
-
return behavior;
|
|
26
|
-
}
|
|
27
|
-
this.count += 1;
|
|
28
|
-
this.resource.ignoreProperty(`${behaviorPath}.ResponseHeadersPolicyId`, `response headers policy ${policyId} is not held by this simulation, ` +
|
|
29
|
-
`so the Behavior is deployed without one and serves every response ` +
|
|
30
|
-
`without the headers that policy would have set`);
|
|
31
|
-
return { ...behavior, ResponseHeadersPolicyId: undefined };
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The DistributionConfig to deploy, without a `ResponseHeadersPolicyId` naming
|
|
36
|
-
* a response headers policy this simulation does not hold.
|
|
8
|
+
* The DistributionConfig to deploy, without a policy ID naming a response
|
|
9
|
+
* headers policy or a cache policy this simulation does not hold.
|
|
37
10
|
*
|
|
38
11
|
* `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
|
|
39
12
|
* a Distribution deployed from a template is the one place that refusal costs
|
|
@@ -44,13 +17,14 @@ class SimCfnCfDistroPolicyDrops {
|
|
|
44
17
|
* make with it. That is the same reason an absent `WebACLId` is left out here.
|
|
45
18
|
*
|
|
46
19
|
* So the property is left off that Behavior and recorded on
|
|
47
|
-
* `stack.ignoredProperties`. The Behavior deploys and
|
|
48
|
-
*
|
|
20
|
+
* `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
|
|
21
|
+
* the record. CloudFront's managed policies count as held, so a Behavior
|
|
22
|
+
* naming one keeps it.
|
|
49
23
|
*
|
|
50
|
-
* One Behavior losing
|
|
51
|
-
*
|
|
24
|
+
* One Behavior losing a policy leaves the others holding theirs, and a
|
|
25
|
+
* Behavior losing one kind of policy keeps the other.
|
|
52
26
|
*/
|
|
53
|
-
export function
|
|
27
|
+
export function simCfnCfDistroWithHeldBehaviorPolicies(resource, distributionConfig, cloudFront) {
|
|
54
28
|
const drops = new SimCfnCfDistroPolicyDrops(resource, cloudFront);
|
|
55
29
|
const defaultCacheBehavior = distroDefaultBehavior(drops, distributionConfig);
|
|
56
30
|
const cacheBehaviors = distroCacheBehaviors(drops, distributionConfig);
|
|
@@ -71,7 +45,7 @@ function distroDefaultBehavior(drops, distributionConfig) {
|
|
|
71
45
|
if (behavior === undefined) {
|
|
72
46
|
return undefined;
|
|
73
47
|
}
|
|
74
|
-
return drops.
|
|
48
|
+
return drops.heldPolicies(behavior, defaultBehaviorPath);
|
|
75
49
|
}
|
|
76
50
|
/**
|
|
77
51
|
* Every path-based cache Behavior, each without a policy that is not here.
|
|
@@ -88,6 +62,6 @@ function distroCacheBehaviors(drops, distributionConfig) {
|
|
|
88
62
|
}
|
|
89
63
|
return {
|
|
90
64
|
...behaviors,
|
|
91
|
-
Items: items.map((behavior, index) => drops.
|
|
65
|
+
Items: items.map((behavior, index) => drops.heldPolicies(behavior, `DistributionConfig.CacheBehaviors.${behavior.PathPattern ?? String(index)}`)),
|
|
92
66
|
};
|
|
93
67
|
}
|
|
@@ -10,11 +10,12 @@ interface SimCfnCfDistroCreatorProperties {
|
|
|
10
10
|
*
|
|
11
11
|
* A `WebACLId` naming a web ACL this simulation does not hold is left out and
|
|
12
12
|
* recorded, and so are a Lambda@Edge association it cannot run and a
|
|
13
|
-
* `ResponseHeadersPolicyId` naming a policy it does not
|
|
14
|
-
* Resource of its own for any of
|
|
15
|
-
* Distribution itself, and refusing one would take the
|
|
16
|
-
* something that was never the point of the template.
|
|
17
|
-
* server and a suite of tests make requests to has to
|
|
13
|
+
* `ResponseHeadersPolicyId` or `CachePolicyId` naming a policy it does not
|
|
14
|
+
* hold. CloudFront has no Resource of its own for any of them, so all of them
|
|
15
|
+
* live on the Distribution itself, and refusing one would take the
|
|
16
|
+
* Distribution down over something that was never the point of the template.
|
|
17
|
+
* The site a local dev server and a suite of tests make requests to has to
|
|
18
|
+
* survive that.
|
|
18
19
|
*/
|
|
19
20
|
export declare class SimCfnCfDistroCreator {
|
|
20
21
|
private readonly cloudFront;
|