@enfo/aws-cdkompliance
Version:
Tagging and compliant resources using the CDK
45 lines • 3.32 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Key = exports.defaultKeyProps = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_kms_1 = require("aws-cdk-lib/aws-kms");
/**
* Properties for a new Compliant KMS Key
*/
exports.defaultKeyProps = {
enableKeyRotation: true
};
/**
* Compliant KMS Key.
*
* See README for usage examples
*/
class Key extends aws_kms_1.Key {
constructor(scope, id, props) {
super(scope, id, {
...exports.defaultKeyProps,
...props
});
this.calculatedProps = {
...exports.defaultKeyProps,
...props
};
this.node.addValidation({
validate: () => {
return [
...this.checkEncryption()
];
}
});
}
checkEncryption() {
return this.calculatedProps.enableKeyRotation
? []
: ['enableKeyRotation must be true'];
}
}
exports.Key = Key;
_a = JSII_RTTI_SYMBOL_1;
Key[_a] = { fqn: "@enfo/aws-cdkompliance.Key", version: "1.1.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia21zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQTZEO0FBRzdEOztHQUVHO0FBQ1UsUUFBQSxlQUFlLEdBQWE7SUFDdkMsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsR0FBSSxTQUFRLGFBQU07SUFFN0IsWUFBYSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQjtRQUN6RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsdUJBQWU7WUFDbEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLHVCQUFlO1lBQ2xCLEdBQUcsS0FBSztTQUNULENBQUE7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN0QixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLE9BQU87b0JBQ0wsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFO2lCQUMxQixDQUFBO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUI7WUFDM0MsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7O0FBekJILGtCQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSBhcyBLTVNLZXksIEtleVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcydcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgQ29tcGxpYW50IEtNUyBLZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRLZXlQcm9wczogS2V5UHJvcHMgPSB7XG4gIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlXG59XG5cbi8qKlxuICogQ29tcGxpYW50IEtNUyBLZXkuXG4gKlxuICogU2VlIFJFQURNRSBmb3IgdXNhZ2UgZXhhbXBsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEtleSBleHRlbmRzIEtNU0tleSB7XG4gIHByb3RlY3RlZCBjYWxjdWxhdGVkUHJvcHM6IEtleVByb3BzXG4gIGNvbnN0cnVjdG9yIChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEtleVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5kZWZhdWx0S2V5UHJvcHMsXG4gICAgICAuLi5wcm9wc1xuICAgIH0pXG4gICAgdGhpcy5jYWxjdWxhdGVkUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0S2V5UHJvcHMsXG4gICAgICAuLi5wcm9wc1xuICAgIH1cblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHtcbiAgICAgIHZhbGlkYXRlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4udGhpcy5jaGVja0VuY3J5cHRpb24oKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0VuY3J5cHRpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZWRQcm9wcy5lbmFibGVLZXlSb3RhdGlvblxuICAgICAgPyBbXVxuICAgICAgOiBbJ2VuYWJsZUtleVJvdGF0aW9uIG11c3QgYmUgdHJ1ZSddXG4gIH1cbn1cbiJdfQ==