@kensio/yulin 1.20.16 → 1.20.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
- package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
- package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
- package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
- package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
- package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
- package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +25 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +21 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +28 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +48 -0
- package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
- package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
- package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
- package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
- package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
- package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
- package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
- package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
- package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
- package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +27 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +42 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +8 -7
- package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +11 -37
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +50 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +10 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
- package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
- package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
- package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
- package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
- package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
- package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
- package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +28 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +41 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +6 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +4 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +3 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
- package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
- package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
- package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
- package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
- package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
- package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
- package/dist/service/cloudfront/sim-cf-etag.js +10 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +8 -12
- package/dist/service/cloudfront/sim-cloudfront-commands.js +8 -17
- package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +43 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.js +53 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts +13 -17
- package/dist/service/cloudfront/sim-cloudfront.js +22 -25
- package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
- package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
- package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
- package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
- package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
- package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
- package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
- package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
- package/dist/service/ecr/sim-ecr.d.ts +7 -0
- package/dist/service/ecr/sim-ecr.js +16 -4
- package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
- package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
- package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
- package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
- package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
- package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
- package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
- package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
- package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
- package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
- package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
- package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
- package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
- package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
- package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
- package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
- package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
- package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
- package/dist/service/firehose/source/sim-firehose-source.js +5 -0
- package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
- package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
- package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
- package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +33 -2
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +33 -2
- package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
- package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
- package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +87 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
- package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
- package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
- package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
- package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
- package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
- package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
- package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
- package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
- package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
- package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
- package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
- package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
- package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
- package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
- package/dist/service/iam/error/sim-iam.error.js +13 -0
- package/dist/service/iam/index.d.ts +1 -0
- package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
- package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
- package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
- package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
- package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
- package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
- package/dist/service/iam/sim-iam-account-parts.js +1 -0
- package/dist/service/iam/sim-iam.d.ts +12 -2
- package/dist/service/iam/sim-iam.js +12 -0
- package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
- package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
- package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
- package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
- package/dist/service/kms/command/sim-kms-request-options.d.ts +11 -0
- package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
- package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
- package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
- package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
- package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
- package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
- package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
- package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
- package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
- package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
- package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
- package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
- package/dist/service/logs/sim-logs-commands.d.ts +3 -0
- package/dist/service/logs/sim-logs-commands.js +4 -0
- package/dist/service/logs/sim-logs.js +6 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
- package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
- package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
- package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
- package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +6 -4
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
- package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
- package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +15 -9
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +20 -10
- package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
- package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
- package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
- package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
- package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
- package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
- package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
- package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
- package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
- package/dist/service/stepfunctions/sim-step-functions.js +26 -9
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
- package/dist/service/sts/sim-sts.d.ts +9 -0
- package/dist/service/sts/sim-sts.js +4 -0
- package/dist/util/memo/bounded-memo.d.ts +36 -0
- package/dist/util/memo/bounded-memo.js +58 -0
- package/docs/sdk/README.md +3 -1
- package/docs/services/cloudformation/README.md +196 -11
- package/docs/services/cloudfront/README.md +230 -6
- package/docs/services/cloudwatch/README.md +6 -4
- package/docs/services/cognito/README.md +8 -7
- package/docs/services/dynamodb/README.md +6 -5
- package/docs/services/ecs/README.md +20 -9
- package/docs/services/elbv2/README.md +6 -2
- package/docs/services/eventbridge/README.md +9 -1
- package/docs/services/firehose/README.md +9 -3
- package/docs/services/glue/README.md +6 -0
- package/docs/services/iam/README.md +322 -27
- package/docs/services/kinesis/README.md +3 -2
- package/docs/services/kms/README.md +7 -2
- package/docs/services/lambda/README.md +76 -2
- package/docs/services/logs/README.md +16 -2
- package/docs/services/s3/README.md +7 -2
- package/docs/services/scheduler/README.md +12 -4
- package/docs/services/secretsmanager/README.md +6 -3
- package/docs/services/ses/README.md +3 -1
- package/docs/services/sns/README.md +5 -5
- package/docs/services/sqs/README.md +5 -5
- package/docs/services/ssm/README.md +40 -16
- package/docs/services/stepfunctions/README.md +11 -2
- package/docs/services/wafv2/README.md +5 -3
- package/package.json +1 -1
- package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
|
@@ -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` naming a policy it does not
|
|
13
|
-
* Resource of its own for any of
|
|
14
|
-
* Distribution itself, and refusing one would take the
|
|
15
|
-
* something that was never the point of the template.
|
|
16
|
-
* server and a suite of tests make requests to has to
|
|
12
|
+
* `ResponseHeadersPolicyId` or `CachePolicyId` naming a policy it does not
|
|
13
|
+
* hold. CloudFront has no Resource of its own for any of them, so all of them
|
|
14
|
+
* live on the Distribution itself, and refusing one would take the
|
|
15
|
+
* Distribution down over something that was never the point of the template.
|
|
16
|
+
* The site a local dev server and a suite of tests make requests to has to
|
|
17
|
+
* 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,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Takes a policy ID naming a policy this simulation does not hold off the
|
|
3
|
+
* Behavior that named it, and records each one on the Resource.
|
|
4
|
+
*/
|
|
5
|
+
export class SimCfnCfDistroPolicyDrops {
|
|
6
|
+
resource;
|
|
7
|
+
cloudFront;
|
|
8
|
+
count = 0;
|
|
9
|
+
constructor(resource, cloudFront) {
|
|
10
|
+
this.resource = resource;
|
|
11
|
+
this.cloudFront = cloudFront;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* One Behavior, keeping the policies that are here and dropping those that
|
|
15
|
+
* are not.
|
|
16
|
+
*/
|
|
17
|
+
heldPolicies(behavior, behaviorPath) {
|
|
18
|
+
const withHeaders = this.heldPolicy(behavior, behaviorPath, "ResponseHeadersPolicyId", (policyId) => this.cloudFront.getResponseHeadersPolicyById(policyId) !== undefined, headersPolicyDropReason);
|
|
19
|
+
return this.heldPolicy(withHeaders, behaviorPath, "CachePolicyId", (policyId) => this.cloudFront.getCachePolicyById(policyId) !== undefined, cachePolicyDropReason);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One policy property of one Behavior, dropped where the ID names nothing
|
|
23
|
+
* this simulation holds.
|
|
24
|
+
*/
|
|
25
|
+
heldPolicy(behavior, behaviorPath, property, held, reason) {
|
|
26
|
+
// oxlint-disable-next-line security/detect-object-injection
|
|
27
|
+
const policyId = behavior[property];
|
|
28
|
+
if (policyId === undefined || held(policyId)) {
|
|
29
|
+
return behavior;
|
|
30
|
+
}
|
|
31
|
+
this.count += 1;
|
|
32
|
+
this.resource.ignoreProperty(`${behaviorPath}.${property}`, reason(policyId));
|
|
33
|
+
return { ...behavior, [property]: undefined };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* What a Behavior loses along with a response headers policy.
|
|
38
|
+
*/
|
|
39
|
+
function headersPolicyDropReason(policyId) {
|
|
40
|
+
return (`response headers policy ${policyId} is not held by this simulation, so ` +
|
|
41
|
+
`the Behavior is deployed without one and serves every response without ` +
|
|
42
|
+
`the headers that policy would have set`);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* What a Behavior loses along with a cache policy.
|
|
46
|
+
*/
|
|
47
|
+
function cachePolicyDropReason(policyId) {
|
|
48
|
+
return (`cache policy ${policyId} is not held by this simulation, so the ` +
|
|
49
|
+
`Behavior is deployed without one and reports no CachePolicyId`);
|
|
50
|
+
}
|
|
@@ -9,6 +9,7 @@ export declare class SimCloudFrontCloudFormationResourceFactory implements SimCf
|
|
|
9
9
|
private readonly functionCreator;
|
|
10
10
|
private readonly distroDeleter;
|
|
11
11
|
private readonly responseHeadersPolicyCreator;
|
|
12
|
+
private readonly cachePolicyCreator;
|
|
12
13
|
private readonly originAccessControlCreator;
|
|
13
14
|
private readonly keyValueStoreCreator;
|
|
14
15
|
constructor(cloudFront: SimCloudFront);
|
|
@@ -3,6 +3,7 @@ import { SimCfnCfDistroCreator } from "./distro/sim-cfn-cf-distro-creator.js";
|
|
|
3
3
|
import { SimCfnCffCreator } from "./cff/sim-cfn-cff-creator.js";
|
|
4
4
|
import { SimCfnCfDistroDeleter } from "./distro/sim-cfn-cf-distro-deleter.js";
|
|
5
5
|
import { SimCfnCfResponseHeadersPolicyCreator } from "./response-headers-policy/sim-cfn-cf-rh-policy-creator.js";
|
|
6
|
+
import { SimCfnCfCachePolicyCreator } from "./cache-policy/sim-cfn-cf-cache-policy-creator.js";
|
|
6
7
|
import { SimCfnCfOriginAccessControlCreator } from "./origin-access-control/sim-cfn-cf-oac-creator.js";
|
|
7
8
|
import { SimCfnCfKeyValueStoreCreator } from "./key-value-store/sim-cfn-cf-kvs-creator.js";
|
|
8
9
|
/**
|
|
@@ -13,6 +14,7 @@ export class SimCloudFrontCloudFormationResourceFactory {
|
|
|
13
14
|
functionCreator;
|
|
14
15
|
distroDeleter;
|
|
15
16
|
responseHeadersPolicyCreator;
|
|
17
|
+
cachePolicyCreator;
|
|
16
18
|
originAccessControlCreator;
|
|
17
19
|
keyValueStoreCreator;
|
|
18
20
|
constructor(cloudFront) {
|
|
@@ -21,6 +23,7 @@ export class SimCloudFrontCloudFormationResourceFactory {
|
|
|
21
23
|
this.distroDeleter = new SimCfnCfDistroDeleter({ cloudFront });
|
|
22
24
|
this.responseHeadersPolicyCreator =
|
|
23
25
|
new SimCfnCfResponseHeadersPolicyCreator({ cloudFront });
|
|
26
|
+
this.cachePolicyCreator = new SimCfnCfCachePolicyCreator({ cloudFront });
|
|
24
27
|
this.originAccessControlCreator = new SimCfnCfOriginAccessControlCreator({
|
|
25
28
|
cloudFront,
|
|
26
29
|
});
|
|
@@ -43,6 +46,9 @@ export class SimCloudFrontCloudFormationResourceFactory {
|
|
|
43
46
|
case "ResponseHeadersPolicy": {
|
|
44
47
|
return this.responseHeadersPolicyCreator.create(resource, properties);
|
|
45
48
|
}
|
|
49
|
+
case "CachePolicy": {
|
|
50
|
+
return this.cachePolicyCreator.create(resource, properties);
|
|
51
|
+
}
|
|
46
52
|
case "OriginAccessControl": {
|
|
47
53
|
return this.originAccessControlCreator.create(resource, properties);
|
|
48
54
|
}
|
|
@@ -73,6 +79,10 @@ export class SimCloudFrontCloudFormationResourceFactory {
|
|
|
73
79
|
this.responseHeadersPolicyCreator.delete(resource);
|
|
74
80
|
return;
|
|
75
81
|
}
|
|
82
|
+
case "CachePolicy": {
|
|
83
|
+
this.cachePolicyCreator.delete(resource);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
76
86
|
case "OriginAccessControl": {
|
|
77
87
|
this.originAccessControlCreator.delete(resource);
|
|
78
88
|
return;
|
package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts
CHANGED
|
@@ -144,6 +144,7 @@ export interface SimCloudFrontDefaultCacheBehaviorConfig {
|
|
|
144
144
|
readonly FunctionAssociations?: SimCloudFrontFunctionAssociations | undefined;
|
|
145
145
|
readonly LambdaFunctionAssociations?: SimCloudFrontLambdaFunctionAssociations | undefined;
|
|
146
146
|
readonly ResponseHeadersPolicyId?: string | undefined;
|
|
147
|
+
readonly CachePolicyId?: string | undefined;
|
|
147
148
|
}
|
|
148
149
|
/**
|
|
149
150
|
* Minimal structural sim CloudFront cache behavior config.
|
package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfro
|
|
|
7
7
|
import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
|
|
8
8
|
import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
|
|
9
9
|
import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
10
|
+
import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
|
|
10
11
|
import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
|
|
11
12
|
import type { BackgroundScheduler } from "../../../../util/background/background.js";
|
|
12
13
|
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
@@ -21,6 +22,7 @@ interface CreateDistributionCommandHandlerProperties {
|
|
|
21
22
|
readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
|
|
22
23
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
23
24
|
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
25
|
+
readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
|
|
24
26
|
readonly webAclResolver?: SimCfWebAclResolver | undefined;
|
|
25
27
|
readonly iam?: SimIamInterServiceAuthZ;
|
|
26
28
|
readonly acmRegistry?: SimAcmRegistry | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
2
|
import { SimCloudFrontFunction, } from "../../cff/sim-cloudfront-function.js";
|
|
3
|
-
import { CffUint8ArrayFunctionCodeExtractor } from "../../cff/function-code-input/cff-function-code-input.js";
|
|
3
|
+
import { cffFunctionCodeSource, CffUint8ArrayFunctionCodeExtractor, } from "../../cff/function-code-input/cff-function-code-input.js";
|
|
4
4
|
import { cffCloudFrontModule } from "../../cff/kvs/cff-cloudfront-module.js";
|
|
5
5
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
6
6
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
@@ -50,6 +50,12 @@ export class CreateFunctionCommandHandler {
|
|
|
50
50
|
accountId: this.accountId,
|
|
51
51
|
handlerFunction,
|
|
52
52
|
keyValueStore,
|
|
53
|
+
// The config a Function was created with is what every read of it
|
|
54
|
+
// reports, so it is kept rather than only acted on here.
|
|
55
|
+
comment: command.input.FunctionConfig?.Comment,
|
|
56
|
+
runtime: command.input.FunctionConfig?.Runtime,
|
|
57
|
+
functionCode: cffFunctionCodeSource(command.input.FunctionCode),
|
|
58
|
+
createdTime: this.background.now(),
|
|
53
59
|
});
|
|
54
60
|
this.cloudFrontFunctions.set(simCff.name, simCff);
|
|
55
61
|
// New CFF becomes available async in background.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
|
|
3
|
+
import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput } from "./sim-cf-function-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront DescribeFunction command.
|
|
6
|
+
*
|
|
7
|
+
* This is the Function's configuration without its code. GetFunction is the
|
|
8
|
+
* one that answers with the code.
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/DescribeFunctionCommand/
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimCfDescribeFunction {
|
|
13
|
+
private readonly access;
|
|
14
|
+
private static readonly action;
|
|
15
|
+
constructor(access: SimCfFunctionAccess);
|
|
16
|
+
/**
|
|
17
|
+
* Describe one sim CloudFront Function.
|
|
18
|
+
*/
|
|
19
|
+
handle(command: SimDescribeFunctionCommand, options?: {
|
|
20
|
+
readonly caller?: SimAwsCaller;
|
|
21
|
+
}): Promise<SimDescribeFunctionCommandOutput>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { simCffRequestedStage } from "../../cff/sim-cff-stage.js";
|
|
3
|
+
import { simCfFunctionSummary } from "./sim-cf-function-summary.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront DescribeFunction command.
|
|
6
|
+
*
|
|
7
|
+
* This is the Function's configuration without its code. GetFunction is the
|
|
8
|
+
* one that answers with the code.
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/DescribeFunctionCommand/
|
|
11
|
+
*/
|
|
12
|
+
export class SimCfDescribeFunction {
|
|
13
|
+
access;
|
|
14
|
+
static action = "cloudfront:DescribeFunction";
|
|
15
|
+
constructor(access) {
|
|
16
|
+
this.access = access;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Describe one sim CloudFront Function.
|
|
20
|
+
*/
|
|
21
|
+
async handle(command, options) {
|
|
22
|
+
assertDefined(command.input.Name, "DescribeFunctionCommand.input.Name");
|
|
23
|
+
const stage = simCffRequestedStage(command.input.Stage);
|
|
24
|
+
await this.access.background.sequence();
|
|
25
|
+
const cloudFrontFunction = this.access.authorizedByName(SimCfDescribeFunction.action, command.input.Name, stage, options?.caller);
|
|
26
|
+
return {
|
|
27
|
+
$metadata: {},
|
|
28
|
+
FunctionSummary: simCfFunctionSummary(cloudFrontFunction, stage),
|
|
29
|
+
ETag: cloudFrontFunction.config.etag,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
|
|
6
|
+
import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
|
|
7
|
+
import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
|
|
8
|
+
interface SimCfFunctionAccessProperties {
|
|
9
|
+
readonly accountId: SimAwsAccountId;
|
|
10
|
+
readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
|
|
11
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
12
|
+
readonly background: BackgroundScheduler;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* What every command reading a Function back needs: the Functions, IAM, and
|
|
16
|
+
* the clock.
|
|
17
|
+
*
|
|
18
|
+
* ListFunctions, DescribeFunction and GetFunction authorize the same way and
|
|
19
|
+
* resolve a Function the same way, so the wiring is here once rather than in
|
|
20
|
+
* each of them. Each command class is then only its own AWS behaviour.
|
|
21
|
+
*/
|
|
22
|
+
export declare class SimCfFunctionAccess {
|
|
23
|
+
readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
|
|
24
|
+
readonly background: BackgroundScheduler;
|
|
25
|
+
private readonly accountId;
|
|
26
|
+
private readonly iam;
|
|
27
|
+
constructor(properties: SimCfFunctionAccessProperties);
|
|
28
|
+
/**
|
|
29
|
+
* Ensure the caller may take an action on a Function ARN.
|
|
30
|
+
*/
|
|
31
|
+
authorize(action: string, resource: string, caller?: SimAwsCaller): void;
|
|
32
|
+
/**
|
|
33
|
+
* Ensure the caller may take an action on any Function in the Account.
|
|
34
|
+
*
|
|
35
|
+
* ListFunctions names no Function, so a policy granting it has to use the
|
|
36
|
+
* wildcard, and this is what it is authorized against.
|
|
37
|
+
*/
|
|
38
|
+
authorizeAnyFunction(action: string, caller?: SimAwsCaller): void;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve a Function in a stage, having authorized the action against it.
|
|
41
|
+
*
|
|
42
|
+
* The ARN is built from the name the caller gave, so authorization happens
|
|
43
|
+
* before the Function map is read and an unauthorized caller is refused
|
|
44
|
+
* whether or not the name resolves.
|
|
45
|
+
*/
|
|
46
|
+
authorizedByName(action: string, functionName: string, stage: SimCloudFrontFunctionStage, caller?: SimAwsCaller): SimCloudFrontFunction;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { simCfAuthorize } from "../../sim-cf-authorize.js";
|
|
2
|
+
import { simCfFunctionInStage } from "./sim-cf-function-lookup.js";
|
|
3
|
+
/**
|
|
4
|
+
* What every command reading a Function back needs: the Functions, IAM, and
|
|
5
|
+
* the clock.
|
|
6
|
+
*
|
|
7
|
+
* ListFunctions, DescribeFunction and GetFunction authorize the same way and
|
|
8
|
+
* resolve a Function the same way, so the wiring is here once rather than in
|
|
9
|
+
* each of them. Each command class is then only its own AWS behaviour.
|
|
10
|
+
*/
|
|
11
|
+
export class SimCfFunctionAccess {
|
|
12
|
+
cloudFrontFunctions;
|
|
13
|
+
background;
|
|
14
|
+
accountId;
|
|
15
|
+
iam;
|
|
16
|
+
constructor(properties) {
|
|
17
|
+
this.accountId = properties.accountId;
|
|
18
|
+
this.cloudFrontFunctions = properties.cloudFrontFunctions;
|
|
19
|
+
this.iam = properties.iam;
|
|
20
|
+
this.background = properties.background;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Ensure the caller may take an action on a Function ARN.
|
|
24
|
+
*/
|
|
25
|
+
authorize(action, resource, caller) {
|
|
26
|
+
simCfAuthorize({ iam: this.iam, action, resource, caller });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Ensure the caller may take an action on any Function in the Account.
|
|
30
|
+
*
|
|
31
|
+
* ListFunctions names no Function, so a policy granting it has to use the
|
|
32
|
+
* wildcard, and this is what it is authorized against.
|
|
33
|
+
*/
|
|
34
|
+
authorizeAnyFunction(action, caller) {
|
|
35
|
+
this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/*`, caller);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a Function in a stage, having authorized the action against it.
|
|
39
|
+
*
|
|
40
|
+
* The ARN is built from the name the caller gave, so authorization happens
|
|
41
|
+
* before the Function map is read and an unauthorized caller is refused
|
|
42
|
+
* whether or not the name resolves.
|
|
43
|
+
*/
|
|
44
|
+
authorizedByName(action, functionName, stage, caller) {
|
|
45
|
+
this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/${functionName}`, caller);
|
|
46
|
+
return simCfFunctionInStage(this.cloudFrontFunctions, functionName, stage);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural types for the commands that read a CloudFront Function back.
|
|
3
|
+
*
|
|
4
|
+
* ListFunctions, DescribeFunction and GetFunction all address a Function by
|
|
5
|
+
* name and a stage, and answer with the same summary shape, so their types are
|
|
6
|
+
* together here rather than one file each.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
|
|
9
|
+
*/
|
|
10
|
+
import type { SimArn } from "../../../aws/arn.js";
|
|
11
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
12
|
+
import type { SimCloudFrontFunctionRuntime } from "../../cff/sim-cff-configuration.js";
|
|
13
|
+
import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
|
|
14
|
+
/**
|
|
15
|
+
* Minimal structural sim CloudFront Function config.
|
|
16
|
+
*/
|
|
17
|
+
export interface SimCfFunctionConfig {
|
|
18
|
+
Comment: string;
|
|
19
|
+
Runtime: SimCloudFrontFunctionRuntime;
|
|
20
|
+
KeyValueStoreAssociations?: {
|
|
21
|
+
Quantity: number;
|
|
22
|
+
Items: {
|
|
23
|
+
KeyValueStoreARN: SimArn;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Minimal structural sim CloudFront Function metadata.
|
|
29
|
+
*/
|
|
30
|
+
export interface SimCfFunctionMetadata {
|
|
31
|
+
FunctionARN: SimArn;
|
|
32
|
+
Stage: SimCloudFrontFunctionStage;
|
|
33
|
+
CreatedTime: Date;
|
|
34
|
+
LastModifiedTime: Date;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Minimal structural sim CloudFront Function summary.
|
|
38
|
+
*/
|
|
39
|
+
export interface SimCfFunctionSummary {
|
|
40
|
+
Name: string;
|
|
41
|
+
Status: string;
|
|
42
|
+
FunctionConfig: SimCfFunctionConfig;
|
|
43
|
+
FunctionMetadata: SimCfFunctionMetadata;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Minimal structural sim CloudFront ListFunctions command.
|
|
47
|
+
*/
|
|
48
|
+
export interface SimListFunctionsCommand {
|
|
49
|
+
readonly input: {
|
|
50
|
+
readonly Stage?: string | undefined;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Minimal structural sim CloudFront ListFunctions output.
|
|
55
|
+
*/
|
|
56
|
+
export interface SimListFunctionsCommandOutput {
|
|
57
|
+
readonly $metadata: SimResponseMetadata;
|
|
58
|
+
FunctionList: {
|
|
59
|
+
Quantity: number;
|
|
60
|
+
Items: SimCfFunctionSummary[];
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Minimal structural sim CloudFront DescribeFunction command.
|
|
65
|
+
*/
|
|
66
|
+
export interface SimDescribeFunctionCommand {
|
|
67
|
+
readonly input: {
|
|
68
|
+
readonly Name?: string | undefined;
|
|
69
|
+
readonly Stage?: string | undefined;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Minimal structural sim CloudFront DescribeFunction output.
|
|
74
|
+
*/
|
|
75
|
+
export interface SimDescribeFunctionCommandOutput {
|
|
76
|
+
readonly $metadata: SimResponseMetadata;
|
|
77
|
+
FunctionSummary: SimCfFunctionSummary;
|
|
78
|
+
ETag: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Minimal structural sim CloudFront GetFunction command.
|
|
82
|
+
*/
|
|
83
|
+
export interface SimGetFunctionCommand {
|
|
84
|
+
readonly input: {
|
|
85
|
+
readonly Name?: string | undefined;
|
|
86
|
+
readonly Stage?: string | undefined;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Minimal structural sim CloudFront GetFunction output.
|
|
91
|
+
*/
|
|
92
|
+
export interface SimGetFunctionCommandOutput {
|
|
93
|
+
readonly $metadata: SimResponseMetadata;
|
|
94
|
+
FunctionCode: Uint8Array;
|
|
95
|
+
ETag: string;
|
|
96
|
+
ContentType: string;
|
|
97
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural types for the commands that read a CloudFront Function back.
|
|
3
|
+
*
|
|
4
|
+
* ListFunctions, DescribeFunction and GetFunction all address a Function by
|
|
5
|
+
* name and a stage, and answer with the same summary shape, so their types are
|
|
6
|
+
* together here rather than one file each.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
|
|
2
|
+
import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
|
|
3
|
+
import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a Function a stage can be read from.
|
|
6
|
+
*
|
|
7
|
+
* A name the Account holds no Function under is refused, and so is one whose
|
|
8
|
+
* Function has not reached the stage asked for. Both answer with
|
|
9
|
+
* NoSuchFunctionExists. That is what CloudFront answers when a stage holds
|
|
10
|
+
* nothing under the name asked for.
|
|
11
|
+
*/
|
|
12
|
+
export declare function simCfFunctionInStage(cloudFrontFunctions: SimCloudFrontFunctionMap, functionName: string, stage: SimCloudFrontFunctionStage): SimCloudFrontFunction;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { simCffInStage, } from "../../cff/sim-cff-stage.js";
|
|
2
|
+
import { SimCloudFrontNoSuchFunctionExists } from "../../error/sim-cloudfront.error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a Function a stage can be read from.
|
|
5
|
+
*
|
|
6
|
+
* A name the Account holds no Function under is refused, and so is one whose
|
|
7
|
+
* Function has not reached the stage asked for. Both answer with
|
|
8
|
+
* NoSuchFunctionExists. That is what CloudFront answers when a stage holds
|
|
9
|
+
* nothing under the name asked for.
|
|
10
|
+
*/
|
|
11
|
+
export function simCfFunctionInStage(cloudFrontFunctions, functionName, stage) {
|
|
12
|
+
const cloudFrontFunction = cloudFrontFunctions.get(functionName);
|
|
13
|
+
if (cloudFrontFunction === undefined) {
|
|
14
|
+
throw new SimCloudFrontNoSuchFunctionExists(`No sim CloudFront Function named ${functionName}`);
|
|
15
|
+
}
|
|
16
|
+
if (!simCffInStage(cloudFrontFunction, stage)) {
|
|
17
|
+
throw new SimCloudFrontNoSuchFunctionExists(`Sim CloudFront Function ${functionName} has not been published, so it ` +
|
|
18
|
+
`is in DEVELOPMENT and not in ${stage}`);
|
|
19
|
+
}
|
|
20
|
+
return cloudFrontFunction;
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
|
|
2
|
+
import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
|
|
3
|
+
import type { SimCfFunctionSummary } from "./sim-cf-function-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Describe a Function the way ListFunctions and DescribeFunction both do.
|
|
6
|
+
*
|
|
7
|
+
* The stage comes from the request rather than the Function, because a
|
|
8
|
+
* published Function is in both stages and answers under whichever one was
|
|
9
|
+
* asked for.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simCfFunctionSummary(cloudFrontFunction: SimCloudFrontFunction, stage: SimCloudFrontFunctionStage): SimCfFunctionSummary;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describe a Function the way ListFunctions and DescribeFunction both do.
|
|
3
|
+
*
|
|
4
|
+
* The stage comes from the request rather than the Function, because a
|
|
5
|
+
* published Function is in both stages and answers under whichever one was
|
|
6
|
+
* asked for.
|
|
7
|
+
*/
|
|
8
|
+
export function simCfFunctionSummary(cloudFrontFunction, stage) {
|
|
9
|
+
const keyValueStore = cloudFrontFunction.keyValueStore;
|
|
10
|
+
return {
|
|
11
|
+
Name: cloudFrontFunction.name,
|
|
12
|
+
Status: cloudFrontFunction.status,
|
|
13
|
+
FunctionConfig: {
|
|
14
|
+
Comment: cloudFrontFunction.config.comment,
|
|
15
|
+
Runtime: cloudFrontFunction.config.runtime,
|
|
16
|
+
...(keyValueStore !== undefined && {
|
|
17
|
+
KeyValueStoreAssociations: {
|
|
18
|
+
Quantity: 1,
|
|
19
|
+
Items: [{ KeyValueStoreARN: keyValueStore.arn }],
|
|
20
|
+
},
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
23
|
+
FunctionMetadata: {
|
|
24
|
+
FunctionARN: cloudFrontFunction.arn,
|
|
25
|
+
Stage: stage,
|
|
26
|
+
CreatedTime: cloudFrontFunction.config.createdTime,
|
|
27
|
+
LastModifiedTime: cloudFrontFunction.config.lastModifiedTime,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
|
|
3
|
+
import type { SimGetFunctionCommand, SimGetFunctionCommandOutput } from "./sim-cf-function-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront GetFunction command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimCfGetFunction {
|
|
10
|
+
private readonly access;
|
|
11
|
+
private static readonly action;
|
|
12
|
+
constructor(access: SimCfFunctionAccess);
|
|
13
|
+
/**
|
|
14
|
+
* Get one sim CloudFront Function's code.
|
|
15
|
+
*
|
|
16
|
+
* A Function created from source answers with the source it was given. One
|
|
17
|
+
* created from a handler function reference has no uploaded source, and
|
|
18
|
+
* answers with that handler's own source text. That is the code it runs.
|
|
19
|
+
*/
|
|
20
|
+
handle(command: SimGetFunctionCommand, options?: {
|
|
21
|
+
readonly caller?: SimAwsCaller;
|
|
22
|
+
}): Promise<SimGetFunctionCommandOutput>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { simCffRequestedStage } from "../../cff/sim-cff-stage.js";
|
|
3
|
+
/**
|
|
4
|
+
* Simulated CloudFront GetFunction command.
|
|
5
|
+
*
|
|
6
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
|
|
7
|
+
*/
|
|
8
|
+
export class SimCfGetFunction {
|
|
9
|
+
access;
|
|
10
|
+
static action = "cloudfront:GetFunction";
|
|
11
|
+
constructor(access) {
|
|
12
|
+
this.access = access;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get one sim CloudFront Function's code.
|
|
16
|
+
*
|
|
17
|
+
* A Function created from source answers with the source it was given. One
|
|
18
|
+
* created from a handler function reference has no uploaded source, and
|
|
19
|
+
* answers with that handler's own source text. That is the code it runs.
|
|
20
|
+
*/
|
|
21
|
+
async handle(command, options) {
|
|
22
|
+
assertDefined(command.input.Name, "GetFunctionCommand.input.Name");
|
|
23
|
+
const stage = simCffRequestedStage(command.input.Stage);
|
|
24
|
+
await this.access.background.sequence();
|
|
25
|
+
const cloudFrontFunction = this.access.authorizedByName(SimCfGetFunction.action, command.input.Name, stage, options?.caller);
|
|
26
|
+
return {
|
|
27
|
+
$metadata: {},
|
|
28
|
+
FunctionCode: cloudFrontFunction.config.functionCode,
|
|
29
|
+
ETag: cloudFrontFunction.config.etag,
|
|
30
|
+
ContentType: "application/octet-stream",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
|
|
3
|
+
import type { SimListFunctionsCommand, SimListFunctionsCommandOutput } from "./sim-cf-function-command.types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated CloudFront ListFunctions command.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimCfListFunctions {
|
|
10
|
+
private readonly access;
|
|
11
|
+
private static readonly action;
|
|
12
|
+
constructor(access: SimCfFunctionAccess);
|
|
13
|
+
/**
|
|
14
|
+
* List this Account's sim CloudFront Functions in one stage.
|
|
15
|
+
*
|
|
16
|
+
* The whole list comes back. `Marker` and `MaxItems` are the paging every
|
|
17
|
+
* other simulated listing leaves out, so there is no `NextMarker` either.
|
|
18
|
+
*/
|
|
19
|
+
handle(command: SimListFunctionsCommand, options?: {
|
|
20
|
+
readonly caller?: SimAwsCaller;
|
|
21
|
+
}): Promise<SimListFunctionsCommandOutput>;
|
|
22
|
+
}
|