@kensio/yulin 1.20.15 → 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/README.md +13 -0
- package/dist/sdk/module/sim-sdk-module-client-interceptor.d.ts +5 -0
- package/dist/sdk/module/sim-sdk-module-client-interceptor.js +14 -0
- package/dist/sdk/module/sim-sdk-static-client-factory.d.ts +26 -0
- package/dist/sdk/module/sim-sdk-static-client-factory.js +59 -0
- package/dist/sdk/send-patch.d.ts +8 -0
- package/dist/sdk/send-patch.js +11 -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 +39 -6
- package/dist/service/aws/caller/sim-aws-caller-resolver.js +32 -30
- package/dist/service/aws/caller/sim-aws-caller.d.ts +9 -0
- package/dist/service/aws/caller/sim-aws-resolved-caller.d.ts +19 -0
- package/dist/service/aws/caller/sim-aws-resolved-caller.js +26 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +12 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +6 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +12 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +9 -0
- package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
- package/dist/service/aws/sim-aws-properties.d.ts +15 -0
- package/dist/service/aws/sim-aws.js +2 -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 +36 -7
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +22 -11
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -71
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +7 -2
- 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 +21 -3
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +34 -10
- 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 +21 -5
- package/dist/service/iam/authorize/sim-iam-account-auth-z.js +7 -3
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -2
- package/dist/service/iam/authorize/sim-iam-authorizer.js +3 -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 +11 -0
- package/dist/service/iam/role/sim-iam-role-with-policy.factory.js +4 -2
- package/dist/service/iam/sim-iam-account-parts.d.ts +16 -0
- package/dist/service/iam/sim-iam-account-parts.js +2 -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/auth-z/assume-role-auth-z-coordinator.d.ts +9 -2
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -2
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +10 -4
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +8 -7
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +2 -2
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -2
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +14 -11
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +10 -1
- package/dist/service/sts/command/assume-role/assume-role.handler.js +6 -2
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +10 -1
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +5 -1
- package/dist/service/sts/service-role/sim-service-role.js +5 -1
- package/dist/service/sts/sim-sts.d.ts +18 -1
- package/dist/service/sts/sim-sts.js +8 -0
- package/dist/util/memo/bounded-memo.d.ts +36 -0
- package/dist/util/memo/bounded-memo.js +58 -0
- package/docs/README.md +54 -0
- package/docs/ai-skill/README.md +69 -0
- package/docs/cli/README.md +284 -0
- package/docs/factories/README.md +140 -0
- package/docs/lint/README.md +176 -0
- package/docs/non-aws-dependencies/README.md +261 -0
- package/docs/sdk/README.md +274 -0
- package/docs/serve/README.md +1126 -0
- package/docs/services/acm/README.md +823 -0
- package/docs/services/apigateway/README.md +1919 -0
- package/docs/services/apigatewayv2/README.md +2678 -0
- package/docs/services/athena/README.md +1044 -0
- package/docs/services/bedrock/README.md +350 -0
- package/docs/services/cloudformation/README.md +3625 -0
- package/docs/services/cloudfront/README.md +3098 -0
- package/docs/services/cloudwatch/README.md +422 -0
- package/docs/services/cognito/README.md +4924 -0
- package/docs/services/dynamodb/README.md +3785 -0
- package/docs/services/ecr/README.md +302 -0
- package/docs/services/ecs/README.md +2021 -0
- package/docs/services/elbv2/README.md +1901 -0
- package/docs/services/eventbridge/README.md +1118 -0
- package/docs/services/firehose/README.md +811 -0
- package/docs/services/glue/README.md +507 -0
- package/docs/services/iam/README.md +1578 -0
- package/docs/services/kinesis/README.md +455 -0
- package/docs/services/kms/README.md +664 -0
- package/docs/services/lambda/README.md +3719 -0
- package/docs/services/logs/README.md +882 -0
- package/docs/services/organizations/README.md +574 -0
- package/docs/services/personalize/README.md +835 -0
- package/docs/services/rekognition/README.md +1070 -0
- package/docs/services/route53/README.md +1783 -0
- package/docs/services/s3/README.md +3029 -0
- package/docs/services/scheduler/README.md +814 -0
- package/docs/services/secretsmanager/README.md +670 -0
- package/docs/services/ses/README.md +1013 -0
- package/docs/services/sns/README.md +1904 -0
- package/docs/services/sqs/README.md +1185 -0
- package/docs/services/ssm/README.md +1096 -0
- package/docs/services/stepfunctions/README.md +1341 -0
- package/docs/services/sts/README.md +245 -0
- package/docs/services/wafv2/README.md +1380 -0
- package/docs/terraform/README.md +248 -0
- package/docs/time/README.md +284 -0
- package/llms.txt +59 -0
- package/package.json +7 -4
- package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { simAwsCallerFor } from "../../aws/caller/sim-aws-resolved-caller.js";
|
|
2
2
|
import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
|
|
3
3
|
/**
|
|
4
4
|
* Authorizes the caller's request to assume a role against IAM in the source
|
|
@@ -10,8 +10,8 @@ import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
|
|
|
10
10
|
* trust authorization is a separate responsibility and must be performed even
|
|
11
11
|
* when the source and target Account are the same.
|
|
12
12
|
*
|
|
13
|
-
* When no caller principal is supplied,
|
|
14
|
-
*
|
|
13
|
+
* When no caller principal is supplied, sim IAM applies its own default caller
|
|
14
|
+
* behaviour for the source Account.
|
|
15
15
|
*/
|
|
16
16
|
export class AssumeRoleSourcePrincipalAuthorizer {
|
|
17
17
|
sourceAccountId;
|
|
@@ -30,18 +30,19 @@ export class AssumeRoleSourcePrincipalAuthorizer {
|
|
|
30
30
|
*/
|
|
31
31
|
authorize(input) {
|
|
32
32
|
const sourceIam = this.iamResolver.iamForAccount(this.sourceAccountId);
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
// A request with no caller of its own is left for sim IAM to attribute.
|
|
34
|
+
// The simulation's default caller reaches this decision the way it reaches
|
|
35
|
+
// every other one.
|
|
35
36
|
const decision = sourceIam.authorize({
|
|
36
37
|
action: "sts:AssumeRole",
|
|
37
38
|
resource: input.roleArn,
|
|
38
39
|
region: this.regionName,
|
|
39
|
-
caller:
|
|
40
|
+
caller: input.caller === undefined ? undefined : simAwsCallerFor(input.caller),
|
|
40
41
|
});
|
|
41
42
|
if (decision.isExplicitDeny ||
|
|
42
43
|
(decision.isImplicitDeny && Boolean(input.identityPolicyAllowRequired))) {
|
|
43
44
|
throw new SimIamAccessDenied({
|
|
44
|
-
principal:
|
|
45
|
+
principal: decision.caller.principal,
|
|
45
46
|
action: "sts:AssumeRole",
|
|
46
47
|
resource: input.roleArn,
|
|
47
48
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
2
|
import type { SimAwsAccountId } from "../../aws/sim-aws-account.js";
|
|
3
3
|
import type { AwsRegionName } from "../../aws/sim-aws-region.js";
|
|
4
4
|
import type { SimIamAccountResolver } from "../../iam/registry/sim-iam-account-resolver.js";
|
|
@@ -17,7 +17,7 @@ type AssumeRoleTargetRole = SimGetRoleCommandOutput["Role"];
|
|
|
17
17
|
interface AssumeRoleTargetAuthorizationInput {
|
|
18
18
|
readonly roleArn: string;
|
|
19
19
|
readonly target: IamRoleArnParts | SimAwsAccountId;
|
|
20
|
-
readonly caller:
|
|
20
|
+
readonly caller: SimAwsResolvedCaller;
|
|
21
21
|
readonly conditionContext?: Readonly<Record<string, SimIamConditionValue>> | undefined;
|
|
22
22
|
}
|
|
23
23
|
interface AssumeRoleTargetAuthorization {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
2
|
import type { AwsRegionName } from "../../aws/sim-aws-region.js";
|
|
3
3
|
import type { SimGetRoleCommandOutput } from "../../iam/command/role/get-role/get-role.command.js";
|
|
4
4
|
import type { SimIamConditionValue } from "../../iam/policy/sim-iam-policy.js";
|
|
@@ -14,7 +14,7 @@ interface AssumeRoleTrustPolicyAuthorizationInput {
|
|
|
14
14
|
* target Account's service control policies can be conditioned on.
|
|
15
15
|
*/
|
|
16
16
|
readonly region?: AwsRegionName | undefined;
|
|
17
|
-
readonly caller:
|
|
17
|
+
readonly caller: SimAwsResolvedCaller;
|
|
18
18
|
readonly conditionContext?: Readonly<Record<string, SimIamConditionValue>> | undefined;
|
|
19
19
|
}
|
|
20
20
|
export interface AssumeRoleTrustPolicyAuthorization {
|
|
@@ -46,5 +46,9 @@ export declare class AssumeRoleTrustPolicyAuthorizer {
|
|
|
46
46
|
* no trust-policy statement grants access, even if no explicit Deny matched.
|
|
47
47
|
*/
|
|
48
48
|
authorize(input: AssumeRoleTrustPolicyAuthorizationInput): AssumeRoleTrustPolicyAuthorization;
|
|
49
|
+
/**
|
|
50
|
+
* Refuse the request as the caller that made it.
|
|
51
|
+
*/
|
|
52
|
+
private refuse;
|
|
49
53
|
}
|
|
50
54
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsonParse } from "../../../util/type-guard/json.js";
|
|
2
|
+
import { simAwsCallerFor } from "../../aws/caller/sim-aws-resolved-caller.js";
|
|
2
3
|
import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
|
|
3
4
|
import { AssumeRoleTrustGrantClassifier } from "./assume-role-trust-grant-classifier.js";
|
|
4
5
|
/**
|
|
@@ -27,18 +28,14 @@ export class AssumeRoleTrustPolicyAuthorizer {
|
|
|
27
28
|
*/
|
|
28
29
|
authorize(input) {
|
|
29
30
|
if (input.role.AssumeRolePolicyDocument === undefined) {
|
|
30
|
-
|
|
31
|
-
principal: input.caller,
|
|
32
|
-
action: "sts:AssumeRole",
|
|
33
|
-
resource: input.roleArn,
|
|
34
|
-
});
|
|
31
|
+
this.refuse(input);
|
|
35
32
|
}
|
|
36
33
|
const trustPolicy = jsonParse(input.role.AssumeRolePolicyDocument);
|
|
37
34
|
const decision = input.targetIam.authorize({
|
|
38
35
|
action: "sts:AssumeRole",
|
|
39
36
|
resource: input.roleArn,
|
|
40
37
|
region: input.region,
|
|
41
|
-
caller: input.caller,
|
|
38
|
+
caller: simAwsCallerFor(input.caller),
|
|
42
39
|
conditionContext: input.conditionContext,
|
|
43
40
|
resourcePolicies: [
|
|
44
41
|
{
|
|
@@ -50,15 +47,21 @@ export class AssumeRoleTrustPolicyAuthorizer {
|
|
|
50
47
|
],
|
|
51
48
|
});
|
|
52
49
|
if (decision.isDenied || !decision.isAllowedByTrustPolicy) {
|
|
53
|
-
|
|
54
|
-
principal: input.caller,
|
|
55
|
-
action: "sts:AssumeRole",
|
|
56
|
-
resource: input.roleArn,
|
|
57
|
-
});
|
|
50
|
+
this.refuse(input);
|
|
58
51
|
}
|
|
59
52
|
return {
|
|
60
53
|
decision,
|
|
61
54
|
isDirectPrincipalGrant: this.trustGrantClassifier.hasDirectPrincipalGrant(decision.trustAllowStatements),
|
|
62
55
|
};
|
|
63
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Refuse the request as the caller that made it.
|
|
59
|
+
*/
|
|
60
|
+
refuse(input) {
|
|
61
|
+
throw new SimIamAccessDenied({
|
|
62
|
+
principal: input.caller.principal,
|
|
63
|
+
action: "sts:AssumeRole",
|
|
64
|
+
resource: input.roleArn,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
64
67
|
}
|
|
@@ -4,7 +4,8 @@ import type { SimAssumeRoleCommand, SimAssumeRoleCommandOutput } from "./assume-
|
|
|
4
4
|
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
5
5
|
import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
6
6
|
import type { AwsRegionName } from "../../../aws/sim-aws-region.js";
|
|
7
|
-
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
7
|
+
import type { SimAwsCaller, SimAwsDefaultCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
8
|
+
import type { SimAwsAmbientCaller } from "../../../aws/caller/sim-aws-ambient-caller.js";
|
|
8
9
|
interface AssumeRoleCommandHandlerProperties {
|
|
9
10
|
readonly sourceAccountId: SimAwsAccountId;
|
|
10
11
|
/**
|
|
@@ -13,6 +14,14 @@ interface AssumeRoleCommandHandlerProperties {
|
|
|
13
14
|
readonly regionName: AwsRegionName;
|
|
14
15
|
readonly iamResolver: SimIamAccountResolver;
|
|
15
16
|
readonly background?: BackgroundScheduler;
|
|
17
|
+
/**
|
|
18
|
+
* The caller this simulation attributes a request naming none to.
|
|
19
|
+
*/
|
|
20
|
+
readonly defaultCaller?: SimAwsDefaultCaller | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Where a request naming no caller looks before the default.
|
|
23
|
+
*/
|
|
24
|
+
readonly ambientCaller?: SimAwsAmbientCaller | undefined;
|
|
16
25
|
}
|
|
17
26
|
/**
|
|
18
27
|
* STS AssumeRoleCommand handler.
|
|
@@ -16,7 +16,7 @@ import { AssumeRoleAuthorizationCoordinator } from "../../auth-z/assume-role-aut
|
|
|
16
16
|
*/
|
|
17
17
|
export class AssumeRoleCommandHandler {
|
|
18
18
|
background;
|
|
19
|
-
callerResolver
|
|
19
|
+
callerResolver;
|
|
20
20
|
requestParser = new SimStsAssumeRoleRequestParser();
|
|
21
21
|
authorizationCoordinator;
|
|
22
22
|
sessionCreator;
|
|
@@ -25,6 +25,10 @@ export class AssumeRoleCommandHandler {
|
|
|
25
25
|
const { sourceAccountId, regionName, iamResolver, background = new BackgroundTasks(), } = properties;
|
|
26
26
|
this.sourceAccountId = sourceAccountId;
|
|
27
27
|
this.background = background;
|
|
28
|
+
this.callerResolver = new SimAwsCallerResolver({
|
|
29
|
+
defaultCaller: properties.defaultCaller,
|
|
30
|
+
ambientCaller: properties.ambientCaller,
|
|
31
|
+
});
|
|
28
32
|
this.authorizationCoordinator = new AssumeRoleAuthorizationCoordinator({
|
|
29
33
|
sourceAccountId,
|
|
30
34
|
iamResolver,
|
|
@@ -56,7 +60,7 @@ export class AssumeRoleCommandHandler {
|
|
|
56
60
|
const role = await this.authorizationCoordinator.authorize({
|
|
57
61
|
roleArn: request.roleArn,
|
|
58
62
|
roleArnParts: request.roleArnParts,
|
|
59
|
-
caller
|
|
63
|
+
caller,
|
|
60
64
|
conditionContext: request.conditionContext,
|
|
61
65
|
});
|
|
62
66
|
return this.sessionCreator.create({
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
-
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimAwsCaller, SimAwsDefaultCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
3
|
+
import type { SimAwsAmbientCaller } from "../../../aws/caller/sim-aws-ambient-caller.js";
|
|
3
4
|
import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
4
5
|
import type { SimIamAccountResolver } from "../../../iam/registry/sim-iam-account-resolver.js";
|
|
5
6
|
import type { SimGetCallerIdentityCommand, SimGetCallerIdentityCommandOutput } from "./get-caller-identity.command.js";
|
|
6
7
|
interface GetCallerIdentityCommandHandlerProperties {
|
|
7
8
|
readonly sourceAccountId: SimAwsAccountId;
|
|
8
9
|
readonly iamResolver: SimIamAccountResolver;
|
|
10
|
+
/**
|
|
11
|
+
* The caller this simulation attributes a request naming none to.
|
|
12
|
+
*/
|
|
13
|
+
readonly defaultCaller?: SimAwsDefaultCaller | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Where a request naming no caller looks before the default.
|
|
16
|
+
*/
|
|
17
|
+
readonly ambientCaller?: SimAwsAmbientCaller | undefined;
|
|
9
18
|
}
|
|
10
19
|
/**
|
|
11
20
|
* Simulated STS GetCallerIdentity handler.
|
|
@@ -13,12 +13,16 @@ import { simStsCallerUserId } from "./sim-sts-caller-user-id.js";
|
|
|
13
13
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/GetCallerIdentityCommand/
|
|
14
14
|
*/
|
|
15
15
|
export class GetCallerIdentityCommandHandler {
|
|
16
|
-
callerResolver
|
|
16
|
+
callerResolver;
|
|
17
17
|
sourceAccountId;
|
|
18
18
|
iamResolver;
|
|
19
19
|
constructor(properties) {
|
|
20
20
|
this.sourceAccountId = properties.sourceAccountId;
|
|
21
21
|
this.iamResolver = properties.iamResolver;
|
|
22
|
+
this.callerResolver = new SimAwsCallerResolver({
|
|
23
|
+
defaultCaller: properties.defaultCaller,
|
|
24
|
+
ambientCaller: properties.ambientCaller,
|
|
25
|
+
});
|
|
22
26
|
}
|
|
23
27
|
/**
|
|
24
28
|
* Report the identity behind this request.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simAwsResolvedCallerOf } from "../../aws/caller/sim-aws-resolved-caller.js";
|
|
1
2
|
import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
|
|
2
3
|
import { AssumeRoleTrustPolicyAuthorizer } from "../auth-z/assume-role-trust-policy-authorizer.js";
|
|
3
4
|
import { simServiceRoleConditionContext, } from "./sim-service-role-source.js";
|
|
@@ -25,7 +26,10 @@ export async function assumeSimServiceRole(assumption) {
|
|
|
25
26
|
role,
|
|
26
27
|
targetIam: iam,
|
|
27
28
|
region: scope.accountRegionScope.regionName,
|
|
28
|
-
caller: {
|
|
29
|
+
caller: simAwsResolvedCallerOf({
|
|
30
|
+
kind: "service",
|
|
31
|
+
service: servicePrincipal,
|
|
32
|
+
}),
|
|
29
33
|
conditionContext: simServiceRoleConditionContext(source),
|
|
30
34
|
});
|
|
31
35
|
}
|
|
@@ -3,12 +3,27 @@ import type { SimIamAccountResolver } from "../iam/registry/sim-iam-account-reso
|
|
|
3
3
|
import type { SimAssumeRoleCommand, SimAssumeRoleCommandOutput } from "./command/assume-role/assume-role.command.js";
|
|
4
4
|
import type { SimGetCallerIdentityCommand, SimGetCallerIdentityCommandOutput } from "./command/get-caller-identity/get-caller-identity.command.js";
|
|
5
5
|
import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
|
|
6
|
-
import type { SimAwsCaller } from "../aws/caller/sim-aws-caller.js";
|
|
6
|
+
import type { SimAwsCaller, SimAwsDefaultCaller } from "../aws/caller/sim-aws-caller.js";
|
|
7
|
+
import type { SimAwsAmbientCaller } from "../aws/caller/sim-aws-ambient-caller.js";
|
|
7
8
|
import type { SimSdkCommandRouter } from "../../sdk/index.js";
|
|
8
9
|
interface SimStsProperties {
|
|
9
10
|
readonly accountRegionScope?: SimAwsAccountRegionScope;
|
|
10
11
|
readonly iamResolver?: SimIamAccountResolver;
|
|
11
12
|
readonly background?: BackgroundScheduler;
|
|
13
|
+
/**
|
|
14
|
+
* The caller this simulation attributes a request naming none to.
|
|
15
|
+
*
|
|
16
|
+
* Left out, such a request is the source Account's root principal, which is
|
|
17
|
+
* the identity GetCallerIdentity then reports.
|
|
18
|
+
*/
|
|
19
|
+
readonly defaultCaller?: SimAwsDefaultCaller | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Where a request naming no caller looks before the default.
|
|
22
|
+
*
|
|
23
|
+
* A run-as block decides who the requests inside it are, so an unattributed
|
|
24
|
+
* GetCallerIdentity in one reports the caller that block named.
|
|
25
|
+
*/
|
|
26
|
+
readonly ambientCaller?: SimAwsAmbientCaller | undefined;
|
|
12
27
|
}
|
|
13
28
|
/**
|
|
14
29
|
* Simulated AWS Security Token Service.
|
|
@@ -21,6 +36,8 @@ export declare class SimSts {
|
|
|
21
36
|
private readonly accountRegionScope;
|
|
22
37
|
private readonly background;
|
|
23
38
|
private readonly iamResolver;
|
|
39
|
+
private readonly defaultCaller?;
|
|
40
|
+
private readonly ambientCaller?;
|
|
24
41
|
private readonly sdkRouter;
|
|
25
42
|
constructor(properties?: SimStsProperties);
|
|
26
43
|
/**
|
|
@@ -15,12 +15,16 @@ export class SimSts {
|
|
|
15
15
|
accountRegionScope;
|
|
16
16
|
background;
|
|
17
17
|
iamResolver;
|
|
18
|
+
defaultCaller;
|
|
19
|
+
ambientCaller;
|
|
18
20
|
sdkRouter = new SimStsSdkCommandRouter(this);
|
|
19
21
|
constructor(properties = {}) {
|
|
20
22
|
this.accountRegionScope =
|
|
21
23
|
properties.accountRegionScope ?? simAwsAccountRegionScopeFactory.make();
|
|
22
24
|
this.iamResolver = properties.iamResolver ?? new SimIamRegistry();
|
|
23
25
|
this.background = properties.background ?? new BackgroundTasks();
|
|
26
|
+
this.defaultCaller = properties.defaultCaller;
|
|
27
|
+
this.ambientCaller = properties.ambientCaller;
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
26
30
|
* Handle an AssumeRoleCommand from the SDK.
|
|
@@ -31,6 +35,8 @@ export class SimSts {
|
|
|
31
35
|
regionName: this.accountRegionScope.regionName,
|
|
32
36
|
iamResolver: this.iamResolver,
|
|
33
37
|
background: this.background,
|
|
38
|
+
defaultCaller: this.defaultCaller,
|
|
39
|
+
ambientCaller: this.ambientCaller,
|
|
34
40
|
});
|
|
35
41
|
return await handler.handle(command, options);
|
|
36
42
|
}
|
|
@@ -41,6 +47,8 @@ export class SimSts {
|
|
|
41
47
|
const handler = new GetCallerIdentityCommandHandler({
|
|
42
48
|
sourceAccountId: this.accountRegionScope.accountId,
|
|
43
49
|
iamResolver: this.iamResolver,
|
|
50
|
+
defaultCaller: this.defaultCaller,
|
|
51
|
+
ambientCaller: this.ambientCaller,
|
|
44
52
|
});
|
|
45
53
|
return await handler.handle(command, options);
|
|
46
54
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memoization cache holding a bounded number of values.
|
|
3
|
+
*
|
|
4
|
+
* The bound stops a long-running process accumulating entries without limit.
|
|
5
|
+
* Which values survive it matters little. A caller gets the same value back
|
|
6
|
+
* either way, and an evicted one costs another call to the factory that made
|
|
7
|
+
* it.
|
|
8
|
+
*
|
|
9
|
+
* Eviction is by insertion order, and a value read again stays where it is. A
|
|
10
|
+
* memo worth bounding is one whose reads are hot, and reordering the cache on
|
|
11
|
+
* every read costs more than the occasional recomputation it saves.
|
|
12
|
+
*
|
|
13
|
+
* A cached value has to be something (undefined stands for a key the cache is
|
|
14
|
+
* missing). A hit then costs one map lookup.
|
|
15
|
+
*/
|
|
16
|
+
export declare class BoundedMemo<T extends NonNullable<unknown>> {
|
|
17
|
+
private readonly limit;
|
|
18
|
+
private readonly cache;
|
|
19
|
+
/**
|
|
20
|
+
* Hold up to `limit` values, dropping the oldest to make room past that.
|
|
21
|
+
*/
|
|
22
|
+
constructor(limit: number);
|
|
23
|
+
/**
|
|
24
|
+
* Returns the cached value for the given key, or creates and caches it using
|
|
25
|
+
* `factory`.
|
|
26
|
+
*/
|
|
27
|
+
getOrCreate<V extends T>(key: PropertyKey, factory: () => V): V;
|
|
28
|
+
/**
|
|
29
|
+
* Returns whether the cache is currently holding `key`.
|
|
30
|
+
*/
|
|
31
|
+
has(key: PropertyKey): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Drop what was cached first, until the cache is back within its limit.
|
|
34
|
+
*/
|
|
35
|
+
private evictOverflow;
|
|
36
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memoization cache holding a bounded number of values.
|
|
3
|
+
*
|
|
4
|
+
* The bound stops a long-running process accumulating entries without limit.
|
|
5
|
+
* Which values survive it matters little. A caller gets the same value back
|
|
6
|
+
* either way, and an evicted one costs another call to the factory that made
|
|
7
|
+
* it.
|
|
8
|
+
*
|
|
9
|
+
* Eviction is by insertion order, and a value read again stays where it is. A
|
|
10
|
+
* memo worth bounding is one whose reads are hot, and reordering the cache on
|
|
11
|
+
* every read costs more than the occasional recomputation it saves.
|
|
12
|
+
*
|
|
13
|
+
* A cached value has to be something (undefined stands for a key the cache is
|
|
14
|
+
* missing). A hit then costs one map lookup.
|
|
15
|
+
*/
|
|
16
|
+
export class BoundedMemo {
|
|
17
|
+
limit;
|
|
18
|
+
cache = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Hold up to `limit` values, dropping the oldest to make room past that.
|
|
21
|
+
*/
|
|
22
|
+
constructor(limit) {
|
|
23
|
+
this.limit = limit;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns the cached value for the given key, or creates and caches it using
|
|
27
|
+
* `factory`.
|
|
28
|
+
*/
|
|
29
|
+
getOrCreate(key, factory) {
|
|
30
|
+
const cached = this.cache.get(key);
|
|
31
|
+
if (cached !== undefined) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
const value = factory();
|
|
35
|
+
this.cache.set(key, value);
|
|
36
|
+
this.evictOverflow();
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns whether the cache is currently holding `key`.
|
|
41
|
+
*/
|
|
42
|
+
has(key) {
|
|
43
|
+
return this.cache.has(key);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Drop what was cached first, until the cache is back within its limit.
|
|
47
|
+
*/
|
|
48
|
+
evictOverflow() {
|
|
49
|
+
while (this.cache.size > this.limit) {
|
|
50
|
+
const oldest = this.cache.keys().next();
|
|
51
|
+
/* v8 ignore next 3 -- a cache over its limit has a first key */
|
|
52
|
+
if (oldest.done === true) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.cache.delete(oldest.value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Simulated AWS usage documentation
|
|
2
|
+
|
|
3
|
+
This directory contains area-specific documentation for Yulin. Each page explains the simulated
|
|
4
|
+
behaviour and includes example code that can be copied into tests or local development scripts.
|
|
5
|
+
|
|
6
|
+
## Service documentation
|
|
7
|
+
|
|
8
|
+
- [ACM](https://yulinsim.dev/services/acm/ "Simulated ACM usage docs")
|
|
9
|
+
- [API Gateway HTTP APIs](https://yulinsim.dev/services/apigatewayv2/ "Simulated API Gateway HTTP API usage docs")
|
|
10
|
+
- [API Gateway REST APIs](https://yulinsim.dev/services/apigateway/ "Simulated API Gateway REST API usage docs")
|
|
11
|
+
- [Athena](https://yulinsim.dev/services/athena/ "Simulated Amazon Athena usage docs")
|
|
12
|
+
- [Bedrock](https://yulinsim.dev/services/bedrock/ "Simulated Amazon Bedrock usage docs")
|
|
13
|
+
- [CloudFormation](https://yulinsim.dev/services/cloudformation/ "Simulated CloudFormation usage docs")
|
|
14
|
+
- [CloudFront](https://yulinsim.dev/services/cloudfront/ "Simulated CloudFront usage docs")
|
|
15
|
+
- [CloudWatch metrics](https://yulinsim.dev/services/cloudwatch/ "Simulated CloudWatch metrics usage docs")
|
|
16
|
+
- [Cognito user pools](https://yulinsim.dev/services/cognito/ "Simulated Cognito user pools usage docs")
|
|
17
|
+
- [DynamoDB](https://yulinsim.dev/services/dynamodb/ "Simulated DynamoDB usage docs")
|
|
18
|
+
- [ECR](https://yulinsim.dev/services/ecr/ "Simulated ECR usage docs")
|
|
19
|
+
- [ECS](https://yulinsim.dev/services/ecs/ "Simulated ECS usage docs")
|
|
20
|
+
- [Elastic Load Balancing](https://yulinsim.dev/services/elbv2/ "Simulated Application Load Balancer usage docs")
|
|
21
|
+
- [EventBridge](https://yulinsim.dev/services/eventbridge/ "Simulated EventBridge usage docs")
|
|
22
|
+
- [Glue](https://yulinsim.dev/services/glue/ "Simulated Glue Data Catalog usage docs")
|
|
23
|
+
- [IAM](https://yulinsim.dev/services/iam/ "Simulated IAM usage docs")
|
|
24
|
+
- [Kinesis Data Firehose](https://yulinsim.dev/services/firehose/ "Simulated Kinesis Data Firehose usage docs")
|
|
25
|
+
- [Kinesis Data Streams](https://yulinsim.dev/services/kinesis/ "Simulated Kinesis Data Streams usage docs")
|
|
26
|
+
- [KMS](https://yulinsim.dev/services/kms/ "Simulated KMS usage docs")
|
|
27
|
+
- [Lambda](https://yulinsim.dev/services/lambda/ "Simulated Lambda usage docs")
|
|
28
|
+
- [CloudWatch Logs](https://yulinsim.dev/services/logs/ "Simulated CloudWatch Logs usage docs")
|
|
29
|
+
- [Organizations](https://yulinsim.dev/services/organizations/ "Simulated Organizations service control policies usage docs")
|
|
30
|
+
- [Personalize](https://yulinsim.dev/services/personalize/ "Simulated Amazon Personalize usage docs")
|
|
31
|
+
- [Rekognition](https://yulinsim.dev/services/rekognition/ "Simulated Rekognition usage docs")
|
|
32
|
+
- [Route53](https://yulinsim.dev/services/route53/ "Simulated Route53 usage docs")
|
|
33
|
+
- [S3](https://yulinsim.dev/services/s3/ "Simulated S3 usage docs")
|
|
34
|
+
- [Scheduler](https://yulinsim.dev/services/scheduler/ "Simulated EventBridge Scheduler usage docs")
|
|
35
|
+
- [Secrets Manager](https://yulinsim.dev/services/secretsmanager/ "Simulated Secrets Manager usage docs")
|
|
36
|
+
- [SES](https://yulinsim.dev/services/ses/ "Simulated SES usage docs")
|
|
37
|
+
- [SNS](https://yulinsim.dev/services/sns/ "Simulated SNS usage docs")
|
|
38
|
+
- [SQS](https://yulinsim.dev/services/sqs/ "Simulated SQS usage docs")
|
|
39
|
+
- [SSM Parameter Store](https://yulinsim.dev/services/ssm/ "Simulated SSM Parameter Store usage docs")
|
|
40
|
+
- [Step Functions](https://yulinsim.dev/services/stepfunctions/ "Simulated Step Functions usage docs")
|
|
41
|
+
- [STS](https://yulinsim.dev/services/sts/ "Simulated STS usage docs")
|
|
42
|
+
- [WAFv2](https://yulinsim.dev/services/wafv2/ "Simulated WAFv2 usage docs")
|
|
43
|
+
|
|
44
|
+
## Feature documentation
|
|
45
|
+
|
|
46
|
+
- [AI skill](https://yulinsim.dev/ai-skill/ "Yulin AI skill usage docs")
|
|
47
|
+
- [The AWS CLI](https://yulinsim.dev/cli/ "The AWS CLI against simulated AWS usage docs")
|
|
48
|
+
- [AWS SDK interception](https://yulinsim.dev/sdk/ "Simulated AWS SDK usage docs")
|
|
49
|
+
- [Event factories](https://yulinsim.dev/factories/ "Test factories for AWS event shapes usage docs")
|
|
50
|
+
- [Linting CloudFront Functions JS2](https://yulinsim.dev/lint/ "CloudFront Functions JS2 lint config usage docs")
|
|
51
|
+
- [Non-AWS dependencies](https://yulinsim.dev/non-aws-dependencies/ "Dependencies Yulin does not simulate usage docs")
|
|
52
|
+
- [Serving on localhost](https://yulinsim.dev/serve/ "Serving simulated AWS on localhost usage docs")
|
|
53
|
+
- [Simulated time](https://yulinsim.dev/time/ "Simulated time usage docs")
|
|
54
|
+
- [Terraform](https://yulinsim.dev/terraform/ "Deploying Terraform into simulated AWS usage docs")
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# AI skill
|
|
2
|
+
|
|
3
|
+
Yulin has an AI skill that teaches a coding agent how to test AWS code with the simulator well. It
|
|
4
|
+
is `yulin-aws-simulation`, a `SKILL.md` written to the
|
|
5
|
+
[Agent Skills specification](https://agentskills.io/specification) and installable into Claude Code,
|
|
6
|
+
Codex CLI, Cursor, VS Code and anything else that reads one. It covers the part that lives outside
|
|
7
|
+
the API.
|
|
8
|
+
|
|
9
|
+
These docs and the skill answer different questions. A page here says what a simulated service does
|
|
10
|
+
and what its commands take. The skill says what to do with that. An AI agent reaching for Yulin
|
|
11
|
+
without it tends to build a harness around the simulator, leave hand-rolled stubs in place beside
|
|
12
|
+
it, or write an `instanceof` check against an SDK exception class that passes in production and
|
|
13
|
+
fails against the simulation.
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @kensio/skills add yulin-aws-simulation
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
That copies the skill into `.agents/skills/`, the directory Codex CLI, Cursor, VS Code and Gemini
|
|
22
|
+
CLI read. `--agent claude` puts it in `.claude/skills/`, and `--user` installs it under your home
|
|
23
|
+
directory for every project.
|
|
24
|
+
|
|
25
|
+
As a Claude Code plugin:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
claude plugin marketplace add KensioSoftware/kensio.ai
|
|
29
|
+
claude plugin install yulin-aws-simulation@kensio
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
It is also on npm as `@kensio/yulin-aws-simulation`, and every
|
|
33
|
+
[kensio.ai release](https://github.com/KensioSoftware/kensio.ai/releases) carries it as a zip for a
|
|
34
|
+
machine with no registry reach.
|
|
35
|
+
|
|
36
|
+
## What it covers
|
|
37
|
+
|
|
38
|
+
- Using `SimAws` and `SimSdk` directly, and spotting the helper class or `setupSimulatedAws()`
|
|
39
|
+
wrapper that starts to grow around them.
|
|
40
|
+
- One synthesized CDK template behind the tests, the dev server and production, deployed with
|
|
41
|
+
`deployTemplateFile` or `deployCdkOut`.
|
|
42
|
+
- When to register a resource at a chosen id, and when to deploy the stack that creates it.
|
|
43
|
+
- Interception over hand-rolled stubs, down to the requests a fake accepts and the simulation
|
|
44
|
+
refuses.
|
|
45
|
+
- Freezing the clock, then advancing it on purpose.
|
|
46
|
+
- Assertions that read the simulation back.
|
|
47
|
+
- Why service errors match by `name` and not by `instanceof`.
|
|
48
|
+
- Deploying an expensive stack once per test file.
|
|
49
|
+
- Running a handler as a real simulated Lambda, under its execution role, its declared environment
|
|
50
|
+
and its own log group.
|
|
51
|
+
- Refusals as a feature, and gaps raised upstream.
|
|
52
|
+
|
|
53
|
+
## Reading the API alongside it
|
|
54
|
+
|
|
55
|
+
The skill sends the AI agent to these docs for anything API-shaped, and
|
|
56
|
+
[llms.txt](https://yulinsim.dev/llms.txt) is the index it uses. Every page here is available as
|
|
57
|
+
plain markdown by appending `llms.txt` to its URL, one file per guide and one per simulated service.
|
|
58
|
+
That index works with or without the skill installed.
|
|
59
|
+
|
|
60
|
+
The same pages ship inside the package. An installed project holds them under
|
|
61
|
+
`node_modules/@kensio/yulin/docs/`, indexed by `node_modules/@kensio/yulin/llms.txt`, and they
|
|
62
|
+
document the version in that package rather than the current release. An agent with no network
|
|
63
|
+
reach has them, and so does one working on a project held a few versions back. Ripgrep and most
|
|
64
|
+
editor search skip `node_modules` by default. An agent finds these files when something names the
|
|
65
|
+
path for it.
|
|
66
|
+
|
|
67
|
+
The skill lives at
|
|
68
|
+
[kensio.ai/skills/yulin-aws-simulation](https://kensio.ai/skills/yulin-aws-simulation), versioned
|
|
69
|
+
separately from Yulin and licensed Apache-2.0.
|