UNPKG

@enfo/aws-cdkompliance

Version:

Tagging and compliant resources using the CDK

45 lines 3.32 kB
"use strict"; 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==