@kensio/yulin 1.20.16 → 1.21.0
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/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
- package/dist/service/athena/engine/sim-athena-shims.js +2 -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 +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 +16 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -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 +16 -0
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -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 +35 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +49 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +33 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +132 -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-search-distribution.fixture.js +4 -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 +28 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +71 -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/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +9 -7
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +12 -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 +35 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +22 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +2 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +4 -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/invalidation/sim-cf-create-invalidation.d.ts +28 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +4 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -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-origin-request-policy.d.ts +18 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +44 -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 +9 -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 +4 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +8 -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-custom-error-configurator.d.ts +13 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
- 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/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +7 -3
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +4 -0
- package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -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/index.d.ts +2 -0
- package/dist/service/cloudfront/index.js +1 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -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/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
- package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +24 -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-caching.d.ts +31 -0
- package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +20 -12
- package/dist/service/cloudfront/sim-cloudfront-commands.js +20 -17
- package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
- package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +60 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.js +75 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts +24 -44
- package/dist/service/cloudfront/sim-cloudfront.js +37 -58
- 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 +34 -2
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +34 -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 +89 -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 +15 -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/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
- package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
- 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 +11 -12
- 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 +13 -8
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +13 -8
- 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/athena/README.md +7 -1
- package/docs/services/cloudformation/README.md +197 -11
- package/docs/services/cloudfront/README.md +1116 -14
- 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 +23 -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 +11 -2
- package/docs/services/lambda/README.md +76 -2
- package/docs/services/logs/README.md +22 -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 +35 -18
- 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,132 @@
|
|
|
1
|
+
import { SimCloudFrontCacheKey } from "./sim-cf-cache-key.js";
|
|
2
|
+
import { SimCloudFrontCachePolicy, } from "./sim-cf-cache-policy.js";
|
|
3
|
+
/**
|
|
4
|
+
* The IDs AWS publishes for its managed cache policies.
|
|
5
|
+
*
|
|
6
|
+
* A template names one of these directly. CDK's `CachePolicy` statics carry
|
|
7
|
+
* the same seven, and synthesize the ID into a Behavior's `CachePolicyId` with
|
|
8
|
+
* no Resource behind it.
|
|
9
|
+
*/
|
|
10
|
+
export const simCfManagedCachePolicyIds = {
|
|
11
|
+
amplify: "2e54312d-136d-493c-8eb9-b001f22f67d2",
|
|
12
|
+
cachingOptimized: "658327ea-f89d-4fab-a63d-7e88639e58f6",
|
|
13
|
+
cachingOptimizedForUncompressedObjects: "b2884449-e4de-46a7-ac36-70bc7f1ddd6d",
|
|
14
|
+
cachingDisabled: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
|
|
15
|
+
elementalMediaPackage: "08627262-05a9-4f76-9ded-b50ca2e3a84f",
|
|
16
|
+
useOriginCacheControlHeaders: "83da9c7e-98b4-4e11-a168-04f0df8e2c65",
|
|
17
|
+
useOriginCacheControlHeadersQueryStrings: "4cc15a8a-d715-48a4-82b8-cc0b614638fe",
|
|
18
|
+
};
|
|
19
|
+
const daySeconds = 86_400;
|
|
20
|
+
const yearSeconds = 31_536_000;
|
|
21
|
+
/**
|
|
22
|
+
* The headers the two UseOriginCacheControlHeaders policies key on. They
|
|
23
|
+
* differ from each other in their query strings alone.
|
|
24
|
+
*/
|
|
25
|
+
const originCacheControlHeaders = [
|
|
26
|
+
"Host",
|
|
27
|
+
"Origin",
|
|
28
|
+
"X-HTTP-Method-Override",
|
|
29
|
+
"X-HTTP-Method",
|
|
30
|
+
"X-Method-Override",
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* The seven managed cache policies, built fresh for one simulated CloudFront.
|
|
34
|
+
*
|
|
35
|
+
* CloudFront owns these and every account has them, so a Behavior can name one
|
|
36
|
+
* without a template creating anything. Each carries the ID, the name, the
|
|
37
|
+
* TTLs and the cache key AWS publishes for it, so a Behavior on
|
|
38
|
+
* `CachingOptimized` here holds what one in an account holds.
|
|
39
|
+
*
|
|
40
|
+
* The normalized `Accept-Encoding` header AWS lists in some of these keys is
|
|
41
|
+
* not a header name in the whitelist. It is what the two `EnableAcceptEncoding`
|
|
42
|
+
* flags put in the key, which is why a policy carrying no header at all still
|
|
43
|
+
* caches a compressed object apart from an uncompressed one.
|
|
44
|
+
*
|
|
45
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html
|
|
46
|
+
*/
|
|
47
|
+
export function simCfManagedCachePolicies() {
|
|
48
|
+
const policies = [
|
|
49
|
+
managedCachePolicy(simCfManagedCachePolicyIds.amplify, "Amplify", {
|
|
50
|
+
minTtlSec: 2,
|
|
51
|
+
defaultTtlSec: 2,
|
|
52
|
+
maxTtlSec: 600,
|
|
53
|
+
cacheKey: new SimCloudFrontCacheKey({
|
|
54
|
+
cookieBehavior: "all",
|
|
55
|
+
headerBehavior: "whitelist",
|
|
56
|
+
headers: ["Authorization", "CloudFront-Viewer-Country", "Host"],
|
|
57
|
+
queryStringBehavior: "all",
|
|
58
|
+
enableAcceptEncodingGzip: true,
|
|
59
|
+
enableAcceptEncodingBrotli: true,
|
|
60
|
+
}),
|
|
61
|
+
}),
|
|
62
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimized, "CachingOptimized", {
|
|
63
|
+
minTtlSec: 1,
|
|
64
|
+
defaultTtlSec: daySeconds,
|
|
65
|
+
maxTtlSec: yearSeconds,
|
|
66
|
+
cacheKey: new SimCloudFrontCacheKey({
|
|
67
|
+
enableAcceptEncodingGzip: true,
|
|
68
|
+
enableAcceptEncodingBrotli: true,
|
|
69
|
+
}),
|
|
70
|
+
}),
|
|
71
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimizedForUncompressedObjects, "CachingOptimizedForUncompressedObjects", {
|
|
72
|
+
minTtlSec: 1,
|
|
73
|
+
defaultTtlSec: daySeconds,
|
|
74
|
+
maxTtlSec: yearSeconds,
|
|
75
|
+
cacheKey: new SimCloudFrontCacheKey(),
|
|
76
|
+
}),
|
|
77
|
+
managedCachePolicy(simCfManagedCachePolicyIds.cachingDisabled, "CachingDisabled", {
|
|
78
|
+
minTtlSec: 0,
|
|
79
|
+
defaultTtlSec: 0,
|
|
80
|
+
maxTtlSec: 0,
|
|
81
|
+
cacheKey: new SimCloudFrontCacheKey(),
|
|
82
|
+
}),
|
|
83
|
+
managedCachePolicy(simCfManagedCachePolicyIds.elementalMediaPackage, "Elemental-MediaPackage", {
|
|
84
|
+
minTtlSec: 0,
|
|
85
|
+
defaultTtlSec: daySeconds,
|
|
86
|
+
maxTtlSec: yearSeconds,
|
|
87
|
+
cacheKey: new SimCloudFrontCacheKey({
|
|
88
|
+
headerBehavior: "whitelist",
|
|
89
|
+
headers: ["Origin"],
|
|
90
|
+
queryStringBehavior: "whitelist",
|
|
91
|
+
queryStrings: ["aws.manifestfilter", "start", "end", "m"],
|
|
92
|
+
enableAcceptEncodingGzip: true,
|
|
93
|
+
}),
|
|
94
|
+
}),
|
|
95
|
+
managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeaders, "UseOriginCacheControlHeaders", {
|
|
96
|
+
minTtlSec: 0,
|
|
97
|
+
defaultTtlSec: 0,
|
|
98
|
+
maxTtlSec: yearSeconds,
|
|
99
|
+
cacheKey: new SimCloudFrontCacheKey({
|
|
100
|
+
cookieBehavior: "all",
|
|
101
|
+
headerBehavior: "whitelist",
|
|
102
|
+
headers: originCacheControlHeaders,
|
|
103
|
+
enableAcceptEncodingGzip: true,
|
|
104
|
+
enableAcceptEncodingBrotli: true,
|
|
105
|
+
}),
|
|
106
|
+
}),
|
|
107
|
+
managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeadersQueryStrings, "UseOriginCacheControlHeaders-QueryStrings", {
|
|
108
|
+
minTtlSec: 0,
|
|
109
|
+
defaultTtlSec: 0,
|
|
110
|
+
maxTtlSec: yearSeconds,
|
|
111
|
+
cacheKey: new SimCloudFrontCacheKey({
|
|
112
|
+
cookieBehavior: "all",
|
|
113
|
+
headerBehavior: "whitelist",
|
|
114
|
+
headers: originCacheControlHeaders,
|
|
115
|
+
queryStringBehavior: "all",
|
|
116
|
+
enableAcceptEncodingGzip: true,
|
|
117
|
+
enableAcceptEncodingBrotli: true,
|
|
118
|
+
}),
|
|
119
|
+
}),
|
|
120
|
+
];
|
|
121
|
+
return new Map(policies.map((policy) => [policy.id, policy]));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* One managed policy, under the ID, the name and the settings AWS gives it.
|
|
125
|
+
*/
|
|
126
|
+
function managedCachePolicy(id, name, settings) {
|
|
127
|
+
return new SimCloudFrontCachePolicy({
|
|
128
|
+
id: id,
|
|
129
|
+
name,
|
|
130
|
+
...settings,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -2,6 +2,7 @@ import { assertNonNullable } from "@kensio/smartass";
|
|
|
2
2
|
import { SimAwsLocalUrl } from "../../../serve/http/url/sim-aws-local-url.js";
|
|
3
3
|
import { simHttpApiLambdaProxyFactory } from "../../apigatewayv2/api/sim-http-api-lambda-proxy.factory.js";
|
|
4
4
|
import { simCfDistroConfigFactory } from "../distribution/sim-cf-distro-config.factory.js";
|
|
5
|
+
import { simCfManagedOriginRequestPolicyIds } from "../origin-request-policy/sim-cf-managed-origin-request-policies.js";
|
|
5
6
|
import { makeCffFunctionCodeInput } from "./function-code-input/cff-function-code-input.js";
|
|
6
7
|
/**
|
|
7
8
|
* Put a viewer-request Function in front of an Origin echoing the query it is
|
|
@@ -36,6 +37,9 @@ export async function searchDistributionUrl(simAws, path, handler) {
|
|
|
36
37
|
DefaultCacheBehavior: {
|
|
37
38
|
TargetOriginId: "SiteOrigin",
|
|
38
39
|
ViewerProtocolPolicy: "allow-all",
|
|
40
|
+
// The Origin echoes the query it is sent, which reaches it only
|
|
41
|
+
// where the Behavior forwards it.
|
|
42
|
+
OriginRequestPolicyId: simCfManagedOriginRequestPolicyIds.allViewer,
|
|
39
43
|
FunctionAssociations: {
|
|
40
44
|
Items: [
|
|
41
45
|
{
|
|
@@ -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,28 @@
|
|
|
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
|
+
* The policy carries its `Name`, its `Comment`, its three TTLs and the cache
|
|
8
|
+
* key of its `ParametersInCacheKeyAndForwardedToOrigin`. A TTL a template left
|
|
9
|
+
* out falls back to CloudFront's own default rather than to nothing, so a
|
|
10
|
+
* policy holds what one in an account holds either way. A Resource missing its
|
|
11
|
+
* `Name` is refused, as CloudFormation refuses one.
|
|
12
|
+
*/
|
|
13
|
+
export declare class SimCfnCfCachePolicyConfig {
|
|
14
|
+
private readonly resource;
|
|
15
|
+
private readonly properties;
|
|
16
|
+
/**
|
|
17
|
+
* Refuse this Resource, saying which part of it could not be read.
|
|
18
|
+
*/
|
|
19
|
+
private readonly refuse;
|
|
20
|
+
constructor(properties: {
|
|
21
|
+
readonly resource: SimCfnResource;
|
|
22
|
+
readonly properties: SimCfnTemplateValueRecord;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Build the simulated policy this Resource describes.
|
|
26
|
+
*/
|
|
27
|
+
build(): SimCloudFrontCachePolicy;
|
|
28
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isRecord } from "../../../../util/type-guard/record.js";
|
|
2
|
+
import { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
|
|
3
|
+
import { simCfnCfCachePolicyCacheKey } from "./sim-cfn-cf-cache-policy-key.js";
|
|
4
|
+
/**
|
|
5
|
+
* Reads an AWS::CloudFront::CachePolicy Resource into a simulated policy.
|
|
6
|
+
*
|
|
7
|
+
* The policy carries its `Name`, its `Comment`, its three TTLs and the cache
|
|
8
|
+
* key of its `ParametersInCacheKeyAndForwardedToOrigin`. A TTL a template left
|
|
9
|
+
* out falls back to CloudFront's own default rather than to nothing, so a
|
|
10
|
+
* policy holds what one in an account holds either way. A Resource missing its
|
|
11
|
+
* `Name` is refused, as CloudFormation refuses one.
|
|
12
|
+
*/
|
|
13
|
+
export class SimCfnCfCachePolicyConfig {
|
|
14
|
+
resource;
|
|
15
|
+
properties;
|
|
16
|
+
/**
|
|
17
|
+
* Refuse this Resource, saying which part of it could not be read.
|
|
18
|
+
*/
|
|
19
|
+
refuse = (detail) => {
|
|
20
|
+
throw new Error(`Invalid AWS::CloudFront::CachePolicy ${this.resource.logicalId}: ${detail}`);
|
|
21
|
+
};
|
|
22
|
+
constructor(properties) {
|
|
23
|
+
this.resource = properties.resource;
|
|
24
|
+
this.properties = properties.properties;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build the simulated policy this Resource describes.
|
|
28
|
+
*/
|
|
29
|
+
build() {
|
|
30
|
+
const { refuse } = this;
|
|
31
|
+
const config = this.properties["CachePolicyConfig"];
|
|
32
|
+
if (!isRecord(config)) {
|
|
33
|
+
return refuse("CachePolicyConfig must be an object");
|
|
34
|
+
}
|
|
35
|
+
const name = config["Name"];
|
|
36
|
+
if (typeof name !== "string") {
|
|
37
|
+
return refuse("CachePolicyConfig needs a string Name");
|
|
38
|
+
}
|
|
39
|
+
const comment = config["Comment"];
|
|
40
|
+
const minTtlSec = ttlSeconds(config, "MinTTL", refuse);
|
|
41
|
+
const defaultTtlSec = ttlSeconds(config, "DefaultTTL", refuse);
|
|
42
|
+
const maxTtlSec = ttlSeconds(config, "MaxTTL", refuse);
|
|
43
|
+
return new SimCloudFrontCachePolicy({
|
|
44
|
+
name,
|
|
45
|
+
...(typeof comment === "string" && { comment }),
|
|
46
|
+
...(minTtlSec !== undefined && { minTtlSec }),
|
|
47
|
+
...(defaultTtlSec !== undefined && { defaultTtlSec }),
|
|
48
|
+
...(maxTtlSec !== undefined && { maxTtlSec }),
|
|
49
|
+
cacheKey: simCfnCfCachePolicyCacheKey(config, refuse),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* One TTL, or nothing where the template left it out for CloudFront's default
|
|
55
|
+
* to stand in.
|
|
56
|
+
*
|
|
57
|
+
* A template here is often a JavaScript object rather than parsed JSON, so a
|
|
58
|
+
* fraction, a negative or a NaN can reach this where a deployed template could
|
|
59
|
+
* not carry one, and none of them is a length of time an object could sit in a
|
|
60
|
+
* cache for.
|
|
61
|
+
*/
|
|
62
|
+
function ttlSeconds(config, field, refuse) {
|
|
63
|
+
// oxlint-disable-next-line security/detect-object-injection
|
|
64
|
+
const value = config[field];
|
|
65
|
+
if (value === undefined) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0
|
|
69
|
+
? value
|
|
70
|
+
: refuse(`CachePolicyConfig ${field} must be a whole number of seconds`);
|
|
71
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SimCloudFrontCacheKey } from "../../cache-policy/sim-cf-cache-key.js";
|
|
2
|
+
import { type SimCfnCfPolicyRefuse } from "../policy/sim-cfn-cf-policy-section.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read the `ParametersInCacheKeyAndForwardedToOrigin` of a
|
|
5
|
+
* `CachePolicyConfig` into the cache key a policy carries.
|
|
6
|
+
*
|
|
7
|
+
* A template leaving the whole thing out gets CloudFront's own `none` in all
|
|
8
|
+
* three sections, with neither compression flag set.
|
|
9
|
+
*/
|
|
10
|
+
export declare function simCfnCfCachePolicyCacheKey(config: Record<string, unknown>, refuse: SimCfnCfPolicyRefuse): SimCloudFrontCacheKey;
|