diff --git a/.gitattributes b/.gitattributes index df5eafe8a4ebc..82b1d5b189b92 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,3 +11,8 @@ *.jpg binary *.tgz binary *.tar.gz binary + +# Hide snapshots from GitHub UI, except for the actual templates +**/*.snapshot/** linguist-generated +**/*.snapshot/**/*.template.json -linguist-generated +**/*.snapshot/**/*DeployAssert*.template.json linguist-generated diff --git a/.github/workflows/request-cli-integ-test.yml b/.github/workflows/request-cli-integ-test.yml index 529940e7a0c4c..e080a6433769a 100644 --- a/.github/workflows/request-cli-integ-test.yml +++ b/.github/workflows/request-cli-integ-test.yml @@ -19,7 +19,7 @@ jobs: persist-credentials: false - name: Find changed cli files id: changed-cli-files - uses: tj-actions/changed-files@76c4d81a6acd339b55bd7407a016981c853eb702 + uses: tj-actions/changed-files@8238a4103220c636f2dad328ead8a7c8dbe316a3 with: base_sha: ${{ github.event.pull_request.base.sha }} files_yaml: | diff --git a/CHANGELOG.v2.alpha.md b/CHANGELOG.v2.alpha.md index 9371476197d49..f9d9b41f8c12e 100644 --- a/CHANGELOG.v2.alpha.md +++ b/CHANGELOG.v2.alpha.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.98.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.97.1-alpha.0...v2.98.0-alpha.0) (2023-09-26) + + +### Features + +* **scheduler:** disable Schedule on creation ([#27236](https://github.com/aws/aws-cdk/issues/27236)) ([193cd3f](https://github.com/aws/aws-cdk/commit/193cd3f575974e4058fcec957640a3d28d114fd1)) + ## [2.97.1-alpha.0](https://github.com/aws/aws-cdk/compare/v2.97.0-alpha.0...v2.97.1-alpha.0) (2023-09-25) ## [2.97.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.96.2-alpha.0...v2.97.0-alpha.0) (2023-09-22) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index eea568c5c58c0..8108831acc062 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.98.0](https://github.com/aws/aws-cdk/compare/v2.97.1...v2.98.0) (2023-09-26) + + +### Features + +* update AWS Service Spec ([#27276](https://github.com/aws/aws-cdk/issues/27276)) ([3d9ca8d](https://github.com/aws/aws-cdk/commit/3d9ca8dad29e6e6f813ab2340da7639c24ba5494)) +* **aws-cdk-lib:** reduce load time of JavaScript library ([#27217](https://github.com/aws/aws-cdk/issues/27217)) ([faffce0](https://github.com/aws/aws-cdk/commit/faffce06c3f1d543600f7e8dc430a5105c73ac5a)) + + +### Bug Fixes + +* **rds:** prevent rendering deprecated credentials when creating a database cluster from a snapshot (under feature flag) ([#27174](https://github.com/aws/aws-cdk/issues/27174)) ([1fd22a7](https://github.com/aws/aws-cdk/commit/1fd22a7498223ae5d2faf1799056e81be4f71f5c)), closes [#23815](https://github.com/aws/aws-cdk/issues/23815) + ## [2.97.1](https://github.com/aws/aws-cdk/compare/v2.97.0...v2.97.1) (2023-09-25) diff --git a/lerna.json b/lerna.json index 51e83fcdb1c13..a9fb8c56b7866 100644 --- a/lerna.json +++ b/lerna.json @@ -20,6 +20,7 @@ "tools/@aws-cdk/prlint", "tools/@aws-cdk/spec2cdk", "tools/@aws-cdk/yarn-cling", + "tools/@aws-cdk/lazify", "scripts/@aws-cdk/script-tests" ], "rejectCycles": true, diff --git a/package.json b/package.json index e0a6bd687bc5f..7bd5bae4ab0d0 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "tools/@aws-cdk/prlint", "tools/@aws-cdk/spec2cdk", "tools/@aws-cdk/yarn-cling", + "tools/@aws-cdk/lazify", "scripts/@aws-cdk/script-tests" ], "nohoist": [ diff --git a/packages/@aws-cdk-testing/cli-integ/tests/init-javascript/init-javascript.integtest.ts b/packages/@aws-cdk-testing/cli-integ/tests/init-javascript/init-javascript.integtest.ts index 8fc4be4bf64fb..d6e82a38f88c5 100644 --- a/packages/@aws-cdk-testing/cli-integ/tests/init-javascript/init-javascript.integtest.ts +++ b/packages/@aws-cdk-testing/cli-integ/tests/init-javascript/init-javascript.integtest.ts @@ -1,3 +1,5 @@ +import * as path from 'path'; +import * as fs from 'fs-extra'; import { integTest, withTemporaryDirectory, ShellHelper, withPackages } from '../../lib'; ['app', 'sample-app'].forEach(template => { @@ -13,3 +15,43 @@ import { integTest, withTemporaryDirectory, ShellHelper, withPackages } from '.. await shell.shell(['cdk', 'synth']); }))); }); + +integTest('Test importing CDK from ESM', withTemporaryDirectory(withPackages(async (context) => { + // Use 'cdk init -l=javascript' to get set up, but use a different file + const shell = ShellHelper.fromContext(context); + await context.packages.makeCliAvailable(); + + await shell.shell(['cdk', 'init', '-l', 'javascript', 'app']); + + // Rewrite some files + await fs.writeFile(path.join(context.integTestDir, 'new-entrypoint.mjs'), ` +// Test two styles of imports +import { Stack, aws_sns as sns, aws_sns_subscriptions as subs, aws_sqs as sqs } from 'aws-cdk-lib'; +import * as cdk from 'aws-cdk-lib'; + +class TestjsStack extends Stack { + constructor(scope, id, props) { + super(scope, id, props); + + const queue = new sqs.Queue(this, 'TestjsQueue', { + visibilityTimeout: cdk.Duration.seconds(300) + }); + + const topic = new sns.Topic(this, 'TestjsTopic'); + + topic.addSubscription(new subs.SqsSubscription(queue)); + } +} + +const app = new cdk.App(); +new TestjsStack(app, 'TestjsStack'); +`, { encoding: 'utf-8' }); + + // Rewrite 'cdk.json' to use new entrypoint + const cdkJson = await fs.readJson(path.join(context.integTestDir, 'cdk.json')); + cdkJson.app = 'node new-entrypoint.mjs'; + await fs.writeJson(path.join(context.integTestDir, 'cdk.json'), cdkJson); + + await shell.shell(['cdk', 'synth']); + +}))); diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.assets.json index 284398b143255..0e3a8e4816037 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.assets.json @@ -27,7 +27,7 @@ } } }, - "6efada41383a47bd56eb0a2e6091955fbf170a468c599d5b34732bcd1ba263d9": { + "23b0d2a14d3e7bc3dcf7cc5292fe80fa29dacb0aea32636c17ca9fce11d8aba9": { "source": { "path": "cdk-integ-cluster-snapshot.template.json", "packaging": "file" @@ -35,7 +35,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "6efada41383a47bd56eb0a2e6091955fbf170a468c599d5b34732bcd1ba263d9.json", + "objectKey": "23b0d2a14d3e7bc3dcf7cc5292fe80fa29dacb0aea32636c17ca9fce11d8aba9.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.template.json index 192d1f219ac85..63ac67b14613f 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/cdk-integ-cluster-snapshot.template.json @@ -426,12 +426,12 @@ "Type": "AWS::RDS::DBCluster", "Properties": { "CopyTagsToSnapshot": true, - "DBClusterParameterGroupName": "default.aurora-mysql5.7", + "DBClusterParameterGroupName": "default.aurora-mysql8.0", "DBSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, "Engine": "aurora-mysql", - "EngineVersion": "5.7.mysql_aurora.2.10.2", + "EngineVersion": "8.0.mysql_aurora.3.04.0", "MasterUserPassword": { "Fn::Join": [ "", @@ -474,7 +474,7 @@ "DBClusterIdentifier": { "Ref": "ClusterEB0386A7" }, - "DBInstanceClass": "db.t3.small", + "DBInstanceClass": "db.t3.medium", "DBSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, @@ -495,7 +495,7 @@ "DBClusterIdentifier": { "Ref": "ClusterEB0386A7" }, - "DBInstanceClass": "db.t3.small", + "DBInstanceClass": "db.t3.medium", "DBSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, @@ -1357,42 +1357,6 @@ } } }, - "FromSnapshotSecret9100F61C": { - "Type": "AWS::SecretsManager::Secret", - "Properties": { - "Description": { - "Fn::Join": [ - "", - [ - "Generated by the CDK for stack: ", - { - "Ref": "AWS::StackName" - } - ] - ] - }, - "GenerateSecretString": { - "ExcludeCharacters": " %+~`#$&*()|[]{}:;<>?!'/@\"\\", - "GenerateStringKey": "password", - "PasswordLength": 30, - "SecretStringTemplate": "{\"username\":\"admin\"}" - } - }, - "UpdateReplacePolicy": "Delete", - "DeletionPolicy": "Delete" - }, - "FromSnapshotSecretAttachmentB62DA1C6": { - "Type": "AWS::SecretsManager::SecretTargetAttachment", - "Properties": { - "SecretId": { - "Ref": "FromSnapshotSecret9100F61C" - }, - "TargetId": { - "Ref": "FromSnapshotEE0682C5" - }, - "TargetType": "AWS::RDS::DBCluster" - } - }, "cdkintegclustersnapshotFromSnapshotSnapshotSecretD93327943fdaad7efa858a3daf9490cf0a702aeb": { "Type": "AWS::SecretsManager::Secret", "Properties": { @@ -1486,12 +1450,12 @@ "Type": "AWS::RDS::DBCluster", "Properties": { "CopyTagsToSnapshot": true, - "DBClusterParameterGroupName": "default.aurora-mysql5.7", + "DBClusterParameterGroupName": "default.aurora-mysql8.0", "DBSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, "Engine": "aurora-mysql", - "EngineVersion": "5.7.mysql_aurora.2.10.2", + "EngineVersion": "8.0.mysql_aurora.3.04.0", "MasterUserPassword": { "Fn::Join": [ "", @@ -1528,7 +1492,7 @@ "DBClusterIdentifier": { "Ref": "FromSnapshotEE0682C5" }, - "DBInstanceClass": "db.t3.small", + "DBInstanceClass": "db.t3.medium", "DBSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, @@ -1549,7 +1513,7 @@ "DBClusterIdentifier": { "Ref": "FromSnapshotEE0682C5" }, - "DBInstanceClass": "db.t3.small", + "DBInstanceClass": "db.t3.medium", "DBSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/manifest.json index c3ef0d63d6ace..456f60dd33d44 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/manifest.json @@ -17,7 +17,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/6efada41383a47bd56eb0a2e6091955fbf170a468c599d5b34732bcd1ba263d9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/23b0d2a14d3e7bc3dcf7cc5292fe80fa29dacb0aea32636c17ca9fce11d8aba9.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -333,18 +333,6 @@ "data": "FromSnapshotSecurityGroupfromcdkintegclustersnapshotFromSnapshotRotationSingleUserSecurityGroup8B231219IndirectPort7C6DDFDF" } ], - "/cdk-integ-cluster-snapshot/FromSnapshot/Secret/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "FromSnapshotSecret9100F61C" - } - ], - "/cdk-integ-cluster-snapshot/FromSnapshot/Secret/Attachment/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "FromSnapshotSecretAttachmentB62DA1C6" - } - ], "/cdk-integ-cluster-snapshot/FromSnapshot/SnapshotSecret/Resource": [ { "type": "aws:cdk:logicalId", @@ -416,6 +404,24 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } + ], + "FromSnapshotSecret9100F61C": [ + { + "type": "aws:cdk:logicalId", + "data": "FromSnapshotSecret9100F61C", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] + } + ], + "FromSnapshotSecretAttachmentB62DA1C6": [ + { + "type": "aws:cdk:logicalId", + "data": "FromSnapshotSecretAttachmentB62DA1C6", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] + } ] }, "displayName": "cdk-integ-cluster-snapshot" diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/tree.json index 0e549e758e4da..1671fd358b3f4 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.js.snapshot/tree.json @@ -758,12 +758,12 @@ "aws:cdk:cloudformation:type": "AWS::RDS::DBCluster", "aws:cdk:cloudformation:props": { "copyTagsToSnapshot": true, - "dbClusterParameterGroupName": "default.aurora-mysql5.7", + "dbClusterParameterGroupName": "default.aurora-mysql8.0", "dbSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, "engine": "aurora-mysql", - "engineVersion": "5.7.mysql_aurora.2.10.2", + "engineVersion": "8.0.mysql_aurora.3.04.0", "masterUsername": { "Fn::Join": [ "", @@ -820,7 +820,7 @@ "dbClusterIdentifier": { "Ref": "ClusterEB0386A7" }, - "dbInstanceClass": "db.t3.small", + "dbInstanceClass": "db.t3.medium", "dbSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, @@ -849,7 +849,7 @@ "dbClusterIdentifier": { "Ref": "ClusterEB0386A7" }, - "dbInstanceClass": "db.t3.small", + "dbInstanceClass": "db.t3.medium", "dbSubnetGroupName": { "Ref": "ClusterSubnetsDCFA5CB7" }, @@ -2210,76 +2210,6 @@ "version": "0.0.0" } }, - "Secret": { - "id": "Secret", - "path": "cdk-integ-cluster-snapshot/FromSnapshot/Secret", - "children": { - "Resource": { - "id": "Resource", - "path": "cdk-integ-cluster-snapshot/FromSnapshot/Secret/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SecretsManager::Secret", - "aws:cdk:cloudformation:props": { - "description": { - "Fn::Join": [ - "", - [ - "Generated by the CDK for stack: ", - { - "Ref": "AWS::StackName" - } - ] - ] - }, - "generateSecretString": { - "passwordLength": 30, - "secretStringTemplate": "{\"username\":\"admin\"}", - "generateStringKey": "password", - "excludeCharacters": " %+~`#$&*()|[]{}:;<>?!'/@\"\\" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_secretsmanager.CfnSecret", - "version": "0.0.0" - } - }, - "Attachment": { - "id": "Attachment", - "path": "cdk-integ-cluster-snapshot/FromSnapshot/Secret/Attachment", - "children": { - "Resource": { - "id": "Resource", - "path": "cdk-integ-cluster-snapshot/FromSnapshot/Secret/Attachment/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::SecretsManager::SecretTargetAttachment", - "aws:cdk:cloudformation:props": { - "secretId": { - "Ref": "FromSnapshotSecret9100F61C" - }, - "targetId": { - "Ref": "FromSnapshotEE0682C5" - }, - "targetType": "AWS::RDS::DBCluster" - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_secretsmanager.CfnSecretTargetAttachment", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_secretsmanager.SecretTargetAttachment", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_rds.DatabaseSecret", - "version": "0.0.0" - } - }, "SnapshotSecret": { "id": "SnapshotSecret", "path": "cdk-integ-cluster-snapshot/FromSnapshot/SnapshotSecret", @@ -2446,12 +2376,12 @@ "aws:cdk:cloudformation:type": "AWS::RDS::DBCluster", "aws:cdk:cloudformation:props": { "copyTagsToSnapshot": true, - "dbClusterParameterGroupName": "default.aurora-mysql5.7", + "dbClusterParameterGroupName": "default.aurora-mysql8.0", "dbSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, "engine": "aurora-mysql", - "engineVersion": "5.7.mysql_aurora.2.10.2", + "engineVersion": "8.0.mysql_aurora.3.04.0", "masterUserPassword": { "Fn::Join": [ "", @@ -2502,7 +2432,7 @@ "dbClusterIdentifier": { "Ref": "FromSnapshotEE0682C5" }, - "dbInstanceClass": "db.t3.small", + "dbInstanceClass": "db.t3.medium", "dbSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, @@ -2531,7 +2461,7 @@ "dbClusterIdentifier": { "Ref": "FromSnapshotEE0682C5" }, - "dbInstanceClass": "db.t3.small", + "dbInstanceClass": "db.t3.medium", "dbSubnetGroupName": { "Ref": "FromSnapshotSubnets9ED4B8EE" }, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.ts index ea4afa157caa4..a7619f5ff2aac 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.cluster-snapshot.ts @@ -17,11 +17,11 @@ class TestStack extends Stack { const vpc = new ec2.Vpc(this, 'Vpc', { maxAzs: 2, natGateways: 1, restrictDefaultSecurityGroup: false }); const instanceProps = { - instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.SMALL), + instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM), isFromLegacyInstanceProps: true, }; const cluster = new rds.DatabaseCluster(this, 'Cluster', { - engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_2_10_2 }), + engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_04_0 }), writer: ClusterInstance.provisioned('Instance1', { ...instanceProps, }), @@ -42,7 +42,7 @@ class TestStack extends Stack { const fromSnapshot = new rds.DatabaseClusterFromSnapshot(this, 'FromSnapshot', { snapshotIdentifier: snapshoter.snapshotArn, snapshotCredentials: rds.SnapshotCredentials.fromGeneratedSecret('admin'), - engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_2_10_2 }), + engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_04_0 }), writer: ClusterInstance.provisioned('Instance1', { ...instanceProps, }), diff --git a/packages/@aws-cdk/app-staging-synthesizer-alpha/awslint.json b/packages/@aws-cdk/app-staging-synthesizer-alpha/awslint.json new file mode 100644 index 0000000000000..52972fd9dcd63 --- /dev/null +++ b/packages/@aws-cdk/app-staging-synthesizer-alpha/awslint.json @@ -0,0 +1,6 @@ +{ + "exclude": [ + "construct-ctor:@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStack..params[0]", + "props-no-arn-refs:@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStackProps.deployRoleArn" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-amplify-alpha/awslint.json b/packages/@aws-cdk/aws-amplify-alpha/awslint.json new file mode 100644 index 0000000000000..3dab73aef9027 --- /dev/null +++ b/packages/@aws-cdk/aws-amplify-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} diff --git a/packages/@aws-cdk/aws-amplify-alpha/package.json b/packages/@aws-cdk/aws-amplify-alpha/package.json index 5dda4ae1d1587..fbfe4660ff250 100644 --- a/packages/@aws-cdk/aws-amplify-alpha/package.json +++ b/packages/@aws-cdk/aws-amplify-alpha/package.json @@ -104,11 +104,6 @@ }, "stability": "experimental", "maturity": "experimental", - "awslint": { - "exclude": [ - "*:*" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/aws-apigatewayv2-alpha/awslint.json b/packages/@aws-cdk/aws-apigatewayv2-alpha/awslint.json new file mode 100644 index 0000000000000..3dab73aef9027 --- /dev/null +++ b/packages/@aws-cdk/aws-apigatewayv2-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} diff --git a/packages/@aws-cdk/aws-apigatewayv2-alpha/package.json b/packages/@aws-cdk/aws-apigatewayv2-alpha/package.json index 435b10f50abac..46dcf380d703f 100644 --- a/packages/@aws-cdk/aws-apigatewayv2-alpha/package.json +++ b/packages/@aws-cdk/aws-apigatewayv2-alpha/package.json @@ -101,11 +101,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "features": [ diff --git a/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/awslint.json b/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/awslint.json new file mode 100644 index 0000000000000..3dab73aef9027 --- /dev/null +++ b/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} diff --git a/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/package.json b/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/package.json index 4be2ef188fb82..e52eccd611da8 100644 --- a/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/package.json +++ b/packages/@aws-cdk/aws-apigatewayv2-authorizers-alpha/package.json @@ -112,11 +112,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/awslint.json b/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/package.json b/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/package.json index 5a5888240a344..b0e15976bc1bb 100644 --- a/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/package.json +++ b/packages/@aws-cdk/aws-apigatewayv2-integrations-alpha/package.json @@ -108,11 +108,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-appconfig-alpha/awslint.json b/packages/@aws-cdk/aws-appconfig-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-appconfig-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-appconfig-alpha/package.json b/packages/@aws-cdk/aws-appconfig-alpha/package.json index 071de34757ac1..9b6675f1f0c06 100644 --- a/packages/@aws-cdk/aws-appconfig-alpha/package.json +++ b/packages/@aws-cdk/aws-appconfig-alpha/package.json @@ -102,11 +102,6 @@ }, "stability": "experimental", "maturity": "experimental", - "awslint": { - "exclude": [ - "*:*" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/aws-apprunner-alpha/awslint.json b/packages/@aws-cdk/aws-apprunner-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-apprunner-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apprunner-alpha/package.json b/packages/@aws-cdk/aws-apprunner-alpha/package.json index 092057ce06038..d19f7b303d450 100644 --- a/packages/@aws-cdk/aws-apprunner-alpha/package.json +++ b/packages/@aws-cdk/aws-apprunner-alpha/package.json @@ -109,11 +109,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-cloud9-alpha/awslint.json b/packages/@aws-cdk/aws-cloud9-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-cloud9-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cloud9-alpha/package.json b/packages/@aws-cdk/aws-cloud9-alpha/package.json index 62391a18c4c6b..ad691360ab705 100644 --- a/packages/@aws-cdk/aws-cloud9-alpha/package.json +++ b/packages/@aws-cdk/aws-cloud9-alpha/package.json @@ -98,11 +98,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-codestar-alpha/awslint.json b/packages/@aws-cdk/aws-codestar-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-codestar-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-codestar-alpha/package.json b/packages/@aws-cdk/aws-codestar-alpha/package.json index f95940f933c3d..2f0dd7ddbac0d 100644 --- a/packages/@aws-cdk/aws-codestar-alpha/package.json +++ b/packages/@aws-cdk/aws-codestar-alpha/package.json @@ -98,11 +98,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/awslint.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json index a7d28c77c652b..805b756fbb25d 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json @@ -98,11 +98,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-gamelift-alpha/awslint.json b/packages/@aws-cdk/aws-gamelift-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-gamelift-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-gamelift-alpha/package.json b/packages/@aws-cdk/aws-gamelift-alpha/package.json index 20f02851b806d..10eb9506c54c5 100644 --- a/packages/@aws-cdk/aws-gamelift-alpha/package.json +++ b/packages/@aws-cdk/aws-gamelift-alpha/package.json @@ -99,11 +99,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-glue-alpha/awslint.json b/packages/@aws-cdk/aws-glue-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-glue-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/external-table.ts b/packages/@aws-cdk/aws-glue-alpha/lib/external-table.ts index cca62739a9bcc..eacfcdb99b38e 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/external-table.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/external-table.ts @@ -25,6 +25,7 @@ export interface ExternalTableProps extends TableBaseProps { /** * A Glue table that targets an external data location (e.g. A table in a Redshift Cluster). + * @resource AWS::Glue::Table */ export class ExternalTable extends TableBase { /** diff --git a/packages/@aws-cdk/aws-glue-alpha/lib/s3-table.ts b/packages/@aws-cdk/aws-glue-alpha/lib/s3-table.ts index ccb8c9d87bd6c..56c81e4e473c4 100644 --- a/packages/@aws-cdk/aws-glue-alpha/lib/s3-table.ts +++ b/packages/@aws-cdk/aws-glue-alpha/lib/s3-table.ts @@ -78,6 +78,7 @@ export interface S3TableProps extends TableBaseProps { /** * A Glue table that targets a S3 dataset. + * @resource AWS::Glue::Table */ export class S3Table extends TableBase { /** diff --git a/packages/@aws-cdk/aws-glue-alpha/package.json b/packages/@aws-cdk/aws-glue-alpha/package.json index 1cab91411547c..5b3cf9bf7c445 100644 --- a/packages/@aws-cdk/aws-glue-alpha/package.json +++ b/packages/@aws-cdk/aws-glue-alpha/package.json @@ -101,11 +101,6 @@ }, "stability": "experimental", "maturity": "experimental", - "awslint": { - "exclude": [ - "*:*" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/aws-iot-actions-alpha/awslint.json b/packages/@aws-cdk/aws-iot-actions-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-iot-actions-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-iot-actions-alpha/package.json b/packages/@aws-cdk/aws-iot-actions-alpha/package.json index a1c6a17f62659..fba2d13fc4ac2 100644 --- a/packages/@aws-cdk/aws-iot-actions-alpha/package.json +++ b/packages/@aws-cdk/aws-iot-actions-alpha/package.json @@ -121,11 +121,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-iot-alpha/awslint.json b/packages/@aws-cdk/aws-iot-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-iot-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-iot-alpha/package.json b/packages/@aws-cdk/aws-iot-alpha/package.json index 07ed5fffedc36..3def2835c47e3 100644 --- a/packages/@aws-cdk/aws-iot-alpha/package.json +++ b/packages/@aws-cdk/aws-iot-alpha/package.json @@ -99,11 +99,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-iotevents-actions-alpha/awslint.json b/packages/@aws-cdk/aws-iotevents-actions-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-iotevents-actions-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json b/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json index 0fe88b682d6d9..845f86755db66 100644 --- a/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json +++ b/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json @@ -103,11 +103,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-iotevents-alpha/awslint.json b/packages/@aws-cdk/aws-iotevents-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-iotevents-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-iotevents-alpha/package.json b/packages/@aws-cdk/aws-iotevents-alpha/package.json index 479c6c98a5174..27135ecd6897d 100644 --- a/packages/@aws-cdk/aws-iotevents-alpha/package.json +++ b/packages/@aws-cdk/aws-iotevents-alpha/package.json @@ -100,11 +100,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-ivs-alpha/awslint.json b/packages/@aws-cdk/aws-ivs-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-ivs-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ivs-alpha/package.json b/packages/@aws-cdk/aws-ivs-alpha/package.json index 952f0fcbcda0f..96201207a44d3 100644 --- a/packages/@aws-cdk/aws-ivs-alpha/package.json +++ b/packages/@aws-cdk/aws-ivs-alpha/package.json @@ -42,11 +42,6 @@ } } }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "repository": { "type": "git", "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/awslint.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json index cc786d9353e8e..8627150e3f73b 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json @@ -95,11 +95,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-kinesisfirehose-alpha/awslint.json b/packages/@aws-cdk/aws-kinesisfirehose-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-kinesisfirehose-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json b/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json index 629e0a7ec19a5..af5a2b76b99ba 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json @@ -105,11 +105,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "jsiiRosetta": { "exampleDependencies": { "@aws-cdk/aws-kinesisfirehose-destinations-alpha": "*" diff --git a/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/awslint.json b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json index 940f4c7bacb14..c9ad7d4da4ddf 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json @@ -96,11 +96,6 @@ }, "stability": "experimental", "maturity": "experimental", - "awslint": { - "exclude": [ - "*:*" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/aws-lambda-go-alpha/awslint.json b/packages/@aws-cdk/aws-lambda-go-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-lambda-go-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-go-alpha/package.json b/packages/@aws-cdk/aws-lambda-go-alpha/package.json index 11c1b999b2cdd..8cfafaf7851fc 100644 --- a/packages/@aws-cdk/aws-lambda-go-alpha/package.json +++ b/packages/@aws-cdk/aws-lambda-go-alpha/package.json @@ -107,11 +107,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-lambda-python-alpha/awslint.json b/packages/@aws-cdk/aws-lambda-python-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-lambda-python-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda-python-alpha/package.json b/packages/@aws-cdk/aws-lambda-python-alpha/package.json index 48d44351ceead..15a3739879e04 100644 --- a/packages/@aws-cdk/aws-lambda-python-alpha/package.json +++ b/packages/@aws-cdk/aws-lambda-python-alpha/package.json @@ -106,11 +106,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-location-alpha/awslint.json b/packages/@aws-cdk/aws-location-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-location-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-location-alpha/package.json b/packages/@aws-cdk/aws-location-alpha/package.json index f19a0231f255d..7707adbdfebaa 100644 --- a/packages/@aws-cdk/aws-location-alpha/package.json +++ b/packages/@aws-cdk/aws-location-alpha/package.json @@ -109,11 +109,6 @@ "tag": "latest" }, "private": false, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-msk-alpha/awslint.json b/packages/@aws-cdk/aws-msk-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-msk-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-msk-alpha/package.json b/packages/@aws-cdk/aws-msk-alpha/package.json index 1f7ac150aa2c1..ec39d89c7d677 100644 --- a/packages/@aws-cdk/aws-msk-alpha/package.json +++ b/packages/@aws-cdk/aws-msk-alpha/package.json @@ -108,11 +108,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-neptune-alpha/awslint.json b/packages/@aws-cdk/aws-neptune-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-neptune-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-neptune-alpha/package.json b/packages/@aws-cdk/aws-neptune-alpha/package.json index 6d9f8fd5c06ec..406cf93c58818 100644 --- a/packages/@aws-cdk/aws-neptune-alpha/package.json +++ b/packages/@aws-cdk/aws-neptune-alpha/package.json @@ -98,11 +98,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-redshift-alpha/awslint.json b/packages/@aws-cdk/aws-redshift-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-redshift-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-redshift-alpha/package.json b/packages/@aws-cdk/aws-redshift-alpha/package.json index aa90dbad038e1..00802270a934a 100644 --- a/packages/@aws-cdk/aws-redshift-alpha/package.json +++ b/packages/@aws-cdk/aws-redshift-alpha/package.json @@ -101,11 +101,6 @@ "engines": { "node": ">= 14.15.0" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "stability": "experimental", "maturity": "experimental", "awscdkio": { diff --git a/packages/@aws-cdk/aws-route53resolver-alpha/awslint.json b/packages/@aws-cdk/aws-route53resolver-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-route53resolver-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-route53resolver-alpha/package.json b/packages/@aws-cdk/aws-route53resolver-alpha/package.json index 4379baa9208c2..51f37f2486ffd 100644 --- a/packages/@aws-cdk/aws-route53resolver-alpha/package.json +++ b/packages/@aws-cdk/aws-route53resolver-alpha/package.json @@ -99,11 +99,6 @@ }, "stability": "experimental", "maturity": "experimental", - "awslint": { - "exclude": [ - "*:*" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/aws-s3objectlambda-alpha/awslint.json b/packages/@aws-cdk/aws-s3objectlambda-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-s3objectlambda-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json b/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json index c57d9ae80219b..99bf0d606924b 100644 --- a/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json +++ b/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json @@ -108,11 +108,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "private": false, "pkglint": { "exclude": [ diff --git a/packages/@aws-cdk/aws-sagemaker-alpha/awslint.json b/packages/@aws-cdk/aws-sagemaker-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-sagemaker-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-sagemaker-alpha/package.json b/packages/@aws-cdk/aws-sagemaker-alpha/package.json index 7ed95b00eeb77..dc40e11f4ed8a 100644 --- a/packages/@aws-cdk/aws-sagemaker-alpha/package.json +++ b/packages/@aws-cdk/aws-sagemaker-alpha/package.json @@ -107,11 +107,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-scheduler-alpha/README.md b/packages/@aws-cdk/aws-scheduler-alpha/README.md index 5f5ef0d41a997..549a9f241530d 100644 --- a/packages/@aws-cdk/aws-scheduler-alpha/README.md +++ b/packages/@aws-cdk/aws-scheduler-alpha/README.md @@ -60,11 +60,6 @@ You can choose from three schedule types when configuring your schedule: rate-ba Both rate-based and cron-based schedules are recurring schedules. You can configure each recurring schedule type using a schedule expression. For cron-based schedule you can specify a time zone in which EventBridge Scheduler evaluates the expression. - -> ScheduleExpression should be used together with class Schedule, which is not yet implemented. - -[comment]: <> (TODO: Switch to `ts` once Schedule is implemented) - ```ts declare const target: targets.LambdaInvoke; @@ -129,12 +124,27 @@ new Schedule(this, 'Schedule', { }); ``` +### Disabling Schedules + +By default, a schedule will be enabled. You can disable a schedule by setting the `enabled` property to false: + +```ts +declare const target: targets.LambdaInvoke; + +new Schedule(this, 'Schedule', { + schedule: ScheduleExpression.rate(Duration.minutes(10)), + target: target, + enabled: false, +}); +``` + + ## Scheduler Targets -The `@aws-cdk/aws-schedule-targets-alpha` module includes classes that implement the `IScheduleTarget` interface for +The `@aws-cdk/aws-scheduler-targets-alpha` module includes classes that implement the `IScheduleTarget` interface for various AWS services. EventBridge Scheduler supports two types of targets: templated targets invoke common API operations across a core groups of services, and customizeable universal targets that you can use to call more -than 6,000 operations across over 270 services. A list of supported targets can be found at `@aws-cdk/aws-schedule-targets-alpha`. +than 6,000 operations across over 270 services. A list of supported targets can be found at `@aws-cdk/aws-scheduler-targets-alpha`. ### Input diff --git a/packages/@aws-cdk/aws-scheduler-alpha/awslint.json b/packages/@aws-cdk/aws-scheduler-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/lib/group.ts b/packages/@aws-cdk/aws-scheduler-alpha/lib/group.ts index 536f53b4022dc..cb26d6620bc5c 100644 --- a/packages/@aws-cdk/aws-scheduler-alpha/lib/group.ts +++ b/packages/@aws-cdk/aws-scheduler-alpha/lib/group.ts @@ -287,7 +287,9 @@ abstract class GroupBase extends Resource implements IGroup { }); } } - +/** + * @resource AWS::Scheduler::ScheduleGroup + */ export class Group extends GroupBase { /** * Import an external group by ARN. diff --git a/packages/@aws-cdk/aws-scheduler-alpha/lib/schedule.ts b/packages/@aws-cdk/aws-scheduler-alpha/lib/schedule.ts index 343acc398324f..e6d65c8c0b2fb 100644 --- a/packages/@aws-cdk/aws-scheduler-alpha/lib/schedule.ts +++ b/packages/@aws-cdk/aws-scheduler-alpha/lib/schedule.ts @@ -57,9 +57,15 @@ export interface ScheduleProps { /** * The schedule's group. * - * @deafult - By default a schedule will be associated with the `default` group. + * @default - By default a schedule will be associated with the `default` group. */ readonly group?: IGroup; + + /** + * Indicates whether the schedule is enabled. + * @default true + */ + readonly enabled?: boolean; } /** @@ -94,6 +100,7 @@ export class Schedule extends Resource implements ISchedule { scheduleExpression: props.schedule.expressionString, scheduleExpressionTimezone: props.schedule.timeZone?.timezoneName, groupName: this.group?.groupName, + state: (props.enabled ?? true) ? 'ENABLED' : 'DISABLED', target: { arn: targetConfig.arn, roleArn: targetConfig.role.roleArn, diff --git a/packages/@aws-cdk/aws-scheduler-alpha/package.json b/packages/@aws-cdk/aws-scheduler-alpha/package.json index d5e6d2f831c05..560b37dc31b3b 100644 --- a/packages/@aws-cdk/aws-scheduler-alpha/package.json +++ b/packages/@aws-cdk/aws-scheduler-alpha/package.json @@ -86,7 +86,8 @@ "@aws-cdk/pkglint": "0.0.0", "@types/jest": "^29.5.5", "aws-cdk-lib": "0.0.0", - "constructs": "^10.0.0" + "constructs": "^10.0.0", + "@aws-cdk/integ-tests-alpha": "0.0.0" }, "dependencies": {}, "peerDependencies": { @@ -104,11 +105,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/cdk.out b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/cdk.out new file mode 100644 index 0000000000000..2313ab5436501 --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"34.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integ.json b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integ.json new file mode 100644 index 0000000000000..c1aec1a40f53f --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "34.0.0", + "testCases": { + "integtest-schedule/DefaultTest": { + "stacks": [ + "aws-cdk-scheduler-schedule" + ], + "assertionStack": "integtest-schedule/DefaultTest/DeployAssert", + "assertionStackName": "integtestscheduleDefaultTestDeployAssert24CB3896" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.assets.json b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.assets.json new file mode 100644 index 0000000000000..8f8a003c1b5ba --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.assets.json @@ -0,0 +1,19 @@ +{ + "version": "34.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "integtestscheduleDefaultTestDeployAssert24CB3896.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.template.json b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.js.snapshot/integtestscheduleDefaultTestDeployAssert24CB3896.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.ts b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.ts new file mode 100644 index 0000000000000..a1907102a0ebf --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/integ.schedule.ts @@ -0,0 +1,47 @@ +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import * as cdk from 'aws-cdk-lib'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import * as scheduler from '../lib'; + +class SomeLambdaTarget implements scheduler.IScheduleTarget { + public constructor(private readonly fn: lambda.IFunction, private readonly role: iam.IRole) { + } + + public bind(): scheduler.ScheduleTargetConfig { + return { + arn: this.fn.functionArn, + role: this.role, + }; + } +} + +const app = new cdk.App(); +const stack = new cdk.Stack(app, 'aws-cdk-scheduler-schedule'); + +const expression = scheduler.ScheduleExpression.rate(cdk.Duration.hours(12)); +const func = new lambda.Function(stack, 'Function', { + code: new lambda.InlineCode('foo'), + handler: 'index.handler', + runtime: lambda.Runtime.NODEJS_LATEST, +}); +const role = new iam.Role(stack, 'Role', { + assumedBy: new iam.ServicePrincipal('scheduler.amazonaws.com'), +}); + +const target = new SomeLambdaTarget(func, role); + +new scheduler.Schedule(stack, 'DefaultSchedule', { + schedule: expression, + target: target, +}); + +new scheduler.Schedule(stack, 'DisabledSchedule', { + schedule: expression, + target: target, + enabled: false, +}); + +new IntegTest(app, 'integtest-schedule', { + testCases: [stack], +}); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-alpha/test/schedule.test.ts b/packages/@aws-cdk/aws-scheduler-alpha/test/schedule.test.ts new file mode 100644 index 0000000000000..a4db92018322d --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-alpha/test/schedule.test.ts @@ -0,0 +1,65 @@ +import { App, Stack } from 'aws-cdk-lib'; + +import { Template } from 'aws-cdk-lib/assertions'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { IScheduleTarget, Schedule, ScheduleTargetConfig } from '../lib'; +import { ScheduleExpression } from '../lib/schedule-expression'; + +class SomeLambdaTarget implements IScheduleTarget { + public constructor(private readonly fn: lambda.IFunction, private readonly role: iam.IRole) { + } + + public bind(): ScheduleTargetConfig { + return { + arn: this.fn.functionArn, + role: this.role, + }; + } +} + +describe('Schedule', () => { + let stack: Stack; + let func: lambda.IFunction; + let role: iam.IRole; + const expr = ScheduleExpression.at(new Date(Date.UTC(1969, 10, 20, 0, 0, 0))); + + beforeEach(() => { + const app = new App(); + stack = new Stack(app, 'Stack', { env: { region: 'us-east-1', account: '123456789012' } }); + func = new lambda.Function(stack, 'MyLambda', { + code: new lambda.InlineCode('foo'), + handler: 'index.handler', + runtime: lambda.Runtime.NODEJS_LATEST, + tracing: lambda.Tracing.PASS_THROUGH, + }); + role = iam.Role.fromRoleArn(stack, 'ImportedRole', 'arn:aws:iam::123456789012:role/someRole'); + }); + + test('schedule is enabled by default', () => { + // WHEN + new Schedule(stack, 'TestSchedule', { + schedule: expr, + target: new SomeLambdaTarget(func, role), + }); + + // THEN + Template.fromStack(stack).hasResourceProperties('AWS::Scheduler::Schedule', { + State: 'ENABLED', + }); + }); + + test('schedule can be disabled', () => { + // WHEN + new Schedule(stack, 'TestSchedule', { + schedule: expr, + target: new SomeLambdaTarget(func, role), + enabled: false, + }); + + // THEN + Template.fromStack(stack).hasResourceProperties('AWS::Scheduler::Schedule', { + State: 'DISABLED', + }); + }); +}); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-targets-alpha/awslint.json b/packages/@aws-cdk/aws-scheduler-targets-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-scheduler-targets-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json b/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json index 49e8747e6ac32..83a5954e0e66e 100644 --- a/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json +++ b/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json @@ -107,11 +107,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/awslint.json b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json index 284049870816d..9728211c3a9eb 100644 --- a/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json +++ b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json @@ -108,11 +108,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "private": false, "pkglint": { "exclude": [ diff --git a/packages/@aws-cdk/aws-synthetics-alpha/awslint.json b/packages/@aws-cdk/aws-synthetics-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/aws-synthetics-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-synthetics-alpha/package.json b/packages/@aws-cdk/aws-synthetics-alpha/package.json index a29ee0ed8b9ec..0d4d3153b2e68 100644 --- a/packages/@aws-cdk/aws-synthetics-alpha/package.json +++ b/packages/@aws-cdk/aws-synthetics-alpha/package.json @@ -112,11 +112,6 @@ "publishConfig": { "tag": "latest" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "pkglint": { "exclude": [ "naming/package-matches-directory", diff --git a/packages/@aws-cdk/cli-lib-alpha/awslint.json b/packages/@aws-cdk/cli-lib-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/cli-lib-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/cli-lib-alpha/package.json b/packages/@aws-cdk/cli-lib-alpha/package.json index d9d29ef16759f..485f45dbc0ba2 100644 --- a/packages/@aws-cdk/cli-lib-alpha/package.json +++ b/packages/@aws-cdk/cli-lib-alpha/package.json @@ -60,11 +60,6 @@ "test": "cdk-test", "watch": "cdk-watch" }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "cdk-build": { "post": [ "yarn attribute", diff --git a/packages/@aws-cdk/cloud-assembly-schema/package.json b/packages/@aws-cdk/cloud-assembly-schema/package.json index b5d8d1f999b53..bdc35f53c1faf 100644 --- a/packages/@aws-cdk/cloud-assembly-schema/package.json +++ b/packages/@aws-cdk/cloud-assembly-schema/package.json @@ -108,9 +108,6 @@ "node": ">= 14.15.0" }, "stability": "stable", - "awslint": { - "exclude": [] - }, "dependencies": { "jsonschema": "^1.4.1", "semver": "^7.5.4" diff --git a/packages/@aws-cdk/cx-api/FEATURE_FLAGS.md b/packages/@aws-cdk/cx-api/FEATURE_FLAGS.md index d32a46743e268..7004c5ec5e873 100644 --- a/packages/@aws-cdk/cx-api/FEATURE_FLAGS.md +++ b/packages/@aws-cdk/cx-api/FEATURE_FLAGS.md @@ -59,6 +59,8 @@ Flags come in three types: | [@aws-cdk/aws-efs:denyAnonymousAccess](#aws-cdkaws-efsdenyanonymousaccess) | EFS denies anonymous clients accesses | 2.93.0 | (default) | | [@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId](#aws-cdkaws-efsmounttargetorderinsensitivelogicalid) | When enabled, mount targets will have a stable logicalId that is linked to the associated subnet. | 2.93.0 | (fix) | | [@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion](#aws-cdkaws-lambda-nodejsuselatestruntimeversion) | Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default | 2.93.0 | (default) | +| [@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier](#aws-cdkaws-appsyncusearnforsourceapiassociationidentifier) | When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id. | 2.97.0 | (fix) | +| [@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters](#aws-cdkaws-rdsauroraclusterchangescopeofinstanceparametergroupwitheachparameters) | When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change. | 2.97.0 | (fix) | @@ -108,7 +110,9 @@ The following json shows the current recommended set of flags, as `cdk init` wou "@aws-cdk/aws-efs:denyAnonymousAccess": true, "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true, "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true, - "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true } } ``` @@ -1113,4 +1117,37 @@ shipped as part of the runtime environment. **Compatibility with old behavior:** Pass `runtime: lambda.Runtime.NODEJS_16_X` to `Function` construct to restore the previous behavior. +### @aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier + +*When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id.* (fix) + +When this feature flag is enabled, we use the IGraphqlApi ARN rather than ID when creating or updating CfnSourceApiAssociation in +the GraphqlApi construct. Using the ARN allows the association to support an association with a source api or merged api in another account. +Note that for existing source api associations created with this flag disabled, enabling the flag will lead to a resource replacement. + + +| Since | Default | Recommended | +| ----- | ----- | ----- | +| (not in v1) | | | +| 2.97.0 | `false` | `true` | + + +### @aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters + +*When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change.* (fix) + +When this feature flag is enabled, a scope of `InstanceParameterGroup` for +`AuroraClusterInstance` with each parameters will change to AuroraClusterInstance +from AuroraCluster. + +If the flag is set to false then it can only make one `AuroraClusterInstance` +with each `InstanceParameterGroup` in the AuroraCluster. + + +| Since | Default | Recommended | +| ----- | ----- | ----- | +| (not in v1) | | | +| 2.97.0 | `false` | `true` | + + diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index a82b6e98accd3..dce3d2927466d 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -115,67 +115,6 @@ }, "stability": "stable", "maturity": "stable", - "awslint": { - "exclude": [ - "props-default-doc:@aws-cdk/cx-api.MetadataEntry.data", - "docs-public-apis:@aws-cdk/cx-api.CloudArtifact.assembly", - "docs-public-apis:@aws-cdk/cx-api.CloudArtifact.findMetadataByType", - "docs-public-apis:@aws-cdk/cx-api.CloudAssembly.stacks", - "docs-public-apis:@aws-cdk/cx-api.CloudFormationStackArtifact", - "docs-public-apis:@aws-cdk/cx-api.EnvironmentUtils", - "docs-public-apis:@aws-cdk/cx-api.EnvironmentUtils.format", - "docs-public-apis:@aws-cdk/cx-api.EnvironmentUtils.parse", - "docs-public-apis:@aws-cdk/cx-api.TreeCloudArtifact", - "docs-public-apis:@aws-cdk/cx-api.TreeCloudArtifact.file", - "props-default-doc:@aws-cdk/cx-api.ArtifactManifest.dependencies", - "props-default-doc:@aws-cdk/cx-api.ArtifactManifest.environment", - "props-default-doc:@aws-cdk/cx-api.ArtifactManifest.metadata", - "props-default-doc:@aws-cdk/cx-api.ArtifactManifest.properties", - "docs-public-apis:@aws-cdk/cx-api.AssemblyBuildOptions", - "props-default-doc:@aws-cdk/cx-api.AssemblyManifest.artifacts", - "props-default-doc:@aws-cdk/cx-api.AssemblyManifest.missing", - "props-default-doc:@aws-cdk/cx-api.AssemblyManifest.runtime", - "props-default-doc:@aws-cdk/cx-api.AvailabilityZonesContextQuery.account", - "props-default-doc:@aws-cdk/cx-api.AvailabilityZonesContextQuery.region", - "props-default-doc:@aws-cdk/cx-api.EndpointServiceAvailabilityZonesContextQuery.account", - "props-default-doc:@aws-cdk/cx-api.EndpointServiceAvailabilityZonesContextQuery.region", - "props-default-doc:@aws-cdk/cx-api.EndpointServiceAvailabilityZonesContextQuery.serviceName", - "props-default-doc:@aws-cdk/cx-api.AwsCloudFormationStackProperties.parameters", - "docs-public-apis:@aws-cdk/cx-api.ContainerImageAssetMetadataEntry", - "docs-public-apis:@aws-cdk/cx-api.FileAssetMetadataEntry", - "props-default-doc:@aws-cdk/cx-api.HostedZoneContextQuery.account", - "props-default-doc:@aws-cdk/cx-api.HostedZoneContextQuery.privateZone", - "props-default-doc:@aws-cdk/cx-api.HostedZoneContextQuery.region", - "props-default-doc:@aws-cdk/cx-api.HostedZoneContextQuery.vpcId", - "docs-public-apis:@aws-cdk/cx-api.CloudArtifact.id", - "props-default-doc:@aws-cdk/cx-api.MetadataEntry.trace", - "docs-public-apis:@aws-cdk/cx-api.MetadataEntryResult", - "props-default-doc:@aws-cdk/cx-api.SSMParameterContextQuery.account", - "props-default-doc:@aws-cdk/cx-api.SSMParameterContextQuery.parameterName", - "props-default-doc:@aws-cdk/cx-api.SSMParameterContextQuery.region", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessage", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessage.entry", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessage.id", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessage.level", - "props-default-doc:@aws-cdk/cx-api.VpcContextQuery.account", - "props-default-doc:@aws-cdk/cx-api.VpcContextQuery.region", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.isolatedSubnetIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.isolatedSubnetNames", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.isolatedSubnetRouteTableIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.privateSubnetIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.privateSubnetNames", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.privateSubnetRouteTableIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.publicSubnetIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.publicSubnetNames", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.publicSubnetRouteTableIds", - "props-default-doc:@aws-cdk/cx-api.VpcContextResponse.vpnGatewayId", - "docs-public-apis:@aws-cdk/cx-api.ArtifactType.NONE", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessageLevel", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessageLevel.INFO", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessageLevel.WARNING", - "docs-public-apis:@aws-cdk/cx-api.SynthesisMessageLevel.ERROR" - ] - }, "awscdkio": { "announce": false }, diff --git a/packages/@aws-cdk/integ-tests-alpha/awslint.json b/packages/@aws-cdk/integ-tests-alpha/awslint.json new file mode 100644 index 0000000000000..dd97030f36303 --- /dev/null +++ b/packages/@aws-cdk/integ-tests-alpha/awslint.json @@ -0,0 +1,5 @@ +{ + "exclude": [ + "*:*" + ] +} \ No newline at end of file diff --git a/packages/@aws-cdk/integ-tests-alpha/package.json b/packages/@aws-cdk/integ-tests-alpha/package.json index a5b51fc3ac69d..5d7c91194f3a2 100644 --- a/packages/@aws-cdk/integ-tests-alpha/package.json +++ b/packages/@aws-cdk/integ-tests-alpha/package.json @@ -115,11 +115,6 @@ "node lib/assertions/providers/lambda-handler.bundle/index.js" ] }, - "awslint": { - "exclude": [ - "*:*" - ] - }, "nozem": { "ostools": [ "unzip", diff --git a/packages/@aws-cdk/region-info/package.json b/packages/@aws-cdk/region-info/package.json index df5990c6c13fd..aba296ec6a878 100644 --- a/packages/@aws-cdk/region-info/package.json +++ b/packages/@aws-cdk/region-info/package.json @@ -102,13 +102,6 @@ }, "stability": "stable", "maturity": "stable", - "awslint": { - "exclude": [ - "docs-public-apis:@aws-cdk/region-info.Fact.regions", - "docs-public-apis:@aws-cdk/region-info.RegionInfo.regions", - "docs-public-apis:@aws-cdk/region-info.RegionInfo.name" - ] - }, "nozem": { "ostools": [ "bash" diff --git a/packages/aws-cdk-lib/.npmignore b/packages/aws-cdk-lib/.npmignore index 3af20c5519270..60e48f52cdd0f 100644 --- a/packages/aws-cdk-lib/.npmignore +++ b/packages/aws-cdk-lib/.npmignore @@ -41,3 +41,6 @@ junit.xml # Nested node_modules aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/node_modules + +# awslint config +awslint.json \ No newline at end of file diff --git a/packages/aws-cdk-lib/aws-ec2/lib/cfn-init.ts b/packages/aws-cdk-lib/aws-ec2/lib/cfn-init.ts index 5abcbc35fb926..2cd6fd24f0c8b 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/cfn-init.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/cfn-init.ts @@ -303,6 +303,10 @@ function deepMerge(target?: Record, src?: Record) { if (src == null) { return target; } for (const [key, value] of Object.entries(src)) { + if (key === '__proto__' || key === 'constructor') { + continue; + } + if (Array.isArray(value)) { if (target[key] && !Array.isArray(target[key])) { throw new Error(`Trying to merge array [${value}] into a non-array '${target[key]}'`); diff --git a/packages/aws-cdk-lib/aws-ec2/lib/restrict-default-security-group-handler/.is_custom_resource b/packages/aws-cdk-lib/aws-ec2/lib/restrict-default-security-group-handler/.is_custom_resource new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/packages/aws-cdk-lib/aws-ec2/test/cfn-init.test.ts b/packages/aws-cdk-lib/aws-ec2/test/cfn-init.test.ts index a5658931a2eb5..bf6823a598988 100644 --- a/packages/aws-cdk-lib/aws-ec2/test/cfn-init.test.ts +++ b/packages/aws-cdk-lib/aws-ec2/test/cfn-init.test.ts @@ -660,7 +660,7 @@ function dontExpectLine(lines: string[], re: RegExp) { } function cmdArg(command: string, argument: string) { - return new RegExp(`${escapeRegex(command)}(\.exe)? .*${escapeRegex(argument)}`); + return new RegExp(`${escapeRegex(command)}(\\.exe)? .*${escapeRegex(argument)}`); } function escapeRegex(s: string) { diff --git a/packages/aws-cdk-lib/aws-ecs/lib/images/repository.ts b/packages/aws-cdk-lib/aws-ecs/lib/images/repository.ts index 2a371804177b6..c73658177c4fa 100644 --- a/packages/aws-cdk-lib/aws-ecs/lib/images/repository.ts +++ b/packages/aws-cdk-lib/aws-ecs/lib/images/repository.ts @@ -8,7 +8,7 @@ import { ContainerImage, ContainerImageConfig } from '../container-image'; * Regex pattern to check if it is an ECR image URL. * */ -const ECR_IMAGE_REGEX = /(^[a-zA-Z0-9][a-zA-Z0-9-_]*).dkr.ecr.([a-zA-Z0-9][a-zA-Z0-9-_]*).amazonaws.com(.cn)?\/.*/; +const ECR_IMAGE_REGEX = /(^[a-zA-Z0-9][a-zA-Z0-9-_]*)\.dkr\.ecr\.([a-zA-Z0-9][a-zA-Z0-9-_]*)\.amazonaws.com(\.cn)?\/.*/; /** * The properties for an image hosted in a public or private repository. diff --git a/packages/aws-cdk-lib/aws-eks/lib/kubectl-handler/helm/__init__.py b/packages/aws-cdk-lib/aws-eks/lib/kubectl-handler/helm/__init__.py index ce5fe63925637..3a5656f46db91 100644 --- a/packages/aws-cdk-lib/aws-eks/lib/kubectl-handler/helm/__init__.py +++ b/packages/aws-cdk-lib/aws-eks/lib/kubectl-handler/helm/__init__.py @@ -100,8 +100,8 @@ def helm_handler(event, context): def get_oci_cmd(repository, version): # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+.dkr.ecr.(?P[a-z0-9\-]+).amazonaws.com)*' - public_ecr_pattern = 'oci://(?Ppublic.ecr.aws)*' + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.amazonaws\.com)*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() @@ -115,7 +115,7 @@ def get_oci_cmd(repository, version): elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') - + if is_ecr_public_available(region): cmnd = [ f"aws ecr-public get-login-password --region us-east-1 | " \ @@ -124,7 +124,7 @@ def get_oci_cmd(repository, version): else: # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + cmnd = [f"helm pull {repository} --version {version} --untar"] else: logger.error("OCI repository format not recognized, falling back to helm pull") cmnd = [f"helm pull {repository} --version {version} --untar"] @@ -144,7 +144,7 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) logger.info(output) - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) except subprocess.CalledProcessError as exc: diff --git a/packages/aws-cdk-lib/aws-events-targets/lib/log-group.ts b/packages/aws-cdk-lib/aws-events-targets/lib/log-group.ts index 4e8850fdd4fe8..42ad45dae5204 100644 --- a/packages/aws-cdk-lib/aws-events-targets/lib/log-group.ts +++ b/packages/aws-cdk-lib/aws-events-targets/lib/log-group.ts @@ -146,7 +146,7 @@ export class CloudWatchLogGroup implements events.IRuleTarget { if (typeof(resolvedTemplate) === 'string') { // need to add the quotes back to the string so that we can parse the json // '{"timestamp":