@renovosolutions/cdk-aspects-library-tags
Version:
A library of CDK aspects for tagging AWS resources
28 lines • 2.86 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApplyKmsTags = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
/**
* An aspect that applies CloudFormation tags to all KMS keys in the given scope.
*
* This is useful because KMS keys are not automatically tagged by CloudFormation,
* which makes them hard to track and manage.
*/
class ApplyKmsTags {
constructor() { }
/**
* Visits each construct in the scope and applies the tags if the construct is a KMS key.
*/
visit(node) {
if (node instanceof aws_cdk_lib_1.CfnResource && node.cfnResourceType === 'AWS::KMS::Key') {
aws_cdk_lib_1.Tags.of(node).add('cfn:stack-name', aws_cdk_lib_1.Stack.of(node).stackName);
aws_cdk_lib_1.Tags.of(node).add('cfn:logical-id', node.logicalId);
}
}
}
exports.ApplyKmsTags = ApplyKmsTags;
_a = JSII_RTTI_SYMBOL_1;
ApplyKmsTags[_a] = { fqn: "@renovosolutions/cdk-aspects-library-tags.ApplyKmsTags", version: "0.0.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zdGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9rbXN0YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQWdFO0FBR2hFOzs7OztHQUtHO0FBQ0gsTUFBYSxZQUFZO0lBQ3ZCLGdCQUFlLENBQUM7SUFFaEI7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBZ0I7UUFDcEIsSUFBSSxJQUFJLFlBQVkseUJBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQzVFLGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDOztBQVhILG9DQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIElBc3BlY3QsIFN0YWNrLCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEFuIGFzcGVjdCB0aGF0IGFwcGxpZXMgQ2xvdWRGb3JtYXRpb24gdGFncyB0byBhbGwgS01TIGtleXMgaW4gdGhlIGdpdmVuIHNjb3BlLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGJlY2F1c2UgS01TIGtleXMgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IHRhZ2dlZCBieSBDbG91ZEZvcm1hdGlvbixcbiAqIHdoaWNoIG1ha2VzIHRoZW0gaGFyZCB0byB0cmFjayBhbmQgbWFuYWdlLlxuICovXG5leHBvcnQgY2xhc3MgQXBwbHlLbXNUYWdzIGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogVmlzaXRzIGVhY2ggY29uc3RydWN0IGluIHRoZSBzY29wZSBhbmQgYXBwbGllcyB0aGUgdGFncyBpZiB0aGUgY29uc3RydWN0IGlzIGEgS01TIGtleS5cbiAgICovXG4gIHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpIHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIG5vZGUuY2ZuUmVzb3VyY2VUeXBlID09PSAnQVdTOjpLTVM6OktleScpIHtcbiAgICAgIFRhZ3Mub2Yobm9kZSkuYWRkKCdjZm46c3RhY2stbmFtZScsIFN0YWNrLm9mKG5vZGUpLnN0YWNrTmFtZSk7XG4gICAgICBUYWdzLm9mKG5vZGUpLmFkZCgnY2ZuOmxvZ2ljYWwtaWQnLCBub2RlLmxvZ2ljYWxJZCk7XG4gICAgfVxuICB9XG59XG4iXX0=