@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,50 @@
|
|
|
1
|
+
import { isRecord } from "../../../../util/type-guard/record.js";
|
|
2
|
+
import { SimCloudFrontCacheKey } from "../../cache-policy/sim-cf-cache-key.js";
|
|
3
|
+
import { simCfnCfPolicySection, } from "../policy/sim-cfn-cf-policy-section.js";
|
|
4
|
+
import { simCfnCfCookiesSpec, simCfnCfHeadersSpec, simCfnCfQueryStringsSpec, } from "./sim-cfn-cf-cache-policy-section.js";
|
|
5
|
+
const parametersField = "ParametersInCacheKeyAndForwardedToOrigin";
|
|
6
|
+
/**
|
|
7
|
+
* Read the `ParametersInCacheKeyAndForwardedToOrigin` of a
|
|
8
|
+
* `CachePolicyConfig` into the cache key a policy carries.
|
|
9
|
+
*
|
|
10
|
+
* A template leaving the whole thing out gets CloudFront's own `none` in all
|
|
11
|
+
* three sections, with neither compression flag set.
|
|
12
|
+
*/
|
|
13
|
+
export function simCfnCfCachePolicyCacheKey(config, refuse) {
|
|
14
|
+
// oxlint-disable-next-line security/detect-object-injection
|
|
15
|
+
const parameters = config[parametersField];
|
|
16
|
+
if (parameters === undefined) {
|
|
17
|
+
return new SimCloudFrontCacheKey();
|
|
18
|
+
}
|
|
19
|
+
if (!isRecord(parameters)) {
|
|
20
|
+
return refuse(`${parametersField} must be an object`);
|
|
21
|
+
}
|
|
22
|
+
const cookies = simCfnCfPolicySection(parameters, simCfnCfCookiesSpec, refuse);
|
|
23
|
+
const headers = simCfnCfPolicySection(parameters, simCfnCfHeadersSpec, refuse);
|
|
24
|
+
const queries = simCfnCfPolicySection(parameters, simCfnCfQueryStringsSpec, refuse);
|
|
25
|
+
return new SimCloudFrontCacheKey({
|
|
26
|
+
cookieBehavior: cookies.behavior,
|
|
27
|
+
cookies: cookies.items,
|
|
28
|
+
headerBehavior: headers.behavior,
|
|
29
|
+
headers: headers.items,
|
|
30
|
+
queryStringBehavior: queries.behavior,
|
|
31
|
+
queryStrings: queries.items,
|
|
32
|
+
enableAcceptEncodingGzip: encodingFlag(parameters, "Gzip", refuse),
|
|
33
|
+
enableAcceptEncodingBrotli: encodingFlag(parameters, "Brotli", refuse),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* One of the two flags that put the normalized `Accept-Encoding` header in the
|
|
38
|
+
* cache key. Both are off where a template says nothing.
|
|
39
|
+
*/
|
|
40
|
+
function encodingFlag(parameters, encoding, refuse) {
|
|
41
|
+
const field = `EnableAcceptEncoding${encoding}`;
|
|
42
|
+
// oxlint-disable-next-line security/detect-object-injection
|
|
43
|
+
const value = parameters[field];
|
|
44
|
+
if (value === undefined) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return typeof value === "boolean"
|
|
48
|
+
? value
|
|
49
|
+
: refuse(`${parametersField} ${field} must be a boolean`);
|
|
50
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three sections of a cache key, each with the fields CloudFormation
|
|
3
|
+
* names it by and the behaviours CloudFront offers for it.
|
|
4
|
+
*
|
|
5
|
+
* An origin request policy writes the same three sections under the same field
|
|
6
|
+
* names, and `simCfnCfPolicySection` reads either kind from a spec like these.
|
|
7
|
+
*/
|
|
8
|
+
export declare const simCfnCfCookiesSpec: {
|
|
9
|
+
readonly section: "CookiesConfig";
|
|
10
|
+
readonly behaviorField: "CookieBehavior";
|
|
11
|
+
readonly itemsField: "Cookies";
|
|
12
|
+
readonly behaviors: readonly ["none", "whitelist", "allExcept", "all"];
|
|
13
|
+
readonly defaultBehavior: "none";
|
|
14
|
+
};
|
|
15
|
+
export declare const simCfnCfHeadersSpec: {
|
|
16
|
+
readonly section: "HeadersConfig";
|
|
17
|
+
readonly behaviorField: "HeaderBehavior";
|
|
18
|
+
readonly itemsField: "Headers";
|
|
19
|
+
readonly behaviors: readonly ["none", "whitelist"];
|
|
20
|
+
readonly defaultBehavior: "none";
|
|
21
|
+
};
|
|
22
|
+
export declare const simCfnCfQueryStringsSpec: {
|
|
23
|
+
readonly section: "QueryStringsConfig";
|
|
24
|
+
readonly behaviorField: "QueryStringBehavior";
|
|
25
|
+
readonly itemsField: "QueryStrings";
|
|
26
|
+
readonly behaviors: readonly ["none", "whitelist", "allExcept", "all"];
|
|
27
|
+
readonly defaultBehavior: "none";
|
|
28
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { simCfCacheKeyCookieBehaviors, simCfCacheKeyHeaderBehaviors, simCfCacheKeyQueryStringBehaviors, } from "../../cache-policy/sim-cf-cache-key.js";
|
|
2
|
+
/**
|
|
3
|
+
* The three sections of a cache key, each with the fields CloudFormation
|
|
4
|
+
* names it by and the behaviours CloudFront offers for it.
|
|
5
|
+
*
|
|
6
|
+
* An origin request policy writes the same three sections under the same field
|
|
7
|
+
* names, and `simCfnCfPolicySection` reads either kind from a spec like these.
|
|
8
|
+
*/
|
|
9
|
+
export const simCfnCfCookiesSpec = {
|
|
10
|
+
section: "CookiesConfig",
|
|
11
|
+
behaviorField: "CookieBehavior",
|
|
12
|
+
itemsField: "Cookies",
|
|
13
|
+
behaviors: simCfCacheKeyCookieBehaviors,
|
|
14
|
+
defaultBehavior: "none",
|
|
15
|
+
};
|
|
16
|
+
export const simCfnCfHeadersSpec = {
|
|
17
|
+
section: "HeadersConfig",
|
|
18
|
+
behaviorField: "HeaderBehavior",
|
|
19
|
+
itemsField: "Headers",
|
|
20
|
+
behaviors: simCfCacheKeyHeaderBehaviors,
|
|
21
|
+
defaultBehavior: "none",
|
|
22
|
+
};
|
|
23
|
+
export const simCfnCfQueryStringsSpec = {
|
|
24
|
+
section: "QueryStringsConfig",
|
|
25
|
+
behaviorField: "QueryStringBehavior",
|
|
26
|
+
itemsField: "QueryStrings",
|
|
27
|
+
behaviors: simCfCacheKeyQueryStringBehaviors,
|
|
28
|
+
defaultBehavior: "none",
|
|
29
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
2
|
+
/**
|
|
3
|
+
* One kind of policy a Behavior names, in the terms a template writes it in,
|
|
4
|
+
* with the way this simulation is asked whether it holds one and what the
|
|
5
|
+
* Behavior loses along with it.
|
|
6
|
+
*/
|
|
7
|
+
export interface BehaviorPolicyKind {
|
|
8
|
+
readonly property: "ResponseHeadersPolicyId" | "CachePolicyId" | "OriginRequestPolicyId";
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly loses: string;
|
|
11
|
+
readonly held: (cloudFront: SimCloudFront, policyId: string) => boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The three policies a Behavior names outside itself.
|
|
15
|
+
*/
|
|
16
|
+
export declare const behaviorPolicyKinds: readonly BehaviorPolicyKind[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three policies a Behavior names outside itself.
|
|
3
|
+
*/
|
|
4
|
+
export const behaviorPolicyKinds = [
|
|
5
|
+
{
|
|
6
|
+
property: "ResponseHeadersPolicyId",
|
|
7
|
+
name: "response headers policy",
|
|
8
|
+
loses: "serves every response without the headers that policy would have set",
|
|
9
|
+
held: (cloudFront, policyId) => cloudFront.getResponseHeadersPolicyById(policyId) !== undefined,
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
property: "CachePolicyId",
|
|
13
|
+
name: "cache policy",
|
|
14
|
+
loses: "reports no CachePolicyId",
|
|
15
|
+
held: (cloudFront, policyId) => cloudFront.getCachePolicyById(policyId) !== undefined,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
property: "OriginRequestPolicyId",
|
|
19
|
+
name: "origin request policy",
|
|
20
|
+
loses: "reports no OriginRequestPolicyId",
|
|
21
|
+
held: (cloudFront, policyId) => cloudFront.getOriginRequestPolicyById(policyId) !== undefined,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
@@ -2,8 +2,9 @@ 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, a cache policy or an origin request policy this simulation
|
|
7
|
+
* does not hold.
|
|
7
8
|
*
|
|
8
9
|
* `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
|
|
9
10
|
* a Distribution deployed from a template is the one place that refusal costs
|
|
@@ -14,10 +15,11 @@ import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
|
14
15
|
* make with it. That is the same reason an absent `WebACLId` is left out here.
|
|
15
16
|
*
|
|
16
17
|
* So the property is left off that Behavior and recorded on
|
|
17
|
-
* `stack.ignoredProperties`. The Behavior deploys and
|
|
18
|
-
*
|
|
18
|
+
* `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
|
|
19
|
+
* the record. CloudFront's managed policies count as held, so a Behavior
|
|
20
|
+
* naming one keeps it.
|
|
19
21
|
*
|
|
20
|
-
* One Behavior losing
|
|
21
|
-
*
|
|
22
|
+
* One Behavior losing a policy leaves the others holding theirs, and a
|
|
23
|
+
* Behavior losing one kind of policy keeps the others.
|
|
22
24
|
*/
|
|
23
|
-
export declare function
|
|
25
|
+
export declare function simCfnCfDistroWithHeldBehaviorPolicies(resource: SimCfnResource, distributionConfig: SimCloudFrontDistributionConfig, cloudFront: SimCloudFront): SimCloudFrontDistributionConfig;
|
|
@@ -1,39 +1,13 @@
|
|
|
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, a cache policy or an origin request policy this simulation
|
|
10
|
+
* does not hold.
|
|
37
11
|
*
|
|
38
12
|
* `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
|
|
39
13
|
* a Distribution deployed from a template is the one place that refusal costs
|
|
@@ -44,13 +18,14 @@ class SimCfnCfDistroPolicyDrops {
|
|
|
44
18
|
* make with it. That is the same reason an absent `WebACLId` is left out here.
|
|
45
19
|
*
|
|
46
20
|
* So the property is left off that Behavior and recorded on
|
|
47
|
-
* `stack.ignoredProperties`. The Behavior deploys and
|
|
48
|
-
*
|
|
21
|
+
* `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
|
|
22
|
+
* the record. CloudFront's managed policies count as held, so a Behavior
|
|
23
|
+
* naming one keeps it.
|
|
49
24
|
*
|
|
50
|
-
* One Behavior losing
|
|
51
|
-
*
|
|
25
|
+
* One Behavior losing a policy leaves the others holding theirs, and a
|
|
26
|
+
* Behavior losing one kind of policy keeps the others.
|
|
52
27
|
*/
|
|
53
|
-
export function
|
|
28
|
+
export function simCfnCfDistroWithHeldBehaviorPolicies(resource, distributionConfig, cloudFront) {
|
|
54
29
|
const drops = new SimCfnCfDistroPolicyDrops(resource, cloudFront);
|
|
55
30
|
const defaultCacheBehavior = distroDefaultBehavior(drops, distributionConfig);
|
|
56
31
|
const cacheBehaviors = distroCacheBehaviors(drops, distributionConfig);
|
|
@@ -71,7 +46,7 @@ function distroDefaultBehavior(drops, distributionConfig) {
|
|
|
71
46
|
if (behavior === undefined) {
|
|
72
47
|
return undefined;
|
|
73
48
|
}
|
|
74
|
-
return drops.
|
|
49
|
+
return drops.heldPolicies(behavior, defaultBehaviorPath);
|
|
75
50
|
}
|
|
76
51
|
/**
|
|
77
52
|
* Every path-based cache Behavior, each without a policy that is not here.
|
|
@@ -88,6 +63,6 @@ function distroCacheBehaviors(drops, distributionConfig) {
|
|
|
88
63
|
}
|
|
89
64
|
return {
|
|
90
65
|
...behaviors,
|
|
91
|
-
Items: items.map((behavior, index) => drops.
|
|
66
|
+
Items: items.map((behavior, index) => drops.heldPolicies(behavior, `DistributionConfig.CacheBehaviors.${behavior.PathPattern ?? String(index)}`)),
|
|
92
67
|
};
|
|
93
68
|
}
|
|
@@ -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`
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* server and a suite of tests make
|
|
13
|
+
* `ResponseHeadersPolicyId`, `CachePolicyId` or `OriginRequestPolicyId`
|
|
14
|
+
* naming a policy it does not hold. CloudFront has no Resource of its own for
|
|
15
|
+
* any of them, so all of them live on the Distribution itself, and refusing
|
|
16
|
+
* one would take the Distribution down over something that was never the point
|
|
17
|
+
* of the template. The site a local dev server and a suite of tests make
|
|
18
|
+
* requests to has to survive that.
|
|
18
19
|
*/
|
|
19
20
|
export declare class SimCfnCfDistroCreator {
|
|
20
21
|
private readonly cloudFront;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertDefined, assertNotNull, } from "../../../../util/type-guard/defined.js";
|
|
2
2
|
import { SimCfnCfDistroConfigValidator } from "./sim-cfn-cf-distro-config-validator.js";
|
|
3
3
|
import { simCfnCfDistroWithRunnableEdgeAssociations } from "./sim-cfn-cf-distro-edge-associations.js";
|
|
4
|
-
import {
|
|
4
|
+
import { simCfnCfDistroWithHeldBehaviorPolicies } from "./sim-cfn-cf-distro-behavior-policies.js";
|
|
5
5
|
import { simCfnCfDistroWithoutAbsentWebAcl } from "./sim-cfn-cf-distro-web-acl.js";
|
|
6
6
|
import { simCfnResourceCallerOptions } from "../../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
|
|
7
7
|
/**
|
|
@@ -9,11 +9,12 @@ import { simCfnResourceCallerOptions } from "../../../cloudformation/resource/ca
|
|
|
9
9
|
*
|
|
10
10
|
* A `WebACLId` naming a web ACL this simulation does not hold is left out and
|
|
11
11
|
* recorded, and so are a Lambda@Edge association it cannot run and a
|
|
12
|
-
* `ResponseHeadersPolicyId`
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* server and a suite of tests make
|
|
12
|
+
* `ResponseHeadersPolicyId`, `CachePolicyId` or `OriginRequestPolicyId`
|
|
13
|
+
* naming a policy it does not hold. CloudFront has no Resource of its own for
|
|
14
|
+
* any of them, so all of them live on the Distribution itself, and refusing
|
|
15
|
+
* one would take the Distribution down over something that was never the point
|
|
16
|
+
* of the template. The site a local dev server and a suite of tests make
|
|
17
|
+
* requests to has to survive that.
|
|
17
18
|
*/
|
|
18
19
|
export class SimCfnCfDistroCreator {
|
|
19
20
|
cloudFront;
|
|
@@ -49,5 +50,5 @@ export class SimCfnCfDistroCreator {
|
|
|
49
50
|
* act on, each recorded on the Resource.
|
|
50
51
|
*/
|
|
51
52
|
function deployableConfig(resource, distributionConfig, simAws, cloudFront) {
|
|
52
|
-
return simCfnCfDistroWithoutAbsentWebAcl(resource,
|
|
53
|
+
return simCfnCfDistroWithoutAbsentWebAcl(resource, simCfnCfDistroWithHeldBehaviorPolicies(resource, simCfnCfDistroWithRunnableEdgeAssociations(resource, distributionConfig, simAws), cloudFront), simAws);
|
|
53
54
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCloudFrontCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.command.js";
|
|
3
|
+
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
4
|
+
/**
|
|
5
|
+
* Takes a policy ID naming a policy this simulation does not hold off the
|
|
6
|
+
* Behavior that named it, and records each one on the Resource.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SimCfnCfDistroPolicyDrops {
|
|
9
|
+
private readonly resource;
|
|
10
|
+
private readonly cloudFront;
|
|
11
|
+
count: number;
|
|
12
|
+
constructor(resource: SimCfnResource, cloudFront: SimCloudFront);
|
|
13
|
+
/**
|
|
14
|
+
* One Behavior, keeping the policies that are here and dropping those that
|
|
15
|
+
* are not.
|
|
16
|
+
*/
|
|
17
|
+
heldPolicies(behavior: SimCloudFrontCacheBehaviorConfig, behaviorPath: string): SimCloudFrontCacheBehaviorConfig;
|
|
18
|
+
/**
|
|
19
|
+
* One policy property of one Behavior, dropped where the ID names nothing
|
|
20
|
+
* this simulation holds.
|
|
21
|
+
*/
|
|
22
|
+
private heldPolicy;
|
|
23
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { behaviorPolicyKinds, } from "./sim-cfn-cf-behavior-policy-kinds.js";
|
|
2
|
+
/**
|
|
3
|
+
* Takes a policy ID naming a policy this simulation does not hold off the
|
|
4
|
+
* Behavior that named it, and records each one on the Resource.
|
|
5
|
+
*/
|
|
6
|
+
export class SimCfnCfDistroPolicyDrops {
|
|
7
|
+
resource;
|
|
8
|
+
cloudFront;
|
|
9
|
+
count = 0;
|
|
10
|
+
constructor(resource, cloudFront) {
|
|
11
|
+
this.resource = resource;
|
|
12
|
+
this.cloudFront = cloudFront;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* One Behavior, keeping the policies that are here and dropping those that
|
|
16
|
+
* are not.
|
|
17
|
+
*/
|
|
18
|
+
heldPolicies(behavior, behaviorPath) {
|
|
19
|
+
return behaviorPolicyKinds.reduce((held, kind) => this.heldPolicy(held, behaviorPath, kind), behavior);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One policy property of one Behavior, dropped where the ID names nothing
|
|
23
|
+
* this simulation holds.
|
|
24
|
+
*/
|
|
25
|
+
heldPolicy(behavior, behaviorPath, kind) {
|
|
26
|
+
const policyId = behavior[kind.property];
|
|
27
|
+
if (policyId === undefined || kind.held(this.cloudFront, policyId)) {
|
|
28
|
+
return behavior;
|
|
29
|
+
}
|
|
30
|
+
this.count += 1;
|
|
31
|
+
this.resource.ignoreProperty(`${behaviorPath}.${kind.property}`, `${kind.name} ${policyId} is not held by this simulation, so the ` +
|
|
32
|
+
`Behavior is deployed without one and ${kind.loses}`);
|
|
33
|
+
return { ...behavior, [kind.property]: undefined };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -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 { SimCloudFrontOriginRequestPolicy } from "../../origin-request-policy/sim-cf-origin-request-policy.js";
|
|
4
|
+
/**
|
|
5
|
+
* Reads an AWS::CloudFront::OriginRequestPolicy Resource into a simulated
|
|
6
|
+
* policy.
|
|
7
|
+
*
|
|
8
|
+
* The policy carries its `Name`, its `Comment` and the three sections that say
|
|
9
|
+
* what it forwards to the Origin. A section a template left out falls back to
|
|
10
|
+
* CloudFront's `none`. A Resource missing its `Name` is refused, as
|
|
11
|
+
* CloudFormation refuses one.
|
|
12
|
+
*/
|
|
13
|
+
export declare class SimCfnCfOriginRequestPolicyConfig {
|
|
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(): SimCloudFrontOriginRequestPolicy;
|
|
28
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { isRecord } from "../../../../util/type-guard/record.js";
|
|
2
|
+
import { SimCloudFrontOriginRequestPolicy } from "../../origin-request-policy/sim-cf-origin-request-policy.js";
|
|
3
|
+
import { simCfnCfOriginRequestForwarding } from "./sim-cfn-cf-orp-forwarding.js";
|
|
4
|
+
/**
|
|
5
|
+
* Reads an AWS::CloudFront::OriginRequestPolicy Resource into a simulated
|
|
6
|
+
* policy.
|
|
7
|
+
*
|
|
8
|
+
* The policy carries its `Name`, its `Comment` and the three sections that say
|
|
9
|
+
* what it forwards to the Origin. A section a template left out falls back to
|
|
10
|
+
* CloudFront's `none`. A Resource missing its `Name` is refused, as
|
|
11
|
+
* CloudFormation refuses one.
|
|
12
|
+
*/
|
|
13
|
+
export class SimCfnCfOriginRequestPolicyConfig {
|
|
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::OriginRequestPolicy ${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["OriginRequestPolicyConfig"];
|
|
32
|
+
if (!isRecord(config)) {
|
|
33
|
+
return refuse("OriginRequestPolicyConfig must be an object");
|
|
34
|
+
}
|
|
35
|
+
const name = config["Name"];
|
|
36
|
+
if (typeof name !== "string") {
|
|
37
|
+
return refuse("OriginRequestPolicyConfig needs a string Name");
|
|
38
|
+
}
|
|
39
|
+
const comment = config["Comment"];
|
|
40
|
+
return new SimCloudFrontOriginRequestPolicy({
|
|
41
|
+
name,
|
|
42
|
+
...(typeof comment === "string" && { comment }),
|
|
43
|
+
forwarding: simCfnCfOriginRequestForwarding(config, refuse),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -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 { SimCloudFrontOriginRequestPolicy } from "../../origin-request-policy/sim-cf-origin-request-policy.js";
|
|
5
|
+
interface SimCfnCfOriginRequestPolicyCreatorProperties {
|
|
6
|
+
readonly cloudFront: SimCloudFront;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates simulated origin request policies from
|
|
10
|
+
* AWS::CloudFront::OriginRequestPolicy Resources.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimCfnCfOriginRequestPolicyCreator {
|
|
13
|
+
private readonly cloudFront;
|
|
14
|
+
constructor(properties: SimCfnCfOriginRequestPolicyCreatorProperties);
|
|
15
|
+
/**
|
|
16
|
+
* Create and store the policy one Resource describes.
|
|
17
|
+
*/
|
|
18
|
+
create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCloudFrontOriginRequestPolicy;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a policy created from a Resource.
|
|
21
|
+
*/
|
|
22
|
+
delete(resource: SimCfnResource): void;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SimCfnCfOriginRequestPolicyConfig } from "./sim-cfn-cf-orp-config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates simulated origin request policies from
|
|
4
|
+
* AWS::CloudFront::OriginRequestPolicy Resources.
|
|
5
|
+
*/
|
|
6
|
+
export class SimCfnCfOriginRequestPolicyCreator {
|
|
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 SimCfnCfOriginRequestPolicyConfig({
|
|
16
|
+
resource,
|
|
17
|
+
properties,
|
|
18
|
+
}).build();
|
|
19
|
+
this.cloudFront.addOriginRequestPolicy(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.removeOriginRequestPolicy(policy.id);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SimCfOriginRequestForwarding } from "../../origin-request-policy/sim-cf-origin-request-forwarding.js";
|
|
2
|
+
import { type SimCfnCfPolicyRefuse } from "../policy/sim-cfn-cf-policy-section.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read the three sections of an `OriginRequestPolicyConfig` into what the
|
|
5
|
+
* policy forwards.
|
|
6
|
+
*
|
|
7
|
+
* A template leaving a section out gets CloudFront's own `none`. A policy that
|
|
8
|
+
* says nothing forwards nothing.
|
|
9
|
+
*/
|
|
10
|
+
export declare function simCfnCfOriginRequestForwarding(config: Record<string, unknown>, refuse: SimCfnCfPolicyRefuse): SimCfOriginRequestForwarding;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { simCfForwardedCookieBehaviors, simCfForwardedHeaderBehaviors, simCfForwardedQueryStringBehaviors, SimCfOriginRequestForwarding, } from "../../origin-request-policy/sim-cf-origin-request-forwarding.js";
|
|
2
|
+
import { simCfnCfPolicySection, } from "../policy/sim-cfn-cf-policy-section.js";
|
|
3
|
+
/**
|
|
4
|
+
* The three sections of an origin request policy, each with the fields
|
|
5
|
+
* CloudFormation names it by and the behaviours CloudFront offers for it.
|
|
6
|
+
*
|
|
7
|
+
* The fields are the ones a cache policy writes. The header section is where
|
|
8
|
+
* the two kinds part: an origin request policy can forward every header the
|
|
9
|
+
* viewer sent, which is no use as a cache key.
|
|
10
|
+
*/
|
|
11
|
+
const cookiesSpec = {
|
|
12
|
+
section: "CookiesConfig",
|
|
13
|
+
behaviorField: "CookieBehavior",
|
|
14
|
+
itemsField: "Cookies",
|
|
15
|
+
behaviors: simCfForwardedCookieBehaviors,
|
|
16
|
+
defaultBehavior: "none",
|
|
17
|
+
};
|
|
18
|
+
const headersSpec = {
|
|
19
|
+
section: "HeadersConfig",
|
|
20
|
+
behaviorField: "HeaderBehavior",
|
|
21
|
+
itemsField: "Headers",
|
|
22
|
+
behaviors: simCfForwardedHeaderBehaviors,
|
|
23
|
+
defaultBehavior: "none",
|
|
24
|
+
};
|
|
25
|
+
const queryStringsSpec = {
|
|
26
|
+
section: "QueryStringsConfig",
|
|
27
|
+
behaviorField: "QueryStringBehavior",
|
|
28
|
+
itemsField: "QueryStrings",
|
|
29
|
+
behaviors: simCfForwardedQueryStringBehaviors,
|
|
30
|
+
defaultBehavior: "none",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Read the three sections of an `OriginRequestPolicyConfig` into what the
|
|
34
|
+
* policy forwards.
|
|
35
|
+
*
|
|
36
|
+
* A template leaving a section out gets CloudFront's own `none`. A policy that
|
|
37
|
+
* says nothing forwards nothing.
|
|
38
|
+
*/
|
|
39
|
+
export function simCfnCfOriginRequestForwarding(config, refuse) {
|
|
40
|
+
const cookies = simCfnCfPolicySection(config, cookiesSpec, refuse);
|
|
41
|
+
const headers = simCfnCfPolicySection(config, headersSpec, refuse);
|
|
42
|
+
const queries = simCfnCfPolicySection(config, queryStringsSpec, refuse);
|
|
43
|
+
return new SimCfOriginRequestForwarding({
|
|
44
|
+
cookieBehavior: cookies.behavior,
|
|
45
|
+
cookies: cookies.items,
|
|
46
|
+
headerBehavior: headers.behavior,
|
|
47
|
+
headers: headers.items,
|
|
48
|
+
queryStringBehavior: queries.behavior,
|
|
49
|
+
queryStrings: queries.items,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SimCfnCfPolicyRefuse = (detail: string) => never;
|
|
2
|
+
export interface SimCfnCfPolicySectionSpec<TBehavior extends string> {
|
|
3
|
+
readonly section: string;
|
|
4
|
+
readonly behaviorField: string;
|
|
5
|
+
readonly itemsField: string;
|
|
6
|
+
readonly behaviors: readonly TBehavior[];
|
|
7
|
+
readonly defaultBehavior: TBehavior;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* One `<name>Config` section of a cache policy or an origin request policy, as
|
|
11
|
+
* the behaviour it names and the names that behaviour applies to.
|
|
12
|
+
*
|
|
13
|
+
* The two policy kinds write these sections the same way, down to the field
|
|
14
|
+
* names, and differ only in the behaviours each section offers. An absent
|
|
15
|
+
* section is CloudFront's `none` with an empty list, and so is a section that
|
|
16
|
+
* named no behaviour of its own. A behaviour outside the set CloudFront offers
|
|
17
|
+
* for the section is refused.
|
|
18
|
+
*/
|
|
19
|
+
export declare function simCfnCfPolicySection<TBehavior extends string>(parameters: Record<string, unknown>, spec: SimCfnCfPolicySectionSpec<TBehavior>, refuse: SimCfnCfPolicyRefuse): {
|
|
20
|
+
behavior: TBehavior;
|
|
21
|
+
items: readonly string[];
|
|
22
|
+
};
|