diff --git a/packages/@aws-cdk/aws-ec2-alpha/lib/ipam.ts b/packages/@aws-cdk/aws-ec2-alpha/lib/ipam.ts index 69f669d977498..1b86bfc9b0d4d 100644 --- a/packages/@aws-cdk/aws-ec2-alpha/lib/ipam.ts +++ b/packages/@aws-cdk/aws-ec2-alpha/lib/ipam.ts @@ -418,6 +418,8 @@ class IpamScope extends Resource implements IIpamScopeBase { constructor(scope: Construct, id: string, props: IpamScopeProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this._ipamScope = new CfnIPAMScope(scope, 'IpamScope', { ipamId: props.ipamId, }); @@ -511,6 +513,8 @@ export class Ipam extends Resource { constructor(scope: Construct, id: string, props?: IpamProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props?.ipamName) { Tags.of(this).add(NAME_TAG, props.ipamName); } diff --git a/packages/@aws-cdk/aws-ec2-alpha/lib/route.ts b/packages/@aws-cdk/aws-ec2-alpha/lib/route.ts index 052610b20c3b9..c442e0b61708d 100644 --- a/packages/@aws-cdk/aws-ec2-alpha/lib/route.ts +++ b/packages/@aws-cdk/aws-ec2-alpha/lib/route.ts @@ -281,6 +281,8 @@ export class InternetGateway extends Resource implements IRouteTarget { constructor(scope: Construct, id: string, props: InternetGatewayProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.routerType = RouterType.GATEWAY; @@ -340,6 +342,8 @@ export class VPNGatewayV2 extends Resource implements IRouteTarget { super(scope, id, { physicalName: props.vpnGatewayName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.routerType = RouterType.GATEWAY; @@ -424,6 +428,8 @@ export class NatGateway extends Resource implements IRouteTarget { constructor(scope: Construct, id: string, props: NatGatewayProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.routerType = RouterType.NAT_GATEWAY; @@ -490,6 +496,8 @@ export class VPCPeeringConnection extends Resource implements IRouteTarget { constructor(scope: Construct, id: string, props: VPCPeeringConnectionProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.routerType = RouterType.VPC_PEERING_CONNECTION; @@ -717,6 +725,8 @@ export class Route extends Resource implements IRouteV2 { constructor(scope: Construct, id: string, props: RouteProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.target = props.target; this.routeTable = props.routeTable; @@ -789,6 +799,8 @@ export class RouteTable extends Resource implements IRouteTable { constructor(scope: Construct, id: string, props: RouteTableProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.resource = new CfnRouteTable(this, 'RouteTable', { vpcId: props.vpc.vpcId, diff --git a/packages/@aws-cdk/aws-ec2-alpha/lib/vpc-v2.ts b/packages/@aws-cdk/aws-ec2-alpha/lib/vpc-v2.ts index e92c71ecbb626..8b1b8cd5008e4 100644 --- a/packages/@aws-cdk/aws-ec2-alpha/lib/vpc-v2.ts +++ b/packages/@aws-cdk/aws-ec2-alpha/lib/vpc-v2.ts @@ -852,6 +852,8 @@ class VPCCidrBlock extends Resource implements IVPCCidrBlock { constructor(scope: Construct, id: string, props: VPCCidrBlockProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.resource = new CfnVPCCidrBlock(this, id, props); this.node.defaultChild = this.resource; this.cidrBlock = props.cidrBlock; diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-etl-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-etl-job.ts index d624920c28194..d56b5606aac5e 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-etl-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-etl-job.ts @@ -6,6 +6,7 @@ import { Construct } from 'constructs'; import { JobType, GlueVersion, JobLanguage, PythonVersion, WorkerType } from '../constants'; import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; import { Code } from '../code'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Python Spark ETL job @@ -84,6 +85,8 @@ export class PySparkEtlJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-flex-etl-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-flex-etl-job.ts index 5ef2187ea8070..13d73c2fd151f 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-flex-etl-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-flex-etl-job.ts @@ -7,6 +7,7 @@ import { JobType, GlueVersion, JobLanguage, PythonVersion, WorkerType, Execution import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; import * as cdk from 'aws-cdk-lib/core'; import { Code } from '../code'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for PySparkFlexEtlJob @@ -82,6 +83,8 @@ export class PySparkFlexEtlJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-streaming-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-streaming-job.ts index bec949c7bf6f1..cec13b8b2afda 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-streaming-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/pyspark-streaming-job.ts @@ -6,6 +6,7 @@ import { Construct } from 'constructs'; import { JobType, GlueVersion, JobLanguage, PythonVersion, WorkerType } from '../constants'; import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; import { Code } from '../code'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Python Spark ETL job @@ -84,6 +85,8 @@ export class PySparkStreamingJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/python-shell-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/python-shell-job.ts index 66375eaf1b53d..6e8e31d90171c 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/python-shell-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/python-shell-job.ts @@ -3,6 +3,7 @@ import * as iam from 'aws-cdk-lib/aws-iam'; import { Job, JobProperties } from './job'; import { Construct } from 'constructs'; import { JobType, GlueVersion, PythonVersion, MaxCapacity, JobLanguage } from '../constants'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Python Shell job @@ -53,6 +54,8 @@ export class PythonShellJob extends Job { */ constructor(scope: Construct, id: string, props: PythonShellJobProps) { super(scope, id, { physicalName: props.jobName }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/ray-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/ray-job.ts index c18fec4405bf8..bb5ff8d3e8e44 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/ray-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/ray-job.ts @@ -3,6 +3,7 @@ import * as iam from 'aws-cdk-lib/aws-iam'; import { Job, JobProperties } from './job'; import { Construct } from 'constructs'; import { JobType, GlueVersion, WorkerType, Runtime } from '../constants'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Ray Glue job @@ -49,6 +50,8 @@ export class RayJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.jobName = props.jobName ?? ''; diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-etl-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-etl-job.ts index 67bdf275105f7..2b62142c036db 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-etl-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-etl-job.ts @@ -6,6 +6,7 @@ import { Construct } from 'constructs'; import { JobType, GlueVersion, JobLanguage, WorkerType } from '../constants'; import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; import { Code } from '../code'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Scala Spark ETL job @@ -81,6 +82,8 @@ export class ScalaSparkEtlJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-flex-etl-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-flex-etl-job.ts index 7d73540787def..478fa111320ef 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-flex-etl-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-flex-etl-job.ts @@ -7,6 +7,7 @@ import { JobType, GlueVersion, JobLanguage, WorkerType, ExecutionClass } from '. import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; import * as cdk from 'aws-cdk-lib/core'; import { Code } from '../code'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Flex Jobs class @@ -109,6 +110,8 @@ export class ScalaSparkFlexEtlJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-streaming-job.ts b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-streaming-job.ts index 5b4b9f9810c44..899ccf7ab0a74 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-streaming-job.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/jobs/scala-spark-streaming-job.ts @@ -5,6 +5,7 @@ import { Job, JobProperties } from './job'; import { Construct } from 'constructs'; import { JobType, GlueVersion, JobLanguage, WorkerType } from '../constants'; import { SparkUIProps, SparkUILoggingLocation, validateSparkUiPrefix, cleanSparkUiPrefixForGrant } from './spark-ui-utils'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * Properties for creating a Scala Spark ETL job @@ -80,6 +81,8 @@ export class ScalaSparkStreamingJob extends Job { super(scope, id, { physicalName: props.jobName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); // Set up role and permissions for principal this.role = props.role, { diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/triggers/workflow.ts b/packages/@aws-cdk/aws-glue-alpha/lib/triggers/workflow.ts index 7b918a42a7c51..422332a464f55 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/triggers/workflow.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/triggers/workflow.ts @@ -15,6 +15,7 @@ import { NotifyEventTriggerOptions, ConditionalTriggerOptions, } from './trigger-options'; +import { addConstructMetadata } from 'aws-cdk-lib/core/lib/metadata-resource'; /** * The base interface for Glue Workflow @@ -407,6 +408,8 @@ export class Workflow extends WorkflowBase { super(scope, id, { physicalName: props?.workflowName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const resource = new CfnWorkflow(this, 'Resource', { name: this.physicalName, diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/application.ts b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/application.ts index 71cca5907a958..e36090680951f 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/application.ts +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/application.ts @@ -974,6 +974,8 @@ export class Application extends ApplicationBase { constructor(scope: Construct, id: string, props: ApplicationProps) { super(scope, id, { physicalName: props.applicationName }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); validateApplicationProps(props); this.role = props.role ?? new iam.Role(this, 'Role', { diff --git a/packages/@aws-cdk/aws-neptune-alpha/lib/parameter-group.ts b/packages/@aws-cdk/aws-neptune-alpha/lib/parameter-group.ts index 4b563b3ae0958..cd9663084aff7 100644 --- a/packages/@aws-cdk/aws-neptune-alpha/lib/parameter-group.ts +++ b/packages/@aws-cdk/aws-neptune-alpha/lib/parameter-group.ts @@ -155,6 +155,8 @@ export class ParameterGroup extends Resource implements IParameterGroup { constructor(scope: Construct, id: string, props: ParameterGroupProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const resource = new CfnDBParameterGroup(this, 'Resource', { name: props.parameterGroupName, diff --git a/packages/@aws-cdk/aws-pipes-alpha/lib/pipe.ts b/packages/@aws-cdk/aws-pipes-alpha/lib/pipe.ts index 28f81613ff43e..962502d483bd7 100644 --- a/packages/@aws-cdk/aws-pipes-alpha/lib/pipe.ts +++ b/packages/@aws-cdk/aws-pipes-alpha/lib/pipe.ts @@ -220,6 +220,8 @@ export class Pipe extends PipeBase { constructor(scope: Construct, id: string, props: PipeProps) { super(scope, id, { physicalName: props.pipeName }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); /** * Role setup diff --git a/packages/aws-cdk-lib/aws-apigateway/lib/api-key.ts b/packages/aws-cdk-lib/aws-apigateway/lib/api-key.ts index 33c4134fdb4c5..6be98f2bbe3e7 100644 --- a/packages/aws-cdk-lib/aws-apigateway/lib/api-key.ts +++ b/packages/aws-cdk-lib/aws-apigateway/lib/api-key.ts @@ -255,6 +255,8 @@ export class RateLimitedApiKey extends ApiKeyBase { super(scope, id, { physicalName: props.apiKeyName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const resource = new ApiKey(this, 'Resource', props); diff --git a/packages/aws-cdk-lib/aws-apigateway/lib/authorizers/lambda.ts b/packages/aws-cdk-lib/aws-apigateway/lib/authorizers/lambda.ts index 71011a495678f..8527934f49f56 100644 --- a/packages/aws-cdk-lib/aws-apigateway/lib/authorizers/lambda.ts +++ b/packages/aws-cdk-lib/aws-apigateway/lib/authorizers/lambda.ts @@ -273,6 +273,8 @@ export class RequestAuthorizer extends LambdaAuthorizer { constructor(scope: Construct, id: string, props: RequestAuthorizerProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if ((props.resultsCacheTtl === undefined || props.resultsCacheTtl.toSeconds() !== 0) && props.identitySources.length === 0) { throw new Error('At least one Identity Source is required for a REQUEST-based Lambda authorizer if caching is enabled.'); diff --git a/packages/aws-cdk-lib/aws-apigateway/lib/resource.ts b/packages/aws-cdk-lib/aws-apigateway/lib/resource.ts index a64ee9ed6d76b..5fe7b7e283124 100644 --- a/packages/aws-cdk-lib/aws-apigateway/lib/resource.ts +++ b/packages/aws-cdk-lib/aws-apigateway/lib/resource.ts @@ -533,6 +533,8 @@ export class ProxyResource extends Resource { defaultIntegration: props.defaultIntegration, defaultMethodOptions: props.defaultMethodOptions, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const anyMethod = props.anyMethod ?? true; if (anyMethod) { diff --git a/packages/aws-cdk-lib/aws-apigateway/lib/restapi.ts b/packages/aws-cdk-lib/aws-apigateway/lib/restapi.ts index a4361983459d9..53e6f1ac60da4 100644 --- a/packages/aws-cdk-lib/aws-apigateway/lib/restapi.ts +++ b/packages/aws-cdk-lib/aws-apigateway/lib/restapi.ts @@ -821,6 +821,8 @@ export class RestApi extends RestApiBase { constructor(scope: Construct, id: string, props: RestApiProps = { }) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props.minCompressionSize !== undefined && props.minimumCompressionSize !== undefined) { throw new Error('both properties minCompressionSize and minimumCompressionSize cannot be set at once.'); @@ -985,6 +987,8 @@ class RootResource extends ResourceBase { constructor(api: RestApiBase, props: ResourceOptions, resourceId: string) { super(api, 'Default'); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, resourceId); this.parentResource = undefined; this.defaultIntegration = props.defaultIntegration; diff --git a/packages/aws-cdk-lib/aws-apigateway/test/restapi.test.ts b/packages/aws-cdk-lib/aws-apigateway/test/restapi.test.ts index 958805b278ac2..206454e5ce35b 100644 --- a/packages/aws-cdk-lib/aws-apigateway/test/restapi.test.ts +++ b/packages/aws-cdk-lib/aws-apigateway/test/restapi.test.ts @@ -1,7 +1,10 @@ import { testDeprecated } from '@aws-cdk/cdk-build-tools'; +import { cx_api } from '../..'; import { Template } from '../../assertions'; +import { UserPool } from '../../aws-cognito'; import { GatewayVpcEndpoint } from '../../aws-ec2'; import { App, CfnElement, CfnResource, Lazy, RemovalPolicy, Size, Stack } from '../../core'; +import { JSII_RUNTIME_SYMBOL } from '../../core/lib/constants'; import * as apigw from '../lib'; describe('restapi', () => { @@ -1475,3 +1478,66 @@ describe('SpecRestApi', () => { }); }); }); + +describe('telemetry metadata', () => { + it('redaction happens when feature flag is enabled', () => { + const app = new App(); + app.node.setContext(cx_api.ENABLE_ADDITIONAL_METADATA_COLLECTION, true); + const stack = new Stack(app); + + const mockConstructor = { + [JSII_RUNTIME_SYMBOL]: { + fqn: 'aws-cdk-lib.aws-apigateway.RestApi', + }, + }; + jest.spyOn(Object, 'getPrototypeOf').mockReturnValue({ + constructor: mockConstructor, + }); + + const api = new apigw.RestApi(stack, 'myapi', { + defaultMethodOptions: { + apiKeyRequired: true, + authorizer: new apigw.CognitoUserPoolsAuthorizer(stack, 'myauthorizer', { + cognitoUserPools: [new UserPool(stack, 'myuserpool')], + }), + }, + }); + + expect(api.node.metadata).toStrictEqual([{ + data: { + defaultMethodOptions: { + apiKeyRequired: '*', + authorizer: '*', + }, + }, + trace: undefined, + type: 'aws:cdk:analytics:construct', + }]); + }); + + it('redaction happens when feature flag is disabled', () => { + const app = new App(); + app.node.setContext(cx_api.ENABLE_ADDITIONAL_METADATA_COLLECTION, false); + const stack = new Stack(app); + + const mockConstructor = { + [JSII_RUNTIME_SYMBOL]: { + fqn: 'aws-cdk-lib.aws-apigateway.RestApi', + }, + }; + jest.spyOn(Object, 'getPrototypeOf').mockReturnValue({ + constructor: mockConstructor, + }); + + const api = new apigw.RestApi(stack, 'myapi', { + defaultMethodOptions: { + apiKeyRequired: true, + authorizer: new apigw.CognitoUserPoolsAuthorizer(stack, 'myauthorizer', { + cognitoUserPools: [new UserPool(stack, 'myuserpool')], + }), + }, + }); + + expect(api.node.metadata).toStrictEqual([]); + }); +}); diff --git a/packages/aws-cdk-lib/aws-batch/lib/managed-compute-environment.ts b/packages/aws-cdk-lib/aws-batch/lib/managed-compute-environment.ts index c5492c75e6518..bdc7d7e796739 100644 --- a/packages/aws-cdk-lib/aws-batch/lib/managed-compute-environment.ts +++ b/packages/aws-cdk-lib/aws-batch/lib/managed-compute-environment.ts @@ -1001,6 +1001,8 @@ export class ManagedEc2EksComputeEnvironment extends ManagedComputeEnvironmentBa constructor(scope: Construct, id: string, props: ManagedEc2EksComputeEnvironmentProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.kubernetesNamespace = props.kubernetesNamespace; this.eksCluster = props.eksCluster; @@ -1115,6 +1117,8 @@ export class FargateComputeEnvironment extends ManagedComputeEnvironmentBase imp constructor(scope: Construct, id: string, props: FargateComputeEnvironmentProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const { subnetIds } = props.vpc.selectSubnets(props.vpcSubnets); const resource = new CfnComputeEnvironment(this, 'Resource', { diff --git a/packages/aws-cdk-lib/aws-cloudfront/lib/origin-access-control.ts b/packages/aws-cdk-lib/aws-cloudfront/lib/origin-access-control.ts index aa33548c8d44c..646ec19dbb741 100644 --- a/packages/aws-cdk-lib/aws-cloudfront/lib/origin-access-control.ts +++ b/packages/aws-cdk-lib/aws-cloudfront/lib/origin-access-control.ts @@ -244,6 +244,8 @@ export class FunctionUrlOriginAccessControl extends OriginAccessControlBase { constructor(scope: Construct, id: string, props: FunctionUrlOriginAccessControlProps = {}) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const resource = new CfnOriginAccessControl(this, 'Resource', { originAccessControlConfig: { diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/source-credentials.ts b/packages/aws-cdk-lib/aws-codebuild/lib/source-credentials.ts index 22e6900760083..a9b1e381a5fa7 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/source-credentials.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/source-credentials.ts @@ -59,6 +59,8 @@ export interface GitHubEnterpriseSourceCredentialsProps { export class GitHubEnterpriseSourceCredentials extends Resource { constructor(scope: Construct, id: string, props: GitHubEnterpriseSourceCredentialsProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); new CfnSourceCredential(this, 'Resource', { serverType: 'GITHUB_ENTERPRISE', @@ -91,6 +93,8 @@ export interface BitBucketSourceCredentialsProps { export class BitBucketSourceCredentials extends Resource { constructor(scope: Construct, id: string, props: BitBucketSourceCredentialsProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); new CfnSourceCredential(this, 'Resource', { serverType: 'BITBUCKET', diff --git a/packages/aws-cdk-lib/aws-codedeploy/lib/ecs/deployment-group.ts b/packages/aws-cdk-lib/aws-codedeploy/lib/ecs/deployment-group.ts index 3ff7345bcd1ef..6e1d9b3566de5 100644 --- a/packages/aws-cdk-lib/aws-codedeploy/lib/ecs/deployment-group.ts +++ b/packages/aws-cdk-lib/aws-codedeploy/lib/ecs/deployment-group.ts @@ -376,6 +376,8 @@ class ImportedEcsDeploymentGroup extends ImportedDeploymentGroupBase implements application: props.application, deploymentGroupName: props.deploymentGroupName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.application = props.application; this.deploymentConfig = this._bindDeploymentConfig(props.deploymentConfig || EcsDeploymentConfig.ALL_AT_ONCE); diff --git a/packages/aws-cdk-lib/aws-codedeploy/lib/lambda/deployment-group.ts b/packages/aws-cdk-lib/aws-codedeploy/lib/lambda/deployment-group.ts index 727046d69b546..aa35d77247090 100644 --- a/packages/aws-cdk-lib/aws-codedeploy/lib/lambda/deployment-group.ts +++ b/packages/aws-cdk-lib/aws-codedeploy/lib/lambda/deployment-group.ts @@ -308,6 +308,8 @@ class ImportedLambdaDeploymentGroup extends ImportedDeploymentGroupBase implemen application: props.application, deploymentGroupName: props.deploymentGroupName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.application = props.application; this.deploymentConfig = this._bindDeploymentConfig(props.deploymentConfig || LambdaDeploymentConfig.CANARY_10PERCENT_5MINUTES); diff --git a/packages/aws-cdk-lib/aws-codedeploy/lib/private/base-deployment-group.ts b/packages/aws-cdk-lib/aws-codedeploy/lib/private/base-deployment-group.ts index 70de1c9eb18f3..626a49bb8e941 100644 --- a/packages/aws-cdk-lib/aws-codedeploy/lib/private/base-deployment-group.ts +++ b/packages/aws-cdk-lib/aws-codedeploy/lib/private/base-deployment-group.ts @@ -120,6 +120,8 @@ export class DeploymentGroupBase extends Resource { super(scope, id, { physicalName: props.deploymentGroupName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this._role = props.role || new iam.Role(this, props.roleConstructId, { assumedBy: new iam.ServicePrincipal('codedeploy.amazonaws.com'), diff --git a/packages/aws-cdk-lib/aws-codedeploy/lib/server/deployment-group.ts b/packages/aws-cdk-lib/aws-codedeploy/lib/server/deployment-group.ts index f2572b0c54b94..286b30251a9f5 100644 --- a/packages/aws-cdk-lib/aws-codedeploy/lib/server/deployment-group.ts +++ b/packages/aws-cdk-lib/aws-codedeploy/lib/server/deployment-group.ts @@ -281,6 +281,8 @@ export class ServerDeploymentGroup extends DeploymentGroupBase implements IServe role: props.role, roleConstructId: 'Role', }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.role = this._role; this.application = props.application || new ServerApplication(this, 'Application', { diff --git a/packages/aws-cdk-lib/aws-config/lib/managed-rules.ts b/packages/aws-cdk-lib/aws-config/lib/managed-rules.ts index c97ae0d56c13f..8422a124c73b0 100644 --- a/packages/aws-cdk-lib/aws-config/lib/managed-rules.ts +++ b/packages/aws-cdk-lib/aws-config/lib/managed-rules.ts @@ -84,6 +84,8 @@ export class CloudFormationStackDriftDetectionCheck extends ManagedRule { cloudformationRoleArn: Lazy.string({ produce: () => this.role.roleArn }), }, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.ruleScope = RuleScope.fromResource( ResourceType.CLOUDFORMATION_STACK, props.ownStackOnly ? Stack.of(this).stackId : undefined ); @@ -131,5 +133,7 @@ export class CloudFormationStackNotificationCheck extends ManagedRule { ), ruleScope: RuleScope.fromResources([ResourceType.CLOUDFORMATION_STACK]), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } diff --git a/packages/aws-cdk-lib/aws-config/lib/rule.ts b/packages/aws-cdk-lib/aws-config/lib/rule.ts index 4e470c41a9899..ac37bf0e32e95 100644 --- a/packages/aws-cdk-lib/aws-config/lib/rule.ts +++ b/packages/aws-cdk-lib/aws-config/lib/rule.ts @@ -420,6 +420,8 @@ export class CustomRule extends RuleNew { super(scope, id, { physicalName: props.configRuleName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (!props.configurationChanges && !props.periodic) { throw new Error('At least one of `configurationChanges` or `periodic` must be set to true.'); @@ -535,6 +537,8 @@ export class CustomPolicy extends RuleNew { super(scope, id, { physicalName: props.configRuleName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (!props.policyText || [...props.policyText].length === 0) { throw new Error('Policy Text cannot be empty.'); diff --git a/packages/aws-cdk-lib/aws-ec2/lib/network-acl.ts b/packages/aws-cdk-lib/aws-ec2/lib/network-acl.ts index 41cd6f47ebc26..f09e9055d83dd 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/network-acl.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/network-acl.ts @@ -277,6 +277,8 @@ export class NetworkAclEntry extends NetworkAclEntryBase { super(scope, id, { physicalName: props.networkAclEntryName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.networkAcl = props.networkAcl; @@ -376,6 +378,8 @@ export class SubnetNetworkAclAssociation extends SubnetNetworkAclAssociationBase super(scope, id, { physicalName: props.subnetNetworkAclAssociationName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.association = new CfnSubnetNetworkAclAssociation(this, 'Resource', { networkAclId: props.networkAcl.networkAclId, diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts index 2f70c270bbd7c..376174fcd71ab 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts @@ -877,6 +877,8 @@ export class InterfaceVpcEndpoint extends VpcEndpoint implements IInterfaceVpcEn constructor(scope: Construct, id: string, props: InterfaceVpcEndpointProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const securityGroups = props.securityGroups || [new SecurityGroup(this, 'SecurityGroup', { vpc: props.vpc, diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc.ts index 85df0ab1dd902..f798be1909daf 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc.ts @@ -2082,6 +2082,8 @@ export class Subnet extends Resource implements ISubnet { constructor(scope: Construct, id: string, props: SubnetProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); Object.defineProperty(this, VPC_SUBNET_SYMBOL, { value: true }); @@ -2373,6 +2375,8 @@ export class PublicSubnet extends Subnet implements IPublicSubnet { constructor(scope: Construct, id: string, props: PublicSubnetProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } /** @@ -2411,6 +2415,8 @@ export class PrivateSubnet extends Subnet implements IPrivateSubnet { constructor(scope: Construct, id: string, props: PrivateSubnetProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -2432,6 +2438,8 @@ class ImportedVpc extends VpcBase { super(scope, id, { region: props.region, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.vpcId = props.vpcId; this.vpcArn = Arn.format({ @@ -2485,6 +2493,8 @@ class LookedUpVpc extends VpcBase { region: props.region, account: props.ownerAccountId, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.vpcId = props.vpcId; this.vpcArn = Arn.format({ @@ -2588,6 +2598,8 @@ class ImportedSubnet extends Resource implements ISubnet, IPublicSubnet, IPrivat constructor(scope: Construct, id: string, attrs: SubnetAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); if (!attrs.routeTableId) { // The following looks a little weird, but comes down to: diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpn.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpn.ts index 77819172c71ee..159ba4294840f 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpn.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpn.ts @@ -285,6 +285,8 @@ export class VpnConnection extends VpnConnectionBase { constructor(scope: Construct, id: string, props: VpnConnectionProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (!props.vpc.vpnGatewayId) { props.vpc.enableVpnGateway({ diff --git a/packages/aws-cdk-lib/aws-ecs/lib/cluster.ts b/packages/aws-cdk-lib/aws-ecs/lib/cluster.ts index 607116a3fce5a..04fd70a5f62e7 100644 --- a/packages/aws-cdk-lib/aws-ecs/lib/cluster.ts +++ b/packages/aws-cdk-lib/aws-ecs/lib/cluster.ts @@ -1060,6 +1060,8 @@ class ImportedCluster extends Resource implements ICluster { */ constructor(scope: Construct, id: string, props: ClusterAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.clusterName = props.clusterName; this.vpc = props.vpc; this.hasEc2Capacity = props.hasEc2Capacity !== false; diff --git a/packages/aws-cdk-lib/aws-ecs/test/external/external-service.test.ts b/packages/aws-cdk-lib/aws-ecs/test/external/external-service.test.ts index e3bec06efaa1a..9eeb40aafee2e 100644 --- a/packages/aws-cdk-lib/aws-ecs/test/external/external-service.test.ts +++ b/packages/aws-cdk-lib/aws-ecs/test/external/external-service.test.ts @@ -589,7 +589,6 @@ describe('external service', () => { expect(service.node.metadata.map((m) => m.data)).toEqual([ 'taskDefinition and launchType are blanked out when using external deployment controller. [ack: @aws-cdk/aws-ecs:externalDeploymentController]', 'Deployment circuit breaker requires the ECS deployment controller.', - expect.anything(), ]); }); diff --git a/packages/aws-cdk-lib/aws-efs/lib/access-point.ts b/packages/aws-cdk-lib/aws-efs/lib/access-point.ts index 1ef98a5fbb780..05ae5062ebe0c 100644 --- a/packages/aws-cdk-lib/aws-efs/lib/access-point.ts +++ b/packages/aws-cdk-lib/aws-efs/lib/access-point.ts @@ -255,6 +255,8 @@ class ImportedAccessPoint extends AccessPointBase { constructor(scope: Construct, id: string, attrs: AccessPointAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); if (!attrs.accessPointId) { if (!attrs.accessPointArn) { diff --git a/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts b/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts index 0d1b9fee7a642..65df9b127fb54 100644 --- a/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts +++ b/packages/aws-cdk-lib/aws-efs/lib/efs-file-system.ts @@ -945,6 +945,8 @@ class ImportedFileSystem extends FileSystemBase { constructor(scope: Construct, id: string, attrs: FileSystemAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); if (!!attrs.fileSystemId === !!attrs.fileSystemArn) { throw new Error('One of fileSystemId or fileSystemArn, but not both, must be provided.'); diff --git a/packages/aws-cdk-lib/aws-eks/lib/cluster.ts b/packages/aws-cdk-lib/aws-eks/lib/cluster.ts index 0c931b53ae75a..e6300e6c43876 100644 --- a/packages/aws-cdk-lib/aws-eks/lib/cluster.ts +++ b/packages/aws-cdk-lib/aws-eks/lib/cluster.ts @@ -2419,6 +2419,8 @@ class ImportedCluster extends ClusterBase { constructor(scope: Construct, id: string, private readonly props: ClusterAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.clusterName = props.clusterName; this.clusterArn = this.stack.formatArn(clusterArnComponents(props.clusterName)); diff --git a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-listener.ts b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-listener.ts index 04b2fba0e8bc7..3197d04ce8b20 100644 --- a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-listener.ts +++ b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-listener.ts @@ -777,6 +777,8 @@ class ImportedApplicationListener extends ExternalApplicationListener { constructor(scope: Construct, id: string, props: ApplicationListenerAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.listenerArn = props.listenerArn; const defaultPort = props.defaultPort !== undefined ? ec2.Port.tcp(props.defaultPort) : undefined; @@ -794,6 +796,8 @@ class LookedUpApplicationListener extends ExternalApplicationListener { constructor(scope: Construct, id: string, props: cxapi.LoadBalancerListenerContextResponse) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.listenerArn = props.listenerArn; this.connections = new ec2.Connections({ diff --git a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.ts b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.ts index 11c14a29e1a18..3bad57a221737 100644 --- a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.ts +++ b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.ts @@ -1189,6 +1189,8 @@ class ImportedApplicationLoadBalancer extends Resource implements IApplicationLo super(scope, id, { environmentFromArn: props.loadBalancerArn, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.vpc = props.vpc; this.loadBalancerArn = props.loadBalancerArn; @@ -1237,6 +1239,8 @@ class LookedUpApplicationLoadBalancer extends Resource implements IApplicationLo super(scope, id, { environmentFromArn: props.loadBalancerArn, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.loadBalancerArn = props.loadBalancerArn; this.loadBalancerCanonicalHostedZoneId = props.loadBalancerCanonicalHostedZoneId; diff --git a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.ts b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.ts index 63a6d219d77ff..0fa0deea75fe9 100644 --- a/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.ts +++ b/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.ts @@ -568,6 +568,8 @@ class LookedUpNetworkLoadBalancer extends Resource implements INetworkLoadBalanc constructor(scope: Construct, id: string, props: cxapi.LoadBalancerContextResponse) { super(scope, id, { environmentFromArn: props.loadBalancerArn }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.loadBalancerArn = props.loadBalancerArn; this.loadBalancerCanonicalHostedZoneId = props.loadBalancerCanonicalHostedZoneId; diff --git a/packages/aws-cdk-lib/aws-events/lib/connection.ts b/packages/aws-cdk-lib/aws-events/lib/connection.ts index bcc18ad82a92d..48d5bd110d85d 100644 --- a/packages/aws-cdk-lib/aws-events/lib/connection.ts +++ b/packages/aws-cdk-lib/aws-events/lib/connection.ts @@ -380,6 +380,8 @@ class ImportedConnection extends Resource { account: arnParts.account, region: arnParts.region, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); this.connectionArn = attrs.connectionArn; this.connectionName = attrs.connectionName; diff --git a/packages/aws-cdk-lib/aws-events/lib/event-bus.ts b/packages/aws-cdk-lib/aws-events/lib/event-bus.ts index fd7afee7da093..fb224ac3bf755 100644 --- a/packages/aws-cdk-lib/aws-events/lib/event-bus.ts +++ b/packages/aws-cdk-lib/aws-events/lib/event-bus.ts @@ -434,6 +434,8 @@ class ImportedEventBus extends EventBusBase { account: arnParts.account, region: arnParts.region, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); this.eventBusArn = attrs.eventBusArn; this.eventBusName = attrs.eventBusName; @@ -480,6 +482,8 @@ export interface EventBusPolicyProps { export class EventBusPolicy extends Resource { constructor(scope: Construct, id: string, props: EventBusPolicyProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); new CfnEventBusPolicy(this, 'Resource', { statementId: props.statementId!, diff --git a/packages/aws-cdk-lib/aws-events/lib/rule.ts b/packages/aws-cdk-lib/aws-events/lib/rule.ts index ea55d2b3218fe..6d3d1e6a5fcda 100644 --- a/packages/aws-cdk-lib/aws-events/lib/rule.ts +++ b/packages/aws-cdk-lib/aws-events/lib/rule.ts @@ -494,6 +494,8 @@ function determineRuleScope(scope: Construct, props: RuleProps): Construct { class MirrorRule extends Rule { constructor(scope: Construct, id: string, props: RuleProps, private readonly source: Rule) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } public _renderEventPattern(): any { diff --git a/packages/aws-cdk-lib/aws-lambda/test/function.test.ts b/packages/aws-cdk-lib/aws-lambda/test/function.test.ts index 33746d979bd09..b061f971552dc 100644 --- a/packages/aws-cdk-lib/aws-lambda/test/function.test.ts +++ b/packages/aws-cdk-lib/aws-lambda/test/function.test.ts @@ -16,6 +16,7 @@ import * as sns from '../../aws-sns'; import * as sqs from '../../aws-sqs'; import * as cdk from '../../core'; import { Aspects, Lazy, Size } from '../../core'; +import { JSII_RUNTIME_SYMBOL } from '../../core/lib/constants'; import { getWarnings } from '../../core/test/util'; import * as cxapi from '../../cx-api'; import * as lambda from '../lib'; @@ -4743,6 +4744,58 @@ describe('CMCMK', () => { }); }); +describe('telemetry metadata', () => { + it('redaction happens when feature flag is enabled', () => { + const app = new cdk.App(); + app.node.setContext(cxapi.ENABLE_ADDITIONAL_METADATA_COLLECTION, true); + const stack = new cdk.Stack(app); + + const mockConstructor = { + [JSII_RUNTIME_SYMBOL]: { + fqn: 'aws-cdk-lib.aws-lambda.Function', + }, + }; + jest.spyOn(Object, 'getPrototypeOf').mockReturnValue({ + constructor: mockConstructor, + }); + + const fn = new lambda.Function(stack, 'Lambda', { + code: lambda.Code.fromInline('foo'), + handler: 'index.handler', + runtime: lambda.Runtime.NODEJS_18_X, + }); + + expect(fn.node.metadata).toStrictEqual([{ + data: { code: '*', handler: '*', runtime: '*' }, + trace: undefined, + type: 'aws:cdk:analytics:construct', + }]); + }); + + it('redaction happens when feature flag is disabled', () => { + const app = new cdk.App(); + app.node.setContext(cxapi.ENABLE_ADDITIONAL_METADATA_COLLECTION, false); + const stack = new cdk.Stack(app); + + const mockConstructor = { + [JSII_RUNTIME_SYMBOL]: { + fqn: 'aws-cdk-lib.aws-lambda.Function', + }, + }; + jest.spyOn(Object, 'getPrototypeOf').mockReturnValue({ + constructor: mockConstructor, + }); + + const fn = new lambda.Function(stack, 'Lambda', { + code: lambda.Code.fromInline('foo'), + handler: 'index.handler', + runtime: lambda.Runtime.NODEJS_18_X, + }); + + expect(fn.node.metadata).toStrictEqual([]); + }); +}); + function newTestLambda(scope: constructs.Construct) { return new lambda.Function(scope, 'MyLambda', { code: new lambda.InlineCode('foo'), diff --git a/packages/aws-cdk-lib/aws-rds/lib/cluster.ts b/packages/aws-cdk-lib/aws-rds/lib/cluster.ts index 9c9ab629b369c..1a8e52f2f2d71 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/cluster.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/cluster.ts @@ -1267,6 +1267,8 @@ export class DatabaseCluster extends DatabaseClusterNew { constructor(scope: Construct, id: string, props: DatabaseClusterProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); const credentials = renderCredentials(this, props.engine, props.credentials); const secret = credentials.secret; @@ -1450,6 +1452,8 @@ export class DatabaseClusterFromSnapshot extends DatabaseClusterNew { constructor(scope: Construct, id: string, props: DatabaseClusterFromSnapshotProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props.credentials && !props.credentials.password && !props.credentials.secret) { Annotations.of(this).addWarningV2('@aws-cdk/aws-rds:useSnapshotCredentials', 'Use `snapshotCredentials` to modify password of a cluster created from a snapshot.'); diff --git a/packages/aws-cdk-lib/aws-rds/lib/instance.ts b/packages/aws-cdk-lib/aws-rds/lib/instance.ts index dd0bf390570ea..bbcb7aba84279 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/instance.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/instance.ts @@ -1247,6 +1247,8 @@ export class DatabaseInstanceFromSnapshot extends DatabaseInstanceSource impleme constructor(scope: Construct, id: string, props: DatabaseInstanceFromSnapshotProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); let credentials = props.credentials; let secret = credentials?.secret; @@ -1351,6 +1353,8 @@ export class DatabaseInstanceReadReplica extends DatabaseInstanceNew implements constructor(scope: Construct, id: string, props: DatabaseInstanceReadReplicaProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props.sourceDatabaseInstance.engine && !props.sourceDatabaseInstance.engine.supportsReadReplicaBackups diff --git a/packages/aws-cdk-lib/aws-rds/lib/serverless-cluster.ts b/packages/aws-cdk-lib/aws-rds/lib/serverless-cluster.ts index ca99e9c478455..eb7acf9e5e50b 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/serverless-cluster.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/serverless-cluster.ts @@ -660,6 +660,8 @@ class ImportedServerlessCluster extends ServerlessClusterBase implements IServer constructor(scope: Construct, id: string, attrs: ServerlessClusterAttributes) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, attrs); this.clusterIdentifier = attrs.clusterIdentifier; @@ -725,6 +727,8 @@ export class ServerlessClusterFromSnapshot extends ServerlessClusterNew { constructor(scope: Construct, id: string, props: ServerlessClusterFromSnapshotProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.enableDataApi = props.enableDataApi; diff --git a/packages/aws-cdk-lib/aws-route53/lib/hosted-zone.ts b/packages/aws-cdk-lib/aws-route53/lib/hosted-zone.ts index 29b24d8f568b7..c499355b75659 100644 --- a/packages/aws-cdk-lib/aws-route53/lib/hosted-zone.ts +++ b/packages/aws-cdk-lib/aws-route53/lib/hosted-zone.ts @@ -367,6 +367,8 @@ export class PublicHostedZone extends HostedZone implements IPublicHostedZone { constructor(scope: Construct, id: string, props: PublicHostedZoneProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props.caaAmazon) { new CaaAmazonRecord(this, 'CaaAmazon', { @@ -499,6 +501,8 @@ export class PrivateHostedZone extends HostedZone implements IPrivateHostedZone constructor(scope: Construct, id: string, props: PrivateHostedZoneProps) { super(scope, id, props); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.addVpc(props.vpc); } diff --git a/packages/aws-cdk-lib/aws-route53/lib/record-set.ts b/packages/aws-cdk-lib/aws-route53/lib/record-set.ts index 652980ea5799b..f2aaedd81701b 100644 --- a/packages/aws-cdk-lib/aws-route53/lib/record-set.ts +++ b/packages/aws-cdk-lib/aws-route53/lib/record-set.ts @@ -539,6 +539,8 @@ export class ARecord extends RecordSet { recordType: RecordType.A, target: props.target, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -582,6 +584,8 @@ export class AaaaRecord extends RecordSet { recordType: RecordType.AAAA, target: props.target, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -607,6 +611,8 @@ export class CnameRecord extends RecordSet { recordType: RecordType.CNAME, target: RecordTarget.fromValues(props.domainName), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -632,6 +638,8 @@ export class TxtRecord extends RecordSet { recordType: RecordType.TXT, target: RecordTarget.fromValues(...props.values.map(v => formatTxt(v))), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -701,6 +709,8 @@ export class SrvRecord extends RecordSet { recordType: RecordType.SRV, target: RecordTarget.fromValues(...props.values.map(v => `${v.priority} ${v.weight} ${v.port} ${v.hostName}`)), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -769,6 +779,8 @@ export class CaaRecord extends RecordSet { recordType: RecordType.CAA, target: RecordTarget.fromValues(...props.values.map(v => `${v.flag} ${v.tag} "${v.value}"`)), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -797,6 +809,8 @@ export class CaaAmazonRecord extends CaaRecord { }, ], }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -837,6 +851,8 @@ export class MxRecord extends RecordSet { recordType: RecordType.MX, target: RecordTarget.fromValues(...props.values.map(v => `${v.priority} ${v.hostName}`)), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -862,6 +878,8 @@ export class NsRecord extends RecordSet { recordType: RecordType.NS, target: RecordTarget.fromValues(...props.values), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -887,6 +905,8 @@ export class DsRecord extends RecordSet { recordType: RecordType.DS, target: RecordTarget.fromValues(...props.values), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } @@ -914,6 +934,8 @@ export class ZoneDelegationRecord extends RecordSet { ), ttl: props.ttl || Duration.days(2), }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); } } diff --git a/packages/aws-cdk-lib/aws-secretsmanager/lib/secret.ts b/packages/aws-cdk-lib/aws-secretsmanager/lib/secret.ts index d4af3d40fdf67..be4b553b4bbbd 100644 --- a/packages/aws-cdk-lib/aws-secretsmanager/lib/secret.ts +++ b/packages/aws-cdk-lib/aws-secretsmanager/lib/secret.ts @@ -858,6 +858,8 @@ export class SecretTargetAttachment extends SecretBase implements ISecretTargetA constructor(scope: Construct, id: string, props: SecretTargetAttachmentProps) { super(scope, id); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); this.attachedSecret = props.secret; const attachment = new secretsmanager.CfnSecretTargetAttachment(this, 'Resource', { diff --git a/packages/aws-cdk-lib/aws-ssm/lib/parameter.ts b/packages/aws-cdk-lib/aws-ssm/lib/parameter.ts index 5c12a48b98972..a7cbb96283f89 100644 --- a/packages/aws-cdk-lib/aws-ssm/lib/parameter.ts +++ b/packages/aws-cdk-lib/aws-ssm/lib/parameter.ts @@ -774,6 +774,8 @@ export class StringListParameter extends ParameterBase implements IStringListPar super(scope, id, { physicalName: props.parameterName, }); + // Enhanced CDK Analytics Telemetry + addConstructMetadata(this, props); if (props.stringListValue.find(str => !Token.isUnresolved(str) && str.indexOf(',') !== -1)) { throw new ValidationError('Values of a StringList SSM Parameter cannot contain the \',\' character. Use a string parameter instead.', this); diff --git a/packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts b/packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts new file mode 100644 index 0000000000000..a531e0f8ef6cb --- /dev/null +++ b/packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts @@ -0,0 +1,21082 @@ +/* eslint-disable quote-props */ +/* eslint-disable @stylistic/comma-dangle */ +/* + * Do not edit this file manually. To prevent misconfiguration, this file + * should only be modified by an automated GitHub workflow, that ensures + * that the regions present in this list correspond to all the regions + * where we have the AWS::CDK::Metadata handler deployed. + * + * See: https://github.com/aws/aws-cdk/issues/27189 + */ + +export const AWS_CDK_CONSTRUCTOR_PROPS: { [key: string]: any } = { + '@aws-cdk.aws-amplify-alpha': { + 'App': { + 'appName': '*', + 'sourceCodeProvider': '*', + 'autoBranchCreation': { + 'patterns': '*', + 'basicAuth': '*', + 'buildSpec': '*', + 'autoBuild': '*', + 'pullRequestPreview': '*', + 'environmentVariables': '*', + 'pullRequestEnvironmentName': '*', + 'stage': '*' + }, + 'autoBranchDeletion': '*', + 'basicAuth': '*', + 'buildSpec': '*', + 'customResponseHeaders': { + 'pattern': '*', + 'headers': '*' + }, + 'customRules': '*', + 'description': '*', + 'environmentVariables': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'platform': 'Platform', + 'cacheConfigType': 'CacheConfigType' + }, + 'Branch': { + 'app': { + 'appId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'basicAuth': '*', + 'branchName': '*', + 'buildSpec': '*', + 'description': '*', + 'autoBuild': '*', + 'pullRequestPreview': '*', + 'environmentVariables': '*', + 'pullRequestEnvironmentName': '*', + 'stage': '*', + 'asset': '*', + 'performanceMode': '*' + }, + 'Domain': { + 'app': { + 'appId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoSubDomainIamRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'domainName': '*', + 'subDomains': { + 'branch': { + 'branchName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'prefix': '*' + }, + 'enableAutoSubdomain': '*', + 'autoSubdomainCreationPatterns': '*', + 'customCertificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + '@aws-cdk.aws-apprunner-alpha': { + 'AutoScalingConfiguration': { + 'autoScalingConfigurationName': '*', + 'maxConcurrency': '*', + 'maxSize': '*', + 'minSize': '*' + }, + 'ObservabilityConfiguration': { + 'observabilityConfigurationName': '*', + 'traceConfigurationVendor': 'TraceConfigurationVendor' + }, + 'Service': { + 'source': '*', + 'autoDeploymentsEnabled': '*', + 'autoScalingConfiguration': { + 'autoScalingConfigurationArn': '*', + 'autoScalingConfigurationName': '*', + 'autoScalingConfigurationRevision': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cpu': '*', + 'memory': '*', + 'accessRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'instanceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serviceName': '*', + 'vpcConnector': { + 'vpcConnectorName': '*', + 'vpcConnectorArn': '*', + 'vpcConnectorRevision': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'isPubliclyAccessible': '*', + 'healthCheck': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'ipAddressType': 'IpAddressType', + 'observabilityConfiguration': { + 'observabilityConfigurationName': '*', + 'observabilityConfigurationArn': '*', + 'observabilityConfigurationRevision': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'VpcConnector': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcConnectorName': '*' + }, + 'VpcIngressConnection': { + 'vpcIngressConnectionName': '*', + 'service': { + 'serviceName': '*', + 'serviceArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'interfaceVpcEndpoint': { + 'vpcEndpointId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + } + } + }, + '@aws-cdk.aws-cloud9-alpha': { + 'Ec2Environment': { + 'owner': '*', + 'instanceType': '*', + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ec2EnvironmentName': '*', + 'description': '*', + 'clonedRepositories': '*', + 'connectionType': 'ConnectionType', + 'imageId': 'ImageId', + 'automaticStop': '*' + } + }, + '@aws-cdk.aws-codestar-alpha': { + 'GitHubRepository': { + 'owner': '*', + 'repositoryName': '*', + 'accessToken': '*', + 'contentsBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'contentsKey': '*', + 'contentsS3Version': '*', + 'enableIssues': '*', + 'visibility': 'RepositoryVisibility', + 'description': '*' + } + }, + '@aws-cdk.aws-cognito-identitypool-alpha': { + 'IdentityPoolRoleAttachment': { + 'identityPool': { + 'identityPoolId': '*', + 'identityPoolArn': '*', + 'identityPoolName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authenticatedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'unauthenticatedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'roleMappings': { + 'providerUrl': '*', + 'mappingKey': '*', + 'useToken': '*', + 'resolveAmbiguousRoles': '*', + 'rules': { + 'claim': '*', + 'mappedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'claimValue': '*', + 'matchType': 'RoleMappingMatchType' + } + } + }, + 'IdentityPool': { + 'identityPoolName': '*', + 'authenticatedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'unauthenticatedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'allowUnauthenticatedIdentities': '*', + 'roleMappings': { + 'providerUrl': '*', + 'mappingKey': '*', + 'useToken': '*', + 'resolveAmbiguousRoles': '*', + 'rules': { + 'claim': '*', + 'mappedRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'claimValue': '*', + 'matchType': 'RoleMappingMatchType' + } + }, + 'allowClassicFlow': '*', + 'authenticationProviders': { + 'facebook': { + 'appId': '*' + }, + 'google': { + 'clientId': '*' + }, + 'amazon': { + 'appId': '*' + }, + 'apple': { + 'servicesId': '*' + }, + 'twitter': { + 'consumerKey': '*', + 'consumerSecret': '*' + }, + 'userPools': '*', + 'openIdConnectProviders': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'samlProviders': { + 'samlProviderArn': '*' + }, + 'customProvider': '*' + } + } + }, + '@aws-cdk.aws-ec2-alpha': { + 'IpamPool': { + 'ipamScopeId': '*', + 'addressFamily': 'AddressFamily', + 'ipv4ProvisionedCidrs': '*', + 'locale': '*', + 'publicIpSource': 'IpamPoolPublicIpSource', + 'awsService': 'AwsServiceName', + 'ipamPoolName': '*' + }, + 'IpamScope': { + 'ipamId': '*', + 'ipamOperatingRegions': '*', + 'ipamScopeId': '*', + 'ipamScopeName': '*' + }, + 'EgressOnlyInternetGateway': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'egressOnlyInternetGatewayName': '*' + }, + 'InternetGateway': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'internetGatewayName': '*' + }, + 'VPNGatewayV2': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'type': 'VpnConnectionType', + 'amazonSideAsn': '*', + 'vpnGatewayName': '*', + 'vpnRoutePropagation': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'NatGateway': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnet': { + 'ipv6CidrBlock': '*', + 'subnetType': 'SubnetType', + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'allocationId': '*', + 'connectivityType': 'NatConnectivityType', + 'maxDrainDuration': '*', + 'privateIpAddress': '*', + 'secondaryAllocationIds': '*', + 'secondaryPrivateIpAddressCount': '*', + 'secondaryPrivateIpAddresses': '*', + 'natGatewayName': '*' + }, + 'VPCPeeringConnection': { + 'requestorVpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'acceptorVpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'peerRoleArn': '*', + 'vpcPeeringConnectionName': '*' + }, + 'Route': { + 'routeTable': { + 'routeTableId': '*' + }, + 'destination': '*', + 'target': '*', + 'routeName': '*' + }, + 'RouteTable': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'routeTableName': '*' + }, + 'SubnetV2': { + 'vpc': { + 'secondaryCidrBlock': { + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + }, + 'ipv4CidrBlock': '*', + 'region': '*', + 'ownerAccountId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'vpcName': '*', + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv4CidrBlock': '*', + 'ipv6CidrBlock': '*', + 'availabilityZone': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'subnetType': 'SubnetType', + 'subnetName': '*', + 'assignIpv6AddressOnCreation': '*' + }, + 'VpcV2': { + 'primaryAddressBlock': '*', + 'secondaryAddressBlocks': '*', + 'enableDnsHostnames': '*', + 'enableDnsSupport': '*', + 'defaultInstanceTenancy': 'DefaultInstanceTenancy', + 'vpcName': '*' + }, + 'VPCCidrBlock': { + 'vpcId': '*', + 'amazonProvidedIpv6CidrBlock': '*', + 'cidrBlock': '*', + 'cidrBlockName': '*', + 'ipv6NetmaskLength': '*', + 'ipv4NetmaskLength': '*', + 'ipv6IpamPoolId': '*', + 'ipv4IpamPoolId': '*', + 'ipv4IpamProvisionedCidrs': '*', + 'ipv6CidrBlock': '*', + 'ipv6Pool': '*' + } + }, + '@aws-cdk.aws-gamelift-alpha': { + 'Alias': { + 'aliasName': '*', + 'description': '*', + 'fleet': { + 'fleetId': '*', + 'fleetArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'resourceArnForDestination': '*' + }, + 'terminalMessage': '*' + }, + 'BuildFleet': { + 'content': { + 'buildId': '*', + 'buildArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'ingressRules': { + 'port': '*', + 'source': { + 'uniqueId': '*' + } + }, + 'fleetName': '*', + 'description': '*', + 'useSpot': '*', + 'useCertificate': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'peerVpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'metricGroup': '*', + 'instanceType': '*', + 'desiredCapacity': '*', + 'minSize': '*', + 'maxSize': '*', + 'protectNewGameSession': '*', + 'runtimeConfiguration': { + 'gameSessionActivationTimeout': '*', + 'maxConcurrentGameSessionActivations': '*', + 'serverProcesses': { + 'concurrentExecutions': '*', + 'launchPath': '*', + 'parameters': '*' + } + }, + 'locations': { + 'region': '*', + 'capacity': { + 'desiredCapacity': '*', + 'maxSize': '*', + 'minSize': '*' + } + }, + 'resourceCreationLimitPolicy': { + 'newGameSessionsPerCreator': '*', + 'policyPeriod': '*' + } + }, + 'Build': { + 'buildName': '*', + 'buildVersion': '*', + 'operatingSystem': 'OperatingSystem', + 'content': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serverSdkVersion': '*' + }, + 'GameServerGroup': { + 'gameServerGroupName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'minSize': '*', + 'maxSize': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'instanceDefinitions': { + 'instanceType': '*', + 'weight': '*' + }, + 'launchTemplate': { + 'versionNumber': '*', + 'launchTemplateId': '*', + 'launchTemplateName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'protectGameServer': '*', + 'autoScalingPolicy': { + 'estimatedInstanceWarmup': '*', + 'targetTrackingConfiguration': '*' + }, + 'deleteOption': 'DeleteOption', + 'balancingStrategy': 'BalancingStrategy' + }, + 'GameSessionQueue': { + 'gameSessionQueueName': '*', + 'customEventData': '*', + 'allowedLocations': '*', + 'notificationTarget': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'playerLatencyPolicies': { + 'maximumIndividualPlayerLatency': '*' + }, + 'priorityConfiguration': { + 'locationOrder': '*', + 'priorityOrder': 'PriorityType' + }, + 'timeout': '*', + 'destinations': { + 'resourceArnForDestination': '*' + } + }, + 'MatchmakingRuleSet': { + 'matchmakingRuleSetName': '*', + 'content': '*' + }, + 'QueuedMatchmakingConfiguration': { + 'additionalPlayerCount': '*', + 'manualBackfillMode': '*', + 'gameProperties': { + 'key': '*', + 'value': '*' + }, + 'gameSessionData': '*', + 'gameSessionQueues': { + 'gameSessionQueueName': '*', + 'gameSessionQueueArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'matchmakingConfigurationName': '*', + 'description': '*', + 'requireAcceptance': '*', + 'acceptanceTimeout': '*', + 'customEventData': '*', + 'notificationTarget': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'requestTimeout': '*', + 'ruleSet': { + 'matchmakingRuleSetName': '*', + 'matchmakingRuleSetArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'Script': { + 'scriptName': '*', + 'scriptVersion': '*', + 'content': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'StandaloneMatchmakingConfiguration': { + 'matchmakingConfigurationName': '*', + 'description': '*', + 'requireAcceptance': '*', + 'acceptanceTimeout': '*', + 'customEventData': '*', + 'notificationTarget': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'requestTimeout': '*', + 'ruleSet': { + 'matchmakingRuleSetName': '*', + 'matchmakingRuleSetArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + '@aws-cdk.aws-glue-alpha': { + 'Connection': { + 'type': '*', + 'connectionName': '*', + 'description': '*', + 'properties': '*', + 'matchCriteria': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'subnet': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'DataQualityRuleset': { + 'rulesetName': '*', + 'clientToken': '*', + 'description': '*', + 'rulesetDqdl': '*', + 'tags': '*', + 'targetTable': '*' + }, + 'Database': { + 'databaseName': '*', + 'locationUri': '*', + 'description': '*' + }, + 'ExternalTable': { + 'connection': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'externalDataLocation': '*', + 'tableName': '*', + 'description': '*', + 'database': { + 'catalogArn': '*', + 'catalogId': '*', + 'databaseArn': '*', + 'databaseName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'columns': { + 'name': '*', + 'type': { + 'isPrimitive': '*', + 'inputString': '*' + }, + 'comment': '*' + }, + 'partitionKeys': { + 'name': '*', + 'type': { + 'isPrimitive': '*', + 'inputString': '*' + }, + 'comment': '*' + }, + 'partitionIndexes': { + 'indexName': '*', + 'keyNames': '*' + }, + 'dataFormat': '*', + 'compressed': '*', + 'storedAsSubDirectories': '*', + 'enablePartitionFiltering': '*', + 'storageParameters': '*', + 'parameters': '*' + }, + 'S3Table': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3Prefix': '*', + 'encryption': 'TableEncryption', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tableName': '*', + 'description': '*', + 'database': { + 'catalogArn': '*', + 'catalogId': '*', + 'databaseArn': '*', + 'databaseName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'columns': { + 'name': '*', + 'type': { + 'isPrimitive': '*', + 'inputString': '*' + }, + 'comment': '*' + }, + 'partitionKeys': { + 'name': '*', + 'type': { + 'isPrimitive': '*', + 'inputString': '*' + }, + 'comment': '*' + }, + 'partitionIndexes': { + 'indexName': '*', + 'keyNames': '*' + }, + 'dataFormat': '*', + 'compressed': '*', + 'storedAsSubDirectories': '*', + 'enablePartitionFiltering': '*', + 'storageParameters': '*', + 'parameters': '*' + }, + 'SecurityConfiguration': { + 'securityConfigurationName': '*', + 'cloudWatchEncryption': { + 'mode': 'CloudWatchEncryptionMode', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'jobBookmarksEncryption': { + 'mode': 'JobBookmarksEncryptionMode', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 's3Encryption': { + 'mode': 'S3EncryptionMode', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + } + }, + '@aws-cdk.aws-iot-alpha': { + 'ScheduledAudit': { + 'auditChecks': 'AuditCheck', + 'accountAuditConfiguration': { + 'accountId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dayOfWeek': 'DayOfWeek', + 'dayOfMonth': '*', + 'frequency': 'Frequency', + 'scheduledAuditName': '*' + }, + 'TopicRule': { + 'topicRuleName': '*', + 'actions': '*', + 'description': '*', + 'errorAction': '*', + 'enabled': '*', + 'sql': '*' + } + }, + '@aws-cdk.aws-iotevents-alpha': { + 'DetectorModel': { + 'detectorModelName': '*', + 'description': '*', + 'evaluationMethod': 'EventEvaluation', + 'detectorKey': '*', + 'initialState': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'Input': { + 'inputName': '*', + 'attributeJsonPaths': '*' + } + }, + '@aws-cdk.aws-ivs-alpha': { + 'Channel': { + 'authorized': '*', + 'insecureIngest': '*', + 'latencyMode': 'LatencyMode', + 'channelName': '*', + 'type': 'ChannelType', + 'preset': 'Preset', + 'recordingConfiguration': { + 'recordingConfigurationId': '*', + 'recordingConfigurationArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'PlaybackKeyPair': { + 'publicKeyMaterial': '*', + 'playbackKeyPairName': '*' + }, + 'RecordingConfiguration': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'recordingConfigurationName': '*', + 'recordingReconnectWindow': '*', + 'renditionConfiguration': '*', + 'thumbnailConfiguration': '*' + }, + 'StreamKey': { + 'channel': { + 'channelArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + '@aws-cdk.aws-kinesisanalytics-flink-alpha': { + 'Import': { + 'applicationArn': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + } + }, + 'Application': { + 'applicationName': '*', + 'runtime': '*', + 'code': '*', + 'checkpointingEnabled': '*', + 'checkpointInterval': '*', + 'minPauseBetweenCheckpoints': '*', + 'logLevel': 'LogLevel', + 'metricsLevel': 'MetricsLevel', + 'autoScalingEnabled': '*', + 'parallelism': '*', + 'parallelismPerKpu': '*', + 'snapshotsEnabled': '*', + 'propertyGroups': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + } + } + }, + '@aws-cdk.aws-kinesisfirehose-alpha': { + 'DeliveryStream': { + 'destination': '*', + 'deliveryStreamName': '*', + 'source': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'encryption': '*' + } + }, + '@aws-cdk.aws-lambda-go-alpha': { + 'GoFunction': { + 'entry': '*', + 'runtime': '*', + 'moduleDir': '*', + 'bundling': { + 'forcedDockerBundling': '*', + 'dockerImage': '*', + 'goBuildFlags': '*', + 'buildArgs': '*', + 'assetHashType': 'AssetHashType', + 'assetHash': '*', + 'commandHooks': '*', + 'cgoEnabled': '*', + 'goProxies': '*', + 'bundlingFileAccess': 'BundlingFileAccess', + 'entrypoint': '*', + 'command': '*', + 'volumes': { + 'hostPath': '*', + 'containerPath': '*', + 'consistency': 'DockerVolumeConsistency' + }, + 'volumesFrom': '*', + 'environment': '*', + 'workingDirectory': '*', + 'user': '*', + 'securityOpt': '*', + 'network': '*', + 'platform': '*' + }, + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + } + }, + '@aws-cdk.aws-lambda-python-alpha': { + 'PythonFunction': { + 'entry': '*', + 'runtime': '*', + 'index': '*', + 'handler': '*', + 'bundling': { + 'poetryIncludeHashes': '*', + 'poetryWithoutUrls': '*', + 'assetExcludes': '*', + 'outputPathSuffix': '*', + 'image': '*', + 'buildArgs': '*', + 'assetHashType': 'AssetHashType', + 'assetHash': '*', + 'commandHooks': '*', + 'bundlingFileAccess': 'BundlingFileAccess', + 'entrypoint': '*', + 'command': '*', + 'volumes': { + 'hostPath': '*', + 'containerPath': '*', + 'consistency': 'DockerVolumeConsistency' + }, + 'volumesFrom': '*', + 'environment': '*', + 'workingDirectory': '*', + 'user': '*', + 'securityOpt': '*', + 'network': '*', + 'platform': '*' + }, + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'PythonLayerVersion': { + 'entry': '*', + 'compatibleRuntimes': '*', + 'compatibleArchitectures': '*', + 'bundling': { + 'poetryIncludeHashes': '*', + 'poetryWithoutUrls': '*', + 'assetExcludes': '*', + 'outputPathSuffix': '*', + 'image': '*', + 'buildArgs': '*', + 'assetHashType': 'AssetHashType', + 'assetHash': '*', + 'commandHooks': '*', + 'bundlingFileAccess': 'BundlingFileAccess', + 'entrypoint': '*', + 'command': '*', + 'volumes': { + 'hostPath': '*', + 'containerPath': '*', + 'consistency': 'DockerVolumeConsistency' + }, + 'volumesFrom': '*', + 'environment': '*', + 'workingDirectory': '*', + 'user': '*', + 'securityOpt': '*', + 'network': '*', + 'platform': '*' + }, + 'description': '*', + 'license': '*', + 'layerVersionName': '*', + 'removalPolicy': 'RemovalPolicy' + } + }, + '@aws-cdk.aws-location-alpha': { + 'GeofenceCollection': { + 'geofenceCollectionName': '*', + 'description': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'Map': { + 'mapName': '*', + 'description': '*', + 'style': 'Style', + 'customLayers': 'CustomLayer', + 'politicalView': 'PoliticalView' + }, + 'PlaceIndex': { + 'placeIndexName': '*', + 'dataSource': 'DataSource', + 'intendedUse': 'IntendedUse', + 'description': '*' + }, + 'RouteCalculator': { + 'routeCalculatorName': '*', + 'dataSource': 'DataSource', + 'description': '*' + }, + 'Tracker': { + 'trackerName': '*', + 'description': '*', + 'eventBridgeEnabled': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kmsKeyEnableGeospatialQueries': '*', + 'positionFiltering': 'PositionFiltering', + 'geofenceCollections': { + 'geofenceCollectionName': '*', + 'geofenceCollectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + '@aws-cdk.aws-msk-alpha': { + 'Cluster': { + 'clusterName': '*', + 'kafkaVersion': '*', + 'numberOfBrokerNodes': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'instanceType': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'ebsStorageInfo': { + 'volumeSize': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'storageMode': 'StorageMode', + 'configurationInfo': { + 'arn': '*', + 'revision': '*' + }, + 'monitoring': { + 'clusterMonitoringLevel': 'ClusterMonitoringLevel', + 'enablePrometheusJmxExporter': '*', + 'enablePrometheusNodeExporter': '*' + }, + 'logging': { + 'firehoseDeliveryStreamName': '*', + 'cloudwatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*' + } + }, + 'encryptionInTransit': { + 'clientBroker': 'ClientBrokerEncryption', + 'enableInCluster': '*' + }, + 'clientAuthentication': '*', + 'removalPolicy': 'RemovalPolicy' + } + }, + '@aws-cdk.aws-neptune-alpha': { + 'DatabaseCluster': { + 'engineVersion': '*', + 'backupRetention': '*', + 'preferredBackupWindow': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'storageEncrypted': '*', + 'instances': '*', + 'dbClusterName': '*', + 'iamAuthentication': '*', + 'instanceIdentifierBase': '*', + 'instanceType': '*', + 'associatedRoles': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deletionProtection': '*', + 'preferredMaintenanceWindow': '*', + 'clusterParameterGroup': { + 'clusterParameterGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'parameterGroup': { + 'parameterGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'autoMinorVersionUpgrade': '*', + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serverlessScalingConfiguration': { + 'minCapacity': '*', + 'maxCapacity': '*' + }, + 'copyTagsToSnapshot': '*', + 'port': '*' + }, + 'DatabaseInstance': { + 'cluster': { + 'clusterIdentifier': '*', + 'clusterResourceIdentifier': '*', + 'clusterEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'instanceType': '*', + 'availabilityZone': '*', + 'dbInstanceName': '*', + 'parameterGroup': { + 'parameterGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'autoMinorVersionUpgrade': '*' + }, + 'ClusterParameterGroup': { + 'clusterParameterGroupName': '*', + 'description': '*', + 'parameters': '*', + 'family': '*' + }, + 'ParameterGroup': { + 'parameterGroupName': '*', + 'description': '*', + 'parameters': '*', + 'family': '*' + }, + 'SubnetGroup': { + 'description': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnetGroupName': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'removalPolicy': 'RemovalPolicy' + } + }, + '@aws-cdk.aws-pipes-alpha': { + 'Pipe': { + 'source': { + 'sourceArn': '*' + }, + 'filter': { + 'filters': { + 'pattern': '*' + } + }, + 'enrichment': { + 'enrichmentArn': '*' + }, + 'target': { + 'targetArn': '*' + }, + 'pipeName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logDestinations': '*', + 'logLevel': 'LogLevel', + 'logIncludeExecutionData': 'IncludeExecutionData', + 'description': '*', + 'desiredState': 'DesiredState', + 'tags': '*' + } + }, + '@aws-cdk.aws-redshift-alpha': { + 'Cluster': { + 'clusterName': '*', + 'parameterGroup': { + 'clusterParameterGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'numberOfNodes': '*', + 'nodeType': 'NodeType', + 'clusterType': 'ClusterType', + 'port': '*', + 'encrypted': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'preferredMaintenanceWindow': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'subnetGroup': { + 'clusterSubnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'masterUser': { + 'masterUsername': '*', + 'masterPassword': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'excludeCharacters': '*' + }, + 'roles': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'defaultRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'defaultDatabaseName': '*', + 'loggingProperties': { + 'loggingBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'loggingKeyPrefix': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'publiclyAccessible': '*', + 'classicResizing': '*', + 'elasticIp': '*', + 'rebootForParameterChanges': '*', + 'enhancedVpcRouting': '*', + 'multiAz': '*', + 'resourceAction': 'ResourceAction', + 'availabilityZoneRelocation': '*' + }, + 'DatabaseSecret': { + 'username': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'excludeCharacters': '*' + }, + 'ClusterParameterGroup': { + 'description': '*', + 'parameters': '*' + }, + 'ClusterSubnetGroup': { + 'description': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'removalPolicy': 'RemovalPolicy' + } + }, + '@aws-cdk.aws-route53resolver-alpha': { + 'FirewallDomainList': { + 'name': '*', + 'domains': '*' + }, + 'FirewallRuleGroupAssociation': { + 'firewallRuleGroup': { + 'firewallRuleGroupId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mutationProtection': '*', + 'name': '*', + 'priority': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + } + }, + 'FirewallRuleGroup': { + 'name': '*', + 'rules': { + 'action': '*', + 'firewallDomainList': { + 'firewallDomainListId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'priority': '*' + } + } + }, + '@aws-cdk.aws-s3objectlambda-alpha': { + 'AccessPoint': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'handler': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'accessPointName': '*', + 'cloudWatchMetricsEnabled': '*', + 'supportsGetObjectRange': '*', + 'supportsGetObjectPartNumber': '*', + 'payload': '*' + } + }, + '@aws-cdk.aws-sagemaker-alpha': { + 'EndpointConfig': { + 'endpointConfigName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'instanceProductionVariants': { + 'acceleratorType': '*', + 'initialInstanceCount': '*', + 'instanceType': '*', + 'initialVariantWeight': '*', + 'model': { + 'modelArn': '*', + 'modelName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'connections': '*' + }, + 'variantName': '*' + } + }, + 'Endpoint': { + 'endpointName': '*', + 'endpointConfig': { + 'endpointConfigArn': '*', + 'endpointConfigName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'Model': { + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'modelName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'containers': { + 'image': '*', + 'environment': '*', + 'containerHostname': '*', + 'modelData': '*' + }, + 'allowAllOutbound': '*', + 'networkIsolation': '*' + } + }, + '@aws-cdk.aws-scheduler-alpha': { + 'Group': { + 'groupName': '*', + 'removalPolicy': 'RemovalPolicy' + }, + 'Schedule': { + 'schedule': '*', + 'target': '*', + 'scheduleName': '*', + 'description': '*', + 'group': { + 'groupName': '*', + 'groupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*', + 'key': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'timeWindow': '*', + 'start': '*', + 'end': '*' + } + }, + '@aws-cdk.aws-servicecatalogappregistry-alpha': { + 'Application': { + 'applicationName': '*', + 'description': '*' + }, + 'AttributeGroup': { + 'attributeGroupName': '*', + 'description': '*', + 'attributes': '*' + } + }, + '@aws-cdk.example-construct-library': { + 'ExampleResource': { + 'waitConditionHandleName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'removalPolicy': 'RemovalPolicy' + } + }, + 'aws-cdk-lib.aws-apigateway': { + 'ApiKey': { + 'resources': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'stages': { + 'stageName': '*', + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + } + }, + 'customerId': '*', + 'enabled': '*', + 'generateDistinctId': '*', + 'apiKeyName': '*', + 'value': '*', + 'description': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'RateLimitedApiKey': { + 'apiStages': { + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'throttle': { + 'method': '*', + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + } + } + }, + 'quota': { + 'limit': '*', + 'offset': '*', + 'period': 'Period' + }, + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + }, + 'resources': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'stages': { + 'stageName': '*', + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + } + }, + 'customerId': '*', + 'enabled': '*', + 'generateDistinctId': '*', + 'apiKeyName': '*', + 'value': '*', + 'description': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'BasePathMapping': { + 'domainName': { + 'domainName': '*', + 'domainNameAliasDomainName': '*', + 'domainNameAliasHostedZoneId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'basePath': '*', + 'stage': '*', + 'attachToStage': '*' + }, + 'Deployment': { + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'description': '*', + 'retainDeployments': '*', + 'stageName': '*' + }, + 'DomainName': { + 'mapping': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'GatewayResponse': { + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'type': '*', + 'statusCode': '*', + 'responseHeaders': '*', + 'templates': '*' + }, + 'LambdaRestApi': { + 'handler': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'integrationOptions': { + 'proxy': '*', + 'allowTestInvoke': '*', + 'cacheKeyParameters': '*', + 'cacheNamespace': '*', + 'contentHandling': 'ContentHandling', + 'credentialsRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'credentialsPassthrough': '*', + 'passthroughBehavior': 'PassthroughBehavior', + 'requestParameters': '*', + 'requestTemplates': '*', + 'timeout': '*', + 'integrationResponses': { + 'selectionPattern': '*', + 'statusCode': '*', + 'contentHandling': 'ContentHandling', + 'responseParameters': '*', + 'responseTemplates': '*' + }, + 'connectionType': 'ConnectionType', + 'vpcLink': { + 'vpcLinkId': '*' + } + }, + 'proxy': '*', + 'options': { + 'binaryMediaTypes': '*', + 'minimumCompressionSize': '*', + 'minCompressionSize': '*', + 'cloneFrom': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'apiKeySourceType': 'ApiKeySourceType', + 'endpointConfiguration': { + 'types': 'EndpointType', + 'vpcEndpoints': { + 'vpcEndpointId': '*' + } + }, + 'deploy': '*', + 'deployOptions': { + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheDataEncrypted': '*' + }, + 'retainDeployments': '*', + 'restApiName': '*', + 'parameters': '*', + 'policy': '*', + 'failOnWarnings': '*', + 'domainName': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'cloudWatchRole': '*', + 'cloudWatchRoleRemovalPolicy': 'RemovalPolicy', + 'endpointExportName': '*', + 'endpointTypes': 'EndpointType', + 'disableExecuteApiEndpoint': '*', + 'description': '*' + }, + 'binaryMediaTypes': '*', + 'minimumCompressionSize': '*', + 'minCompressionSize': '*', + 'cloneFrom': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'apiKeySourceType': 'ApiKeySourceType', + 'endpointConfiguration': { + 'types': 'EndpointType', + 'vpcEndpoints': { + 'vpcEndpointId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'deploy': '*', + 'deployOptions': { + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheTtl': '*', + 'cacheDataEncrypted': '*' + }, + 'retainDeployments': '*', + 'restApiName': '*', + 'parameters': '*', + 'policy': '*', + 'failOnWarnings': '*', + 'domainName': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'cloudWatchRole': '*', + 'cloudWatchRoleRemovalPolicy': 'RemovalPolicy', + 'endpointExportName': '*', + 'endpointTypes': 'EndpointType', + 'disableExecuteApiEndpoint': '*', + 'description': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'Method': { + 'resource': { + 'restApi': '*', + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'httpMethod': '*', + 'integration': '*', + 'options': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + } + }, + 'Model': { + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'contentType': '*', + 'description': '*', + 'modelName': '*', + 'schema': { + 'schema': 'JsonSchemaVersion', + 'id': '*', + 'ref': '*', + 'type': 'JsonSchemaType', + 'title': '*', + 'description': '*', + 'enum': '*', + 'default': '*', + 'format': '*', + 'definitions': '*', + 'multipleOf': '*', + 'maximum': '*', + 'exclusiveMaximum': '*', + 'minimum': '*', + 'exclusiveMinimum': '*', + 'maxLength': '*', + 'minLength': '*', + 'pattern': '*', + 'maxItems': '*', + 'minItems': '*', + 'uniqueItems': '*', + 'maxProperties': '*', + 'minProperties': '*', + 'required': '*', + 'properties': '*', + 'additionalProperties': '*', + 'patternProperties': '*', + 'dependencies': '*' + } + }, + 'RequestValidator': { + 'restApi': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + }, + 'Resource': { + 'parent': { + 'restApi': '*', + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'pathPart': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'ProxyResource': { + 'parent': { + 'restApi': '*', + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'anyMethod': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'SpecRestApi': { + 'apiDefinition': '*', + 'minCompressionSize': '*', + 'deploy': '*', + 'deployOptions': { + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheTtl': '*', + 'cacheDataEncrypted': '*' + }, + 'retainDeployments': '*', + 'restApiName': '*', + 'parameters': '*', + 'policy': '*', + 'failOnWarnings': '*', + 'domainName': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'cloudWatchRole': '*', + 'cloudWatchRoleRemovalPolicy': 'RemovalPolicy', + 'endpointExportName': '*', + 'endpointTypes': 'EndpointType', + 'disableExecuteApiEndpoint': '*', + 'description': '*' + }, + 'RestApi': { + 'binaryMediaTypes': '*', + 'minimumCompressionSize': '*', + 'minCompressionSize': '*', + 'cloneFrom': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'apiKeySourceType': 'ApiKeySourceType', + 'endpointConfiguration': { + 'types': 'EndpointType', + 'vpcEndpoints': { + 'vpcEndpointId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'deploy': '*', + 'deployOptions': { + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheTtl': '*', + 'cacheDataEncrypted': '*' + }, + 'retainDeployments': '*', + 'restApiName': '*', + 'parameters': '*', + 'policy': '*', + 'failOnWarnings': '*', + 'domainName': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'cloudWatchRole': '*', + 'cloudWatchRoleRemovalPolicy': 'RemovalPolicy', + 'endpointExportName': '*', + 'endpointTypes': 'EndpointType', + 'disableExecuteApiEndpoint': '*', + 'description': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'Stage': { + 'deployment': '*', + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheTtl': '*', + 'cacheDataEncrypted': '*' + }, + 'StepFunctionsRestApi': { + 'stateMachine': { + 'stateMachineArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'requestContext': { + 'accountId': '*', + 'apiId': '*', + 'apiKey': '*', + 'authorizerPrincipalId': '*', + 'caller': '*', + 'cognitoAuthenticationProvider': '*', + 'cognitoAuthenticationType': '*', + 'cognitoIdentityId': '*', + 'cognitoIdentityPoolId': '*', + 'httpMethod': '*', + 'stage': '*', + 'sourceIp': '*', + 'user': '*', + 'userAgent': '*', + 'userArn': '*', + 'requestId': '*', + 'resourceId': '*', + 'resourcePath': '*' + }, + 'querystring': '*', + 'path': '*', + 'headers': '*', + 'authorizer': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'useDefaultMethodResponses': '*', + 'binaryMediaTypes': '*', + 'minimumCompressionSize': '*', + 'minCompressionSize': '*', + 'cloneFrom': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'apiKeySourceType': 'ApiKeySourceType', + 'endpointConfiguration': { + 'types': 'EndpointType', + 'vpcEndpoints': { + 'vpcEndpointId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'deploy': '*', + 'deployOptions': { + 'stageName': '*', + 'accessLogDestination': '*', + 'accessLogFormat': '*', + 'tracingEnabled': '*', + 'cacheClusterEnabled': '*', + 'cacheClusterSize': '*', + 'clientCertificateId': '*', + 'description': '*', + 'documentationVersion': '*', + 'variables': '*', + 'methodOptions': '*', + 'metricsEnabled': '*', + 'loggingLevel': 'MethodLoggingLevel', + 'dataTraceEnabled': '*', + 'throttlingBurstLimit': '*', + 'throttlingRateLimit': '*', + 'cachingEnabled': '*', + 'cacheTtl': '*', + 'cacheDataEncrypted': '*' + }, + 'retainDeployments': '*', + 'restApiName': '*', + 'parameters': '*', + 'policy': '*', + 'failOnWarnings': '*', + 'domainName': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'basePath': '*' + }, + 'cloudWatchRole': '*', + 'cloudWatchRoleRemovalPolicy': 'RemovalPolicy', + 'endpointExportName': '*', + 'endpointTypes': 'EndpointType', + 'disableExecuteApiEndpoint': '*', + 'description': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + }, + 'UsagePlan': { + 'apiStages': { + 'api': { + 'restApiId': '*', + 'restApiName': '*', + 'restApiRootResourceId': '*', + 'latestDeployment': '*', + 'deploymentStage': '*', + 'root': { + 'restApi': '*', + 'resourceId': '*', + 'path': '*', + 'defaultIntegration': '*', + 'defaultMethodOptions': { + 'operationName': '*', + 'authorizationType': 'AuthorizationType', + 'authorizer': { + 'authorizerId': '*', + 'authorizationType': 'AuthorizationType' + }, + 'apiKeyRequired': '*', + 'methodResponses': { + 'statusCode': '*', + 'responseParameters': '*', + 'responseModels': '*' + }, + 'requestParameters': '*', + 'requestModels': '*', + 'requestValidator': { + 'requestValidatorId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'authorizationScopes': '*', + 'requestValidatorOptions': { + 'requestValidatorName': '*', + 'validateRequestBody': '*', + 'validateRequestParameters': '*' + } + }, + 'defaultCorsPreflightOptions': { + 'statusCode': '*', + 'allowOrigins': '*', + 'allowHeaders': '*', + 'allowMethods': '*', + 'allowCredentials': '*', + 'maxAge': '*', + 'disableCache': '*', + 'exposeHeaders': '*' + } + } + }, + 'throttle': { + 'method': '*', + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + } + } + }, + 'description': '*', + 'quota': { + 'limit': '*', + 'offset': '*', + 'period': 'Period' + }, + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + }, + 'name': '*', + 'apiKey': { + 'keyId': '*', + 'keyArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'VpcLink': { + 'vpcLinkName': '*', + 'description': '*', + 'targets': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'metrics': '*', + 'securityGroups': '*', + 'ipAddressType': 'IpAddressType', + 'enforceSecurityGroupInboundRulesOnPrivateLinkTraffic': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'loadBalancerArn': '*', + 'connections': '*' + } + } + }, + 'aws-cdk-lib.aws-appconfig': { + 'Application': { + 'applicationName': '*', + 'description': '*' + }, + 'DeploymentStrategy': { + 'rolloutStrategy': '*', + 'deploymentStrategyName': '*', + 'description': '*' + }, + 'Environment': { + 'application': { + 'description': '*', + 'name': '*', + 'applicationId': '*', + 'applicationArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'environmentName': '*', + 'description': '*', + 'monitors': '*', + 'deletionProtectionCheck': 'DeletionProtectionCheck' + }, + 'Extension': { + 'actions': '*', + 'extensionName': '*', + 'description': '*', + 'latestVersionNumber': '*', + 'parameters': '*' + } + }, + 'aws-cdk-lib.aws-applicationautoscaling': { + 'ScalableTarget': { + 'minCapacity': '*', + 'maxCapacity': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'resourceId': '*', + 'scalableDimension': '*', + 'serviceNamespace': 'ServiceNamespace' + } + }, + 'aws-cdk-lib.aws-appmesh': { + 'GatewayRoute': { + 'virtualGateway': { + 'virtualGatewayName': '*', + 'virtualGatewayArn': '*', + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'gatewayRouteName': '*', + 'routeSpec': '*' + }, + 'Mesh': { + 'meshName': '*', + 'egressFilter': 'MeshFilterType', + 'serviceDiscovery': { + 'ipPreference': 'IpPreference' + } + }, + 'Route': { + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'virtualRouter': { + 'virtualRouterName': '*', + 'virtualRouterArn': '*', + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'routeName': '*', + 'routeSpec': '*' + }, + 'VirtualGateway': { + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'virtualGatewayName': '*', + 'listeners': '*', + 'accessLog': '*', + 'backendDefaults': { + 'tlsClientPolicy': { + 'enforce': '*', + 'ports': '*', + 'validation': { + 'trust': '*', + 'subjectAlternativeNames': '*' + }, + 'mutualTlsCertificate': '*' + } + } + }, + 'VirtualNode': { + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'virtualNodeName': '*', + 'serviceDiscovery': '*', + 'backends': '*', + 'listeners': '*', + 'accessLog': '*', + 'backendDefaults': { + 'tlsClientPolicy': { + 'enforce': '*', + 'ports': '*', + 'validation': { + 'trust': '*', + 'subjectAlternativeNames': '*' + }, + 'mutualTlsCertificate': '*' + } + } + }, + 'VirtualRouter': { + 'mesh': { + 'meshName': '*', + 'meshArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'listeners': '*', + 'virtualRouterName': '*' + }, + 'VirtualService': { + 'virtualServiceName': '*', + 'virtualServiceProvider': '*' + } + }, + 'aws-cdk-lib.aws-appsync': { + 'AppsyncFunction': { + 'api': { + 'apiId': '*', + 'arn': '*', + 'graphQLEndpointArn': '*', + 'visibility': 'Visibility', + 'modes': 'AuthorizationType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dataSource': '*', + 'name': '*', + 'description': '*', + 'requestMappingTemplate': '*', + 'responseMappingTemplate': '*', + 'runtime': '*', + 'code': '*', + 'maxBatchSize': '*' + }, + 'GraphqlApi': { + 'name': '*', + 'authorizationConfig': { + 'defaultAuthorization': { + 'authorizationType': 'AuthorizationType', + 'userPoolConfig': { + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'appIdClientRegex': '*', + 'defaultAction': 'UserPoolDefaultAction' + }, + 'apiKeyConfig': { + 'name': '*', + 'description': '*', + 'expires': '*' + }, + 'openIdConnectConfig': { + 'tokenExpiryFromAuth': '*', + 'tokenExpiryFromIssue': '*', + 'clientId': '*', + 'oidcProvider': '*' + }, + 'lambdaAuthorizerConfig': { + 'handler': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'resultsCacheTtl': '*', + 'validationRegex': '*' + } + } + }, + 'logConfig': { + 'excludeVerboseContent': '*', + 'fieldLogLevel': 'FieldLogLevel', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'retention': 'RetentionDays' + }, + 'definition': '*', + 'schema': '*', + 'xrayEnabled': '*', + 'visibility': 'Visibility', + 'domainName': { + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'domainName': '*' + }, + 'introspectionConfig': 'IntrospectionConfig', + 'queryDepthLimit': '*', + 'resolverCountLimit': '*', + 'environmentVariables': '*', + 'ownerContact': '*' + }, + 'SourceApiAssociation': { + 'sourceApi': { + 'apiId': '*', + 'arn': '*', + 'graphQLEndpointArn': '*', + 'visibility': 'Visibility', + 'modes': 'AuthorizationType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mergedApi': { + 'apiId': '*', + 'arn': '*', + 'graphQLEndpointArn': '*', + 'visibility': 'Visibility', + 'modes': 'AuthorizationType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mergedApiExecutionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mergeType': 'MergeType', + 'description': '*' + } + }, + 'aws-cdk-lib.aws-autoscaling': { + 'AutoScalingGroup': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'launchTemplate': { + 'versionNumber': '*', + 'launchTemplateId': '*', + 'launchTemplateName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mixedInstancesPolicy': { + 'instancesDistribution': { + 'onDemandAllocationStrategy': 'OnDemandAllocationStrategy', + 'onDemandBaseCapacity': '*', + 'onDemandPercentageAboveBaseCapacity': '*', + 'spotAllocationStrategy': 'SpotAllocationStrategy', + 'spotInstancePools': '*', + 'spotMaxPrice': '*' + }, + 'launchTemplate': { + 'versionNumber': '*', + 'launchTemplateId': '*', + 'launchTemplateName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'launchTemplateOverrides': { + 'instanceRequirements': { + 'acceleratorCount': { + 'creationStack': '*', + 'typeHint': 'ResolutionTypeHint' + }, + 'acceleratorManufacturers': '*', + 'acceleratorNames': '*', + 'acceleratorTypes': '*', + 'allowedInstanceTypes': '*', + 'bareMetal': '*', + 'burstablePerformance': '*', + 'cpuManufacturers': '*', + 'excludedInstanceTypes': '*', + 'instanceGenerations': '*', + 'localStorage': '*', + 'localStorageTypes': '*', + 'maxSpotPriceAsPercentageOfOptimalOnDemandPrice': '*', + 'onDemandMaxPricePercentageOverLowestPrice': '*', + 'requireHibernateSupport': '*', + 'spotMaxPricePercentageOverLowestPrice': '*' + }, + 'instanceType': '*', + 'weightedCapacity': '*' + } + }, + 'instanceType': '*', + 'machineImage': '*', + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'userData': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'init': '*', + 'initOptions': { + 'configSets': '*', + 'embedFingerprint': '*', + 'printLog': '*', + 'ignoreFailures': '*', + 'includeUrl': '*', + 'includeRole': '*' + }, + 'requireImdsv2': '*', + 'maxHealthyPercentage': '*', + 'minHealthyPercentage': '*', + 'minCapacity': '*', + 'maxCapacity': '*', + 'desiredCapacity': '*', + 'keyName': '*', + 'keyPair': { + 'keyPairName': '*', + 'type': 'KeyPairType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'notificationsTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'notifications': { + 'topic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'scalingEvents': '*' + }, + 'allowAllOutbound': '*', + 'updateType': 'UpdateType', + 'rollingUpdateConfiguration': { + 'maxBatchSize': '*', + 'minInstancesInService': '*', + 'minSuccessfulInstancesPercent': '*', + 'pauseTime': '*', + 'waitOnResourceSignals': '*', + 'suspendProcesses': 'ScalingProcess' + }, + 'replacingUpdateMinSuccessfulInstancesPercent': '*', + 'ignoreUnmodifiedSizeProperties': '*', + 'resourceSignalCount': '*', + 'resourceSignalTimeout': '*', + 'cooldown': '*', + 'associatePublicIpAddress': '*', + 'spotPrice': '*', + 'healthCheck': '*', + 'blockDevices': { + 'deviceName': '*', + 'volume': '*', + 'mappingEnabled': '*' + }, + 'maxInstanceLifetime': '*', + 'instanceMonitoring': 'Monitoring', + 'groupMetrics': '*', + 'signals': '*', + 'updatePolicy': '*', + 'newInstancesProtectedFromScaleIn': '*', + 'autoScalingGroupName': '*', + 'terminationPolicies': 'TerminationPolicy', + 'terminationPolicyCustomLambdaFunctionArn': '*', + 'defaultInstanceWarmup': '*', + 'capacityRebalance': '*', + 'ssmSessionPermissions': '*', + 'azCapacityDistributionStrategy': 'CapacityDistributionStrategy' + }, + 'LifecycleHook': { + 'autoScalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'lifecycleHookName': '*', + 'defaultResult': 'DefaultResult', + 'heartbeatTimeout': '*', + 'lifecycleTransition': 'LifecycleTransition', + 'notificationMetadata': '*', + 'notificationTarget': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'ScheduledAction': { + 'autoScalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'timeZone': '*', + 'schedule': '*', + 'startTime': '*', + 'endTime': '*', + 'minCapacity': '*', + 'maxCapacity': '*', + 'desiredCapacity': '*' + }, + 'WarmPool': { + 'autoScalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'reuseOnScaleIn': '*', + 'maxGroupPreparedCapacity': '*', + 'minSize': '*', + 'poolState': 'PoolState' + } + }, + 'aws-cdk-lib.aws-backup': { + 'BackupPlan': { + 'backupPlanName': '*', + 'backupVault': { + 'backupVaultName': '*', + 'backupVaultArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'backupPlanRules': '*', + 'windowsVss': '*' + }, + 'BackupSelection': { + 'backupPlan': { + 'backupPlanId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'resources': '*', + 'backupSelectionName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'disableDefaultBackupPolicy': '*', + 'allowRestores': '*' + }, + 'BackupVault': { + 'backupVaultName': '*', + 'accessPolicy': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'notificationTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'notificationEvents': 'BackupVaultEvents', + 'removalPolicy': 'RemovalPolicy', + 'blockRecoveryPointDeletion': '*', + 'lockConfiguration': { + 'minRetention': '*' + } + } + }, + 'aws-cdk-lib.aws-batch': { + 'EcsJobDefinition': { + 'container': { + 'image': '*', + 'cpu': '*', + 'memory': '*', + 'command': '*', + 'environment': '*', + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'linuxParameters': '*', + 'logDriverConfig': { + 'logDriver': '*', + 'options': '*', + 'secretOptions': { + 'name': '*', + 'valueFrom': '*' + } + }, + 'readonlyRootFilesystem': '*', + 'secrets': '*', + 'user': '*', + 'volumes': '*' + }, + 'propagateTags': '*', + 'jobDefinitionName': '*', + 'parameters': '*', + 'retryAttempts': '*', + 'retryStrategies': '*', + 'schedulingPriority': '*', + 'timeout': '*' + }, + 'EksJobDefinition': { + 'container': '*', + 'dnsPolicy': 'DnsPolicy', + 'useHostNetwork': '*', + 'serviceAccount': '*', + 'jobDefinitionName': '*', + 'parameters': '*', + 'retryAttempts': '*', + 'retryStrategies': '*', + 'schedulingPriority': '*', + 'timeout': '*' + }, + 'ManagedEc2EcsComputeEnvironment': { + 'useOptimalInstanceClasses': '*', + 'images': { + 'imageType': 'EcsMachineImageType', + 'image': '*' + }, + 'allocationStrategy': 'AllocationStrategy', + 'spotBidPercentage': '*', + 'spotFleetRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'instanceTypes': '*', + 'instanceClasses': 'InstanceClass', + 'instanceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'launchTemplate': { + 'versionNumber': '*', + 'launchTemplateId': '*', + 'launchTemplateName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'minvCpus': '*', + 'placementGroup': { + 'placementGroupName': '*', + 'partitions': '*', + 'spreadLevel': 'PlacementGroupSpreadLevel', + 'strategy': 'PlacementGroupStrategy', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxvCpus': '*', + 'replaceComputeEnvironment': '*', + 'spot': '*', + 'updateTimeout': '*', + 'terminateOnUpdate': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'updateToLatestImageVersion': '*', + 'computeEnvironmentName': '*', + 'serviceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*' + }, + 'ManagedEc2EksComputeEnvironment': { + 'kubernetesNamespace': '*', + 'eksCluster': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clusterName': '*', + 'clusterArn': '*', + 'clusterEndpoint': '*', + 'clusterCertificateAuthorityData': '*', + 'clusterSecurityGroupId': '*', + 'clusterSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'clusterEncryptionConfigKeyArn': '*', + 'openIdConnectProvider': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*' + }, + 'eksPodIdentityAgent': { + 'addonName': '*', + 'addonArn': '*' + }, + 'kubectlRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*' + }, + 'ipFamily': 'IpFamily', + 'kubectlProvider': { + 'serviceToken': '*', + 'roleArn': '*' + }, + 'kubectlMemory': '*', + 'prune': '*', + 'authenticationMode': 'AuthenticationMode' + }, + 'useOptimalInstanceClasses': '*', + 'images': { + 'imageType': 'EksMachineImageType', + 'image': '*' + }, + 'allocationStrategy': 'AllocationStrategy', + 'spotBidPercentage': '*', + 'instanceTypes': '*', + 'instanceClasses': 'InstanceClass', + 'instanceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'launchTemplate': { + 'versionNumber': '*', + 'launchTemplateId': '*', + 'launchTemplateName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'minvCpus': '*', + 'placementGroup': { + 'placementGroupName': '*', + 'partitions': '*', + 'spreadLevel': 'PlacementGroupSpreadLevel', + 'strategy': 'PlacementGroupStrategy', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxvCpus': '*', + 'replaceComputeEnvironment': '*', + 'spot': '*', + 'updateTimeout': '*', + 'terminateOnUpdate': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'updateToLatestImageVersion': '*', + 'computeEnvironmentName': '*', + 'serviceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*' + }, + 'FargateComputeEnvironment': { + 'maxvCpus': '*', + 'replaceComputeEnvironment': '*', + 'spot': '*', + 'updateTimeout': '*', + 'terminateOnUpdate': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'updateToLatestImageVersion': '*', + 'computeEnvironmentName': '*', + 'serviceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*' + } + }, + 'aws-cdk-lib.aws-certificatemanager': { + 'Certificate': { + 'domainName': '*', + 'subjectAlternativeNames': '*', + 'validationDomains': '*', + 'validationMethod': 'ValidationMethod', + 'validation': '*', + 'transparencyLoggingEnabled': '*', + 'certificateName': '*', + 'keyAlgorithm': '*' + }, + 'DnsValidatedCertificate': { + 'hostedZone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'region': '*', + 'route53Endpoint': '*', + 'customResourceRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cleanupRoute53Records': '*', + 'domainName': '*', + 'subjectAlternativeNames': '*', + 'validationDomains': '*', + 'validationMethod': 'ValidationMethod', + 'validation': '*', + 'transparencyLoggingEnabled': '*', + 'certificateName': '*', + 'keyAlgorithm': '*' + }, + 'PrivateCertificate': { + 'domainName': '*', + 'subjectAlternativeNames': '*', + 'certificateAuthority': { + 'certificateAuthorityArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'keyAlgorithm': '*' + } + }, + 'aws-cdk-lib.aws-chatbot': { + 'SlackChannelConfiguration': { + 'slackChannelConfigurationName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'slackWorkspaceId': '*', + 'slackChannelId': '*', + 'notificationTopics': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'loggingLevel': 'LoggingLevel', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'guardrailPolicies': { + 'managedPolicyArn': '*' + }, + 'userRoleRequired': '*' + } + }, + 'aws-cdk-lib.aws-cloudformation': { + 'CustomResource': { + 'provider': '*', + 'properties': '*', + 'resourceType': '*', + 'removalPolicy': 'RemovalPolicy' + } + }, + 'aws-cdk-lib.aws-cloudfront': { + 'CachePolicy': { + 'cachePolicyName': '*', + 'comment': '*', + 'defaultTtl': '*', + 'minTtl': '*', + 'maxTtl': '*', + 'cookieBehavior': '*', + 'headerBehavior': '*', + 'queryStringBehavior': '*', + 'enableAcceptEncodingGzip': '*', + 'enableAcceptEncodingBrotli': '*' + }, + 'Distribution': { + 'defaultBehavior': { + 'origin': '*', + 'allowedMethods': '*', + 'cachedMethods': '*', + 'cachePolicy': { + 'cachePolicyId': '*' + }, + 'compress': '*', + 'originRequestPolicy': { + 'originRequestPolicyId': '*' + }, + 'realtimeLogConfig': { + 'realtimeLogConfigName': '*', + 'realtimeLogConfigArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'responseHeadersPolicy': { + 'responseHeadersPolicyId': '*' + }, + 'smoothStreaming': '*', + 'viewerProtocolPolicy': 'ViewerProtocolPolicy', + 'functionAssociations': { + 'function': { + 'functionName': '*', + 'functionArn': '*' + }, + 'eventType': 'FunctionEventType' + }, + 'edgeLambdas': { + 'functionVersion': { + 'version': '*', + 'lambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'resourceArnsForGrantInvoke': '*' + }, + 'eventType': 'LambdaEdgeEventType', + 'includeBody': '*' + }, + 'trustedKeyGroups': { + 'keyGroupId': '*' + } + }, + 'additionalBehaviors': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'comment': '*', + 'defaultRootObject': '*', + 'domainNames': '*', + 'enabled': '*', + 'enableIpv6': '*', + 'enableLogging': '*', + 'geoRestriction': '*', + 'httpVersion': 'HttpVersion', + 'logBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'logIncludesCookies': '*', + 'logFilePrefix': '*', + 'priceClass': 'PriceClass', + 'webAclId': '*', + 'errorResponses': { + 'ttl': '*', + 'httpStatus': '*', + 'responseHttpStatus': '*', + 'responsePagePath': '*' + }, + 'minimumProtocolVersion': 'SecurityPolicyProtocol', + 'sslSupportMethod': 'SSLMethod', + 'publishAdditionalMetrics': '*' + }, + 'Function': { + 'functionName': '*', + 'comment': '*', + 'code': '*', + 'runtime': '*', + 'keyValueStore': { + 'keyValueStoreArn': '*', + 'keyValueStoreId': '*', + 'keyValueStoreStatus': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoPublish': '*' + }, + 'KeyGroup': { + 'keyGroupName': '*', + 'comment': '*', + 'items': { + 'publicKeyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'S3OriginAccessControl': { + 'description': '*', + 'originAccessControlName': '*', + 'signing': '*' + }, + 'FunctionUrlOriginAccessControl': { + 'description': '*', + 'originAccessControlName': '*', + 'signing': '*' + }, + 'OriginRequestPolicy': { + 'originRequestPolicyName': '*', + 'comment': '*', + 'cookieBehavior': '*', + 'headerBehavior': '*', + 'queryStringBehavior': '*' + }, + 'PublicKey': { + 'publicKeyName': '*', + 'comment': '*', + 'encodedKey': '*' + }, + 'RealtimeLogConfig': { + 'realtimeLogConfigName': '*', + 'fields': '*', + 'samplingRate': '*', + 'endPoints': '*' + }, + 'ResponseHeadersPolicy': { + 'responseHeadersPolicyName': '*', + 'comment': '*', + 'corsBehavior': { + 'accessControlAllowCredentials': '*', + 'accessControlAllowHeaders': '*', + 'accessControlAllowMethods': '*', + 'accessControlAllowOrigins': '*', + 'accessControlExposeHeaders': '*', + 'accessControlMaxAge': '*', + 'originOverride': '*' + }, + 'customHeadersBehavior': { + 'customHeaders': { + 'header': '*', + 'override': '*', + 'value': '*' + } + }, + 'securityHeadersBehavior': { + 'contentSecurityPolicy': { + 'contentSecurityPolicy': '*', + 'override': '*' + }, + 'contentTypeOptions': { + 'override': '*' + }, + 'frameOptions': { + 'frameOption': 'HeadersFrameOption', + 'override': '*' + }, + 'referrerPolicy': { + 'referrerPolicy': 'HeadersReferrerPolicy', + 'override': '*' + }, + 'strictTransportSecurity': { + 'accessControlMaxAge': '*', + 'includeSubdomains': '*', + 'override': '*', + 'preload': '*' + }, + 'xssProtection': { + 'modeBlock': '*', + 'override': '*', + 'protection': '*', + 'reportUri': '*' + } + }, + 'removeHeaders': '*', + 'serverTimingSamplingRate': '*' + }, + 'CloudFrontWebDistribution': { + 'aliasConfiguration': { + 'acmCertRef': '*', + 'names': '*', + 'sslMethod': 'SSLMethod', + 'securityPolicy': 'SecurityPolicyProtocol' + }, + 'comment': '*', + 'enabled': '*', + 'defaultRootObject': '*', + 'enableIpV6': '*', + 'httpVersion': 'HttpVersion', + 'priceClass': 'PriceClass', + 'viewerProtocolPolicy': 'ViewerProtocolPolicy', + 'originConfigs': { + 'connectionAttempts': '*', + 'connectionTimeout': '*', + 's3OriginSource': { + 's3BucketSource': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'originAccessIdentity': { + 'originAccessIdentityName': '*', + 'originAccessIdentityId': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'originPath': '*', + 'originHeaders': '*', + 'originShieldRegion': '*' + }, + 'customOriginSource': { + 'domainName': '*', + 'httpPort': '*', + 'httpsPort': '*', + 'originProtocolPolicy': 'OriginProtocolPolicy', + 'allowedOriginSSLVersions': 'OriginSslPolicy', + 'originPath': '*', + 'originHeaders': '*', + 'originShieldRegion': '*' + }, + 'failoverCriteriaStatusCodes': 'FailoverStatusCode', + 'behaviors': { + 'compress': '*', + 'isDefaultBehavior': '*', + 'trustedSigners': '*', + 'trustedKeyGroups': { + 'keyGroupId': '*' + }, + 'allowedMethods': 'CloudFrontAllowedMethods', + 'pathPattern': '*', + 'cachedMethods': 'CloudFrontAllowedCachedMethods', + 'forwardedValues': { + 'cookies': { + 'creationStack': '*', + 'typeHint': 'ResolutionTypeHint' + }, + 'headers': '*', + 'queryString': '*', + 'queryStringCacheKeys': '*' + }, + 'lambdaFunctionAssociations': { + 'eventType': 'LambdaEdgeEventType', + 'lambdaFunction': { + 'version': '*', + 'lambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'resourceArnsForGrantInvoke': '*' + }, + 'includeBody': '*' + }, + 'functionAssociations': { + 'function': { + 'functionName': '*', + 'functionArn': '*' + }, + 'eventType': 'FunctionEventType' + }, + 'viewerProtocolPolicy': 'ViewerProtocolPolicy' + }, + 'originPath': '*', + 'originHeaders': '*', + 'originShieldRegion': '*' + }, + 'loggingConfig': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'includeCookies': '*', + 'prefix': '*' + }, + 'errorConfigurations': { + 'errorCachingMinTtl': '*', + 'errorCode': '*', + 'responseCode': '*', + 'responsePagePath': '*' + }, + 'webACLId': '*', + 'viewerCertificate': '*', + 'geoRestriction': '*' + } + }, + 'aws-cdk-lib.aws-cloudtrail': { + 'Trail': { + 'includeGlobalServiceEvents': '*', + 'isMultiRegionTrail': '*', + 'managementEvents': 'ReadWriteType', + 'enableFileValidation': '*', + 'sendToCloudWatchLogs': '*', + 'cloudWatchLogsRetention': 'RetentionDays', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'snsTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'trailName': '*', + 's3KeyPrefix': '*', + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'isOrganizationTrail': '*', + 'orgId': '*', + 'insightTypes': '*' + } + }, + 'aws-cdk-lib.aws-cloudwatch': { + 'Alarm': { + 'metric': { + 'warnings': '*', + 'warningsV2': '*' + }, + 'period': '*', + 'statistic': '*', + 'alarmName': '*', + 'alarmDescription': '*', + 'comparisonOperator': 'ComparisonOperator', + 'threshold': '*', + 'evaluationPeriods': '*', + 'evaluateLowSampleCountPercentile': '*', + 'treatMissingData': 'TreatMissingData', + 'actionsEnabled': '*', + 'datapointsToAlarm': '*' + }, + 'CompositeAlarm': { + 'actionsEnabled': '*', + 'alarmDescription': '*', + 'compositeAlarmName': '*', + 'alarmRule': '*', + 'actionsSuppressor': { + 'alarmArn': '*', + 'alarmName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'actionsSuppressorExtensionPeriod': '*', + 'actionsSuppressorWaitPeriod': '*' + }, + 'Dashboard': { + 'dashboardName': '*', + 'defaultInterval': '*', + 'start': '*', + 'end': '*', + 'periodOverride': 'PeriodOverride', + 'widgets': { + 'width': '*', + 'height': '*', + 'warnings': '*', + 'warningsV2': '*' + }, + 'variables': '*' + } + }, + 'aws-cdk-lib.aws-codebuild': { + 'Fleet': { + 'fleetName': '*', + 'baseCapacity': '*', + 'computeType': 'FleetComputeType', + 'environmentType': 'EnvironmentType' + }, + 'Project': { + 'source': { + 'identifier': '*', + 'type': '*', + 'badgeSupported': '*' + }, + 'artifacts': { + 'identifier': '*', + 'type': '*' + }, + 'secondarySources': { + 'identifier': '*', + 'type': '*', + 'badgeSupported': '*' + }, + 'secondaryArtifacts': { + 'identifier': '*', + 'type': '*' + }, + 'description': '*', + 'buildSpec': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cache': '*', + 'environment': { + 'buildImage': { + 'type': '*', + 'imageId': '*', + 'defaultComputeType': 'ComputeType', + 'imagePullPrincipalType': 'ImagePullPrincipalType', + 'secretsManagerCredentials': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'repository': { + 'repositoryName': '*', + 'repositoryArn': '*', + 'repositoryUri': '*', + 'registryUri': '*' + } + }, + 'computeType': 'ComputeType', + 'fleet': { + 'fleetArn': '*', + 'fleetName': '*', + 'computeType': 'FleetComputeType', + 'environmentType': 'EnvironmentType' + }, + 'privileged': '*', + 'certificate': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'objectKey': '*' + }, + 'environmentVariables': '*' + }, + 'badge': '*', + 'timeout': '*', + 'environmentVariables': '*', + 'checkSecretsInPlainTextEnvVariables': '*', + 'projectName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'fileSystemLocations': '*', + 'grantReportGroupPermissions': '*', + 'logging': { + 's3': { + 'encrypted': '*', + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'enabled': '*' + }, + 'cloudWatch': { + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 'prefix': '*', + 'enabled': '*' + } + }, + 'queuedTimeout': '*', + 'concurrentBuildLimit': '*', + 'ssmSessionPermissions': '*', + 'visibility': 'ProjectVisibility', + 'autoRetryLimit': '*' + }, + 'ReportGroup': { + 'reportGroupName': '*', + 'exportBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'zipExport': '*', + 'removalPolicy': 'RemovalPolicy', + 'type': 'ReportGroupType', + 'deleteReports': '*' + }, + 'GitHubSourceCredentials': { + 'accessToken': '*' + }, + 'GitHubEnterpriseSourceCredentials': { + 'accessToken': '*' + }, + 'BitBucketSourceCredentials': { + 'username': '*', + 'password': '*' + }, + 'UntrustedCodeBoundaryPolicy': { + 'managedPolicyName': '*', + 'additionalStatements': '*' + } + }, + 'aws-cdk-lib.aws-codecommit': { + 'Repository': { + 'repositoryName': '*', + 'description': '*', + 'code': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'aws-cdk-lib.aws-codeguruprofiler': { + 'ProfilingGroup': { + 'profilingGroupName': '*', + 'computePlatform': 'ComputePlatform' + } + }, + 'aws-cdk-lib.aws-codepipeline': { + 'Pipeline': { + 'artifactBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'restartExecutionOnUpdate': '*', + 'pipelineName': '*', + 'crossRegionReplicationBuckets': '*', + 'stages': { + 'stageName': '*', + 'actions': { + 'actionProperties': { + 'actionName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'region': '*', + 'account': '*', + 'resource': '*', + 'category': 'ActionCategory', + 'provider': '*', + 'owner': '*', + 'version': '*', + 'runOrder': '*', + 'artifactBounds': { + 'minInputs': '*', + 'maxInputs': '*', + 'minOutputs': '*', + 'maxOutputs': '*' + }, + 'inputs': '*', + 'variablesNamespace': '*' + } + }, + 'transitionToEnabled': '*', + 'transitionDisabledReason': '*' + }, + 'crossAccountKeys': '*', + 'enableKeyRotation': '*', + 'reuseCrossRegionSupportStacks': '*', + 'pipelineType': 'PipelineType', + 'variables': '*', + 'triggers': { + 'providerType': 'ProviderType', + 'gitConfiguration': { + 'sourceAction': { + 'actionProperties': { + 'actionName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'region': '*', + 'account': '*', + 'resource': '*', + 'category': 'ActionCategory', + 'provider': '*', + 'owner': '*', + 'version': '*', + 'runOrder': '*', + 'artifactBounds': { + 'minInputs': '*', + 'maxInputs': '*', + 'minOutputs': '*', + 'maxOutputs': '*' + }, + 'inputs': '*', + 'variablesNamespace': '*' + } + }, + 'pushFilter': { + 'tagsExcludes': '*', + 'tagsIncludes': '*' + }, + 'pullRequestFilter': { + 'branchesExcludes': '*', + 'branchesIncludes': '*', + 'filePathsExcludes': '*', + 'filePathsIncludes': '*', + 'events': 'GitPullRequestEvent' + } + } + }, + 'executionMode': 'ExecutionMode' + } + }, + 'aws-cdk-lib.aws-codestarnotifications': { + 'NotificationRule': { + 'events': '*', + 'source': '*', + 'targets': '*', + 'notificationRuleName': '*', + 'enabled': '*', + 'detailType': 'DetailType', + 'createdBy': '*' + } + }, + 'aws-cdk-lib.aws-cognito': { + 'UserPoolClient': { + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'userPoolClientName': '*', + 'generateSecret': '*', + 'authFlows': { + 'adminUserPassword': '*', + 'custom': '*', + 'userPassword': '*', + 'userSrp': '*', + 'user': '*' + }, + 'disableOAuth': '*', + 'oAuth': { + 'flows': { + 'authorizationCodeGrant': '*', + 'implicitCodeGrant': '*', + 'clientCredentials': '*' + }, + 'callbackUrls': '*', + 'logoutUrls': '*', + 'scopes': '*', + 'defaultRedirectUri': '*' + }, + 'authSessionValidity': '*', + 'preventUserExistenceErrors': '*', + 'supportedIdentityProviders': '*', + 'idTokenValidity': '*', + 'refreshTokenValidity': '*', + 'accessTokenValidity': '*', + 'readAttributes': '*', + 'writeAttributes': '*', + 'enableTokenRevocation': '*', + 'enablePropagateAdditionalUserContextData': '*' + }, + 'UserPoolDomain': { + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'customDomain': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'cognitoDomain': { + 'domainPrefix': '*' + } + }, + 'UserPoolGroup': { + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'description': '*', + 'groupName': '*', + 'precedence': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'UserPoolResourceServer': { + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'identifier': '*', + 'userPoolResourceServerName': '*', + 'scopes': '*' + }, + 'UserPool': { + 'userPoolName': '*', + 'selfSignUpEnabled': '*', + 'userVerification': { + 'emailSubject': '*', + 'emailBody': '*', + 'emailStyle': 'VerificationEmailStyle', + 'smsMessage': '*' + }, + 'userInvitation': { + 'emailSubject': '*', + 'emailBody': '*', + 'smsMessage': '*' + }, + 'smsRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'smsRoleExternalId': '*', + 'snsRegion': '*', + 'enableSmsRole': '*', + 'signInAliases': { + 'username': '*', + 'email': '*', + 'phone': '*', + 'preferredUsername': '*' + }, + 'autoVerify': { + 'email': '*', + 'phone': '*' + }, + 'keepOriginal': { + 'email': '*', + 'phone': '*' + }, + 'standardAttributes': { + 'address': { + 'mutable': '*', + 'required': '*' + } + }, + 'customAttributes': '*', + 'mfa': 'Mfa', + 'mfaMessage': '*', + 'mfaSecondFactor': { + 'sms': '*', + 'otp': '*', + 'email': '*' + }, + 'passwordPolicy': { + 'tempPasswordValidity': '*', + 'minLength': '*', + 'requireLowercase': '*', + 'requireUppercase': '*', + 'requireDigits': '*', + 'requireSymbols': '*' + }, + 'emailSettings': { + 'from': '*', + 'replyTo': '*' + }, + 'email': '*', + 'lambdaTriggers': { + 'createAuthChallenge': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + } + }, + 'signInCaseSensitive': '*', + 'accountRecovery': 'AccountRecovery', + 'removalPolicy': 'RemovalPolicy', + 'deletionProtection': '*', + 'deviceTracking': { + 'challengeRequiredOnNewDevice': '*', + 'deviceOnlyRememberedOnUserPrompt': '*' + }, + 'customSenderKmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'advancedSecurityMode': 'AdvancedSecurityMode', + 'featurePlan': 'FeaturePlan' + } + }, + 'aws-cdk-lib.aws-config': { + 'AccessKeysRotated': { + 'maxAge': '*', + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + }, + 'CloudFormationStackDriftDetectionCheck': { + 'ownStackOnly': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + }, + 'CloudFormationStackNotificationCheck': { + 'topics': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + }, + 'ManagedRule': { + 'identifier': '*', + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + }, + 'CustomRule': { + 'lambdaFunction': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'configurationChanges': '*', + 'periodic': '*', + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + }, + 'CustomPolicy': { + 'policyText': '*', + 'enableDebugLog': '*', + 'configRuleName': '*', + 'description': '*', + 'inputParameters': '*', + 'maximumExecutionFrequency': 'MaximumExecutionFrequency', + 'ruleScope': '*', + 'evaluationModes': '*' + } + }, + 'aws-cdk-lib.aws-docdb': { + 'DatabaseCluster': { + 'engineVersion': '*', + 'port': '*', + 'masterUser': { + 'username': '*', + 'password': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'excludeCharacters': '*', + 'secretName': '*' + }, + 'backup': { + 'retention': '*', + 'preferredWindow': '*' + }, + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'storageEncrypted': '*', + 'instances': '*', + 'dbClusterName': '*', + 'instanceIdentifierBase': '*', + 'instanceType': '*', + 'caCertificate': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'parameterGroup': { + 'parameterGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'preferredMaintenanceWindow': '*', + 'removalPolicy': 'RemovalPolicy', + 'deletionProtection': '*', + 'exportProfilerLogsToCloudWatch': '*', + 'exportAuditLogsToCloudWatch': '*', + 'cloudWatchLogsRetention': 'RetentionDays', + 'cloudWatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enablePerformanceInsights': '*', + 'instanceRemovalPolicy': 'RemovalPolicy', + 'securityGroupRemovalPolicy': 'RemovalPolicy', + 'copyTagsToSnapshot': '*', + 'storageType': 'StorageType' + }, + 'DatabaseSecret': { + 'username': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretName': '*', + 'masterSecret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'excludeCharacters': '*' + }, + 'DatabaseInstance': { + 'cluster': { + 'clusterIdentifier': '*', + 'instanceIdentifiers': '*', + 'clusterEndpoint': '*', + 'securityGroupId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'instanceType': '*', + 'availabilityZone': '*', + 'dbInstanceName': '*', + 'autoMinorVersionUpgrade': '*', + 'preferredMaintenanceWindow': '*', + 'removalPolicy': 'RemovalPolicy', + 'enablePerformanceInsights': '*', + 'caCertificate': '*' + }, + 'ClusterParameterGroup': { + 'description': '*', + 'family': '*', + 'dbClusterParameterGroupName': '*', + 'parameters': '*' + } + }, + 'aws-cdk-lib.aws-dynamodb': { + 'TableV2': { + 'partitionKey': { + 'name': '*', + 'type': 'AttributeType' + }, + 'sortKey': { + 'name': '*', + 'type': 'AttributeType' + }, + 'tableName': '*', + 'timeToLiveAttribute': '*', + 'dynamoStream': 'StreamViewType', + 'removalPolicy': 'RemovalPolicy', + 'billing': '*', + 'replicas': { + 'region': '*', + 'readCapacity': '*', + 'maxReadRequestUnits': '*', + 'globalSecondaryIndexOptions': '*', + 'contributorInsights': '*', + 'deletionProtection': '*', + 'pointInTimeRecovery': '*', + 'tableClass': 'TableClass', + 'kinesisStream': { + 'streamArn': '*', + 'streamName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'tags': { + 'key': '*', + 'value': '*' + }, + 'resourcePolicy': '*' + }, + 'globalSecondaryIndexes': { + 'partitionKey': { + 'name': '*', + 'type': 'AttributeType' + }, + 'readCapacity': '*', + 'maxReadRequestUnits': '*', + 'maxWriteRequestUnits': '*', + 'warmThroughput': { + 'readUnitsPerSecond': '*', + 'writeUnitsPerSecond': '*' + }, + 'indexName': '*', + 'projectionType': 'ProjectionType', + 'nonKeyAttributes': '*' + }, + 'localSecondaryIndexes': { + 'sortKey': { + 'name': '*', + 'type': 'AttributeType' + }, + 'indexName': '*', + 'projectionType': 'ProjectionType', + 'nonKeyAttributes': '*' + }, + 'encryption': '*', + 'warmThroughput': { + 'readUnitsPerSecond': '*', + 'writeUnitsPerSecond': '*' + }, + 'contributorInsights': '*', + 'deletionProtection': '*', + 'pointInTimeRecovery': '*', + 'tableClass': 'TableClass', + 'kinesisStream': { + 'streamArn': '*', + 'streamName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'tags': { + 'key': '*', + 'value': '*' + }, + 'resourcePolicy': '*' + }, + 'Table': { + 'tableName': '*', + 'kinesisStream': { + 'streamArn': '*', + 'streamName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'kinesisPrecisionTimestamp': 'ApproximateCreationDateTimePrecision', + 'readCapacity': '*', + 'writeCapacity': '*', + 'maxReadRequestUnits': '*', + 'maxWriteRequestUnits': '*', + 'billingMode': 'BillingMode', + 'warmThroughput': { + 'readUnitsPerSecond': '*', + 'writeUnitsPerSecond': '*' + }, + 'pointInTimeRecovery': '*', + 'serverSideEncryption': '*', + 'tableClass': 'TableClass', + 'encryption': 'TableEncryption', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'timeToLiveAttribute': '*', + 'stream': 'StreamViewType', + 'removalPolicy': 'RemovalPolicy', + 'replicationRegions': '*', + 'replicationTimeout': '*', + 'waitForReplicationToFinish': '*', + 'contributorInsightsEnabled': '*', + 'deletionProtection': '*', + 'importSource': { + 'compressionType': 'InputCompressionType', + 'inputFormat': '*', + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'bucketOwner': '*', + 'keyPrefix': '*' + }, + 'resourcePolicy': '*', + 'partitionKey': { + 'name': '*', + 'type': 'AttributeType' + }, + 'sortKey': { + 'name': '*', + 'type': 'AttributeType' + } + } + }, + 'aws-cdk-lib.aws-ec2': { + 'BastionHostLinux': { + 'availabilityZone': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'instanceName': '*', + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'instanceType': '*', + 'machineImage': '*', + 'blockDevices': { + 'deviceName': '*', + 'volume': '*', + 'mappingEnabled': '*' + }, + 'init': '*', + 'initOptions': { + 'configSets': '*', + 'timeout': '*', + 'embedFingerprint': '*', + 'printLog': '*', + 'ignoreFailures': '*', + 'includeUrl': '*', + 'includeRole': '*' + }, + 'requireImdsv2': '*', + 'userDataCausesReplacement': '*' + }, + 'ClientVpnAuthorizationRule': { + 'clientVpnEndpoint': { + 'endpointId': '*', + 'targetNetworksAssociated': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'clientVpnEndoint': { + 'endpointId': '*', + 'targetNetworksAssociated': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'cidr': '*', + 'groupId': '*', + 'description': '*' + }, + 'ClientVpnEndpoint': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'cidr': '*', + 'clientCertificateArn': '*', + 'userBasedAuthentication': '*', + 'logging': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStream': { + 'logStreamName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'clientConnectionHandler': { + 'functionName': '*', + 'functionArn': '*' + }, + 'description': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'selfServicePortal': '*', + 'serverCertificateArn': '*', + 'splitTunnel': '*', + 'transportProtocol': 'TransportProtocol', + 'port': 'VpnPort', + 'dnsServers': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'authorizeAllUsersToVpcCidr': '*', + 'sessionTimeout': 'ClientVpnSessionTimeout', + 'clientLoginBanner': '*' + }, + 'ClientVpnRoute': { + 'clientVpnEndpoint': { + 'endpointId': '*', + 'targetNetworksAssociated': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'clientVpnEndoint': { + 'endpointId': '*', + 'targetNetworksAssociated': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'cidr': '*', + 'description': '*', + 'target': '*' + }, + 'Instance': { + 'keyName': '*', + 'keyPair': { + 'keyPairName': '*', + 'type': 'KeyPairType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'availabilityZone': '*', + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'resourceSignalTimeout': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'instanceType': '*', + 'machineImage': '*', + 'userData': '*', + 'userDataCausesReplacement': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'instanceProfile': { + 'instanceProfileName': '*', + 'instanceProfileArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'instanceName': '*', + 'sourceDestCheck': '*', + 'blockDevices': { + 'deviceName': '*', + 'volume': '*', + 'mappingEnabled': '*' + }, + 'privateIpAddress': '*', + 'propagateTagsToVolumeOnCreation': '*', + 'init': '*', + 'initOptions': { + 'configSets': '*', + 'timeout': '*', + 'embedFingerprint': '*', + 'printLog': '*', + 'ignoreFailures': '*', + 'includeUrl': '*', + 'includeRole': '*' + }, + 'requireImdsv2': '*', + 'detailedMonitoring': '*', + 'ssmSessionPermissions': '*', + 'associatePublicIpAddress': '*', + 'creditSpecification': 'CpuCredits', + 'ebsOptimized': '*', + 'disableApiTermination': '*', + 'instanceInitiatedShutdownBehavior': 'InstanceInitiatedShutdownBehavior', + 'placementGroup': { + 'placementGroupName': '*', + 'partitions': '*', + 'spreadLevel': 'PlacementGroupSpreadLevel', + 'strategy': 'PlacementGroupStrategy', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enclaveEnabled': '*', + 'hibernationEnabled': '*', + 'ipv6AddressCount': '*' + }, + 'LaunchTemplate': { + 'launchTemplateName': '*', + 'versionDescription': '*', + 'instanceType': '*', + 'machineImage': '*', + 'userData': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'blockDevices': { + 'deviceName': '*', + 'volume': '*', + 'mappingEnabled': '*' + }, + 'cpuCredits': 'CpuCredits', + 'disableApiTermination': '*', + 'ebsOptimized': '*', + 'nitroEnclaveEnabled': '*', + 'hibernationConfigured': '*', + 'instanceInitiatedShutdownBehavior': 'InstanceInitiatedShutdownBehavior', + 'spotOptions': { + 'blockDuration': '*', + 'interruptionBehavior': 'SpotInstanceInterruption', + 'maxPrice': '*', + 'requestType': 'SpotRequestType', + 'validUntil': '*' + }, + 'keyName': '*', + 'keyPair': { + 'keyPairName': '*', + 'type': 'KeyPairType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'detailedMonitoring': '*', + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'requireImdsv2': '*', + 'httpEndpoint': '*', + 'httpProtocolIpv6': '*', + 'httpPutResponseHopLimit': '*', + 'httpTokens': 'LaunchTemplateHttpTokens', + 'instanceMetadataTags': '*', + 'associatePublicIpAddress': '*', + 'instanceProfile': { + 'instanceProfileName': '*', + 'instanceProfileArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'NetworkAcl': { + 'networkAclName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'NetworkAclEntry': { + 'networkAcl': { + 'networkAclId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'networkAclEntryName': '*', + 'cidr': '*', + 'traffic': '*', + 'direction': 'TrafficDirection', + 'ruleAction': 'Action', + 'ruleNumber': '*' + }, + 'SubnetNetworkAclAssociation': { + 'subnetNetworkAclAssociationName': '*', + 'networkAcl': { + 'networkAclId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnet': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'SecurityGroup': { + 'securityGroupName': '*', + 'description': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'disableInlineRules': '*' + }, + 'Volume': { + 'volumeName': '*', + 'availabilityZone': '*', + 'size': '*', + 'snapshotId': '*', + 'enableMultiAttach': '*', + 'encrypted': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoEnableIo': '*', + 'volumeType': 'EbsDeviceVolumeType', + 'iops': '*', + 'removalPolicy': 'RemovalPolicy', + 'throughput': '*' + }, + 'VpcEndpointService': { + 'vpcEndpointServiceName': '*', + 'vpcEndpointServiceLoadBalancers': { + 'loadBalancerArn': '*' + }, + 'acceptanceRequired': '*', + 'contributorInsights': '*', + 'whitelistedPrincipals': '*', + 'allowedPrincipals': '*' + }, + 'GatewayVpcEndpoint': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'service': { + 'name': '*' + }, + 'subnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'InterfaceVpcEndpoint': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'service': { + 'name': '*', + 'port': '*', + 'privateDnsDefault': '*' + }, + 'privateDnsEnabled': '*', + 'subnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'open': '*', + 'lookupSupportedAzs': '*' + }, + 'FlowLog': { + 'flowLogName': '*', + 'resourceType': '*', + 'trafficType': 'FlowLogTrafficType', + 'destination': '*', + 'logFormat': '*', + 'maxAggregationInterval': 'FlowLogMaxAggregationInterval' + }, + 'Vpc': { + 'ipProtocol': 'IpProtocol', + 'ipAddresses': '*', + 'cidr': '*', + 'enableDnsHostnames': '*', + 'enableDnsSupport': '*', + 'defaultInstanceTenancy': 'DefaultInstanceTenancy', + 'maxAzs': '*', + 'reservedAzs': '*', + 'availabilityZones': '*', + 'natGateways': '*', + 'natGatewaySubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'natGatewayProvider': '*', + 'subnetConfiguration': { + 'cidrMask': '*', + 'subnetType': 'SubnetType', + 'name': '*', + 'reserved': '*', + 'mapPublicIpOnLaunch': '*', + 'ipv6AssignAddressOnCreation': '*' + }, + 'vpnGateway': '*', + 'vpnGatewayAsn': '*', + 'vpnConnections': '*', + 'vpnRoutePropagation': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'gatewayEndpoints': '*', + 'flowLogs': '*', + 'vpcName': '*', + 'restrictDefaultSecurityGroup': '*', + 'createInternetGateway': '*', + 'ipv6Addresses': { + 'amazonProvided': '*' + } + }, + 'Subnet': { + 'availabilityZone': '*', + 'vpcId': '*', + 'cidrBlock': '*', + 'mapPublicIpOnLaunch': '*', + 'ipv6CidrBlock': '*', + 'assignIpv6AddressOnCreation': '*' + }, + 'PublicSubnet': { + 'availabilityZone': '*', + 'vpcId': '*', + 'cidrBlock': '*', + 'mapPublicIpOnLaunch': '*', + 'ipv6CidrBlock': '*', + 'assignIpv6AddressOnCreation': '*' + }, + 'PrivateSubnet': { + 'availabilityZone': '*', + 'vpcId': '*', + 'cidrBlock': '*', + 'mapPublicIpOnLaunch': '*', + 'ipv6CidrBlock': '*', + 'assignIpv6AddressOnCreation': '*' + }, + 'ImportedVpc': { + 'vpcId': '*', + 'vpcCidrBlock': '*', + 'availabilityZones': '*', + 'publicSubnetIds': '*', + 'publicSubnetNames': '*', + 'publicSubnetRouteTableIds': '*', + 'publicSubnetIpv4CidrBlocks': '*', + 'privateSubnetIds': '*', + 'privateSubnetNames': '*', + 'privateSubnetRouteTableIds': '*', + 'privateSubnetIpv4CidrBlocks': '*', + 'isolatedSubnetIds': '*', + 'isolatedSubnetNames': '*', + 'isolatedSubnetRouteTableIds': '*', + 'isolatedSubnetIpv4CidrBlocks': '*', + 'vpnGatewayId': '*', + 'region': '*' + }, + 'LookedUpVpc': { + 'vpcId': '*', + 'vpcCidrBlock': '*', + 'availabilityZones': '*', + 'publicSubnetIds': '*', + 'publicSubnetNames': '*', + 'publicSubnetRouteTableIds': '*', + 'privateSubnetIds': '*', + 'privateSubnetNames': '*', + 'privateSubnetRouteTableIds': '*', + 'isolatedSubnetIds': '*', + 'isolatedSubnetNames': '*', + 'isolatedSubnetRouteTableIds': '*', + 'vpnGatewayId': '*', + 'subnetGroups': { + 'name': '*', + 'type': 'VpcSubnetGroupType', + 'subnets': { + 'subnetId': '*', + 'availabilityZone': '*', + 'routeTableId': '*', + 'cidr': '*' + } + }, + 'region': '*', + 'ownerAccountId': '*' + }, + 'ImportedSubnet': { + 'availabilityZone': '*', + 'ipv4CidrBlock': '*', + 'routeTableId': '*', + 'subnetId': '*' + }, + 'VpnGateway': { + 'type': '*', + 'amazonSideAsn': '*' + }, + 'VpnConnection': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ip': '*', + 'asn': '*', + 'staticRoutes': '*', + 'tunnelOptions': { + 'preSharedKey': '*', + 'preSharedKeySecret': '*', + 'tunnelInsideCidr': '*' + } + } + }, + 'aws-cdk-lib.aws-ecr': { + 'Repository': { + 'repositoryName': '*', + 'encryption': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'lifecycleRules': { + 'rulePriority': '*', + 'description': '*', + 'tagStatus': 'TagStatus', + 'tagPrefixList': '*', + 'tagPatternList': '*', + 'maxImageCount': '*', + 'maxImageAge': '*' + }, + 'lifecycleRegistryId': '*', + 'removalPolicy': 'RemovalPolicy', + 'imageScanOnPush': '*', + 'imageTagMutability': 'TagMutability', + 'autoDeleteImages': '*', + 'emptyOnDelete': '*' + } + }, + 'aws-cdk-lib.aws-ecs': { + 'Cluster': { + 'clusterName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'defaultCloudMapNamespace': { + 'name': '*', + 'type': 'NamespaceType', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'useForServiceConnect': '*' + }, + 'capacity': { + 'instanceType': '*', + 'machineImage': '*', + 'canContainersAccessInstanceRole': '*', + 'taskDrainTime': '*', + 'spotInstanceDraining': '*', + 'topicEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'machineImageType': 'MachineImageType', + 'minCapacity': '*', + 'maxCapacity': '*', + 'desiredCapacity': '*', + 'keyName': '*', + 'keyPair': { + 'keyPairName': '*', + 'type': 'KeyPairType' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + } + } + }, + 'notificationsTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*' + }, + 'notifications': { + 'scalingEvents': '*' + }, + 'allowAllOutbound': '*', + 'updateType': 'UpdateType', + 'rollingUpdateConfiguration': { + 'maxBatchSize': '*', + 'minInstancesInService': '*', + 'minSuccessfulInstancesPercent': '*', + 'waitOnResourceSignals': '*', + 'suspendProcesses': 'ScalingProcess' + }, + 'replacingUpdateMinSuccessfulInstancesPercent': '*', + 'ignoreUnmodifiedSizeProperties': '*', + 'resourceSignalCount': '*', + 'associatePublicIpAddress': '*', + 'spotPrice': '*', + 'healthCheck': '*', + 'blockDevices': { + 'deviceName': '*', + 'volume': '*', + 'mappingEnabled': '*' + }, + 'instanceMonitoring': 'Monitoring', + 'groupMetrics': '*', + 'signals': '*', + 'updatePolicy': '*', + 'newInstancesProtectedFromScaleIn': '*', + 'autoScalingGroupName': '*', + 'terminationPolicies': 'TerminationPolicy', + 'terminationPolicyCustomLambdaFunctionArn': '*', + 'capacityRebalance': '*', + 'ssmSessionPermissions': '*', + 'azCapacityDistributionStrategy': 'CapacityDistributionStrategy' + }, + 'capacityProviders': '*', + 'enableFargateCapacityProviders': '*', + 'containerInsights': '*', + 'containerInsightsV2': 'ContainerInsights', + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + }, + 'managedStorageConfiguration': { + 'fargateEphemeralStorageKmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'ImportedCluster': { + 'clusterName': '*', + 'clusterArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'hasEc2Capacity': '*', + 'defaultCloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoscalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + } + } + }, + 'aws-cdk-lib.aws-efs': { + 'AccessPoint': { + 'fileSystem': { + 'fileSystemId': '*', + 'fileSystemArn': '*', + 'mountTargetsAvailable': '*', + 'connections': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'createAcl': { + 'ownerUid': '*', + 'ownerGid': '*', + 'permissions': '*' + }, + 'path': '*', + 'posixUser': { + 'uid': '*', + 'gid': '*', + 'secondaryGids': '*' + }, + 'clientToken': '*' + }, + 'ImportedAccessPoint': { + 'accessPointId': '*', + 'accessPointArn': '*', + 'fileSystem': { + 'fileSystemId': '*', + 'fileSystemArn': '*', + 'mountTargetsAvailable': '*', + 'connections': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'FileSystem': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'encrypted': '*', + 'fileSystemName': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'lifecyclePolicy': 'LifecyclePolicy', + 'outOfInfrequentAccessPolicy': 'OutOfInfrequentAccessPolicy', + 'transitionToArchivePolicy': 'LifecyclePolicy', + 'performanceMode': 'PerformanceMode', + 'throughputMode': 'ThroughputMode', + 'provisionedThroughputPerSecond': '*', + 'removalPolicy': 'RemovalPolicy', + 'enableAutomaticBackups': '*', + 'fileSystemPolicy': '*', + 'allowAnonymousAccess': '*', + 'oneZone': '*', + 'replicationOverwriteProtection': 'ReplicationOverwriteProtection', + 'replicationConfiguration': '*' + }, + 'ImportedFileSystem': { + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'fileSystemId': '*', + 'fileSystemArn': '*' + } + }, + 'aws-cdk-lib.aws-eks': { + 'AccessEntry': { + 'accessEntryName': '*', + 'accessEntryType': 'AccessEntryType', + 'cluster': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clusterName': '*', + 'clusterArn': '*', + 'clusterEndpoint': '*', + 'clusterCertificateAuthorityData': '*', + 'clusterSecurityGroupId': '*', + 'clusterSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'clusterEncryptionConfigKeyArn': '*', + 'openIdConnectProvider': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*' + }, + 'eksPodIdentityAgent': { + 'addonName': '*', + 'addonArn': '*' + }, + 'kubectlRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*' + }, + 'ipFamily': 'IpFamily', + 'kubectlProvider': { + 'serviceToken': '*', + 'roleArn': '*' + }, + 'kubectlMemory': '*', + 'prune': '*', + 'authenticationMode': 'AuthenticationMode' + }, + 'accessPolicies': { + 'accessScope': { + 'namespaces': '*', + 'type': 'AccessScopeType' + }, + 'policy': '*' + }, + 'principal': '*' + }, + 'Addon': { + 'addonName': '*', + 'addonVersion': '*', + 'cluster': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clusterName': '*', + 'clusterArn': '*', + 'clusterEndpoint': '*', + 'clusterCertificateAuthorityData': '*', + 'clusterSecurityGroupId': '*', + 'clusterSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'clusterEncryptionConfigKeyArn': '*', + 'openIdConnectProvider': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*' + }, + 'eksPodIdentityAgent': { + 'addonName': '*', + 'addonArn': '*' + }, + 'kubectlRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*' + }, + 'ipFamily': 'IpFamily', + 'kubectlProvider': { + 'serviceToken': '*', + 'roleArn': '*' + }, + 'kubectlMemory': '*', + 'prune': '*', + 'authenticationMode': 'AuthenticationMode' + }, + 'preserveOnDelete': '*' + }, + 'Cluster': { + 'defaultCapacity': '*', + 'defaultCapacityInstance': '*', + 'defaultCapacityType': 'DefaultCapacityType', + 'kubectlLambdaRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'bootstrapClusterCreatorAdminPermissions': '*', + 'tags': '*', + 'mastersRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'coreDnsComputeType': 'CoreDnsComputeType', + 'outputMastersRoleArn': '*', + 'endpointAccess': '*', + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'awscliLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kubectlMemory': '*', + 'clusterHandlerEnvironment': '*', + 'clusterHandlerSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'onEventLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'prune': '*', + 'placeClusterHandlerInVpc': '*', + 'secretsEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'ipFamily': 'IpFamily', + 'serviceIpv4Cidr': '*', + 'albController': { + 'version': '*', + 'repository': '*', + 'policy': '*' + }, + 'clusterLogging': 'ClusterLoggingTypes', + 'authenticationMode': 'AuthenticationMode', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'clusterName': '*', + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'version': '*', + 'outputClusterName': '*', + 'outputConfigCommand': '*' + }, + 'ImportedCluster': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clusterName': '*', + 'clusterEndpoint': '*', + 'clusterCertificateAuthorityData': '*', + 'clusterSecurityGroupId': '*', + 'clusterEncryptionConfigKeyArn': '*', + 'ipFamily': 'IpFamily', + 'securityGroupIds': '*', + 'kubectlRoleArn': '*', + 'kubectlLambdaRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kubectlEnvironment': '*', + 'kubectlSecurityGroupId': '*', + 'kubectlPrivateSubnetIds': '*', + 'openIdConnectProvider': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'awscliLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kubectlProvider': { + 'serviceToken': '*', + 'roleArn': '*', + 'handlerRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'kubectlMemory': '*', + 'clusterHandlerSecurityGroupId': '*', + 'onEventLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'prune': '*' + }, + 'FargateCluster': { + 'defaultProfile': { + 'fargateProfileName': '*', + 'podExecutionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'selectors': { + 'namespace': '*', + 'labels': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + } + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*' + } + }, + 'mastersRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'coreDnsComputeType': 'CoreDnsComputeType', + 'outputMastersRoleArn': '*', + 'endpointAccess': '*', + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'awscliLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kubectlMemory': '*', + 'clusterHandlerEnvironment': '*', + 'clusterHandlerSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'onEventLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'prune': '*', + 'placeClusterHandlerInVpc': '*', + 'secretsEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'ipFamily': 'IpFamily', + 'serviceIpv4Cidr': '*', + 'albController': { + 'version': '*', + 'repository': '*', + 'policy': '*' + }, + 'clusterLogging': 'ClusterLoggingTypes', + 'authenticationMode': 'AuthenticationMode', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'clusterName': '*', + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'version': '*', + 'outputClusterName': '*', + 'outputConfigCommand': '*' + }, + 'Nodegroup': { + 'cluster': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clusterName': '*', + 'clusterArn': '*', + 'clusterEndpoint': '*', + 'clusterCertificateAuthorityData': '*', + 'clusterSecurityGroupId': '*', + 'clusterSecurityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'clusterEncryptionConfigKeyArn': '*', + 'openIdConnectProvider': { + 'openIdConnectProviderArn': '*', + 'openIdConnectProviderIssuer': '*' + }, + 'eksPodIdentityAgent': { + 'addonName': '*', + 'addonArn': '*' + }, + 'kubectlRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + } + }, + 'kubectlEnvironment': '*', + 'kubectlLayer': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*' + }, + 'ipFamily': 'IpFamily', + 'kubectlProvider': { + 'serviceToken': '*', + 'roleArn': '*' + }, + 'kubectlMemory': '*', + 'prune': '*', + 'authenticationMode': 'AuthenticationMode' + }, + 'nodegroupName': '*', + 'subnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'amiType': 'NodegroupAmiType', + 'diskSize': '*', + 'desiredSize': '*', + 'maxSize': '*', + 'minSize': '*', + 'forceUpdate': '*', + 'instanceType': '*', + 'instanceTypes': '*', + 'labels': '*', + 'taints': { + 'effect': 'TaintEffect', + 'key': '*', + 'value': '*' + }, + 'nodeRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'releaseVersion': '*', + 'remoteAccess': { + 'sshKeyName': '*', + 'sourceSecurityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + } + }, + 'tags': '*', + 'launchTemplateSpec': { + 'id': '*', + 'version': '*' + }, + 'capacityType': 'CapacityType', + 'maxUnavailable': '*', + 'maxUnavailablePercentage': '*' + }, + 'OpenIdConnectProvider': { + 'url': '*' + } + }, + 'aws-cdk-lib.aws-elasticloadbalancing': { + 'LoadBalancer': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'internetFacing': '*', + 'listeners': { + 'externalPort': '*', + 'externalProtocol': 'LoadBalancingProtocol', + 'internalPort': '*', + 'internalProtocol': 'LoadBalancingProtocol', + 'policyNames': '*', + 'sslCertificateId': '*', + 'sslCertificateArn': '*', + 'allowConnectionsFrom': { + 'connections': '*' + } + }, + 'targets': { + 'connections': '*' + }, + 'healthCheck': { + 'port': '*', + 'protocol': 'LoadBalancingProtocol', + 'path': '*', + 'healthyThreshold': '*', + 'unhealthyThreshold': '*', + 'interval': '*' + }, + 'crossZone': '*', + 'subnetSelection': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'accessLoggingPolicy': { + 'emitInterval': '*', + 'enabled': '*', + 's3BucketName': '*', + 's3BucketPrefix': '*' + } + } + }, + 'aws-cdk-lib.aws-elasticsearch': { + 'Domain': { + 'accessPolicies': '*', + 'advancedOptions': '*', + 'cognitoKibanaAuth': { + 'identityPoolId': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'userPoolId': '*' + }, + 'domainName': '*', + 'ebs': { + 'enabled': '*', + 'iops': '*', + 'volumeSize': '*', + 'volumeType': 'EbsDeviceVolumeType' + }, + 'capacity': { + 'masterNodes': '*', + 'masterNodeInstanceType': '*', + 'dataNodes': '*', + 'dataNodeInstanceType': '*', + 'warmNodes': '*', + 'warmInstanceType': '*' + }, + 'zoneAwareness': { + 'enabled': '*', + 'availabilityZoneCount': '*' + }, + 'version': '*', + 'encryptionAtRest': { + 'enabled': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'logging': { + 'slowSearchLogEnabled': '*', + 'slowSearchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'slowIndexLogEnabled': '*', + 'appLogEnabled': '*', + 'auditLogEnabled': '*' + }, + 'nodeToNodeEncryption': '*', + 'automatedSnapshotStartHour': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'enforceHttps': '*', + 'tlsSecurityPolicy': 'TLSSecurityPolicy', + 'fineGrainedAccessControl': { + 'masterUserArn': '*', + 'masterUserName': '*', + 'masterUserPassword': '*' + }, + 'useUnsignedBasicAuth': '*', + 'enableVersionUpgrade': '*', + 'removalPolicy': 'RemovalPolicy', + 'customEndpoint': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'hostedZone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*' + } + } + } + }, + 'aws-cdk-lib.aws-events': { + 'ApiDestination': { + 'apiDestinationName': '*', + 'description': '*', + 'connection': { + 'connectionName': '*', + 'connectionArn': '*', + 'connectionSecretArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpoint': '*', + 'httpMethod': 'HttpMethod', + 'rateLimitPerSecond': '*' + }, + 'Archive': { + 'sourceEventBus': { + 'eventBusName': '*', + 'eventBusArn': '*', + 'eventBusPolicy': '*', + 'eventSourceName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'archiveName': '*', + 'description': '*', + 'eventPattern': { + 'version': '*', + 'id': '*', + 'detailType': '*', + 'source': '*', + 'account': '*', + 'time': '*', + 'region': '*', + 'resources': '*', + 'detail': '*' + }, + 'retention': '*' + }, + 'Connection': { + 'connectionName': '*', + 'description': '*', + 'authorization': '*', + 'bodyParameters': '*', + 'headerParameters': '*', + 'queryStringParameters': '*' + }, + 'ImportedConnection': { + 'connectionName': '*', + 'connectionArn': '*', + 'connectionSecretArn': '*' + }, + 'ImportedEventBus': { + 'eventBusName': '*', + 'eventBusArn': '*', + 'eventBusPolicy': '*', + 'eventSourceName': '*' + }, + 'EventBusPolicy': { + 'eventBus': { + 'eventBusName': '*', + 'eventBusArn': '*', + 'eventBusPolicy': '*', + 'eventSourceName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'statement': '*', + 'statementId': '*' + }, + 'Rule': { + 'enabled': '*', + 'schedule': '*', + 'targets': '*', + 'eventBus': { + 'eventBusName': '*', + 'eventBusArn': '*', + 'eventBusPolicy': '*', + 'eventSourceName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'description': '*', + 'ruleName': '*', + 'eventPattern': { + 'version': '*', + 'id': '*', + 'detailType': '*', + 'source': '*', + 'account': '*', + 'time': '*', + 'region': '*', + 'resources': '*', + 'detail': '*' + }, + 'crossStackScope': '*' + }, + 'MirrorRule': { + 'enabled': '*', + 'schedule': '*', + 'targets': '*', + 'eventBus': { + 'eventBusName': '*', + 'eventBusArn': '*', + 'eventBusPolicy': '*', + 'eventSourceName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'description': '*', + 'ruleName': '*', + 'eventPattern': { + 'version': '*', + 'id': '*', + 'detailType': '*', + 'source': '*', + 'account': '*', + 'time': '*', + 'region': '*', + 'resources': '*', + 'detail': '*' + }, + 'crossStackScope': '*' + } + }, + 'aws-cdk-lib.aws-fsx': { + 'LustreFileSystem': { + 'lustreConfiguration': { + 'deploymentType': 'LustreDeploymentType', + 'exportPath': '*', + 'importedFileChunkSizeMiB': '*', + 'importPath': '*', + 'autoImportPolicy': 'LustreAutoImportPolicy', + 'dataCompressionType': 'LustreDataCompressionType', + 'perUnitStorageThroughput': '*', + 'weeklyMaintenanceStartTime': '*', + 'automaticBackupRetention': '*', + 'copyTagsToBackups': '*', + 'dailyAutomaticBackupStartTime': '*', + 'driveCacheType': 'DriveCacheType' + }, + 'fileSystemTypeVersion': 'FileSystemTypeVersion', + 'vpcSubnet': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'backupId': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'storageCapacityGiB': '*', + 'removalPolicy': 'RemovalPolicy', + 'storageType': 'StorageType' + } + }, + 'aws-cdk-lib.aws-globalaccelerator': { + 'Accelerator': { + 'acceleratorName': '*', + 'enabled': '*', + 'ipAddresses': '*', + 'ipAddressType': 'IpAddressType' + }, + 'EndpointGroup': { + 'listener': { + 'listenerArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'endpointGroupName': '*', + 'region': '*', + 'healthCheckInterval': '*', + 'healthCheckPath': '*', + 'healthCheckPort': '*', + 'healthCheckProtocol': 'HealthCheckProtocol', + 'healthCheckThreshold': '*', + 'trafficDialPercentage': '*', + 'portOverrides': { + 'listenerPort': '*', + 'endpointPort': '*' + }, + 'endpoints': { + 'region': '*' + } + }, + 'Listener': { + 'accelerator': { + 'acceleratorArn': '*', + 'dnsName': '*', + 'dualStackDnsName': '*', + 'ipv4Addresses': '*', + 'ipv6Addresses': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'listenerName': '*', + 'portRanges': { + 'fromPort': '*', + 'toPort': '*' + }, + 'protocol': 'ConnectionProtocol', + 'clientAffinity': 'ClientAffinity' + } + }, + 'aws-cdk-lib.aws-iam': { + 'AccessKey': { + 'serial': '*', + 'status': 'AccessKeyStatus', + 'user': { + 'userName': '*', + 'userArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'Group': { + 'groupName': '*', + 'managedPolicies': { + 'managedPolicyArn': '*' + }, + 'path': '*' + }, + 'InstanceProfile': { + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'instanceProfileName': '*', + 'path': '*' + }, + 'LazyRole': { + 'assumedBy': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'externalId': '*', + 'externalIds': '*', + 'managedPolicies': { + 'managedPolicyArn': '*' + }, + 'inlinePolicies': '*', + 'path': '*', + 'permissionsBoundary': { + 'managedPolicyArn': '*' + }, + 'roleName': '*', + 'maxSessionDuration': '*', + 'description': '*' + }, + 'ManagedPolicy': { + 'managedPolicyName': '*', + 'description': '*', + 'path': '*', + 'users': { + 'userName': '*', + 'userArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'roles': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'groups': { + 'groupName': '*', + 'groupArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'statements': '*', + 'document': '*' + }, + 'OpenIdConnectProvider': { + 'url': '*', + 'clientIds': '*', + 'thumbprints': '*' + }, + 'Policy': { + 'policyName': '*', + 'users': { + 'userName': '*', + 'userArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'roles': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'groups': { + 'groupName': '*', + 'groupArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'statements': '*', + 'force': '*', + 'document': '*' + }, + 'Role': { + 'assumedBy': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'externalId': '*', + 'externalIds': '*', + 'managedPolicies': { + 'managedPolicyArn': '*' + }, + 'inlinePolicies': '*', + 'path': '*', + 'permissionsBoundary': { + 'managedPolicyArn': '*' + }, + 'roleName': '*', + 'maxSessionDuration': '*', + 'description': '*' + }, + 'SamlProvider': { + 'name': '*', + 'metadataDocument': '*' + }, + 'User': { + 'groups': { + 'groupName': '*', + 'groupArn': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'managedPolicies': { + 'managedPolicyArn': '*' + }, + 'path': '*', + 'permissionsBoundary': { + 'managedPolicyArn': '*' + }, + 'userName': '*', + 'password': '*', + 'passwordResetRequired': '*' + } + }, + 'aws-cdk-lib.aws-kinesis': { + 'ResourcePolicy': { + 'stream': { + 'streamArn': '*', + 'streamName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'policyDocument': '*' + }, + 'Stream': { + 'streamName': '*', + 'retentionPeriod': '*', + 'shardCount': '*', + 'encryption': 'StreamEncryption', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'streamMode': 'StreamMode', + 'removalPolicy': 'RemovalPolicy' + } + }, + 'aws-cdk-lib.aws-kms': { + 'Alias': { + 'aliasName': '*', + 'targetKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'removalPolicy': 'RemovalPolicy' + }, + 'Key': { + 'description': '*', + 'alias': '*', + 'enableKeyRotation': '*', + 'rotationPeriod': '*', + 'enabled': '*', + 'keySpec': 'KeySpec', + 'keyUsage': 'KeyUsage', + 'multiRegion': '*', + 'policy': '*', + 'admins': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'trustAccountIdentities': '*', + 'pendingWindow': '*' + } + }, + 'aws-cdk-lib.aws-lambda': { + 'Alias': { + 'aliasName': '*', + 'version': { + 'version': '*', + 'lambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'resourceArnsForGrantInvoke': '*' + }, + 'description': '*', + 'additionalVersions': { + 'version': { + 'version': '*', + 'lambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'resourceArnsForGrantInvoke': '*' + }, + 'weight': '*' + }, + 'provisionedConcurrentExecutions': '*', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'CodeSigningConfig': { + 'signingProfiles': { + 'signingProfileArn': '*', + 'signingProfileName': '*', + 'signingProfileVersion': '*', + 'signingProfileVersionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'untrustedArtifactOnDeployment': 'UntrustedArtifactOnDeployment', + 'description': '*' + }, + 'EventInvokeConfig': { + 'function': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'qualifier': '*', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'EventSourceMapping': { + 'target': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'eventSourceArn': '*', + 'batchSize': '*', + 'bisectBatchOnError': '*', + 'onFailure': '*', + 'enabled': '*', + 'startingPosition': 'StartingPosition', + 'startingPositionTimestamp': '*', + 'reportBatchItemFailures': '*', + 'maxBatchingWindow': '*', + 'maxConcurrency': '*', + 'maxRecordAge': '*', + 'retryAttempts': '*', + 'parallelizationFactor': '*', + 'kafkaTopic': '*', + 'tumblingWindow': '*', + 'kafkaBootstrapServers': '*', + 'kafkaConsumerGroupId': '*', + 'sourceAccessConfigurations': { + 'type': '*', + 'uri': '*' + }, + 'filters': '*', + 'filterEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'supportS3OnFailureDestination': '*', + 'provisionedPollerConfig': { + 'minimumPollers': '*', + 'maximumPollers': '*' + }, + 'metricsConfig': { + 'metrics': 'MetricType' + } + }, + 'FunctionUrl': { + 'function': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'authType': 'FunctionUrlAuthType', + 'cors': { + 'allowCredentials': '*', + 'allowedHeaders': '*', + 'allowedMethods': 'HttpMethod', + 'allowedOrigins': '*', + 'exposedHeaders': '*', + 'maxAge': '*' + }, + 'invokeMode': 'InvokeMode' + }, + 'Function': { + 'runtime': '*', + 'code': '*', + 'handler': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'DockerImageFunction': { + 'code': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'Version': { + 'lambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'LayerVersion': { + 'compatibleRuntimes': '*', + 'compatibleArchitectures': '*', + 'code': '*', + 'description': '*', + 'license': '*', + 'layerVersionName': '*', + 'removalPolicy': 'RemovalPolicy' + }, + 'SingletonFunction': { + 'uuid': '*', + 'lambdaPurpose': '*', + 'runtime': '*', + 'code': '*', + 'handler': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + } + }, + 'aws-cdk-lib.aws-lambda-nodejs': { + 'NodejsFunction': { + 'entry': '*', + 'handler': '*', + 'runtime': '*', + 'awsSdkConnectionReuse': '*', + 'depsLockFilePath': '*', + 'bundling': { + 'minify': '*', + 'sourceMap': '*', + 'sourceMapMode': 'SourceMapMode', + 'sourcesContent': '*', + 'target': '*', + 'loader': '*', + 'logLevel': 'LogLevel', + 'keepNames': '*', + 'tsconfig': '*', + 'metafile': '*', + 'banner': '*', + 'footer': '*', + 'charset': 'Charset', + 'define': '*', + 'externalModules': '*', + 'bundleAwsSDK': '*', + 'nodeModules': '*', + 'esbuildVersion': '*', + 'esbuildArgs': '*', + 'buildArgs': '*', + 'forceDockerBundling': '*', + 'preCompilation': '*', + 'dockerImage': '*', + 'commandHooks': '*', + 'assetHash': '*', + 'format': 'OutputFormat', + 'mainFields': '*', + 'inject': '*', + 'bundlingFileAccess': 'BundlingFileAccess', + 'entrypoint': '*', + 'command': '*', + 'volumes': { + 'hostPath': '*', + 'containerPath': '*', + 'consistency': 'DockerVolumeConsistency' + }, + 'volumesFrom': '*', + 'environment': '*', + 'workingDirectory': '*', + 'user': '*', + 'securityOpt': '*', + 'network': '*', + 'platform': '*' + }, + 'projectRoot': '*', + 'code': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + } + }, + 'aws-cdk-lib.aws-logs': { + 'CrossAccountDestination': { + 'destinationName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'targetArn': '*' + }, + 'LogGroup': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logGroupName': '*', + 'dataProtectionPolicy': '*', + 'retention': 'RetentionDays', + 'logGroupClass': 'LogGroupClass', + 'removalPolicy': 'RemovalPolicy' + }, + 'LogStream': { + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamName': '*', + 'removalPolicy': 'RemovalPolicy' + }, + 'MetricFilter': { + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'filterPattern': { + 'logPatternString': '*' + }, + 'metricNamespace': '*', + 'metricName': '*', + 'metricValue': '*', + 'defaultValue': '*', + 'dimensions': '*', + 'unit': 'Unit', + 'filterName': '*' + }, + 'QueryDefinition': { + 'queryDefinitionName': '*', + 'queryString': '*', + 'logGroups': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'SubscriptionFilter': { + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'destination': '*', + 'filterPattern': { + 'logPatternString': '*' + }, + 'filterName': '*', + 'distribution': 'Distribution' + } + }, + 'aws-cdk-lib.aws-opensearchservice': { + 'Domain': { + 'accessPolicies': '*', + 'advancedOptions': '*', + 'cognitoDashboardsAuth': { + 'identityPoolId': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'userPoolId': '*' + }, + 'domainName': '*', + 'ebs': { + 'enabled': '*', + 'iops': '*', + 'throughput': '*', + 'volumeSize': '*', + 'volumeType': 'EbsDeviceVolumeType' + }, + 'capacity': { + 'masterNodes': '*', + 'masterNodeInstanceType': '*', + 'dataNodes': '*', + 'dataNodeInstanceType': '*', + 'warmNodes': '*', + 'warmInstanceType': '*', + 'multiAzWithStandbyEnabled': '*' + }, + 'zoneAwareness': { + 'enabled': '*', + 'availabilityZoneCount': '*' + }, + 'version': '*', + 'encryptionAtRest': { + 'enabled': '*', + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'logging': { + 'slowSearchLogEnabled': '*', + 'slowSearchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'slowIndexLogEnabled': '*', + 'appLogEnabled': '*', + 'auditLogEnabled': '*' + }, + 'nodeToNodeEncryption': '*', + 'automatedSnapshotStartHour': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'enforceHttps': '*', + 'tlsSecurityPolicy': 'TLSSecurityPolicy', + 'fineGrainedAccessControl': { + 'masterUserArn': '*', + 'masterUserName': '*', + 'masterUserPassword': '*', + 'samlAuthenticationEnabled': '*', + 'samlAuthenticationOptions': { + 'idpEntityId': '*', + 'idpMetadataContent': '*', + 'masterUserName': '*', + 'masterBackendRole': '*', + 'rolesKey': '*', + 'subjectKey': '*', + 'sessionTimeoutMinutes': '*' + } + }, + 'useUnsignedBasicAuth': '*', + 'enableVersionUpgrade': '*', + 'removalPolicy': 'RemovalPolicy', + 'customEndpoint': { + 'domainName': '*', + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'hostedZone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*' + } + }, + 'offPeakWindowEnabled': '*', + 'offPeakWindowStart': { + 'hours': '*', + 'minutes': '*' + }, + 'enableAutoSoftwareUpdate': '*', + 'ipAddressType': 'IpAddressType', + 'suppressLogsResourcePolicy': '*', + 'coldStorageEnabled': '*' + } + }, + 'aws-cdk-lib.aws-rds': { + 'AuroraClusterInstance': { + 'cluster': { + 'clusterIdentifier': '*', + 'clusterResourceIdentifier': '*', + 'instanceIdentifiers': '*', + 'clusterEndpoint': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'clusterArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'instanceType': '*', + 'promotionTier': '*', + 'instanceIdentifier': '*', + 'autoMinorVersionUpgrade': '*', + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'publiclyAccessible': '*', + 'preferredMaintenanceWindow': '*', + 'parameters': '*', + 'allowMajorVersionUpgrade': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isFromLegacyInstanceProps': '*', + 'caCertificate': '*', + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'removalPolicy': 'RemovalPolicy', + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'ImportedDatabaseCluster': { + 'clusterIdentifier': '*', + 'clusterResourceIdentifier': '*', + 'port': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'instanceIdentifiers': '*', + 'clusterEndpointAddress': '*', + 'readerEndpointAddress': '*', + 'instanceEndpointAddresses': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'secret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'dataApiEnabled': '*' + }, + 'DatabaseCluster': { + 'credentials': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'instances': '*', + 'instanceProps': { + 'instanceType': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'parameterGroup': '*', + 'parameters': '*', + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'allowMajorVersionUpgrade': '*', + 'deleteAutomatedBackups': '*', + 'publiclyAccessible': '*', + 'preferredMaintenanceWindow': '*' + }, + 'writer': '*', + 'readers': '*', + 'serverlessV2MaxCapacity': '*', + 'serverlessV2MinCapacity': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'instanceUpdateBehaviour': 'InstanceUpdateBehaviour', + 'backtrackWindow': '*', + 'backup': { + 'retention': '*', + 'preferredWindow': '*' + }, + 'port': '*', + 'clusterIdentifier': '*', + 'instanceIdentifierBase': '*', + 'defaultDatabaseName': '*', + 'deletionProtection': '*', + 'preferredMaintenanceWindow': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'parameters': '*', + 'removalPolicy': 'RemovalPolicy', + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enableClusterLevelEnhancedMonitoring': '*', + 's3ImportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3ExportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ExportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'iamAuthentication': '*', + 'storageEncrypted': '*', + 'storageEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'storageType': 'DBClusterStorageType', + 'copyTagsToSnapshot': '*', + 'networkType': 'NetworkType', + 'domain': '*', + 'domainRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enableDataApi': '*', + 'enableLocalWriteForwarding': '*', + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'clusterScalabilityType': 'ClusterScalabilityType', + 'clusterScailabilityType': 'ClusterScailabilityType' + }, + 'DatabaseClusterFromSnapshot': { + 'snapshotIdentifier': '*', + 'credentials': '*', + 'snapshotCredentials': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'instances': '*', + 'instanceProps': { + 'instanceType': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'parameterGroup': '*', + 'parameters': '*', + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'allowMajorVersionUpgrade': '*', + 'deleteAutomatedBackups': '*', + 'publiclyAccessible': '*', + 'preferredMaintenanceWindow': '*' + }, + 'writer': '*', + 'readers': '*', + 'serverlessV2MaxCapacity': '*', + 'serverlessV2MinCapacity': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'instanceUpdateBehaviour': 'InstanceUpdateBehaviour', + 'backtrackWindow': '*', + 'backup': { + 'retention': '*', + 'preferredWindow': '*' + }, + 'port': '*', + 'clusterIdentifier': '*', + 'instanceIdentifierBase': '*', + 'defaultDatabaseName': '*', + 'deletionProtection': '*', + 'preferredMaintenanceWindow': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'parameters': '*', + 'removalPolicy': 'RemovalPolicy', + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enableClusterLevelEnhancedMonitoring': '*', + 's3ImportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3ExportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ExportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'iamAuthentication': '*', + 'storageEncrypted': '*', + 'storageEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'storageType': 'DBClusterStorageType', + 'copyTagsToSnapshot': '*', + 'networkType': 'NetworkType', + 'domain': '*', + 'domainRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enableDataApi': '*', + 'enableLocalWriteForwarding': '*', + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'clusterScalabilityType': 'ClusterScalabilityType', + 'clusterScailabilityType': 'ClusterScailabilityType' + }, + 'DatabaseSecret': { + 'username': '*', + 'dbname': '*', + 'secretName': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'masterSecret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'excludeCharacters': '*', + 'replaceOnPasswordCriteriaChanges': '*', + 'replicaRegions': { + 'region': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'DatabaseInstance': { + 'credentials': '*', + 'characterSetName': '*', + 'storageEncrypted': '*', + 'storageEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'engine': { + 'singleUserRotationApplication': '*', + 'supportsReadReplicaBackups': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'instanceType': '*', + 'licenseModel': 'LicenseModel', + 'allowMajorVersionUpgrade': '*', + 'timezone': '*', + 'allocatedStorage': '*', + 'databaseName': '*', + 'parameters': '*', + 'multiAz': '*', + 'availabilityZone': '*', + 'storageType': 'StorageType', + 'storageThroughput': '*', + 'iops': '*', + 'processorFeatures': { + 'coreCount': '*', + 'threadsPerCore': '*' + }, + 'instanceIdentifier': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcPlacement': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'port': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'optionGroup': { + 'optionGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'iamAuthentication': '*', + 'backupRetention': '*', + 'preferredBackupWindow': '*', + 'copyTagsToSnapshot': '*', + 'deleteAutomatedBackups': '*', + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'preferredMaintenanceWindow': '*', + 'deletionProtection': '*', + 'removalPolicy': 'RemovalPolicy', + 'maxAllocatedStorage': '*', + 'domain': '*', + 'domainRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3ExportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ExportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'publiclyAccessible': '*', + 'networkType': 'NetworkType', + 'caCertificate': '*' + }, + 'DatabaseInstanceFromSnapshot': { + 'snapshotIdentifier': '*', + 'credentials': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportsReadReplicaBackups': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'instanceType': '*', + 'licenseModel': 'LicenseModel', + 'allowMajorVersionUpgrade': '*', + 'timezone': '*', + 'allocatedStorage': '*', + 'databaseName': '*', + 'parameters': '*', + 'multiAz': '*', + 'availabilityZone': '*', + 'storageType': 'StorageType', + 'storageThroughput': '*', + 'iops': '*', + 'processorFeatures': { + 'coreCount': '*', + 'threadsPerCore': '*' + }, + 'instanceIdentifier': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcPlacement': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'port': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'optionGroup': { + 'optionGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'iamAuthentication': '*', + 'backupRetention': '*', + 'preferredBackupWindow': '*', + 'copyTagsToSnapshot': '*', + 'deleteAutomatedBackups': '*', + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'preferredMaintenanceWindow': '*', + 'deletionProtection': '*', + 'removalPolicy': 'RemovalPolicy', + 'maxAllocatedStorage': '*', + 'domain': '*', + 'domainRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3ExportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ExportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'publiclyAccessible': '*', + 'networkType': 'NetworkType', + 'caCertificate': '*' + }, + 'DatabaseInstanceReadReplica': { + 'instanceType': '*', + 'sourceDatabaseInstance': { + 'instanceIdentifier': '*', + 'instanceArn': '*', + 'dbInstanceEndpointAddress': '*', + 'dbInstanceEndpointPort': '*', + 'instanceResourceId': '*', + 'instanceEndpoint': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportsReadReplicaBackups': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'connections': '*' + }, + 'storageEncrypted': '*', + 'storageEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'allocatedStorage': '*', + 'multiAz': '*', + 'availabilityZone': '*', + 'storageType': 'StorageType', + 'storageThroughput': '*', + 'iops': '*', + 'processorFeatures': { + 'coreCount': '*', + 'threadsPerCore': '*' + }, + 'instanceIdentifier': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcPlacement': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'port': '*', + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'optionGroup': { + 'optionGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'iamAuthentication': '*', + 'backupRetention': '*', + 'preferredBackupWindow': '*', + 'copyTagsToSnapshot': '*', + 'deleteAutomatedBackups': '*', + 'monitoringInterval': '*', + 'monitoringRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enablePerformanceInsights': '*', + 'performanceInsightRetention': 'PerformanceInsightRetention', + 'performanceInsightEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'cloudwatchLogsExports': '*', + 'cloudwatchLogsRetention': 'RetentionDays', + 'cloudwatchLogsRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'autoMinorVersionUpgrade': '*', + 'preferredMaintenanceWindow': '*', + 'deletionProtection': '*', + 'removalPolicy': 'RemovalPolicy', + 'maxAllocatedStorage': '*', + 'domain': '*', + 'domainRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ImportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3ExportRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 's3ExportBuckets': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'publiclyAccessible': '*', + 'networkType': 'NetworkType', + 'caCertificate': '*' + }, + 'OptionGroup': { + 'engine': { + 'singleUserRotationApplication': '*', + 'supportsReadReplicaBackups': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'description': '*', + 'configurations': { + 'name': '*', + 'settings': '*', + 'version': '*', + 'port': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + } + } + }, + 'ParameterGroup': { + 'engine': { + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'name': '*', + 'description': '*', + 'parameters': '*', + 'removalPolicy': 'RemovalPolicy' + }, + 'DatabaseProxy': { + 'proxyTarget': '*', + 'dbProxyName': '*', + 'borrowTimeout': '*', + 'initQuery': '*', + 'maxConnectionsPercent': '*', + 'maxIdleConnectionsPercent': '*', + 'sessionPinningFilters': '*', + 'debugLogging': '*', + 'iamAuth': '*', + 'idleClientTimeout': '*', + 'requireTLS': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secrets': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'clientPasswordAuthType': 'ClientPasswordAuthType' + }, + 'ServerlessCluster': { + 'credentials': '*', + 'storageEncryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'clusterIdentifier': '*', + 'backupRetention': '*', + 'defaultDatabaseName': '*', + 'deletionProtection': '*', + 'enableDataApi': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'scaling': { + 'minCapacity': 'AuroraCapacityUnit', + 'maxCapacity': 'AuroraCapacityUnit', + 'autoPause': '*', + 'timeoutAction': 'TimeoutAction' + }, + 'removalPolicy': 'RemovalPolicy', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'copyTagsToSnapshot': '*' + }, + 'ImportedServerlessCluster': { + 'clusterIdentifier': '*', + 'port': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'clusterEndpointAddress': '*', + 'readerEndpointAddress': '*', + 'secret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + } + }, + 'ServerlessClusterFromSnapshot': { + 'snapshotIdentifier': '*', + 'credentials': '*', + 'engine': { + 'singleUserRotationApplication': '*', + 'supportedLogTypes': '*', + 'combineImportAndExportRoles': '*', + 'engineType': '*', + 'engineVersion': { + 'fullVersion': '*', + 'majorVersion': '*' + }, + 'parameterGroupFamily': '*', + 'engineFamily': '*', + 'defaultUsername': '*' + }, + 'clusterIdentifier': '*', + 'backupRetention': '*', + 'defaultDatabaseName': '*', + 'deletionProtection': '*', + 'enableDataApi': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'scaling': { + 'minCapacity': 'AuroraCapacityUnit', + 'maxCapacity': 'AuroraCapacityUnit', + 'autoPause': '*', + 'timeoutAction': 'TimeoutAction' + }, + 'removalPolicy': 'RemovalPolicy', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'parameterGroup': { + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'subnetGroup': { + 'subnetGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'copyTagsToSnapshot': '*' + }, + 'SubnetGroup': { + 'description': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'subnetGroupName': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'removalPolicy': 'RemovalPolicy' + } + }, + 'aws-cdk-lib.aws-route53': { + 'HealthCheck': { + 'type': 'HealthCheckType', + 'alarmIdentifier': { + 'region': '*', + 'name': '*' + }, + 'childHealthChecks': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enableSNI': '*', + 'failureThreshold': '*', + 'fqdn': '*', + 'healthThreshold': '*', + 'insufficientDataHealthStatus': 'InsufficientDataHealthStatusEnum', + 'inverted': '*', + 'ipAddress': '*', + 'measureLatency': '*', + 'port': '*', + 'regions': '*', + 'requestInterval': '*', + 'resourcePath': '*', + 'routingControl': '*', + 'searchString': '*' + }, + 'HostedZone': { + 'vpcs': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'zoneName': '*', + 'addTrailingDot': '*', + 'comment': '*', + 'queryLogsLogGroupArn': '*' + }, + 'PublicHostedZone': { + 'caaAmazon': '*', + 'crossAccountZoneDelegationPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'crossAccountZoneDelegationRoleName': '*', + 'zoneName': '*', + 'addTrailingDot': '*', + 'comment': '*', + 'queryLogsLogGroupArn': '*' + }, + 'PrivateHostedZone': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'zoneName': '*', + 'addTrailingDot': '*', + 'comment': '*', + 'queryLogsLogGroupArn': '*' + }, + 'KeySigningKey': { + 'hostedZone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'keySigningKeyName': '*', + 'status': 'KeySigningKeyStatus' + }, + 'RecordSet': { + 'recordType': 'RecordType', + 'target': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'ARecord': { + 'target': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'AaaaRecord': { + 'target': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'CnameRecord': { + 'domainName': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'TxtRecord': { + 'values': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'SrvRecord': { + 'values': { + 'priority': '*', + 'weight': '*', + 'port': '*', + 'hostName': '*' + }, + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'CaaRecord': { + 'values': { + 'flag': '*', + 'tag': 'CaaTag', + 'value': '*' + }, + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'CaaAmazonRecord': { + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'MxRecord': { + 'values': { + 'priority': '*', + 'hostName': '*' + }, + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'NsRecord': { + 'values': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'DsRecord': { + 'values': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'ZoneDelegationRecord': { + 'nameServers': '*', + 'zone': { + 'hostedZoneId': '*', + 'zoneName': '*', + 'hostedZoneArn': '*', + 'hostedZoneNameServers': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'geoLocation': '*', + 'recordName': '*', + 'ttl': '*', + 'comment': '*', + 'deleteExisting': '*', + 'weight': '*', + 'region': '*', + 'multiValueAnswer': '*', + 'setIdentifier': '*', + 'healthCheck': { + 'healthCheckId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'aws-cdk-lib.aws-s3': { + 'BucketPolicy': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'removalPolicy': 'RemovalPolicy' + }, + 'Bucket': { + 'encryption': 'BucketEncryption', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enforceSSL': '*', + 'bucketKeyEnabled': '*', + 'bucketName': '*', + 'removalPolicy': 'RemovalPolicy', + 'autoDeleteObjects': '*', + 'versioned': '*', + 'objectLockEnabled': '*', + 'objectLockDefaultRetention': '*', + 'eventBridgeEnabled': '*', + 'lifecycleRules': { + 'id': '*', + 'enabled': '*', + 'abortIncompleteMultipartUploadAfter': '*', + 'expirationDate': '*', + 'noncurrentVersionsToRetain': '*', + 'noncurrentVersionTransitions': { + 'storageClass': '*', + 'noncurrentVersionsToRetain': '*' + }, + 'transitions': '*', + 'prefix': '*', + 'tagFilters': '*', + 'expiredObjectDeleteMarker': '*', + 'objectSizeLessThan': '*', + 'objectSizeGreaterThan': '*' + }, + 'transitionDefaultMinimumObjectSize': 'TransitionDefaultMinimumObjectSize', + 'websiteIndexDocument': '*', + 'websiteErrorDocument': '*', + 'websiteRedirect': { + 'hostName': '*', + 'protocol': 'RedirectProtocol' + }, + 'websiteRoutingRules': { + 'hostName': '*', + 'httpRedirectCode': '*', + 'protocol': 'RedirectProtocol', + 'replaceKey': '*', + 'condition': { + 'httpErrorCodeReturnedEquals': '*', + 'keyPrefixEquals': '*' + } + }, + 'accessControl': 'BucketAccessControl', + 'publicReadAccess': '*', + 'blockPublicAccess': '*', + 'metrics': { + 'id': '*', + 'prefix': '*', + 'tagFilters': '*' + }, + 'cors': { + 'id': '*', + 'maxAge': '*', + 'allowedHeaders': '*', + 'allowedMethods': 'HttpMethods', + 'allowedOrigins': '*', + 'exposedHeaders': '*' + }, + 'serverAccessLogsBucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'serverAccessLogsPrefix': '*', + 'targetObjectKeyFormat': '*', + 'inventories': { + 'destination': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'bucketOwner': '*' + }, + 'objectsPrefix': '*', + 'format': 'InventoryFormat', + 'enabled': '*', + 'inventoryId': '*', + 'frequency': 'InventoryFrequency', + 'includeObjectVersions': 'InventoryObjectVersion', + 'optionalFields': '*' + }, + 'objectOwnership': 'ObjectOwnership', + 'transferAcceleration': '*', + 'notificationsHandlerRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'notificationsSkipDestinationValidation': '*', + 'intelligentTieringConfigurations': { + 'name': '*', + 'prefix': '*', + 'tags': { + 'key': '*', + 'value': '*' + }, + 'archiveAccessTierTime': '*' + }, + 'minimumTLSVersion': '*', + 'replicationRules': { + 'destination': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'accessControlTransition': '*', + 'replicationTimeControl': '*', + 'storageClass': '*', + 'sseKmsEncryptedObjects': '*', + 'replicaModifications': '*', + 'priority': '*', + 'deleteMarkerReplication': '*', + 'id': '*', + 'filter': { + 'prefix': '*', + 'tags': { + 'key': '*', + 'value': '*' + } + } + } + } + }, + 'aws-cdk-lib.aws-secretsmanager': { + 'ResourcePolicy': { + 'secret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + } + }, + 'RotationSchedule': { + 'secret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'rotationLambda': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'hostedRotation': '*', + 'automaticallyAfter': '*', + 'rotateImmediatelyOnUpdate': '*' + }, + 'Secret': { + 'description': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'generateSecretString': { + 'excludeUppercase': '*', + 'requireEachIncludedType': '*', + 'includeSpace': '*', + 'excludeCharacters': '*', + 'passwordLength': '*', + 'excludePunctuation': '*', + 'excludeLowercase': '*', + 'excludeNumbers': '*', + 'secretStringTemplate': '*', + 'generateStringKey': '*' + }, + 'secretName': '*', + 'secretStringBeta1': '*', + 'secretStringValue': '*', + 'secretObjectValue': '*', + 'removalPolicy': 'RemovalPolicy', + 'replicaRegions': { + 'region': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'SecretTargetAttachment': { + 'secret': { + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'secretArn': '*', + 'secretFullArn': '*', + 'secretName': '*', + 'secretValue': '*' + }, + 'target': '*' + } + }, + 'aws-cdk-lib.aws-servicecatalog': { + 'Portfolio': { + 'displayName': '*', + 'providerName': '*', + 'messageLanguage': 'MessageLanguage', + 'description': '*', + 'tagOptions': '*' + }, + 'CloudFormationProduct': { + 'owner': '*', + 'productName': '*', + 'productVersions': { + 'description': '*', + 'validateTemplate': '*', + 'cloudFormationTemplate': '*', + 'productVersionName': '*' + }, + 'messageLanguage': 'MessageLanguage', + 'description': '*', + 'distributor': '*', + 'replaceProductVersionIds': '*', + 'supportDescription': '*', + 'supportEmail': '*', + 'supportUrl': '*', + 'tagOptions': '*' + }, + 'TagOptions': { + 'allowedValuesForTags': '*' + } + }, + 'aws-cdk-lib.aws-servicediscovery': { + 'AliasTargetInstance': { + 'dnsName': '*', + 'service': { + 'serviceName': '*', + 'namespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serviceId': '*', + 'serviceArn': '*', + 'dnsRecordType': 'DnsRecordType', + 'routingPolicy': 'RoutingPolicy', + 'discoveryType': 'DiscoveryType' + }, + 'instanceId': '*', + 'customAttributes': '*' + }, + 'CnameInstance': { + 'service': { + 'serviceName': '*', + 'namespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serviceId': '*', + 'serviceArn': '*', + 'dnsRecordType': 'DnsRecordType', + 'routingPolicy': 'RoutingPolicy', + 'discoveryType': 'DiscoveryType' + }, + 'instanceCname': '*', + 'instanceId': '*', + 'customAttributes': '*' + }, + 'HttpNamespace': { + 'name': '*', + 'description': '*' + }, + 'IpInstance': { + 'service': { + 'serviceName': '*', + 'namespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serviceId': '*', + 'serviceArn': '*', + 'dnsRecordType': 'DnsRecordType', + 'routingPolicy': 'RoutingPolicy', + 'discoveryType': 'DiscoveryType' + }, + 'port': '*', + 'ipv4': '*', + 'ipv6': '*', + 'instanceId': '*', + 'customAttributes': '*' + }, + 'NonIpInstance': { + 'service': { + 'serviceName': '*', + 'namespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'serviceId': '*', + 'serviceArn': '*', + 'dnsRecordType': 'DnsRecordType', + 'routingPolicy': 'RoutingPolicy', + 'discoveryType': 'DiscoveryType' + }, + 'instanceId': '*', + 'customAttributes': '*' + }, + 'PrivateDnsNamespace': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'name': '*', + 'description': '*' + }, + 'PublicDnsNamespace': { + 'name': '*', + 'description': '*' + }, + 'Service': { + 'namespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'discoveryType': 'DiscoveryType', + 'dnsRecordType': 'DnsRecordType', + 'dnsTtl': '*', + 'routingPolicy': 'RoutingPolicy', + 'loadBalancer': '*', + 'name': '*', + 'description': '*', + 'healthCheck': { + 'type': 'HealthCheckType', + 'resourcePath': '*', + 'failureThreshold': '*' + }, + 'customHealthCheck': { + 'failureThreshold': '*' + } + } + }, + 'aws-cdk-lib.aws-ses': { + 'ConfigurationSetEventDestination': { + 'configurationSet': { + 'configurationSetName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'configurationSetEventDestinationName': '*', + 'enabled': '*', + 'destination': '*', + 'events': 'EmailSendingEvent' + }, + 'ConfigurationSet': { + 'configurationSetName': '*', + 'dedicatedIpPool': { + 'dedicatedIpPoolName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tlsPolicy': 'ConfigurationSetTlsPolicy', + 'reputationMetrics': '*', + 'sendingEnabled': '*', + 'suppressionReasons': 'SuppressionReasons', + 'disableSuppressionList': '*', + 'customTrackingRedirectDomain': '*', + 'vdmOptions': { + 'engagementMetrics': '*', + 'optimizedSharedDelivery': '*' + }, + 'maxDeliveryDuration': '*' + }, + 'DedicatedIpPool': { + 'dedicatedIpPoolName': '*', + 'scalingMode': 'ScalingMode' + }, + 'EmailIdentity': { + 'identity': '*', + 'configurationSet': { + 'configurationSetName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dkimSigning': '*', + 'dkimIdentity': '*', + 'feedbackForwarding': '*', + 'mailFromDomain': '*', + 'mailFromBehaviorOnMxFailure': 'MailFromBehaviorOnMxFailure' + }, + 'ReceiptFilter': { + 'receiptFilterName': '*', + 'ip': '*', + 'policy': 'ReceiptFilterPolicy' + }, + 'ReceiptRuleSet': { + 'receiptRuleSetName': '*', + 'rules': { + 'actions': '*', + 'after': { + 'receiptRuleName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*', + 'receiptRuleName': '*', + 'recipients': '*', + 'scanEnabled': '*', + 'tlsPolicy': 'TlsPolicy' + }, + 'dropSpam': '*' + }, + 'ReceiptRule': { + 'ruleSet': { + 'receiptRuleSetName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'actions': '*', + 'after': { + 'receiptRuleName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'enabled': '*', + 'receiptRuleName': '*', + 'recipients': '*', + 'scanEnabled': '*', + 'tlsPolicy': 'TlsPolicy' + }, + 'VdmAttributes': { + 'engagementMetrics': '*', + 'optimizedSharedDelivery': '*' + } + }, + 'aws-cdk-lib.aws-signer': { + 'SigningProfile': { + 'platform': '*', + 'signatureValidity': '*', + 'signingProfileName': '*' + } + }, + 'aws-cdk-lib.aws-sns': { + 'TopicPolicy': { + 'topics': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policyDocument': '*', + 'enforceSSL': '*' + }, + 'Subscription': { + 'topic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'protocol': 'SubscriptionProtocol', + 'endpoint': '*', + 'rawMessageDelivery': '*', + 'filterPolicy': '*', + 'filterPolicyWithMessageBody': '*', + 'region': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'subscriptionRoleArn': '*', + 'deliveryPolicy': { + 'healthyRetryPolicy': { + 'minDelayTarget': '*', + 'numRetries': '*', + 'numNoDelayRetries': '*', + 'numMinDelayRetries': '*', + 'numMaxDelayRetries': '*', + 'backoffFunction': 'BackoffFunction' + }, + 'throttlePolicy': { + 'maxReceivesPerSecond': '*' + }, + 'requestPolicy': { + 'headerContentType': '*' + } + } + }, + 'Topic': { + 'displayName': '*', + 'topicName': '*', + 'masterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'loggingConfigs': { + 'protocol': 'LoggingProtocol', + 'failureFeedbackRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'successFeedbackSampleRate': '*' + }, + 'messageRetentionPeriodInDays': '*', + 'enforceSSL': '*', + 'signatureVersion': '*', + 'tracingConfig': 'TracingConfig' + } + }, + 'aws-cdk-lib.aws-sqs': { + 'QueuePolicy': { + 'queues': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + } + }, + 'Queue': { + 'queueName': '*', + 'retentionPeriod': '*', + 'deliveryDelay': '*', + 'maxMessageSizeBytes': '*', + 'receiveMessageWaitTime': '*', + 'visibilityTimeout': '*', + 'deadLetterQueue': { + 'queue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'maxReceiveCount': '*' + }, + 'encryption': 'QueueEncryption', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dataKeyReuse': '*', + 'fifo': '*', + 'contentBasedDeduplication': '*', + 'deduplicationScope': 'DeduplicationScope', + 'fifoThroughputLimit': 'FifoThroughputLimit', + 'removalPolicy': 'RemovalPolicy', + 'enforceSSL': '*', + 'redriveAllowPolicy': { + 'redrivePermission': 'RedrivePermission', + 'sourceQueues': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + } + } + } + }, + 'aws-cdk-lib.aws-ssm': { + 'StringParameter': { + 'stringValue': '*', + 'type': 'ParameterType', + 'dataType': 'ParameterDataType', + 'allowedPattern': '*', + 'description': '*', + 'parameterName': '*', + 'simpleName': '*', + 'tier': 'ParameterTier' + }, + 'StringListParameter': { + 'stringListValue': '*', + 'allowedPattern': '*', + 'description': '*', + 'parameterName': '*', + 'simpleName': '*', + 'tier': 'ParameterTier' + } + }, + 'aws-cdk-lib.aws-stepfunctions': { + 'Activity': { + 'activityName': '*', + 'encryptionConfiguration': '*' + }, + 'StateMachine': { + 'stateMachineName': '*', + 'definition': { + 'id': '*', + 'startState': '*', + 'endStates': '*' + }, + 'definitionBody': '*', + 'definitionSubstitutions': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'timeout': '*', + 'comment': '*', + 'stateMachineType': 'StateMachineType', + 'logs': { + 'destination': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'includeExecutionData': '*', + 'level': 'LogLevel' + }, + 'tracingEnabled': '*', + 'removalPolicy': 'RemovalPolicy', + 'encryptionConfiguration': '*' + } + }, + 'aws-cdk-lib.aws-synthetics': { + 'Canary': { + 'artifactsBucketLocation': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*' + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'timeToLive': '*', + 'schedule': '*', + 'startAfterCreation': '*', + 'successRetentionPeriod': '*', + 'failureRetentionPeriod': '*', + 'canaryName': '*', + 'runtime': '*', + 'test': '*', + 'activeTracing': '*', + 'environmentVariables': '*', + 'memory': '*', + 'timeout': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'cleanup': 'Cleanup', + 'artifactsBucketLifecycleRules': { + 'id': '*', + 'enabled': '*', + 'abortIncompleteMultipartUploadAfter': '*', + 'expirationDate': '*', + 'noncurrentVersionsToRetain': '*', + 'noncurrentVersionTransitions': { + 'storageClass': '*', + 'noncurrentVersionsToRetain': '*' + }, + 'transitions': '*', + 'prefix': '*', + 'tagFilters': '*', + 'expiredObjectDeleteMarker': '*', + 'objectSizeLessThan': '*', + 'objectSizeGreaterThan': '*' + }, + 'artifactS3EncryptionMode': 'ArtifactsEncryptionMode', + 'artifactS3KmsKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'aws-cdk-lib.core': { + 'CustomResource': { + 'serviceToken': '*', + 'serviceTimeout': '*', + 'properties': '*', + 'resourceType': '*', + 'removalPolicy': 'RemovalPolicy', + 'pascalCaseProperties': '*' + } + }, + 'aws-cdk-lib.triggers': { + 'TriggerFunction': { + 'runtime': '*', + 'code': '*', + 'handler': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*', + 'executeAfter': '*', + 'executeBefore': '*', + 'executeOnHandlerChange': '*' + } + }, + 'aws-glue-alpha.lib': { + 'PySparkEtlJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'extraPythonFiles': '*', + 'extraFiles': '*', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'PySparkFlexEtlJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'notifyDelayAfter': '*', + 'extraPythonFiles': '*', + 'extraFiles': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'PySparkStreamingJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'extraPythonFiles': '*', + 'extraFiles': '*', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'PythonShellJob': { + 'pythonVersion': 'PythonVersion', + 'maxCapacity': 'MaxCapacity', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'RayJob': { + 'runtime': 'Runtime', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'ScalaSparkEtlJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'className': '*', + 'extraJars': '*', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'ScalaSparkFlexEtlJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'notifyDelayAfter': '*', + 'className': '*', + 'extraJars': '*', + 'extraJarsFirst': '*', + 'extraFiles': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + }, + 'ScalaSparkStreamingJob': { + 'sparkUI': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'prefix': '*', + 'jobRunQueuingEnabled': '*' + }, + 'className': '*', + 'extraJars': '*', + 'jobRunQueuingEnabled': '*', + 'script': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'jobName': '*', + 'description': '*', + 'numberOfWorkers': '*', + 'workerType': 'WorkerType', + 'maxConcurrentRuns': '*', + 'defaultArguments': '*', + 'connections': { + 'connectionName': '*', + 'connectionArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'maxRetries': '*', + 'timeout': '*', + 'securityConfiguration': { + 'securityConfigurationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tags': '*', + 'glueVersion': 'GlueVersion', + 'enableProfilingMetrics': '*', + 'continuousLogging': { + 'enabled': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logStreamPrefix': '*', + 'quiet': '*', + 'conversionPattern': '*' + } + } + }, + 'aws-apigateway.lib': { + 'CognitoUserPoolsAuthorizer': { + 'authorizerName': '*', + 'cognitoUserPools': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'resultsCacheTtl': '*', + 'identitySource': '*' + }, + 'TokenAuthorizer': { + 'validationRegex': '*', + 'identitySource': '*', + 'authorizerName': '*', + 'handler': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'resultsCacheTtl': '*', + 'assumeRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'RequestAuthorizer': { + 'identitySources': '*', + 'authorizerName': '*', + 'handler': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'resultsCacheTtl': '*', + 'assumeRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + } + }, + 'aws-apigatewayv2.lib': { + 'ApiMapping': { + 'apiMappingKey': '*', + 'api': { + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'domainName': { + 'name': '*', + 'regionalDomainName': '*', + 'regionalHostedZoneId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'stage': { + 'stageName': '*', + 'url': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'DomainName': { + 'domainName': '*', + 'mtls': { + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'certificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'certificateName': '*', + 'endpointType': 'EndpointType', + 'securityPolicy': 'SecurityPolicy', + 'ownershipCertificate': { + 'certificateArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'HttpAuthorizer': { + 'authorizerName': '*', + 'httpApi': { + 'defaultAuthorizer': '*', + 'defaultAuthorizationScopes': '*', + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'type': 'HttpAuthorizerType', + 'identitySource': '*', + 'jwtAudience': '*', + 'jwtIssuer': '*', + 'enableSimpleResponses': '*', + 'payloadFormatVersion': 'AuthorizerPayloadVersion', + 'authorizerUri': '*', + 'resultsCacheTtl': '*' + }, + 'HttpIntegration': { + 'httpApi': { + 'defaultAuthorizer': '*', + 'defaultAuthorizationScopes': '*', + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'integrationType': 'HttpIntegrationType', + 'integrationSubtype': 'HttpIntegrationSubtype', + 'integrationUri': '*', + 'method': 'HttpMethod', + 'connectionId': '*', + 'connectionType': 'HttpConnectionType', + 'payloadFormatVersion': '*', + 'secureServerName': '*', + 'timeout': '*', + 'parameterMapping': '*', + 'credentials': '*' + }, + 'HttpRoute': { + 'httpApi': { + 'defaultAuthorizer': '*', + 'defaultAuthorizationScopes': '*', + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'routeKey': '*', + 'authorizer': '*', + 'authorizationScopes': '*', + 'integration': '*' + }, + 'HttpStage': { + 'httpApi': { + 'defaultAuthorizer': '*', + 'defaultAuthorizationScopes': '*', + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'stageName': '*', + 'autoDeploy': '*', + 'domainMapping': { + 'domainName': { + 'name': '*', + 'regionalDomainName': '*', + 'regionalHostedZoneId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mappingKey': '*' + }, + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + }, + 'description': '*' + }, + 'VpcLink': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'vpcLinkName': '*', + 'subnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + } + }, + 'WebSocketAuthorizer': { + 'authorizerName': '*', + 'webSocketApi': { + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'type': 'WebSocketAuthorizerType', + 'identitySource': '*', + 'authorizerUri': '*' + }, + 'WebSocketIntegration': { + 'webSocketApi': { + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'integrationType': 'WebSocketIntegrationType', + 'integrationUri': '*', + 'integrationMethod': '*', + 'contentHandling': 'ContentHandling', + 'credentialsRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'requestParameters': '*', + 'requestTemplates': '*', + 'templateSelectionExpression': '*', + 'timeout': '*', + 'passthroughBehavior': 'PassthroughBehavior' + }, + 'WebSocketRoute': { + 'webSocketApi': { + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'routeKey': '*', + 'apiKeyRequired': '*', + 'integration': '*', + 'authorizer': '*', + 'returnResponse': '*' + }, + 'WebSocketStage': { + 'webSocketApi': { + 'apiId': '*', + 'apiEndpoint': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'stageName': '*', + 'autoDeploy': '*', + 'domainMapping': { + 'domainName': { + 'name': '*', + 'regionalDomainName': '*', + 'regionalHostedZoneId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'mappingKey': '*' + }, + 'throttle': { + 'rateLimit': '*', + 'burstLimit': '*' + }, + 'description': '*' + } + }, + 'aws-cloudfront.lib': { + 'EdgeFunction': { + 'stackId': '*', + 'runtime': '*', + 'code': '*', + 'handler': '*', + 'description': '*', + 'timeout': '*', + 'environment': '*', + 'functionName': '*', + 'memorySize': '*', + 'ephemeralStorageSize': '*', + 'initialPolicy': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipv6AllowedForDualStack': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'allowAllOutbound': '*', + 'allowAllIpv6Outbound': '*', + 'deadLetterQueueEnabled': '*', + 'deadLetterQueue': { + 'queueArn': '*', + 'queueUrl': '*', + 'queueName': '*', + 'encryptionMasterKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'fifo': '*', + 'encryptionType': 'QueueEncryption' + }, + 'deadLetterTopic': { + 'topicArn': '*', + 'topicName': '*', + 'contentBasedDeduplication': '*', + 'fifo': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'tracing': 'Tracing', + 'snapStart': '*', + 'profiling': '*', + 'profilingGroup': { + 'profilingGroupName': '*', + 'profilingGroupArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'insightsVersion': '*', + 'adotInstrumentation': { + 'layerVersion': '*', + 'execWrapper': 'AdotLambdaExecWrapper' + }, + 'paramsAndSecrets': '*', + 'layers': { + 'layerVersionArn': '*', + 'compatibleRuntimes': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'reservedConcurrentExecutions': '*', + 'events': '*', + 'logRetention': 'RetentionDays', + 'logRetentionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logRetentionRetryOptions': { + 'maxRetries': '*', + 'base': '*' + }, + 'currentVersionOptions': { + 'codeSha256': '*', + 'description': '*', + 'provisionedConcurrentExecutions': '*', + 'removalPolicy': 'RemovalPolicy', + 'onFailure': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + }, + 'filesystem': '*', + 'allowPublicSubnet': '*', + 'environmentEncryption': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'codeSigningConfig': { + 'codeSigningConfigArn': '*', + 'codeSigningConfigId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'architectures': '*', + 'architecture': '*', + 'runtimeManagementMode': '*', + 'logGroup': { + 'logGroupArn': '*', + 'logGroupName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'logFormat': '*', + 'loggingFormat': 'LoggingFormat', + 'recursiveLoop': 'RecursiveLoop', + 'applicationLogLevel': '*', + 'applicationLogLevelV2': 'ApplicationLogLevel', + 'systemLogLevel': '*', + 'systemLogLevelV2': 'SystemLogLevel', + 'onFailure': '*', + 'onSuccess': '*', + 'maxEventAge': '*', + 'retryAttempts': '*' + } + }, + 'aws-codedeploy.lib': { + 'EcsApplication': { + 'applicationName': '*' + }, + 'EcsDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + }, + 'alarms': { + 'alarmArn': '*', + 'alarmName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'service': { + 'cluster': { + 'clusterName': '*', + 'clusterArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'connections': '*', + 'hasEc2Capacity': '*', + 'defaultCloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType' + }, + 'autoscalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + } + }, + 'serviceArn': '*', + 'serviceName': '*' + }, + 'blueGreenDeploymentConfig': { + 'blueTargetGroup': { + 'targetGroupName': '*', + 'targetGroupArn': '*', + 'loadBalancerArns': '*', + 'loadBalancerAttached': '*', + 'node': '*' + }, + 'listener': { + 'listenerArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + } + }, + 'deploymentApprovalWaitTime': '*' + }, + 'ignorePollAlarmsFailure': '*', + 'autoRollback': { + 'failedDeployment': '*', + 'stoppedDeployment': '*', + 'deploymentInAlarm': '*' + }, + 'ignoreAlarmConfiguration': '*' + }, + 'ImportedEcsDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + } + }, + 'LambdaApplication': { + 'applicationName': '*' + }, + 'CustomLambdaDeploymentConfig': { + 'type': 'CustomLambdaDeploymentConfigType', + 'percentage': '*', + 'interval': '*', + 'deploymentConfigName': '*' + }, + 'LambdaDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + }, + 'alarms': { + 'alarmArn': '*', + 'alarmName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'alias': '*', + 'preHook': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'postHook': { + 'functionName': '*', + 'functionArn': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'isBoundToVpc': '*', + 'latestVersion': { + 'version': '*', + 'edgeArn': '*', + 'functionName': '*', + 'functionArn': '*', + 'isBoundToVpc': '*', + 'architecture': '*', + 'resourceArnsForGrantInvoke': '*', + 'connections': '*' + }, + 'resourceArnsForGrantInvoke': '*' + }, + 'ignorePollAlarmsFailure': '*', + 'autoRollback': { + 'failedDeployment': '*', + 'stoppedDeployment': '*', + 'deploymentInAlarm': '*' + }, + 'ignoreAlarmConfiguration': '*' + }, + 'ImportedLambdaDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + } + }, + 'ImportedDeploymentGroupBase': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*' + }, + 'DeploymentGroupBase': { + 'deploymentGroupName': '*', + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'roleConstructId': '*' + }, + 'ServerApplication': { + 'applicationName': '*' + }, + 'ServerDeploymentConfig': { + 'minimumHealthyHosts': '*', + 'zonalConfig': { + 'monitorDuration': '*', + 'minimumHealthyHostsPerZone': '*' + }, + 'deploymentConfigName': '*' + }, + 'ImportedServerDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + } + }, + 'ServerDeploymentGroup': { + 'application': { + 'applicationArn': '*', + 'applicationName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'deploymentGroupName': '*', + 'deploymentConfig': { + 'deploymentConfigName': '*', + 'deploymentConfigArn': '*' + }, + 'autoScalingGroups': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'installAgent': '*', + 'loadBalancer': '*', + 'loadBalancers': '*', + 'ec2InstanceTags': '*', + 'onPremiseInstanceTags': '*', + 'alarms': { + 'alarmArn': '*', + 'alarmName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'ignorePollAlarmsFailure': '*', + 'autoRollback': { + 'failedDeployment': '*', + 'stoppedDeployment': '*', + 'deploymentInAlarm': '*' + }, + 'ignoreAlarmConfiguration': '*', + 'terminationHook': '*' + } + }, + 'aws-cognito.lib': { + 'UserPoolIdentityProviderAmazon': { + 'clientId': '*', + 'clientSecret': '*', + 'scopes': '*', + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + }, + 'UserPoolIdentityProviderApple': { + 'clientId': '*', + 'teamId': '*', + 'keyId': '*', + 'privateKey': '*', + 'privateKeyValue': '*', + 'scopes': '*', + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + }, + 'UserPoolIdentityProviderFacebook': { + 'clientId': '*', + 'clientSecret': '*', + 'scopes': '*', + 'apiVersion': '*', + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + }, + 'UserPoolIdentityProviderGoogle': { + 'clientId': '*', + 'clientSecret': '*', + 'clientSecretValue': '*', + 'scopes': '*', + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + }, + 'UserPoolIdentityProviderOidc': { + 'clientId': '*', + 'clientSecret': '*', + 'issuerUrl': '*', + 'name': '*', + 'scopes': '*', + 'identifiers': '*', + 'attributeRequestMethod': 'OidcAttributeRequestMethod', + 'endpoints': { + 'authorization': '*', + 'token': '*', + 'userInfo': '*', + 'jwksUri': '*' + }, + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + }, + 'UserPoolIdentityProviderSaml': { + 'name': '*', + 'identifiers': '*', + 'metadata': '*', + 'idpSignout': '*', + 'encryptedResponses': '*', + 'requestSigningAlgorithm': 'SigningAlgorithm', + 'idpInitiated': '*', + 'userPool': { + 'userPoolId': '*', + 'userPoolArn': '*', + 'userPoolProviderName': '*', + 'identityProviders': { + 'providerName': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'attributeMapping': { + 'address': '*', + 'custom': '*' + } + } + }, + 'aws-ecs.lib': { + 'ImportedTaskDefinition': { + 'taskDefinitionArn': '*', + 'compatibility': 'Compatibility', + 'networkMode': 'NetworkMode', + 'taskRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'TaskDefinition': { + 'networkMode': 'NetworkMode', + 'placementConstraints': '*', + 'compatibility': 'Compatibility', + 'cpu': '*', + 'memoryMiB': '*', + 'ipcMode': 'IpcMode', + 'pidMode': 'PidMode', + 'inferenceAccelerators': { + 'deviceName': '*', + 'deviceType': '*' + }, + 'ephemeralStorageGiB': '*', + 'runtimePlatform': { + 'cpuArchitecture': '*', + 'operatingSystemFamily': '*' + }, + 'family': '*', + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'taskRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'proxyConfiguration': '*', + 'volumes': { + 'host': { + 'sourcePath': '*' + }, + 'name': '*', + 'configuredAtLaunch': '*', + 'dockerVolumeConfiguration': { + 'autoprovision': '*', + 'driver': '*', + 'driverOpts': '*', + 'labels': '*', + 'scope': 'Scope' + }, + 'efsVolumeConfiguration': { + 'fileSystemId': '*', + 'rootDirectory': '*', + 'transitEncryption': '*', + 'transitEncryptionPort': '*', + 'authorizationConfig': { + 'accessPointId': '*', + 'iam': '*' + } + } + }, + 'enableFaultInjection': '*' + }, + 'Ec2Service': { + 'taskDefinition': '*', + 'assignPublicIp': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'placementConstraints': '*', + 'placementStrategies': '*', + 'daemon': '*', + 'cluster': { + 'clusterName': '*', + 'clusterArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'connections': '*', + 'hasEc2Capacity': '*', + 'defaultCloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType' + }, + 'autoscalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + } + }, + 'desiredCount': '*', + 'serviceName': '*', + 'maxHealthyPercent': '*', + 'minHealthyPercent': '*', + 'healthCheckGracePeriod': '*', + 'cloudMapOptions': { + 'name': '*', + 'cloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dnsRecordType': 'DnsRecordType', + 'dnsTtl': '*', + 'failureThreshold': '*', + 'container': '*', + 'containerPort': '*' + }, + 'propagateTags': 'PropagatedTagSource', + 'propagateTaskTagsFrom': 'PropagatedTagSource', + 'enableECSManagedTags': '*', + 'deploymentController': { + 'type': 'DeploymentControllerType' + }, + 'circuitBreaker': { + 'enable': '*', + 'rollback': '*' + }, + 'deploymentAlarms': { + 'alarmNames': '*', + 'behavior': 'AlarmBehavior' + }, + 'capacityProviderStrategies': { + 'capacityProvider': '*', + 'base': '*', + 'weight': '*' + }, + 'enableExecuteCommand': '*', + 'serviceConnectConfiguration': { + 'namespace': '*', + 'services': { + 'portMappingName': '*', + 'discoveryName': '*', + 'dnsName': '*', + 'port': '*', + 'ingressPortOverride': '*', + 'idleTimeout': '*' + }, + 'logDriver': '*' + }, + 'taskDefinitionRevision': '*', + 'volumeConfigurations': '*' + }, + 'Ec2TaskDefinition': { + 'networkMode': 'NetworkMode', + 'placementConstraints': '*', + 'ipcMode': 'IpcMode', + 'pidMode': 'PidMode', + 'inferenceAccelerators': { + 'deviceName': '*', + 'deviceType': '*' + }, + 'family': '*', + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'taskRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'proxyConfiguration': '*', + 'volumes': { + 'host': { + 'sourcePath': '*' + }, + 'name': '*', + 'configuredAtLaunch': '*', + 'dockerVolumeConfiguration': { + 'autoprovision': '*', + 'driver': '*', + 'driverOpts': '*', + 'labels': '*', + 'scope': 'Scope' + }, + 'efsVolumeConfiguration': { + 'fileSystemId': '*', + 'rootDirectory': '*', + 'transitEncryption': '*', + 'transitEncryptionPort': '*', + 'authorizationConfig': { + 'accessPointId': '*', + 'iam': '*' + } + } + }, + 'enableFaultInjection': '*' + }, + 'ExternalService': { + 'taskDefinition': '*', + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'cluster': { + 'clusterName': '*', + 'clusterArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'connections': '*', + 'hasEc2Capacity': '*', + 'defaultCloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType' + }, + 'autoscalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + } + }, + 'desiredCount': '*', + 'serviceName': '*', + 'maxHealthyPercent': '*', + 'minHealthyPercent': '*', + 'healthCheckGracePeriod': '*', + 'cloudMapOptions': { + 'name': '*', + 'cloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dnsRecordType': 'DnsRecordType', + 'dnsTtl': '*', + 'failureThreshold': '*', + 'container': '*', + 'containerPort': '*' + }, + 'propagateTags': 'PropagatedTagSource', + 'propagateTaskTagsFrom': 'PropagatedTagSource', + 'enableECSManagedTags': '*', + 'deploymentController': { + 'type': 'DeploymentControllerType' + }, + 'circuitBreaker': { + 'enable': '*', + 'rollback': '*' + }, + 'deploymentAlarms': { + 'alarmNames': '*', + 'behavior': 'AlarmBehavior' + }, + 'capacityProviderStrategies': { + 'capacityProvider': '*', + 'base': '*', + 'weight': '*' + }, + 'enableExecuteCommand': '*', + 'serviceConnectConfiguration': { + 'namespace': '*', + 'services': { + 'portMappingName': '*', + 'discoveryName': '*', + 'dnsName': '*', + 'port': '*', + 'ingressPortOverride': '*', + 'idleTimeout': '*' + }, + 'logDriver': '*' + }, + 'taskDefinitionRevision': '*', + 'volumeConfigurations': '*' + }, + 'ExternalTaskDefinition': { + 'networkMode': 'NetworkMode', + 'family': '*', + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'taskRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'proxyConfiguration': '*', + 'volumes': { + 'host': { + 'sourcePath': '*' + }, + 'name': '*', + 'configuredAtLaunch': '*', + 'dockerVolumeConfiguration': { + 'autoprovision': '*', + 'driver': '*', + 'driverOpts': '*', + 'labels': '*', + 'scope': 'Scope' + }, + 'efsVolumeConfiguration': { + 'fileSystemId': '*', + 'rootDirectory': '*', + 'transitEncryption': '*', + 'transitEncryptionPort': '*', + 'authorizationConfig': { + 'accessPointId': '*', + 'iam': '*' + } + } + }, + 'enableFaultInjection': '*' + }, + 'FargateService': { + 'taskDefinition': '*', + 'assignPublicIp': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'platformVersion': 'FargatePlatformVersion', + 'cluster': { + 'clusterName': '*', + 'clusterArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'connections': '*', + 'hasEc2Capacity': '*', + 'defaultCloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType' + }, + 'autoscalingGroup': { + 'autoScalingGroupName': '*', + 'autoScalingGroupArn': '*', + 'osType': 'OperatingSystemType', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + } + }, + 'executeCommandConfiguration': { + 'kmsKey': { + 'keyArn': '*', + 'keyId': '*' + }, + 'logConfiguration': { + 'cloudWatchEncryptionEnabled': '*', + 'cloudWatchLogGroup': { + 'logGroupArn': '*', + 'logGroupName': '*' + }, + 's3Bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'policy': '*', + 'replicationRoleArn': '*' + }, + 's3EncryptionEnabled': '*', + 's3KeyPrefix': '*' + }, + 'logging': 'ExecuteCommandLogging' + } + }, + 'desiredCount': '*', + 'serviceName': '*', + 'maxHealthyPercent': '*', + 'minHealthyPercent': '*', + 'healthCheckGracePeriod': '*', + 'cloudMapOptions': { + 'name': '*', + 'cloudMapNamespace': { + 'namespaceName': '*', + 'namespaceId': '*', + 'namespaceArn': '*', + 'type': 'NamespaceType', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'dnsRecordType': 'DnsRecordType', + 'dnsTtl': '*', + 'failureThreshold': '*', + 'container': '*', + 'containerPort': '*' + }, + 'propagateTags': 'PropagatedTagSource', + 'propagateTaskTagsFrom': 'PropagatedTagSource', + 'enableECSManagedTags': '*', + 'deploymentController': { + 'type': 'DeploymentControllerType' + }, + 'circuitBreaker': { + 'enable': '*', + 'rollback': '*' + }, + 'deploymentAlarms': { + 'alarmNames': '*', + 'behavior': 'AlarmBehavior' + }, + 'capacityProviderStrategies': { + 'capacityProvider': '*', + 'base': '*', + 'weight': '*' + }, + 'enableExecuteCommand': '*', + 'serviceConnectConfiguration': { + 'namespace': '*', + 'services': { + 'portMappingName': '*', + 'discoveryName': '*', + 'dnsName': '*', + 'port': '*', + 'ingressPortOverride': '*', + 'idleTimeout': '*' + }, + 'logDriver': '*' + }, + 'taskDefinitionRevision': '*', + 'volumeConfigurations': '*' + }, + 'FargateTaskDefinition': { + 'cpu': '*', + 'memoryLimitMiB': '*', + 'ephemeralStorageGiB': '*', + 'runtimePlatform': { + 'cpuArchitecture': '*', + 'operatingSystemFamily': '*' + }, + 'pidMode': 'PidMode', + 'family': '*', + 'executionRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'taskRole': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'proxyConfiguration': '*', + 'volumes': { + 'host': { + 'sourcePath': '*' + }, + 'name': '*', + 'configuredAtLaunch': '*', + 'dockerVolumeConfiguration': { + 'autoprovision': '*', + 'driver': '*', + 'driverOpts': '*', + 'labels': '*', + 'scope': 'Scope' + }, + 'efsVolumeConfiguration': { + 'fileSystemId': '*', + 'rootDirectory': '*', + 'transitEncryption': '*', + 'transitEncryptionPort': '*', + 'authorizationConfig': { + 'accessPointId': '*', + 'iam': '*' + } + } + }, + 'enableFaultInjection': '*' + } + }, + 'aws-elasticloadbalancingv2.lib': { + 'ApplicationListener': { + 'loadBalancer': { + 'loadBalancerArn': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'ipAddressType': 'IpAddressType', + 'listeners': '*', + 'metrics': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'connections': '*' + }, + 'protocol': 'ApplicationProtocol', + 'port': '*', + 'certificateArns': '*', + 'certificates': { + 'certificateArn': '*' + }, + 'sslPolicy': 'SslPolicy', + 'defaultTargetGroups': { + 'metrics': '*', + 'targetGroupName': '*', + 'targetGroupArn': '*', + 'loadBalancerArns': '*', + 'loadBalancerAttached': '*', + 'node': '*' + }, + 'defaultAction': '*', + 'open': '*', + 'mutualAuthentication': { + 'mutualAuthenticationMode': 'MutualAuthenticationMode', + 'trustStore': { + 'trustStoreName': '*', + 'trustStoreArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'ignoreClientCertificateExpiry': '*' + } + }, + 'ImportedApplicationListener': { + 'listenerArn': '*', + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'defaultPort': '*', + 'securityGroupAllowsAllOutbound': '*' + }, + 'LookedUpApplicationListener': { + 'listenerArn': '*', + 'listenerPort': '*', + 'securityGroupIds': '*' + }, + 'ApplicationLoadBalancer': { + 'securityGroup': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'ipAddressType': 'IpAddressType', + 'http2Enabled': '*', + 'idleTimeout': '*', + 'dropInvalidHeaderFields': '*', + 'desyncMitigationMode': 'DesyncMitigationMode', + 'clientKeepAlive': '*', + 'preserveHostHeader': '*', + 'xAmznTlsVersionAndCipherSuiteHeaders': '*', + 'preserveXffClientPort': '*', + 'xffHeaderProcessingMode': 'XffHeaderProcessingMode', + 'wafFailOpen': '*', + 'loadBalancerName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'internetFacing': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'deletionProtection': '*', + 'crossZoneEnabled': '*', + 'denyAllIgwTraffic': '*' + }, + 'ImportedApplicationLoadBalancer': { + 'loadBalancerArn': '*', + 'securityGroupId': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'securityGroupAllowsAllOutbound': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + } + }, + 'LookedUpApplicationLoadBalancer': { + 'loadBalancerArn': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'ipAddressType': 'LoadBalancerIpAddressType', + 'securityGroupIds': '*', + 'vpcId': '*' + }, + 'TrustStoreRevocation': { + 'trustStore': { + 'trustStoreName': '*', + 'trustStoreArn': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'revocationContents': { + 'revocationType': 'RevocationType', + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + } + }, + 'TrustStore': { + 'trustStoreName': '*', + 'bucket': { + 'bucketArn': '*', + 'bucketName': '*', + 'bucketWebsiteUrl': '*', + 'bucketWebsiteDomainName': '*', + 'bucketDomainName': '*', + 'bucketDualStackDomainName': '*', + 'bucketRegionalDomainName': '*', + 'isWebsite': '*', + 'encryptionKey': { + 'keyArn': '*', + 'keyId': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'policy': '*', + 'replicationRoleArn': '*' + }, + 'key': '*', + 'version': '*' + }, + 'NetworkListener': { + 'loadBalancer': { + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'metrics': '*', + 'securityGroups': '*', + 'ipAddressType': 'IpAddressType', + 'enforceSecurityGroupInboundRulesOnPrivateLinkTraffic': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'loadBalancerArn': '*', + 'connections': '*' + }, + 'port': '*', + 'defaultTargetGroups': { + 'metrics': '*', + 'targetGroupName': '*', + 'targetGroupArn': '*', + 'loadBalancerArns': '*', + 'loadBalancerAttached': '*', + 'node': '*' + }, + 'defaultAction': '*', + 'protocol': 'Protocol', + 'certificates': { + 'certificateArn': '*' + }, + 'sslPolicy': 'SslPolicy', + 'alpnPolicy': 'AlpnPolicy', + 'tcpIdleTimeout': '*' + }, + 'NetworkLoadBalancer': { + 'securityGroups': { + 'securityGroupId': '*', + 'allowAllOutbound': '*', + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*', + 'canInlineRule': '*', + 'uniqueId': '*', + 'connections': '*' + }, + 'ipAddressType': 'IpAddressType', + 'clientRoutingPolicy': 'ClientRoutingPolicy', + 'enforceSecurityGroupInboundRulesOnPrivateLinkTraffic': '*', + 'zonalShift': '*', + 'enablePrefixForIpv6SourceNat': '*', + 'loadBalancerName': '*', + 'vpc': { + 'vpcId': '*', + 'vpcArn': '*', + 'vpcCidrBlock': '*', + 'publicSubnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'availabilityZones': '*', + 'vpnGatewayId': '*' + }, + 'internetFacing': '*', + 'vpcSubnets': { + 'subnetType': 'SubnetType', + 'availabilityZones': '*', + 'subnetGroupName': '*', + 'subnetName': '*', + 'onePerAz': '*', + 'subnetFilters': '*', + 'subnets': { + 'availabilityZone': '*', + 'subnetId': '*', + 'internetConnectivityEstablished': '*', + 'ipv4CidrBlock': '*', + 'routeTable': { + 'routeTableId': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + } + }, + 'deletionProtection': '*', + 'crossZoneEnabled': '*', + 'denyAllIgwTraffic': '*' + }, + 'LookedUpNetworkLoadBalancer': { + 'loadBalancerArn': '*', + 'loadBalancerCanonicalHostedZoneId': '*', + 'loadBalancerDnsName': '*', + 'ipAddressType': 'LoadBalancerIpAddressType', + 'securityGroupIds': '*', + 'vpcId': '*' + } + }, + 'aws-iam.lib': { + 'ImmutableRole': { + 'roleArn': '*', + 'roleName': '*', + 'grant': '*', + 'grantPassRole': '*', + 'grantAssumeRole': '*', + 'attachInlinePolicy': '*', + 'addManagedPolicy': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'addToPolicy': '*', + 'addToPrincipalPolicy': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'applyRemovalPolicy': '*', + 'node': '*' + }, + 'ImportedRole': { + 'roleArn': '*', + 'roleName': '*', + 'account': '*', + 'mutable': '*', + 'addGrantsToResources': '*', + 'defaultPolicyName': '*' + }, + 'PrecreatedRole': { + 'role': { + 'roleArn': '*', + 'roleName': '*', + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*', + 'grantPrincipal': { + 'assumeRoleAction': '*', + 'principalAccount': '*' + }, + 'stack': '*', + 'env': { + 'account': '*', + 'region': '*' + }, + 'node': '*' + }, + 'assumeRolePolicy': '*', + 'missing': '*', + 'rolePath': '*' + } + }, + 'pipelines.lib': { + 'AssetSingletonRole': { + 'assumedBy': { + 'assumeRoleAction': '*', + 'policyFragment': '*', + 'principalAccount': '*' + }, + 'externalId': '*', + 'externalIds': '*', + 'managedPolicies': { + 'managedPolicyArn': '*' + }, + 'inlinePolicies': '*', + 'path': '*', + 'permissionsBoundary': { + 'managedPolicyArn': '*' + }, + 'roleName': '*', + 'maxSessionDuration': '*', + 'description': '*' + } + } +}; diff --git a/packages/aws-cdk-lib/core/lib/analytics-data-source/enums.ts b/packages/aws-cdk-lib/core/lib/analytics-data-source/enums.ts new file mode 100644 index 0000000000000..b8966a5f85085 --- /dev/null +++ b/packages/aws-cdk-lib/core/lib/analytics-data-source/enums.ts @@ -0,0 +1,4028 @@ +/* eslint-disable @cdklabs/no-literal-partition */ +/* eslint-disable quote-props */ +/* eslint-disable @stylistic/comma-dangle */ +/* + * Do not edit this file manually. To prevent misconfiguration, this file + * should only be modified by an automated GitHub workflow, that ensures + * that the ENUMs present in this list + * + */ + +export const AWS_CDK_ENUMS: { [key: string]: any } = { + 'AssetBuildTime': [ + 'all-before-deploy', + 'just-in-time' + ], + 'RequireApproval': [ + 'never', + 'any-change', + 'broadening' + ], + 'LogLevel': [ + 'OFF', + 'ALL', + 'ERROR', + 'FATAL' + ], + 'Command': [ + 'ls', + 'list', + 'diff', + 'bootstrap', + 'deploy', + 'destroy', + 'synthesize', + 'synth', + 'metadata', + 'init', + 'version', + 'watch', + 'gc', + 'rollback', + 'import', + 'acknowledge', + 'ack', + 'notices', + 'migrate', + 'context', + 'docs', + 'doc', + 'doctor' + ], + 'RedirectStatus': [ + '200', + '301', + '302', + '404', + '404-200' + ], + 'Platform': [ + 'x86-64', + 'ARM64' + ], + 'CacheConfigType': [ + 'AMPLIFY_MANAGED', + 'AMPLIFY_MANAGED_NO_COOKIES' + ], + 'TraceConfigurationVendor': [ + 'AWSXRAY' + ], + 'ImageRepositoryType': [ + 'ECR_PUBLIC', + 'ECR' + ], + 'ConfigurationSourceType': [ + 'S3', + 'SECRETS_MANAGER', + 'SSM_PARAMETER', + 'SSM_DOCUMENT', + 'CODE_PIPELINE' + ], + 'HealthCheckProtocolType': [ + 'HTTP', + 'TCP' + ], + 'IpAddressType': [ + 'ipv4', + 'dualstack', + 'dualstack-without-public-ipv4' + ], + 'ConnectionType': [ + 'INTERNET', + 'VPC_LINK' + ], + 'ImageId': [ + 'amazonlinux-2-x86_64', + 'amazonlinux-2023-x86_64', + 'ubuntu-18.04-x86_64', + 'ubuntu-22.04-x86_64' + ], + 'RepositoryVisibility': [ + 0, + 1 + ], + 'RoleMappingMatchType': [ + 'Equals', + 'Contains', + 'StartsWith', + 'NotEqual' + ], + 'IdentityPoolProviderType': [ + 'Facebook', + 'Google', + 'Amazon', + 'Apple', + 'Twitter', + 'OpenId', + 'Saml', + 'UserPool', + 'Custom' + ], + 'AddressFamily': [ + 'IPv4', + 'IPv6' + ], + 'IpamPoolPublicIpSource': [ + 'byoip', + 'amazon' + ], + 'AwsServiceName': [ + 'ec2' + ], + 'IpamScopeType': [ + 'default', + 'custom' + ], + 'NatConnectivityType': [ + 'public', + 'private' + ], + 'OperatingSystem': [ + 'AMAZON_LINUX', + 'AMAZON_LINUX_2', + 'AMAZON_LINUX_2023', + 'WINDOWS_2012', + 'WINDOWS_2016' + ], + 'DeleteOption': [ + 'SAFE_DELETE', + 'FORCE_DELETE', + 'RETAIN' + ], + 'BalancingStrategy': [ + 'SPOT_ONLY', + 'SPOT_PREFERRED', + 'ON_DEMAND_ONLY' + ], + 'PriorityType': [ + 'LATENCY', + 'COST', + 'DESTINATION', + 'LOCATION' + ], + 'Protocol': [ + 'HTTP', + 'HTTPS', + 'TCP', + 'TLS', + 'UDP', + 'TCP_UDP' + ], + 'WorkerType': [ + 'Standard', + 'G.025X', + 'G.1X', + 'G.2X', + 'G.4X', + 'G.8X', + 'Z.2X' + ], + 'JobState': [ + 'SUCCEEDED', + 'FAILED', + 'TIMEOUT', + 'STARTING', + 'RUNNING', + 'STOPPING', + 'STOPPED' + ], + 'MetricType': [ + 'EventCount' + ], + 'ExecutionClass': [ + 'FLEX', + 'STANDARD' + ], + 'GlueVersion': [ + '0.9', + '1.0', + '2.0', + '3.0', + '4.0', + '5.0' + ], + 'JobLanguage': [ + 'scala', + 'python' + ], + 'PythonVersion': [ + '2', + '3', + '3.9' + ], + 'Runtime': [ + 'nodejs18.x', + 'python3.9', + 'python3.10', + 'python3.11' + ], + 'JobType': [ + 'glueetl', + 'gluestreaming', + 'pythonshell', + 'glueray' + ], + 'MaxCapacity': [ + 0.0625, + 1 + ], + 'PredicateLogical': [ + 'AND', + 'ANY' + ], + 'ConditionLogicalOperator': [ + 'EQUALS' + ], + 'CrawlerState': [ + 'RUNNING', + 'CANCELLING', + 'CANCELLED', + 'SUCCEEDED', + 'FAILED', + 'ERROR' + ], + 'TableEncryption': [ + 'AWS_OWNED', + 'CUSTOMER_MANAGED', + 'AWS_MANAGED' + ], + 'S3EncryptionMode': [ + 'SSE-S3', + 'SSE-KMS' + ], + 'CloudWatchEncryptionMode': [ + 'SSE-KMS' + ], + 'JobBookmarksEncryptionMode': [ + 'CSE-KMS' + ], + 'CompressionType': [ + 'None', + 'Gzip' + ], + 'InvalidCharHandlingAction': [ + 'DISABLED', + 'FAIL', + 'SET_TO_NULL', + 'DROP_ROW', + 'REPLACE' + ], + 'NumericOverflowHandlingAction': [ + 'DISABLED', + 'FAIL', + 'SET_TO_NULL', + 'DROP_ROW' + ], + 'SurplusBytesHandlingAction': [ + 'SET_TO_NULL', + 'DISABLED', + 'FAIL', + 'DROP_ROW', + 'TRUNCATE' + ], + 'SurplusCharHandlingAction': [ + 'SET_TO_NULL', + 'DISABLED', + 'FAIL', + 'DROP_ROW', + 'TRUNCATE' + ], + 'ColumnCountMismatchHandlingAction': [ + 'DISABLED', + 'FAIL', + 'SET_TO_NULL', + 'DROP_ROW' + ], + 'WriteParallel': [ + 'on', + 'off' + ], + 'OrcColumnMappingType': [ + 'name', + 'position' + ], + 'StorageParameters': [ + 'skip.header.line.count', + 'data_cleansing_enabled', + 'compression_type', + 'invalid_char_handling', + 'replacement_char', + 'numeric_overflow_handling', + 'surplus_bytes_handling', + 'surplus_char_handling', + 'column_count_mismatch_handling', + 'num_rows', + 'serialization.null.format', + 'orc.schema.resolution', + 'write.parallel', + 'write.maxfilesize.mb', + 'write.kms.key.id' + ], + 'FirehoseRecordSeparator': [ + '\n', + '\t', + '\r\n', + ',' + ], + 'MqttQualityOfService': [ + 0, + 1 + ], + 'SnsActionMessageFormat': [ + 'RAW', + 'JSON' + ], + 'AuditCheck': [ + 'AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK', + 'CA_CERTIFICATE_EXPIRING_CHECK', + 'CA_CERTIFICATE_KEY_QUALITY_CHECK', + 'CONFLICTING_CLIENT_IDS_CHECK', + 'DEVICE_CERTIFICATE_EXPIRING_CHECK', + 'DEVICE_CERTIFICATE_KEY_QUALITY_CHECK', + 'DEVICE_CERTIFICATE_SHARED_CHECK', + 'IOT_POLICY_OVERLY_PERMISSIVE_CHECK', + 'IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK', + 'IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK', + 'LOGGING_DISABLED_CHECK', + 'REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK', + 'REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK', + 'UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK' + ], + 'DayOfWeek': [ + 'SUN', + 'MON', + 'TUE', + 'WED', + 'THU', + 'FRI', + 'SAT' + ], + 'Frequency': [ + 'DAILY', + 'WEEKLY', + 'BIWEEKLY', + 'MONTHLY' + ], + 'EventEvaluation': [ + 'BATCH', + 'SERIAL' + ], + 'LatencyMode': [ + 'LOW', + 'NORMAL' + ], + 'ChannelType': [ + 'STANDARD', + 'BASIC', + 'ADVANCED_SD', + 'ADVANCED_HD' + ], + 'Preset': [ + 'CONSTRAINED_BANDWIDTH_DELIVERY', + 'HIGHER_BANDWIDTH_DELIVERY' + ], + 'RenditionSelection': [ + 'ALL', + 'NONE', + 'CUSTOM' + ], + 'RecordingMode': [ + 'INTERVAL', + 'DISABLED' + ], + 'Storage': [ + 'SEQUENTIAL', + 'LATEST' + ], + 'Resolution': [ + 'FULL_HD', + 'HD', + 'SD', + 'LOWEST_RESOLUTION' + ], + 'MetricsLevel': [ + 'APPLICATION', + 'TASK', + 'OPERATOR', + 'PARALLELISM' + ], + 'StreamEncryptionType': [ + 0, + 1, + 2 + ], + 'BackupMode': [ + 0, + 1 + ], + 'DependenciesFile': [ + 'requirements.txt', + 'poetry.lock', + 'Pipfile.lock', + '' + ], + 'CustomLayer': [ + 'POI' + ], + 'Style': [ + 'VectorEsriNavigation', + 'RasterEsriImagery', + 'VectorEsriLightGrayCanvas', + 'VectorEsriTopographic', + 'VectorEsriStreets', + 'VectorEsriDarkGrayCanvas', + 'VectorHereExplore', + 'RasterHereExploreSatellite', + 'HybridHereExploreSatellite', + 'VectorHereContrast', + 'VectorHereExploreTruck', + 'VectorGrabStandardLight', + 'VectorGrabStandardDark', + 'VectorOpenDataStandardLight', + 'VectorOpenDataStandardDark', + 'VectorOpenDataVisualizationLight', + 'VectorOpenDataVisualizationDark' + ], + 'PoliticalView': [ + 'IND' + ], + 'IntendedUse': [ + 'SingleUse', + 'Storage' + ], + 'PositionFiltering': [ + 'TimeBased', + 'DistanceBased', + 'AccuracyBased' + ], + 'DataSource': [ + 'Esri', + 'Grab', + 'Here' + ], + 'StorageMode': [ + 'LOCAL', + 'TIERED' + ], + 'ClusterMonitoringLevel': [ + 'DEFAULT', + 'PER_BROKER', + 'PER_TOPIC_PER_BROKER', + 'PER_TOPIC_PER_PARTITION' + ], + 'ClientBrokerEncryption': [ + 'TLS', + 'TLS_PLAINTEXT', + 'PLAINTEXT' + ], + 'TemplateType': [ + 'Text', + 'Object' + ], + 'IncludeExecutionData': [ + 'ALL' + ], + 'S3OutputFormat': [ + 'plain', + 'json', + 'w3c' + ], + 'DesiredState': [ + 'RUNNING', + 'STOPPED' + ], + 'PipeVariable': [ + '', + '', + '', + '', + '', + '', + '', + '' + ], + 'OnPartialBatchItemFailure': [ + 'AUTOMATIC_BISECT' + ], + 'KinesisStartingPosition': [ + 'TRIM_HORIZON', + 'LATEST', + 'AT_TIMESTAMP' + ], + 'DynamoDBStartingPosition': [ + 'TRIM_HORIZON', + 'LATEST' + ], + 'LambdaFunctionInvocationType': [ + 'FIRE_AND_FORGET', + 'REQUEST_RESPONSE' + ], + 'StateMachineInvocationType': [ + 'FIRE_AND_FORGET', + 'REQUEST_RESPONSE' + ], + 'NodeType': [ + 'Standard', + 'GPU', + 'INFERENTIA', + 'TRAINIUM' + ], + 'ClusterType': [ + 'single-node', + 'multi-node' + ], + 'ResourceAction': [ + 'pause-cluster', + 'resume-cluster', + 'failover-primary-compute' + ], + 'TableAction': [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + 'TableDistStyle': [ + 'AUTO', + 'EVEN', + 'KEY', + 'ALL' + ], + 'TableSortStyle': [ + 'AUTO', + 'COMPOUND', + 'INTERLEAVED' + ], + 'ColumnEncoding': [ + 'AUTO', + 'RAW', + 'AZ64', + 'BYTEDICT', + 'DELTA', + 'DELTA32K', + 'LZO', + 'MOSTLY8', + 'MOSTLY16', + 'MOSTLY32', + 'RUNLENGTH', + 'TEXT255', + 'TEXT32K', + 'ZSTD' + ], + 'InvocationHttpResponseCode': [ + 'Invocation4XXErrors', + 'Invocation5XXErrors' + ], + 'SharePermission': [ + 0, + 1 + ], + 'SynthesisMessageLevel': [ + 'info', + 'warning', + 'error' + ], + 'Partition': [ + 'aws', + 'aws-cn', + 'aws-us-gov', + 'aws-iso', + 'aws-iso-b', + 'aws-iso-f', + 'aws-iso-e' + ], + 'TemplateSourceOptions': [ + 'path', + 'stack', + 'scan' + ], + 'ScanStatus': [ + 'IN_PROGRESS', + 'COMPLETE', + 'FAILED' + ], + 'FilterType': [ + 'resource-identifier', + 'resource-type-prefix', + 'tag-key', + 'tag-value' + ], + 'FromScan': [ + 0, + 1, + 2 + ], + 'SubnetType': [ + 'Isolated', + 'Deprecated_Isolated', + 'Private', + 'Deprecated_Private_NAT', + 'Deprecated_Private', + 'Public' + ], + 'DeploymentState': [ + 'pending', + 'queued', + 'deploying', + 'completed', + 'failed', + 'skipped' + ], + 'SecurityPolicy': [ + 'TLS_1_0', + 'TLS_1_2' + ], + 'ContentHandling': [ + 'CONVERT_TO_BINARY', + 'CONVERT_TO_TEXT' + ], + 'IntegrationType': [ + 'AWS', + 'AWS_PROXY', + 'HTTP', + 'HTTP_PROXY', + 'MOCK' + ], + 'PassthroughBehavior': [ + 'WHEN_NO_MATCH', + 'NEVER', + 'WHEN_NO_TEMPLATES' + ], + 'JsonSchemaVersion': [ + 'http://json-schema.org/draft-04/schema#', + 'http://json-schema.org/draft-07/schema#' + ], + 'JsonSchemaType': [ + 'null', + 'boolean', + 'object', + 'array', + 'number', + 'integer', + 'string' + ], + 'AuthorizationType': [ + 'API_KEY', + 'BASIC', + 'OAUTH_CLIENT_CREDENTIALS' + ], + 'ApiKeySourceType': [ + 'HEADER', + 'AUTHORIZER' + ], + 'EndpointType': [ + 'EDGE', + 'REGIONAL' + ], + 'MethodLoggingLevel': [ + 'OFF', + 'ERROR', + 'INFO' + ], + 'Period': [ + 'DAY', + 'WEEK', + 'MONTH' + ], + 'UsagePlanKeyType': [ + 'API_KEY' + ], + 'ConfigurationType': [ + 'AWS.Freeform', + 'AWS.AppConfig.FeatureFlags' + ], + 'ValidatorType': [ + 'JSON_SCHEMA', + 'LAMBDA' + ], + 'GrowthType': [ + 'LINEAR', + 'EXPONENTIAL' + ], + 'MonitorType': [ + 0, + 1 + ], + 'ActionPoint': [ + 'PRE_CREATE_HOSTED_CONFIGURATION_VERSION', + 'PRE_START_DEPLOYMENT', + 'ON_DEPLOYMENT_START', + 'ON_DEPLOYMENT_STEP', + 'ON_DEPLOYMENT_BAKING', + 'ON_DEPLOYMENT_COMPLETE', + 'ON_DEPLOYMENT_ROLLED_BACK', + 'AT_DEPLOYMENT_TICK' + ], + 'SourceType': [ + 'lambda', + 'sqs', + 'sns', + 'events' + ], + 'DeletionProtectionCheck': [ + 'ACCOUNT_DEFAULT', + 'APPLY', + 'BYPASS' + ], + 'ServiceNamespace': [ + 'ecs', + 'elasticmapreduce', + 'ec2', + 'appstream', + 'dynamodb', + 'rds', + 'sagemaker', + 'custom-resource', + 'lambda', + 'comprehend', + 'kafka', + 'elasticache', + 'neptune' + ], + 'AdjustmentType': [ + 'ChangeInCapacity', + 'PercentChangeInCapacity', + 'ExactCapacity' + ], + 'MetricAggregationType': [ + 'Average', + 'Minimum', + 'Maximum' + ], + 'PredefinedMetric': [ + 'ASGAverageCPUUtilization', + 'ASGAverageNetworkIn', + 'ASGAverageNetworkOut', + 'ALBRequestCountPerTarget' + ], + 'HttpRouteMethod': [ + 'GET', + 'HEAD', + 'POST', + 'PUT', + 'DELETE', + 'CONNECT', + 'OPTIONS', + 'TRACE', + 'PATCH' + ], + 'TlsMode': [ + 'STRICT', + 'PERMISSIVE', + 'DISABLED' + ], + 'MeshFilterType': [ + 'ALLOW_ALL', + 'DROP_ALL' + ], + 'HttpRouteProtocol': [ + 'http', + 'https' + ], + 'HttpRetryEvent': [ + 'server-error', + 'gateway-error', + 'client-error', + 'stream-error' + ], + 'TcpRetryEvent': [ + 'connection-error' + ], + 'GrpcRetryEvent': [ + 'cancelled', + 'deadline-exceeded', + 'internal', + 'resource-exhausted', + 'unavailable' + ], + 'IpPreference': [ + 'IPv4_ONLY', + 'IPv4_PREFERRED', + 'IPv6_ONLY', + 'IPv6_PREFERRED' + ], + 'DnsResponseType': [ + 'LOADBALANCER', + 'ENDPOINTS' + ], + 'Visibility': [ + 'GLOBAL', + 'PRIVATE' + ], + 'UserPoolDefaultAction': [ + 'ALLOW', + 'DENY' + ], + 'FieldLogLevel': [ + 'NONE', + 'ERROR', + 'INFO', + 'DEBUG', + 'ALL' + ], + 'IntrospectionConfig': [ + 'ENABLED', + 'DISABLED' + ], + 'FunctionRuntimeFamily': [ + 'APPSYNC_JS' + ], + 'MergeType': [ + 'MANUAL_MERGE', + 'AUTO_MERGE' + ], + 'Monitoring': [ + 0, + 1 + ], + 'OnDemandAllocationStrategy': [ + 'prioritized', + 'lowest-price' + ], + 'SpotAllocationStrategy': [ + 'lowest-price', + 'capacity-optimized', + 'capacity-optimized-prioritized', + 'price-capacity-optimized' + ], + 'CapacityDistributionStrategy': [ + 'balanced-only', + 'balanced-best-effort' + ], + 'UpdateType': [ + 'None', + 'Replace', + 'RollingUpdate' + ], + 'ScalingEvent': [ + 'autoscaling:EC2_INSTANCE_LAUNCH', + 'autoscaling:EC2_INSTANCE_TERMINATE', + 'autoscaling:EC2_INSTANCE_TERMINATE_ERROR', + 'autoscaling:EC2_INSTANCE_LAUNCH_ERROR', + 'autoscaling:TEST_NOTIFICATION' + ], + 'ScalingProcess': [ + 'Launch', + 'Terminate', + 'HealthCheck', + 'ReplaceUnhealthy', + 'AZRebalance', + 'AlarmNotification', + 'ScheduledActions', + 'AddToLoadBalancer', + 'InstanceRefresh' + ], + 'HealthCheckType': [ + 'HTTP', + 'HTTPS', + 'TCP' + ], + 'DefaultResult': [ + 'CONTINUE', + 'ABANDON' + ], + 'LifecycleTransition': [ + 'autoscaling:EC2_INSTANCE_LAUNCHING', + 'autoscaling:EC2_INSTANCE_TERMINATING' + ], + 'TerminationPolicy': [ + 'AllocationStrategy', + 'ClosestToNextInstanceHour', + 'Default', + 'NewestInstance', + 'OldestInstance', + 'OldestLaunchConfiguration', + 'OldestLaunchTemplate', + 'CustomLambdaFunction' + ], + 'EbsDeviceVolumeType': [ + 'standard', + 'io1', + 'io2', + 'gp2', + 'gp3', + 'st1', + 'sc1', + 'gp2', + 'gp3', + 'io1', + 'io2', + 'st1', + 'sc1', + 'standard' + ], + 'PoolState': [ + 'Hibernated', + 'Running', + 'Stopped' + ], + 'TagOperation': [ + 'STRINGEQUALS', + 'dummy' + ], + 'BackupVaultEvents': [ + 'BACKUP_JOB_STARTED', + 'BACKUP_JOB_COMPLETED', + 'BACKUP_JOB_SUCCESSFUL', + 'BACKUP_JOB_FAILED', + 'BACKUP_JOB_EXPIRED', + 'RESTORE_JOB_STARTED', + 'RESTORE_JOB_COMPLETED', + 'RESTORE_JOB_SUCCESSFUL', + 'RESTORE_JOB_FAILED', + 'COPY_JOB_STARTED', + 'COPY_JOB_SUCCESSFUL', + 'COPY_JOB_FAILED', + 'RECOVERY_POINT_MODIFIED', + 'BACKUP_PLAN_CREATED', + 'BACKUP_PLAN_MODIFIED', + 'S3_BACKUP_OBJECT_FAILED', + 'S3_RESTORE_OBJECT_FAILED' + ], + 'UlimitName': [ + 'core', + 'cpu', + 'data', + 'fsize', + 'locks', + 'memlock', + 'msgqueue', + 'nice', + 'nofile', + 'nproc', + 'rss', + 'rtprio', + 'rttime', + 'sigpending', + 'stack' + ], + 'Compatibility': [ + 0, + 1, + 2, + 3 + ], + 'ImagePullPolicy': [ + 'Always', + 'IfNotPresent', + 'Never' + ], + 'EmptyDirMediumType': [ + '', + 'Memory' + ], + 'DnsPolicy': [ + 'Default', + 'ClusterFirst', + 'ClusterFirstWithHostNet' + ], + 'Action': [ + 'allow', + 'deny' + ], + 'JobStateTimeLimitActionsAction': [ + 'CANCEL' + ], + 'JobStateTimeLimitActionsReason': [ + 'CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY', + 'MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE', + 'MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT' + ], + 'JobStateTimeLimitActionsState': [ + 'RUNNABLE' + ], + 'DevicePermission': [ + 'read', + 'write', + 'mknod' + ], + 'TmpfsMountOption': [ + 'defaults', + 'ro', + 'rw', + 'suid', + 'nosuid', + 'dev', + 'nodev', + 'exec', + 'noexec', + 'sync', + 'async', + 'dirsync', + 'remount', + 'mand', + 'nomand', + 'atime', + 'noatime', + 'diratime', + 'nodiratime', + 'bind', + 'rbind', + 'unbindable', + 'runbindable', + 'private', + 'rprivate', + 'shared', + 'rshared', + 'slave', + 'rslave', + 'relatime', + 'norelatime', + 'strictatime', + 'nostrictatime', + 'mode', + 'uid', + 'gid', + 'nr_inodes', + 'nr_blocks', + 'mpol' + ], + 'EcsMachineImageType': [ + 'ECS_AL2', + 'ECS_AL2023', + 'ECS_AL2_NVIDIA' + ], + 'EksMachineImageType': [ + 'EKS_AL2', + 'EKS_AL2_NVIDIA' + ], + 'AllocationStrategy': [ + 'BEST_FIT', + 'BEST_FIT_PROGRESSIVE', + 'SPOT_CAPACITY_OPTIMIZED', + 'SPOT_PRICE_CAPACITY_OPTIMIZED' + ], + 'ValidationMethod': [ + 'EMAIL', + 'DNS' + ], + 'LoggingLevel': [ + 'ERROR', + 'INFO', + 'NONE' + ], + 'CloudFormationCapabilities': [ + '', + 'CAPABILITY_IAM', + 'CAPABILITY_NAMED_IAM', + 'CAPABILITY_AUTO_EXPAND' + ], + 'HttpVersion': [ + 'http1.1', + 'http2', + 'http2and3', + 'http3' + ], + 'PriceClass': [ + 'PriceClass_100', + 'PriceClass_200', + 'PriceClass_All' + ], + 'ViewerProtocolPolicy': [ + 'https-only', + 'redirect-to-https', + 'allow-all' + ], + 'OriginProtocolPolicy': [ + 'http-only', + 'match-viewer', + 'https-only' + ], + 'SSLMethod': [ + 'sni-only', + 'vip' + ], + 'SecurityPolicyProtocol': [ + 'SSLv3', + 'TLSv1', + 'TLSv1_2016', + 'TLSv1.1_2016', + 'TLSv1.2_2018', + 'TLSv1.2_2019', + 'TLSv1.2_2021' + ], + 'LambdaEdgeEventType': [ + 'origin-request', + 'origin-response', + 'viewer-request', + 'viewer-response' + ], + 'FunctionEventType': [ + 'viewer-request', + 'viewer-response' + ], + 'AccessLevel': [ + 'READ', + 'LIST', + 'WRITE', + 'DELETE' + ], + 'OriginAccessControlOriginType': [ + 's3', + 'lambda', + 'mediastore', + 'mediapackagev2' + ], + 'SigningBehavior': [ + 'always', + 'never', + 'no-override' + ], + 'SigningProtocol': [ + 'sigv4' + ], + 'HeadersFrameOption': [ + 'DENY', + 'SAMEORIGIN' + ], + 'HeadersReferrerPolicy': [ + 'no-referrer', + 'no-referrer-when-downgrade', + 'origin', + 'origin-when-cross-origin', + 'same-origin', + 'strict-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url' + ], + 'FailoverStatusCode': [ + 403, + 404, + 500, + 502, + 503, + 504 + ], + 'OriginSslPolicy': [ + 'SSLv3', + 'TLSv1', + 'TLSv1.1', + 'TLSv1.2' + ], + 'CloudFrontAllowedMethods': [ + 'GH', + 'GHO', + 'ALL' + ], + 'CloudFrontAllowedCachedMethods': [ + 'GH', + 'GHO' + ], + 'ReadWriteType': [ + 'ReadOnly', + 'WriteOnly', + 'All', + 'None' + ], + 'ManagementEventSources': [ + 'kms.amazonaws.com', + 'rdsdata.amazonaws.com' + ], + 'DataResourceType': [ + 'AWS::Lambda::Function', + 'AWS::S3::Object' + ], + 'AlarmState': [ + 'ALARM', + 'OK', + 'INSUFFICIENT_DATA' + ], + 'Operator': [ + 'AND', + 'OR', + 'NOT' + ], + 'AlarmStatusWidgetSortBy': [ + 'default', + 'stateUpdatedTimestamp', + 'timestamp' + ], + 'ComparisonOperator': [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + 'TreatMissingData': [ + 'breaching', + 'notBreaching', + 'ignore', + 'missing' + ], + 'PeriodOverride': [ + 'auto', + 'inherit' + ], + 'GraphWidgetView': [ + 'timeSeries', + 'bar', + 'pie' + ], + 'TableLayout': [ + 'horizontal', + 'vertical' + ], + 'TableSummaryColumn': [ + 'MIN', + 'MAX', + 'SUM', + 'AVG' + ], + 'Shading': [ + 'none', + 'above', + 'below' + ], + 'VerticalShading': [ + 'none', + 'before', + 'after' + ], + 'LegendPosition': [ + 'bottom', + 'right', + 'hidden' + ], + 'LogQueryVisualizationType': [ + 'table', + 'line', + 'stackedarea', + 'bar', + 'pie' + ], + 'Statistic': [ + 'SampleCount', + 'Average', + 'Sum', + 'Minimum', + 'Maximum' + ], + 'Unit': [ + 'Seconds', + 'Microseconds', + 'Milliseconds', + 'Bytes', + 'Kilobytes', + 'Megabytes', + 'Gigabytes', + 'Terabytes', + 'Bits', + 'Kilobits', + 'Megabits', + 'Gigabits', + 'Terabits', + 'Percent', + 'Count', + 'Bytes/Second', + 'Kilobytes/Second', + 'Megabytes/Second', + 'Gigabytes/Second', + 'Terabytes/Second', + 'Bits/Second', + 'Kilobits/Second', + 'Megabits/Second', + 'Gigabits/Second', + 'Terabits/Second', + 'Count/Second', + 'None' + ], + 'TextWidgetBackground': [ + 'solid', + 'transparent' + ], + 'VariableInputType': [ + 'input', + 'radio', + 'select' + ], + 'VariableType': [ + 'property', + 'pattern' + ], + 'Ec2InstanceAction': [ + 'stop', + 'terminate', + 'recover', + 'reboot' + ], + 'OpsItemSeverity': [ + '1', + '2', + '3', + '4' + ], + 'OpsItemCategory': [ + 'Availability', + 'Cost', + 'Performance', + 'Recovery', + 'Security' + ], + 'LocalCacheMode': [ + 'LOCAL_SOURCE_CACHE', + 'LOCAL_DOCKER_LAYER_CACHE', + 'LOCAL_CUSTOM_CACHE' + ], + 'ComputeType': [ + 'BUILD_GENERAL1_SMALL', + 'BUILD_GENERAL1_MEDIUM', + 'BUILD_GENERAL1_LARGE', + 'BUILD_GENERAL1_XLARGE', + 'BUILD_GENERAL1_2XLARGE', + 'BUILD_LAMBDA_1GB', + 'BUILD_LAMBDA_2GB', + 'BUILD_LAMBDA_4GB', + 'BUILD_LAMBDA_8GB', + 'BUILD_LAMBDA_10GB' + ], + 'EnvironmentType': [ + 'ARM_CONTAINER', + 'LINUX_CONTAINER', + 'LINUX_GPU_CONTAINER', + 'WINDOWS_SERVER_2019_CONTAINER', + 'WINDOWS_SERVER_2022_CONTAINER', + 'MAC_ARM', + 'LINUX_EC2', + 'ARM_EC2', + 'WINDOWS_EC2' + ], + 'FleetComputeType': [ + 'BUILD_GENERAL1_SMALL', + 'BUILD_GENERAL1_MEDIUM', + 'BUILD_GENERAL1_LARGE', + 'BUILD_GENERAL1_XLARGE', + 'BUILD_GENERAL1_2XLARGE' + ], + 'ImagePullPrincipalType': [ + 'CODEBUILD', + 'SERVICE_ROLE' + ], + 'WindowsImageType': [ + 'WINDOWS_CONTAINER', + 'WINDOWS_SERVER_2019_CONTAINER', + 'WINDOWS_SERVER_2022_CONTAINER' + ], + 'BuildEnvironmentVariableType': [ + 'PLAINTEXT', + 'PARAMETER_STORE', + 'SECRETS_MANAGER' + ], + 'ProjectVisibility': [ + 'PUBLIC_READ', + 'PRIVATE' + ], + 'ProjectNotificationEvents': [ + 'codebuild-project-build-state-failed', + 'codebuild-project-build-state-succeeded', + 'codebuild-project-build-state-in-progress', + 'codebuild-project-build-state-stopped', + 'codebuild-project-build-phase-failure', + 'codebuild-project-build-phase-success' + ], + 'ReportGroupType': [ + 'TEST', + 'CODE_COVERAGE' + ], + 'EventAction': [ + 'PUSH', + 'PULL_REQUEST_CREATED', + 'PULL_REQUEST_UPDATED', + 'PULL_REQUEST_CLOSED', + 'PULL_REQUEST_MERGED', + 'PULL_REQUEST_REOPENED', + 'RELEASED', + 'PRERELEASED', + 'WORKFLOW_JOB_QUEUED' + ], + 'WebhookFilterTypes': [ + 'FILE_PATH', + 'COMMIT_MESSAGE', + 'HEAD_REF', + 'ACTOR_ACCOUNT_ID', + 'BASE_REF', + 'REPOSITORY_NAME' + ], + 'RepositoryEventTrigger': [ + 'all', + 'updateReference', + 'createReference', + 'deleteReference' + ], + 'RepositoryNotificationEvents': [ + 'codecommit-repository-comments-on-commits', + 'codecommit-repository-comments-on-pull-requests', + 'codecommit-repository-approvals-status-changed', + 'codecommit-repository-approvals-rule-override', + 'codecommit-repository-pull-request-created', + 'codecommit-repository-pull-request-source-updated', + 'codecommit-repository-pull-request-status-changed', + 'codecommit-repository-pull-request-merged', + 'codecommit-repository-branches-and-tags-created', + 'codecommit-repository-branches-and-tags-deleted', + 'codecommit-repository-branches-and-tags-updated' + ], + 'ComputePlatform': [ + 'AWSLambda', + 'Default' + ], + 'ActionCategory': [ + 'Source', + 'Build', + 'Test', + 'Approval', + 'Deploy', + 'Invoke' + ], + 'PipelineNotificationEvents': [ + 'codepipeline-pipeline-pipeline-execution-failed', + 'codepipeline-pipeline-pipeline-execution-canceled', + 'codepipeline-pipeline-pipeline-execution-started', + 'codepipeline-pipeline-pipeline-execution-resumed', + 'codepipeline-pipeline-pipeline-execution-succeeded', + 'codepipeline-pipeline-pipeline-execution-superseded', + 'codepipeline-pipeline-stage-execution-started', + 'codepipeline-pipeline-stage-execution-succeeded', + 'codepipeline-pipeline-stage-execution-resumed', + 'codepipeline-pipeline-stage-execution-canceled', + 'codepipeline-pipeline-stage-execution-failed', + 'codepipeline-pipeline-action-execution-succeeded', + 'codepipeline-pipeline-action-execution-failed', + 'codepipeline-pipeline-action-execution-canceled', + 'codepipeline-pipeline-action-execution-started', + 'codepipeline-pipeline-manual-approval-failed', + 'codepipeline-pipeline-manual-approval-needed', + 'codepipeline-pipeline-manual-approval-succeeded' + ], + 'PipelineType': [ + 'V1', + 'V2' + ], + 'ExecutionMode': [ + 'QUEUED', + 'SUPERSEDED', + 'PARALLEL' + ], + 'GitPullRequestEvent': [ + 'OPEN', + 'UPDATED', + 'CLOSED' + ], + 'ProviderType': [ + 'CodeStarSourceConnection' + ], + 'DetailType': [ + 'BASIC', + 'FULL' + ], + 'VerificationEmailStyle': [ + 'CONFIRM_WITH_CODE', + 'CONFIRM_WITH_LINK' + ], + 'LambdaVersion': [ + 'V1_0', + 'V2_0' + ], + 'Mfa': [ + 'OFF', + 'OPTIONAL', + 'ON' + ], + 'AccountRecovery': [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + 'AdvancedSecurityMode': [ + 'ENFORCED', + 'AUDIT', + 'OFF' + ], + 'FeaturePlan': [ + 'LITE', + 'ESSENTIALS', + 'PLUS' + ], + 'MaximumExecutionFrequency': [ + 'One_Hour', + 'Three_Hours', + 'Six_Hours', + 'Twelve_Hours', + 'TwentyFour_Hours' + ], + 'EventSource': [ + 'aws.config' + ], + 'MessageType': [ + 'ConfigurationItemChangeNotification', + 'OversizedConfigurationItemChangeNotification', + 'ScheduledNotification', + 'ConfigurationSnapshotDeliveryCompleted' + ], + 'StorageType': [ + 'standard', + 'gp2', + 'gp3', + 'io1', + 'io2' + ], + 'CapacityMode': [ + 'FIXED', + 'AUTOSCALED' + ], + 'Operation': [ + 'GetItem', + 'BatchGetItem', + 'Scan', + 'Query', + 'GetRecords', + 'PutItem', + 'DeleteItem', + 'UpdateItem', + 'BatchWriteItem', + 'TransactWriteItems', + 'TransactGetItems', + 'ExecuteTransaction', + 'BatchExecuteStatement', + 'ExecuteStatement' + ], + 'AttributeType': [ + 'B', + 'N', + 'S' + ], + 'BillingMode': [ + 'PAY_PER_REQUEST', + 'PROVISIONED' + ], + 'ProjectionType': [ + 'KEYS_ONLY', + 'INCLUDE', + 'ALL' + ], + 'TableClass': [ + 'STANDARD', + 'STANDARD_INFREQUENT_ACCESS' + ], + 'StreamViewType': [ + 'NEW_IMAGE', + 'OLD_IMAGE', + 'NEW_AND_OLD_IMAGES', + 'KEYS_ONLY' + ], + 'InputCompressionType': [ + 'GZIP', + 'ZSTD', + 'NONE' + ], + 'ApproximateCreationDateTimePrecision': [ + 'MILLISECOND', + 'MICROSECOND' + ], + 'ServiceManager': [ + 0, + 1, + 2 + ], + 'TransportProtocol': [ + 'tcp', + 'udp' + ], + 'VpnPort': [ + 443, + 1194 + ], + 'ClientVpnSessionTimeout': [ + 8, + 10, + 12, + 24 + ], + 'InstanceClass': [ + 'standard3', + 'm3', + 'standard4', + 'm4', + 'standard5', + 'm5', + 'standard5-nvme-drive', + 'm5d', + 'standard5-amd', + 'm5a', + 'standard5-amd-nvme-drive', + 'm5ad', + 'standard5-high-performance', + 'm5n', + 'standard5-nvme-drive-high-performance', + 'm5dn', + 'standard5-high-compute', + 'm5zn', + 'memory3', + 'r3', + 'memory4', + 'r4', + 'memory5', + 'r5', + 'memory6-amd', + 'r6a', + 'memory6-intel', + 'r6i', + 'memory6-intel-nvme-drive', + 'r6id', + 'memory6-intel-high-performance', + 'r6in', + 'memory6-intel-nvme-drive-high-performance', + 'r6idn', + 'memory5-high-performance', + 'r5n', + 'memory5-nvme-drive', + 'r5d', + 'memory5-nvme-drive-high-performance', + 'r5dn', + 'memory5-amd', + 'r5a', + 'memory5-amd-nvme-drive', + 'r5ad', + 'high-memory-3tb-1', + 'u-3tb1', + 'high-memory-6tb-1', + 'u-6tb1', + 'high-memory-9tb-1', + 'u-9tb1', + 'high-memory-12tb-1', + 'u-12tb1', + 'high-memory-18tb-1', + 'u-18tb1', + 'high-memory-24tb-1', + 'u-24tb1', + 'high-memory-6tb-7', + 'u7i-6tb', + 'high-memory-8tb-7', + 'u7i-8tb', + 'high-memory-12tb-7', + 'u7i-12tb', + 'high-memory-high-network-16tb-7', + 'u7in-16tb', + 'high-memory-high-network-24tb-7', + 'u7in-24tb', + 'high-memory-high-network-32tb-7', + 'u7in-32tb', + 'high-memory-high-network-hpe-32tb-7', + 'u7inh-32tb', + 'memory5-ebs-optimized', + 'r5b', + 'memory6-graviton', + 'r6g', + 'memory6-graviton2-nvme-drive', + 'r6gd', + 'memory7-graviton', + 'r7g', + 'memory7-graviton3-nvme-drive', + 'r7gd', + 'memory7-intel-base', + 'r7i', + 'memory7-intel', + 'r7iz', + 'memory7-amd', + 'r7a', + 'memory8-graviton', + 'r8g', + 'compute3', + 'c3', + 'compute4', + 'c4', + 'compute5', + 'c5', + 'compute5-nvme-drive', + 'c5d', + 'compute5-amd', + 'c5a', + 'compute5-amd-nvme-drive', + 'c5ad', + 'compute5-high-performance', + 'c5n', + 'compute6-intel', + 'c6i', + 'compute6-intel-nvme-drive', + 'c6id', + 'compute6-intel-high-performance', + 'c6in', + 'compute6-amd', + 'c6a', + 'compute6-graviton2', + 'c6g', + 'compute7-graviton3', + 'c7g', + 'compute8-graviton4', + 'c8g', + 'compute6-graviton2-nvme-drive', + 'c6gd', + 'compute7-graviton3-nvme-drive', + 'c7gd', + 'compute6-graviton2-high-network-bandwidth', + 'c6gn', + 'compute7-graviton3-high-network-bandwidth', + 'c7gn', + 'compute7-intel', + 'c7i', + 'compute7-intel-flex', + 'c7i-flex', + 'compute7-amd', + 'c7a', + 'storage2', + 'd2', + 'storage3', + 'd3', + 'storage3-enhanced-network', + 'd3en', + 'storage-compute-1', + 'h1', + 'training-accelerator1', + 'trn1', + 'training-accelerator1-enhanced-network', + 'trn1n', + 'training-accelerator2', + 'trn2', + 'training-accelerator2-ultraserver', + 'trn2u', + 'io3', + 'i3', + 'io3-dense-nvme-drive', + 'i3en', + 'io4_intel', + 'i4i', + 'storage4_graviton', + 'i4g', + 'storage4-graviton-network-optimized', + 'im4gn', + 'storage4-graviton-network-storage-optimized', + 'is4gen', + 'storage7-intel-storage-optimized', + 'i7ie', + 'storage8-graviton', + 'i8g', + 'burstable2', + 't2', + 'burstable3', + 't3', + 'burstable3-amd', + 't3a', + 'burstable4-graviton', + 't4g', + 'memory-intensive-1', + 'x1', + 'memory-intensive-1-extended', + 'x1e', + 'memory-intensive-2-graviton2', + 'x2g', + 'memory-intensive-2-graviton2-nvme-drive', + 'x2gd', + 'memory_intensive_2_xt_intel', + 'x2iedn', + 'memory_intensive_2_intel', + 'x2idn', + 'memory_intensive_2_xtz_intel', + 'x2iezn', + 'memory-intensive-8-graviton', + 'x8g', + 'fpga1', + 'f1', + 'fpga2', + 'f2', + 'graphics3-small', + 'g3s', + 'graphics3', + 'g3', + 'graphics4-nvme-drive-high-performance', + 'g4dn', + 'graphics4-amd-nvme-drive', + 'g4ad', + 'graphics5', + 'g5', + 'graphics5-graviton2', + 'g5g', + 'graphics6', + 'g6', + 'graphics6-efficient', + 'g6e', + 'graphics-ram-6', + 'gr6', + 'parallel2', + 'p2', + 'parallel3', + 'p3', + 'parallel3-nvme-drive-high-performance', + 'p3dn', + 'parallel4-nvme-drive-extended', + 'p4de', + 'parallel4', + 'p4d', + 'parallel5', + 'p5', + 'parallel5-extended', + 'p5e', + 'parallel5-extended-network', + 'p5en', + 'arm1', + 'a1', + 'standard6-graviton', + 'm6g', + 'standard6-intel', + 'm6i', + 'standard6-intel-nvme-drive', + 'm6id', + 'standard6-intel-high-performance', + 'm6in', + 'standard6-intel-nvme-drive-high-performance', + 'm6idn', + 'standard6-amd', + 'm6a', + 'standard6-graviton2-nvme-drive', + 'm6gd', + 'standard7-graviton', + 'm7g', + 'standard8-graviton', + 'm8g', + 'standard7-graviton3-nvme-drive', + 'm7gd', + 'standard7-intel', + 'm7i', + 'standard7-intel-flex', + 'm7i-flex', + 'standard7-amd', + 'm7a', + 'high-compute-memory1', + 'z1d', + 'inference1', + 'inf1', + 'inference2', + 'inf2', + 'macintosh1-intel', + 'mac1', + 'macintosh2-m1', + 'mac2', + 'macintosh2-m2', + 'mac2-m2', + 'macintosh2-m2-pro', + 'mac2-m2pro', + 'macintosh2-m1-ultra', + 'mac2-m1ultra', + 'video-transcoding1', + 'vt1', + 'high-performance-computing6-amd', + 'hpc6a', + 'high-performance-computing6-intel-nvme-drive', + 'hpc6id', + 'high-performance-computing7-amd', + 'hpc7a', + 'high-performance-computing7-graviton', + 'hpc7g', + 'deep-learning1', + 'dl1', + 'deep-learning2-qualcomm', + 'dl2q' + ], + 'InstanceArchitecture': [ + 'arm64', + 'x86_64' + ], + 'InstanceSize': [ + 'nano', + 'micro', + 'small', + 'medium', + 'large', + 'xlarge', + '2xlarge', + '3xlarge', + '4xlarge', + '6xlarge', + '8xlarge', + '9xlarge', + '10xlarge', + '12xlarge', + '16xlarge', + '18xlarge', + '24xlarge', + '32xlarge', + '48xlarge', + '56xlarge', + '96xlarge', + '112xlarge', + '224xlarge', + '480xlarge', + 'metal', + 'metal-16xl', + 'metal-24xl', + 'metal-32xl', + 'metal-48xl' + ], + 'KeyPairFormat': [ + 'ppk', + 'pem' + ], + 'KeyPairType': [ + 'rsa', + 'ed25519' + ], + 'CpuCredits': [ + 'standard', + 'unlimited' + ], + 'InstanceInitiatedShutdownBehavior': [ + 'stop', + 'terminate' + ], + 'SpotInstanceInterruption': [ + 'stop', + 'terminate', + 'hibernate' + ], + 'SpotRequestType': [ + 'one-time', + 'persistent' + ], + 'LaunchTemplateHttpTokens': [ + 'optional', + 'required' + ], + 'NatTrafficDirection': [ + 'OUTBOUND_ONLY', + 'INBOUND_AND_OUTBOUND', + 'NONE' + ], + 'TrafficDirection': [ + 0, + 1 + ], + 'PlacementGroupSpreadLevel': [ + 'host', + 'rack' + ], + 'PlacementGroupStrategy': [ + 'cluster', + 'partition', + 'spread' + ], + 'VpcEndpointType': [ + 'Interface', + 'Gateway' + ], + 'FlowLogTrafficType': [ + 'ACCEPT', + 'ALL', + 'REJECT' + ], + 'FlowLogDestinationType': [ + 'cloud-watch-logs', + 's3', + 'kinesis-data-firehose' + ], + 'FlowLogFileFormat': [ + 'plain-text', + 'parquet' + ], + 'FlowLogMaxAggregationInterval': [ + 60, + 600 + ], + 'IpProtocol': [ + 'Ipv4_Only', + 'Dual_Stack' + ], + 'DefaultInstanceTenancy': [ + 'default', + 'dedicated' + ], + 'RouterType': [ + 'CarrierGateway', + 'EgressOnlyInternetGateway', + 'Gateway', + 'Instance', + 'LocalGateway', + 'NatGateway', + 'NetworkInterface', + 'TransitGateway', + 'VpcPeeringConnection', + 'VpcEndpoint' + ], + 'VpnConnectionType': [ + 'ipsec.1', + 'dummy' + ], + 'WindowsVersion': [ + 'Windows_Server-2019-English-Core-EKS_Optimized-1.22', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.22', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.23', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.23', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.24', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.24', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.25', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.25', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.26', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.26', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.27', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.27', + 'Windows_Server-2019-English-Core-EKS_Optimized-1.28', + 'Windows_Server-2019-English-Full-EKS_Optimized-1.28', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.23', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.23', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.24', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.24', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.25', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.25', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.26', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.26', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.27', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.27', + 'Windows_Server-2022-English-Core-EKS_Optimized-1.28', + 'Windows_Server-2022-English-Full-EKS_Optimized-1.28', + 'Windows_Server-1709-English-Core-ContainersLatest', + 'Windows_Server-1709-English-Core-Base', + 'Windows_Server-1803-English-Core-Base', + 'Windows_Server-1803-English-Core-ContainersLatest', + 'Windows_Server-1809-English-Core-Base', + 'Windows_Server-1809-English-Core-ContainersLatest', + 'Windows_Server-2003-R2_SP2-Language_Packs-32Bit-Base', + 'Windows_Server-2003-R2_SP2-English-64Bit-SQL_2005_SP4_Express', + 'Windows_Server-2003-R2_SP2-Language_Packs-64Bit-SQL_2005_SP4_Standard', + 'Windows_Server-2003-R2_SP2-English-32Bit-Base', + 'Windows_Server-2003-R2_SP2-English-64Bit-Base', + 'Windows_Server-2003-R2_SP2-Language_Packs-64Bit-SQL_2005_SP4_Express', + 'Windows_Server-2003-R2_SP2-English-64Bit-SQL_2005_SP4_Standard', + 'Windows_Server-2003-R2_SP2-Language_Packs-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Language_Packs-64Bit-Base', + 'Windows_Server-2008-SP2-English-64Bit-SQL_2008_SP4_Express', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2008_R2_SP3_Web', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2012_SP4_Express', + 'Windows_Server-2008-R2_SP1-Korean-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Chinese_Hong_Kong_SAR-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Chinese_PRC-64Bit-Base', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2008_R2_SP3_Express', + 'Windows_Server-2008-SP2-English-32Bit-Base', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2012_SP4_Web', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-Base', + 'Windows_Server-2008-SP2-English-64Bit-SQL_2008_SP4_Standard', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-SQL_2012_SP4_Express', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-SQL_2008_R2_SP3_Web', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-SQL_2012_SP4_Standard', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-SQL_2008_R2_SP3_Standard', + 'Windows_Server-2008-SP2-English-64Bit-Base', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2012_SP4_Enterprise', + 'Windows_Server-2008-R2_SP1-Japanese-64Bit-SQL_2008_R2_SP3_Express', + 'Windows_Server-2008-R2_SP1-Portuguese_Brazil-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Portugese_Brazil-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Language_Packs-64Bit-SQL_2008_R2_SP3_Standard', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2012_RTM_SP2_Enterprise', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2012_SP4_Standard', + 'Windows_Server-2008-SP2-Portuguese_Brazil-32Bit-Base', + 'Windows_Server-2008-SP2-Portugese_Brazil-32Bit-Base', + 'Windows_Server-2008-R2_SP1-English-64Bit-Base', + 'Windows_Server-2008-R2_SP1-Language_Packs-64Bit-SQL_2008_R2_SP3_Express', + 'Windows_Server-2008-R2_SP1-English-64Bit-Core_SQL_2012_SP4_Standard', + 'Windows_Server-2008-R2_SP1-English-64Bit-Core', + 'Windows_Server-2008-R2_SP1-English-64Bit-SQL_2008_R2_SP3_Standard', + 'Windows_Server-2008-R2_SP1-English-64Bit-SharePoint_2010_SP2_Foundation', + 'Windows_Server-2012-R2_RTM-Chinese_Simplified-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Chinese_Traditional-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Dutch-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP2_Enterprise', + 'Windows_Server-2012-R2_RTM-Hungarian-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2008_R2_SP3_Express', + 'Windows_Server-2008-R2_SP1-Portuguese_Brazil-64Bit-Core', + 'Windows_Server-2008-R2_SP1-Portugese_Brazil-64Bit-Core', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP2_Standard', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP2_Express', + 'Windows_Server-2012-RTM-Italian-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP1_Express', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP2_Web', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP3_Standard', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP2_Express', + 'Windows_Server-2012-R2_RTM-English-Deep-Learning', + 'Windows_Server-2012-R2_RTM-German-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP1_Express', + 'Windows_Server-2012-R2_RTM-Russian-64Bit-Base', + 'Windows_Server-2012-RTM-Chinese_Traditional_Hong_Kong_SAR-64Bit-Base', + 'Windows_Server-2012-RTM-Hungarian-64Bit-Base', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP3_Standard', + 'Windows_Server-2012-RTM-French-64Bit-Base', + 'Windows_Server-2012-R2_RTM-French-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Polish-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2012_SP4_Express', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP3_Standard', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2012_SP4_Standard', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP2_Express', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP3_Web', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP1_Web', + 'Windows_Server-2012-R2_RTM-English-64Bit-Core', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP2_Web', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP3_Enterprise', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP2_Standard', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP3_Web', + 'Windows_Server-2012-RTM-Swedish-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Portuguese_Brazil-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Portugese_Brazil-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Portuguese_Portugal-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Portugese_Portugal-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Swedish-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2012_SP4_Enterprise', + 'Windows_Server-2012-RTM-Chinese_Traditional-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP2_Standard', + 'Windows_Server-2012-RTM-Czech-64Bit-Base', + 'Windows_Server-2012-RTM-Turkish-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-HyperV', + 'Windows_Server-2012-RTM-Korean-64Bit-Base', + 'Windows_Server-2012-RTM-Russian-64Bit-Base', + 'Windows_Server-2012_R2_RTM-English-Full-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP2_Standard', + 'Windows_Server-2012-R2_RTM-Italian-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2008_R2_SP3_Standard', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP1_Standard', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2008_R2_SP3_Web', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP2_Web', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP2_Express', + 'Windows_Server-2012-R2_RTM-Czech-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP1_Standard', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2014_SP2_Express', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2012_SP4_Standard', + 'Windows_Server-2008-SP2-Portuguese_Brazil-64Bit-Base', + 'Windows_Server-2008-SP2-Portugese_Brazil-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP1_Web', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2014_SP3_Express', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP2_Enterprise', + 'Windows_Server-2012-RTM-Japanese-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP1_Enterprise', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP2_Express', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP3_Express', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP2_Standard', + 'Windows_Server-2012_RTM-English-Full-Base', + 'Windows_Server-2012-R2-English-STIG-Full', + 'Windows_Server-2012-RTM-Portuguese_Portugal-64Bit-Base', + 'Windows_Server-2012-RTM-Portugese_Portugal-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP1_Enterprise', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2014_SP2_Web', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2008_R2_SP3_Express', + 'Windows_Server-2012-R2_RTM-English-64Bit-Base', + 'Windows_Server-2012-RTM-Portuguese_Brazil-64Bit-Base', + 'Windows_Server-2012-RTM-Portugese_Brazil-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-P3', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2014_SP3_Standard', + 'Windows_Server-2012-R2_RTM-Spanish-64Bit-Base', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP3_Express', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP3_Standard', + 'Windows_Server-2012-R2-English-STIG-Core', + 'Windows_Server-2012-R2_RTM-Turkish-64Bit-Base', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2012_SP4_Web', + 'Windows_Server-2012-RTM-Polish-64Bit-Base', + 'Windows_Server-2012-RTM-Spanish-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP2_Web', + 'Windows_Server-2012-R2_RTM-Korean-64Bit-Base', + 'Windows_Server-2012-RTM-Dutch-64Bit-Base', + 'Windows_Server-2012-R2_RTM-Chinese_Traditional_Hong_Kong-64Bit-Base', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP3_Express', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP2_Enterprise', + 'Windows_Server-2012-RTM-Chinese_Simplified-64Bit-Base', + 'Windows_Server-2012-RTM-English-64Bit-SQL_2012_SP4_Web', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2014_SP3_Web', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP3_Express', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP3_Web', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP3_Standard', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP3_Express', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP3_Web', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2014_SP2_Standard', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2012_SP4_Express', + 'Windows_Server-2012-R2_RTM-Japanese-64Bit-SQL_2016_SP3_Enterprise', + 'Windows_Server-2012-R2_RTM-English-64Bit-SQL_2016_SP3_Enterprise', + 'Windows_Server-2016-English-Core-Containers', + 'Windows_Server-2016-English-Core-SQL_2016_SP1_Web', + 'Windows_Server-2016-German-Full-Base', + 'Windows_Server-2016-Germal-Full-Base', + 'Windows_Server-2016-English-Core-SQL_2016_SP1_Express', + 'Windows_Server-2016-English-Deep-Learning', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP2_Web', + 'Windows_Server-2016-Korean-Full-Base', + 'Windows_Server-2016-Korean-Full-SQL_2016_SP2_Standard', + 'Windows_Server-2016-Polish-Full-Base', + 'Windows_Server-2016-English-Full-Containers', + 'Windows_Server-2016-English-Full-SQL_2016_SP1_Standard', + 'Windows_Server-2016-Russian-Full-Base', + 'Windows_Server-2016-English-Core-SQL_2016_SP2_Enterprise', + 'Windows_Server-2016-English-Full-SQL_2016_SP1_Express', + 'Windows_Server-2016-Italian-Full-Base', + 'Windows_Server-2016-Spanish-Full-Base', + 'Windows_Server-2012-RTM-German-64Bit-Base', + 'Windows_Server-2012-RTM-Japanese-64Bit-SQL_2008_R2_SP3_Standard', + 'Windows_Server-2016-English-Full-SQL_2016_SP2_Standard', + 'Windows_Server-2016-English-Full-SQL_2016_SP2_Enterprise', + 'Windows_Server-2016-English-Full-HyperV', + 'Windows_Server-2016-English-Core-ContainersLatest', + 'Windows_Server-2016-Dutch-Full-Base', + 'Windows_Server-2016-English-Full-SQL_2016_SP2_Express', + 'Windows_Server-2016-English-Full-SQL_2017_Enterprise', + 'Windows_Server-2016-Hungarian-Full-Base', + 'Windows_Server-2016-Korean-Full-SQL_2016_SP1_Standard', + 'Windows_Server-2016-English-Core-Base', + 'Windows_Server-2016-English-Full-Base', + 'Windows_Server-2016-English-Full-SQL_2017_Web', + 'Windows_Server-2016-English-Core-SQL_2016_SP1_Enterprise', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP1_Web', + 'Windows_Server-2016-Swedish-Full-Base', + 'Windows_Server-2016-Turkish-Full-Base', + 'Windows_Server-2016-Portuguese_Brazil-Full-Base', + 'Windows_Server-2016-Portugese_Brazil-Full-Base', + 'Windows_Server-2016-English-Full-SQL_2019_Standard', + 'Windows_Server-2016-English-Full-SQL_2014_SP3_Standard', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Enterprise', + 'Windows_Server-2016-English-64Bit-SQL_2012_SP4_Enterprise', + 'Windows_Server-2016-English-Core-SQL_2016_SP1_Standard', + 'Windows_Server-2016-English-Core-SQL_2016_SP2_Express', + 'Windows_Server-2016-English-Core-SQL_2016_SP2_Web', + 'Windows_Server-2016-English-Full-SQL_2017_Standard', + 'Windows_Server-2016-Portuguese_Portugal-Full-Base', + 'Windows_Server-2016-Portugese_Portugal-Full-Base', + 'Windows_Server-2016-English-Full-SQL_2014_SP3_Enterprise', + 'Windows_Server-2016-English-Full-SQL_2019_Enterprise', + 'Windows_Server-2016-Japanese-Full-SQL_2017_Standard', + 'Windows_Server-2016-English-Full-SQL_2019_Express', + 'Windows_Server-2016-Japanese-Full-SQL_2017_Web', + 'Windows_Server-2016-English-Core-SQL_2016_SP3_Web', + 'Windows_Server-2016-English-Full-SQL_2016_SP3_Enterprise', + 'Windows_Server-2016-English-STIG-Core', + 'Windows_Server-2016-Korean-Full-SQL_2016_SP3_Standard', + 'Windows_Server-2016-English-Full-ECS_Optimized', + 'Windows_Server-2016-English-Full-SQL_2016_SP3_Standard', + 'Windows_Server-2016-Japanese-Full-SQL_2017_Enterprise', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP2_Express', + 'Windows_Server-2016-Japanese-Full-SQL_2019_Web', + 'Windows_Server-2016-English-Full-SQL_2016_SP3_Web', + 'Windows_Server-2016-English-Full-SQL_2016_SP1_Web', + 'Windows_Server-2016-English-P3', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP1_Enterprise', + 'Windows_Server-2016-Japanese-Full-Base', + 'Windows_Server-2016-Chinese_Simplified-Full-Base', + 'Windows_Server-2016-French-Full-Base', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP2_Enterprise', + 'Windows_Server-2016-Czech-Full-Base', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP1_Standard', + 'Windows_Server-2016-English-Core-SQL_2016_SP2_Standard', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP2_Standard', + 'Windows_Server-2016-Chinese_Traditional-Full-Base', + 'Windows_Server-2016-English-Full-SQL_2016_SP2_Web', + 'Windows_Server-2016-English-Full-SQL_2017_Express', + 'Windows_Server-2016-English-Full-SQL_2019_Web', + 'Windows_Server-2016-English-Core-SQL_2016_SP3_Express', + 'Windows_Server-2016-Japanese-Full-SQL_2019_Standard', + 'Windows_Server-2016-English-Tesla', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Express', + 'Windows_Server-2016-English-STIG-Full', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Standard', + 'Windows_Server-2016-Japanese-Full-SQL_2019_Enterprise', + 'Windows_Server-2016-English-Core-SQL_2016_SP3_Enterprise', + 'Windows_Server-2016-English-Full-SQL_2016_SP3_Express', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP3_Web', + 'Windows_Server-2016-English-Core-SQL_2016_SP3_Standard', + 'Windows_Server-2016-Japanese-Full-SQL_2016_SP1_Express', + 'Windows_Server-2016-English-Full-SQL_2016_SP1_Enterprise', + 'Windows_Server-2019-English-Full-SQL_2017_Web', + 'Windows_Server-2019-French-Full-Base', + 'Windows_Server-2019-Korean-Full-Base', + 'Windows_Server-2019-Italian-Full-Base', + 'Windows_Server-2019-Chinese_Simplified-Full-Base', + 'Windows_Server-2019-English-Full-SQL_2016_SP2_Web', + 'Windows_Server-2019-English-Full-HyperV', + 'Windows_Server-2019-English-Full-SQL_2016_SP2_Standard', + 'Windows_Server-2019-Hungarian-Full-Base', + 'Windows_Server-2019-English-Full-SQL_2016_SP2_Express', + 'Windows_Server-2019-Turkish-Full-Base', + 'Windows_Server-2019-English-Full-SQL_2019_Standard', + 'Windows_Server-2019-English-Full-SQL_2017_Standard', + 'Windows_Server-2019-English-Core-ContainersLatest', + 'Windows_Server-2019-English-Full-SQL_2017_Express', + 'Windows_Server-2019-Japanese-Full-Base', + 'Windows_Server-2019-Russian-Full-Base', + 'Windows_Server-2019-Chinese_Traditional-Full-Base', + 'Windows_Server-2019-English-Core-Base', + 'Windows_Server-2019-English-Full-Base', + 'Windows_Server-2019-Japanese-Full-SQL_2022_Standard', + 'Windows_Server-2019-Japanese-Full-SQL_2022_Enterprise', + 'Windows_Server-2019-English-Tesla', + 'Windows_Server-2019-English-Full-SQL_2019_Enterprise', + 'Windows_Server-2019-Spanish-Full-Base', + 'Windows_Server-2019-English-Full-SQL_2022_Enterprise', + 'Windows_Server-2019-English-STIG-Full', + 'Windows_Server-2019-English-Full-SQL_2016_SP3_Web', + 'Windows_Server-2019-English-Full-SQL_2016_SP3_Standard', + 'Windows_Server-2019-Japanese-Full-SQL_2017_Enterprise', + 'Windows_Server-2019-English-Full-SQL_2016_SP2_Enterprise', + 'Windows_Server-2019-Portuguese_Portugal-Full-Base', + 'Windows_Server-2019-Portugese_Portugal-Full-Base', + 'Windows_Server-2019-Swedish-Full-Base', + 'Windows_Server-2019-English-Full-SQL_2022_Express', + 'Windows_Server-2019-Japanese-Full-SQL_2022_Web', + 'Windows_Server-2019-English-Full-SQL_2016_SP3_Enterprise', + 'Windows_Server-2019-English-Full-SQL_2022_Web', + 'Windows_Server-2019-English-Full-SQL_2019_Web', + 'Windows_Server-2019-Portuguese_Brazil-Full-Base', + 'Windows_Server-2019-Portugese_Brazil-Full-Base', + 'Windows_Server-2019-English-Full-ContainersLatest', + 'Windows_Server-2019-English-Full-SQL_2017_Enterprise', + 'Windows_Server-2019-Japanese-Full-SQL_2019_Enterprise', + 'Windows_Server-2019-English-Full-SQL_2019_Express', + 'Windows_Server-2019-Japanese-Full-SQL_2017_Web', + 'Windows_Server-2019-English-Full-SQL_2016_SP3_Express', + 'Windows_Server-2019-English-STIG-Core', + 'Windows_Server-2019-English-Core-ECS_Optimized', + 'Windows_Server-2019-English-Full-SQL_2022_Standard', + 'Windows_Server-2019-Japanese-Full-SQL_2017_Standard', + 'Windows_Server-2019-Japanese-Full-SQL_2019_Web', + 'Windows_Server-2019-English-Full-ECS_Optimized', + 'Windows_Server-2019-English-Deep-Learning', + 'Windows_Server-2019-Japanese-Full-SQL_2019_Standard', + 'Windows_Server-2019-Czech-Full-Base', + 'Windows_Server-2019-Polish-Full-Base', + 'Windows_Server-2019-German-Full-Base', + 'Windows_Server-2019-Dutch-Full-Base', + 'Windows_Server-2022-English-STIG-Full', + 'Windows_Server-2022-Japanese-Full-SQL_2022_Web', + 'Windows_Server-2022-English-Full-SQL_2022_Web', + 'Windows_Server-2022-English-STIG-Core', + 'Windows_Server-2022-Japanese-Full-SQL_2019_Enterprise', + 'Windows_Server-2022-Portuguese_Brazil-Full-Base', + 'Windows_Server-2022-Italian-Full-Base', + 'Windows_Server-2022-English-Full-ContainersLatest', + 'Windows_Server-2022-Russian-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2019_Express', + 'Windows_Server-2022-Polish-Full-Base', + 'Windows_Server-2022-English-Core-Base', + 'Windows_Server-2022-Hungarian-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2017_Express', + 'Windows_Server-2022-German-Full-Base', + 'Windows_Server-2022-English-Core-ContainersLatest', + 'Windows_Server-2022-English-Full-SQL_2019_Standard', + 'Windows_Server-2022-Japanese-Full-SQL_2017_Web', + 'Windows_Server-2022-English-Full-SQL_2017_Web', + 'Windows_Server-2022-Japanese-Full-Base', + 'Windows_Server-2022-Korean-Full-Base', + 'Windows_Server-2022-Japanese-Full-SQL_2017_Enterprise', + 'Windows_Server-2022-Japanese-Full-SQL_2019_Standard', + 'Windows_Server-2022-Chinese_Simplified-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2019_Web', + 'Windows_Server-2022-Spanish-Full-Base', + 'Windows_Server-2022-English-Core-ECS_Optimized', + 'Windows_Server-2022-English-Full-SQL_2017_Standard', + 'Windows_Server-2022-Chinese_Traditional-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2019_Enterprise', + 'Windows_Server-2022-French-Full-Base', + 'Windows_Server-2022-Japanese-Full-SQL_2017_Standard', + 'Windows_Server-2022-English-Full-Base', + 'Windows_Server-2022-Japanese-Full-SQL_2019_Web', + 'Windows_Server-2022-Turkish-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2017_Enterprise', + 'Windows_Server-2022-Portuguese_Portugal-Full-Base', + 'Windows_Server-2022-Czech-Full-Base', + 'Windows_Server-2022-English-Full-ECS_Optimized', + 'Windows_Server-2022-Dutch-Full-Base', + 'Windows_Server-2022-Swedish-Full-Base', + 'Windows_Server-2022-English-Full-SQL_2022_Enterprise', + 'Windows_Server-2022-English-Full-SQL_2022_Express', + 'Windows_Server-2022-English-Full-SQL_2022_Standard', + 'Windows_Server-2022-Japanese-Full-SQL_2022_Standard', + 'Windows_Server-2022-Japanese-Full-SQL_2022_Enterprise' + ], + 'TagStatus': [ + 'any', + 'tagged', + 'untagged' + ], + 'CountType': [ + 'imageCountMoreThan', + 'sinceImagePushed' + ], + 'TagMutability': [ + 'MUTABLE', + 'IMMUTABLE' + ], + 'AmiHardwareType': [ + 'Standard', + 'GPU', + 'ARM64', + 'Neuron' + ], + 'WindowsOptimizedVersion': [ + '2022', + '2019', + '2016' + ], + 'BottlerocketEcsVariant': [ + 'aws-ecs-1', + 'aws-ecs-1-nvidia', + 'aws-ecs-2', + 'aws-ecs-2-nvidia' + ], + 'MachineImageType': [ + 0, + 1 + ], + 'ContainerInsights': [ + 'enabled', + 'disabled', + 'enhanced' + ], + 'ExecuteCommandLogging': [ + 'NONE', + 'DEFAULT', + 'OVERRIDE' + ], + 'ContainerDependencyCondition': [ + 'START', + 'COMPLETE', + 'SUCCESS', + 'HEALTHY' + ], + 'EnvironmentFileType': [ + 's3' + ], + 'FirelensLogRouterType': [ + 'fluentbit', + 'fluentd' + ], + 'FirelensConfigFileType': [ + 's3', + 'file' + ], + 'Capability': [ + 'ALL', + 'AUDIT_CONTROL', + 'AUDIT_WRITE', + 'BLOCK_SUSPEND', + 'CHOWN', + 'DAC_OVERRIDE', + 'DAC_READ_SEARCH', + 'FOWNER', + 'FSETID', + 'IPC_LOCK', + 'IPC_OWNER', + 'KILL', + 'LEASE', + 'LINUX_IMMUTABLE', + 'MAC_ADMIN', + 'MAC_OVERRIDE', + 'MKNOD', + 'NET_ADMIN', + 'NET_BIND_SERVICE', + 'NET_BROADCAST', + 'NET_RAW', + 'SETFCAP', + 'SETGID', + 'SETPCAP', + 'SETUID', + 'SYS_ADMIN', + 'SYS_BOOT', + 'SYS_CHROOT', + 'SYS_MODULE', + 'SYS_NICE', + 'SYS_PACCT', + 'SYS_PTRACE', + 'SYS_RAWIO', + 'SYS_RESOURCE', + 'SYS_TIME', + 'SYS_TTY_CONFIG', + 'SYSLOG', + 'WAKE_ALARM' + ], + 'BinPackResource': [ + 'CPU', + 'MEMORY' + ], + 'LifecyclePolicy': [ + 'AFTER_1_DAY', + 'AFTER_7_DAYS', + 'AFTER_14_DAYS', + 'AFTER_30_DAYS', + 'AFTER_60_DAYS', + 'AFTER_90_DAYS', + 'AFTER_180_DAYS', + 'AFTER_270_DAYS', + 'AFTER_365_DAYS' + ], + 'OutOfInfrequentAccessPolicy': [ + 'AFTER_1_ACCESS' + ], + 'PerformanceMode': [ + 'generalPurpose', + 'maxIO' + ], + 'ThroughputMode': [ + 'bursting', + 'provisioned', + 'elastic' + ], + 'ReplicationOverwriteProtection': [ + 'ENABLED', + 'DISABLED' + ], + 'ClientAction': [ + 'elasticfilesystem:ClientMount', + 'elasticfilesystem:ClientWrite', + 'elasticfilesystem:ClientRootAccess' + ], + 'AccessScopeType': [ + 'namespace', + 'cluster' + ], + 'AccessEntryType': [ + 'STANDARD', + 'FARGATE_LINUX', + 'EC2_LINUX', + 'EC2_WINDOWS' + ], + 'AlbScheme': [ + 'internal', + 'internet-facing' + ], + 'ClusterLoggingTypes': [ + 'api', + 'audit', + 'authenticator', + 'controllerManager', + 'scheduler' + ], + 'IpFamily': [ + 'ipv4', + 'ipv6' + ], + 'AuthenticationMode': [ + 'CONFIG_MAP', + 'API_AND_CONFIG_MAP', + 'API' + ], + 'CpuArch': [ + 'arm64', + 'x86_64' + ], + 'CoreDnsComputeType': [ + 'ec2', + 'fargate' + ], + 'DefaultCapacityType': [ + 0, + 1 + ], + 'PatchType': [ + 'json', + 'merge', + 'strategic' + ], + 'NodegroupAmiType': [ + 'AL2_x86_64', + 'AL2_x86_64_GPU', + 'AL2_ARM_64', + 'BOTTLEROCKET_ARM_64', + 'BOTTLEROCKET_x86_64', + 'BOTTLEROCKET_ARM_64_NVIDIA', + 'BOTTLEROCKET_x86_64_NVIDIA', + 'WINDOWS_CORE_2019_x86_64', + 'WINDOWS_CORE_2022_x86_64', + 'WINDOWS_FULL_2019_x86_64', + 'WINDOWS_FULL_2022_x86_64', + 'AL2023_x86_64_STANDARD', + 'AL2023_x86_64_NEURON', + 'AL2023_x86_64_NVIDIA', + 'AL2023_ARM_64_STANDARD' + ], + 'CapacityType': [ + 'SPOT', + 'ON_DEMAND' + ], + 'TaintEffect': [ + 'NO_SCHEDULE', + 'PREFER_NO_SCHEDULE', + 'NO_EXECUTE' + ], + 'IdentityType': [ + 'IRSA', + 'POD_IDENTITY' + ], + 'LifecycleLabel': [ + 'OnDemand', + 'Ec2Spot' + ], + 'LoadBalancingProtocol': [ + 'tcp', + 'ssl', + 'http', + 'https' + ], + 'TLSSecurityPolicy': [ + 'Policy-Min-TLS-1-0-2019-07', + 'Policy-Min-TLS-1-2-2019-07', + 'Policy-Min-TLS-1-2-PFS-2023-10' + ], + 'HttpMethod': [ + 'GET', + 'POST', + 'PUT', + 'DELETE', + 'PATCH', + 'HEAD', + 'OPTIONS' + ], + 'InputType': [ + 0, + 1 + ], + 'FileSystemTypeVersion': [ + '2.10', + '2.12', + '2.15' + ], + 'LustreDeploymentType': [ + 'SCRATCH_1', + 'SCRATCH_2', + 'PERSISTENT_1', + 'PERSISTENT_2' + ], + 'LustreAutoImportPolicy': [ + 'NONE', + 'NEW', + 'NEW_CHANGED', + 'NEW_CHANGED_DELETED' + ], + 'DriveCacheType': [ + 'NONE', + 'READ' + ], + 'LustreDataCompressionType': [ + 'NONE', + 'LZ4' + ], + 'Weekday': [ + '1', + '2', + '3', + '4', + '5', + '6', + '7' + ], + 'HealthCheckProtocol': [ + 'TCP', + 'HTTP', + 'HTTPS' + ], + 'ConnectionProtocol': [ + 'TCP', + 'UDP' + ], + 'ClientAffinity': [ + 'NONE', + 'SOURCE_IP' + ], + 'AccessKeyStatus': [ + 'Active', + 'Inactive' + ], + 'Effect': [ + 'Unknown', + 'Allow', + 'Deny' + ], + 'StreamEncryption': [ + 'NONE', + 'KMS', + 'MANAGED' + ], + 'StreamMode': [ + 'PROVISIONED', + 'ON_DEMAND' + ], + 'KeySpec': [ + 'SYMMETRIC_DEFAULT', + 'RSA_2048', + 'RSA_3072', + 'RSA_4096', + 'ECC_NIST_P256', + 'ECC_NIST_P384', + 'ECC_NIST_P521', + 'ECC_SECG_P256K1', + 'HMAC_224', + 'HMAC_256', + 'HMAC_384', + 'HMAC_512', + 'SM2' + ], + 'KeyUsage': [ + 'ENCRYPT_DECRYPT', + 'SIGN_VERIFY', + 'GENERATE_VERIFY_MAC', + 'KEY_AGREEMENT' + ], + 'AdotLambdaLayerType': [ + 'JAVA_SDK', + 'JAVA_AUTO_INSTRUMENTATION', + 'JAVASCRIPT_SDK', + 'PYTHON_SDK', + 'GENERIC' + ], + 'AdotLambdaExecWrapper': [ + '/opt/otel-handler', + '/opt/otel-proxy-handler', + '/opt/otel-stream-handler', + '/opt/otel-instrument', + '/opt/otel-sqs-handler' + ], + 'UntrustedArtifactOnDeployment': [ + 'Enforce', + 'Warn' + ], + 'DestinationType': [ + 'Failure', + 'Success' + ], + 'StartingPosition': [ + 'TRIM_HORIZON', + 'LATEST', + 'AT_TIMESTAMP' + ], + 'FunctionUrlAuthType': [ + 'AWS_IAM', + 'NONE' + ], + 'InvokeMode': [ + 'BUFFERED', + 'RESPONSE_STREAM' + ], + 'Tracing': [ + 'Active', + 'PassThrough', + 'Disabled' + ], + 'SystemLogLevel': [ + 'INFO', + 'DEBUG', + 'WARN' + ], + 'ApplicationLogLevel': [ + 'INFO', + 'DEBUG', + 'WARN', + 'TRACE', + 'ERROR', + 'FATAL' + ], + 'LogFormat': [ + 'Text', + 'JSON' + ], + 'LoggingFormat': [ + 'Text', + 'JSON' + ], + 'RecursiveLoop': [ + 'Allow', + 'Terminate' + ], + 'ParamsAndSecretsVersions': [ + '1.0.103' + ], + 'ParamsAndSecretsLogLevel': [ + 'debug', + 'info', + 'warn', + 'error', + 'none' + ], + 'RuntimeFamily': [ + 0, + 1, + 2 + ], + 'AuthenticationMethod': [ + 'SASL_SCRAM_512_AUTH', + 'SASL_SCRAM_256_AUTH', + 'BASIC_AUTH', + 'CLIENT_CERTIFICATE_TLS_AUTH' + ], + 'LockFile': [ + 'package-lock.json', + 'yarn.lock', + 'bun.lockb', + 'pnpm-lock.yaml' + ], + 'OutputFormat': [ + 'cjs', + 'esm' + ], + 'SourceMapMode': [ + 'default', + 'external', + 'inline', + 'both' + ], + 'Charset': [ + 'ascii', + 'utf8' + ], + 'RetentionDays': [ + 1, + 3, + 5, + 7, + 14, + 30, + 60, + 90, + 120, + 150, + 180, + 365, + 400, + 545, + 731, + 1096, + 1827, + 2192, + 2557, + 2922, + 3288, + 3653, + 9999 + ], + 'LogGroupClass': [ + 'STANDARD', + 'INFREQUENT_ACCESS' + ], + 'Distribution': [ + 'ByLogStream', + 'Random' + ], + 'InstanceType': [ + 'PROVISIONED', + 'SERVERLESS_V2' + ], + 'DBClusterStorageType': [ + 'aurora', + 'aurora-iopt1' + ], + 'InstanceUpdateBehaviour': [ + 'BULK', + 'ROLLING' + ], + 'ClusterScalabilityType': [ + 'standard', + 'limitless' + ], + 'ClusterScailabilityType': [ + 'standard', + 'limitless' + ], + 'LicenseModel': [ + 'license-included', + 'bring-your-own-license', + 'general-public-license' + ], + 'NetworkType': [ + 'IPV4', + 'DUAL' + ], + 'PerformanceInsightRetention': [ + 7, + 31, + 62, + 93, + 124, + 155, + 186, + 217, + 248, + 279, + 310, + 341, + 372, + 403, + 434, + 465, + 496, + 527, + 558, + 589, + 620, + 651, + 682, + 713, + 731 + ], + 'ClientPasswordAuthType': [ + 'MYSQL_NATIVE_PASSWORD', + 'POSTGRES_SCRAM_SHA_256', + 'POSTGRES_MD5', + 'SQL_SERVER_AUTHENTICATION' + ], + 'AuroraCapacityUnit': [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 192, + 256, + 384 + ], + 'TimeoutAction': [ + 'ForceApplyCapacityChange', + 'RollbackCapacityChange' + ], + 'Continent': [ + 'AF', + 'AN', + 'AS', + 'EU', + 'OC', + 'NA', + 'SA' + ], + 'InsufficientDataHealthStatusEnum': [ + 'Healthy', + 'Unhealthy', + 'LastKnownStatus' + ], + 'KeySigningKeyStatus': [ + 'ACTIVE', + 'INACTIVE' + ], + 'RecordType': [ + 'A', + 'AAAA', + 'CAA', + 'CNAME', + 'DS', + 'HTTPS', + 'MX', + 'NAPTR', + 'NS', + 'PTR', + 'SOA', + 'SPF', + 'SRV', + 'SSHFP', + 'SVCB', + 'TLSA', + 'TXT' + ], + 'CaaTag': [ + 'issue', + 'issuewild', + 'iodef' + ], + 'HttpMethods': [ + 'GET', + 'POST', + 'PUT', + 'DELETE', + 'PATCH', + 'HEAD' + ], + 'RedirectProtocol': [ + 'http', + 'https' + ], + 'InventoryFormat': [ + 'CSV', + 'Parquet', + 'ORC' + ], + 'InventoryFrequency': [ + 'Daily', + 'Weekly' + ], + 'InventoryObjectVersion': [ + 'All', + 'Current' + ], + 'ObjectOwnership': [ + 'BucketOwnerEnforced', + 'BucketOwnerPreferred', + 'ObjectWriter' + ], + 'PartitionDateSource': [ + 'EventTime', + 'DeliveryTime' + ], + 'TransitionDefaultMinimumObjectSize': [ + 'all_storage_classes_128K', + 'varies_by_storage_class' + ], + 'BucketEncryption': [ + 'UNENCRYPTED', + 'KMS_MANAGED', + 'S3_MANAGED', + 'KMS', + 'DSSE_MANAGED', + 'DSSE' + ], + 'EventType': [ + 's3:ObjectCreated:*', + 's3:ObjectCreated:Put', + 's3:ObjectCreated:Post', + 's3:ObjectCreated:Copy', + 's3:ObjectCreated:CompleteMultipartUpload', + 's3:ObjectRemoved:*', + 's3:ObjectRemoved:Delete', + 's3:ObjectRemoved:DeleteMarkerCreated', + 's3:ObjectRestore:Post', + 's3:ObjectRestore:Completed', + 's3:ObjectRestore:Delete', + 's3:ReducedRedundancyLostObject', + 's3:Replication:OperationFailedReplication', + 's3:Replication:OperationMissedThreshold', + 's3:Replication:OperationReplicatedAfterThreshold', + 's3:Replication:OperationNotTracked', + 's3:LifecycleExpiration:*', + 's3:LifecycleExpiration:Delete', + 's3:LifecycleExpiration:DeleteMarkerCreated', + 's3:LifecycleTransition', + 's3:IntelligentTiering', + 's3:ObjectTagging:*', + 's3:ObjectTagging:Put', + 's3:ObjectTagging:Delete', + 's3:ObjectAcl:Put' + ], + 'BucketAccessControl': [ + 'Private', + 'PublicRead', + 'PublicReadWrite', + 'AuthenticatedRead', + 'LogDeliveryWrite', + 'BucketOwnerRead', + 'BucketOwnerFullControl', + 'AwsExecRead' + ], + 'ObjectLockMode': [ + 'GOVERNANCE', + 'COMPLIANCE' + ], + 'BucketNotificationDestinationType': [ + 0, + 1, + 2 + ], + 'ServerSideEncryption': [ + 'AES256', + 'aws:kms' + ], + 'StorageClass': [ + 'STANDARD', + 'REDUCED_REDUNDANCY', + 'STANDARD_IA', + 'ONEZONE_IA', + 'INTELLIGENT_TIERING', + 'GLACIER', + 'DEEP_ARCHIVE' + ], + 'AttachmentTargetType': [ + 'AWS::RDS::DBInstance', + 'deprecated_AWS::RDS::DBInstance', + 'AWS::RDS::DBCluster', + 'deprecated_AWS::RDS::DBCluster', + 'AWS::RDS::DBProxy', + 'AWS::Redshift::Cluster', + 'AWS::DocDB::DBInstance', + 'AWS::DocDB::DBCluster' + ], + 'MessageLanguage': [ + 'en', + 'jp', + 'zh' + ], + 'NamespaceType': [ + 'HTTP', + 'DNS_PRIVATE', + 'DNS_PUBLIC' + ], + 'DiscoveryType': [ + 'API', + 'DNS_AND_API' + ], + 'DnsRecordType': [ + 'A', + 'AAAA', + 'A, AAAA', + 'SRV', + 'CNAME' + ], + 'RoutingPolicy': [ + 'WEIGHTED', + 'MULTIVALUE' + ], + 'EmailSendingEvent': [ + 'send', + 'reject', + 'bounce', + 'complaint', + 'delivery', + 'open', + 'click', + 'renderingFailure', + 'deliveryDelay', + 'subscription' + ], + 'CloudWatchDimensionSource': [ + 'emailHeader', + 'linkTag', + 'messageTag' + ], + 'ConfigurationSetTlsPolicy': [ + 'REQUIRE', + 'OPTIONAL' + ], + 'SuppressionReasons': [ + 'BOUNCES_AND_COMPLAINTS', + 'BOUNCES_ONLY', + 'COMPLAINTS_ONLY' + ], + 'ScalingMode': [ + 'STANDARD', + 'MANAGED' + ], + 'MailFromBehaviorOnMxFailure': [ + 'USE_DEFAULT_VALUE', + 'REJECT_MESSAGE' + ], + 'EasyDkimSigningKeyLength': [ + 'RSA_1024_BIT', + 'RSA_2048_BIT' + ], + 'ReceiptFilterPolicy': [ + 'Allow', + 'Block' + ], + 'TlsPolicy': [ + 'Optional', + 'Require' + ], + 'LambdaInvocationType': [ + 'RequestResponse', + 'Event', + 'DryRun' + ], + 'EmailEncoding': [ + 'Base64', + 'UTF-8' + ], + 'BackoffFunction': [ + 'ARITHMETIC', + 'EXPONENTIAL', + 'GEOMETRIC', + 'LINEAR' + ], + 'SubscriptionProtocol': [ + 'http', + 'https', + 'email', + 'email-json', + 'sms', + 'sqs', + 'application', + 'lambda', + 'firehose' + ], + 'FilterOrPolicyType': [ + 0, + 1 + ], + 'LoggingProtocol': [ + 'http/s', + 'sqs', + 'lambda', + 'firehose', + 'application' + ], + 'TracingConfig': [ + 'PassThrough', + 'Active' + ], + 'QueueEncryption': [ + 'NONE', + 'KMS_MANAGED', + 'KMS', + 'SQS_MANAGED' + ], + 'DeduplicationScope': [ + 'messageGroup', + 'queue' + ], + 'FifoThroughputLimit': [ + 'perQueue', + 'perMessageGroupId' + ], + 'RedrivePermission': [ + 'allowAll', + 'denyAll', + 'byQueue' + ], + 'ParameterValueType': [ + 'String', + 'AWS::EC2::AvailabilityZone::Name', + 'AWS::EC2::Image::Id', + 'AWS::EC2::Instance::Id', + 'AWS::EC2::KeyPair::KeyName', + 'AWS::EC2::SecurityGroup::GroupName', + 'AWS::EC2::SecurityGroup::Id', + 'AWS::EC2::Subnet::Id', + 'AWS::EC2::Volume::Id', + 'AWS::EC2::VPC::Id', + 'AWS::Route53::HostedZone::Id' + ], + 'ParameterType': [ + 'String', + 'SecureString', + 'StringList', + 'AWS::EC2::Image::Id' + ], + 'ParameterDataType': [ + 'text', + 'aws:ec2:image' + ], + 'ParameterTier': [ + 'Advanced', + 'Intelligent-Tiering', + 'Standard' + ], + 'CompoundOperator': [ + 0, + 1 + ], + 'StateMachineType': [ + 'EXPRESS', + 'STANDARD' + ], + 'ServiceIntegrationPattern': [ + 'FIRE_AND_FORGET', + 'SYNC', + 'WAIT_FOR_TASK_TOKEN' + ], + 'JitterType': [ + 'FULL', + 'NONE' + ], + 'ProcessorMode': [ + 'INLINE', + 'DISTRIBUTED' + ], + 'ProcessorType': [ + 'STANDARD', + 'EXPRESS' + ], + 'Cleanup': [ + 'nothing', + 'lambda' + ], + 'ArtifactsEncryptionMode': [ + 'SSE_S3', + 'SSE_KMS' + ], + 'ArnFormat': [ + 'arn:aws:service:region:account:resource', + 'arn:aws:service:region:account:resource:resourceName', + 'arn:aws:service:region:account:resource/resourceName', + 'arn:aws:service:region:account:/resource/resourceName' + ], + 'AssetHashType': [ + 'source', + 'bundle', + 'output', + 'custom' + ], + 'FileAssetPackaging': [ + 'zip', + 'file' + ], + 'BundlingOutput': [ + 'archived', + 'not-archived', + 'auto-discover', + 'single-file' + ], + 'BundlingFileAccess': [ + 'VOLUME_COPY', + 'BIND_MOUNT' + ], + 'DockerVolumeConsistency': [ + 'consistent', + 'delegated', + 'cached' + ], + 'CfnCapabilities': [ + '', + 'CAPABILITY_IAM', + 'CAPABILITY_NAMED_IAM', + 'CAPABILITY_AUTO_EXPAND' + ], + 'CfnTrafficRoutingType': [ + 'AllAtOnce', + 'TimeBasedCanary', + 'TimeBasedLinear' + ], + 'CfnDynamicReferenceService': [ + 'ssm', + 'ssm-secure', + 'secretsmanager' + ], + 'CfnDeletionPolicy': [ + 'Delete', + 'Retain', + 'RetainExceptOnCreate', + 'Snapshot' + ], + 'TagType': [ + 'StandardTag', + 'AutoScalingGroupTag', + 'StringToStringMap', + 'KeyValue', + 'NotTaggable' + ], + 'DependencyOperation': [ + 0, + 1 + ], + 'MetadataType': [ + 'aws:cdk:analytics:construct', + 'aws:cdk:analytics:method', + 'aws:cdk:analytics:featureflag' + ], + 'RemovalPolicy': [ + 'destroy', + 'retain', + 'snapshot', + 'retain-on-update-or-delete' + ], + 'SizeRoundingBehavior': [ + 0, + 1, + 2 + ], + 'ResolutionTypeHint': [ + 'string', + 'number', + 'string-list' + ], + 'DockerCredentialUsage': [ + 'SYNTH', + 'SELF_UPDATE', + 'ASSET_PUBLISHING' + ], + 'InvocationType': [ + 'RequestResponse', + 'Event', + 'DryRun' + ], + 'TriggerInvalidation': [ + 'WHEN_FUNCTION_CHANGES' + ], + 'HotswapMode': [ + 'fall-back', + 'hotswap-only', + 'full-deployment' + ], + 'StackActivityProgress': [ + 'bar', + 'events' + ], + 'ResourceImpact': [ + 'WILL_UPDATE', + 'WILL_CREATE', + 'WILL_REPLACE', + 'MAY_REPLACE', + 'WILL_DESTROY', + 'WILL_ORPHAN', + 'WILL_IMPORT', + 'NO_CHANGE' + ], + 'ComponentType': [ + 'Function', + 'SingletonFunction', + 'CustomResourceProvider', + 'NoOp' + ], + 'LoadBalancerIpAddressType': [ + 'ipv4', + 'dualstack', + 'dualstack-without-public-ipv4' + ], + 'VpcSubnetGroupType': [ + 'Public', + 'Private', + 'Isolated' + ], + 'FlagType': [ + 0, + 1, + 2, + 3 + ], + 'DiagnosticReason': [ + 'NO_SNAPSHOT', + 'TEST_FAILED', + 'TEST_ERROR', + 'SNAPSHOT_FAILED', + 'SNAPSHOT_ERROR', + 'SNAPSHOT_SUCCESS', + 'TEST_SUCCESS', + 'ASSERTION_FAILED' + ], + 'LogType': [ + 'None', + 'Tail' + ], + 'DefaultSelection': [ + 'none', + 'single', + 'main', + 'all' + ], + 'ExtendedStackSelection': [ + 'none', + 'upstream', + 'downstream' + ], + 'Mode': [ + 'SingleModel', + 'MultiModel' + ], + 'FollowMode': [ + 'never', + 'always', + 'external', + 'internal-only' + ], + 'CorsHttpMethod': [ + '*', + 'DELETE', + 'GET', + 'HEAD', + 'OPTIONS', + 'PATCH', + 'POST', + 'PUT' + ], + 'HttpAuthorizerType': [ + 'AWS_IAM', + 'JWT', + 'REQUEST' + ], + 'AuthorizerPayloadVersion': [ + '1.0', + '2.0' + ], + 'HttpIntegrationType': [ + 'HTTP_PROXY', + 'AWS_PROXY' + ], + 'HttpIntegrationSubtype': [ + 'EventBridge-PutEvents', + 'SQS-SendMessage', + 'SQS-ReceiveMessage', + 'SQS-DeleteMessage', + 'SQS-PurgeQueue', + 'AppConfig-GetConfiguration', + 'Kinesis-PutRecord', + 'StepFunctions-StartExecution', + 'StepFunctions-StartSyncExecution', + 'StepFunctions-StopExecution' + ], + 'HttpConnectionType': [ + 'VPC_LINK', + 'INTERNET' + ], + 'HttpRouteAuthorizationType': [ + 'AWS_IAM', + 'JWT', + 'CUSTOM', + 'NONE' + ], + 'WebSocketAuthorizerType': [ + 'REQUEST', + 'AWS_IAM' + ], + 'WebSocketIntegrationType': [ + 'AWS_PROXY', + 'MOCK', + 'AWS' + ], + 'HttpLambdaResponseType': [ + 0, + 1 + ], + 'CustomLambdaDeploymentConfigType': [ + 'Canary', + 'Linear' + ], + 'AutoRollbackEvent': [ + 'DEPLOYMENT_FAILURE', + 'DEPLOYMENT_STOP_ON_ALARM', + 'DEPLOYMENT_STOP_ON_REQUEST' + ], + 'LoadBalancerGeneration': [ + 0, + 1 + ], + 'StackSetOrganizationsAutoDeployment': [ + 'Enabled', + 'Disabled', + 'EnabledWithStackRetention' + ], + 'CodeBuildActionType': [ + 0, + 1 + ], + 'CodeCommitTrigger': [ + 'None', + 'Poll', + 'Events' + ], + 'GitHubTrigger': [ + 'None', + 'Poll', + 'WebHook' + ], + 'JenkinsActionType': [ + 0, + 1 + ], + 'S3Trigger': [ + 'None', + 'Poll', + 'Events' + ], + 'OidcAttributeRequestMethod': [ + 'GET', + 'POST' + ], + 'SigningAlgorithm': [ + 'rsa-sha256' + ], + 'UserPoolIdentityProviderSamlMetadataType': [ + 'url', + 'file' + ], + 'AmazonLinuxGeneration': [ + 'amzn', + 'amzn2', + 'al2022', + 'al2023' + ], + 'OperatingSystemType': [ + 0, + 1, + 2 + ], + 'AmazonLinuxCpuType': [ + 'arm64', + 'x86_64' + ], + 'AmazonLinuxEdition': [ + 'standard', + 'minimal' + ], + 'AmazonLinuxVirt': [ + 'hvm', + 'pv' + ], + 'AmazonLinuxStorage': [ + 'ebs', + 's3', + 'gp2' + ], + 'AmazonLinuxKernel': [ + 'kernel-5.10', + 'kernel-6.1' + ], + 'InitElementType': [ + 'PACKAGE', + 'GROUP', + 'USER', + 'SOURCE', + 'FILE', + 'COMMAND', + 'SERVICE' + ], + 'InitPlatform': [ + 'WINDOWS', + 'LINUX' + ], + 'AlarmBehavior': [ + 'ROLLBACK_ON_ALARM', + 'FAIL_ON_ALARM' + ], + 'LaunchType': [ + 'EC2', + 'FARGATE', + 'EXTERNAL' + ], + 'DeploymentControllerType': [ + 'ECS', + 'CODE_DEPLOY', + 'EXTERNAL' + ], + 'PropagatedTagSource': [ + 'SERVICE', + 'TASK_DEFINITION', + 'NONE' + ], + 'FileSystemType': [ + 'ext3', + 'ext4', + 'xfs' + ], + 'EbsPropagatedTagSource': [ + 'SERVICE', + 'TASK_DEFINITION' + ], + 'NetworkMode': [ + 'none', + 'bridge', + 'awsvpc', + 'host', + 'nat' + ], + 'IpcMode': [ + 'none', + 'host', + 'task' + ], + 'PidMode': [ + 'host', + 'task' + ], + 'Scope': [ + 'task', + 'shared' + ], + 'FargatePlatformVersion': [ + 'LATEST', + '1.4.0', + '1.3.0', + '1.2.0', + '1.1.0', + '1.0.0' + ], + 'AwsLogDriverMode': [ + 'blocking', + 'non-blocking' + ], + 'GelfCompressionType': [ + 'gzip', + 'zlib', + 'none' + ], + 'SplunkLogFormat': [ + 'inline', + 'json', + 'raw' + ], + 'ApplicationLoadBalancedServiceRecordType': [ + 0, + 1, + 2 + ], + 'NetworkLoadBalancedServiceRecordType': [ + 0, + 1, + 2 + ], + 'UnauthenticatedAction': [ + 'deny', + 'allow', + 'authenticate' + ], + 'ContentType': [ + 'text/plain', + 'text/css', + 'text/html', + 'application/javascript', + 'application/json' + ], + 'MutualAuthenticationMode': [ + 'off', + 'passthrough', + 'verify' + ], + 'XffHeaderProcessingMode': [ + 'append', + 'preserve', + 'remove' + ], + 'HttpCodeElb': [ + 'HTTPCode_ELB_3XX_Count', + 'HTTPCode_ELB_4XX_Count', + 'HTTPCode_ELB_5XX_Count', + 'HTTPCode_ELB_500_Count', + 'HTTPCode_ELB_502_Count', + 'HTTPCode_ELB_503_Count', + 'HTTPCode_ELB_504_Count' + ], + 'HttpCodeTarget': [ + 'HTTPCode_Target_2XX_Count', + 'HTTPCode_Target_3XX_Count', + 'HTTPCode_Target_4XX_Count', + 'HTTPCode_Target_5XX_Count' + ], + 'RevocationType': [ + 'CRL' + ], + 'ClientRoutingPolicy': [ + 'availability_zone_affinity', + 'partial_availability_zone_affinity', + 'any_availability_zone' + ], + 'TargetGroupIpAddressType': [ + 'ipv4', + 'ipv6' + ], + 'ApplicationProtocol': [ + 'HTTP', + 'HTTPS' + ], + 'ApplicationProtocolVersion': [ + 'GRPC', + 'HTTP1', + 'HTTP2' + ], + 'SslPolicy': [ + 'ELBSecurityPolicy-TLS13-1-2-2021-06', + 'ELBSecurityPolicy-2016-08', + 'ELBSecurityPolicy-TLS13-1-2-Res-2021-06', + 'ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06', + 'ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06', + 'ELBSecurityPolicy-TLS13-1-0-2021-06', + 'ELBSecurityPolicy-TLS13-1-1-2021-06', + 'ELBSecurityPolicy-TLS13-1-3-2021-06', + 'ELBSecurityPolicy-TLS13-1-3-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-2-Res-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-2-Ext0-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-2-Ext1-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-2-Ext2-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-1-FIPS-2023-04', + 'ELBSecurityPolicy-TLS13-1-0-FIPS-2023-04', + 'ELBSecurityPolicy-FS-1-2-Res-2020-10', + 'ELBSecurityPolicy-FS-1-2-Res-2019-08', + 'ELBSecurityPolicy-FS-1-2-2019-08', + 'ELBSecurityPolicy-FS-1-1-2019-08', + 'ELBSecurityPolicy-FS-2018-06', + 'ELBSecurityPolicy-TLS-1-2-2017-01', + 'ELBSecurityPolicy-TLS-1-2-Ext-2018-06', + 'ELBSecurityPolicy-TLS-1-1-2017-01', + 'ELBSecurityPolicy-TLS-1-0-2015-04' + ], + 'TargetType': [ + 'instance', + 'ip', + 'lambda', + 'alb' + ], + 'AlpnPolicy': [ + 'HTTP1Only', + 'HTTP2Only', + 'HTTP2Optional', + 'HTTP2Preferred', + 'None' + ], + 'TargetGroupLoadBalancingAlgorithmType': [ + 'round_robin', + 'least_outstanding_requests', + 'weighted_random' + ], + 'DesyncMitigationMode': [ + 'monitor', + 'defensive', + 'strictest' + ], + 'IntegrationPattern': [ + 'REQUEST_RESPONSE', + 'RUN_JOB', + 'WAIT_FOR_TASK_TOKEN' + ], + 'AuthType': [ + 'NO_AUTH', + 'IAM_ROLE', + 'RESOURCE_POLICY' + ], + 'EncryptionOption': [ + 'SSE_S3', + 'SSE_KMS', + 'CSE_KMS' + ], + 'DynamoConsumedCapacity': [ + 'INDEXES', + 'TOTAL', + 'NONE' + ], + 'DynamoItemCollectionMetrics': [ + 'SIZE', + 'NONE' + ], + 'DynamoReturnValues': [ + 'NONE', + 'ALL_OLD', + 'UPDATED_OLD', + 'ALL_NEW', + 'UPDATED_NEW' + ], + 'ActionOnFailure': [ + 'TERMINATE_CLUSTER', + 'CANCEL_AND_WAIT', + 'CONTINUE' + ], + 'ContainerProviderTypes': [ + 'EKS' + ], + 'ActionAfterCompletion': [ + 'NONE', + 'DELETE' + ], + 'URLEncodingFormat': [ + 'BRACKETS', + 'COMMAS', + 'DEFAULT', + 'INDICES', + 'NONE', + 'REPEAT' + ], + 'S3DataType': [ + 'ManifestFile', + 'S3Prefix', + 'AugmentedManifestFile' + ], + 'S3DataDistributionType': [ + 'FullyReplicated', + 'ShardedByS3Key' + ], + 'RecordWrapperType': [ + 'None', + 'RecordIO' + ], + 'InputMode': [ + 'Pipe', + 'File', + 'FastFile' + ], + 'BatchStrategy': [ + 'MultiRecord', + 'SingleRecord' + ], + 'SplitType': [ + 'None', + 'Line', + 'RecordIO', + 'TFRecord' + ], + 'AssembleWith': [ + 'None', + 'Line' + ], + 'MessageAttributeDataType': [ + 'String', + 'String.Array', + 'Number', + 'Binary' + ], + 'CustomResourceProviderRuntime': [ + 'nodejs12.x', + 'deprecated_nodejs12.x', + 'nodejs14.x', + 'nodejs16.x', + 'nodejs18.x', + 'nodejs20.x' + ], + 'SymlinkFollowMode': [ + 'never', + 'always', + 'external', + 'internal-only' + ], + 'IgnoreMode': [ + 'glob', + 'git', + 'docker' + ], + 'CfnParsingContext': [ + 0, + 1 + ], + 'ReferenceRendering': [ + 0, + 1 + ], + 'PolicyValidationReportStatusBeta1': [ + 'success', + 'failure' + ], + 'AssetType': [ + 'file', + 'docker-image' + ], + 'CodeBuildProjectType': [ + 'SYNTH', + 'ASSETS', + 'SELF_MUTATE', + 'STEP' + ], + 'HandlerName': [ + 'user', + 'table', + 'user-table-privileges' + ], + 'CfnUtilsResourceType': [ + 'Custom::AWSCDKCfnJson', + 'Custom::AWSCDKCfnJsonStringify' + ], + 'StackSelectionStrategy': [ + 'ALL_STACKS', + 'MAIN_ASSEMBLY', + 'ONLY_SINGLE', + 'PATTERN_MATCH', + 'PATTERN_MUST_MATCH', + 'PATTERN_MUST_MATCH_SINGLE' + ], + 'RollbackChoice': [ + 0, + 1, + 2, + 3 + ], + 'CsvHeaderLocation': [ + 'FIRST_ROW', + 'GIVEN' + ], + 'StateType': [ + 'Pass', + 'Task', + 'Choice', + 'Wait', + 'Succeed', + 'Fail', + 'Parallel', + 'Map' + ], + 'DynamoMethod': [ + 'Get', + 'Put', + 'Delete', + 'Update' + ], + 'AssertionType': [ + 'equals', + 'objectLike', + 'arrayWith' + ], + 'Status': [ + 'pass', + 'fail' + ] +}; diff --git a/packages/aws-cdk-lib/core/lib/constants.ts b/packages/aws-cdk-lib/core/lib/constants.ts index f560bac644838..43e30e265a6ad 100644 --- a/packages/aws-cdk-lib/core/lib/constants.ts +++ b/packages/aws-cdk-lib/core/lib/constants.ts @@ -2,3 +2,11 @@ * Resource symbol for re-usability. */ export const RESOURCE_SYMBOL = Symbol.for('@aws-cdk/core.Resource'); + +/** + * Symbol for accessing jsii runtime information + * + * Introduced in jsii 1.19.0, cdk 1.90.0. + */ +export const JSII_RUNTIME_SYMBOL = Symbol.for('jsii.rtti'); + diff --git a/packages/aws-cdk-lib/core/lib/metadata-resource.ts b/packages/aws-cdk-lib/core/lib/metadata-resource.ts index f86095741225e..39d24352c19f8 100644 --- a/packages/aws-cdk-lib/core/lib/metadata-resource.ts +++ b/packages/aws-cdk-lib/core/lib/metadata-resource.ts @@ -1,15 +1,11 @@ import { Construct, IConstruct } from 'constructs'; -import { RESOURCE_SYMBOL } from './constants'; +import { AWS_CDK_CONSTRUCTOR_PROPS } from './analytics-data-source/classes'; +import { AWS_CDK_ENUMS } from './analytics-data-source/enums'; +import { RESOURCE_SYMBOL, JSII_RUNTIME_SYMBOL } from './constants'; +import { FeatureFlags } from './feature-flags'; import { Resource } from './resource'; import { Token } from './token'; - -/** - * List of fields that must be redacted regardless. - * i.e. grantPrincipal for ServicePrincipal class will always reference to - * this construct, so we need to redact it regardless of the value, otherwise - * causing recursion to never end. - */ -const FIELDS_TO_REDACT = ['grantPrincipal', 'node']; +import { ENABLE_ADDITIONAL_METADATA_COLLECTION } from '../../cx-api'; /** * Enumeration of metadata types used for tracking analytics in AWS CDK. @@ -42,7 +38,7 @@ export function addConstructMetadata(scope: Construct, props: any): void { * Errors are ignored here. * We do not want the metadata parsing to block users to synth or * deploy their CDK application. - * + * * Without this, it will just fall back to the previous metadata * collection strategy. */ @@ -50,7 +46,12 @@ export function addConstructMetadata(scope: Construct, props: any): void { } function addMetadata(scope: Construct, type: MetadataType, props: any): void { - scope.node.addMetadata(type, redactTelemetryDataHelper(props)); + const telemetryEnabled = FeatureFlags.of(scope).isEnabled(ENABLE_ADDITIONAL_METADATA_COLLECTION) ?? false; + if (!telemetryEnabled) { + return; + } + const fqn: string = Object.getPrototypeOf(scope).constructor[JSII_RUNTIME_SYMBOL].fqn; + scope.node.addMetadata(type, redactMetadata(fqn, props)); } /** @@ -67,50 +68,107 @@ export function isResource(construct: IConstruct): construct is Resource { * @TODO we will build a JSON blueprint of ENUM-type values in the codebase and * do not redact the ENUM-type values if it match any key in the blueprint. */ -export function redactTelemetryDataHelper(data: any, visited = new WeakSet()): any { +export function redactMetadata(fqn: string, data: any): any { + // A valid fqn is consists of 3 parts, i.e. `aws-cdk-lib.aws-lambda.Function`. + const fqnParts = fqn.replace(/[-_]/g, '-').split('.'); + if (fqnParts.length !== 3) { + return '*'; + } + const module = fqnParts.slice(0, 2).join('.'); + const name = fqnParts[2]; + if (!Object.keys(AWS_CDK_CONSTRUCTOR_PROPS).includes(module)) { + // redact if the module is not in the blueprint + return '*'; + } + + if (!Object.keys(AWS_CDK_CONSTRUCTOR_PROPS[module]).includes(name)) { + // redact if class is not found in module in blueprint + return '*'; + } + + const allowedKeys = AWS_CDK_CONSTRUCTOR_PROPS[module][name]; + return redactTelemetryDataHelper(allowedKeys, data); +} + +export function redactTelemetryDataHelper(allowedKeys: any, data: any): any { + // If no key is allowed + if (allowedKeys === undefined) { + return '*'; + } + + // Return boolean as is if (typeof data === 'boolean') { - return data; // Return booleans as-is + return data; } - if (Array.isArray(data)) { - // Handle arrays by recursively redacting each element - return data.map((item) => redactTelemetryDataHelper(item, visited)); + // Do not redact boolean value + if (isEnumValue(allowedKeys, data)) { + return data; } + // Redact string value or number value + if (typeof data === 'string' || typeof data === 'number') { + return '*'; + } + + // Redact unresolved token if (data && Token.isUnresolved(data)) { return '*'; } + if (Array.isArray(data)) { + // Handle arrays by recursively redacting each element + return data.map((item) => redactTelemetryDataHelper(allowedKeys, item)); + } + + // Handle objects by iterating over their key-value pairs if (data && Object.keys(data).length > 0 && typeof data === 'object') { - // Handle objects by iterating over their key-value pairs + // If object is any construct, redact it to avoid duplication if (Construct.isConstruct(data)) { return '*'; } - if (visited.has(data)) { - // Redact duplicates or circular references - return '*'; - } - visited.add(data); - - /** - * @TODO we need to build a JSON blueprint of class and props. If 'data' matches - * any leaf node in the blueprint, then redact the value to avoid logging customer - * data. - */ - const result: Record = {}; + const redactedResult: Record = {}; for (const [key, value] of Object.entries(data)) { - if (FIELDS_TO_REDACT.includes(key)) { - result[key] = '*'; - continue; - } + // if key is unresolved token, we skip the key entirely if (key && Token.isUnresolved(key)) { continue; } - result[key] = redactTelemetryDataHelper(value, visited); + + // Redact any keys that do not exist in the blueprint + if (allowedKeys && typeof allowedKeys === 'object') { + if (!Object.keys(allowedKeys).includes(key)) { + continue; + } + + // Redact any value is the value is customer input + const allowedValue = allowedKeys[key]; + if (allowedValue === '*') { + redactedResult[key] = '*'; + continue; + } + + redactedResult[key] = redactTelemetryDataHelper(allowedKeys[key], value); + } } - return result; + return redactedResult; } + // Redact any other type of data return '*'; } + +/** + * Check if a value is an ENUM and matches the ENUM blueprint. + */ +export function isEnumValue(allowedKeys: any, value: any): boolean { + if (typeof allowedKeys !== 'string' || allowedKeys === '*') { + return false; + } + + if (!Object.keys(AWS_CDK_ENUMS).includes(allowedKeys)) { + return false; + } + + return AWS_CDK_ENUMS[allowedKeys].includes(value); +} diff --git a/packages/aws-cdk-lib/core/test/metadata.test.ts b/packages/aws-cdk-lib/core/test/metadata.test.ts new file mode 100644 index 0000000000000..14471fc8ed3a1 --- /dev/null +++ b/packages/aws-cdk-lib/core/test/metadata.test.ts @@ -0,0 +1,148 @@ +import * as metadata from '../lib/metadata-resource'; +import { Token } from '../lib/token'; + +describe('redactMetadata', () => { + jest.mock('../lib/analytics-data-source/classes', () => ({ + AWS_CDK_CONSTRUCTOR_PROPS: { + 'aws-cdk-lib.aws-lambda': { + Function: { key1: '*', key2: '*' }, + }, + 'aws-cdk-lib.aws-s3': { + Bucket: { key1: '*', key2: '*' }, + }, + }, + })); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should redact when fqn does not have 3 parts', () => { + const data = { key1: 'value1' }; + const spy = jest.spyOn(metadata, 'redactTelemetryDataHelper'); + expect(metadata.redactMetadata('invalid-fqn', data)).toBe('*'); + expect(spy).not.toHaveBeenCalled(); + spy.mockRestore(); + }); + + it('should redact when module is not in AWS_CDK_CONSTRUCTOR_PROPS', () => { + const data = { key1: 'value1' }; + const spy = jest.spyOn(metadata, 'redactTelemetryDataHelper'); + expect(metadata.redactMetadata('aws-cdk-lib.aws-unknown.Function', data)).toBe('*'); + expect(spy).not.toHaveBeenCalled(); + spy.mockRestore(); + }); + + it('should redact when class name is not found in module', () => { + const data = { key1: 'value1' }; + const spy = jest.spyOn(metadata, 'redactTelemetryDataHelper'); + expect(metadata.redactMetadata('aws-cdk-lib.aws-lambda.UnknownClass', data)).toBe('*'); + expect(spy).not.toHaveBeenCalled(); + spy.mockRestore(); + }); +}); + +jest.mock('../lib/token', () => ({ + Token: { + isUnresolved: jest.fn(), + }, +})); + +describe('redactTelemetryDataHelper', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + + it('should return boolean values as is', () => { + expect(metadata.redactTelemetryDataHelper({}, true)).toBe(true); + expect(metadata.redactTelemetryDataHelper({}, false)).toBe(false); + }); + + it('should redact strings and numbers', () => { + expect(metadata.redactTelemetryDataHelper({}, 'test')).toBe('*'); + expect(metadata.redactTelemetryDataHelper({}, 123)).toBe('*'); + }); + + it('should redact unresolved tokens', () => { + (Token.isUnresolved as jest.Mock).mockReturnValue(true); + expect(metadata.redactTelemetryDataHelper({}, { foo: 'bar' })).toBe('*'); + expect(Token.isUnresolved).toHaveBeenCalledWith({ foo: 'bar' }); + }); + + it('should recursively redact array elements', () => { + const data = [true, 'secret', 42]; + expect(metadata.redactTelemetryDataHelper({}, data)).toEqual([true, '*', '*']); + }); + + it('should redact constructs as "*"', () => { + const constructMock = {}; + expect(metadata.redactTelemetryDataHelper({}, constructMock)).toBe('*'); + }); + + it('should redact keys and values not in allowedKeys', () => { + const allowedKeys = { key1: '*' }; + const data = { key1: 'value1', key2: 'value2' }; + expect(metadata.redactTelemetryDataHelper(allowedKeys, data)).toEqual({ key1: '*' }); + }); + + it('should skip unresolved token keys', () => { + (Token.isUnresolved as jest.Mock).mockReturnValue(true); + const allowedKeys = { key1: '*' }; + const data = { key1: 'value1', unresolvedKey: 'value2' }; + expect(metadata.redactTelemetryDataHelper(allowedKeys, data)).toEqual('*'); + }); + + it('should handle nested objects according to allowedKeys', () => { + const allowedKeys = { key1: { subKey1: '*' } }; + const data = { key1: { subKey1: 'value1', subKey2: 'value2' }, key2: 'value3' }; + expect(metadata.redactTelemetryDataHelper(allowedKeys, data)).toEqual({ + key1: { subKey1: '*' }, + }); + }); + + it('should redact any other type of data as "*"', () => { + expect(metadata.redactTelemetryDataHelper({}, null)).toBe('*'); + expect(metadata.redactTelemetryDataHelper({}, undefined)).toBe('*'); + expect(metadata.redactTelemetryDataHelper({}, () => {})).toBe('*'); + }); +}); + +jest.mock('../lib/analytics-data-source/enums', () => ({ + AWS_CDK_ENUMS: { + ExampleEnum: ['VALUE_ONE', 'VALUE_TWO', 'VALUE_THREE'], + AnotherEnum: ['OPTION_A', 'OPTION_B', 'OPTION_C'], + }, +})); + +describe('isEnumValue', () => { + test('returns true for valid enum value', () => { + expect(metadata.isEnumValue('ExampleEnum', 'VALUE_ONE')).toBe(true); + }); + + test('returns false for invalid enum value', () => { + expect(metadata.isEnumValue('ExampleEnum', 'INVALID_VALUE')).toBe(false); + }); + + test('returns false for non-existent enum type', () => { + expect(metadata.isEnumValue('NonExistentEnum', 'VALUE_ONE')).toBe(false); + }); + + test('returns false if allowedKeys is "*" (wildcard)', () => { + expect(metadata.isEnumValue('*', 'VALUE_ONE')).toBe(false); + }); + + test('returns false if allowedKeys is not a string', () => { + expect(metadata.isEnumValue(123, 'VALUE_ONE')).toBe(false); + expect(metadata.isEnumValue(null, 'VALUE_ONE')).toBe(false); + expect(metadata.isEnumValue(undefined, 'VALUE_ONE')).toBe(false); + expect(metadata.isEnumValue({}, 'VALUE_ONE')).toBe(false); + }); + + test('returns false if value is not included in the enum values', () => { + expect(metadata.isEnumValue('AnotherEnum', 'NOT_AN_OPTION')).toBe(false); + }); + + test('returns true for another valid enum value', () => { + expect(metadata.isEnumValue('AnotherEnum', 'OPTION_A')).toBe(true); + }); +}); diff --git a/packages/aws-cdk-lib/core/test/private/runtime-info.test.ts b/packages/aws-cdk-lib/core/test/private/runtime-info.test.ts index e2fae11e03c2a..68afaf781a273 100644 --- a/packages/aws-cdk-lib/core/test/private/runtime-info.test.ts +++ b/packages/aws-cdk-lib/core/test/private/runtime-info.test.ts @@ -1,14 +1,16 @@ import { MetadataEntry } from 'constructs'; import { Code, Function, Runtime } from '../../../aws-lambda'; -import { Stack } from '../../lib'; -import { MetadataType, redactTelemetryDataHelper } from '../../lib/metadata-resource'; +import { Stack, App } from '../../lib'; +import { MetadataType, redactMetadata } from '../../lib/metadata-resource'; import { constructInfoFromConstruct, filterMetadataType, } from '../../lib/private/runtime-info'; test('test constructInfoFromConstruct can correctly get metadata information', () => { - const stack = new Stack(); + const app = new App(); + app.node.setContext('@aws-cdk/core:enableAdditionalMetadataCollection', true); + const stack = new Stack(app); const myFunction = new Function(stack, 'MyFunction', { runtime: Runtime.PYTHON_3_9, handler: 'index.handler', @@ -22,7 +24,7 @@ test('test constructInfoFromConstruct can correctly get metadata information', ( { type: 'aws:cdk:analytics:construct', trace: undefined, - data: expect.any(Object), // Matches any object for `data` + data: '*', }, ]); }); @@ -68,65 +70,3 @@ test('test filterMetadataType correct filter', () => { }, ]); }); - -test('test metadata is redacted correctly', () => { - const stack = new Stack(); - const myFunction = new Function(stack, 'MyFunction', { - runtime: Runtime.PYTHON_3_9, - handler: 'index.handler', - code: Code.fromInline( - "def handler(event, context):\n\tprint('The function has been invoked.')", - ), - }); - - const metadata = [ - { data: { hello: 'world' } }, - { - data: { - bool: true, - nested: { foo: 'bar' }, - arr: [1, 2, 3], - str: 'foo', - arrOfObjects: [{ foo: { hello: 'world' } }, { myFunc: myFunction }], - }, - }, - { - data: { bool: true, nested: { foo: 'bar' }, arr: [1, 2, 3], str: 'foo' }, - }, - { - data: 'foobar', - }, - { - data: 'foo', - }, - ]; - - // TODO: change this test case to verify that we only collect objects - // that's part of CDK and redact any customer provided object. - expect(redactTelemetryDataHelper(metadata)).toEqual([ - { data: { hello: '*' } }, - { - data: { - bool: true, - nested: { foo: '*' }, - arr: ['*', '*', '*'], - str: '*', - arrOfObjects: [{ foo: { hello: '*' } }, { myFunc: '*' }], - }, - }, - { - data: { - bool: true, - nested: { foo: '*' }, - arr: ['*', '*', '*'], - str: '*', - }, - }, - { - data: '*', - }, - { - data: '*', - }, - ]); -}); diff --git a/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md b/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md index 7dabe80caa071..22671164ba5e6 100644 --- a/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +++ b/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md @@ -86,7 +86,7 @@ Flags come in three types: | [@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource](#aws-cdkaws-route53-targetsuserpooldomainnamemethodwithoutcustomresource) | When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource. | 2.174.0 | (fix) | | [@aws-cdk/aws-ecs:disableEcsImdsBlocking](#aws-cdkaws-ecsdisableecsimdsblocking) | When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)** | 2.175.0 | (temporary) | | [@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature](#aws-cdkaws-ecsenableimdsblockingdeprecatedfeature) | When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated commands will be added to UserData to block container accessing IMDS. **Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)** | 2.175.0 | (temporary) | -| [@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault](#aws-cdkaws-elasticloadbalancingv2albdualstackwithoutpublicipv4securitygrouprulesdefault) | When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere | V2NEXT | (fix) | +| [@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault](#aws-cdkaws-elasticloadbalancingv2albdualstackwithoutpublicipv4securitygrouprulesdefault) | When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere | 2.176.0 | (fix) | | [@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections](#aws-cdkaws-iamoidcrejectunauthorizedconnections) | When enabled, the default behaviour of OIDC provider will reject unauthorized connections | V2NEXT | (fix) | | [@aws-cdk/core:enableAdditionalMetadataCollection](#aws-cdkcoreenableadditionalmetadatacollection) | When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues. | V2NEXT | (config) | @@ -1672,7 +1672,6 @@ thumbprints from unsecure connections. **Compatibility with old behavior:** Disable the feature flag to allow unsecure OIDC connection. - ### @aws-cdk/core:enableAdditionalMetadataCollection *When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues.* (config) diff --git a/tools/@aws-cdk/construct-metadata-updater/README.md b/tools/@aws-cdk/construct-metadata-updater/README.md index e69de29bb2d1d..356af9345abf8 100644 --- a/tools/@aws-cdk/construct-metadata-updater/README.md +++ b/tools/@aws-cdk/construct-metadata-updater/README.md @@ -0,0 +1,7 @@ +# CDK Metadata Updater + +This tool updates will parse the entire `aws-cdk` repository and does the following things: + +1. For any L2 construct class, add `addConstructMetadata` method call to track analytics usage and add necessary import statements if missing +2. Generate a JSON Blueprint file in `packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts` that contains all L2 construct class's props +3. Generate a JSON Blueprint file in `packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts` that gets all ENUMs type in `aws-cdk` repo. \ No newline at end of file diff --git a/tools/@aws-cdk/construct-metadata-updater/bin/update-construct-metadata.ts b/tools/@aws-cdk/construct-metadata-updater/bin/update-construct-metadata.ts index f8fe4bd500948..4bfa022ac9a63 100755 --- a/tools/@aws-cdk/construct-metadata-updater/bin/update-construct-metadata.ts +++ b/tools/@aws-cdk/construct-metadata-updater/bin/update-construct-metadata.ts @@ -1,7 +1,4 @@ #!/usr/bin/env node -import {main} from '../lib'; +import { main } from '../lib'; -main().catch(e => { - console.error(e); - process.exit(1); -}); \ No newline at end of file +main(); \ No newline at end of file diff --git a/tools/@aws-cdk/construct-metadata-updater/lib/index.ts b/tools/@aws-cdk/construct-metadata-updater/lib/index.ts index a0a7cfda046db..c00125ed0aa1e 100644 --- a/tools/@aws-cdk/construct-metadata-updater/lib/index.ts +++ b/tools/@aws-cdk/construct-metadata-updater/lib/index.ts @@ -1,6 +1,14 @@ -import { ResourceMetadataUpdater } from './metadata-updater'; +import { PropertyUpdater, EnumsUpdater } from './metadata-updater'; -export async function main() { - const updater = new ResourceMetadataUpdater("../../../../packages/"); - await updater.execute(); +export function main() { + const dir = '../../../../packages/' + + new PropertyUpdater(dir).execute(); + console.log('Property updater finished.') + + // new ConstructsUpdater(dir).execute(); + // console.log('Constructs updater finished.'); + + new EnumsUpdater(dir).execute(); + console.log('Enums updater finished.'); } \ No newline at end of file diff --git a/tools/@aws-cdk/construct-metadata-updater/lib/metadata-updater.ts b/tools/@aws-cdk/construct-metadata-updater/lib/metadata-updater.ts index 97c0b63d3da27..f138d25233025 100644 --- a/tools/@aws-cdk/construct-metadata-updater/lib/metadata-updater.ts +++ b/tools/@aws-cdk/construct-metadata-updater/lib/metadata-updater.ts @@ -1,4 +1,4 @@ -import { ClassDeclaration, Project, QuoteKind } from "ts-morph"; +import { ClassDeclaration, Project, QuoteKind, SourceFile, Symbol, SyntaxKind } from "ts-morph"; import * as path from "path"; import * as fs from "fs"; // import SyntaxKind = ts.SyntaxKind; @@ -10,10 +10,19 @@ const DIRECTORIES_TO_SKIP = [ "decdk", "awslint", "test", + "aws-eks-v2-alpha" ]; -export class ResourceMetadataUpdater { - private project: Project; +interface ResourceClass { + sourceFile: SourceFile; + filePath: string; + node: ClassDeclaration; + className: string; + fqnClassName: string; +} + +export abstract class MetadataUpdater { + protected project: Project; constructor(dir: string) { const projectDir = path.resolve(__dirname, dir); @@ -30,13 +39,7 @@ export class ResourceMetadataUpdater { console.log("Transformation complete."); } - public execute() { - // Process each file in the project - this.project.getSourceFiles().forEach((sourceFile) => { - console.log(`Processing file: ${sourceFile.getFilePath()}`); - this.transformFile(sourceFile.getFilePath()); - }); - } + public abstract execute(): void; /** * Recursively collect all .ts files from a given directory. @@ -88,40 +91,54 @@ export class ResourceMetadataUpdater { /** * Parse and transform a file using ts-morph. */ - private transformFile(filePath: string): void { + protected getCdkResourceClasses(filePath: string): ResourceClass[] { const sourceFile = this.project.getSourceFile(filePath); - if (!sourceFile) return; + if (!sourceFile) return []; - let importAdded = false; + const resourceClasses: ResourceClass[] = []; sourceFile.forEachChild((node) => { if (node instanceof ClassDeclaration) { const symbol = node.getSymbol(); if (symbol) { const className = symbol.getName(); // Correct way to get the name + const fqnClassName = symbol.getFullyQualifiedName(); // Check if the class is abstract by inspecting modifiers const isAbstract = node.getModifiers()?.some((mod) => mod.getText() === "abstract"); if (isAbstract) { - console.log(`Skipping abstract class: ${className}`); return; } // Check if the class or its subclasses extends Resource const type = node.getType(); - if (this.isDescendantOfResource(type)) { - console.log(`Relevant class found: ${className} extends Resource`); - - if (!importAdded) { - this.addImportAndMetadataStatement(sourceFile, filePath, node); - importAdded = true; - } + if (this.isDescendantOfResource(type)) { + resourceClasses.push({ sourceFile, filePath, node, className, fqnClassName }); } } } }); + + return resourceClasses; + } +} + +export class ConstructsUpdater extends MetadataUpdater { + constructor(dir: string) { + super(dir); + } + + public execute() { + // Process each file in the project + this.project.getSourceFiles().forEach((sourceFile) => { + const classes = this.getCdkResourceClasses(sourceFile.getFilePath()); + for (const resource of classes) { + this.addImportAndMetadataStatement(resource.sourceFile, resource.filePath, resource.node); + } + }); } + /** * Add the import statement for MetadataType to the file. */ @@ -141,7 +158,6 @@ export class ResourceMetadataUpdater { // Check if the import already exists if (sourceFile.getImportDeclarations().some((stmt: any) => stmt.getModuleSpecifier().getText().includes('/metadata-resource'))) { - console.log("Import already exists, skipping addition."); return; } @@ -179,7 +195,6 @@ export class ResourceMetadataUpdater { ); if (hasMetadataCall) { - console.log(`Metadata statement already exists in class: ${classDeclaration.getName()}`); return true; } @@ -188,13 +203,14 @@ export class ResourceMetadataUpdater { statement.getText().includes('super(') ); + const propName = parameters[2].getName(); // If a super() call exists, find its index and insert after it if (superCall) { const superCallIndex = constructor.getStatements().indexOf(superCall); constructor.insertStatements(superCallIndex + 1, writer => { writer.setIndentationLevel(0); writer.write(' // Enhanced CDK Analytics Telemetry\n'); - writer.write(' addConstructMetadata(this, props);'); + writer.write(` addConstructMetadata(this, ${propName});`); }); console.log(`Added 'addConstructMetadata();' after the 'super()' in the constructor of class: ${classDeclaration.getName()}`); } else { @@ -202,7 +218,7 @@ export class ResourceMetadataUpdater { constructor.insertStatements(0, writer => { writer.setIndentationLevel(0); writer.write(' // Enhanced CDK Analytics Telemetry\n'); - writer.write(' addConstructMetadata(this, props);'); + writer.write(` addConstructMetadata(this, ${propName});`); }); console.log(`No 'super()' found. Added 'this.node.addMetadata();' at the top of the constructor for class: ${classDeclaration.getName()}`); } @@ -215,3 +231,270 @@ export class ResourceMetadataUpdater { return true; } } + +export class PropertyUpdater extends MetadataUpdater { + private classProps: Record>; + constructor(dir: string) { + super(dir); + + this.classProps = {}; + } + + public execute(): void { + // Process each file in the project + this.project.getSourceFiles().forEach((sourceFile) => { + const classes = this.getCdkResourceClasses(sourceFile.getFilePath()); + + for (const resource of classes) { + this.extractConstructorProps(resource.filePath, resource.node, resource.className) + } + }); + + this.generateFileContent(); + } + + + private extractConstructorProps(filePath: string, node: ClassDeclaration, className: string) { + // Get module name from file path + const moduleName = this.getModuleName(filePath); + + // Parse Constructor parameters + const props = this.parseConstructorProps(node, className); + + if (!props) { + return; + } + + const content = this.classProps[moduleName] || {}; + this.classProps[moduleName] = { + ...content, + ...props, + }; + } + + private generateFileContent() { + const template = `/* eslint-disable quote-props */ +/* eslint-disable @stylistic/comma-dangle */ +/* + * Do not edit this file manually. To prevent misconfiguration, this file + * should only be modified by an automated GitHub workflow, that ensures + * that the regions present in this list correspond to all the regions + * where we have the AWS::CDK::Metadata handler deployed. + * + * See: https://github.com/aws/aws-cdk/issues/27189 + */ + +export const AWS_CDK_CONSTRUCTOR_PROPS: { [key: string]: any } = $PROPS; +`; + + // Convert the enums object to a JSON string + const jsonContent = JSON.stringify(this.classProps, null, 2).replace(/"/g, "'"); + + // Replace the placeholder with the JSON object + const content = template.replace("$PROPS", jsonContent); + + const outputPath = path.resolve( + __dirname, + "../../../../packages/aws-cdk-lib/core/lib/analytics-data-source/classes.ts" + ); + + // Write the generated file + fs.writeFileSync(outputPath, content); + console.log(`Metadata file written to: ${outputPath}`); + } + + // Helper method to extract module name from file path + private getModuleName(filePath: string): string { + const pathParts = filePath.split('/'); + // Assuming file paths are like '/packages/aws-cdk-lib/aws-lambda/Function.ts' + const moduleName = pathParts.slice(pathParts.length - 4, pathParts.length - 2).join('.'); + return moduleName; + } + + private getPropertyType(type: any, processedTypes: Set = new Set()): any { + if (type.isUnion()) { + // Get all types in the union and find the first non-undefined type + // CDK doesn't support complex union type so we can safely get the first + // non-undefined type + const unionTypes = type.getUnionTypes(); + type = unionTypes.find((t: any) => t.getText() !== 'undefined') || type; + + if (type.isLiteral() && (type.getText() === 'true' || type.getText() === 'false')) { + return '*'; + } + } + + const symbol = type.getSymbol(); + if (symbol) { + const declarations = symbol.getDeclarations(); + if (declarations.length > 0) { + const decl = declarations[0]; + // Check if the type is an Enum Member + if (decl.getKindName() === 'EnumMember') { + const parent = decl.getParent(); // Get the parent of the Enum Member + if (parent && parent.getKindName() === 'EnumDeclaration') { + const enumDecl = parent.asKindOrThrow(SyntaxKind.EnumDeclaration); + const enumName = enumDecl.getName(); + return enumName; // Return the name of the parent enum + } + } + } + } + + if (type.isArray()) { + // If it's an array, get the type of the array elements + const elementType = type.getArrayElementType(); + if (elementType) { + return this.getPropertyType(elementType, processedTypes); // Recursively resolve the element type + } + return '*'; + } + + if (type.isClass() || type.isInterface()) { + // Generate a unique identifier for the type to track its processed state + const typeId = type?.getSymbol()?.getFullyQualifiedName(); + + // If the type has already been processed, avoid recursion (cycle detection) + if (typeId && processedTypes.has(typeId)) { + // TODO: maybe use the cache instead + return undefined; + } + + // Add this type to the processed set + if (typeId) { + processedTypes.add(typeId); + } + + if (type.isClass()) { + // Redact class object + return '*' + } else { + // Handle the case where the type is a class or interface + return this.resolveInterfaceType(type, processedTypes); + } + } + + return '*'; + } + + private resolveInterfaceType(type: any, processedTypes: Set): any { + // If it's a reference to another interface type, resolve its properties recursively + const symbol = type.getSymbol(); + + if (symbol) { + const declarations = symbol.getDeclarations(); + if (declarations.length > 0) { + const firstDeclaration = declarations[0]; + const members = firstDeclaration.getType().getProperties(); + const resolvedObject: Record = {}; + + members.forEach((member: Symbol) => { + const memberType = member.getValueDeclaration()?.getType() || member.getDeclaredType(); + if (memberType.getCallSignatures().length > 0) { + return; + } + const propName = member.getName(); + const nestedType = this.getPropertyType(memberType, processedTypes); + if (nestedType) { + resolvedObject[propName] = nestedType; + } + }); + + return Object.keys(resolvedObject).length === 0 ? '*' : resolvedObject; + } + } + return undefined; // If unable to resolve, return undefined + } + + private parseConstructorProps(node: ClassDeclaration, className: string) { + const constructor = node.getConstructors()?.[0]; + + if (constructor) { + const parameters = constructor.getParameters(); + const props = parameters[2]; + + if (props) { + const type = props.getType(); + + if (type?.isObject()) { + const properties = type.getProperties(); + const propertyTypes: Record = {}; + + properties.forEach((property: Symbol) => { + const propName = property.getName(); + const nestedType = this.getPropertyType(property.getValueDeclaration()?.getType()); + if (nestedType) { + propertyTypes[propName] = nestedType; + } + }); + + return { [className]: propertyTypes }; + } + } + } + return undefined; + } +} + +export class EnumsUpdater extends MetadataUpdater { + constructor(dir: string) { + super(dir); + } + + /** + * Parse the repository for any enum type values and generate a JSON blueprint. + */ + public execute() { + const enumBlueprint: Record = {}; + + this.project.getSourceFiles().forEach((sourceFile) => { + sourceFile.forEachChild((node) => { + if (node.getKindName() === "EnumDeclaration") { + const enumDeclaration = node.asKindOrThrow(SyntaxKind.EnumDeclaration); + const enumName = enumDeclaration.getName(); + // Directly access the values of the enum members + const enumValues = enumDeclaration.getMembers() + .map((member) => member.getValue()) // Access the enum value directly + .filter((value) => value !== undefined); // Filter out undefined values + + // Add to the blueprint + enumBlueprint[enumName] = enumValues; + } + }); + }); + + // Generate the file content + const content = this.generateFileContent(enumBlueprint); + const outputPath = path.resolve( + __dirname, + "../../../../packages/aws-cdk-lib/core/lib/analytics-data-source/enums.ts" + ); + + // Write the generated file + fs.writeFileSync(outputPath, content); + console.log(`Metadata file written to: ${outputPath}`); + } + + /** + * Generate the file content for the enum metadats. + */ + private generateFileContent(enums: Record = {}): string { + const template = `/* eslint-disable quote-props */ +/* eslint-disable @stylistic/comma-dangle */ +/* eslint-disable @cdklabs/no-literal-partition */ +/* + * Do not edit this file manually. To prevent misconfiguration, this file + * should only be modified by an automated GitHub workflow, that ensures + * that the ENUMs present in this list + * + */ + +export const AWS_CDK_ENUMS: { [key: string]: any } = $ENUMS; +`; + + const jsonContent = JSON.stringify(enums, null, 2).replace(/"/g, "'"); + + // Replace the placeholder with the JSON object + return template.replace("$ENUMS", jsonContent); + } +} \ No newline at end of file diff --git a/tools/@aws-cdk/construct-metadata-updater/test/metadata-updater.test.ts b/tools/@aws-cdk/construct-metadata-updater/test/metadata-updater.test.ts index 9767914247611..44e9fd29252bc 100644 --- a/tools/@aws-cdk/construct-metadata-updater/test/metadata-updater.test.ts +++ b/tools/@aws-cdk/construct-metadata-updater/test/metadata-updater.test.ts @@ -1,4 +1,4 @@ -import { ResourceMetadataUpdater } from '../lib/metadata-updater'; +import { ConstructsUpdater, PropertyUpdater } from '../lib/metadata-updater'; import { Project, ClassDeclaration, SourceFile, QuoteKind } from 'ts-morph'; import * as path from 'path'; import * as fs from 'fs'; @@ -11,7 +11,7 @@ jest.mock('fs'); jest.mock('path'); describe('ResourceMetadataUpdater', () => { - let updater: ResourceMetadataUpdater; + let updater: ConstructsUpdater; let mockSourceFile: jest.Mocked; let mockClassDeclaration: jest.Mocked; @@ -33,7 +33,7 @@ describe('ResourceMetadataUpdater', () => { (path.resolve as jest.Mock).mockImplementation((...args) => args.join('/')); // Create instance of updater - updater = new ResourceMetadataUpdater('./test-dir'); + updater = new ConstructsUpdater('./test-dir'); }); describe('constructor', () => { @@ -103,14 +103,14 @@ describe('ResourceMetadataUpdater', () => { }); }); - describe('transformFile', () => { + describe('getCdkResourceClasses', () => { beforeEach(() => { mockClassDeclaration = { - getSymbol: jest.fn().mockReturnValue({ getName: () => 'TestClass' }), + getSymbol: jest.fn().mockReturnValue({ getName: () => 'TestClass', getFullyQualifiedName: () => 'test.TestClass', }), getModifiers: jest.fn().mockReturnValue([]), getType: jest.fn(), getName: jest.fn().mockReturnValue('TestClass'), - getConstructors: jest.fn().mockReturnValue([]) + getConstructors: jest.fn().mockReturnValue([]), } as any; Object.setPrototypeOf(mockClassDeclaration, ClassDeclaration.prototype); @@ -127,13 +127,13 @@ describe('ResourceMetadataUpdater', () => { getSourceFile: jest.fn().mockReturnValue(mockSourceFile) })); - updater = new ResourceMetadataUpdater('./test-dir'); - (updater as any).addImportAndMetadataStatement = jest.fn(); + updater = new ConstructsUpdater('./test-dir'); + (updater as any).isDescendantOfResource = jest.fn(); }); it('should skip abstract classes', () => { mockClassDeclaration.getModifiers.mockReturnValue([{ getText: () => 'abstract' } as any]); - (updater as any).transformFile('test.ts'); + (updater as any).getCdkResourceClasses('test.ts'); expect(mockClassDeclaration.getType).not.toHaveBeenCalled(); }); @@ -143,8 +143,8 @@ describe('ResourceMetadataUpdater', () => { getBaseTypes: () => [] } as any); - (updater as any).transformFile('test.ts'); - expect((updater as any).addImportAndMetadataStatement).toHaveBeenCalled(); + (updater as any).getCdkResourceClasses('test.ts'); + expect((updater as any).isDescendantOfResource).toHaveBeenCalled(); }); }); @@ -167,7 +167,7 @@ describe('ResourceMetadataUpdater', () => { it('should add metadata statement after super() call', () => { const mockStatements = [{ getText: () => 'super(scope, id);' }]; const mockConstructor = { - getParameters: jest.fn().mockReturnValue([1, 2, 3]), + getParameters: jest.fn().mockReturnValue([1, 2, { getName: () => 'prop' }]), getStatements: jest.fn().mockReturnValue(mockStatements), insertStatements: jest.fn() }; @@ -183,3 +183,212 @@ describe('ResourceMetadataUpdater', () => { }); }); }); + +describe('PropertyUpdater', () => { + let propertyUpdater: PropertyUpdater; + + beforeEach(() => { + // Clear all mocks before each test + jest.clearAllMocks(); + propertyUpdater = new PropertyUpdater('/mock/dir'); + }); + + describe('execute', () => { + it('should process source files and generate content', () => { + // Mock the source files + const mockSourceFiles = [ + { + getFilePath: () => '/packages/aws-cdk-lib/aws-lambda/Function.ts' + } + ] as any; + + // Mock getCdkResourceClasses to return test data + const mockClasses = [{ + filePath: '/packages/aws-cdk-lib/aws-lambda/Function.ts', + node: { + getConstructors: () => [{ + getParameters: () => [] + }] + }, + className: 'Function' + }]; + + // Setup spies + const getSourceFilesSpy = jest.spyOn(propertyUpdater['project'], 'getSourceFiles') + .mockReturnValue(mockSourceFiles); + const getCdkResourceClassesSpy = jest.spyOn(propertyUpdater as any, 'getCdkResourceClasses') + .mockReturnValue(mockClasses); + const extractConstructorPropsSpy = jest.spyOn(propertyUpdater as any, 'extractConstructorProps'); + const generateFileContentSpy = jest.spyOn(propertyUpdater as any, 'generateFileContent'); + + // Execute the method + propertyUpdater.execute(); + + // Assertions + expect(getSourceFilesSpy).toHaveBeenCalled(); + expect(getCdkResourceClassesSpy).toHaveBeenCalledWith('/packages/aws-cdk-lib/aws-lambda/Function.ts'); + expect(extractConstructorPropsSpy).toHaveBeenCalled(); + expect(generateFileContentSpy).toHaveBeenCalled(); + }); + }); + + describe('getModuleName', () => { + it('should extract correct module name from file path', () => { + const testCases = [ + { + input: 'packages/aws-cdk-lib/aws-lambda/lib/function.ts', + expected: 'aws-cdk-lib.aws-lambda' + }, + { + input: 'packages/aws-cdk-lib/core/lib/resource.ts', + expected: 'aws-cdk-lib.core' + } + ]; + + testCases.forEach(({ input, expected }) => { + const result = propertyUpdater['getModuleName'](input); + expect(result).toBe(expected); + }); + }); + }); + + describe('generateFileContent', () => { + it('should generate correct file content and write to file', () => { + // Mock the classProps + propertyUpdater['classProps'] = { + 'aws-cdk-lib.aws-lambda': { + Function: { + handler: '*', + runtime: '*' + } + } + }; + + // Mock path.resolve + (path.resolve as jest.Mock).mockReturnValue('/mock/output/path'); + + // Execute the method + propertyUpdater['generateFileContent'](); + + // Verify file write + expect(fs.writeFileSync).toHaveBeenCalledWith( + '/mock/output/path', + expect.stringContaining('AWS_CDK_CONSTRUCTOR_PROPS') + ); + + // Verify content format + const writeCall = (fs.writeFileSync as jest.Mock).mock.calls[0]; + const content = writeCall[1]; + + expect(content).toContain('eslint-disable'); + expect(content).toContain('AWS_CDK_CONSTRUCTOR_PROPS'); + expect(content).toContain("'aws-cdk-lib.aws-lambda'"); + }); + }); + + describe('extractConstructorProps', () => { + it('should extract and store constructor props correctly', () => { + // Mock the necessary data + const mockFilePath = '/packages/aws-cdk-lib/aws-lambda/lib/Function.ts'; + const mockNode = { + getConstructors: () => [{ + getParameters: () => [{ + getType: () => ({ + getProperties: () => [] + }) + }] + }] + }; + const mockClassName = 'Function'; + + // Mock parseConstructorProps to return some test data + jest.spyOn(propertyUpdater as any, 'parseConstructorProps') + .mockReturnValue({ + Function: { prop1: '*', prop2: '*' } + }); + + // Execute the method + propertyUpdater['extractConstructorProps'](mockFilePath, mockNode as any, mockClassName); + + // Verify the classProps were updated correctly + expect(propertyUpdater['classProps']['aws-cdk-lib.aws-lambda']).toEqual({ + Function: { prop1: '*', prop2: '*' } + }); + }); + + it('should handle case when parseConstructorProps returns undefined', () => { + const mockFilePath = '/packages/aws-cdk-lib/aws-lambda/Function.ts'; + const mockNode = { + getConstructors: () => [] + }; + const mockClassName = 'Function'; + + // Mock parseConstructorProps to return undefined + jest.spyOn(propertyUpdater as any, 'parseConstructorProps') + .mockReturnValue(undefined); + + // Execute the method + propertyUpdater['extractConstructorProps'](mockFilePath, mockNode as any, mockClassName); + + // Verify the classProps weren't updated + expect(propertyUpdater['classProps']['aws-cdk-lib.aws-lambda']).toBeUndefined(); + }); + }); + + describe('getPropertyType', () => { + it('should handle union types', () => { + const mockType = { + isUnion: () => true, + getUnionTypes: () => [{ + getText: () => 'string', + isLiteral: () => false, + isArray: () => false, + isClass: () => false, + isInterface: () => false, + }, { + getText: () => 'undefined', + isLiteral: () => false, + isArray: () => false, + isClass: () => false, + isInterface: () => false, + }], + }; + + const result = propertyUpdater['getPropertyType'](mockType); + expect(result).toBe('*'); + }); + + it('should handle array types', () => { + const mockType = { + isUnion: () => false, + isArray: () => true, + getArrayElementType: () => ({ + getText: () => 'string', + isUnion: () => false, + isLiteral: () => false, + isArray: () => false, + isClass: () => false, + isInterface: () => false, + }) + }; + + const result = propertyUpdater['getPropertyType'](mockType); + expect(result).toBe('*'); + }); + + it('should handle cycle detection', () => { + const processedTypes = new Set(['TestType']); + const mockType = { + isUnion: () => false, + isArray: () => false, + isClass: () => true, + getSymbol: () => ({ + getFullyQualifiedName: () => 'TestType' + }) + }; + + const result = propertyUpdater['getPropertyType'](mockType, processedTypes); + expect(result).toBeUndefined(); + }); + }); +});