From dc60bc9fa27e10a560929cb7e46f0e7877dbf5c7 Mon Sep 17 00:00:00 2001 From: nwinans Date: Thu, 27 Oct 2022 12:38:01 -0400 Subject: [PATCH 1/2] fix(apigateway): racecondition between stage and cfnaccount in specrestapi --- .../@aws-cdk/aws-apigateway/lib/restapi.ts | 10 +++++----- ...restapi-fromdefinition-asset.template.json | 5 ++++- ...estapi-fromdefinition-inline.template.json | 5 ++++- ...test-apigateway-spec-restapi.template.json | 5 ++++- .../aws-apigateway/test/stage.test.ts | 19 ++++++++++++++++++- 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/packages/@aws-cdk/aws-apigateway/lib/restapi.ts b/packages/@aws-cdk/aws-apigateway/lib/restapi.ts index 63a554927cfcc..36b3ab7e8809a 100644 --- a/packages/@aws-cdk/aws-apigateway/lib/restapi.ts +++ b/packages/@aws-cdk/aws-apigateway/lib/restapi.ts @@ -662,16 +662,16 @@ export class SpecRestApi extends RestApiBase { this.restApiRootResourceId = resource.attrRootResourceId; this.root = new RootResource(this, {}, this.restApiRootResourceId); - this._configureDeployment(props); - if (props.domainName) { - this.addDomainName('CustomDomain', props.domainName); - } - const cloudWatchRoleDefault = FeatureFlags.of(this).isEnabled(APIGATEWAY_DISABLE_CLOUDWATCH_ROLE) ? false : true; const cloudWatchRole = props.cloudWatchRole ?? cloudWatchRoleDefault; if (cloudWatchRole) { this._configureCloudWatchRole(resource); } + + this._configureDeployment(props); + if (props.domainName) { + this.addDomainName('CustomDomain', props.domainName); + } } } diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json index 455891fe64b96..498e959b1001e 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json @@ -80,7 +80,10 @@ "Ref": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" }, "StageName": "prod" - } + }, + "DependsOn": [ + "myapiAccountEC421A0A" + ] }, "myapiCloudWatchRole095452E5": { "Type": "AWS::IAM::Role", diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json index 66a9a9fbab07c..51100892a8704 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json @@ -72,7 +72,10 @@ "Ref": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" }, "StageName": "prod" - } + }, + "DependsOn": [ + "myapiAccountEC421A0A" + ] }, "myapiCloudWatchRole095452E5": { "Type": "AWS::IAM::Role", diff --git a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json index 77d098581aa9a..418ceaab88dfb 100644 --- a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json @@ -517,7 +517,10 @@ } ], "StageName": "beta" - } + }, + "DependsOn": [ + "myapiAccountEC421A0A" + ] }, "myapiCloudWatchRole095452E5": { "Type": "AWS::IAM::Role", diff --git a/packages/@aws-cdk/aws-apigateway/test/stage.test.ts b/packages/@aws-cdk/aws-apigateway/test/stage.test.ts index 41422403c165e..156fa29ca7e0b 100644 --- a/packages/@aws-cdk/aws-apigateway/test/stage.test.ts +++ b/packages/@aws-cdk/aws-apigateway/test/stage.test.ts @@ -70,7 +70,7 @@ describe('stage', () => { }); }); - test('stage depends on the CloudWatch role when it exists', () => { + test('RestApi - stage depends on the CloudWatch role when it exists', () => { // GIVEN const stack = new cdk.Stack(); const api = new apigateway.RestApi(stack, 'test-api', { cloudWatchRole: true, deploy: false }); @@ -80,6 +80,23 @@ describe('stage', () => { // WHEN new apigateway.Stage(stack, 'my-stage', { deployment }); + // THEN + Template.fromStack(stack).hasResource('AWS::ApiGateway::Stage', { + DependsOn: ['testapiAccount9B907665'], + }); + }); + + test('SpecRestApi - stage depends on the CloudWatch role when it exists', () => { + // GIVEN + const stack = new cdk.Stack(); + const api = new apigateway.SpecRestApi(stack, 'test-api', { apiDefinition: apigateway.ApiDefinition.fromInline( { foo: 'bar' }) }); + const deployment = new apigateway.Deployment(stack, 'my-deployment', { api }); + api.root.addMethod('GET'); + + // WHEN + new apigateway.Stage(stack, 'my-stage', { deployment }); + + // THEN Template.fromStack(stack).hasResource('AWS::ApiGateway::Stage', { DependsOn: ['testapiAccount9B907665'], }); From 5a459eb78d3c3ca9a7661bfa3cbd5c9b78ff84e9 Mon Sep 17 00:00:00 2001 From: nwinans Date: Fri, 28 Oct 2022 13:53:38 -0400 Subject: [PATCH 2/2] fix integration tests --- .../cdk.out | 2 +- .../integ.json | 5 +- ...t-restapi-fromdefinition-asset.assets.json | 6 +- ...restapi-fromdefinition-asset.template.json | 56 +++---- .../manifest.json | 33 ++-- ...efaultTestDeployAssertDF3B0845.assets.json | 2 +- .../tree.json | 158 +++++++++--------- .../cdk.out | 2 +- ...efaultTestDeployAssert923CAC29.assets.json | 2 +- .../integ.json | 5 +- ...-restapi-fromdefinition-inline.assets.json | 6 +- ...estapi-fromdefinition-inline.template.json | 48 +++--- .../manifest.json | 24 +-- .../tree.json | 150 ++++++++--------- .../spec-restapi.integ.snapshot/manifest.json | 22 +-- .../test-apigateway-spec-restapi.assets.json | 4 +- ...test-apigateway-spec-restapi.template.json | 98 +++++------ .../spec-restapi.integ.snapshot/tree.json | 140 ++++++++-------- 18 files changed, 378 insertions(+), 385 deletions(-) diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/cdk.out index 588d7b269d34f..8ecc185e9dbee 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/cdk.out +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"21.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integ.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integ.json index 3a04e2a204bc4..3642781150673 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integ.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integ.json @@ -1,11 +1,12 @@ { - "version": "20.0.0", + "version": "21.0.0", "testCases": { "restapi-fromdefinition/DefaultTest": { "stacks": [ "integtest-restapi-fromdefinition-asset" ], - "assertionStack": "restapi-fromdefinition/DefaultTest/DeployAssert" + "assertionStack": "restapi-fromdefinition/DefaultTest/DeployAssert", + "assertionStackName": "restapifromdefinitionDefaultTestDeployAssertDF3B0845" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.assets.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.assets.json index 1ce11bc2039fa..f75337b8eb59e 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.assets.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.assets.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "files": { "68497ac876de4e963fc8f7b5f1b28844c18ecc95e3f7c6e9e0bf250e03c037fb": { "source": { @@ -14,7 +14,7 @@ } } }, - "b6f4053913c5258c89b2cb1e8d48d0a04346c7b0736f15235a74f8fd890de556": { + "2fcb710210eb75f31b39dd1787cc4271df763ad6b541a188cb417095e1b83aa7": { "source": { "path": "integtest-restapi-fromdefinition-asset.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b6f4053913c5258c89b2cb1e8d48d0a04346c7b0736f15235a74f8fd890de556.json", + "objectKey": "2fcb710210eb75f31b39dd1787cc4271df763ad6b541a188cb417095e1b83aa7.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-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json index 498e959b1001e..d0c86fe82cb02 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/integtest-restapi-fromdefinition-asset.template.json @@ -57,34 +57,6 @@ ] } }, - "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96": { - "Type": "AWS::ApiGateway::Deployment", - "Properties": { - "RestApiId": { - "Ref": "myapi4C7BF186" - }, - "Description": "Automatically created by the RestApi construct" - }, - "DependsOn": [ - "myapibooksGETD6B2F597", - "myapibooks51D54548" - ] - }, - "myapiDeploymentStageprod298F01AF": { - "Type": "AWS::ApiGateway::Stage", - "Properties": { - "RestApiId": { - "Ref": "myapi4C7BF186" - }, - "DeploymentId": { - "Ref": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" - }, - "StageName": "prod" - }, - "DependsOn": [ - "myapiAccountEC421A0A" - ] - }, "myapiCloudWatchRole095452E5": { "Type": "AWS::IAM::Role", "Properties": { @@ -133,6 +105,34 @@ ], "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" + }, + "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96": { + "Type": "AWS::ApiGateway::Deployment", + "Properties": { + "RestApiId": { + "Ref": "myapi4C7BF186" + }, + "Description": "Automatically created by the RestApi construct" + }, + "DependsOn": [ + "myapibooksGETD6B2F597", + "myapibooks51D54548" + ] + }, + "myapiDeploymentStageprod298F01AF": { + "Type": "AWS::ApiGateway::Stage", + "Properties": { + "RestApiId": { + "Ref": "myapi4C7BF186" + }, + "DeploymentId": { + "Ref": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" + }, + "StageName": "prod" + }, + "DependsOn": [ + "myapiAccountEC421A0A" + ] } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/manifest.json index 9fbd842127260..91f11081bae87 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "artifacts": { "Tree": { "type": "cdk:tree", @@ -23,7 +23,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}/b6f4053913c5258c89b2cb1e8d48d0a04346c7b0736f15235a74f8fd890de556.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2fcb710210eb75f31b39dd1787cc4271df763ad6b541a188cb417095e1b83aa7.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -57,34 +57,34 @@ "data": "myapibooksGETD6B2F597" } ], - "/integtest-restapi-fromdefinition-asset/my-api/Deployment/Resource": [ + "/integtest-restapi-fromdefinition-asset/my-api/CloudWatchRole/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" + "data": "myapiCloudWatchRole095452E5" } ], - "/integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod/Resource": [ + "/integtest-restapi-fromdefinition-asset/my-api/Account": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeploymentStageprod298F01AF" + "data": "myapiAccountEC421A0A" } ], - "/integtest-restapi-fromdefinition-asset/my-api/Endpoint": [ + "/integtest-restapi-fromdefinition-asset/my-api/Deployment/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiEndpoint3628AFE3" + "data": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" } ], - "/integtest-restapi-fromdefinition-asset/my-api/CloudWatchRole/Resource": [ + "/integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiCloudWatchRole095452E5" + "data": "myapiDeploymentStageprod298F01AF" } ], - "/integtest-restapi-fromdefinition-asset/my-api/Account": [ + "/integtest-restapi-fromdefinition-asset/my-api/Endpoint": [ { "type": "aws:cdk:logicalId", - "data": "myapiAccountEC421A0A" + "data": "myapiEndpoint3628AFE3" } ], "/integtest-restapi-fromdefinition-asset/PetsURL": [ @@ -110,15 +110,6 @@ "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } - ], - "myapiDeployment92F2CB49fe116fef7f552ff0fc433c9aa3930d2f": [ - { - "type": "aws:cdk:logicalId", - "data": "myapiDeployment92F2CB49fe116fef7f552ff0fc433c9aa3930d2f", - "trace": [ - "!!DESTRUCTIVE_CHANGES: WILL_DESTROY" - ] - } ] }, "displayName": "integtest-restapi-fromdefinition-asset" diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/restapifromdefinitionDefaultTestDeployAssertDF3B0845.assets.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/restapifromdefinitionDefaultTestDeployAssertDF3B0845.assets.json index 3782cf9fbfd06..f2c9a528d1255 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/restapifromdefinitionDefaultTestDeployAssertDF3B0845.assets.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/restapifromdefinitionDefaultTestDeployAssertDF3B0845.assets.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "source": { diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/tree.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/tree.json index f1f93487fda32..d67ec0c01dceb 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.asset.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.1.140" } }, "integtest-restapi-fromdefinition-asset": { @@ -28,8 +28,8 @@ "id": "Stage", "path": "integtest-restapi-fromdefinition-asset/my-api/APIDefinition/Stage", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.AssetStaging", + "version": "0.0.0" } }, "AssetBucket": { @@ -157,71 +157,6 @@ "version": "0.0.0" } }, - "Deployment": { - "id": "Deployment", - "path": "integtest-restapi-fromdefinition-asset/my-api/Deployment", - "children": { - "Resource": { - "id": "Resource", - "path": "integtest-restapi-fromdefinition-asset/my-api/Deployment/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::ApiGateway::Deployment", - "aws:cdk:cloudformation:props": { - "restApiId": { - "Ref": "myapi4C7BF186" - }, - "description": "Automatically created by the RestApi construct" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.CfnDeployment", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.Deployment", - "version": "0.0.0" - } - }, - "DeploymentStage.prod": { - "id": "DeploymentStage.prod", - "path": "integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod", - "children": { - "Resource": { - "id": "Resource", - "path": "integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::ApiGateway::Stage", - "aws:cdk:cloudformation:props": { - "restApiId": { - "Ref": "myapi4C7BF186" - }, - "deploymentId": { - "Ref": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" - }, - "stageName": "prod" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.CfnStage", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.Stage", - "version": "0.0.0" - } - }, - "Endpoint": { - "id": "Endpoint", - "path": "integtest-restapi-fromdefinition-asset/my-api/Endpoint", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" - } - }, "CloudWatchRole": { "id": "CloudWatchRole", "path": "integtest-restapi-fromdefinition-asset/my-api/CloudWatchRole", @@ -289,6 +224,71 @@ "fqn": "@aws-cdk/aws-apigateway.CfnAccount", "version": "0.0.0" } + }, + "Deployment": { + "id": "Deployment", + "path": "integtest-restapi-fromdefinition-asset/my-api/Deployment", + "children": { + "Resource": { + "id": "Resource", + "path": "integtest-restapi-fromdefinition-asset/my-api/Deployment/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::ApiGateway::Deployment", + "aws:cdk:cloudformation:props": { + "restApiId": { + "Ref": "myapi4C7BF186" + }, + "description": "Automatically created by the RestApi construct" + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.CfnDeployment", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.Deployment", + "version": "0.0.0" + } + }, + "DeploymentStage.prod": { + "id": "DeploymentStage.prod", + "path": "integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod", + "children": { + "Resource": { + "id": "Resource", + "path": "integtest-restapi-fromdefinition-asset/my-api/DeploymentStage.prod/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::ApiGateway::Stage", + "aws:cdk:cloudformation:props": { + "restApiId": { + "Ref": "myapi4C7BF186" + }, + "deploymentId": { + "Ref": "myapiDeployment92F2CB49d7e5c9cfe50a1616e1cef4517d6b8f96" + }, + "stageName": "prod" + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.CfnStage", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.Stage", + "version": "0.0.0" + } + }, + "Endpoint": { + "id": "Endpoint", + "path": "integtest-restapi-fromdefinition-asset/my-api/Endpoint", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnOutput", + "version": "0.0.0" + } } }, "constructInfo": { @@ -300,22 +300,22 @@ "id": "PetsURL", "path": "integtest-restapi-fromdefinition-asset/PetsURL", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.CfnOutput", + "version": "0.0.0" } }, "BooksURL": { "id": "BooksURL", "path": "integtest-restapi-fromdefinition-asset/BooksURL", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.CfnOutput", + "version": "0.0.0" } } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" } }, "restapi-fromdefinition": { @@ -331,15 +331,15 @@ "path": "restapi-fromdefinition/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.1.140" } }, "DeployAssert": { "id": "DeployAssert", "path": "restapi-fromdefinition/DefaultTest/DeployAssert", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" } } }, @@ -356,8 +356,8 @@ } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/cdk.out b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/cdk.out index 588d7b269d34f..8ecc185e9dbee 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/cdk.out +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"21.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/inlineapidefinitionDefaultTestDeployAssert923CAC29.assets.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/inlineapidefinitionDefaultTestDeployAssert923CAC29.assets.json index 85b203d3df54e..08ccfa198b17b 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/inlineapidefinitionDefaultTestDeployAssert923CAC29.assets.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/inlineapidefinitionDefaultTestDeployAssert923CAC29.assets.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "source": { diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integ.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integ.json index b854867d69b44..d3fc1877a76d3 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integ.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integ.json @@ -1,11 +1,12 @@ { - "version": "20.0.0", + "version": "21.0.0", "testCases": { "inline-api-definition/DefaultTest": { "stacks": [ "integtest-restapi-fromdefinition-inline" ], - "assertionStack": "inline-api-definition/DefaultTest/DeployAssert" + "assertionStack": "inline-api-definition/DefaultTest/DeployAssert", + "assertionStackName": "inlineapidefinitionDefaultTestDeployAssert923CAC29" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.assets.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.assets.json index 29c558f859ea5..73195906af2a1 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.assets.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.assets.json @@ -1,7 +1,7 @@ { - "version": "20.0.0", + "version": "21.0.0", "files": { - "43fa955c096081646078278a942ed067da2e8d4eb1d70897d691852a07063bb6": { + "c3150fcf8006f26abb83d3525cd55948b2e4643294d8f6e1e93931bb2469e58b": { "source": { "path": "integtest-restapi-fromdefinition-inline.template.json", "packaging": "file" @@ -9,7 +9,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "43fa955c096081646078278a942ed067da2e8d4eb1d70897d691852a07063bb6.json", + "objectKey": "c3150fcf8006f26abb83d3525cd55948b2e4643294d8f6e1e93931bb2469e58b.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-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json index 51100892a8704..64f67df83aeb1 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/integtest-restapi-fromdefinition-inline.template.json @@ -53,30 +53,6 @@ "Name": "my-api" } }, - "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65": { - "Type": "AWS::ApiGateway::Deployment", - "Properties": { - "RestApiId": { - "Ref": "myapi4C7BF186" - }, - "Description": "Automatically created by the RestApi construct" - } - }, - "myapiDeploymentStageprod298F01AF": { - "Type": "AWS::ApiGateway::Stage", - "Properties": { - "RestApiId": { - "Ref": "myapi4C7BF186" - }, - "DeploymentId": { - "Ref": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" - }, - "StageName": "prod" - }, - "DependsOn": [ - "myapiAccountEC421A0A" - ] - }, "myapiCloudWatchRole095452E5": { "Type": "AWS::IAM::Role", "Properties": { @@ -125,6 +101,30 @@ ], "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" + }, + "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65": { + "Type": "AWS::ApiGateway::Deployment", + "Properties": { + "RestApiId": { + "Ref": "myapi4C7BF186" + }, + "Description": "Automatically created by the RestApi construct" + } + }, + "myapiDeploymentStageprod298F01AF": { + "Type": "AWS::ApiGateway::Stage", + "Properties": { + "RestApiId": { + "Ref": "myapi4C7BF186" + }, + "DeploymentId": { + "Ref": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" + }, + "StageName": "prod" + }, + "DependsOn": [ + "myapiAccountEC421A0A" + ] } }, "Outputs": { diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/manifest.json index 62d77adcd9ba7..0ff4535137332 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "21.0.0", "artifacts": { "Tree": { "type": "cdk:tree", @@ -23,7 +23,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}/43fa955c096081646078278a942ed067da2e8d4eb1d70897d691852a07063bb6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/c3150fcf8006f26abb83d3525cd55948b2e4643294d8f6e1e93931bb2469e58b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -45,34 +45,34 @@ "data": "myapi4C7BF186" } ], - "/integtest-restapi-fromdefinition-inline/my-api/Deployment/Resource": [ + "/integtest-restapi-fromdefinition-inline/my-api/CloudWatchRole/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" + "data": "myapiCloudWatchRole095452E5" } ], - "/integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod/Resource": [ + "/integtest-restapi-fromdefinition-inline/my-api/Account": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeploymentStageprod298F01AF" + "data": "myapiAccountEC421A0A" } ], - "/integtest-restapi-fromdefinition-inline/my-api/Endpoint": [ + "/integtest-restapi-fromdefinition-inline/my-api/Deployment/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiEndpoint3628AFE3" + "data": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" } ], - "/integtest-restapi-fromdefinition-inline/my-api/CloudWatchRole/Resource": [ + "/integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiCloudWatchRole095452E5" + "data": "myapiDeploymentStageprod298F01AF" } ], - "/integtest-restapi-fromdefinition-inline/my-api/Account": [ + "/integtest-restapi-fromdefinition-inline/my-api/Endpoint": [ { "type": "aws:cdk:logicalId", - "data": "myapiAccountEC421A0A" + "data": "myapiEndpoint3628AFE3" } ], "/integtest-restapi-fromdefinition-inline/PetsURL": [ diff --git a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/tree.json b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/tree.json index ca38b8fcbac8e..2d4a6cc83c010 100644 --- a/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-apigateway/test/api-definition.inline.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.1.140" } }, "integtest-restapi-fromdefinition-inline": { @@ -89,71 +89,6 @@ "version": "0.0.0" } }, - "Deployment": { - "id": "Deployment", - "path": "integtest-restapi-fromdefinition-inline/my-api/Deployment", - "children": { - "Resource": { - "id": "Resource", - "path": "integtest-restapi-fromdefinition-inline/my-api/Deployment/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::ApiGateway::Deployment", - "aws:cdk:cloudformation:props": { - "restApiId": { - "Ref": "myapi4C7BF186" - }, - "description": "Automatically created by the RestApi construct" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.CfnDeployment", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.Deployment", - "version": "0.0.0" - } - }, - "DeploymentStage.prod": { - "id": "DeploymentStage.prod", - "path": "integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod", - "children": { - "Resource": { - "id": "Resource", - "path": "integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::ApiGateway::Stage", - "aws:cdk:cloudformation:props": { - "restApiId": { - "Ref": "myapi4C7BF186" - }, - "deploymentId": { - "Ref": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" - }, - "stageName": "prod" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.CfnStage", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.Stage", - "version": "0.0.0" - } - }, - "Endpoint": { - "id": "Endpoint", - "path": "integtest-restapi-fromdefinition-inline/my-api/Endpoint", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" - } - }, "CloudWatchRole": { "id": "CloudWatchRole", "path": "integtest-restapi-fromdefinition-inline/my-api/CloudWatchRole", @@ -221,6 +156,71 @@ "fqn": "@aws-cdk/aws-apigateway.CfnAccount", "version": "0.0.0" } + }, + "Deployment": { + "id": "Deployment", + "path": "integtest-restapi-fromdefinition-inline/my-api/Deployment", + "children": { + "Resource": { + "id": "Resource", + "path": "integtest-restapi-fromdefinition-inline/my-api/Deployment/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::ApiGateway::Deployment", + "aws:cdk:cloudformation:props": { + "restApiId": { + "Ref": "myapi4C7BF186" + }, + "description": "Automatically created by the RestApi construct" + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.CfnDeployment", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.Deployment", + "version": "0.0.0" + } + }, + "DeploymentStage.prod": { + "id": "DeploymentStage.prod", + "path": "integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod", + "children": { + "Resource": { + "id": "Resource", + "path": "integtest-restapi-fromdefinition-inline/my-api/DeploymentStage.prod/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::ApiGateway::Stage", + "aws:cdk:cloudformation:props": { + "restApiId": { + "Ref": "myapi4C7BF186" + }, + "deploymentId": { + "Ref": "myapiDeployment92F2CB49a59bca458e4fac1fcd742212ded42a65" + }, + "stageName": "prod" + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.CfnStage", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.Stage", + "version": "0.0.0" + } + }, + "Endpoint": { + "id": "Endpoint", + "path": "integtest-restapi-fromdefinition-inline/my-api/Endpoint", + "constructInfo": { + "fqn": "@aws-cdk/core.CfnOutput", + "version": "0.0.0" + } } }, "constructInfo": { @@ -232,14 +232,14 @@ "id": "PetsURL", "path": "integtest-restapi-fromdefinition-inline/PetsURL", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.CfnOutput", + "version": "0.0.0" } } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" } }, "inline-api-definition": { @@ -255,15 +255,15 @@ "path": "inline-api-definition/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.1.140" } }, "DeployAssert": { "id": "DeployAssert", "path": "inline-api-definition/DefaultTest/DeployAssert", "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.Stack", + "version": "0.0.0" } } }, @@ -280,8 +280,8 @@ } }, "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" + "fqn": "@aws-cdk/core.App", + "version": "0.0.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/manifest.json b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/manifest.json index 615066d18ff38..ec86acb97e7a9 100644 --- a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/manifest.json @@ -23,7 +23,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}/551655898503491ac7795f943b15b78ff3cd7b88de0661f6b5a09b11ec6976f6.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4b4324bd66c0a5352124c718d0cb3990046afe7ccf1cea94d4488ed7cd67191b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -141,34 +141,34 @@ "data": "myapiv1booksPOST53E2832E" } ], - "/test-apigateway-spec-restapi/my-api/Deployment/Resource": [ + "/test-apigateway-spec-restapi/my-api/CloudWatchRole/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeployment92F2CB49e2ce3595b92ff44fad021c2e55149db1" + "data": "myapiCloudWatchRole095452E5" } ], - "/test-apigateway-spec-restapi/my-api/DeploymentStage.beta/Resource": [ + "/test-apigateway-spec-restapi/my-api/Account": [ { "type": "aws:cdk:logicalId", - "data": "myapiDeploymentStagebeta96434BEB" + "data": "myapiAccountEC421A0A" } ], - "/test-apigateway-spec-restapi/my-api/Endpoint": [ + "/test-apigateway-spec-restapi/my-api/Deployment/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiEndpoint3628AFE3" + "data": "myapiDeployment92F2CB49e2ce3595b92ff44fad021c2e55149db1" } ], - "/test-apigateway-spec-restapi/my-api/CloudWatchRole/Resource": [ + "/test-apigateway-spec-restapi/my-api/DeploymentStage.beta/Resource": [ { "type": "aws:cdk:logicalId", - "data": "myapiCloudWatchRole095452E5" + "data": "myapiDeploymentStagebeta96434BEB" } ], - "/test-apigateway-spec-restapi/my-api/Account": [ + "/test-apigateway-spec-restapi/my-api/Endpoint": [ { "type": "aws:cdk:logicalId", - "data": "myapiAccountEC421A0A" + "data": "myapiEndpoint3628AFE3" } ], "/test-apigateway-spec-restapi/my-api/ApiKey/Resource": [ diff --git a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.assets.json b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.assets.json index 193341ba31c89..2bff91cb920f7 100644 --- a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.assets.json +++ b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.assets.json @@ -14,7 +14,7 @@ } } }, - "551655898503491ac7795f943b15b78ff3cd7b88de0661f6b5a09b11ec6976f6": { + "4b4324bd66c0a5352124c718d0cb3990046afe7ccf1cea94d4488ed7cd67191b": { "source": { "path": "test-apigateway-spec-restapi.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "551655898503491ac7795f943b15b78ff3cd7b88de0661f6b5a09b11ec6976f6.json", + "objectKey": "4b4324bd66c0a5352124c718d0cb3990046afe7ccf1cea94d4488ed7cd67191b.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-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json index 418ceaab88dfb..5214b610b9995 100644 --- a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json +++ b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/test-apigateway-spec-restapi.template.json @@ -467,6 +467,55 @@ } } }, + "myapiCloudWatchRole095452E5": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" + ] + ] + } + ] + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "myapiAccountEC421A0A": { + "Type": "AWS::ApiGateway::Account", + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ + "myapiCloudWatchRole095452E5", + "Arn" + ] + } + }, + "DependsOn": [ + "myapi4C7BF186" + ], + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, "myapiDeployment92F2CB49e2ce3595b92ff44fad021c2e55149db1": { "Type": "AWS::ApiGateway::Deployment", "Properties": { @@ -522,55 +571,6 @@ "myapiAccountEC421A0A" ] }, - "myapiCloudWatchRole095452E5": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "apigateway.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" - ] - ] - } - ] - }, - "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" - }, - "myapiAccountEC421A0A": { - "Type": "AWS::ApiGateway::Account", - "Properties": { - "CloudWatchRoleArn": { - "Fn::GetAtt": [ - "myapiCloudWatchRole095452E5", - "Arn" - ] - } - }, - "DependsOn": [ - "myapi4C7BF186" - ], - "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" - }, "myapiApiKey43446CCF": { "Type": "AWS::ApiGateway::ApiKey", "Properties": { diff --git a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/tree.json b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/tree.json index 241e0aab49369..10cba98b03d1a 100644 --- a/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/tree.json +++ b/packages/@aws-cdk/aws-apigateway/test/spec-restapi.integ.snapshot/tree.json @@ -9,7 +9,7 @@ "path": "Tree", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.102" + "version": "10.1.140" } }, "test-apigateway-spec-restapi": { @@ -759,6 +759,74 @@ "version": "0.0.0" } }, + "CloudWatchRole": { + "id": "CloudWatchRole", + "path": "test-apigateway-spec-restapi/my-api/CloudWatchRole", + "children": { + "Resource": { + "id": "Resource", + "path": "test-apigateway-spec-restapi/my-api/CloudWatchRole/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "managedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" + ] + ] + } + ] + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-iam.CfnRole", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-iam.Role", + "version": "0.0.0" + } + }, + "Account": { + "id": "Account", + "path": "test-apigateway-spec-restapi/my-api/Account", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::ApiGateway::Account", + "aws:cdk:cloudformation:props": { + "cloudWatchRoleArn": { + "Fn::GetAtt": [ + "myapiCloudWatchRole095452E5", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/aws-apigateway.CfnAccount", + "version": "0.0.0" + } + }, "Deployment": { "id": "Deployment", "path": "test-apigateway-spec-restapi/my-api/Deployment", @@ -841,74 +909,6 @@ "version": "0.0.0" } }, - "CloudWatchRole": { - "id": "CloudWatchRole", - "path": "test-apigateway-spec-restapi/my-api/CloudWatchRole", - "children": { - "Resource": { - "id": "Resource", - "path": "test-apigateway-spec-restapi/my-api/CloudWatchRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "apigateway.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnRole", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Role", - "version": "0.0.0" - } - }, - "Account": { - "id": "Account", - "path": "test-apigateway-spec-restapi/my-api/Account", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::ApiGateway::Account", - "aws:cdk:cloudformation:props": { - "cloudWatchRoleArn": { - "Fn::GetAtt": [ - "myapiCloudWatchRole095452E5", - "Arn" - ] - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-apigateway.CfnAccount", - "version": "0.0.0" - } - }, "ApiKey": { "id": "ApiKey", "path": "test-apigateway-spec-restapi/my-api/ApiKey", @@ -1119,7 +1119,7 @@ "path": "apigateway-spec-restapi/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.102" + "version": "10.1.140" } }, "DeployAssert": {