From 84821f4915b4a09141e15d40c7d1b4fb761a9c7c Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Tue, 5 Aug 2025 13:02:27 +0200 Subject: [PATCH 1/3] feat(aws-codebuild): add support for Windows Server Core 2022 image --- .../WinCore2019-1.assets.json | 5 +- .../WinCore2019-2.assets.json | 5 +- .../WinCore2019-3.assets.json | 5 +- .../WinCore2022-3.assets.json | 20 + .../WinCore2022-3.template.json | 191 +++ .../cdk.out | 2 +- .../integ.json | 8 +- ...efaultTestDeployAssert5D19E22D.assets.json | 5 +- .../manifest.json | 1034 ++++++++++++++++- .../tree.json | 799 +------------ .../test/integ.project-windows-image.ts | 3 +- .../aws-cdk-lib/aws-codebuild/lib/project.ts | 6 +- .../aws-codebuild/test/project.test.ts | 44 +- 13 files changed, 1268 insertions(+), 859 deletions(-) create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.assets.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.template.json diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-1.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-1.assets.json index 3b3b47728ad21..1bc2a10b5b620 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-1.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-1.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "dec1d132f4e572dd7762d43b8dac666629a2f9d085a892097f7f7ad7d40faf01": { + "displayName": "WinCore2019-1 Template", "source": { "path": "WinCore2019-1.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-6e65eec3": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "dec1d132f4e572dd7762d43b8dac666629a2f9d085a892097f7f7ad7d40faf01.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-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-2.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-2.assets.json index d58133c4f480c..d2e095e8023ed 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-2.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-2.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "5c29023cae8e324b2a79007bfa8b380a864ff1b9e054fe9397c2e901f1a3612c": { + "displayName": "WinCore2019-2 Template", "source": { "path": "WinCore2019-2.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-3f05ac86": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "5c29023cae8e324b2a79007bfa8b380a864ff1b9e054fe9397c2e901f1a3612c.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-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-3.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-3.assets.json index e44d70a00da45..5737fd0bad147 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-3.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2019-3.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "e8bc0d78d8da99417fcf656d4fa2ca8b510073cd9d9fcecf9d7df22f0c8e2f60": { + "displayName": "WinCore2019-3 Template", "source": { "path": "WinCore2019-3.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-812565b2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "e8bc0d78d8da99417fcf656d4fa2ca8b510073cd9d9fcecf9d7df22f0c8e2f60.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-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.assets.json new file mode 100644 index 0000000000000..8ce6d8a264098 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.assets.json @@ -0,0 +1,20 @@ +{ + "version": "48.0.0", + "files": { + "a78aea08cf1c849d8e5af74f085b179bf70c64ad4a66c55b1b0386b6e68807be": { + "displayName": "WinCore2022-3 Template", + "source": { + "path": "WinCore2022-3.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region-22f56a90": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "a78aea08cf1c849d8e5af74f085b179bf70c64ad4a66c55b1b0386b6e68807be.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-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.template.json new file mode 100644 index 0000000000000..2d72027819dd3 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/WinCore2022-3.template.json @@ -0,0 +1,191 @@ +{ + "Resources": { + "ProjectRole4CCB274E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "codebuild.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "ProjectRoleDefaultPolicy7F29461B": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/codebuild/", + { + "Ref": "ProjectC78D97AD" + }, + ":*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/codebuild/", + { + "Ref": "ProjectC78D97AD" + } + ] + ] + } + ] + }, + { + "Action": [ + "codebuild:BatchPutCodeCoverages", + "codebuild:BatchPutTestCases", + "codebuild:CreateReport", + "codebuild:CreateReportGroup", + "codebuild:UpdateReport" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":codebuild:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":report-group/", + { + "Ref": "ProjectC78D97AD" + }, + "-*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "ProjectRoleDefaultPolicy7F29461B", + "Roles": [ + { + "Ref": "ProjectRole4CCB274E" + } + ] + } + }, + "ProjectC78D97AD": { + "Type": "AWS::CodeBuild::Project", + "Properties": { + "Artifacts": { + "Type": "NO_ARTIFACTS" + }, + "Cache": { + "Type": "NO_CACHE" + }, + "EncryptionKey": "alias/aws/s3", + "Environment": { + "ComputeType": "BUILD_GENERAL1_MEDIUM", + "Image": "aws/codebuild/windows-base:2022-1.0", + "ImagePullCredentialsType": "CODEBUILD", + "PrivilegedMode": false, + "Type": "WINDOWS_SERVER_2022_CONTAINER" + }, + "ServiceRole": { + "Fn::GetAtt": [ + "ProjectRole4CCB274E", + "Arn" + ] + }, + "Source": { + "BuildSpec": "{\n \"version\": \"0.2\"\n}", + "Type": "NO_SOURCE" + } + } + } + }, + "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-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/cdk.out index 1f0068d32659a..523a9aac37cbf 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/cdk.out +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"36.0.0"} \ No newline at end of file +{"version":"48.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integ.json index c268bcae8de2c..8b07e9d8419cd 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integ.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integ.json @@ -1,14 +1,16 @@ { - "version": "36.0.0", + "version": "48.0.0", "testCases": { "integ-project-windows-images/DefaultTest": { "stacks": [ "WinCore2019-1", "WinCore2019-2", - "WinCore2019-3" + "WinCore2019-3", + "WinCore2022-3" ], "assertionStack": "integ-project-windows-images/DefaultTest/DeployAssert", "assertionStackName": "integprojectwindowsimagesDefaultTestDeployAssert5D19E22D" } - } + }, + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.assets.json index 02fcecdc45c6e..9d893c13f9bca 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.assets.json @@ -1,13 +1,14 @@ { - "version": "36.0.0", + "version": "48.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "displayName": "integprojectwindowsimagesDefaultTestDeployAssert5D19E22D Template", "source": { "path": "integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "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}" diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/manifest.json index d04166136252c..bee03e3ccef28 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "48.0.0", "artifacts": { "WinCore2019-1.assets": { "type": "cdk:asset-manifest", @@ -34,12 +34,119 @@ "WinCore2019-1.assets" ], "metadata": { + "/WinCore2019-1/Project": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "buildSpec": "*", + "environment": { + "buildImage": { + "defaultComputeType": "BUILD_GENERAL1_MEDIUM", + "type": "*", + "imageId": "*", + "imagePullPrincipalType": "CODEBUILD", + "secretsManagerCredentials": "*", + "repository": "*" + }, + "computeType": "BUILD_GENERAL1_MEDIUM" + } + } + } + ], + "/WinCore2019-1/Project/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/WinCore2019-1/Project/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/WinCore2019-1/Project/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "ProjectRole4CCB274E" } ], + "/WinCore2019-1/Project/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/WinCore2019-1/Project/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -100,12 +207,119 @@ "WinCore2019-2.assets" ], "metadata": { + "/WinCore2019-2/Project": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "buildSpec": "*", + "environment": { + "buildImage": { + "defaultComputeType": "BUILD_GENERAL1_MEDIUM", + "type": "*", + "imageId": "*", + "imagePullPrincipalType": "CODEBUILD", + "secretsManagerCredentials": "*", + "repository": "*" + }, + "computeType": "BUILD_GENERAL1_MEDIUM" + } + } + } + ], + "/WinCore2019-2/Project/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/WinCore2019-2/Project/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/WinCore2019-2/Project/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "ProjectRole4CCB274E" } ], + "/WinCore2019-2/Project/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/WinCore2019-2/Project/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -166,12 +380,119 @@ "WinCore2019-3.assets" ], "metadata": { + "/WinCore2019-3/Project": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "buildSpec": "*", + "environment": { + "buildImage": { + "defaultComputeType": "BUILD_GENERAL1_MEDIUM", + "type": "*", + "imageId": "*", + "imagePullPrincipalType": "CODEBUILD", + "secretsManagerCredentials": "*", + "repository": "*" + }, + "computeType": "BUILD_GENERAL1_MEDIUM" + } + } + } + ], + "/WinCore2019-3/Project/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/WinCore2019-3/Project/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], "/WinCore2019-3/Project/Role/Resource": [ { "type": "aws:cdk:logicalId", "data": "ProjectRole4CCB274E" } ], + "/WinCore2019-3/Project/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], "/WinCore2019-3/Project/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", @@ -199,6 +520,179 @@ }, "displayName": "WinCore2019-3" }, + "WinCore2022-3.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "WinCore2022-3.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "WinCore2022-3": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "WinCore2022-3.template.json", + "terminationProtection": false, + "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}/a78aea08cf1c849d8e5af74f085b179bf70c64ad4a66c55b1b0386b6e68807be.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "WinCore2022-3.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "WinCore2022-3.assets" + ], + "metadata": { + "/WinCore2022-3/Project": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "buildSpec": "*", + "environment": { + "buildImage": { + "defaultComputeType": "BUILD_GENERAL1_MEDIUM", + "type": "*", + "imageId": "*", + "imagePullPrincipalType": "CODEBUILD", + "secretsManagerCredentials": "*", + "repository": "*" + }, + "computeType": "BUILD_GENERAL1_MEDIUM" + } + } + } + ], + "/WinCore2022-3/Project/Role": [ + { + "type": "aws:cdk:analytics:construct", + "data": { + "roleName": "*", + "assumedBy": { + "principalAccount": "*", + "assumeRoleAction": "*" + } + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachInlinePolicy": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addToPrincipalPolicy": [ + {} + ] + } + } + ], + "/WinCore2022-3/Project/Role/ImportRole": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + } + ], + "/WinCore2022-3/Project/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ProjectRole4CCB274E" + } + ], + "/WinCore2022-3/Project/Role/DefaultPolicy": [ + { + "type": "aws:cdk:analytics:construct", + "data": "*" + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "attachToRole": [ + "*" + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + }, + { + "type": "aws:cdk:analytics:method", + "data": { + "addStatements": [ + {} + ] + } + } + ], + "/WinCore2022-3/Project/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ProjectRoleDefaultPolicy7F29461B" + } + ], + "/WinCore2022-3/Project/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ProjectC78D97AD" + } + ], + "/WinCore2022-3/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/WinCore2022-3/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "WinCore2022-3" + }, "integprojectwindowsimagesDefaultTestDeployAssert5D19E22D.assets": { "type": "cdk:asset-manifest", "properties": { @@ -252,6 +746,542 @@ "properties": { "file": "tree.json" } + }, + "aws-cdk-lib/feature-flag-report": { + "type": "cdk:feature-flag-report", + "properties": { + "module": "aws-cdk-lib", + "flags": { + "@aws-cdk/core:enableStackNameDuplicates": { + "recommendedValue": true, + "explanation": "Allow multiple stacks with the same name", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "aws-cdk:enableDiffNoFail": { + "recommendedValue": true, + "explanation": "Make `cdk diff` not fail when there are differences", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:newStyleStackSynthesis": { + "recommendedValue": true, + "explanation": "Switch to new stack synthesis method which enables CI/CD", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:stackRelativeExports": { + "recommendedValue": true, + "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": { + "recommendedValue": true, + "explanation": "DockerImageAsset properly supports `.dockerignore` files by default", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": { + "recommendedValue": true, + "explanation": "Fix the referencing of SecretsManager names from ARNs", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-kms:defaultKeyPolicies": { + "recommendedValue": true, + "explanation": "Tighten default KMS key policies", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-s3:grantWriteWithoutAcl": { + "recommendedValue": true, + "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": { + "recommendedValue": true, + "explanation": "Do not specify a default DesiredCount for ECS services", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": { + "recommendedValue": true, + "explanation": "Force lowercasing of RDS Cluster names in CDK", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": { + "recommendedValue": true, + "explanation": "Allow adding/removing multiple UsagePlanKeys independently", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-efs:defaultEncryptionAtRest": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeVersionProps": { + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-lambda:recognizeLayerVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`." + }, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": { + "recommendedValue": true, + "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:checkSecretUsage": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations" + }, + "@aws-cdk/core:target-partitions": { + "recommendedValue": [ + "aws", + "aws-cn" + ], + "explanation": "What regions to include in lookup tables of environment agnostic stacks" + }, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": { + "userValue": true, + "recommendedValue": true, + "explanation": "ECS extensions will automatically add an `awslogs` driver if no logging is specified" + }, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names." + }, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": { + "userValue": true, + "recommendedValue": true, + "explanation": "ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID." + }, + "@aws-cdk/aws-iam:minimizePolicies": { + "userValue": true, + "recommendedValue": true, + "explanation": "Minimize IAM policies by combining Statements" + }, + "@aws-cdk/core:validateSnapshotRemovalPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Error on snapshot removal policies on resources that do not support it." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate key aliases that include the stack name" + }, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist." + }, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict KMS key policy for encrypted Queues a bit more" + }, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make default CloudWatch Role behavior safe for multiple API Gateways in one environment" + }, + "@aws-cdk/core:enablePartitionLiterals": { + "userValue": true, + "recommendedValue": true, + "explanation": "Make ARNs concrete if AWS partition is known" + }, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": { + "userValue": true, + "recommendedValue": true, + "explanation": "Event Rules may only push to encrypted SQS queues in the same account" + }, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": { + "userValue": true, + "recommendedValue": true, + "explanation": "Avoid setting the \"ECS\" deployment controller when adding a circuit breaker" + }, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in." + }, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use S3 Bucket Policy instead of ACLs for Server Access Logging" + }, + "@aws-cdk/aws-route53-patters:useCertificate": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use the official `Certificate` resource instead of `DnsValidatedCertificate`" + }, + "@aws-cdk/customresources:installLatestAwsSdkDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "Whether to install the latest SDK by default in AwsCustomResource" + }, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": { + "userValue": true, + "recommendedValue": true, + "explanation": "Use unique resource name for Database Proxy" + }, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Remove CloudWatch alarms from deployment group" + }, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include authorizer configuration in the calculation of the API deployment logical ID." + }, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": { + "userValue": true, + "recommendedValue": true, + "explanation": "Define user data for a launch template by default when a machine image is provided." + }, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": { + "userValue": true, + "recommendedValue": true, + "explanation": "SecretTargetAttachments uses the ResourcePolicy of the attached Secret." + }, + "@aws-cdk/aws-redshift:columnId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Whether to use an ID to track Redshift column changes" + }, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable AmazonEMRServicePolicy_v2 managed policies" + }, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "Restrict access to the VPC default security group" + }, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a unique id for each RequestValidator added to a method" + }, + "@aws-cdk/aws-kms:aliasNameRef": { + "userValue": true, + "recommendedValue": true, + "explanation": "KMS Alias name and keyArn will have implicit reference to KMS Key" + }, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition" + }, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": { + "userValue": true, + "recommendedValue": true, + "explanation": "Generate a launch template when creating an AutoScalingGroup" + }, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": { + "userValue": true, + "recommendedValue": true, + "explanation": "Include the stack prefix in the stack name generation process" + }, + "@aws-cdk/aws-efs:denyAnonymousAccess": { + "userValue": true, + "recommendedValue": true, + "explanation": "EFS denies anonymous clients accesses" + }, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables support for Multi-AZ with Standby deployment for opensearch domains" + }, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default" + }, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, mount targets will have a stable logicalId that is linked to the associated subnet." + }, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change." + }, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id." + }, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials." + }, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the CodeCommit source action is using the default branch name 'main'." + }, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID." + }, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default value for crossAccountKeys to false." + }, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "Enables Pipeline to set the default pipeline type to V2." + }, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only." + }, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-eks:nodegroupNameAttribute": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix." + }, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default volume type of the EBS volume will be GP3" + }, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, remove default deployment alarm settings" + }, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default" + }, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": { + "userValue": false, + "recommendedValue": false, + "explanation": "When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack." + }, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": { + "recommendedValue": true, + "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { + "userValue": false, + "recommendedValue": false, + "explanation": "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)**" + }, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false. **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**" + }, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration" + }, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas" + }, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together." + }, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn." + }, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`" + }, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values." + }, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications." + }, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN." + }, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2." + }, + "@aws-cdk/core:aspectStabilization": { + "recommendedValue": true, + "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource." + }, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere" + }, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the default behaviour of OIDC provider will reject unauthorized connections" + }, + "@aws-cdk/core:enableAdditionalMetadataCollection": { + "userValue": true, + "recommendedValue": true, + "explanation": "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." + }, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": { + "userValue": false, + "recommendedValue": false, + "explanation": "[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement" + }, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK will automatically generate a unique role name that is used for s3 object replication." + }, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": { + "recommendedValue": true, + "explanation": "Remove the root account principal from Stage addActions trust policy", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-events:requireEventBusPolicySid": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals." + }, + "@aws-cdk/core:aspectPrioritiesMutating": { + "userValue": true, + "recommendedValue": true, + "explanation": "When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING." + }, + "@aws-cdk/aws-dynamodb:retainTableReplica": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, table replica will be default to the removal policy of source table unless specified otherwise." + }, + "@aws-cdk/cognito:logUserPoolClientSecretValue": { + "recommendedValue": false, + "explanation": "When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs.", + "unconfiguredBehavesLike": { + "v2": false + } + }, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": { + "recommendedValue": true, + "explanation": "When enabled, scopes down the trust policy for the cross-account action role", + "unconfiguredBehavesLike": { + "v2": true + } + }, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter" + }, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": { + "userValue": true, + "recommendedValue": true, + "explanation": "Add an S3 trust policy to a KMS key resource policy for SNS subscriptions." + }, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC." + }, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": { + "recommendedValue": false, + "explanation": "When enabled, use resource IDs for VPC V2 migration", + "unconfiguredBehavesLike": { + "v2": false + } + }, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined." + }, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, CDK creates and manages loggroup for the lambda function", + "unconfiguredBehavesLike": { + "v2": false + } + } + } + } } - } + }, + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/tree.json index 7948e9fc4868f..6b6be93ef6bfd 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.js.snapshot/tree.json @@ -1,798 +1 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "WinCore2019-1": { - "id": "WinCore2019-1", - "path": "WinCore2019-1", - "children": { - "Project": { - "id": "Project", - "path": "WinCore2019-1/Project", - "children": { - "Role": { - "id": "Role", - "path": "WinCore2019-1/Project/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "WinCore2019-1/Project/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-1/Project/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "codebuild.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "0.0.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "WinCore2019-1/Project/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "WinCore2019-1/Project/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - }, - ":*" - ] - ] - }, - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - } - ] - ] - } - ] - }, - { - "Action": [ - "codebuild:BatchPutCodeCoverages", - "codebuild:BatchPutTestCases", - "codebuild:CreateReport", - "codebuild:CreateReportGroup", - "codebuild:UpdateReport" - ], - "Effect": "Allow", - "Resource": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":codebuild:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":report-group/", - { - "Ref": "ProjectC78D97AD" - }, - "-*" - ] - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "ProjectRoleDefaultPolicy7F29461B", - "roles": [ - { - "Ref": "ProjectRole4CCB274E" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-1/Project/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CodeBuild::Project", - "aws:cdk:cloudformation:props": { - "artifacts": { - "type": "NO_ARTIFACTS" - }, - "cache": { - "type": "NO_CACHE" - }, - "encryptionKey": "alias/aws/s3", - "environment": { - "type": "WINDOWS_SERVER_2019_CONTAINER", - "image": "aws/codebuild/windows-base:2019-1.0", - "imagePullCredentialsType": "CODEBUILD", - "privilegedMode": false, - "computeType": "BUILD_GENERAL1_MEDIUM" - }, - "serviceRole": { - "Fn::GetAtt": [ - "ProjectRole4CCB274E", - "Arn" - ] - }, - "source": { - "type": "NO_SOURCE", - "buildSpec": "{\n \"version\": \"0.2\"\n}" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.CfnProject", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.Project", - "version": "0.0.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "WinCore2019-1/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "WinCore2019-1/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "0.0.0" - } - }, - "WinCore2019-2": { - "id": "WinCore2019-2", - "path": "WinCore2019-2", - "children": { - "Project": { - "id": "Project", - "path": "WinCore2019-2/Project", - "children": { - "Role": { - "id": "Role", - "path": "WinCore2019-2/Project/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "WinCore2019-2/Project/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-2/Project/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "codebuild.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "0.0.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "WinCore2019-2/Project/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "WinCore2019-2/Project/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - }, - ":*" - ] - ] - }, - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - } - ] - ] - } - ] - }, - { - "Action": [ - "codebuild:BatchPutCodeCoverages", - "codebuild:BatchPutTestCases", - "codebuild:CreateReport", - "codebuild:CreateReportGroup", - "codebuild:UpdateReport" - ], - "Effect": "Allow", - "Resource": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":codebuild:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":report-group/", - { - "Ref": "ProjectC78D97AD" - }, - "-*" - ] - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "ProjectRoleDefaultPolicy7F29461B", - "roles": [ - { - "Ref": "ProjectRole4CCB274E" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-2/Project/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CodeBuild::Project", - "aws:cdk:cloudformation:props": { - "artifacts": { - "type": "NO_ARTIFACTS" - }, - "cache": { - "type": "NO_CACHE" - }, - "encryptionKey": "alias/aws/s3", - "environment": { - "type": "WINDOWS_SERVER_2019_CONTAINER", - "image": "aws/codebuild/windows-base:2019-2.0", - "imagePullCredentialsType": "CODEBUILD", - "privilegedMode": false, - "computeType": "BUILD_GENERAL1_MEDIUM" - }, - "serviceRole": { - "Fn::GetAtt": [ - "ProjectRole4CCB274E", - "Arn" - ] - }, - "source": { - "type": "NO_SOURCE", - "buildSpec": "{\n \"version\": \"0.2\"\n}" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.CfnProject", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.Project", - "version": "0.0.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "WinCore2019-2/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "WinCore2019-2/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "0.0.0" - } - }, - "WinCore2019-3": { - "id": "WinCore2019-3", - "path": "WinCore2019-3", - "children": { - "Project": { - "id": "Project", - "path": "WinCore2019-3/Project", - "children": { - "Role": { - "id": "Role", - "path": "WinCore2019-3/Project/Role", - "children": { - "ImportRole": { - "id": "ImportRole", - "path": "WinCore2019-3/Project/Role/ImportRole", - "constructInfo": { - "fqn": "aws-cdk-lib.Resource", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-3/Project/Role/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "codebuild.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnRole", - "version": "0.0.0" - } - }, - "DefaultPolicy": { - "id": "DefaultPolicy", - "path": "WinCore2019-3/Project/Role/DefaultPolicy", - "children": { - "Resource": { - "id": "Resource", - "path": "WinCore2019-3/Project/Role/DefaultPolicy/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Policy", - "aws:cdk:cloudformation:props": { - "policyDocument": { - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - }, - ":*" - ] - ] - }, - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":logs:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":log-group:/aws/codebuild/", - { - "Ref": "ProjectC78D97AD" - } - ] - ] - } - ] - }, - { - "Action": [ - "codebuild:BatchPutCodeCoverages", - "codebuild:BatchPutTestCases", - "codebuild:CreateReport", - "codebuild:CreateReportGroup", - "codebuild:UpdateReport" - ], - "Effect": "Allow", - "Resource": { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":codebuild:", - { - "Ref": "AWS::Region" - }, - ":", - { - "Ref": "AWS::AccountId" - }, - ":report-group/", - { - "Ref": "ProjectC78D97AD" - }, - "-*" - ] - ] - } - } - ], - "Version": "2012-10-17" - }, - "policyName": "ProjectRoleDefaultPolicy7F29461B", - "roles": [ - { - "Ref": "ProjectRole4CCB274E" - } - ] - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Policy", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_iam.Role", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "WinCore2019-3/Project/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::CodeBuild::Project", - "aws:cdk:cloudformation:props": { - "artifacts": { - "type": "NO_ARTIFACTS" - }, - "cache": { - "type": "NO_CACHE" - }, - "encryptionKey": "alias/aws/s3", - "environment": { - "type": "WINDOWS_SERVER_2019_CONTAINER", - "image": "aws/codebuild/windows-base:2019-3.0", - "imagePullCredentialsType": "CODEBUILD", - "privilegedMode": false, - "computeType": "BUILD_GENERAL1_MEDIUM" - }, - "serviceRole": { - "Fn::GetAtt": [ - "ProjectRole4CCB274E", - "Arn" - ] - }, - "source": { - "type": "NO_SOURCE", - "buildSpec": "{\n \"version\": \"0.2\"\n}" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.CfnProject", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.aws_codebuild.Project", - "version": "0.0.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "WinCore2019-3/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "WinCore2019-3/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "0.0.0" - } - }, - "integ-project-windows-images": { - "id": "integ-project-windows-images", - "path": "integ-project-windows-images", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "integ-project-windows-images/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "integ-project-windows-images/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "integ-project-windows-images/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "integ-project-windows-images/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "integ-project-windows-images/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "aws-cdk-lib.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.Stack", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", - "version": "0.0.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.3.0" - } - } - }, - "constructInfo": { - "fqn": "aws-cdk-lib.App", - "version": "0.0.0" - } - } -} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"WinCore2019-1":{"id":"WinCore2019-1","path":"WinCore2019-1","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Project":{"id":"Project","path":"WinCore2019-1/Project","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.Project","version":"0.0.0","metadata":[{"buildSpec":"*","environment":{"buildImage":{"defaultComputeType":"BUILD_GENERAL1_MEDIUM","type":"*","imageId":"*","imagePullPrincipalType":"CODEBUILD","secretsManagerCredentials":"*","repository":"*"},"computeType":"BUILD_GENERAL1_MEDIUM"}}]},"children":{"Role":{"id":"Role","path":"WinCore2019-1/Project/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"WinCore2019-1/Project/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"WinCore2019-1/Project/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"WinCore2019-1/Project/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"WinCore2019-1/Project/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"},":*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"}]]}]},{"Action":["codebuild:BatchPutCodeCoverages","codebuild:BatchPutTestCases","codebuild:CreateReport","codebuild:CreateReportGroup","codebuild:UpdateReport"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":codebuild:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":report-group/",{"Ref":"ProjectC78D97AD"},"-*"]]}}],"Version":"2012-10-17"},"policyName":"ProjectRoleDefaultPolicy7F29461B","roles":[{"Ref":"ProjectRole4CCB274E"}]}}}}}}},"Resource":{"id":"Resource","path":"WinCore2019-1/Project/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.CfnProject","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CodeBuild::Project","aws:cdk:cloudformation:props":{"artifacts":{"type":"NO_ARTIFACTS"},"cache":{"type":"NO_CACHE"},"encryptionKey":"alias/aws/s3","environment":{"type":"WINDOWS_SERVER_2019_CONTAINER","image":"aws/codebuild/windows-base:2019-1.0","imagePullCredentialsType":"CODEBUILD","privilegedMode":false,"computeType":"BUILD_GENERAL1_MEDIUM"},"serviceRole":{"Fn::GetAtt":["ProjectRole4CCB274E","Arn"]},"source":{"type":"NO_SOURCE","buildSpec":"{\n \"version\": \"0.2\"\n}"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"WinCore2019-1/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"WinCore2019-1/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"WinCore2019-2":{"id":"WinCore2019-2","path":"WinCore2019-2","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Project":{"id":"Project","path":"WinCore2019-2/Project","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.Project","version":"0.0.0","metadata":[{"buildSpec":"*","environment":{"buildImage":{"defaultComputeType":"BUILD_GENERAL1_MEDIUM","type":"*","imageId":"*","imagePullPrincipalType":"CODEBUILD","secretsManagerCredentials":"*","repository":"*"},"computeType":"BUILD_GENERAL1_MEDIUM"}}]},"children":{"Role":{"id":"Role","path":"WinCore2019-2/Project/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"WinCore2019-2/Project/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"WinCore2019-2/Project/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"WinCore2019-2/Project/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"WinCore2019-2/Project/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"},":*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"}]]}]},{"Action":["codebuild:BatchPutCodeCoverages","codebuild:BatchPutTestCases","codebuild:CreateReport","codebuild:CreateReportGroup","codebuild:UpdateReport"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":codebuild:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":report-group/",{"Ref":"ProjectC78D97AD"},"-*"]]}}],"Version":"2012-10-17"},"policyName":"ProjectRoleDefaultPolicy7F29461B","roles":[{"Ref":"ProjectRole4CCB274E"}]}}}}}}},"Resource":{"id":"Resource","path":"WinCore2019-2/Project/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.CfnProject","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CodeBuild::Project","aws:cdk:cloudformation:props":{"artifacts":{"type":"NO_ARTIFACTS"},"cache":{"type":"NO_CACHE"},"encryptionKey":"alias/aws/s3","environment":{"type":"WINDOWS_SERVER_2019_CONTAINER","image":"aws/codebuild/windows-base:2019-2.0","imagePullCredentialsType":"CODEBUILD","privilegedMode":false,"computeType":"BUILD_GENERAL1_MEDIUM"},"serviceRole":{"Fn::GetAtt":["ProjectRole4CCB274E","Arn"]},"source":{"type":"NO_SOURCE","buildSpec":"{\n \"version\": \"0.2\"\n}"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"WinCore2019-2/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"WinCore2019-2/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"WinCore2019-3":{"id":"WinCore2019-3","path":"WinCore2019-3","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Project":{"id":"Project","path":"WinCore2019-3/Project","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.Project","version":"0.0.0","metadata":[{"buildSpec":"*","environment":{"buildImage":{"defaultComputeType":"BUILD_GENERAL1_MEDIUM","type":"*","imageId":"*","imagePullPrincipalType":"CODEBUILD","secretsManagerCredentials":"*","repository":"*"},"computeType":"BUILD_GENERAL1_MEDIUM"}}]},"children":{"Role":{"id":"Role","path":"WinCore2019-3/Project/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"WinCore2019-3/Project/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"WinCore2019-3/Project/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"WinCore2019-3/Project/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"WinCore2019-3/Project/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"},":*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"}]]}]},{"Action":["codebuild:BatchPutCodeCoverages","codebuild:BatchPutTestCases","codebuild:CreateReport","codebuild:CreateReportGroup","codebuild:UpdateReport"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":codebuild:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":report-group/",{"Ref":"ProjectC78D97AD"},"-*"]]}}],"Version":"2012-10-17"},"policyName":"ProjectRoleDefaultPolicy7F29461B","roles":[{"Ref":"ProjectRole4CCB274E"}]}}}}}}},"Resource":{"id":"Resource","path":"WinCore2019-3/Project/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.CfnProject","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CodeBuild::Project","aws:cdk:cloudformation:props":{"artifacts":{"type":"NO_ARTIFACTS"},"cache":{"type":"NO_CACHE"},"encryptionKey":"alias/aws/s3","environment":{"type":"WINDOWS_SERVER_2019_CONTAINER","image":"aws/codebuild/windows-base:2019-3.0","imagePullCredentialsType":"CODEBUILD","privilegedMode":false,"computeType":"BUILD_GENERAL1_MEDIUM"},"serviceRole":{"Fn::GetAtt":["ProjectRole4CCB274E","Arn"]},"source":{"type":"NO_SOURCE","buildSpec":"{\n \"version\": \"0.2\"\n}"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"WinCore2019-3/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"WinCore2019-3/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"WinCore2022-3":{"id":"WinCore2022-3","path":"WinCore2022-3","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Project":{"id":"Project","path":"WinCore2022-3/Project","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.Project","version":"0.0.0","metadata":[{"buildSpec":"*","environment":{"buildImage":{"defaultComputeType":"BUILD_GENERAL1_MEDIUM","type":"*","imageId":"*","imagePullPrincipalType":"CODEBUILD","secretsManagerCredentials":"*","repository":"*"},"computeType":"BUILD_GENERAL1_MEDIUM"}}]},"children":{"Role":{"id":"Role","path":"WinCore2022-3/Project/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"WinCore2022-3/Project/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"WinCore2022-3/Project/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"WinCore2022-3/Project/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"WinCore2022-3/Project/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"},":*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:/aws/codebuild/",{"Ref":"ProjectC78D97AD"}]]}]},{"Action":["codebuild:BatchPutCodeCoverages","codebuild:BatchPutTestCases","codebuild:CreateReport","codebuild:CreateReportGroup","codebuild:UpdateReport"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":codebuild:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":report-group/",{"Ref":"ProjectC78D97AD"},"-*"]]}}],"Version":"2012-10-17"},"policyName":"ProjectRoleDefaultPolicy7F29461B","roles":[{"Ref":"ProjectRole4CCB274E"}]}}}}}}},"Resource":{"id":"Resource","path":"WinCore2022-3/Project/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_codebuild.CfnProject","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::CodeBuild::Project","aws:cdk:cloudformation:props":{"artifacts":{"type":"NO_ARTIFACTS"},"cache":{"type":"NO_CACHE"},"encryptionKey":"alias/aws/s3","environment":{"type":"WINDOWS_SERVER_2022_CONTAINER","image":"aws/codebuild/windows-base:2022-1.0","imagePullCredentialsType":"CODEBUILD","privilegedMode":false,"computeType":"BUILD_GENERAL1_MEDIUM"},"serviceRole":{"Fn::GetAtt":["ProjectRole4CCB274E","Arn"]},"source":{"type":"NO_SOURCE","buildSpec":"{\n \"version\": \"0.2\"\n}"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"WinCore2022-3/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"WinCore2022-3/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"integ-project-windows-images":{"id":"integ-project-windows-images","path":"integ-project-windows-images","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"integ-project-windows-images/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"integ-project-windows-images/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"integ-project-windows-images/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"integ-project-windows-images/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"integ-project-windows-images/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.ts index ee6dd38353550..6d5c202039382 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-codebuild/test/integ.project-windows-image.ts @@ -25,8 +25,7 @@ new IntegTest(app, 'integ-project-windows-images', { new ImageTestStack(app, 'WinCore2019-1', WindowsBuildImage.WIN_SERVER_CORE_2019_BASE), new ImageTestStack(app, 'WinCore2019-2', WindowsBuildImage.WIN_SERVER_CORE_2019_BASE_2_0), new ImageTestStack(app, 'WinCore2019-3', WindowsBuildImage.WIN_SERVER_CORE_2019_BASE_3_0), - // Windows 2022 images are not supported for on-demand build projects - /* new ImageTestStack(app, 'WinCore2022-3', WindowsBuildImage.WIN_SERVER_CORE_2022_BASE_3_0), */ + new ImageTestStack(app, 'WinCore2022-3', WindowsBuildImage.WIN_SERVER_CORE_2022_BASE_3_0), ], }); diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts index fc18626beacea..c68727d9120fc 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts @@ -2240,9 +2240,9 @@ export class WindowsBuildImage implements IBuildImage { errors.push(`Windows images do not support the '${buildEnvironment.computeType}' compute type`); } - if (!buildEnvironment.fleet && this.type === WindowsImageType.SERVER_2022) { - errors.push('Windows Server 2022 images must be used with a fleet'); - } + // if (!buildEnvironment.fleet && this.type === WindowsImageType.SERVER_2022) { + // errors.push('Windows Server 2022 images must be used with a fleet'); + // } return errors; } diff --git a/packages/aws-cdk-lib/aws-codebuild/test/project.test.ts b/packages/aws-cdk-lib/aws-codebuild/test/project.test.ts index b96bbe3869b98..73b6d287d8db1 100644 --- a/packages/aws-cdk-lib/aws-codebuild/test/project.test.ts +++ b/packages/aws-cdk-lib/aws-codebuild/test/project.test.ts @@ -941,8 +941,10 @@ describe('Environment', () => { ['Standard 6.0', codebuild.LinuxBuildImage.STANDARD_6_0, 'aws/codebuild/standard:6.0'], ['Amazon Linux 4.0', codebuild.LinuxBuildImage.AMAZON_LINUX_2_4, 'aws/codebuild/amazonlinux2-x86_64-standard:4.0'], ['Amazon Linux 5.0', codebuild.LinuxBuildImage.AMAZON_LINUX_2_5, 'aws/codebuild/amazonlinux2-x86_64-standard:5.0'], + ['Windows Server Core 2019 1.0', codebuild.WindowsBuildImage.WIN_SERVER_CORE_2019_BASE, 'aws/codebuild/windows-base:2019-1.0'], ['Windows Server Core 2019 2.0', codebuild.WindowsBuildImage.WIN_SERVER_CORE_2019_BASE_2_0, 'aws/codebuild/windows-base:2019-2.0'], ['Windows Server Core 2019 3.0', codebuild.WindowsBuildImage.WIN_SERVER_CORE_2019_BASE_3_0, 'aws/codebuild/windows-base:2019-3.0'], + ['Windows Server Core 2022 3.0', codebuild.WindowsBuildImage.WIN_SERVER_CORE_2022_BASE_3_0, 'aws/codebuild/windows-base:2022-1.0'], ])('has build image for %s', (_, buildImage, expected) => { // GIVEN const stack = new cdk.Stack(); @@ -1198,48 +1200,6 @@ describe('Environment', () => { }); }).toThrow('The environment type of the fleet (LINUX_CONTAINER) must match the environment type of the build image (WINDOWS_SERVER_2019_CONTAINER)'); }); - - test('throws when Windows 2022 build image is used without a fleet', () => { - // GIVEN - const stack = new cdk.Stack(); - const bucket = s3.Bucket.fromBucketName(stack, 'Bucket', 'my-bucket'); // (stack, 'Bucket'); - - // THEN - expect(() => { - new codebuild.Project(stack, 'Project', { - source: codebuild.Source.s3({ - bucket, - path: 'path', - }), - environment: { - buildImage: codebuild.WindowsBuildImage.WIN_SERVER_CORE_2022_BASE_3_0, - }, - }); - }).toThrow('Windows Server 2022 images must be used with a fleet'); - }); - - test('throws when 2022 WindowsImageType is used without a fleet', () => { - // GIVEN - const stack = new cdk.Stack(); - const bucket = s3.Bucket.fromBucketName(stack, 'Bucket', 'my-bucket'); // (stack, 'Bucket'); - - // THEN - expect(() => { - new codebuild.Project(stack, 'Project', { - source: codebuild.Source.s3({ - bucket, - path: 'path', - }), - environment: { - buildImage: codebuild.WindowsBuildImage.fromDockerRegistry( - 'aws/codebuild/future-windows-version:2099-9.0', - {}, - codebuild.WindowsImageType.SERVER_2022, - ), - }, - }); - }).toThrow('Windows Server 2022 images must be used with a fleet'); - }); }); describe('EnvironmentVariables', () => { From e3d38a4b674f320e45ba7163f465e60dbb4412d1 Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Tue, 5 Aug 2025 15:13:54 +0200 Subject: [PATCH 2/3] Update packages/aws-cdk-lib/aws-codebuild/lib/project.ts --- packages/aws-cdk-lib/aws-codebuild/lib/project.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts index c68727d9120fc..31d4ba4242bdc 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts @@ -2240,9 +2240,6 @@ export class WindowsBuildImage implements IBuildImage { errors.push(`Windows images do not support the '${buildEnvironment.computeType}' compute type`); } - // if (!buildEnvironment.fleet && this.type === WindowsImageType.SERVER_2022) { - // errors.push('Windows Server 2022 images must be used with a fleet'); - // } return errors; } From 069a8d6f26d6716fc7346b125f04ac2f6f804785 Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Tue, 5 Aug 2025 16:07:21 +0200 Subject: [PATCH 3/3] fixup --- packages/aws-cdk-lib/aws-codebuild/lib/project.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts index 31d4ba4242bdc..9d2d8960ed7bf 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts @@ -2240,7 +2240,6 @@ export class WindowsBuildImage implements IBuildImage { errors.push(`Windows images do not support the '${buildEnvironment.computeType}' compute type`); } - return errors; }