@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,28 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfInvalidationAccess } from "./sim-cf-invalidation-access.js";
|
|
3
|
+
import type { SimCreateInvalidationCommand, SimCreateInvalidationCommandOutput } from "./sim-cf-invalidation-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront CreateInvalidation command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateInvalidationCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimCfCreateInvalidation {
|
|
10
|
+
private readonly access;
|
|
11
|
+
private static readonly action;
|
|
12
|
+
constructor(access: SimCfInvalidationAccess);
|
|
13
|
+
/**
|
|
14
|
+
* Clear what a batch of paths names. The next request for one of them
|
|
15
|
+
* reaches the Origin.
|
|
16
|
+
*
|
|
17
|
+
* The entries go as the invalidation is created. Real CloudFront clears each
|
|
18
|
+
* point of presence over the following seconds, and a test waiting for that
|
|
19
|
+
* before asking again would be waiting on the simulator.
|
|
20
|
+
*/
|
|
21
|
+
handle(command: SimCreateInvalidationCommand, options?: {
|
|
22
|
+
readonly caller?: SimAwsCaller;
|
|
23
|
+
}): Promise<SimCreateInvalidationCommandOutput>;
|
|
24
|
+
/**
|
|
25
|
+
* Create an invalidation, clear what it names, and start it running.
|
|
26
|
+
*/
|
|
27
|
+
private invalidate;
|
|
28
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimCfInvalidation } from "../../invalidation/sim-cf-invalidation.js";
|
|
3
|
+
import { simCfInvalidationLocation, simCfInvalidationView, } from "../../invalidation/sim-cf-invalidation-view.js";
|
|
4
|
+
import { simCfRepeatedInvalidation } from "../../invalidation/sim-cf-repeated-invalidation.js";
|
|
5
|
+
import { assertConsistentQuantity } from "../sim-cf-list-quantity.js";
|
|
6
|
+
/**
|
|
7
|
+
* Simulated CloudFront CreateInvalidation command.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateInvalidationCommand/
|
|
10
|
+
*/
|
|
11
|
+
export class SimCfCreateInvalidation {
|
|
12
|
+
access;
|
|
13
|
+
static action = "cloudfront:CreateInvalidation";
|
|
14
|
+
constructor(access) {
|
|
15
|
+
this.access = access;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Clear what a batch of paths names. The next request for one of them
|
|
19
|
+
* reaches the Origin.
|
|
20
|
+
*
|
|
21
|
+
* The entries go as the invalidation is created. Real CloudFront clears each
|
|
22
|
+
* point of presence over the following seconds, and a test waiting for that
|
|
23
|
+
* before asking again would be waiting on the simulator.
|
|
24
|
+
*/
|
|
25
|
+
async handle(command, options) {
|
|
26
|
+
const batch = command.input.InvalidationBatch;
|
|
27
|
+
assertDefined(batch, "CreateInvalidationCommand.InvalidationBatch");
|
|
28
|
+
const callerReference = batch.CallerReference;
|
|
29
|
+
assertDefined(callerReference, "CreateInvalidationCommand.InvalidationBatch.CallerReference");
|
|
30
|
+
assertConsistentQuantity("InvalidationBatch.Paths", batch.Paths);
|
|
31
|
+
await this.access.background.sequence();
|
|
32
|
+
const distribution = this.access.authorizedDistribution(SimCfCreateInvalidation.action, command.input.DistributionId, options?.caller);
|
|
33
|
+
const paths = batch.Paths?.Items ?? [];
|
|
34
|
+
const invalidation = simCfRepeatedInvalidation(distribution, callerReference, paths) ??
|
|
35
|
+
this.invalidate(distribution, callerReference, paths);
|
|
36
|
+
return {
|
|
37
|
+
Location: simCfInvalidationLocation(distribution.distributionId, invalidation.invalidationId),
|
|
38
|
+
Invalidation: simCfInvalidationView(invalidation),
|
|
39
|
+
$metadata: {},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create an invalidation, clear what it names, and start it running.
|
|
44
|
+
*/
|
|
45
|
+
invalidate(distribution, callerReference, paths) {
|
|
46
|
+
const invalidation = new SimCfInvalidation({
|
|
47
|
+
invalidationId: distribution.invalidations.allocateInvalidationId(),
|
|
48
|
+
callerReference,
|
|
49
|
+
paths,
|
|
50
|
+
createTime: this.access.background.now(),
|
|
51
|
+
});
|
|
52
|
+
distribution.invalidations.add(invalidation);
|
|
53
|
+
distribution.cache.clearPaths(paths);
|
|
54
|
+
// The invalidation reaches Completed in the background, the way a
|
|
55
|
+
// Distribution reaches Deployed.
|
|
56
|
+
this.access.background.schedule(async () => invalidation.completeInvalidation());
|
|
57
|
+
return invalidation;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfInvalidationAccess } from "./sim-cf-invalidation-access.js";
|
|
3
|
+
import type { SimGetInvalidationCommand, SimGetInvalidationCommandOutput } from "./sim-cf-invalidation-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront GetInvalidation command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetInvalidationCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimCfGetInvalidation {
|
|
10
|
+
private readonly access;
|
|
11
|
+
private static readonly action;
|
|
12
|
+
constructor(access: SimCfInvalidationAccess);
|
|
13
|
+
/**
|
|
14
|
+
* Read one invalidation of a Distribution back.
|
|
15
|
+
*/
|
|
16
|
+
handle(command: SimGetInvalidationCommand, options?: {
|
|
17
|
+
readonly caller?: SimAwsCaller;
|
|
18
|
+
}): Promise<SimGetInvalidationCommandOutput>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimCloudFrontNoSuchInvalidation } from "../../error/sim-cf-invalidation.error.js";
|
|
3
|
+
import { simCfInvalidationView } from "../../invalidation/sim-cf-invalidation-view.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront GetInvalidation command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetInvalidationCommand/
|
|
8
|
+
*/
|
|
9
|
+
export class SimCfGetInvalidation {
|
|
10
|
+
access;
|
|
11
|
+
static action = "cloudfront:GetInvalidation";
|
|
12
|
+
constructor(access) {
|
|
13
|
+
this.access = access;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Read one invalidation of a Distribution back.
|
|
17
|
+
*/
|
|
18
|
+
async handle(command, options) {
|
|
19
|
+
const invalidationId = command.input.Id;
|
|
20
|
+
assertDefined(invalidationId, "GetInvalidationCommand.Id");
|
|
21
|
+
await this.access.background.sequence();
|
|
22
|
+
const distribution = this.access.authorizedDistribution(SimCfGetInvalidation.action, command.input.DistributionId, options?.caller);
|
|
23
|
+
const invalidation = distribution.invalidations.byId(invalidationId);
|
|
24
|
+
if (invalidation === undefined) {
|
|
25
|
+
throw new SimCloudFrontNoSuchInvalidation(`No sim CloudFront invalidation with ID ${invalidationId} on Distribution ${distribution.distributionId}`);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
Invalidation: simCfInvalidationView(invalidation),
|
|
29
|
+
$metadata: {},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
|
|
6
|
+
interface SimCfInvalidationAccessProperties {
|
|
7
|
+
readonly accountId: SimAwsAccountId;
|
|
8
|
+
readonly distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
|
|
9
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
10
|
+
readonly background: BackgroundScheduler;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* What every invalidation command needs: the Distributions, IAM, and the
|
|
14
|
+
* clock.
|
|
15
|
+
*
|
|
16
|
+
* The three commands all name a Distribution, authorize against its ARN and
|
|
17
|
+
* resolve it the same way, so that happens here once rather than in each of
|
|
18
|
+
* them.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SimCfInvalidationAccess {
|
|
21
|
+
readonly background: BackgroundScheduler;
|
|
22
|
+
private readonly accountId;
|
|
23
|
+
private readonly distributions;
|
|
24
|
+
private readonly iam;
|
|
25
|
+
constructor(properties: SimCfInvalidationAccessProperties);
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the Distribution an invalidation command names, having authorized
|
|
28
|
+
* the action against its ARN.
|
|
29
|
+
*
|
|
30
|
+
* The ARN is built from the ID the caller gave, so authorization happens
|
|
31
|
+
* before the Distribution map is read and an unauthorized caller learns
|
|
32
|
+
* nothing about which IDs exist.
|
|
33
|
+
*/
|
|
34
|
+
authorizedDistribution(action: string, distributionId: string | undefined, caller?: SimAwsCaller): SimCloudFrontDistribution;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimCloudFrontNoSuchDistribution } from "../../error/sim-cloudfront.error.js";
|
|
3
|
+
import { simCfAuthorize } from "../../sim-cf-authorize.js";
|
|
4
|
+
/**
|
|
5
|
+
* What every invalidation command needs: the Distributions, IAM, and the
|
|
6
|
+
* clock.
|
|
7
|
+
*
|
|
8
|
+
* The three commands all name a Distribution, authorize against its ARN and
|
|
9
|
+
* resolve it the same way, so that happens here once rather than in each of
|
|
10
|
+
* them.
|
|
11
|
+
*/
|
|
12
|
+
export class SimCfInvalidationAccess {
|
|
13
|
+
background;
|
|
14
|
+
accountId;
|
|
15
|
+
distributions;
|
|
16
|
+
iam;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.accountId = properties.accountId;
|
|
19
|
+
this.distributions = properties.distributions;
|
|
20
|
+
this.iam = properties.iam;
|
|
21
|
+
this.background = properties.background;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the Distribution an invalidation command names, having authorized
|
|
25
|
+
* the action against its ARN.
|
|
26
|
+
*
|
|
27
|
+
* The ARN is built from the ID the caller gave, so authorization happens
|
|
28
|
+
* before the Distribution map is read and an unauthorized caller learns
|
|
29
|
+
* nothing about which IDs exist.
|
|
30
|
+
*/
|
|
31
|
+
authorizedDistribution(action, distributionId, caller) {
|
|
32
|
+
assertDefined(distributionId, `${action} DistributionId`);
|
|
33
|
+
simCfAuthorize({
|
|
34
|
+
iam: this.iam,
|
|
35
|
+
action,
|
|
36
|
+
resource: `arn:aws:cloudfront::${this.accountId}:distribution/${distributionId}`,
|
|
37
|
+
caller,
|
|
38
|
+
});
|
|
39
|
+
const distribution = this.distributions.get(distributionId);
|
|
40
|
+
if (distribution === undefined) {
|
|
41
|
+
throw new SimCloudFrontNoSuchDistribution(`No sim CloudFront Distribution with ID ${distributionId}`);
|
|
42
|
+
}
|
|
43
|
+
return distribution;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimCfInvalidationSummaryView, SimCfInvalidationView } from "../../invalidation/sim-cf-invalidation-view.js";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal structural sim CloudFront invalidation batch, as a caller sends it.
|
|
5
|
+
*/
|
|
6
|
+
export interface SimCfInvalidationBatchInput {
|
|
7
|
+
readonly CallerReference?: string | undefined;
|
|
8
|
+
readonly Paths?: {
|
|
9
|
+
readonly Quantity?: number | undefined;
|
|
10
|
+
readonly Items?: readonly string[] | undefined;
|
|
11
|
+
} | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Minimal structural sim CloudFront CreateInvalidation command.
|
|
15
|
+
*/
|
|
16
|
+
export interface SimCreateInvalidationCommand {
|
|
17
|
+
readonly input: SimCreateInvalidationCommandInput;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Minimal structural sim CloudFront CreateInvalidation input.
|
|
21
|
+
*/
|
|
22
|
+
export interface SimCreateInvalidationCommandInput {
|
|
23
|
+
readonly DistributionId?: string | undefined;
|
|
24
|
+
readonly InvalidationBatch?: SimCfInvalidationBatchInput | undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Minimal structural sim CloudFront CreateInvalidation output.
|
|
28
|
+
*/
|
|
29
|
+
export interface SimCreateInvalidationCommandOutput {
|
|
30
|
+
readonly Location?: string | undefined;
|
|
31
|
+
readonly Invalidation?: SimCfInvalidationView | undefined;
|
|
32
|
+
readonly $metadata: SimResponseMetadata;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Minimal structural sim CloudFront GetInvalidation command.
|
|
36
|
+
*/
|
|
37
|
+
export interface SimGetInvalidationCommand {
|
|
38
|
+
readonly input: SimGetInvalidationCommandInput;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Minimal structural sim CloudFront GetInvalidation input.
|
|
42
|
+
*/
|
|
43
|
+
export interface SimGetInvalidationCommandInput {
|
|
44
|
+
readonly DistributionId?: string | undefined;
|
|
45
|
+
readonly Id?: string | undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Minimal structural sim CloudFront GetInvalidation output.
|
|
49
|
+
*/
|
|
50
|
+
export interface SimGetInvalidationCommandOutput {
|
|
51
|
+
readonly Invalidation?: SimCfInvalidationView | undefined;
|
|
52
|
+
readonly $metadata: SimResponseMetadata;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Minimal structural sim CloudFront ListInvalidations command.
|
|
56
|
+
*/
|
|
57
|
+
export interface SimListInvalidationsCommand {
|
|
58
|
+
readonly input: SimListInvalidationsCommandInput;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Minimal structural sim CloudFront ListInvalidations input.
|
|
62
|
+
*/
|
|
63
|
+
export interface SimListInvalidationsCommandInput {
|
|
64
|
+
readonly DistributionId?: string | undefined;
|
|
65
|
+
readonly Marker?: string | undefined;
|
|
66
|
+
readonly MaxItems?: number | undefined;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Minimal structural sim CloudFront ListInvalidations output.
|
|
70
|
+
*/
|
|
71
|
+
export interface SimListInvalidationsCommandOutput {
|
|
72
|
+
readonly InvalidationList?: {
|
|
73
|
+
readonly Marker: string;
|
|
74
|
+
readonly MaxItems: number;
|
|
75
|
+
readonly IsTruncated: boolean;
|
|
76
|
+
readonly Quantity: number;
|
|
77
|
+
readonly Items: readonly SimCfInvalidationSummaryView[];
|
|
78
|
+
} | undefined;
|
|
79
|
+
readonly $metadata: SimResponseMetadata;
|
|
80
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
|
|
6
|
+
import type { SimCreateInvalidationCommand, SimCreateInvalidationCommandOutput, SimGetInvalidationCommand, SimGetInvalidationCommandOutput, SimListInvalidationsCommand, SimListInvalidationsCommandOutput } from "./sim-cf-invalidation-command.types.js";
|
|
7
|
+
interface SimCfInvalidationCommandsProperties {
|
|
8
|
+
readonly accountId: SimAwsAccountId;
|
|
9
|
+
readonly distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
|
|
10
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
11
|
+
readonly background: BackgroundScheduler;
|
|
12
|
+
}
|
|
13
|
+
interface InvalidationRequestOptions {
|
|
14
|
+
readonly caller?: SimAwsCaller;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The invalidation commands on the CloudFront client.
|
|
18
|
+
*
|
|
19
|
+
* They are grouped here, the way the Function commands are, because all three
|
|
20
|
+
* work on state a Distribution holds of its own and share the lookup that
|
|
21
|
+
* reaches it.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimCfInvalidationCommands {
|
|
24
|
+
private readonly access;
|
|
25
|
+
constructor(properties: SimCfInvalidationCommandsProperties);
|
|
26
|
+
/**
|
|
27
|
+
* Handle a Create Invalidation Command from the SDK.
|
|
28
|
+
*/
|
|
29
|
+
createInvalidation(command: SimCreateInvalidationCommand, options?: InvalidationRequestOptions): Promise<SimCreateInvalidationCommandOutput>;
|
|
30
|
+
/**
|
|
31
|
+
* Handle a Get Invalidation Command from the SDK.
|
|
32
|
+
*/
|
|
33
|
+
getInvalidation(command: SimGetInvalidationCommand, options?: InvalidationRequestOptions): Promise<SimGetInvalidationCommandOutput>;
|
|
34
|
+
/**
|
|
35
|
+
* Handle a List Invalidations Command from the SDK.
|
|
36
|
+
*/
|
|
37
|
+
listInvalidations(command: SimListInvalidationsCommand, options?: InvalidationRequestOptions): Promise<SimListInvalidationsCommandOutput>;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SimCfCreateInvalidation } from "./sim-cf-create-invalidation.js";
|
|
2
|
+
import { SimCfGetInvalidation } from "./sim-cf-get-invalidation.js";
|
|
3
|
+
import { SimCfInvalidationAccess } from "./sim-cf-invalidation-access.js";
|
|
4
|
+
import { SimCfListInvalidations } from "./sim-cf-list-invalidations.js";
|
|
5
|
+
/**
|
|
6
|
+
* The invalidation commands on the CloudFront client.
|
|
7
|
+
*
|
|
8
|
+
* They are grouped here, the way the Function commands are, because all three
|
|
9
|
+
* work on state a Distribution holds of its own and share the lookup that
|
|
10
|
+
* reaches it.
|
|
11
|
+
*/
|
|
12
|
+
export class SimCfInvalidationCommands {
|
|
13
|
+
access;
|
|
14
|
+
constructor(properties) {
|
|
15
|
+
this.access = new SimCfInvalidationAccess(properties);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handle a Create Invalidation Command from the SDK.
|
|
19
|
+
*/
|
|
20
|
+
async createInvalidation(command, options) {
|
|
21
|
+
return await new SimCfCreateInvalidation(this.access).handle(command, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Handle a Get Invalidation Command from the SDK.
|
|
25
|
+
*/
|
|
26
|
+
async getInvalidation(command, options) {
|
|
27
|
+
return await new SimCfGetInvalidation(this.access).handle(command, options);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Handle a List Invalidations Command from the SDK.
|
|
31
|
+
*/
|
|
32
|
+
async listInvalidations(command, options) {
|
|
33
|
+
return await new SimCfListInvalidations(this.access).handle(command, options);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfInvalidationAccess } from "./sim-cf-invalidation-access.js";
|
|
3
|
+
import type { SimListInvalidationsCommand, SimListInvalidationsCommandOutput } from "./sim-cf-invalidation-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront ListInvalidations command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListInvalidationsCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimCfListInvalidations {
|
|
10
|
+
private readonly access;
|
|
11
|
+
private static readonly action;
|
|
12
|
+
constructor(access: SimCfInvalidationAccess);
|
|
13
|
+
/**
|
|
14
|
+
* List a Distribution's invalidations, most recently created first.
|
|
15
|
+
*
|
|
16
|
+
* The whole list comes back. `Marker` and `MaxItems` are the paging every
|
|
17
|
+
* other simulated listing leaves out, so the answer is never truncated and
|
|
18
|
+
* carries no `NextMarker`.
|
|
19
|
+
*/
|
|
20
|
+
handle(command: SimListInvalidationsCommand, options?: {
|
|
21
|
+
readonly caller?: SimAwsCaller;
|
|
22
|
+
}): Promise<SimListInvalidationsCommandOutput>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { simCfInvalidationSummary } from "../../invalidation/sim-cf-invalidation-view.js";
|
|
2
|
+
/**
|
|
3
|
+
* What CloudFront reports as `MaxItems` for a listing that asks for none.
|
|
4
|
+
*/
|
|
5
|
+
const defaultMaxItems = 100;
|
|
6
|
+
/**
|
|
7
|
+
* Simulated CloudFront ListInvalidations command.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListInvalidationsCommand/
|
|
10
|
+
*/
|
|
11
|
+
export class SimCfListInvalidations {
|
|
12
|
+
access;
|
|
13
|
+
static action = "cloudfront:ListInvalidations";
|
|
14
|
+
constructor(access) {
|
|
15
|
+
this.access = access;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* List a Distribution's invalidations, most recently created first.
|
|
19
|
+
*
|
|
20
|
+
* The whole list comes back. `Marker` and `MaxItems` are the paging every
|
|
21
|
+
* other simulated listing leaves out, so the answer is never truncated and
|
|
22
|
+
* carries no `NextMarker`.
|
|
23
|
+
*/
|
|
24
|
+
async handle(command, options) {
|
|
25
|
+
await this.access.background.sequence();
|
|
26
|
+
const distribution = this.access.authorizedDistribution(SimCfListInvalidations.action, command.input.DistributionId, options?.caller);
|
|
27
|
+
const invalidations = distribution.invalidations.newestFirst();
|
|
28
|
+
return {
|
|
29
|
+
InvalidationList: {
|
|
30
|
+
Marker: command.input.Marker ?? "",
|
|
31
|
+
MaxItems: command.input.MaxItems ?? defaultMaxItems,
|
|
32
|
+
IsTruncated: false,
|
|
33
|
+
Quantity: invalidations.length,
|
|
34
|
+
Items: invalidations.map((invalidation) => simCfInvalidationSummary(invalidation)),
|
|
35
|
+
},
|
|
36
|
+
$metadata: {},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ import type { SimCfEdgeFunctions } from "../../edge/sim-cf-edge-functions.js";
|
|
|
9
9
|
import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
|
|
10
10
|
import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
|
|
11
11
|
import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
|
|
12
|
+
import type { SimCloudFrontOriginRequestPolicyRegistry } from "../../origin-request-policy/sim-cf-origin-request-policy-registry.js";
|
|
12
13
|
import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
14
|
+
import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
|
|
13
15
|
import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
|
|
14
16
|
import type { SimCloudFrontRegistry } from "../../registry/sim-cloud-front-registry.js";
|
|
15
17
|
import type { SimUpdateDistributionCommand, SimUpdateDistributionCommandOutput } from "./update-distribution.command.js";
|
|
@@ -21,6 +23,8 @@ interface UpdateDistributionCommandHandlerProperties {
|
|
|
21
23
|
readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
|
|
22
24
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
23
25
|
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
26
|
+
readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
|
|
27
|
+
readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
|
|
24
28
|
readonly webAclResolver?: SimCfWebAclResolver | undefined;
|
|
25
29
|
readonly iam?: SimIamInterServiceAuthZ;
|
|
26
30
|
readonly acmRegistry?: SimAcmRegistry | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { SimCloudFrontBehavior } from "../../behaviour/sim-cloud-front-behavior.js";
|
|
2
|
+
import type { SimCloudFrontDistribution } from "../../distribution/sim-cloudfront-distribution.js";
|
|
3
|
+
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
4
|
+
import type { SimCfCustomErrorResponder } from "../error/sim-cf-custom-error-responder.js";
|
|
5
|
+
import type { SimCfOriginStage, SimCfOriginStageResult } from "../origin/sim-cf-origin-stage.js";
|
|
6
|
+
/**
|
|
7
|
+
* One request, and everything the content stage needs to answer it.
|
|
8
|
+
*/
|
|
9
|
+
export interface SimCfContentRequest {
|
|
10
|
+
readonly request: Request;
|
|
11
|
+
readonly cloudFront: SimCloudFront;
|
|
12
|
+
readonly distribution: SimCloudFrontDistribution;
|
|
13
|
+
readonly behaviour: SimCloudFrontBehavior;
|
|
14
|
+
/**
|
|
15
|
+
* The edge the request arrived at, whose cache answers it.
|
|
16
|
+
*/
|
|
17
|
+
readonly edgeId: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What the content stage produced, and which of the two produced it.
|
|
21
|
+
*/
|
|
22
|
+
export interface SimCfContentStageResult extends SimCfOriginStageResult {
|
|
23
|
+
/**
|
|
24
|
+
* Whether the Distribution's cache answered, which the pipeline reports to
|
|
25
|
+
* the viewer in `X-Cache`.
|
|
26
|
+
*/
|
|
27
|
+
readonly cacheHit: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Answers a request from the Distribution's cache, or from the Origin.
|
|
31
|
+
*
|
|
32
|
+
* This is CloudFront's cache lookup and everything behind it. A key the cache
|
|
33
|
+
* holds unexpired is answered with the Origin left unread. A miss goes to the
|
|
34
|
+
* Origin, has an error replaced with the Distribution's custom error page, and
|
|
35
|
+
* is stored under the key it missed on for as long as the Origin's headers and
|
|
36
|
+
* the cache policy between them allow.
|
|
37
|
+
*
|
|
38
|
+
* An error is stored for a TTL of its own. The `ErrorCachingMinTTL` of the
|
|
39
|
+
* custom error response matching the status decides it, whether the Origin
|
|
40
|
+
* answered with the error or an origin-response function made one of an
|
|
41
|
+
* Origin's answer.
|
|
42
|
+
*/
|
|
43
|
+
export declare class SimCfContentStage {
|
|
44
|
+
private readonly originStage;
|
|
45
|
+
private readonly customErrorResponder;
|
|
46
|
+
constructor(originStage: SimCfOriginStage, customErrorResponder: SimCfCustomErrorResponder);
|
|
47
|
+
/**
|
|
48
|
+
* Answer one request, reading the Origin only where the cache cannot.
|
|
49
|
+
*/
|
|
50
|
+
serve(content: SimCfContentRequest): Promise<SimCfContentStageResult>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { simCfCacheableRequest } from "../../cache/sim-cf-cacheable-request.js";
|
|
2
|
+
import { simCfCacheTtlSec } from "../../cache/sim-cf-cache-ttl.js";
|
|
3
|
+
import { simCfErrorCacheTtlSec } from "../../cache/sim-cf-error-cache-ttl.js";
|
|
4
|
+
/**
|
|
5
|
+
* Answers a request from the Distribution's cache, or from the Origin.
|
|
6
|
+
*
|
|
7
|
+
* This is CloudFront's cache lookup and everything behind it. A key the cache
|
|
8
|
+
* holds unexpired is answered with the Origin left unread. A miss goes to the
|
|
9
|
+
* Origin, has an error replaced with the Distribution's custom error page, and
|
|
10
|
+
* is stored under the key it missed on for as long as the Origin's headers and
|
|
11
|
+
* the cache policy between them allow.
|
|
12
|
+
*
|
|
13
|
+
* An error is stored for a TTL of its own. The `ErrorCachingMinTTL` of the
|
|
14
|
+
* custom error response matching the status decides it, whether the Origin
|
|
15
|
+
* answered with the error or an origin-response function made one of an
|
|
16
|
+
* Origin's answer.
|
|
17
|
+
*/
|
|
18
|
+
export class SimCfContentStage {
|
|
19
|
+
originStage;
|
|
20
|
+
customErrorResponder;
|
|
21
|
+
constructor(originStage, customErrorResponder) {
|
|
22
|
+
this.originStage = originStage;
|
|
23
|
+
this.customErrorResponder = customErrorResponder;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Answer one request, reading the Origin only where the cache cannot.
|
|
27
|
+
*/
|
|
28
|
+
async serve(content) {
|
|
29
|
+
const { request, distribution, behaviour } = content;
|
|
30
|
+
const cacheable = simCfCacheableRequest(content);
|
|
31
|
+
const cached = cacheable === undefined
|
|
32
|
+
? undefined
|
|
33
|
+
: distribution.cache.read(cacheable.key);
|
|
34
|
+
// A hit is answered as the Origin answered it when it was stored, so the
|
|
35
|
+
// status the pipeline reads is the cached one and a viewer-response
|
|
36
|
+
// function runs on a hit as it ran on the miss that filled the cache.
|
|
37
|
+
if (cached !== undefined) {
|
|
38
|
+
return { response: cached, originStatus: cached.status, cacheHit: true };
|
|
39
|
+
}
|
|
40
|
+
const originResult = await this.originStage.fetch(request, distribution, behaviour);
|
|
41
|
+
const response = await this.customErrorResponder.apply(request, distribution, originResult.response);
|
|
42
|
+
if (cacheable === undefined) {
|
|
43
|
+
return {
|
|
44
|
+
response,
|
|
45
|
+
originStatus: originResult.originStatus,
|
|
46
|
+
cacheHit: false,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const errorTtlSec = simCfErrorCacheTtlSec({
|
|
50
|
+
originStatus: originResult.originStatus,
|
|
51
|
+
response,
|
|
52
|
+
customErrorResponses: distribution.customErrorResponses,
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
response: await distribution.cache.store(cacheable.key, response, errorTtlSec ??
|
|
56
|
+
simCfCacheTtlSec({
|
|
57
|
+
response,
|
|
58
|
+
policy: cacheable.policy,
|
|
59
|
+
now: distribution.clock.now(),
|
|
60
|
+
})),
|
|
61
|
+
originStatus: originResult.originStatus,
|
|
62
|
+
cacheHit: false,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -6,7 +6,7 @@ import { SimCffApplicator } from "../cff/sim-cff-applicator.js";
|
|
|
6
6
|
import { SimLambdaEdgeApplicator } from "../edge/sim-lambda-edge-applicator.js";
|
|
7
7
|
import { SimLambdaEdgeOriginApplicator } from "../edge/sim-lambda-edge-origin-applicator.js";
|
|
8
8
|
import { SimCloudFrontOriginFetcher } from "../origin/sim-cloudfront-origin-fetcher.js";
|
|
9
|
-
import {
|
|
9
|
+
import { SimCfContentStage } from "../content/sim-cf-content-stage.js";
|
|
10
10
|
import { SimCfCustomErrorResponder } from "../error/sim-cf-custom-error-responder.js";
|
|
11
11
|
import { SimCfResponseHeadersApplicator } from "../response-headers/sim-cf-response-headers-applicator.js";
|
|
12
12
|
import { SimCfWebAclGuard } from "../web-acl/sim-cf-web-acl-guard.js";
|
|
@@ -29,8 +29,7 @@ export interface SimCloudFrontControllerDependencies {
|
|
|
29
29
|
readonly behaviourResolver: SimCloudFrontBehaviorResolver;
|
|
30
30
|
readonly cffApplicator: SimCffApplicator;
|
|
31
31
|
readonly edgeApplicator: SimLambdaEdgeApplicator;
|
|
32
|
-
readonly
|
|
33
|
-
readonly customErrorResponder: SimCfCustomErrorResponder;
|
|
32
|
+
readonly contentStage: SimCfContentStage;
|
|
34
33
|
readonly responseHeadersApplicator: SimCfResponseHeadersApplicator;
|
|
35
34
|
}
|
|
36
35
|
/**
|
|
@@ -7,6 +7,7 @@ import { SimLambdaEdgeOriginApplicator } from "../edge/sim-lambda-edge-origin-ap
|
|
|
7
7
|
import { SimAwsCfEdgeFunctions } from "../../edge/sim-aws-cf-edge-functions.js";
|
|
8
8
|
import { SimCloudFrontOriginFetcher } from "../origin/sim-cloudfront-origin-fetcher.js";
|
|
9
9
|
import { SimCfOriginStage } from "../origin/sim-cf-origin-stage.js";
|
|
10
|
+
import { SimCfContentStage } from "../content/sim-cf-content-stage.js";
|
|
10
11
|
import { SimCfCustomErrorResponder } from "../error/sim-cf-custom-error-responder.js";
|
|
11
12
|
import { SimCfResponseHeadersApplicator } from "../response-headers/sim-cf-response-headers-applicator.js";
|
|
12
13
|
import { SimCfWebAclGuard } from "../web-acl/sim-cf-web-acl-guard.js";
|
|
@@ -40,10 +41,9 @@ export class SimCloudFrontControllerDependenciesFactory {
|
|
|
40
41
|
cffApplicator: properties.cffApplicator ?? new SimCffApplicator(),
|
|
41
42
|
edgeApplicator: properties.edgeApplicator ??
|
|
42
43
|
new SimLambdaEdgeApplicator({ edgeFunctions }),
|
|
43
|
-
|
|
44
|
-
new SimLambdaEdgeOriginApplicator({ edgeFunctions })),
|
|
45
|
-
|
|
46
|
-
new SimCfCustomErrorResponder({ behaviourResolver, originFetcher }),
|
|
44
|
+
contentStage: new SimCfContentStage(new SimCfOriginStage(originFetcher, properties.edgeOriginApplicator ??
|
|
45
|
+
new SimLambdaEdgeOriginApplicator({ edgeFunctions })), properties.customErrorResponder ??
|
|
46
|
+
new SimCfCustomErrorResponder({ behaviourResolver, originFetcher })),
|
|
47
47
|
responseHeadersApplicator: properties.responseHeadersApplicator ??
|
|
48
48
|
new SimCfResponseHeadersApplicator(),
|
|
49
49
|
};
|
|
@@ -12,6 +12,10 @@ interface SimCfCustomErrorResponderProperties {
|
|
|
12
12
|
* matching the response page path decides which Origin it comes from. That is
|
|
13
13
|
* what lets a Distribution keep its error pages somewhere other than the
|
|
14
14
|
* content that failed, as CloudFront does.
|
|
15
|
+
*
|
|
16
|
+
* A rule carrying `ErrorCachingMinTTL` alone has no page. The Origin's error
|
|
17
|
+
* reaches the viewer, and the rule says how long the Distribution holds it
|
|
18
|
+
* for.
|
|
15
19
|
*/
|
|
16
20
|
export declare class SimCfCustomErrorResponder {
|
|
17
21
|
private readonly behaviourResolver;
|