From b3b9aa8a4584e178808f5babe0583749d1a87da5 Mon Sep 17 00:00:00 2001 From: mazyu36 Date: Thu, 19 Sep 2024 06:12:14 +0900 Subject: [PATCH 1/4] feat(kinesisanalytics-flink): support Apache Flink 1.20 (#31349) ### Issue # (if applicable) N/A ### Reason for this change Support new runtime. Ref: https://aws.amazon.com/about-aws/whats-new/2024/09/amazon-managed-service-apache-flink-1-20/ ### Description of changes * Add Flink 1.20 to enum * Improve unit tests and integ test to test all runtime versions ### Description of how you validated changes Ran improved unit tests and integ tests. ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../README.md | 6 +- .../lib/types.ts | 3 + .../test/application.test.ts | 19 +- ...efaultTestDeployAssertF9C5F731.assets.json | 19 + ...aultTestDeployAssertF9C5F731.template.json | 36 + .../FlinkAppTest.assets.json | 6 +- .../FlinkAppTest.template.json | 1895 ++++++++++- .../integ.application.lit.js.snapshot/cdk.out | 2 +- .../integ.json | 12 +- .../manifest.json | 437 ++- .../tree.json | 2955 ++++++++++++++++- .../test/integ.application.lit.ts | 36 +- 12 files changed, 5325 insertions(+), 101 deletions(-) create mode 100644 packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.assets.json create mode 100644 packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.template.json diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/README.md b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/README.md index 4dccb1716255f..49a6d1fe10d1c 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/README.md +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/README.md @@ -46,7 +46,7 @@ const flinkApp = new flink.Application(this, 'Application', { }, }, // ... - runtime: flink.Runtime.FLINK_1_19, + runtime: flink.Runtime.FLINK_1_20, code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'), }); ``` @@ -59,7 +59,7 @@ snapshotting, monitoring, and parallelism. declare const bucket: s3.Bucket; const flinkApp = new flink.Application(this, 'Application', { code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'), - runtime: flink.Runtime.FLINK_1_19, + runtime: flink.Runtime.FLINK_1_20, checkpointingEnabled: true, // default is true checkpointInterval: Duration.seconds(30), // default is 1 minute minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds @@ -80,7 +80,7 @@ declare const bucket: s3.Bucket; declare const vpc: ec2.Vpc; const flinkApp = new flink.Application(this, 'Application', { code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'), - runtime: flink.Runtime.FLINK_1_19, + runtime: flink.Runtime.FLINK_1_20, vpc, }); ``` diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/types.ts b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/types.ts index 6e4dad7da8ea9..024d8f2496923 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/types.ts +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/types.ts @@ -72,6 +72,9 @@ export class Runtime { /** Flink Version 1.19 */ public static readonly FLINK_1_19 = Runtime.of('FLINK-1_19'); + /** Flink Version 1.20 */ + public static readonly FLINK_1_20 = Runtime.of('FLINK-1_20'); + /** Create a new Runtime with with an arbitrary Flink version string */ public static of(value: string) { return new Runtime(value); diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/application.test.ts b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/application.test.ts index e9323c26d3fef..3f4d4a4224d0a 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/application.test.ts +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/application.test.ts @@ -21,21 +21,32 @@ describe('Application', () => { stack = new core.Stack(); bucket = new s3.Bucket(stack, 'CodeBucket'); requiredProps = { - runtime: flink.Runtime.FLINK_1_19, + runtime: flink.Runtime.FLINK_1_20, code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'), }; }); - test('default Flink Application', () => { + const flinkRuntimes = [ + flink.Runtime.FLINK_1_6, + flink.Runtime.FLINK_1_8, + flink.Runtime.FLINK_1_11, + flink.Runtime.FLINK_1_13, + flink.Runtime.FLINK_1_15, + flink.Runtime.FLINK_1_18, + flink.Runtime.FLINK_1_19, + flink.Runtime.FLINK_1_20, + ]; + + test.each(flinkRuntimes)('Flink Application with %s', (runtime) => { new flink.Application(stack, 'FlinkApplication', { - runtime: flink.Runtime.FLINK_1_19, + runtime, code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'), applicationName: 'MyFlinkApplication', }); Template.fromStack(stack).hasResourceProperties('AWS::KinesisAnalyticsV2::Application', { ApplicationName: 'MyFlinkApplication', - RuntimeEnvironment: 'FLINK-1_19', + RuntimeEnvironment: runtime.value, ServiceExecutionRole: { 'Fn::GetAtt': [ 'FlinkApplicationRole2F7BCBF6', diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.assets.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.assets.json new file mode 100644 index 0000000000000..953b9c1586861 --- /dev/null +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.assets.json @@ -0,0 +1,19 @@ +{ + "version": "36.0.5", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "ApplicationTestDefaultTestDeployAssertF9C5F731.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-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.template.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/ApplicationTestDefaultTestDeployAssertF9C5F731.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-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.assets.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.assets.json index dce3d0ca52cd9..74f371abf38d8 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.assets.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.assets.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "36.0.5", "files": { "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577": { "source": { @@ -14,7 +14,7 @@ } } }, - "1c62c36f9601016c7fec8f26431c7c7438490b95747135095f9af7ecd84ddb1d": { + "539ea479a53381b85109d0220f8067dd583db122c2272078f2e00d541ee3738d": { "source": { "path": "FlinkAppTest.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "1c62c36f9601016c7fec8f26431c7c7438490b95747135095f9af7ecd84ddb1d.json", + "objectKey": "539ea479a53381b85109d0220f8067dd583db122c2272078f2e00d541ee3738d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.template.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.template.json index e818a2566e993..922954d200785 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.template.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/FlinkAppTest.template.json @@ -1,6 +1,6 @@ { "Resources": { - "AppRole1AF9B530": { + "AppFLINK16RoleA21DF652": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { @@ -17,7 +17,7 @@ } } }, - "AppRoleDefaultPolicy9CADBAA1": { + "AppFLINK16RoleDefaultPolicy312C949D": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyDocument": { @@ -97,7 +97,7 @@ "Effect": "Allow", "Resource": { "Fn::GetAtt": [ - "AppLogGroupC72EEC8C", + "AppFLINK16LogGroup6709DAA8", "Arn" ] } @@ -123,11 +123,11 @@ }, ":log-group:", { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK16LogGroup6709DAA8" }, ":log-stream:", { - "Ref": "AppLogStream3CAF66A7" + "Ref": "AppFLINK16LogStream203A3C4A" } ] ] @@ -136,15 +136,1605 @@ ], "Version": "2012-10-17" }, - "PolicyName": "AppRoleDefaultPolicy9CADBAA1", + "PolicyName": "AppFLINK16RoleDefaultPolicy312C949D", "Roles": [ { - "Ref": "AppRole1AF9B530" + "Ref": "AppFLINK16RoleA21DF652" } ] } }, - "AppF1B96344": { + "AppFLINK16C87388A5": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_6", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK16RoleA21DF652", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK16RoleDefaultPolicy312C949D", + "AppFLINK16RoleA21DF652" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK16LogGroup6709DAA8": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK16LogStream203A3C4A": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK16LogGroup6709DAA8" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK16LoggingOption6A093E18": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK16C87388A5" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK16LogGroup6709DAA8" + }, + ":log-stream:", + { + "Ref": "AppFLINK16LogStream203A3C4A" + } + ] + ] + } + } + } + }, + "AlarmFLINK16629EC33E": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK16C87388A5" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK18RoleF2B5E704": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK18RoleDefaultPolicy3E0E376C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK18LogGroupEC247BE6", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK18LogGroupEC247BE6" + }, + ":log-stream:", + { + "Ref": "AppFLINK18LogStream773D6792" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK18RoleDefaultPolicy3E0E376C", + "Roles": [ + { + "Ref": "AppFLINK18RoleF2B5E704" + } + ] + } + }, + "AppFLINK18DFC0B750": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_8", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK18RoleF2B5E704", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK18RoleDefaultPolicy3E0E376C", + "AppFLINK18RoleF2B5E704" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK18LogGroupEC247BE6": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK18LogStream773D6792": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK18LogGroupEC247BE6" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK18LoggingOptionFA3821B9": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK18DFC0B750" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK18LogGroupEC247BE6" + }, + ":log-stream:", + { + "Ref": "AppFLINK18LogStream773D6792" + } + ] + ] + } + } + } + }, + "AlarmFLINK188AA6547E": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK18DFC0B750" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK111Role85754B20": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK111RoleDefaultPolicy76505541": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK111LogGroup8B96ECB4", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK111LogGroup8B96ECB4" + }, + ":log-stream:", + { + "Ref": "AppFLINK111LogStream9FBA643C" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK111RoleDefaultPolicy76505541", + "Roles": [ + { + "Ref": "AppFLINK111Role85754B20" + } + ] + } + }, + "AppFLINK1115BD3FEB8": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_11", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK111Role85754B20", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK111RoleDefaultPolicy76505541", + "AppFLINK111Role85754B20" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK111LogGroup8B96ECB4": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK111LogStream9FBA643C": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK111LogGroup8B96ECB4" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK111LoggingOptionB868A248": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK1115BD3FEB8" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK111LogGroup8B96ECB4" + }, + ":log-stream:", + { + "Ref": "AppFLINK111LogStream9FBA643C" + } + ] + ] + } + } + } + }, + "AlarmFLINK111B1BFA12F": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK1115BD3FEB8" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK113RoleE0638828": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK113RoleDefaultPolicy701032C8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK113LogGroupF5F42067", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK113LogGroupF5F42067" + }, + ":log-stream:", + { + "Ref": "AppFLINK113LogStream63C2732B" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK113RoleDefaultPolicy701032C8", + "Roles": [ + { + "Ref": "AppFLINK113RoleE0638828" + } + ] + } + }, + "AppFLINK1138C7FE76E": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_13", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK113RoleE0638828", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK113RoleDefaultPolicy701032C8", + "AppFLINK113RoleE0638828" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK113LogGroupF5F42067": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK113LogStream63C2732B": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK113LogGroupF5F42067" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK113LoggingOption98F806DA": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK1138C7FE76E" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK113LogGroupF5F42067" + }, + ":log-stream:", + { + "Ref": "AppFLINK113LogStream63C2732B" + } + ] + ] + } + } + } + }, + "AlarmFLINK1136262934D": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK1138C7FE76E" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK115RoleD758509C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK115RoleDefaultPolicy402697BF": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK115LogGroupBACCAB69", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK115LogGroupBACCAB69" + }, + ":log-stream:", + { + "Ref": "AppFLINK115LogStreamD7900E5F" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK115RoleDefaultPolicy402697BF", + "Roles": [ + { + "Ref": "AppFLINK115RoleD758509C" + } + ] + } + }, + "AppFLINK11548C6DD0B": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_15", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK115RoleD758509C", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK115RoleDefaultPolicy402697BF", + "AppFLINK115RoleD758509C" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK115LogGroupBACCAB69": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK115LogStreamD7900E5F": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK115LogGroupBACCAB69" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK115LoggingOption201B75CF": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK11548C6DD0B" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK115LogGroupBACCAB69" + }, + ":log-stream:", + { + "Ref": "AppFLINK115LogStreamD7900E5F" + } + ] + ] + } + } + } + }, + "AlarmFLINK1151BBA9866": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK11548C6DD0B" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK118Role1B878112": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK118RoleDefaultPolicy1D8097BB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK118LogGroupEF87F95A", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK118LogGroupEF87F95A" + }, + ":log-stream:", + { + "Ref": "AppFLINK118LogStreamAFAF3379" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK118RoleDefaultPolicy1D8097BB", + "Roles": [ + { + "Ref": "AppFLINK118Role1B878112" + } + ] + } + }, + "AppFLINK118BEACE639": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_18", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK118Role1B878112", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK118RoleDefaultPolicy1D8097BB", + "AppFLINK118Role1B878112" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK118LogGroupEF87F95A": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK118LogStreamAFAF3379": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK118LogGroupEF87F95A" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK118LoggingOption6EEBD514": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK118BEACE639" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK118LogGroupEF87F95A" + }, + ":log-stream:", + { + "Ref": "AppFLINK118LogStreamAFAF3379" + } + ] + ] + } + } + } + }, + "AlarmFLINK118680AE078": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK118BEACE639" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK119Role6594F124": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK119RoleDefaultPolicy6EB1C39D": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK119LogGroup472EA32B", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK119LogGroup472EA32B" + }, + ":log-stream:", + { + "Ref": "AppFLINK119LogStream5FD726B5" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK119RoleDefaultPolicy6EB1C39D", + "Roles": [ + { + "Ref": "AppFLINK119Role6594F124" + } + ] + } + }, + "AppFLINK119DAC5CF3C": { "Type": "AWS::KinesisAnalyticsV2::Application", "Properties": { "ApplicationConfiguration": { @@ -178,19 +1768,284 @@ "RuntimeEnvironment": "FLINK-1_19", "ServiceExecutionRole": { "Fn::GetAtt": [ - "AppRole1AF9B530", + "AppFLINK119Role6594F124", + "Arn" + ] + } + }, + "DependsOn": [ + "AppFLINK119RoleDefaultPolicy6EB1C39D", + "AppFLINK119Role6594F124" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "AppFLINK119LogGroup472EA32B": { + "Type": "AWS::Logs::LogGroup", + "Properties": { + "RetentionInDays": 731 + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK119LogStream5FD726B5": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "AppFLINK119LogGroup472EA32B" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "AppFLINK119LoggingOption224F0C40": { + "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "Properties": { + "ApplicationName": { + "Ref": "AppFLINK119DAC5CF3C" + }, + "CloudWatchLoggingOption": { + "LogStreamARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK119LogGroup472EA32B" + }, + ":log-stream:", + { + "Ref": "AppFLINK119LogStream5FD726B5" + } + ] + ] + } + } + } + }, + "AlarmFLINK1194841405B": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "Dimensions": [ + { + "Name": "Application", + "Value": { + "Ref": "AppFLINK119DAC5CF3C" + } + } + ], + "EvaluationPeriods": 1, + "MetricName": "fullRestarts", + "Namespace": "AWS/KinesisAnalytics", + "Period": 300, + "Statistic": "Sum", + "Threshold": 3 + } + }, + "AppFLINK120RoleDC5875D6": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppFLINK120RoleDefaultPolicy2540C6BA": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK120LogGroupFFF89194", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK120LogGroupFFF89194" + }, + ":log-stream:", + { + "Ref": "AppFLINK120LogStream155EEEF9" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppFLINK120RoleDefaultPolicy2540C6BA", + "Roles": [ + { + "Ref": "AppFLINK120RoleDC5875D6" + } + ] + } + }, + "AppFLINK120E80F19CE": { + "Type": "AWS::KinesisAnalyticsV2::Application", + "Properties": { + "ApplicationConfiguration": { + "ApplicationCodeConfiguration": { + "CodeContent": { + "S3ContentLocation": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "FileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "CodeContentType": "ZIPFILE" + }, + "ApplicationSnapshotConfiguration": { + "SnapshotsEnabled": true + } + }, + "RuntimeEnvironment": "FLINK-1_20", + "ServiceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK120RoleDC5875D6", "Arn" ] } }, "DependsOn": [ - "AppRoleDefaultPolicy9CADBAA1", - "AppRole1AF9B530" + "AppFLINK120RoleDefaultPolicy2540C6BA", + "AppFLINK120RoleDC5875D6" ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete" }, - "AppLogGroupC72EEC8C": { + "AppFLINK120LogGroupFFF89194": { "Type": "AWS::Logs::LogGroup", "Properties": { "RetentionInDays": 731 @@ -198,21 +2053,21 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" }, - "AppLogStream3CAF66A7": { + "AppFLINK120LogStream155EEEF9": { "Type": "AWS::Logs::LogStream", "Properties": { "LogGroupName": { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK120LogGroupFFF89194" } }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" }, - "AppLoggingOption75BE995E": { + "AppFLINK120LoggingOption6B00A786": { "Type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", "Properties": { "ApplicationName": { - "Ref": "AppF1B96344" + "Ref": "AppFLINK120E80F19CE" }, "CloudWatchLoggingOption": { "LogStreamARN": { @@ -233,11 +2088,11 @@ }, ":log-group:", { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK120LogGroupFFF89194" }, ":log-stream:", { - "Ref": "AppLogStream3CAF66A7" + "Ref": "AppFLINK120LogStream155EEEF9" } ] ] @@ -245,7 +2100,7 @@ } } }, - "Alarm7103F465": { + "AlarmFLINK120DB2152C4": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "ComparisonOperator": "GreaterThanOrEqualToThreshold", @@ -253,7 +2108,7 @@ { "Name": "Application", "Value": { - "Ref": "AppF1B96344" + "Ref": "AppFLINK120E80F19CE" } } ], diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/cdk.out b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/cdk.out index 1f0068d32659a..bd5311dc372de 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/cdk.out +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"36.0.0"} \ No newline at end of file +{"version":"36.0.5"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/integ.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/integ.json index a0d917194b8c1..cb069974a7eea 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/integ.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/integ.json @@ -1,14 +1,12 @@ { - "version": "36.0.0", + "version": "36.0.5", "testCases": { - "integ.application.lit": { + "ApplicationTest/DefaultTest": { "stacks": [ "FlinkAppTest" ], - "diffAssets": false, - "stackUpdateWorkflow": true + "assertionStack": "ApplicationTest/DefaultTest/DeployAssert", + "assertionStackName": "ApplicationTestDefaultTestDeployAssertF9C5F731" } - }, - "synthContext": {}, - "enableLookups": false + } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/manifest.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/manifest.json index 0109af83fd75c..fe18f4181fca4 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "36.0.0", + "version": "36.0.5", "artifacts": { "FlinkAppTest.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,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}/1c62c36f9601016c7fec8f26431c7c7438490b95747135095f9af7ecd84ddb1d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/539ea479a53381b85109d0220f8067dd583db122c2272078f2e00d541ee3738d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -34,68 +34,467 @@ "FlinkAppTest.assets" ], "metadata": { - "/FlinkAppTest/App/Role/Resource": [ + "/FlinkAppTest/App-FLINK-1_6/Role/Resource": [ { "type": "aws:cdk:logicalId", - "data": "AppRole1AF9B530" + "data": "AppFLINK16RoleA21DF652" } ], - "/FlinkAppTest/App/Role/DefaultPolicy/Resource": [ + "/FlinkAppTest/App-FLINK-1_6/Role/DefaultPolicy/Resource": [ { "type": "aws:cdk:logicalId", - "data": "AppRoleDefaultPolicy9CADBAA1" + "data": "AppFLINK16RoleDefaultPolicy312C949D" } ], - "/FlinkAppTest/App/Resource": [ + "/FlinkAppTest/App-FLINK-1_6/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK16C87388A5" + } + ], + "/FlinkAppTest/App-FLINK-1_6/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK16LogGroup6709DAA8" + } + ], + "/FlinkAppTest/App-FLINK-1_6/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK16LogStream203A3C4A" + } + ], + "/FlinkAppTest/App-FLINK-1_6/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK16LoggingOption6A093E18" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_6/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK16629EC33E" + } + ], + "/FlinkAppTest/App-FLINK-1_8/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18RoleF2B5E704" + } + ], + "/FlinkAppTest/App-FLINK-1_8/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18RoleDefaultPolicy3E0E376C" + } + ], + "/FlinkAppTest/App-FLINK-1_8/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18DFC0B750" + } + ], + "/FlinkAppTest/App-FLINK-1_8/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18LogGroupEC247BE6" + } + ], + "/FlinkAppTest/App-FLINK-1_8/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18LogStream773D6792" + } + ], + "/FlinkAppTest/App-FLINK-1_8/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK18LoggingOptionFA3821B9" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_8/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK188AA6547E" + } + ], + "/FlinkAppTest/App-FLINK-1_11/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK111Role85754B20" + } + ], + "/FlinkAppTest/App-FLINK-1_11/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK111RoleDefaultPolicy76505541" + } + ], + "/FlinkAppTest/App-FLINK-1_11/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK1115BD3FEB8" + } + ], + "/FlinkAppTest/App-FLINK-1_11/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK111LogGroup8B96ECB4" + } + ], + "/FlinkAppTest/App-FLINK-1_11/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK111LogStream9FBA643C" + } + ], + "/FlinkAppTest/App-FLINK-1_11/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK111LoggingOptionB868A248" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_11/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK111B1BFA12F" + } + ], + "/FlinkAppTest/App-FLINK-1_13/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK113RoleE0638828" + } + ], + "/FlinkAppTest/App-FLINK-1_13/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK113RoleDefaultPolicy701032C8" + } + ], + "/FlinkAppTest/App-FLINK-1_13/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK1138C7FE76E" + } + ], + "/FlinkAppTest/App-FLINK-1_13/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK113LogGroupF5F42067" + } + ], + "/FlinkAppTest/App-FLINK-1_13/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK113LogStream63C2732B" + } + ], + "/FlinkAppTest/App-FLINK-1_13/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK113LoggingOption98F806DA" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_13/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK1136262934D" + } + ], + "/FlinkAppTest/App-FLINK-1_15/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK115RoleD758509C" + } + ], + "/FlinkAppTest/App-FLINK-1_15/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK115RoleDefaultPolicy402697BF" + } + ], + "/FlinkAppTest/App-FLINK-1_15/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK11548C6DD0B" + } + ], + "/FlinkAppTest/App-FLINK-1_15/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK115LogGroupBACCAB69" + } + ], + "/FlinkAppTest/App-FLINK-1_15/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK115LogStreamD7900E5F" + } + ], + "/FlinkAppTest/App-FLINK-1_15/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK115LoggingOption201B75CF" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_15/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK1151BBA9866" + } + ], + "/FlinkAppTest/App-FLINK-1_18/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118Role1B878112" + } + ], + "/FlinkAppTest/App-FLINK-1_18/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118RoleDefaultPolicy1D8097BB" + } + ], + "/FlinkAppTest/App-FLINK-1_18/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118BEACE639" + } + ], + "/FlinkAppTest/App-FLINK-1_18/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118LogGroupEF87F95A" + } + ], + "/FlinkAppTest/App-FLINK-1_18/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118LogStreamAFAF3379" + } + ], + "/FlinkAppTest/App-FLINK-1_18/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK118LoggingOption6EEBD514" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_18/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK118680AE078" + } + ], + "/FlinkAppTest/App-FLINK-1_19/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119Role6594F124" + } + ], + "/FlinkAppTest/App-FLINK-1_19/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119RoleDefaultPolicy6EB1C39D" + } + ], + "/FlinkAppTest/App-FLINK-1_19/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119DAC5CF3C" + } + ], + "/FlinkAppTest/App-FLINK-1_19/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119LogGroup472EA32B" + } + ], + "/FlinkAppTest/App-FLINK-1_19/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119LogStream5FD726B5" + } + ], + "/FlinkAppTest/App-FLINK-1_19/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK119LoggingOption224F0C40" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_19/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK1194841405B" + } + ], + "/FlinkAppTest/App-FLINK-1_20/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120RoleDC5875D6" + } + ], + "/FlinkAppTest/App-FLINK-1_20/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120RoleDefaultPolicy2540C6BA" + } + ], + "/FlinkAppTest/App-FLINK-1_20/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120E80F19CE" + } + ], + "/FlinkAppTest/App-FLINK-1_20/LogGroup/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120LogGroupFFF89194" + } + ], + "/FlinkAppTest/App-FLINK-1_20/LogStream/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120LogStream155EEEF9" + } + ], + "/FlinkAppTest/App-FLINK-1_20/LoggingOption": [ + { + "type": "aws:cdk:logicalId", + "data": "AppFLINK120LoggingOption6B00A786" + } + ], + "/FlinkAppTest/Alarm-FLINK-1_20/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "AlarmFLINK120DB2152C4" + } + ], + "/FlinkAppTest/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/FlinkAppTest/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ], + "AppRole1AF9B530": [ + { + "type": "aws:cdk:logicalId", + "data": "AppRole1AF9B530", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] + } + ], + "AppRoleDefaultPolicy9CADBAA1": [ + { + "type": "aws:cdk:logicalId", + "data": "AppRoleDefaultPolicy9CADBAA1", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] + } + ], + "AppF1B96344": [ { "type": "aws:cdk:logicalId", "data": "AppF1B96344", "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" ] } ], - "/FlinkAppTest/App/LogGroup/Resource": [ + "AppLogGroupC72EEC8C": [ { "type": "aws:cdk:logicalId", - "data": "AppLogGroupC72EEC8C" + "data": "AppLogGroupC72EEC8C", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] } ], - "/FlinkAppTest/App/LogStream/Resource": [ + "AppLogStream3CAF66A7": [ { "type": "aws:cdk:logicalId", - "data": "AppLogStream3CAF66A7" + "data": "AppLogStream3CAF66A7", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] } ], - "/FlinkAppTest/App/LoggingOption": [ + "AppLoggingOption75BE995E": [ { "type": "aws:cdk:logicalId", "data": "AppLoggingOption75BE995E", "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_REPLACE" + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" ] } ], - "/FlinkAppTest/Alarm/Resource": [ + "Alarm7103F465": [ { "type": "aws:cdk:logicalId", - "data": "Alarm7103F465" + "data": "Alarm7103F465", + "trace": [ + "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" + ] } + ] + }, + "displayName": "FlinkAppTest" + }, + "ApplicationTestDefaultTestDeployAssertF9C5F731.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "ApplicationTestDefaultTestDeployAssertF9C5F731.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "ApplicationTestDefaultTestDeployAssertF9C5F731": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "ApplicationTestDefaultTestDeployAssertF9C5F731.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}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "ApplicationTestDefaultTestDeployAssertF9C5F731.assets" ], - "/FlinkAppTest/BootstrapVersion": [ + "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": [ + "ApplicationTestDefaultTestDeployAssertF9C5F731.assets" + ], + "metadata": { + "/ApplicationTest/DefaultTest/DeployAssert/BootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "BootstrapVersion" } ], - "/FlinkAppTest/CheckBootstrapVersion": [ + "/ApplicationTest/DefaultTest/DeployAssert/CheckBootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } ] }, - "displayName": "FlinkAppTest" + "displayName": "ApplicationTest/DefaultTest/DeployAssert" }, "Tree": { "type": "cdk:tree", diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/tree.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/tree.json index a5810d986631b..8e7c036a3ed0e 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.js.snapshot/tree.json @@ -8,17 +8,17 @@ "id": "FlinkAppTest", "path": "FlinkAppTest", "children": { - "App": { - "id": "App", - "path": "FlinkAppTest/App", + "App-FLINK-1_6": { + "id": "App-FLINK-1_6", + "path": "FlinkAppTest/App-FLINK-1_6", "children": { "Role": { "id": "Role", - "path": "FlinkAppTest/App/Role", + "path": "FlinkAppTest/App-FLINK-1_6/Role", "children": { "ImportRole": { "id": "ImportRole", - "path": "FlinkAppTest/App/Role/ImportRole", + "path": "FlinkAppTest/App-FLINK-1_6/Role/ImportRole", "constructInfo": { "fqn": "aws-cdk-lib.Resource", "version": "0.0.0" @@ -26,7 +26,7 @@ }, "Resource": { "id": "Resource", - "path": "FlinkAppTest/App/Role/Resource", + "path": "FlinkAppTest/App-FLINK-1_6/Role/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::IAM::Role", "aws:cdk:cloudformation:props": { @@ -51,11 +51,11 @@ }, "DefaultPolicy": { "id": "DefaultPolicy", - "path": "FlinkAppTest/App/Role/DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_6/Role/DefaultPolicy", "children": { "Resource": { "id": "Resource", - "path": "FlinkAppTest/App/Role/DefaultPolicy/Resource", + "path": "FlinkAppTest/App-FLINK-1_6/Role/DefaultPolicy/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::IAM::Policy", "aws:cdk:cloudformation:props": { @@ -136,7 +136,7 @@ "Effect": "Allow", "Resource": { "Fn::GetAtt": [ - "AppLogGroupC72EEC8C", + "AppFLINK16LogGroup6709DAA8", "Arn" ] } @@ -162,11 +162,11 @@ }, ":log-group:", { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK16LogGroup6709DAA8" }, ":log-stream:", { - "Ref": "AppLogStream3CAF66A7" + "Ref": "AppFLINK16LogStream203A3C4A" } ] ] @@ -175,10 +175,10 @@ ], "Version": "2012-10-17" }, - "policyName": "AppRoleDefaultPolicy9CADBAA1", + "policyName": "AppFLINK16RoleDefaultPolicy312C949D", "roles": [ { - "Ref": "AppRole1AF9B530" + "Ref": "AppFLINK16RoleA21DF652" } ] } @@ -202,11 +202,11 @@ }, "Code": { "id": "Code", - "path": "FlinkAppTest/App/Code", + "path": "FlinkAppTest/App-FLINK-1_6/Code", "children": { "Stage": { "id": "Stage", - "path": "FlinkAppTest/App/Code/Stage", + "path": "FlinkAppTest/App-FLINK-1_6/Code/Stage", "constructInfo": { "fqn": "aws-cdk-lib.AssetStaging", "version": "0.0.0" @@ -214,7 +214,7 @@ }, "AssetBucket": { "id": "AssetBucket", - "path": "FlinkAppTest/App/Code/AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_6/Code/AssetBucket", "constructInfo": { "fqn": "aws-cdk-lib.aws_s3.BucketBase", "version": "0.0.0" @@ -228,7 +228,2437 @@ }, "Resource": { "id": "Resource", - "path": "FlinkAppTest/App/Resource", + "path": "FlinkAppTest/App-FLINK-1_6/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_6", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK16RoleA21DF652", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_6/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_6/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_6/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_6/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK16LogGroup6709DAA8" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_6/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK16C87388A5" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK16LogGroup6709DAA8" + }, + ":log-stream:", + { + "Ref": "AppFLINK16LogStream203A3C4A" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_6": { + "id": "Alarm-FLINK-1_6", + "path": "FlinkAppTest/Alarm-FLINK-1_6", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_6/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK16C87388A5" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_8": { + "id": "App-FLINK-1_8", + "path": "FlinkAppTest/App-FLINK-1_8", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_8/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_8/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_8/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_8/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_8/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK18LogGroupEC247BE6", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK18LogGroupEC247BE6" + }, + ":log-stream:", + { + "Ref": "AppFLINK18LogStream773D6792" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK18RoleDefaultPolicy3E0E376C", + "roles": [ + { + "Ref": "AppFLINK18RoleF2B5E704" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_8/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_8/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_8/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_8/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_8", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK18RoleF2B5E704", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_8/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_8/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_8/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_8/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK18LogGroupEC247BE6" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_8/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK18DFC0B750" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK18LogGroupEC247BE6" + }, + ":log-stream:", + { + "Ref": "AppFLINK18LogStream773D6792" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_8": { + "id": "Alarm-FLINK-1_8", + "path": "FlinkAppTest/Alarm-FLINK-1_8", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_8/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK18DFC0B750" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_11": { + "id": "App-FLINK-1_11", + "path": "FlinkAppTest/App-FLINK-1_11", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_11/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_11/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_11/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_11/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_11/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK111LogGroup8B96ECB4", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK111LogGroup8B96ECB4" + }, + ":log-stream:", + { + "Ref": "AppFLINK111LogStream9FBA643C" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK111RoleDefaultPolicy76505541", + "roles": [ + { + "Ref": "AppFLINK111Role85754B20" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_11/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_11/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_11/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_11/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_11", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK111Role85754B20", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_11/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_11/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_11/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_11/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK111LogGroup8B96ECB4" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_11/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK1115BD3FEB8" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK111LogGroup8B96ECB4" + }, + ":log-stream:", + { + "Ref": "AppFLINK111LogStream9FBA643C" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_11": { + "id": "Alarm-FLINK-1_11", + "path": "FlinkAppTest/Alarm-FLINK-1_11", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_11/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK1115BD3FEB8" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_13": { + "id": "App-FLINK-1_13", + "path": "FlinkAppTest/App-FLINK-1_13", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_13/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_13/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_13/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_13/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_13/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK113LogGroupF5F42067", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK113LogGroupF5F42067" + }, + ":log-stream:", + { + "Ref": "AppFLINK113LogStream63C2732B" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK113RoleDefaultPolicy701032C8", + "roles": [ + { + "Ref": "AppFLINK113RoleE0638828" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_13/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_13/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_13/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_13/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_13", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK113RoleE0638828", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_13/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_13/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_13/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_13/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK113LogGroupF5F42067" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_13/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK1138C7FE76E" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK113LogGroupF5F42067" + }, + ":log-stream:", + { + "Ref": "AppFLINK113LogStream63C2732B" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_13": { + "id": "Alarm-FLINK-1_13", + "path": "FlinkAppTest/Alarm-FLINK-1_13", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_13/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK1138C7FE76E" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_15": { + "id": "App-FLINK-1_15", + "path": "FlinkAppTest/App-FLINK-1_15", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_15/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_15/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_15/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_15/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_15/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK115LogGroupBACCAB69", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK115LogGroupBACCAB69" + }, + ":log-stream:", + { + "Ref": "AppFLINK115LogStreamD7900E5F" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK115RoleDefaultPolicy402697BF", + "roles": [ + { + "Ref": "AppFLINK115RoleD758509C" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_15/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_15/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_15/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_15/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_15", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK115RoleD758509C", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_15/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_15/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_15/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_15/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK115LogGroupBACCAB69" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_15/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK11548C6DD0B" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK115LogGroupBACCAB69" + }, + ":log-stream:", + { + "Ref": "AppFLINK115LogStreamD7900E5F" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_15": { + "id": "Alarm-FLINK-1_15", + "path": "FlinkAppTest/Alarm-FLINK-1_15", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_15/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK11548C6DD0B" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_18": { + "id": "App-FLINK-1_18", + "path": "FlinkAppTest/App-FLINK-1_18", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_18/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_18/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_18/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_18/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_18/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK118LogGroupEF87F95A", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK118LogGroupEF87F95A" + }, + ":log-stream:", + { + "Ref": "AppFLINK118LogStreamAFAF3379" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK118RoleDefaultPolicy1D8097BB", + "roles": [ + { + "Ref": "AppFLINK118Role1B878112" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_18/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_18/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_18/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_18/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_18", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK118Role1B878112", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_18/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_18/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_18/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_18/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK118LogGroupEF87F95A" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_18/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK118BEACE639" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK118LogGroupEF87F95A" + }, + ":log-stream:", + { + "Ref": "AppFLINK118LogStreamAFAF3379" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_18": { + "id": "Alarm-FLINK-1_18", + "path": "FlinkAppTest/Alarm-FLINK-1_18", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_18/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK118BEACE639" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_19": { + "id": "App-FLINK-1_19", + "path": "FlinkAppTest/App-FLINK-1_19", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_19/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_19/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_19/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_19/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_19/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK119LogGroup472EA32B", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK119LogGroup472EA32B" + }, + ":log-stream:", + { + "Ref": "AppFLINK119LogStream5FD726B5" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK119RoleDefaultPolicy6EB1C39D", + "roles": [ + { + "Ref": "AppFLINK119Role6594F124" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_19/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_19/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_19/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_19/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", "aws:cdk:cloudformation:props": { @@ -263,7 +2693,412 @@ "runtimeEnvironment": "FLINK-1_19", "serviceExecutionRole": { "Fn::GetAtt": [ - "AppRole1AF9B530", + "AppFLINK119Role6594F124", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2", + "version": "0.0.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "FlinkAppTest/App-FLINK-1_19/LogGroup", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_19/LogGroup/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", + "aws:cdk:cloudformation:props": { + "retentionInDays": 731 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogGroup", + "version": "0.0.0" + } + }, + "LogStream": { + "id": "LogStream", + "path": "FlinkAppTest/App-FLINK-1_19/LogStream", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_19/LogStream/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", + "aws:cdk:cloudformation:props": { + "logGroupName": { + "Ref": "AppFLINK119LogGroup472EA32B" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.CfnLogStream", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogStream", + "version": "0.0.0" + } + }, + "LoggingOption": { + "id": "LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_19/LoggingOption", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", + "aws:cdk:cloudformation:props": { + "applicationName": { + "Ref": "AppFLINK119DAC5CF3C" + }, + "cloudWatchLoggingOption": { + "logStreamArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK119LogGroup472EA32B" + }, + ":log-stream:", + { + "Ref": "AppFLINK119LogStream5FD726B5" + } + ] + ] + } + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_kinesisanalytics.CfnApplicationCloudWatchLoggingOptionV2", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Alarm-FLINK-1_19": { + "id": "Alarm-FLINK-1_19", + "path": "FlinkAppTest/Alarm-FLINK-1_19", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_19/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", + "aws:cdk:cloudformation:props": { + "comparisonOperator": "GreaterThanOrEqualToThreshold", + "dimensions": [ + { + "name": "Application", + "value": { + "Ref": "AppFLINK119DAC5CF3C" + } + } + ], + "evaluationPeriods": 1, + "metricName": "fullRestarts", + "namespace": "AWS/KinesisAnalytics", + "period": 300, + "statistic": "Sum", + "threshold": 3 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.CfnAlarm", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm", + "version": "0.0.0" + } + }, + "App-FLINK-1_20": { + "id": "App-FLINK-1_20", + "path": "FlinkAppTest/App-FLINK-1_20", + "children": { + "Role": { + "id": "Role", + "path": "FlinkAppTest/App-FLINK-1_20/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "FlinkAppTest/App-FLINK-1_20/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_20/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "kinesisanalytics.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "FlinkAppTest/App-FLINK-1_20/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_20/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "cloudwatch:PutMetricData", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "s3:GetBucket*", + "s3:GetObject*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + } + ] + }, + { + "Action": "logs:DescribeLogGroups", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:*" + ] + ] + } + }, + { + "Action": "logs:DescribeLogStreams", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AppFLINK120LogGroupFFF89194", + "Arn" + ] + } + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "AppFLINK120LogGroupFFF89194" + }, + ":log-stream:", + { + "Ref": "AppFLINK120LogStream155EEEF9" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "AppFLINK120RoleDefaultPolicy2540C6BA", + "roles": [ + { + "Ref": "AppFLINK120RoleDC5875D6" + } + ] + } + }, + "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" + } + }, + "Code": { + "id": "Code", + "path": "FlinkAppTest/App-FLINK-1_20/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "FlinkAppTest/App-FLINK-1_20/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "0.0.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "FlinkAppTest/App-FLINK-1_20/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "FlinkAppTest/App-FLINK-1_20/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::Application", + "aws:cdk:cloudformation:props": { + "applicationConfiguration": { + "applicationCodeConfiguration": { + "codeContent": { + "s3ContentLocation": { + "bucketArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + } + ] + ] + }, + "fileKey": "8be9e0b5f53d41e9a3b1d51c9572c65f24f8170a7188d0ed57fb7d571de4d577.zip" + } + }, + "codeContentType": "ZIPFILE" + }, + "applicationSnapshotConfiguration": { + "snapshotsEnabled": true + } + }, + "runtimeEnvironment": "FLINK-1_20", + "serviceExecutionRole": { + "Fn::GetAtt": [ + "AppFLINK120RoleDC5875D6", "Arn" ] } @@ -276,11 +3111,11 @@ }, "LogGroup": { "id": "LogGroup", - "path": "FlinkAppTest/App/LogGroup", + "path": "FlinkAppTest/App-FLINK-1_20/LogGroup", "children": { "Resource": { "id": "Resource", - "path": "FlinkAppTest/App/LogGroup/Resource", + "path": "FlinkAppTest/App-FLINK-1_20/LogGroup/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup", "aws:cdk:cloudformation:props": { @@ -300,16 +3135,16 @@ }, "LogStream": { "id": "LogStream", - "path": "FlinkAppTest/App/LogStream", + "path": "FlinkAppTest/App-FLINK-1_20/LogStream", "children": { "Resource": { "id": "Resource", - "path": "FlinkAppTest/App/LogStream/Resource", + "path": "FlinkAppTest/App-FLINK-1_20/LogStream/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::Logs::LogStream", "aws:cdk:cloudformation:props": { "logGroupName": { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK120LogGroupFFF89194" } } }, @@ -326,12 +3161,12 @@ }, "LoggingOption": { "id": "LoggingOption", - "path": "FlinkAppTest/App/LoggingOption", + "path": "FlinkAppTest/App-FLINK-1_20/LoggingOption", "attributes": { "aws:cdk:cloudformation:type": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", "aws:cdk:cloudformation:props": { "applicationName": { - "Ref": "AppF1B96344" + "Ref": "AppFLINK120E80F19CE" }, "cloudWatchLoggingOption": { "logStreamArn": { @@ -352,11 +3187,11 @@ }, ":log-group:", { - "Ref": "AppLogGroupC72EEC8C" + "Ref": "AppFLINK120LogGroupFFF89194" }, ":log-stream:", { - "Ref": "AppLogStream3CAF66A7" + "Ref": "AppFLINK120LogStream155EEEF9" } ] ] @@ -371,17 +3206,17 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-kinesisanalytics-flink-alpha.Application", + "fqn": "aws-cdk-lib.Resource", "version": "0.0.0" } }, - "Alarm": { - "id": "Alarm", - "path": "FlinkAppTest/Alarm", + "Alarm-FLINK-1_20": { + "id": "Alarm-FLINK-1_20", + "path": "FlinkAppTest/Alarm-FLINK-1_20", "children": { "Resource": { "id": "Resource", - "path": "FlinkAppTest/Alarm/Resource", + "path": "FlinkAppTest/Alarm-FLINK-1_20/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::CloudWatch::Alarm", "aws:cdk:cloudformation:props": { @@ -390,7 +3225,7 @@ { "name": "Application", "value": { - "Ref": "AppF1B96344" + "Ref": "AppFLINK120E80F19CE" } } ], @@ -435,6 +3270,60 @@ "version": "0.0.0" } }, + "ApplicationTest": { + "id": "ApplicationTest", + "path": "ApplicationTest", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "ApplicationTest/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "ApplicationTest/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "DeployAssert": { + "id": "DeployAssert", + "path": "ApplicationTest/DefaultTest/DeployAssert", + "children": { + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "ApplicationTest/DefaultTest/DeployAssert/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "0.0.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "ApplicationTest/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", diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.ts b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.ts index 392d8290c1a1b..00b88316ff8a6 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.ts +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/test/integ.application.lit.ts @@ -1,22 +1,36 @@ -///! show import * as path from 'path'; import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch'; import * as core from 'aws-cdk-lib'; +import * as integ from '@aws-cdk/integ-tests-alpha'; import * as flink from '../lib'; const app = new core.App(); const stack = new core.Stack(app, 'FlinkAppTest'); -const flinkApp = new flink.Application(stack, 'App', { - code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')), - runtime: flink.Runtime.FLINK_1_19, -}); +const flinkRuntimes = [ + flink.Runtime.FLINK_1_6, + flink.Runtime.FLINK_1_8, + flink.Runtime.FLINK_1_11, + flink.Runtime.FLINK_1_13, + flink.Runtime.FLINK_1_15, + flink.Runtime.FLINK_1_18, + flink.Runtime.FLINK_1_19, + flink.Runtime.FLINK_1_20, +]; + +flinkRuntimes.forEach((runtime) => { + const flinkApp = new flink.Application(stack, `App-${runtime.value}`, { + code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')), + runtime: runtime, + }); -new cloudwatch.Alarm(stack, 'Alarm', { - metric: flinkApp.metricFullRestarts(), - evaluationPeriods: 1, - threshold: 3, + new cloudwatch.Alarm(stack, `Alarm-${runtime.value}`, { + metric: flinkApp.metricFullRestarts(), + evaluationPeriods: 1, + threshold: 3, + }); }); -///! hide -app.synth(); +new integ.IntegTest(app, 'ApplicationTest', { + testCases: [stack], +}); From 15811900d35a53f5efaf9f10b8acbdf16ec603c4 Mon Sep 17 00:00:00 2001 From: Kazuho Cryer-Shinozuka Date: Thu, 19 Sep 2024 06:44:17 +0900 Subject: [PATCH 2/4] chore(ec2): invalid Interface VPC Endpoints (#31441) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Issue # (if applicable) None ### Reason for this change The wrong URLs were set for several Interface Endpoints, so I corrected them. For example, when retrieving the freetier endpoint via CLI, it shows as `aws.api.{region}.freetier`, but in CDK, it was set to `com.amazonaws.{region}.freetire`. I believe this correction might be a breaking change, but since the previous URLs likely wouldn't have allowed access anyway, I'm unsure how to proceed. Which of the following approaches would be best? - Directly fix the incorrect URLs (the current implementation) - Implement a feature flag - Deprecate the existing method and implement a new one ### Description of changes Update URL from `com.amazonaws.{region}.{service}` to `aws.api.{region}.{service}` - freetier - bcm-data-exports ### Description of how you validated changes I've executed `described-vpc-endpoint-services` CLI. ```sh ❯ aws ec2 describe-vpc-endpoint-services --filters Name=service-type,Values=Interface Name=owner,Values=amazon --region us-east-1 --query ServiceNames | grep aws.api "aws.api.us-east-1.bcm-data-exports", "aws.api.us-east-1.freetier", "aws.api.us-east-1.kendra-ranking", "aws.api.us-east-1.qbusiness", ``` ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts index 7e3cedf219e09..158508d577814 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts @@ -306,7 +306,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly BEDROCK_AGENT = new InterfaceVpcEndpointAwsService('bedrock-agent'); public static readonly BEDROCK_AGENT_RUNTIME = new InterfaceVpcEndpointAwsService('bedrock-agent-runtime'); public static readonly BEDROCK_RUNTIME = new InterfaceVpcEndpointAwsService('bedrock-runtime'); - public static readonly BILLING_AND_COST_MANAGEMENT_FREETIER = new InterfaceVpcEndpointAwsService('freetier'); + public static readonly BILLING_AND_COST_MANAGEMENT_FREETIER = new InterfaceVpcEndpointAwsService('freetier', 'aws.api'); public static readonly BILLING_AND_COST_MANAGEMENT_TAX = new InterfaceVpcEndpointAwsService('tax'); public static readonly BILLING_CONDUCTOR = new InterfaceVpcEndpointAwsService('billingconductor'); public static readonly BRAKET = new InterfaceVpcEndpointAwsService('braket'); @@ -366,7 +366,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly CONTROL_CATALOG = new InterfaceVpcEndpointAwsService('controlcatalog'); public static readonly COST_EXPLORER = new InterfaceVpcEndpointAwsService('ce'); public static readonly DATA_EXCHANGE = new InterfaceVpcEndpointAwsService('dataexchange'); - public static readonly DATA_EXPORTS = new InterfaceVpcEndpointAwsService('bcm-data-exports'); + public static readonly DATA_EXPORTS = new InterfaceVpcEndpointAwsService('bcm-data-exports', 'aws.api'); public static readonly DATASYNC = new InterfaceVpcEndpointAwsService('datasync'); public static readonly DATAZONE = new InterfaceVpcEndpointAwsService('datazone'); public static readonly DATABASE_MIGRATION_SERVICE = new InterfaceVpcEndpointAwsService('dms'); From 0fdd6a92ac7196e5498969be2743019f825b9262 Mon Sep 17 00:00:00 2001 From: sakurai-ryo Date: Thu, 19 Sep 2024 07:17:00 +0900 Subject: [PATCH 3/4] fix(cognito-identitypool-alpha): cannot configure roleMappings with imported userPool and client (#30421) ### Issue # (if applicable) Closes #30304 ### Reason for this change Currently, we cannot use imported user pools and clients for role mapping in an identity pool. This is because the `IdentityPoolProviderUrl.userPool` method takes an L2 construct as its argument type instead of Interface (`IUserPool`, `IUserPoolClient`). ```ts const userPool = cognito.UserPool.fromUserPoolArn(this, 'CognitoUserPool', 'arn'); const userPoolClient = cognito.UserPoolClient.fromUserPoolClientId(this, 'UserPoolClientId', 'client-id'); const identityPool = new cognitoidp.IdentityPool(this, 'IdentityPool', { // ~ roleMappings: [ { mappingKey: 'cognito', providerUrl: cognitoidp.IdentityPoolProviderUrl.userPool(userPool, userPoolClient), // ! type error here ! useToken: true } ], allowUnauthenticatedIdentities: false }); ``` ### Description of changes The argument types of the `IdentityPoolProviderUrl.userPool` method are changed to `IUserPool` and `IUserPoolClient`. This method requires the `userPoolProviderName` of the userPool, but since it does not exist for `IUserPool`, a property was added. Since this property is required in the `UserPool` construct, it is also required in `IUserPool`. https://github.com/aws/aws-cdk/blob/c3003ab41f0efc763f39eb2cab490c8a005e146b/packages/aws-cdk-lib/aws-cognito/lib/user-pool.ts#L902 I add a required attribute to the Interface of the aws-cognito module(stable), but I do not think this to be a breaking change. Please let me know if it is not. ### Description of how you validated changes Unit tests and integ tests are added to verify that the imported userPool and clinet can be used. ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../lib/identitypool.ts | 6 +- .../test/identitypool.test.ts | 36 ++ .../integ.identitypool.js.snapshot/cdk.out | 2 +- .../integ-identitypool.assets.json | 6 +- .../integ-identitypool.template.json | 206 +++++++++- .../integ.identitypool.js.snapshot/integ.json | 2 +- .../manifest.json | 38 +- .../integ.identitypool.js.snapshot/tree.json | 358 +++++++++++++++--- .../test/integ.identitypool.ts | 13 +- .../aws-cdk-lib/aws-cognito/lib/user-pool.ts | 12 + .../aws-cognito/test/user-pool.test.ts | 3 + 11 files changed, 583 insertions(+), 99 deletions(-) diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/lib/identitypool.ts b/packages/@aws-cdk/aws-cognito-identitypool-alpha/lib/identitypool.ts index 1277bd682013f..c738279822b0a 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/lib/identitypool.ts +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/lib/identitypool.ts @@ -1,7 +1,7 @@ import { CfnIdentityPool, - UserPool, - UserPoolClient, + IUserPool, + IUserPoolClient, } from 'aws-cdk-lib/aws-cognito'; import { IOpenIdConnectProvider, @@ -158,7 +158,7 @@ export class IdentityPoolProviderUrl { } /** User Pool Provider Url */ - public static userPool(userPool: UserPool, userPoolClient: UserPoolClient): IdentityPoolProviderUrl { + public static userPool(userPool: IUserPool, userPoolClient: IUserPoolClient): IdentityPoolProviderUrl { const url = `${userPool.userPoolProviderName}:${userPoolClient.userPoolClientId}`; return new IdentityPoolProviderUrl(IdentityPoolProviderType.USER_POOL, url); } diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/identitypool.test.ts b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/identitypool.test.ts index 417c848c4407f..d7864e97cfb3f 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/identitypool.test.ts +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/identitypool.test.ts @@ -3,6 +3,7 @@ import { } from 'aws-cdk-lib/assertions'; import { UserPool, + UserPoolClient, UserPoolIdentityProvider, } from 'aws-cdk-lib/aws-cognito'; import { @@ -728,4 +729,39 @@ describe('role mappings', () => { }, }); }); + + test('role mapping with an imported user pool and client', () => { + const stack = new Stack(); + const importedPool = UserPool.fromUserPoolArn(stack, 'ImportedPool', 'arn:aws:cognito-idp:us-east-1:0123456789012:userpool/test-user-pool'); + const importedClient = UserPoolClient.fromUserPoolClientId(stack, 'ImportedPoolClient', 'client-id'); + new IdentityPool(stack, 'TestIdentityPoolRoleMappingRules', { + roleMappings: [{ + mappingKey: 'cognito', + providerUrl: IdentityPoolProviderUrl.userPool(importedPool, importedClient), + useToken: true, + }], + }); + const temp = Template.fromStack(stack); + temp.resourceCountIs('AWS::Cognito::IdentityPoolRoleAttachment', 1); + temp.hasResourceProperties('AWS::Cognito::IdentityPoolRoleAttachment', { + IdentityPoolId: { + Ref: 'TestIdentityPoolRoleMappingRulesC8C07BC3', + }, + RoleMappings: { + cognito: { + IdentityProvider: { + 'Fn::Join': [ + '', + [ + 'cognito-idp.us-east-1.', + { Ref: 'AWS::URLSuffix' }, + '/test-user-pool:client-id', + ], + ], + }, + Type: 'Token', + }, + }, + }); + }); }); diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/cdk.out b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/cdk.out index 588d7b269d34f..4efaa16f29af9 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/cdk.out +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"36.0.24"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.assets.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.assets.json index 2d422e5ff0227..c1102a1836ed7 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.assets.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.assets.json @@ -1,7 +1,7 @@ { - "version": "20.0.0", + "version": "36.0.24", "files": { - "ba3fc84048e7b640e5c349fc2c90bc998d6ca8de19283a433e4c860faf487850": { + "95c3270b9957ed0d53e5665bfe7322f80c61e9fecf25b42cd297caf6bee04ddf": { "source": { "path": "integ-identitypool.template.json", "packaging": "file" @@ -9,7 +9,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ba3fc84048e7b640e5c349fc2c90bc998d6ca8de19283a433e4c860faf487850.json", + "objectKey": "95c3270b9957ed0d53e5665bfe7322f80c61e9fecf25b42cd297caf6bee04ddf.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.template.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.template.json index 2b238e357aaa4..a9e51577a8bd5 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.template.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ-identitypool.template.json @@ -34,9 +34,6 @@ "PooltestClientFE8D4935": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "UserPoolId": { - "Ref": "PoolD3F588B8" - }, "AllowedOAuthFlows": [ "implicit", "code" @@ -57,17 +54,15 @@ "Ref": "PoolProviderGoogle76A1E8D0" }, "COGNITO" - ] + ], + "UserPoolId": { + "Ref": "PoolD3F588B8" + } } }, "PoolProviderGoogle76A1E8D0": { "Type": "AWS::Cognito::UserPoolIdentityProvider", "Properties": { - "ProviderName": "Google", - "ProviderType": "Google", - "UserPoolId": { - "Ref": "PoolD3F588B8" - }, "AttributeMapping": { "given_name": "given_name", "family_name": "family_name", @@ -79,6 +74,11 @@ "client_id": "google-client-id", "client_secret": "google-client-secret", "authorize_scopes": "profile" + }, + "ProviderName": "Google", + "ProviderType": "Google", + "UserPoolId": { + "Ref": "PoolD3F588B8" } } }, @@ -116,9 +116,6 @@ "OtherPoolUserPoolAuthenticationProviderClient08F670F8": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "UserPoolId": { - "Ref": "OtherPool7DA7F2F7" - }, "AllowedOAuthFlows": [ "implicit", "code" @@ -139,17 +136,15 @@ "Ref": "OtherPoolProviderAmazon4EB0592F" }, "COGNITO" - ] + ], + "UserPoolId": { + "Ref": "OtherPool7DA7F2F7" + } } }, "OtherPoolProviderAmazon4EB0592F": { "Type": "AWS::Cognito::UserPoolIdentityProvider", "Properties": { - "ProviderName": "LoginWithAmazon", - "ProviderType": "LoginWithAmazon", - "UserPoolId": { - "Ref": "OtherPool7DA7F2F7" - }, "AttributeMapping": { "given_name": "name", "email": "email", @@ -159,14 +154,76 @@ "client_id": "amzn-client-id", "client_secret": "amzn-client-secret", "authorize_scopes": "profile" + }, + "ProviderName": "LoginWithAmazon", + "ProviderType": "LoginWithAmazon", + "UserPoolId": { + "Ref": "OtherPool7DA7F2F7" + } + } + }, + "UserPoolToImport1A7C21D3": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_phone_number", + "Priority": 1 + }, + { + "Name": "verified_email", + "Priority": 2 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": true + }, + "EmailVerificationMessage": "The verification code to your new account is {####}", + "EmailVerificationSubject": "Verify your new account", + "SmsVerificationMessage": "The verification code to your new account is {####}", + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "The verification code to your new account is {####}", + "EmailSubject": "Verify your new account", + "SmsMessage": "The verification code to your new account is {####}" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "UserPoolToImportclientToImport6885CDF7": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlows": [ + "implicit", + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "CallbackURLs": [ + "https://example.com" + ], + "SupportedIdentityProviders": [ + "COGNITO" + ], + "UserPoolId": { + "Ref": "UserPoolToImport1A7C21D3" } } }, "identitypoolE2A6D099": { "Type": "AWS::Cognito::IdentityPool", "Properties": { - "AllowUnauthenticatedIdentities": false, "AllowClassicFlow": true, + "AllowUnauthenticatedIdentities": false, "CognitoIdentityProviders": [ { "ClientId": { @@ -193,6 +250,54 @@ }, "ServerSideTokenCheck": true }, + { + "ClientId": { + "Ref": "UserPoolToImportclientToImport6885CDF7" + }, + "ProviderName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + ] + }, + "ServerSideTokenCheck": true + }, { "ClientId": { "Ref": "OtherPoolUserPoolAuthenticationProviderClient08F670F8" @@ -407,6 +512,69 @@ ] }, "Type": "Token" + }, + "importedUserPool": { + "AmbiguousRoleResolution": "Deny", + "IdentityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + } + ] + } + ] + }, + ":", + { + "Ref": "UserPoolToImportclientToImport6885CDF7" + } + ] + ] + }, + "Type": "Token" } }, "Roles": { diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ.json index 835feb143da7e..a6da93ace5e11 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "36.0.24", "testCases": { "integ.identitypool": { "stacks": [ diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/manifest.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/manifest.json index abaafd1395aee..143493c68d4b7 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/manifest.json @@ -1,12 +1,6 @@ { - "version": "20.0.0", + "version": "36.0.24", "artifacts": { - "Tree": { - "type": "cdk:tree", - "properties": { - "file": "tree.json" - } - }, "integ-identitypool.assets": { "type": "cdk:asset-manifest", "properties": { @@ -20,10 +14,11 @@ "environment": "aws://unknown-account/unknown-region", "properties": { "templateFile": "integ-identitypool.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}/ba3fc84048e7b640e5c349fc2c90bc998d6ca8de19283a433e4c860faf487850.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/95c3270b9957ed0d53e5665bfe7322f80c61e9fecf25b42cd297caf6bee04ddf.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -75,6 +70,18 @@ "data": "OtherPoolProviderAmazon4EB0592F" } ], + "/integ-identitypool/UserPoolToImport/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "UserPoolToImport1A7C21D3" + } + ], + "/integ-identitypool/UserPoolToImport/clientToImport/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "UserPoolToImportclientToImport6885CDF7" + } + ], "/integ-identitypool/identitypool/Resource": [ { "type": "aws:cdk:logicalId", @@ -122,18 +129,15 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "PoolUserPoolAuthenticationProviderClient20F2FFC4": [ - { - "type": "aws:cdk:logicalId", - "data": "PoolUserPoolAuthenticationProviderClient20F2FFC4", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "integ-identitypool" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/tree.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/tree.json index fe5732fa13788..4f98d36a67bea 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.js.snapshot/tree.json @@ -4,14 +4,6 @@ "id": "App", "path": "", "children": { - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" - } - }, "integ-identitypool": { "id": "integ-identitypool", "path": "integ-identitypool", @@ -53,7 +45,7 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPool", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPool", "version": "0.0.0" } }, @@ -67,9 +59,6 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::Cognito::UserPoolClient", "aws:cdk:cloudformation:props": { - "userPoolId": { - "Ref": "PoolD3F588B8" - }, "allowedOAuthFlows": [ "implicit", "code" @@ -90,23 +79,26 @@ "Ref": "PoolProviderGoogle76A1E8D0" }, "COGNITO" - ] + ], + "userPoolId": { + "Ref": "PoolD3F588B8" + } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPoolClient", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPoolClient", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPoolClient", + "fqn": "aws-cdk-lib.aws_cognito.UserPoolClient", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPool", + "fqn": "aws-cdk-lib.aws_cognito.UserPool", "version": "0.0.0" } }, @@ -120,11 +112,6 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::Cognito::UserPoolIdentityProvider", "aws:cdk:cloudformation:props": { - "providerName": "Google", - "providerType": "Google", - "userPoolId": { - "Ref": "PoolD3F588B8" - }, "attributeMapping": { "given_name": "given_name", "family_name": "family_name", @@ -136,17 +123,22 @@ "client_id": "google-client-id", "client_secret": "google-client-secret", "authorize_scopes": "profile" + }, + "providerName": "Google", + "providerType": "Google", + "userPoolId": { + "Ref": "PoolD3F588B8" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPoolIdentityProvider", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPoolIdentityProvider", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPoolIdentityProviderGoogle", + "fqn": "aws-cdk-lib.aws_cognito.UserPoolIdentityProviderGoogle", "version": "0.0.0" } }, @@ -187,7 +179,7 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPool", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPool", "version": "0.0.0" } }, @@ -201,9 +193,6 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::Cognito::UserPoolClient", "aws:cdk:cloudformation:props": { - "userPoolId": { - "Ref": "OtherPool7DA7F2F7" - }, "allowedOAuthFlows": [ "implicit", "code" @@ -224,23 +213,26 @@ "Ref": "OtherPoolProviderAmazon4EB0592F" }, "COGNITO" - ] + ], + "userPoolId": { + "Ref": "OtherPool7DA7F2F7" + } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPoolClient", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPoolClient", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPoolClient", + "fqn": "aws-cdk-lib.aws_cognito.UserPoolClient", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPool", + "fqn": "aws-cdk-lib.aws_cognito.UserPool", "version": "0.0.0" } }, @@ -254,11 +246,6 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::Cognito::UserPoolIdentityProvider", "aws:cdk:cloudformation:props": { - "providerName": "LoginWithAmazon", - "providerType": "LoginWithAmazon", - "userPoolId": { - "Ref": "OtherPool7DA7F2F7" - }, "attributeMapping": { "given_name": "name", "email": "email", @@ -268,17 +255,129 @@ "client_id": "amzn-client-id", "client_secret": "amzn-client-secret", "authorize_scopes": "profile" + }, + "providerName": "LoginWithAmazon", + "providerType": "LoginWithAmazon", + "userPoolId": { + "Ref": "OtherPool7DA7F2F7" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnUserPoolIdentityProvider", + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPoolIdentityProvider", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.UserPoolIdentityProviderAmazon", + "fqn": "aws-cdk-lib.aws_cognito.UserPoolIdentityProviderAmazon", + "version": "0.0.0" + } + }, + "UserPoolToImport": { + "id": "UserPoolToImport", + "path": "integ-identitypool/UserPoolToImport", + "children": { + "Resource": { + "id": "Resource", + "path": "integ-identitypool/UserPoolToImport/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Cognito::UserPool", + "aws:cdk:cloudformation:props": { + "accountRecoverySetting": { + "recoveryMechanisms": [ + { + "name": "verified_phone_number", + "priority": 1 + }, + { + "name": "verified_email", + "priority": 2 + } + ] + }, + "adminCreateUserConfig": { + "allowAdminCreateUserOnly": true + }, + "emailVerificationMessage": "The verification code to your new account is {####}", + "emailVerificationSubject": "Verify your new account", + "smsVerificationMessage": "The verification code to your new account is {####}", + "verificationMessageTemplate": { + "defaultEmailOption": "CONFIRM_WITH_CODE", + "emailMessage": "The verification code to your new account is {####}", + "emailSubject": "Verify your new account", + "smsMessage": "The verification code to your new account is {####}" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPool", + "version": "0.0.0" + } + }, + "clientToImport": { + "id": "clientToImport", + "path": "integ-identitypool/UserPoolToImport/clientToImport", + "children": { + "Resource": { + "id": "Resource", + "path": "integ-identitypool/UserPoolToImport/clientToImport/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Cognito::UserPoolClient", + "aws:cdk:cloudformation:props": { + "allowedOAuthFlows": [ + "implicit", + "code" + ], + "allowedOAuthFlowsUserPoolClient": true, + "allowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "callbackUrLs": [ + "https://example.com" + ], + "supportedIdentityProviders": [ + "COGNITO" + ], + "userPoolId": { + "Ref": "UserPoolToImport1A7C21D3" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cognito.CfnUserPoolClient", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cognito.UserPoolClient", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cognito.UserPool", + "version": "0.0.0" + } + }, + "ImportedUserPool": { + "id": "ImportedUserPool", + "path": "integ-identitypool/ImportedUserPool", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "ImportedUserPoolClient": { + "id": "ImportedUserPoolClient", + "path": "integ-identitypool/ImportedUserPoolClient", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", "version": "0.0.0" } }, @@ -292,8 +391,8 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::Cognito::IdentityPool", "aws:cdk:cloudformation:props": { - "allowUnauthenticatedIdentities": false, "allowClassicFlow": true, + "allowUnauthenticatedIdentities": false, "cognitoIdentityProviders": [ { "clientId": { @@ -320,6 +419,54 @@ }, "serverSideTokenCheck": true }, + { + "clientId": { + "Ref": "UserPoolToImportclientToImport6885CDF7" + }, + "providerName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + ] + }, + "serverSideTokenCheck": true + }, { "clientId": { "Ref": "OtherPoolUserPoolAuthenticationProviderClient08F670F8" @@ -354,7 +501,7 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnIdentityPool", + "fqn": "aws-cdk-lib.aws_cognito.CfnIdentityPool", "version": "0.0.0" } }, @@ -362,6 +509,14 @@ "id": "AuthenticatedRole", "path": "integ-identitypool/identitypool/AuthenticatedRole", "children": { + "ImportAuthenticatedRole": { + "id": "ImportAuthenticatedRole", + "path": "integ-identitypool/identitypool/AuthenticatedRole/ImportAuthenticatedRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, "Resource": { "id": "Resource", "path": "integ-identitypool/identitypool/AuthenticatedRole/Resource", @@ -407,7 +562,7 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnRole", + "fqn": "aws-cdk-lib.aws_iam.CfnRole", "version": "0.0.0" } }, @@ -440,19 +595,19 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnPolicy", + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Policy", + "fqn": "aws-cdk-lib.aws_iam.Policy", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Role", + "fqn": "aws-cdk-lib.aws_iam.Role", "version": "0.0.0" } }, @@ -460,6 +615,14 @@ "id": "UnauthenticatedRole", "path": "integ-identitypool/identitypool/UnauthenticatedRole", "children": { + "ImportUnauthenticatedRole": { + "id": "ImportUnauthenticatedRole", + "path": "integ-identitypool/identitypool/UnauthenticatedRole/ImportUnauthenticatedRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, "Resource": { "id": "Resource", "path": "integ-identitypool/identitypool/UnauthenticatedRole/Resource", @@ -505,7 +668,7 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnRole", + "fqn": "aws-cdk-lib.aws_iam.CfnRole", "version": "0.0.0" } }, @@ -538,19 +701,19 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnPolicy", + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Policy", + "fqn": "aws-cdk-lib.aws_iam.Policy", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Role", + "fqn": "aws-cdk-lib.aws_iam.Role", "version": "0.0.0" } }, @@ -588,6 +751,69 @@ ] ] } + }, + "importedUserPool": { + "ambiguousRoleResolution": "Deny", + "type": "Token", + "identityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Fn::GetAtt": [ + "UserPoolToImport1A7C21D3", + "Arn" + ] + } + ] + } + ] + } + ] + } + ] + }, + ":", + { + "Ref": "UserPoolToImportclientToImport6885CDF7" + } + ] + ] + } } }, "roles": { @@ -607,32 +833,56 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito.CfnIdentityPoolRoleAttachment", + "fqn": "aws-cdk-lib.aws_cognito.CfnIdentityPoolRoleAttachment", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito-identitypool.IdentityPoolRoleAttachment", + "fqn": "@aws-cdk/aws-cognito-identitypool-alpha.IdentityPoolRoleAttachment", "version": "0.0.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-cognito-identitypool.IdentityPool", + "fqn": "@aws-cdk/aws-cognito-identitypool-alpha.IdentityPool", + "version": "0.0.0" + } + }, + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "integ-identitypool/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "0.0.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "integ-identitypool/CheckBootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnRule", "version": "0.0.0" } } }, + "constructInfo": { + "fqn": "aws-cdk-lib.Stack", + "version": "0.0.0" + } + }, + "Tree": { + "id": "Tree", + "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.3.0" } } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "aws-cdk-lib.App", + "version": "0.0.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.ts b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.ts index e2d1ff3b4528c..02e2aaa8069ec 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.ts +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/test/integ.identitypool.ts @@ -3,6 +3,7 @@ import { UserPoolIdentityProviderGoogle, UserPoolIdentityProviderAmazon, ProviderAttribute, + UserPoolClient, } from 'aws-cdk-lib/aws-cognito'; import { Effect, @@ -52,10 +53,15 @@ new UserPoolIdentityProviderAmazon(stack, 'OtherPoolProviderAmazon', { }, }); const client = userPool.addClient('testClient'); +const userPoolToImport = new UserPool(stack, 'UserPoolToImport'); +const clientToImport = userPoolToImport.addClient('clientToImport'); +const importedUserPool = UserPool.fromUserPoolArn(stack, 'ImportedUserPool', userPoolToImport.userPoolArn); +const importedUserPoolClient = UserPoolClient.fromUserPoolClientId(stack, 'ImportedUserPoolClient', clientToImport.userPoolClientId); const provider = new UserPoolAuthenticationProvider({ userPool, userPoolClient: client }); +const importedProvider = new UserPoolAuthenticationProvider({ userPool: importedUserPool, userPoolClient: importedUserPoolClient }); const idPool = new IdentityPool(stack, 'identitypool', { authenticationProviders: { - userPools: [provider], + userPools: [provider, importedProvider], amazon: { appId: 'amzn1.application.12312k3j234j13rjiwuenf' }, google: { clientId: '12345678012.apps.googleusercontent.com' }, }, @@ -65,6 +71,11 @@ const idPool = new IdentityPool(stack, 'identitypool', { providerUrl: IdentityPoolProviderUrl.userPool(userPool, client), useToken: true, }, + { + mappingKey: 'importedUserPool', + providerUrl: IdentityPoolProviderUrl.userPool(importedUserPool, importedUserPoolClient), + useToken: true, + }, ], allowClassicFlow: true, identityPoolName: 'my-id-pool', diff --git a/packages/aws-cdk-lib/aws-cognito/lib/user-pool.ts b/packages/aws-cdk-lib/aws-cognito/lib/user-pool.ts index 0778024aa2c26..ede93a84af1f0 100644 --- a/packages/aws-cdk-lib/aws-cognito/lib/user-pool.ts +++ b/packages/aws-cdk-lib/aws-cognito/lib/user-pool.ts @@ -767,6 +767,13 @@ export interface IUserPool extends IResource { */ readonly userPoolArn: string; + /** + * The provider name of this user pool resource + * + * @attribute + */ + readonly userPoolProviderName: string; + /** * Get all identity providers registered with this user pool. */ @@ -805,6 +812,7 @@ export interface IUserPool extends IResource { abstract class UserPoolBase extends Resource implements IUserPool { public abstract readonly userPoolId: string; public abstract readonly userPoolArn: string; + public abstract readonly userPoolProviderName: string; public readonly identityProviders: IUserPoolIdentityProvider[] = []; public addClient(id: string, options?: UserPoolClientOptions): UserPoolClient { @@ -870,10 +878,14 @@ export class UserPool extends UserPoolBase { } const userPoolId = arnParts.resourceName; + // ex) cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi + const providerName = `cognito-idp.${arnParts.region}.${Stack.of(scope).urlSuffix}/${userPoolId}`;; class ImportedUserPool extends UserPoolBase { public readonly userPoolArn = userPoolArn; public readonly userPoolId = userPoolId; + public readonly userPoolProviderName = providerName; + constructor() { super(scope, id, { account: arnParts.account, diff --git a/packages/aws-cdk-lib/aws-cognito/test/user-pool.test.ts b/packages/aws-cdk-lib/aws-cognito/test/user-pool.test.ts index 934f6a312c81b..d44a0c4e35e61 100644 --- a/packages/aws-cdk-lib/aws-cognito/test/user-pool.test.ts +++ b/packages/aws-cdk-lib/aws-cognito/test/user-pool.test.ts @@ -300,6 +300,9 @@ describe('User Pool', () => { const pool = UserPool.fromUserPoolArn(stack, 'userpool', userPoolArn); expect(pool.userPoolId).toEqual('test-user-pool'); expect(stack.resolve(pool.userPoolArn)).toEqual('arn:aws:cognito-idp:us-east-1:0123456789012:userpool/test-user-pool'); + expect(stack.resolve(pool.userPoolProviderName)).toEqual( + { 'Fn::Join': ['', ['cognito-idp.us-east-1.', { Ref: 'AWS::URLSuffix' }, '/test-user-pool']] }, + ); }); test('import using arn without resourceName fails', () => { From 70beb6a5d342c72f96ee143919792e4eabf28f00 Mon Sep 17 00:00:00 2001 From: Kazuho Cryer-Shinozuka Date: Thu, 19 Sep 2024 11:14:34 +0900 Subject: [PATCH 4/4] chore(ec2): add GuardDuty Interface VPC Endpoint (#31477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Issue # (if applicable) None ### Reason for this change GuardDuty supports private link access but AWS CDK does not support creating an interface VPC endpoint for GuardDuty. ### Description of changes Add Interface VPC Endpoint for AWS GuardDuty. ### Description of how you validated changes I executed the AWS CLI command as shown below. ```sh ❯ aws ec2 describe-vpc-endpoint-services --filters Name=service-type,Values=Interface Name=owner,Values=amazon --region us-east-1 --query ServiceNames | grep guardduty "com.amazonaws.us-east-1.guardduty", // added "com.amazonaws.us-east-1.guardduty-data", // added "com.amazonaws.us-east-1.guardduty-data-fips", "com.amazonaws.us-east-1.guardduty-fips", ``` ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts index 158508d577814..4fe13c0992b5d 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts @@ -421,6 +421,8 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly GRAFANA = new InterfaceVpcEndpointAwsService('grafana'); public static readonly GRAFANA_WORKSPACE = new InterfaceVpcEndpointAwsService('grafana-workspace'); public static readonly GROUNDSTATION = new InterfaceVpcEndpointAwsService('groundstation'); + public static readonly GUARDDUTY = new InterfaceVpcEndpointAwsService('guardduty'); + public static readonly GUARDDUTY_FIPS = new InterfaceVpcEndpointAwsService('guardduty-fips'); public static readonly GUARDDUTY_DATA = new InterfaceVpcEndpointAwsService('guardduty-data'); public static readonly GUARDDUTY_DATA_FIPS = new InterfaceVpcEndpointAwsService('guardduty-data-fips'); public static readonly HEALTH_IMAGING = new InterfaceVpcEndpointAwsService('medical-imaging');