Skip to content

Commit 8718767

Browse files
authored
chore(spec2cdk): add tsdoc comment to describe the existance of a hardcoded list of resources in spec2cdk (#32616)
### Reason for this change Discovered this hardcoded list of resource types and did some investigation into the reasoning behind this very large hardcoded list of resources in tagging.ts. Discovered this list is non-updating list is proper and represents a perpetual state of truth for these resource. Legacy resource types often refers to resources added prior to the introduction of the Cloudformation Registry, so I added this comment to explain the purpose of this list so that future engineers will not need to perform the same investigation. ### Description of changes added a tsdoc comment ### Description of how you validated changes Just a comment ### Checklist - [ ] 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*
1 parent ff21117 commit 8718767

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

tools/@aws-cdk/spec2cdk/lib/cdk/tagging.ts

+12
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ export function resourceTaggabilityStyle(resource: Resource): TaggabilityStyle |
3232
return undefined;
3333
}
3434

35+
/**
36+
* Mapping of legacy taggable resources to their tag property name and variant
37+
*
38+
* Before the introduction of iTaggablev2 the CDK defined a `tags` property on constructs
39+
* which contained the tagManager, however in cases where the resource itself contained a
40+
* property named 'tags', the CDK would create a `tagsRaw` property to represent that CFN tags property.
41+
*
42+
* Upon the introduction of iTaggablev2, the CDK now uses the `cdkTagManager` property to manage tags.
43+
* This mapping of legacy resources is used to preserve the legacy behavior of applying tags so customers
44+
* who previously were tagging these constructs using `myConstruct.tags.setTag('key', 'value')` will
45+
* continue to be able to do so, without breaking changes.
46+
*/
3547
const LEGACY_TAGGABLES: Record<string, [string, TagInformation['variant']]> = {
3648
'AWS::ACMPCA::CertificateAuthority': ['Tags', 'standard'],
3749
'AWS::AccessAnalyzer::Analyzer': ['Tags', 'standard'],

0 commit comments

Comments
 (0)