UNPKG

@enfo/aws-cdkompliance

Version:

Tagging and compliant resources using the CDK

45 lines 3.49 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogGroup = exports.defaultLogGroupProps = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_logs_1 = require("aws-cdk-lib/aws-logs"); /** * Properties for a new Compliant Log Group */ exports.defaultLogGroupProps = { retention: aws_logs_1.RetentionDays.ONE_MONTH }; /** * Compliant Log Group * * See README for usage examples */ class LogGroup extends aws_logs_1.LogGroup { constructor(scope, id, props) { super(scope, id, { ...exports.defaultLogGroupProps, ...props }); this.calculatedProps = { ...exports.defaultLogGroupProps, ...props }; this.node.addValidation({ validate: () => { return [ ...this.checkRetention() ]; } }); } checkRetention() { return this.calculatedProps.retention ? [] : ['retention must be set']; } } exports.LogGroup = LogGroup; _a = JSII_RTTI_SYMBOL_1; LogGroup[_a] = { fqn: "@enfo/aws-cdkompliance.LogGroup", version: "1.1.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFJNkI7QUFHN0I7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLFNBQVMsRUFBRSx3QkFBYSxDQUFDLFNBQVM7Q0FDbkMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVTtJQUV0QyxZQUFhLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyw0QkFBb0I7WUFDdkIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLDRCQUFvQjtZQUN2QixHQUFHLEtBQUs7U0FDVCxDQUFBO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdEIsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixPQUFPO29CQUNMLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtpQkFDekIsQ0FBQTtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRVMsY0FBYztRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztZQUNuQyxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDL0IsQ0FBQzs7QUF6QkgsNEJBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTG9nR3JvdXAgYXMgQ1dMb2dHcm91cCxcbiAgTG9nR3JvdXBQcm9wcyxcbiAgUmV0ZW50aW9uRGF5c1xufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncydcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgQ29tcGxpYW50IExvZyBHcm91cFxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ0dyb3VwUHJvcHMgPSB7XG4gIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEhcbn1cblxuLyoqXG4gKiBDb21wbGlhbnQgTG9nIEdyb3VwXG4gKlxuICogU2VlIFJFQURNRSBmb3IgdXNhZ2UgZXhhbXBsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIExvZ0dyb3VwIGV4dGVuZHMgQ1dMb2dHcm91cCB7XG4gIHByb3RlY3RlZCBjYWxjdWxhdGVkUHJvcHM6IExvZ0dyb3VwUHJvcHNcbiAgY29uc3RydWN0b3IgKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogTG9nR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4uZGVmYXVsdExvZ0dyb3VwUHJvcHMsXG4gICAgICAuLi5wcm9wc1xuICAgIH0pXG4gICAgdGhpcy5jYWxjdWxhdGVkUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0TG9nR3JvdXBQcm9wcyxcbiAgICAgIC4uLnByb3BzXG4gICAgfVxuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oe1xuICAgICAgdmFsaWRhdGU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi50aGlzLmNoZWNrUmV0ZW50aW9uKClcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tSZXRlbnRpb24gKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVkUHJvcHMucmV0ZW50aW9uXG4gICAgICA/IFtdXG4gICAgICA6IFsncmV0ZW50aW9uIG11c3QgYmUgc2V0J11cbiAgfVxufVxuIl19