From dbe614cc082525e254a49375cba67b32bf1c769d Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Mon, 5 Feb 2024 21:58:14 +0800 Subject: [PATCH 1/6] fix(spec2cdk): enable modern tagging style with ITaggableV2 --- tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index d61bf118d299a..9c2dec8db3ee4 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -8,7 +8,7 @@ import { attributePropertyName, cloudFormationDocLink, propertyNameFromCloudForm import { splitDocumentation } from '../util'; // Depends on https://github.com/aws/aws-cdk/pull/25610 -export const HAS_25610 = false; +export const HAS_25610 = true; // This convenience typewriter builder is used all over the place const $this = $E(expr.this_()); @@ -184,7 +184,7 @@ export class ResourceDecider { private handleTagPropertyModern(cfnName: string, prop: Property, variant: TagVariant) { const originalName = propertyNameFromCloudFormation(cfnName); - const originalType = this.converter.makeTypeResolvable(this.converter.typeFromProperty(prop)); + const originalType = this.converter.typeFromProperty(prop); this.propsProperties.push({ propertySpec: { @@ -221,7 +221,7 @@ export class ResourceDecider { expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.tags.renderTags(...(HAS_25610 ? [$this[originalName]] : [])), + [originalName]: $this.cdkTagManager.renderTags(), }, }, { From c1342606e5cb1b190b7f54a685bf4f031e21e565 Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Tue, 6 Feb 2024 00:00:17 +0800 Subject: [PATCH 2/6] Add a comment --- tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index 9c2dec8db3ee4..b1d16ff1e4f15 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -8,6 +8,7 @@ import { attributePropertyName, cloudFormationDocLink, propertyNameFromCloudForm import { splitDocumentation } from '../util'; // Depends on https://github.com/aws/aws-cdk/pull/25610 +// Eanbling this feature since PR 25610 was merged. export const HAS_25610 = true; // This convenience typewriter builder is used all over the place From 5ff4515ebbe6585e62bba7ff97fbf51438bcc868 Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Sat, 10 Feb 2024 23:06:52 +0800 Subject: [PATCH 3/6] Update code generation --- tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index b1d16ff1e4f15..2adc167f4a0c1 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -218,7 +218,7 @@ export class ResourceDecider { new CDK_CORE.TagManager( this.tagManagerVariant(variant), expr.lit(this.resource.cloudFormationType), - HAS_25610 ? expr.UNDEFINED : $E(props)[originalName], + $E(props)[originalName], expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { From e805aeaa0b2ef2acba2e13674c8f5330d82e72ec Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Thu, 22 Feb 2024 16:13:33 +0800 Subject: [PATCH 4/6] Remove unused boolean HAS_25610 --- .../spec2cdk/lib/cdk/resource-decider.ts | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index 2adc167f4a0c1..43c45e7023eb0 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -7,10 +7,6 @@ import { TypeConverter } from './type-converter'; import { attributePropertyName, cloudFormationDocLink, propertyNameFromCloudFormation } from '../naming'; import { splitDocumentation } from '../util'; -// Depends on https://github.com/aws/aws-cdk/pull/25610 -// Eanbling this feature since PR 25610 was merged. -export const HAS_25610 = true; - // This convenience typewriter builder is used all over the place const $this = $E(expr.this_()); @@ -22,7 +18,7 @@ export class ResourceDecider { const taggability = resourceTaggabilityStyle(resource); return taggability?.style === 'legacy' ? [CDK_CORE.ITaggable] - : taggability?.style === 'modern' && HAS_25610 + : taggability?.style === 'modern' ? [CDK_CORE.ITaggableV2] : []; } @@ -52,10 +48,8 @@ export class ResourceDecider { this.handleTagPropertyLegacy(name, prop, this.taggability.variant); continue; case 'modern': - if (HAS_25610) { - this.handleTagPropertyModern(name, prop, this.taggability.variant); - continue; - } + this.handleTagPropertyModern(name, prop, this.taggability.variant); + continue; } } else { this.handleTypeHistoryTypes(prop); @@ -163,11 +157,11 @@ export class ResourceDecider { new CDK_CORE.TagManager( this.tagManagerVariant(variant), expr.lit(this.resource.cloudFormationType), - HAS_25610 ? expr.UNDEFINED : $E(props)[originalName], + $E(props)[originalName], expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.tags.renderTags(...(HAS_25610 ? [$this[rawTagsPropName]] : [])), + [originalName]: $this.tags.renderTags(), }, }, { @@ -222,7 +216,7 @@ export class ResourceDecider { expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.cdkTagManager.renderTags(), + [originalName]: $this.cdkTagManager.renderTags($this[originalName]), }, }, { From 1c374cd5039817a27d6c5aa384f8cbe8aed648be Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Thu, 22 Feb 2024 16:39:07 +0800 Subject: [PATCH 5/6] Update render tags --- tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index 43c45e7023eb0..b5be579ae8554 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -216,7 +216,7 @@ export class ResourceDecider { expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.cdkTagManager.renderTags($this[originalName]), + [originalName]: $this.cdkTagManager.renderTags(), }, }, { From 07529e618e01288fcf6679c951c78ddf18ca4ac3 Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Fri, 23 Feb 2024 09:46:09 +0800 Subject: [PATCH 6/6] Give property name in render tags --- tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts index b5be579ae8554..2db62bb3d0b4a 100644 --- a/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts +++ b/tools/@aws-cdk/spec2cdk/lib/cdk/resource-decider.ts @@ -153,15 +153,15 @@ export class ResourceDecider { summary: 'Tag Manager which manages the tags for this resource', }, }, - initializer: (props: Expression) => + initializer: (_: Expression) => new CDK_CORE.TagManager( this.tagManagerVariant(variant), expr.lit(this.resource.cloudFormationType), - $E(props)[originalName], + expr.UNDEFINED, expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.tags.renderTags(), + [originalName]: $this.tags.renderTags($this[rawTagsPropName]), }, }, { @@ -208,15 +208,15 @@ export class ResourceDecider { summary: 'Tag Manager which manages the tags for this resource', }, }, - initializer: (props: Expression) => + initializer: (_: Expression) => new CDK_CORE.TagManager( this.tagManagerVariant(variant), expr.lit(this.resource.cloudFormationType), - $E(props)[originalName], + expr.UNDEFINED, expr.object({ tagPropertyName: expr.lit(originalName) }), ), cfnValueToRender: { - [originalName]: $this.cdkTagManager.renderTags(), + [originalName]: $this.cdkTagManager.renderTags($this[originalName]), }, }, {