@kensio/yulin 1.20.12 → 1.20.14
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/acm/cfn/certificate/sim-cfn-acm-cert-creator.js +6 -4
- package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.d.ts +2 -2
- package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.js +3 -4
- package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.d.ts +2 -1
- package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.js +2 -2
- package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.d.ts +2 -1
- package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.js +4 -4
- package/dist/service/acm/command/delete-certificate/delete-certificate-authorizer.js +1 -0
- package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js +1 -0
- package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js +1 -0
- package/dist/service/acm/sim-acm.d.ts +1 -1
- package/dist/service/acm/sim-acm.js +3 -2
- package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.js +11 -13
- package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.js +2 -4
- package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.js +2 -4
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.js +3 -5
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.d.ts +2 -1
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.js +3 -3
- package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.js +2 -4
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.d.ts +2 -1
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.js +3 -5
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-factory.js +9 -7
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.d.ts +2 -7
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.js +12 -42
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.d.ts +10 -0
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.js +21 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.js +2 -4
- package/dist/service/apigateway/serve/auth/sim-rest-api-authorizer-policy.js +3 -0
- package/dist/service/apigateway/serve/sim-api-gateway-router.js +5 -2
- package/dist/service/apigateway/sim-api-gateway-commands.d.ts +1 -1
- package/dist/service/apigateway/sim-api-gateway-commands.js +3 -2
- package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.js +5 -9
- package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.d.ts +2 -9
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.js +19 -25
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.d.ts +0 -5
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.js +13 -29
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.d.ts +5 -0
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.js +19 -0
- package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.js +5 -13
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.js +2 -4
- package/dist/service/apigatewayv2/serve/auth/sim-http-api-authorizer-policy.js +3 -0
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-router.js +5 -2
- package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.d.ts +1 -1
- package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.js +3 -2
- package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +3 -2
- package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +4 -6
- package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +2 -2
- package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +7 -6
- package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +3 -2
- package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +7 -11
- package/dist/service/athena/engine/sim-athena-aggregate-shims.d.ts +10 -5
- package/dist/service/athena/engine/sim-athena-aggregate-shims.js +19 -16
- package/dist/service/athena/engine/sim-athena-binary-shims.d.ts +16 -0
- package/dist/service/athena/engine/sim-athena-binary-shims.js +49 -0
- package/dist/service/athena/engine/sim-athena-binary-text.d.ts +21 -0
- package/dist/service/athena/engine/sim-athena-binary-text.js +87 -0
- package/dist/service/athena/engine/sim-athena-count-distinct.d.ts +15 -0
- package/dist/service/athena/engine/sim-athena-count-distinct.js +103 -0
- package/dist/service/athena/engine/sim-athena-distinct-values.d.ts +19 -0
- package/dist/service/athena/engine/sim-athena-distinct-values.js +37 -0
- package/dist/service/athena/engine/sim-athena-hash-words.d.ts +14 -0
- package/dist/service/athena/engine/sim-athena-hash-words.js +22 -0
- package/dist/service/athena/engine/sim-athena-murmur3-mixing.d.ts +15 -0
- package/dist/service/athena/engine/sim-athena-murmur3-mixing.js +37 -0
- package/dist/service/athena/engine/sim-athena-murmur3.d.ts +11 -0
- package/dist/service/athena/engine/sim-athena-murmur3.js +51 -0
- package/dist/service/athena/engine/sim-athena-shim-registry.d.ts +9 -0
- package/dist/service/athena/engine/sim-athena-shim-registry.js +30 -1
- package/dist/service/athena/engine/sim-athena-shims.js +2 -0
- package/dist/service/athena/engine/sim-athena-sql-rewrites.d.ts +4 -2
- package/dist/service/athena/engine/sim-athena-sql-rewrites.js +6 -3
- package/dist/service/athena/engine/sim-athena-xxhash64.d.ts +8 -0
- package/dist/service/athena/engine/sim-athena-xxhash64.js +82 -0
- package/dist/service/athena/sim-athena-executions.d.ts +1 -1
- package/dist/service/athena/sim-athena-executions.js +3 -2
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +10 -0
- package/dist/service/aws/sim-aws.d.ts +18 -0
- package/dist/service/aws/sim-aws.js +19 -0
- package/dist/service/bedrock/sim-bedrock.d.ts +1 -1
- package/dist/service/bedrock/sim-bedrock.js +3 -2
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +8 -0
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +6 -4
- 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/command/update-stack/update-stack.handler.d.ts +7 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -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 +9 -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 +10 -3
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +4 -7
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +4 -2
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
- package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.d.ts +16 -0
- package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.js +6 -0
- package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn-value-adapter.js +23 -0
- package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn.d.ts +66 -0
- package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn.js +136 -0
- package/dist/service/cloudformation/resource/cfn/scheduler/sim-scheduler-cfn-value-adapter.js +50 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +7 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +12 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +1 -1
- package/dist/service/cloudformation/sim-cloudformation.js +3 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +3 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +4 -1
- 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 +17 -2
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +15 -4
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +5 -5
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +12 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +2 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts +5 -0
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +10 -3
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +2 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.d.ts +2 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.js +5 -7
- package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +3 -2
- package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +6 -6
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -4
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +7 -15
- package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js +1 -0
- package/dist/service/cloudfront/command/create-function/create-function-authorizer.js +1 -0
- package/dist/service/cloudfront/command/delete-distribution/delete-distribution-authorizer.js +1 -0
- package/dist/service/cloudfront/command/delete-function/delete-function-authorizer.js +1 -0
- package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js +1 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution-authorizer.js +1 -0
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +3 -2
- package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js +1 -0
- package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +1 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.js +5 -2
- package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.d.ts +3 -2
- package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.js +4 -6
- package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.d.ts +2 -2
- package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.js +4 -3
- package/dist/service/cloudwatch/command/authorize/sim-cloudwatch-decide.js +1 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +1 -1
- package/dist/service/cloudwatch/sim-cloudwatch-commands.js +3 -2
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.js +2 -4
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +2 -4
- package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.js +2 -4
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +2 -4
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +2 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +18 -24
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +2 -2
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +9 -7
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.js +5 -7
- package/dist/service/cognito/command/authorize/sim-cognito-authorizer.js +1 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-aws-cognito-trigger-functions.js +2 -1
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +2 -1
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +2 -2
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.d.ts +2 -1
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.js +2 -4
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +2 -2
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +6 -4
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts +2 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +5 -7
- package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.js +1 -0
- package/dist/service/dynamodb/sim-dynamodb.js +3 -2
- package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.js +4 -6
- package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.js +4 -4
- package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.d.ts +5 -0
- package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.js +9 -0
- package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.d.ts +2 -2
- package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.js +11 -16
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js +4 -6
- package/dist/service/ecs/sim-ecs-commands.js +3 -2
- package/dist/service/ecs/task/run/sim-ecs-container-environment.d.ts +12 -10
- package/dist/service/ecs/task/run/sim-ecs-container-environment.js +16 -18
- package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.js +4 -6
- package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.js +4 -6
- package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.js +4 -4
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.d.ts +2 -1
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.js +5 -5
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.d.ts +2 -2
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.js +8 -6
- package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.js +7 -11
- package/dist/service/elbv2/serve/sim-elbv2-router.js +2 -1
- package/dist/service/elbv2/sim-elbv2.js +3 -3
- package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.d.ts +2 -1
- package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.js +2 -4
- package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.d.ts +2 -1
- package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.js +5 -5
- package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.d.ts +2 -1
- package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.js +7 -7
- package/dist/service/eventbridge/cfn/sim-event-bridge-cfn-resource-factory.js +5 -3
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-function.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-queue.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-task.js +4 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-topic.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.d.ts +8 -3
- package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.js +9 -3
- package/dist/service/eventbridge/sim-event-bridge.d.ts +1 -1
- package/dist/service/eventbridge/sim-event-bridge.js +3 -2
- package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.d.ts +2 -1
- package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.js +2 -2
- package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.d.ts +2 -1
- package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.js +2 -4
- package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.d.ts +1 -1
- package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.js +4 -3
- package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +1 -0
- package/dist/service/firehose/sim-firehose.d.ts +1 -1
- package/dist/service/firehose/sim-firehose.js +3 -2
- package/dist/service/glue/command/authorize/sim-glue-authorize-resources.js +1 -0
- package/dist/service/glue/sim-glue.d.ts +1 -1
- package/dist/service/glue/sim-glue.js +3 -2
- package/dist/service/iam/authorize/allow/sim-iam-policy-evaluation.d.ts +45 -0
- package/dist/service/iam/authorize/allow/sim-iam-policy-evaluation.js +59 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +30 -15
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +20 -22
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +31 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +1 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-scp-source-builder.d.ts +46 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-scp-source-builder.js +71 -0
- package/dist/service/iam/authorize/context/sim-iam-derived-conditions.d.ts +42 -0
- package/dist/service/iam/authorize/context/sim-iam-derived-conditions.js +44 -0
- package/dist/service/iam/authorize/match/condition/arn/equals/sim-iam-arn-equals.js +2 -2
- package/dist/service/iam/authorize/match/condition/arn/like/sim-iam-arn-like.js +2 -2
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.d.ts +20 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.js +27 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.d.ts +21 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.js +28 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts +5 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js +36 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.d.ts +20 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.js +29 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.js +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.d.ts +26 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.js +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +2 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +11 -3
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +29 -11
- package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.d.ts +24 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.js +17 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +18 -1
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +32 -4
- package/dist/service/iam/authorize/scp/sim-iam-scp-gate.d.ts +96 -0
- package/dist/service/iam/authorize/scp/sim-iam-scp-gate.js +148 -0
- package/dist/service/iam/authorize/scp/sim-iam-scp-resolver.d.ts +53 -0
- package/dist/service/iam/authorize/scp/sim-iam-scp-resolver.js +1 -0
- package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +8 -0
- package/dist/service/iam/authorize/sim-iam-account-auth-z.js +1 -0
- package/dist/service/iam/authorize/sim-iam-action-authorizer.js +1 -0
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +2 -0
- package/dist/service/iam/authorize/sim-iam-authorizer.js +1 -0
- package/dist/service/iam/authorize/sim-iam-decision-value.d.ts +13 -0
- package/dist/service/iam/authorize/sim-iam-decision-value.js +12 -0
- package/dist/service/iam/authorize/sim-iam-decision.d.ts +44 -15
- package/dist/service/iam/authorize/sim-iam-decision.js +77 -48
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +8 -0
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js +1 -0
- package/dist/service/iam/authorize/sim-iam-region-auth-z.d.ts +31 -0
- package/dist/service/iam/authorize/sim-iam-region-auth-z.js +65 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.d.ts +31 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.js +1 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.d.ts +31 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.js +43 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +2 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +2 -4
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +2 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +3 -3
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +2 -1
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +7 -7
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.d.ts +2 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.js +8 -8
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.d.ts +2 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.js +10 -12
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +2 -1
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +12 -16
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +8 -5
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +2 -1
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +11 -11
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +4 -2
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +17 -3
- package/dist/service/iam/command/sim-iam-command-handlers.js +6 -1
- package/dist/service/iam/error/sim-iam.error.d.ts +8 -0
- package/dist/service/iam/error/sim-iam.error.js +2 -1
- package/dist/service/iam/sim-iam-account-parts.d.ts +9 -0
- package/dist/service/iam/sim-iam-account-parts.js +1 -0
- package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.d.ts +2 -1
- package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.js +2 -2
- package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.d.ts +1 -1
- package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.js +4 -3
- package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.d.ts +2 -1
- package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.js +5 -7
- package/dist/service/kinesis/command/authorize/sim-kinesis-authorizer.js +1 -0
- package/dist/service/kinesis/sim-kinesis.d.ts +1 -1
- package/dist/service/kinesis/sim-kinesis.js +3 -2
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +2 -1
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +2 -2
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +6 -6
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +11 -11
- package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.d.ts +2 -1
- package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.js +3 -5
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +2 -1
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +6 -4
- package/dist/service/kms/command/authorize/sim-kms-authorizer.js +2 -0
- package/dist/service/kms/sim-kms-commands.d.ts +1 -1
- package/dist/service/kms/sim-kms-commands.js +3 -2
- package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.js +2 -2
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.js +2 -2
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.d.ts +2 -1
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.js +2 -4
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +3 -4
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +2 -2
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.d.ts +2 -1
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.js +2 -2
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.d.ts +2 -8
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.js +18 -38
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -2
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -9
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +2 -2
- package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.js +2 -2
- package/dist/service/lambda/command/create-function/create-function-authorizer.js +1 -0
- package/dist/service/lambda/command/delete-function/delete-function-authorizer.js +1 -0
- package/dist/service/lambda/command/event-invoke-config/event-invoke-config-authorizer.js +1 -0
- package/dist/service/lambda/command/function-url/function-url-authorizer.js +1 -0
- package/dist/service/lambda/command/get-function/get-function-authorizer.js +1 -0
- package/dist/service/lambda/command/invoke/invoke-authorizer.js +1 -0
- package/dist/service/lambda/command/list-functions/list-functions-authorizer.js +1 -0
- package/dist/service/lambda/command/update-function-code/update-function-code-authorizer.js +1 -0
- package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +1 -0
- package/dist/service/lambda/command/version/version-authorizer.js +1 -0
- package/dist/service/lambda/serve/sim-lambda-url-router.js +2 -1
- package/dist/service/lambda/sim-lambda-commands.d.ts +1 -1
- package/dist/service/lambda/sim-lambda-commands.js +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +4 -6
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +4 -6
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +4 -4
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -1
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -4
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +2 -2
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +7 -5
- package/dist/service/logs/command/authorize/sim-logs-authorizer.js +1 -0
- package/dist/service/logs/sim-logs-commands.d.ts +1 -1
- package/dist/service/logs/sim-logs-commands.js +3 -2
- package/dist/service/logs/subscription/lambda/sim-logs-destination-permission.js +2 -1
- package/dist/service/organizations/cfn/sim-cfn-organization-creator.d.ts +19 -0
- package/dist/service/organizations/cfn/sim-cfn-organization-creator.js +25 -0
- package/dist/service/organizations/cfn/sim-cfn-organizational-unit-creator.d.ts +16 -0
- package/dist/service/organizations/cfn/sim-cfn-organizational-unit-creator.js +21 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-account-creator.d.ts +20 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-account-creator.js +34 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-policy-creator.d.ts +21 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-policy-creator.js +40 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-policy-input.d.ts +20 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-policy-input.js +33 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-properties.d.ts +36 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-properties.js +78 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-record.d.ts +40 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-record.js +54 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-remover.d.ts +17 -0
- package/dist/service/organizations/cfn/sim-cfn-organizations-remover.js +40 -0
- package/dist/service/organizations/cfn/sim-organizations-cfn-resource-factory.d.ts +24 -0
- package/dist/service/organizations/cfn/sim-organizations-cfn-resource-factory.js +50 -0
- package/dist/service/organizations/index.d.ts +6 -0
- package/dist/service/organizations/index.js +6 -0
- package/dist/service/organizations/policy/sim-organizations-effective-policies.d.ts +43 -0
- package/dist/service/organizations/policy/sim-organizations-effective-policies.js +58 -0
- package/dist/service/organizations/policy/sim-organizations-scp-store.d.ts +61 -0
- package/dist/service/organizations/policy/sim-organizations-scp-store.js +103 -0
- package/dist/service/organizations/sim-organizations-structure.d.ts +94 -0
- package/dist/service/organizations/sim-organizations-structure.js +140 -0
- package/dist/service/organizations/sim-organizations.d.ts +95 -0
- package/dist/service/organizations/sim-organizations.js +99 -0
- package/dist/service/organizations/tree/sim-organizations-node.d.ts +57 -0
- package/dist/service/organizations/tree/sim-organizations-node.js +58 -0
- package/dist/service/organizations/tree/sim-organizations-tree.d.ts +91 -0
- package/dist/service/organizations/tree/sim-organizations-tree.js +154 -0
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.js +4 -4
- package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.d.ts +2 -2
- package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.js +7 -6
- package/dist/service/personalize/sim-personalize-data-operations.d.ts +1 -1
- package/dist/service/personalize/sim-personalize-data-operations.js +3 -2
- package/dist/service/rekognition/sim-rekognition.d.ts +1 -1
- package/dist/service/rekognition/sim-rekognition.js +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.d.ts +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.js +5 -5
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.d.ts +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.js +4 -8
- package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.d.ts +2 -1
- package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.js +2 -2
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts +9 -1
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +23 -2
- package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.d.ts +5 -3
- package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.js +9 -28
- package/dist/service/route53/cfn/sim-cfn-route53-resource-factory.js +9 -5
- package/dist/service/route53/command/change-resource-record-sets/change-resource-record-sets-authorizer.js +1 -0
- package/dist/service/route53/command/create-hosted-zone/create-hosted-zone-authorizer.js +1 -0
- package/dist/service/route53/command/delete-hosted-zone/delete-hosted-zone-authorizer.js +1 -0
- package/dist/service/route53/command/dnssec/sim-route53-dnssec-authorizer.js +1 -0
- package/dist/service/route53/command/get-hosted-zone/get-hosted-zone-authorizer.js +1 -0
- package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name-authorizer.js +1 -0
- package/dist/service/route53/command/list-resource-record-sets/list-resource-record-sets-authorizer.js +1 -0
- package/dist/service/route53/sim-route53.d.ts +1 -1
- package/dist/service/route53/sim-route53.js +5 -2
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +3 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +6 -13
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +3 -2
- package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +2 -1
- package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +2 -2
- package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.d.ts +2 -1
- package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.js +3 -7
- package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -2
- package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +6 -4
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +1 -0
- package/dist/service/s3/command/delete-bucket/delete-bucket-authorizer.js +1 -0
- package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +1 -0
- package/dist/service/s3/command/delete-object/delete-object-authorizer.js +1 -0
- package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +1 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.js +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket-authorizer.js +1 -0
- package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.js +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js +1 -0
- package/dist/service/s3/command/list-objects/list-objects-authorizer.js +1 -0
- package/dist/service/s3/command/multipart/sim-s3-multipart-authorizer.js +1 -0
- package/dist/service/s3/command/notification/sim-s3-notification-authorizer.js +1 -0
- package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js +1 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js +1 -0
- package/dist/service/s3/command/put-object/put-object-authorizer.js +1 -0
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +2 -1
- package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +2 -1
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +2 -1
- package/dist/service/s3/sim-s3-commands.d.ts +1 -1
- package/dist/service/s3/sim-s3-commands.js +3 -2
- package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.d.ts +26 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.js +49 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.d.ts +31 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.js +48 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.d.ts +26 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.js +68 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-properties.js +4 -10
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.d.ts +14 -3
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.js +28 -6
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.d.ts +10 -4
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.js +9 -6
- package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.d.ts +6 -8
- package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.js +20 -33
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +9 -8
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +14 -15
- package/dist/service/scheduler/command/group/group.command.d.ts +90 -0
- package/dist/service/scheduler/command/group/group.command.js +1 -0
- package/dist/service/scheduler/command/group/sim-scheduler-described-group.d.ts +15 -0
- package/dist/service/scheduler/command/group/sim-scheduler-described-group.js +29 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-access.d.ts +57 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-access.js +70 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-commands.d.ts +46 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-commands.js +72 -0
- package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.d.ts +6 -0
- package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.js +10 -0
- package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.d.ts +14 -0
- package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.js +19 -0
- 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 +16 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +23 -3
- package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -0
- package/dist/service/scheduler/command/sim-scheduler-commands.d.ts +4 -0
- package/dist/service/scheduler/command/sim-scheduler-commands.js +14 -1
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +1 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-queue.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-topic.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-execution-role.d.ts +9 -3
- package/dist/service/scheduler/delivery/sim-scheduler-execution-role.js +10 -3
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.d.ts +11 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.js +13 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.d.ts +46 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.js +65 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group.d.ts +25 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group.js +32 -0
- package/dist/service/scheduler/index.d.ts +2 -0
- package/dist/service/scheduler/index.js +2 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.d.ts +11 -9
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.js +15 -18
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.d.ts +7 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.js +13 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule.d.ts +13 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule.js +16 -0
- package/dist/service/scheduler/sdk/sim-scheduler-sdk-command-router.js +16 -0
- package/dist/service/scheduler/sim-scheduler-inspection.d.ts +14 -0
- package/dist/service/scheduler/sim-scheduler-inspection.js +15 -0
- package/dist/service/scheduler/sim-scheduler.d.ts +19 -1
- package/dist/service/scheduler/sim-scheduler.js +38 -2
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +2 -1
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +2 -2
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +2 -2
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +4 -5
- package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js +1 -0
- package/dist/service/secretsmanager/sim-secrets-manager.d.ts +1 -1
- package/dist/service/secretsmanager/sim-secrets-manager.js +3 -2
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +3 -2
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +4 -4
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +3 -2
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +4 -8
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +2 -2
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +7 -6
- package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.d.ts +3 -2
- package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.js +4 -8
- package/dist/service/ses/command/authorize/sim-ses-authorizer.js +1 -0
- package/dist/service/ses/sim-ses-commands.d.ts +1 -1
- package/dist/service/ses/sim-ses-commands.js +3 -2
- package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +5 -8
- package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +10 -28
- package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +10 -5
- package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +2 -1
- package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +2 -2
- package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +2 -1
- package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +5 -7
- package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +9 -1
- package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +20 -4
- package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +2 -1
- package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +2 -1
- package/dist/service/sns/sim-sns.d.ts +1 -1
- package/dist/service/sns/sim-sns.js +3 -2
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +2 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +2 -4
- package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.d.ts +2 -1
- package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.js +4 -4
- package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.d.ts +2 -1
- package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.js +7 -7
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +5 -3
- package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js +1 -0
- package/dist/service/sqs/sim-sqs.d.ts +1 -1
- package/dist/service/sqs/sim-sqs.js +3 -2
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +2 -1
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +2 -2
- package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +2 -2
- package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +4 -3
- package/dist/service/ssm/command/authorize/sim-ssm-authorizer.js +1 -0
- package/dist/service/ssm/sim-ssm.d.ts +1 -1
- package/dist/service/ssm/sim-ssm.js +3 -2
- package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.d.ts +2 -1
- package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.js +2 -4
- package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.d.ts +1 -1
- package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.js +4 -3
- package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.d.ts +2 -1
- package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.js +2 -2
- package/dist/service/stepfunctions/task/sim-aws-states-task-targets.js +2 -4
- package/dist/service/stepfunctions/task/sim-states-execution-role.d.ts +3 -3
- package/dist/service/stepfunctions/task/sim-states-execution-role.js +4 -3
- package/dist/service/stepfunctions/task/sim-states-task-function.js +2 -1
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +3 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -7
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +3 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.js +3 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +1 -0
- 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 +2 -1
- package/dist/service/sts/service-role/sim-service-role-source.d.ts +33 -0
- package/dist/service/sts/service-role/sim-service-role-source.js +26 -0
- package/dist/service/sts/service-role/sim-service-role-target.d.ts +26 -0
- package/dist/service/sts/service-role/sim-service-role-target.js +27 -0
- package/dist/service/sts/service-role/sim-service-role.d.ts +16 -20
- package/dist/service/sts/service-role/sim-service-role.js +7 -21
- package/dist/service/sts/sim-sts.js +1 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +4 -6
- package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.js +4 -4
- package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.js +4 -4
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.d.ts +2 -1
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.js +5 -5
- package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.d.ts +2 -2
- package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.js +8 -6
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +4 -6
- package/dist/service/wafv2/command/authorize/sim-wafv2-authorizer.js +1 -0
- package/dist/service/wafv2/sim-wafv2-commands.d.ts +1 -1
- package/dist/service/wafv2/sim-wafv2-commands.js +3 -2
- package/dist/util/clock/sim-clock-control.d.ts +3 -1
- package/dist/util/clock/sim-clock-control.js +2 -0
- package/dist/util/clock/sim-controllable-clock.d.ts +3 -1
- package/dist/util/clock/sim-controllable-clock.js +2 -0
- package/dist/util/clock/sim-duration.d.ts +6 -2
- package/dist/util/clock/sim-duration.js +8 -1
- package/package.json +5 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimArn } from "../../../aws/arn.js";
|
|
2
|
+
import type { AwsRegionName } from "../../../aws/sim-aws-region.js";
|
|
2
3
|
import type { SimAwsCaller, SimAwsPrincipal } from "../../../aws/caller/sim-aws-caller.js";
|
|
3
4
|
import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
4
5
|
import type { SimIamAccountResolver } from "../../registry/sim-iam-account-resolver.js";
|
|
@@ -8,6 +9,7 @@ import type { SimIamCallerConditionSource } from "./sim-iam-caller-condition-sou
|
|
|
8
9
|
import type { SimIamAuthZContext, SimIamAuthZPolicySource, SimIamAuthZPolicySourceType } from "./sim-iam-auth-z-context.js";
|
|
9
10
|
import type { SimAwsCredentialIdentityResolver } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
10
11
|
import type { SimIamUser, SimIamUsername } from "../../user/sim-iam-user.js";
|
|
12
|
+
import type { SimIamServiceControlPolicyResolver } from "../scp/sim-iam-scp-resolver.js";
|
|
11
13
|
export interface SimIamResourcePolicyInput {
|
|
12
14
|
readonly document: SimIamPolicyDocument;
|
|
13
15
|
readonly sourceType?: Extract<SimIamAuthZPolicySourceType, "resource" | "trust">;
|
|
@@ -20,6 +22,17 @@ export interface SimIamResourcePolicyInput {
|
|
|
20
22
|
export interface SimIamAuthorizationInput {
|
|
21
23
|
readonly action: string;
|
|
22
24
|
readonly resource: string;
|
|
25
|
+
/**
|
|
26
|
+
* The Region the request was made in, which sim IAM derives
|
|
27
|
+
* `aws:RequestedRegion` from.
|
|
28
|
+
*
|
|
29
|
+
* A simulated service supplies its own Region. A request reaching one
|
|
30
|
+
* through its command handlers therefore carries it, with the caller saying
|
|
31
|
+
* nothing. IAM itself belongs to an Account and has no Region to fall back
|
|
32
|
+
* on. A request arriving without one leaves the key out of the condition
|
|
33
|
+
* context, and a statement conditioned on it matches nothing.
|
|
34
|
+
*/
|
|
35
|
+
readonly region?: AwsRegionName | undefined;
|
|
23
36
|
/**
|
|
24
37
|
* Condition values known by the service handling the simulated request, such
|
|
25
38
|
* as S3 object tags. Sim IAM automatically supplies global condition values
|
|
@@ -77,6 +90,11 @@ interface SimIamAuthZContextBuilderProperties {
|
|
|
77
90
|
* of a cross-Account request.
|
|
78
91
|
*/
|
|
79
92
|
readonly iamResolver?: SimIamAccountResolver | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Resolves the service control policies in force for an Account. A
|
|
95
|
+
* standalone SimIam has no organization around it and leaves this out.
|
|
96
|
+
*/
|
|
97
|
+
readonly scpResolver?: SimIamServiceControlPolicyResolver | undefined;
|
|
80
98
|
}
|
|
81
99
|
/**
|
|
82
100
|
* Builds the authorization context consumed by SimIamAuthorizer.
|
|
@@ -99,16 +117,22 @@ interface SimIamAuthZContextBuilderProperties {
|
|
|
99
117
|
* They are passed through the authorization input rather than loaded from the
|
|
100
118
|
* IAM role or managed-policy stores.
|
|
101
119
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
120
|
+
* Service control policies come from the organization the caller's Account
|
|
121
|
+
* belongs to, read by SimIamAuthZScpSourceBuilder. They filter and grant
|
|
122
|
+
* nothing, so they travel apart from the sides that can allow a request.
|
|
123
|
+
*
|
|
124
|
+
* Permissions boundaries, session policies, and role trust-policy assume-role
|
|
125
|
+
* semantics are not part of this context assembly path yet. Add those concerns
|
|
126
|
+
* through separate policy-source builders so this class stays focused on
|
|
127
|
+
* composing the authorization request.
|
|
106
128
|
*/
|
|
107
129
|
export declare class SimIamAuthZContextBuilder {
|
|
108
130
|
private readonly callerContextBuilder;
|
|
109
131
|
private readonly identityPolicyCoordinator;
|
|
110
132
|
private readonly callerAccountResolver;
|
|
111
133
|
private readonly allowRequirement;
|
|
134
|
+
private readonly derivedConditions;
|
|
135
|
+
private readonly scpSourceBuilder;
|
|
112
136
|
constructor(properties: SimIamAuthZContextBuilderProperties);
|
|
113
137
|
/**
|
|
114
138
|
* Build the context consumed by SimIamAuthorizer.
|
|
@@ -128,23 +152,14 @@ export declare class SimIamAuthZContextBuilder {
|
|
|
128
152
|
*/
|
|
129
153
|
private ownIdentityPolicySources;
|
|
130
154
|
/**
|
|
131
|
-
* Combine service-provided condition values with global values
|
|
132
|
-
*
|
|
155
|
+
* Combine service-provided condition values with the global values IAM
|
|
156
|
+
* derives itself.
|
|
133
157
|
*
|
|
134
158
|
* A service supplies values it knows from the request, and values it can
|
|
135
159
|
* only work out once the caller is resolved. IAM's own values are applied
|
|
136
160
|
* last, so nothing a service supplies can overwrite them.
|
|
137
161
|
*/
|
|
138
162
|
private conditionContext;
|
|
139
|
-
/**
|
|
140
|
-
* The condition values IAM derives from the caller itself.
|
|
141
|
-
*
|
|
142
|
-
* AWS:PrincipalArn identifies the IAM identity whose policies apply; for
|
|
143
|
-
* temporary Role credentials this is the underlying Role ARN, rather than
|
|
144
|
-
* the STS assumed-role session ARN retained as the effective caller for
|
|
145
|
-
* diagnostics.
|
|
146
|
-
*/
|
|
147
|
-
private callerDerivedConditions;
|
|
148
163
|
/**
|
|
149
164
|
* Convert resource policies supplied by the resource-owning service into
|
|
150
165
|
* authorization policy sources.
|
|
@@ -3,6 +3,8 @@ import { SimIamCallerAccountResolver } from "../caller-account/sim-iam-caller-ac
|
|
|
3
3
|
import { SimIamAuthZAllowRequirement } from "./sim-iam-auth-z-allow-requirement.js";
|
|
4
4
|
import { SimIamAuthZIdentityPolicyCoordinator } from "./identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js";
|
|
5
5
|
import { SimIamAuthZCallerContextBuilder, } from "./sim-iam-auth-z-caller-context-builder.js";
|
|
6
|
+
import { SimIamAuthZScpSourceBuilder } from "./sim-iam-auth-z-scp-source-builder.js";
|
|
7
|
+
import { SimIamDerivedConditions } from "./sim-iam-derived-conditions.js";
|
|
6
8
|
/**
|
|
7
9
|
* Builds the authorization context consumed by SimIamAuthorizer.
|
|
8
10
|
*
|
|
@@ -24,16 +26,22 @@ import { SimIamAuthZCallerContextBuilder, } from "./sim-iam-auth-z-caller-contex
|
|
|
24
26
|
* They are passed through the authorization input rather than loaded from the
|
|
25
27
|
* IAM role or managed-policy stores.
|
|
26
28
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
29
|
+
* Service control policies come from the organization the caller's Account
|
|
30
|
+
* belongs to, read by SimIamAuthZScpSourceBuilder. They filter and grant
|
|
31
|
+
* nothing, so they travel apart from the sides that can allow a request.
|
|
32
|
+
*
|
|
33
|
+
* Permissions boundaries, session policies, and role trust-policy assume-role
|
|
34
|
+
* semantics are not part of this context assembly path yet. Add those concerns
|
|
35
|
+
* through separate policy-source builders so this class stays focused on
|
|
36
|
+
* composing the authorization request.
|
|
31
37
|
*/
|
|
32
38
|
export class SimIamAuthZContextBuilder {
|
|
33
39
|
callerContextBuilder;
|
|
34
40
|
identityPolicyCoordinator;
|
|
35
41
|
callerAccountResolver;
|
|
36
42
|
allowRequirement = new SimIamAuthZAllowRequirement();
|
|
43
|
+
derivedConditions = new SimIamDerivedConditions();
|
|
44
|
+
scpSourceBuilder;
|
|
37
45
|
constructor(properties) {
|
|
38
46
|
this.callerContextBuilder = new SimIamAuthZCallerContextBuilder(makeSimAwsAccountRootPrincipal(properties.accountId), properties.credentialIdentityResolver);
|
|
39
47
|
this.identityPolicyCoordinator = new SimIamAuthZIdentityPolicyCoordinator({
|
|
@@ -45,6 +53,10 @@ export class SimIamAuthZContextBuilder {
|
|
|
45
53
|
accountId: properties.accountId,
|
|
46
54
|
iamResolver: properties.iamResolver,
|
|
47
55
|
});
|
|
56
|
+
this.scpSourceBuilder = new SimIamAuthZScpSourceBuilder({
|
|
57
|
+
accountId: properties.accountId,
|
|
58
|
+
scpResolver: properties.scpResolver,
|
|
59
|
+
});
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
62
|
* Build the context consumed by SimIamAuthorizer.
|
|
@@ -58,6 +70,7 @@ export class SimIamAuthZContextBuilder {
|
|
|
58
70
|
...callerAccount.identityPolicies,
|
|
59
71
|
],
|
|
60
72
|
resourcePolicies: this.resourcePolicySources(input),
|
|
73
|
+
serviceControlPolicies: this.scpSourceBuilder.build(callerContext.caller),
|
|
61
74
|
allowRequirement: this.allowRequirement.resolve(callerAccount, input.requiresResourcePolicyAllow),
|
|
62
75
|
action: input.action,
|
|
63
76
|
resource: input.resource,
|
|
@@ -86,8 +99,8 @@ export class SimIamAuthZContextBuilder {
|
|
|
86
99
|
];
|
|
87
100
|
}
|
|
88
101
|
/**
|
|
89
|
-
* Combine service-provided condition values with global values
|
|
90
|
-
*
|
|
102
|
+
* Combine service-provided condition values with the global values IAM
|
|
103
|
+
* derives itself.
|
|
91
104
|
*
|
|
92
105
|
* A service supplies values it knows from the request, and values it can
|
|
93
106
|
* only work out once the caller is resolved. IAM's own values are applied
|
|
@@ -97,24 +110,9 @@ export class SimIamAuthZContextBuilder {
|
|
|
97
110
|
return {
|
|
98
111
|
...input.conditionContext,
|
|
99
112
|
...input.callerConditions?.conditionValuesFor(caller),
|
|
100
|
-
...this.
|
|
113
|
+
...this.derivedConditions.of({ caller, region: input.region }),
|
|
101
114
|
};
|
|
102
115
|
}
|
|
103
|
-
/**
|
|
104
|
-
* The condition values IAM derives from the caller itself.
|
|
105
|
-
*
|
|
106
|
-
* AWS:PrincipalArn identifies the IAM identity whose policies apply; for
|
|
107
|
-
* temporary Role credentials this is the underlying Role ARN, rather than
|
|
108
|
-
* the STS assumed-role session ARN retained as the effective caller for
|
|
109
|
-
* diagnostics.
|
|
110
|
-
*/
|
|
111
|
-
callerDerivedConditions(caller) {
|
|
112
|
-
const principalArn = caller.identityPolicyArn ?? caller.arn;
|
|
113
|
-
if (principalArn === undefined) {
|
|
114
|
-
return {};
|
|
115
|
-
}
|
|
116
|
-
return { "aws:PrincipalArn": principalArn };
|
|
117
|
-
}
|
|
118
116
|
/**
|
|
119
117
|
* Convert resource policies supplied by the resource-owning service into
|
|
120
118
|
* authorization policy sources.
|
|
@@ -2,7 +2,7 @@ import type { SimArn } from "../../../aws/arn.js";
|
|
|
2
2
|
import type { SimIamConditionValue, SimIamPolicyDocument } from "../../policy/sim-iam-policy.js";
|
|
3
3
|
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
4
4
|
import type { SimIamAllowRequirement } from "../allow/sim-iam-allow-requirement.js";
|
|
5
|
-
export type SimIamAuthZPolicySourceType = "identity-inline" | "identity-managed" | "resource" | "trust" | "permissions-boundary" | "session";
|
|
5
|
+
export type SimIamAuthZPolicySourceType = "identity-inline" | "identity-managed" | "resource" | "trust" | "permissions-boundary" | "session" | "service-control";
|
|
6
6
|
export interface SimIamAuthZPolicySource {
|
|
7
7
|
readonly sourceType: SimIamAuthZPolicySourceType;
|
|
8
8
|
readonly document: SimIamPolicyDocument;
|
|
@@ -16,6 +16,29 @@ export interface SimIamAuthZPolicySource {
|
|
|
16
16
|
export type SimIamAuthZResourcePolicySource = Omit<SimIamAuthZPolicySource, "sourceType"> & {
|
|
17
17
|
readonly sourceType: Extract<SimIamAuthZPolicySourceType, "resource" | "trust">;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* The service control policies attached at one level above the caller's
|
|
21
|
+
* Account, which is the root, an organizational unit, or the Account itself.
|
|
22
|
+
*
|
|
23
|
+
* Each level has to allow the action on its own. A level allowing nothing
|
|
24
|
+
* denies the request whatever another level allows, which is why the sources
|
|
25
|
+
* stay grouped rather than being read as one list.
|
|
26
|
+
*/
|
|
27
|
+
export interface SimIamAuthZServiceControlPolicyLevel {
|
|
28
|
+
readonly nodeName: string;
|
|
29
|
+
readonly sources: readonly SimIamAuthZPolicySource[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The service control policies in force for an authorization request.
|
|
33
|
+
*
|
|
34
|
+
* `applies` is a separate fact from how many levels there are. An Account
|
|
35
|
+
* inside an organization holding no policy allows nothing, while an Account
|
|
36
|
+
* outside every organization is unrestricted, and both can carry no levels.
|
|
37
|
+
*/
|
|
38
|
+
export interface SimIamAuthZServiceControlPolicies {
|
|
39
|
+
readonly applies: boolean;
|
|
40
|
+
readonly levels: readonly SimIamAuthZServiceControlPolicyLevel[];
|
|
41
|
+
}
|
|
19
42
|
export interface SimIamAuthZContext {
|
|
20
43
|
/**
|
|
21
44
|
* Identity-based policies that grant permissions to the principal.
|
|
@@ -29,6 +52,13 @@ export interface SimIamAuthZContext {
|
|
|
29
52
|
* Resource policies are not gathered from IAM's managed policy store.
|
|
30
53
|
*/
|
|
31
54
|
readonly resourcePolicies: readonly SimIamAuthZPolicySource[];
|
|
55
|
+
/**
|
|
56
|
+
* Service control policies in force for the caller's Account.
|
|
57
|
+
*
|
|
58
|
+
* These filter what the Account's principals may do and grant nothing, so
|
|
59
|
+
* they are kept apart from the two sides that can allow a request.
|
|
60
|
+
*/
|
|
61
|
+
readonly serviceControlPolicies: SimIamAuthZServiceControlPolicies;
|
|
32
62
|
/**
|
|
33
63
|
* How an Allow from each policy side combines into the final decision.
|
|
34
64
|
*
|
|
@@ -6,6 +6,7 @@ import { SimIamEitherSideAllowRequirement } from "../allow/sim-iam-allow-require
|
|
|
6
6
|
export const simIamAuthZContextFactory = new StaticFactory({
|
|
7
7
|
identityPolicies: [],
|
|
8
8
|
resourcePolicies: [],
|
|
9
|
+
serviceControlPolicies: { applies: false, levels: [] },
|
|
9
10
|
allowRequirement: new SimIamEitherSideAllowRequirement(),
|
|
10
11
|
action: "s3:GetObject",
|
|
11
12
|
resource: "arn:aws:s3:::test-bucket/test-key",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
2
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
3
|
+
import type { SimIamServiceControlPolicyResolver } from "../scp/sim-iam-scp-resolver.js";
|
|
4
|
+
import type { SimIamAuthZServiceControlPolicies } from "./sim-iam-auth-z-context.js";
|
|
5
|
+
interface SimIamAuthZScpSourceBuilderProperties {
|
|
6
|
+
/**
|
|
7
|
+
* The Account whose IAM is evaluating the request.
|
|
8
|
+
*/
|
|
9
|
+
readonly accountId: SimAwsAccountId;
|
|
10
|
+
readonly scpResolver?: SimIamServiceControlPolicyResolver | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Finds the service control policies that apply to one request.
|
|
14
|
+
*
|
|
15
|
+
* An SCP belongs to the caller's own Account, which is the Account whose
|
|
16
|
+
* principal is asking. For a request within one Account that is the Account
|
|
17
|
+
* evaluating it. For a cross-Account request it is the other one, because AWS
|
|
18
|
+
* filters a principal by the organization its own account sits in and leaves
|
|
19
|
+
* the resource's organization to say nothing about it.
|
|
20
|
+
*
|
|
21
|
+
* A caller with no Account in its ARN, which means a service principal or an
|
|
22
|
+
* anonymous request, belongs to no Account and is subject to no SCP.
|
|
23
|
+
*/
|
|
24
|
+
export declare class SimIamAuthZScpSourceBuilder {
|
|
25
|
+
/**
|
|
26
|
+
* What a caller no organization reaches is subject to.
|
|
27
|
+
*/
|
|
28
|
+
private static readonly unrestricted;
|
|
29
|
+
private readonly accountId;
|
|
30
|
+
private readonly scpResolver?;
|
|
31
|
+
constructor(properties: SimIamAuthZScpSourceBuilderProperties);
|
|
32
|
+
/**
|
|
33
|
+
* The service control policies in force for a resolved caller.
|
|
34
|
+
*/
|
|
35
|
+
build(caller: SimAwsResolvedCaller): SimIamAuthZServiceControlPolicies;
|
|
36
|
+
/**
|
|
37
|
+
* The Account whose organization decides this request.
|
|
38
|
+
*
|
|
39
|
+
* A caller identified only by a service name or by nothing at all has no
|
|
40
|
+
* Account of its own. The Account root fallback IAM applies to a request
|
|
41
|
+
* with no caller carries this Account's id, so a CloudFormation deployment
|
|
42
|
+
* is filtered like any other principal in it.
|
|
43
|
+
*/
|
|
44
|
+
private callerAccountId;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isSimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
2
|
+
/**
|
|
3
|
+
* Finds the service control policies that apply to one request.
|
|
4
|
+
*
|
|
5
|
+
* An SCP belongs to the caller's own Account, which is the Account whose
|
|
6
|
+
* principal is asking. For a request within one Account that is the Account
|
|
7
|
+
* evaluating it. For a cross-Account request it is the other one, because AWS
|
|
8
|
+
* filters a principal by the organization its own account sits in and leaves
|
|
9
|
+
* the resource's organization to say nothing about it.
|
|
10
|
+
*
|
|
11
|
+
* A caller with no Account in its ARN, which means a service principal or an
|
|
12
|
+
* anonymous request, belongs to no Account and is subject to no SCP.
|
|
13
|
+
*/
|
|
14
|
+
export class SimIamAuthZScpSourceBuilder {
|
|
15
|
+
/**
|
|
16
|
+
* What a caller no organization reaches is subject to.
|
|
17
|
+
*/
|
|
18
|
+
static unrestricted = {
|
|
19
|
+
applies: false,
|
|
20
|
+
levels: [],
|
|
21
|
+
};
|
|
22
|
+
accountId;
|
|
23
|
+
scpResolver;
|
|
24
|
+
constructor(properties) {
|
|
25
|
+
this.accountId = properties.accountId;
|
|
26
|
+
this.scpResolver = properties.scpResolver;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The service control policies in force for a resolved caller.
|
|
30
|
+
*/
|
|
31
|
+
build(caller) {
|
|
32
|
+
const scpResolver = this.scpResolver;
|
|
33
|
+
if (scpResolver === undefined) {
|
|
34
|
+
return SimIamAuthZScpSourceBuilder.unrestricted;
|
|
35
|
+
}
|
|
36
|
+
const accountId = this.callerAccountId(caller);
|
|
37
|
+
if (accountId === undefined) {
|
|
38
|
+
return SimIamAuthZScpSourceBuilder.unrestricted;
|
|
39
|
+
}
|
|
40
|
+
const set = scpResolver.serviceControlPolicySetFor(accountId);
|
|
41
|
+
return {
|
|
42
|
+
applies: set.applies,
|
|
43
|
+
levels: set.levels.map((level) => ({
|
|
44
|
+
nodeName: level.nodeName,
|
|
45
|
+
sources: level.policies.map((policy) => ({
|
|
46
|
+
sourceType: "service-control",
|
|
47
|
+
document: policy.document,
|
|
48
|
+
policyName: policy.policyName,
|
|
49
|
+
})),
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The Account whose organization decides this request.
|
|
55
|
+
*
|
|
56
|
+
* A caller identified only by a service name or by nothing at all has no
|
|
57
|
+
* Account of its own. The Account root fallback IAM applies to a request
|
|
58
|
+
* with no caller carries this Account's id, so a CloudFormation deployment
|
|
59
|
+
* is filtered like any other principal in it.
|
|
60
|
+
*/
|
|
61
|
+
callerAccountId(caller) {
|
|
62
|
+
if (caller.principal.kind === "anonymous" || caller.service !== undefined) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const callerAccountId = caller.accountId;
|
|
66
|
+
if (callerAccountId === undefined) {
|
|
67
|
+
return this.accountId;
|
|
68
|
+
}
|
|
69
|
+
return isSimAwsAccountId(callerAccountId) ? callerAccountId : undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
|
|
2
|
+
import type { AwsRegionName } from "../../../aws/sim-aws-region.js";
|
|
3
|
+
import type { SimIamConditionValue } from "../../policy/sim-iam-policy.js";
|
|
4
|
+
/**
|
|
5
|
+
* What a request has to say about itself for IAM to derive its global
|
|
6
|
+
* condition values.
|
|
7
|
+
*/
|
|
8
|
+
export interface SimIamDerivedConditionRequest {
|
|
9
|
+
readonly caller: SimAwsResolvedCaller;
|
|
10
|
+
readonly region?: AwsRegionName | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The global condition values IAM works out for itself.
|
|
14
|
+
*
|
|
15
|
+
* These are the keys a policy can be written against without the service
|
|
16
|
+
* handling the request supplying anything. They are applied over the values a
|
|
17
|
+
* service does supply. A service cannot overwrite one of them.
|
|
18
|
+
*
|
|
19
|
+
* A key the request leaves unsaid is left out. The condition matcher counts a
|
|
20
|
+
* missing key as no match, and a statement conditioned on one then matches
|
|
21
|
+
* nothing.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimIamDerivedConditions {
|
|
24
|
+
/**
|
|
25
|
+
* Derive what IAM knows about this request.
|
|
26
|
+
*/
|
|
27
|
+
of(request: SimIamDerivedConditionRequest): Readonly<Record<string, SimIamConditionValue>>;
|
|
28
|
+
/**
|
|
29
|
+
* AWS:PrincipalArn identifies the IAM identity whose policies apply. For
|
|
30
|
+
* temporary Role credentials this is the underlying Role ARN, rather than
|
|
31
|
+
* the STS assumed-role session ARN retained as the effective caller for
|
|
32
|
+
* diagnostics.
|
|
33
|
+
*/
|
|
34
|
+
private principalArn;
|
|
35
|
+
/**
|
|
36
|
+
* AWS:RequestedRegion is the Region the request was made in, which on real
|
|
37
|
+
* AWS is the Region of the endpoint it was sent to. Here it is the Region of
|
|
38
|
+
* the simulated service handling the request. A service in one Region's
|
|
39
|
+
* scope answers only requests made to that Region.
|
|
40
|
+
*/
|
|
41
|
+
private region;
|
|
42
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global condition values IAM works out for itself.
|
|
3
|
+
*
|
|
4
|
+
* These are the keys a policy can be written against without the service
|
|
5
|
+
* handling the request supplying anything. They are applied over the values a
|
|
6
|
+
* service does supply. A service cannot overwrite one of them.
|
|
7
|
+
*
|
|
8
|
+
* A key the request leaves unsaid is left out. The condition matcher counts a
|
|
9
|
+
* missing key as no match, and a statement conditioned on one then matches
|
|
10
|
+
* nothing.
|
|
11
|
+
*/
|
|
12
|
+
export class SimIamDerivedConditions {
|
|
13
|
+
/**
|
|
14
|
+
* Derive what IAM knows about this request.
|
|
15
|
+
*/
|
|
16
|
+
of(request) {
|
|
17
|
+
return { ...this.principalArn(request.caller), ...this.region(request) };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* AWS:PrincipalArn identifies the IAM identity whose policies apply. For
|
|
21
|
+
* temporary Role credentials this is the underlying Role ARN, rather than
|
|
22
|
+
* the STS assumed-role session ARN retained as the effective caller for
|
|
23
|
+
* diagnostics.
|
|
24
|
+
*/
|
|
25
|
+
principalArn(caller) {
|
|
26
|
+
const principalArn = caller.identityPolicyArn ?? caller.arn;
|
|
27
|
+
if (principalArn === undefined) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
return { "aws:PrincipalArn": principalArn };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* AWS:RequestedRegion is the Region the request was made in, which on real
|
|
34
|
+
* AWS is the Region of the endpoint it was sent to. Here it is the Region of
|
|
35
|
+
* the simulated service handling the request. A service in one Region's
|
|
36
|
+
* scope answers only requests made to that Region.
|
|
37
|
+
*/
|
|
38
|
+
region(request) {
|
|
39
|
+
if (request.region === undefined) {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
return { "aws:RequestedRegion": request.region };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { simIamArnComparison } from "../../sim-iam-string-comparison.js";
|
|
2
2
|
import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar-string-condition-operator.js";
|
|
3
3
|
/**
|
|
4
4
|
* IAM `ArnEquals` condition operator.
|
|
@@ -11,6 +11,6 @@ import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar
|
|
|
11
11
|
*/
|
|
12
12
|
export class SimIamArnEquals extends SimIamScalarStringConditionOperator {
|
|
13
13
|
valueMatches(actual, expected) {
|
|
14
|
-
return
|
|
14
|
+
return simIamArnComparison(actual, expected);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { simIamArnComparison } from "../../sim-iam-string-comparison.js";
|
|
2
2
|
import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar-string-condition-operator.js";
|
|
3
3
|
/**
|
|
4
4
|
* IAM `ArnLike` condition operator.
|
|
@@ -10,6 +10,6 @@ import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar
|
|
|
10
10
|
*/
|
|
11
11
|
export class SimIamArnLike extends SimIamScalarStringConditionOperator {
|
|
12
12
|
valueMatches(actual, expected) {
|
|
13
|
-
return
|
|
13
|
+
return simIamArnComparison(actual, expected);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
|
|
2
|
+
import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
|
|
3
|
+
import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
|
|
4
|
+
/**
|
|
5
|
+
* A `ForAllValues` negated IAM string operator, such as
|
|
6
|
+
* `ForAllValues:StringNotEquals`.
|
|
7
|
+
*
|
|
8
|
+
* Every request value has to differ from every policy value. A request
|
|
9
|
+
* supplying no values leaves nothing to contradict that, so an empty set
|
|
10
|
+
* matches, as an absent key does.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimIamNegatedForAllValuesStringOperator implements SimIamConditionOperator {
|
|
13
|
+
private readonly comparison;
|
|
14
|
+
readonly matchesAbsentKey = true;
|
|
15
|
+
constructor(comparison: SimIamStringComparison);
|
|
16
|
+
/**
|
|
17
|
+
* Check whether every request value differs from every policy value.
|
|
18
|
+
*/
|
|
19
|
+
matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
|
|
20
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { simIamStringValues } from "../string/sim-iam-string-values.js";
|
|
2
|
+
/**
|
|
3
|
+
* A `ForAllValues` negated IAM string operator, such as
|
|
4
|
+
* `ForAllValues:StringNotEquals`.
|
|
5
|
+
*
|
|
6
|
+
* Every request value has to differ from every policy value. A request
|
|
7
|
+
* supplying no values leaves nothing to contradict that, so an empty set
|
|
8
|
+
* matches, as an absent key does.
|
|
9
|
+
*/
|
|
10
|
+
export class SimIamNegatedForAllValuesStringOperator {
|
|
11
|
+
comparison;
|
|
12
|
+
matchesAbsentKey = true;
|
|
13
|
+
constructor(comparison) {
|
|
14
|
+
this.comparison = comparison;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check whether every request value differs from every policy value.
|
|
18
|
+
*/
|
|
19
|
+
matches(actual, expected) {
|
|
20
|
+
const actualValues = simIamStringValues(actual);
|
|
21
|
+
const expectedValues = simIamStringValues(expected);
|
|
22
|
+
if (actualValues === undefined || expectedValues === undefined) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return actualValues.every((actualValue) => expectedValues.every((expectedValue) => !this.comparison(actualValue, expectedValue)));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
|
|
2
|
+
import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
|
|
3
|
+
import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
|
|
4
|
+
/**
|
|
5
|
+
* A `ForAnyValue` negated IAM string operator, such as
|
|
6
|
+
* `ForAnyValue:StringNotEquals`.
|
|
7
|
+
*
|
|
8
|
+
* One request value differing from every policy value is enough. A request
|
|
9
|
+
* supplying no such value satisfies nothing, which covers both an empty value
|
|
10
|
+
* set and a key the request omits. The `ForAnyValue` qualifier settles the
|
|
11
|
+
* absent key here, ahead of the rule that a negated operator matches one.
|
|
12
|
+
*/
|
|
13
|
+
export declare class SimIamNegatedForAnyValueStringOperator implements SimIamConditionOperator {
|
|
14
|
+
private readonly comparison;
|
|
15
|
+
readonly matchesAbsentKey = false;
|
|
16
|
+
constructor(comparison: SimIamStringComparison);
|
|
17
|
+
/**
|
|
18
|
+
* Check whether any request value differs from every policy value.
|
|
19
|
+
*/
|
|
20
|
+
matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { simIamStringValues } from "../string/sim-iam-string-values.js";
|
|
2
|
+
/**
|
|
3
|
+
* A `ForAnyValue` negated IAM string operator, such as
|
|
4
|
+
* `ForAnyValue:StringNotEquals`.
|
|
5
|
+
*
|
|
6
|
+
* One request value differing from every policy value is enough. A request
|
|
7
|
+
* supplying no such value satisfies nothing, which covers both an empty value
|
|
8
|
+
* set and a key the request omits. The `ForAnyValue` qualifier settles the
|
|
9
|
+
* absent key here, ahead of the rule that a negated operator matches one.
|
|
10
|
+
*/
|
|
11
|
+
export class SimIamNegatedForAnyValueStringOperator {
|
|
12
|
+
comparison;
|
|
13
|
+
matchesAbsentKey = false;
|
|
14
|
+
constructor(comparison) {
|
|
15
|
+
this.comparison = comparison;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check whether any request value differs from every policy value.
|
|
19
|
+
*/
|
|
20
|
+
matches(actual, expected) {
|
|
21
|
+
const actualValues = simIamStringValues(actual);
|
|
22
|
+
const expectedValues = simIamStringValues(expected);
|
|
23
|
+
if (actualValues === undefined || expectedValues === undefined) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return actualValues.some((actualValue) => expectedValues.every((expectedValue) => !this.comparison(actualValue, expectedValue)));
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SimIamConditionOperatorFactory } from "../sim-iam-condition-operator.js";
|
|
2
|
+
/**
|
|
3
|
+
* Every negated condition operator sim IAM evaluates, keyed by its keyword.
|
|
4
|
+
*/
|
|
5
|
+
export declare const simIamNegatedOperatorFactories: ReadonlyMap<string, SimIamConditionOperatorFactory>;
|
package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { simIamArnComparison, simIamStringEqualsComparison, simIamStringLikeComparison, } from "../sim-iam-string-comparison.js";
|
|
2
|
+
import { SimIamNegatedForAllValuesStringOperator } from "./sim-iam-negated-for-all-values-string-operator.js";
|
|
3
|
+
import { SimIamNegatedForAnyValueStringOperator } from "./sim-iam-negated-for-any-value-string-operator.js";
|
|
4
|
+
import { SimIamNegatedScalarStringOperator } from "./sim-iam-negated-scalar-string-operator.js";
|
|
5
|
+
/**
|
|
6
|
+
* The comparison behind each negated operator keyword.
|
|
7
|
+
*/
|
|
8
|
+
const negatedComparisons = new Map([
|
|
9
|
+
["ArnNotEquals", simIamArnComparison],
|
|
10
|
+
["ArnNotLike", simIamArnComparison],
|
|
11
|
+
["StringNotEquals", simIamStringEqualsComparison],
|
|
12
|
+
["StringNotLike", simIamStringLikeComparison],
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Build the unqualified and set forms of one negated keyword.
|
|
16
|
+
*/
|
|
17
|
+
function keywordForms(keyword, comparison) {
|
|
18
|
+
return [
|
|
19
|
+
[
|
|
20
|
+
keyword,
|
|
21
|
+
() => new SimIamNegatedScalarStringOperator(comparison),
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
`ForAnyValue:${keyword}`,
|
|
25
|
+
() => new SimIamNegatedForAnyValueStringOperator(comparison),
|
|
26
|
+
],
|
|
27
|
+
[
|
|
28
|
+
`ForAllValues:${keyword}`,
|
|
29
|
+
() => new SimIamNegatedForAllValuesStringOperator(comparison),
|
|
30
|
+
],
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Every negated condition operator sim IAM evaluates, keyed by its keyword.
|
|
35
|
+
*/
|
|
36
|
+
export const simIamNegatedOperatorFactories = new Map([...negatedComparisons].flatMap(([keyword, comparison]) => keywordForms(keyword, comparison)));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
|
|
2
|
+
import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
|
|
3
|
+
import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
|
|
4
|
+
/**
|
|
5
|
+
* An unqualified negated IAM string operator, such as `StringNotEquals`.
|
|
6
|
+
*
|
|
7
|
+
* The request value must be scalar, as it must for the positive operators.
|
|
8
|
+
* Several policy values are an AND rather than an OR: the request value has to
|
|
9
|
+
* differ from every one of them, so a carve-out naming three roles exempts all
|
|
10
|
+
* three.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimIamNegatedScalarStringOperator implements SimIamConditionOperator {
|
|
13
|
+
private readonly comparison;
|
|
14
|
+
readonly matchesAbsentKey = true;
|
|
15
|
+
constructor(comparison: SimIamStringComparison);
|
|
16
|
+
/**
|
|
17
|
+
* Check whether a request value differs from every policy value.
|
|
18
|
+
*/
|
|
19
|
+
matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
|
|
20
|
+
}
|