UNPKG

cdk-monitoring-constructs

Version:

[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://m

82 lines 12.1 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecretsManagerAlarmFactory = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch"); const NUMBER_OF_DATAPOINTS = 1; class SecretsManagerAlarmFactory { constructor(alarmFactory) { this.alarmFactory = alarmFactory; } addMinSecretCountAlarm(metric, props, disambiguator) { return this.alarmFactory.addAlarm(metric, { treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.MISSING, datapointsToAlarm: props.datapointsToAlarm ?? NUMBER_OF_DATAPOINTS, comparisonOperator: props.comparisonOperatorOverride ?? aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD, ...props, disambiguator, threshold: props.minSecretCount, alarmNameSuffix: "Secrets-Count-Min", alarmDescription: "Number of secrets is too low.", }); } addMaxSecretCountAlarm(metric, props, disambiguator) { return this.alarmFactory.addAlarm(metric, { treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.MISSING, comparisonOperator: props.comparisonOperatorOverride ?? aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD, datapointsToAlarm: props.datapointsToAlarm ?? NUMBER_OF_DATAPOINTS, ...props, disambiguator, threshold: props.maxSecretCount, alarmNameSuffix: "Secrets-Count-Max", alarmDescription: "Number of secrets is too high.", }); } addChangeInSecretCountAlarm(metric, props, disambiguator) { return this.alarmFactory.addAlarm(metric, { ...props, disambiguator, treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.MISSING, threshold: props.requiredSecretCount, comparisonOperator: this.getComparisonOperator(props), datapointsToAlarm: props.datapointsToAlarm ?? NUMBER_OF_DATAPOINTS, alarmNameSuffix: "Secrets-Count-Change", alarmDescription: this.getDefaultDescription(props), }); } getDefaultDescription(props) { if (props.alarmWhenIncreased && props.alarmWhenDecreased) { return "Secret count: Secret count has changed."; } else if (props.alarmWhenIncreased) { return "Secret count: Secret count has increased."; } else if (props.alarmWhenDecreased) { return "Secret count: Secret count has decreased."; } else { throw new Error("You need to alarm when the value has increased, decreased, or both."); } } getComparisonOperator(props) { if (props.alarmWhenIncreased && props.alarmWhenDecreased) { return aws_cloudwatch_1.ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD; } else if (props.alarmWhenDecreased) { return aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD; } else if (props.alarmWhenIncreased) { return aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD; } else { throw new Error("You need to alarm when the value has increased, decreased, or both."); } } } exports.SecretsManagerAlarmFactory = SecretsManagerAlarmFactory; _a = JSII_RTTI_SYMBOL_1; SecretsManagerAlarmFactory[_a] = { fqn: "cdk-monitoring-constructs.SecretsManagerAlarmFactory", version: "10.0.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0c01hbmFnZXJBbGFybUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTZWNyZXRzTWFuYWdlckFsYXJtRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtEQUdvQztBQUtwQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQWlCL0IsTUFBYSwwQkFBMEI7SUFHckMsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQ3BCLE1BQThCLEVBQzlCLEtBQThCLEVBQzlCLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLGdCQUFnQixFQUNkLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxpQ0FBZ0IsQ0FBQyxPQUFPO1lBQzVELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxvQkFBb0I7WUFDbEUsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLG1CQUFtQjtZQUN4QyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQy9CLGVBQWUsRUFBRSxtQkFBbUI7WUFDcEMsZ0JBQWdCLEVBQUUsK0JBQStCO1NBQ2xELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsTUFBOEIsRUFDOUIsS0FBOEIsRUFDOUIsYUFBc0I7UUFFdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLE9BQU87WUFDNUQsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLHNCQUFzQjtZQUMzQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksb0JBQW9CO1lBQ2xFLEdBQUcsS0FBSztZQUNSLGFBQWE7WUFDYixTQUFTLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDL0IsZUFBZSxFQUFFLG1CQUFtQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQ0FBZ0M7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJCQUEyQixDQUN6QixNQUE4QixFQUM5QixLQUFtQyxFQUNuQyxhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLE9BQU87WUFDNUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDcEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUNyRCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksb0JBQW9CO1lBQ2xFLGVBQWUsRUFBRSxzQkFBc0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBbUM7UUFDL0QsSUFBSSxLQUFLLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekQsT0FBTyx5Q0FBeUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNwQyxPQUFPLDJDQUEyQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUNiLHFFQUFxRSxDQUN0RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFtQztRQUMvRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6RCxPQUFPLG1DQUFrQixDQUFDLCtDQUErQyxDQUFDO1FBQzVFLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sbUNBQWtCLENBQUMsbUJBQW1CLENBQUM7UUFDaEQsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDcEMsT0FBTyxtQ0FBa0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzs7QUEzRkgsZ0VBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBUcmVhdE1pc3NpbmdEYXRhLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHsgQWxhcm1GYWN0b3J5LCBDdXN0b21BbGFybVRocmVzaG9sZCB9IGZyb20gXCIuLi8uLi9hbGFybVwiO1xuaW1wb3J0IHsgTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB9IGZyb20gXCIuLi8uLi9tZXRyaWNcIjtcblxuY29uc3QgTlVNQkVSX09GX0RBVEFQT0lOVFMgPSAxO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pblNlY3JldENvdW50VGhyZXNob2xkIGV4dGVuZHMgQ3VzdG9tQWxhcm1UaHJlc2hvbGQge1xuICByZWFkb25seSBtaW5TZWNyZXRDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heFNlY3JldENvdW50VGhyZXNob2xkIGV4dGVuZHMgQ3VzdG9tQWxhcm1UaHJlc2hvbGQge1xuICByZWFkb25seSBtYXhTZWNyZXRDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZUluU2VjcmV0Q291bnRUaHJlc2hvbGQgZXh0ZW5kcyBDdXN0b21BbGFybVRocmVzaG9sZCB7XG4gIHJlYWRvbmx5IHJlcXVpcmVkU2VjcmV0Q291bnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYWxhcm1XaGVuSW5jcmVhc2VkOiBib29sZWFuO1xuICByZWFkb25seSBhbGFybVdoZW5EZWNyZWFzZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxEZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3JldHNNYW5hZ2VyQWxhcm1GYWN0b3J5IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsYXJtRmFjdG9yeTogQWxhcm1GYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKGFsYXJtRmFjdG9yeTogQWxhcm1GYWN0b3J5KSB7XG4gICAgdGhpcy5hbGFybUZhY3RvcnkgPSBhbGFybUZhY3Rvcnk7XG4gIH1cblxuICBhZGRNaW5TZWNyZXRDb3VudEFsYXJtKFxuICAgIG1ldHJpYzogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCxcbiAgICBwcm9wczogTWluU2VjcmV0Q291bnRUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1GYWN0b3J5LmFkZEFsYXJtKG1ldHJpYywge1xuICAgICAgdHJlYXRNaXNzaW5nRGF0YTpcbiAgICAgICAgcHJvcHMudHJlYXRNaXNzaW5nRGF0YU92ZXJyaWRlID8/IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybSA/PyBOVU1CRVJfT0ZfREFUQVBPSU5UUyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjpcbiAgICAgICAgcHJvcHMuY29tcGFyaXNvbk9wZXJhdG9yT3ZlcnJpZGUgPz9cbiAgICAgICAgQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRpc2FtYmlndWF0b3IsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLm1pblNlY3JldENvdW50LFxuICAgICAgYWxhcm1OYW1lU3VmZml4OiBcIlNlY3JldHMtQ291bnQtTWluXCIsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBzZWNyZXRzIGlzIHRvbyBsb3cuXCIsXG4gICAgfSk7XG4gIH1cblxuICBhZGRNYXhTZWNyZXRDb3VudEFsYXJtKFxuICAgIG1ldHJpYzogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCxcbiAgICBwcm9wczogTWF4U2VjcmV0Q291bnRUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1GYWN0b3J5LmFkZEFsYXJtKG1ldHJpYywge1xuICAgICAgdHJlYXRNaXNzaW5nRGF0YTpcbiAgICAgICAgcHJvcHMudHJlYXRNaXNzaW5nRGF0YU92ZXJyaWRlID8/IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjpcbiAgICAgICAgcHJvcHMuY29tcGFyaXNvbk9wZXJhdG9yT3ZlcnJpZGUgPz9cbiAgICAgICAgQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBkYXRhcG9pbnRzVG9BbGFybTogcHJvcHMuZGF0YXBvaW50c1RvQWxhcm0gPz8gTlVNQkVSX09GX0RBVEFQT0lOVFMsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRpc2FtYmlndWF0b3IsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLm1heFNlY3JldENvdW50LFxuICAgICAgYWxhcm1OYW1lU3VmZml4OiBcIlNlY3JldHMtQ291bnQtTWF4XCIsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBzZWNyZXRzIGlzIHRvbyBoaWdoLlwiLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkQ2hhbmdlSW5TZWNyZXRDb3VudEFsYXJtKFxuICAgIG1ldHJpYzogTWV0cmljV2l0aEFsYXJtU3VwcG9ydCxcbiAgICBwcm9wczogQ2hhbmdlSW5TZWNyZXRDb3VudFRocmVzaG9sZCxcbiAgICBkaXNhbWJpZ3VhdG9yPzogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5hbGFybUZhY3RvcnkuYWRkQWxhcm0obWV0cmljLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRpc2FtYmlndWF0b3IsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOlxuICAgICAgICBwcm9wcy50cmVhdE1pc3NpbmdEYXRhT3ZlcnJpZGUgPz8gVHJlYXRNaXNzaW5nRGF0YS5NSVNTSU5HLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5yZXF1aXJlZFNlY3JldENvdW50LFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiB0aGlzLmdldENvbXBhcmlzb25PcGVyYXRvcihwcm9wcyksXG4gICAgICBkYXRhcG9pbnRzVG9BbGFybTogcHJvcHMuZGF0YXBvaW50c1RvQWxhcm0gPz8gTlVNQkVSX09GX0RBVEFQT0lOVFMsXG4gICAgICBhbGFybU5hbWVTdWZmaXg6IFwiU2VjcmV0cy1Db3VudC1DaGFuZ2VcIixcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IHRoaXMuZ2V0RGVmYXVsdERlc2NyaXB0aW9uKHByb3BzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdERlc2NyaXB0aW9uKHByb3BzOiBDaGFuZ2VJblNlY3JldENvdW50VGhyZXNob2xkKSB7XG4gICAgaWYgKHByb3BzLmFsYXJtV2hlbkluY3JlYXNlZCAmJiBwcm9wcy5hbGFybVdoZW5EZWNyZWFzZWQpIHtcbiAgICAgIHJldHVybiBcIlNlY3JldCBjb3VudDogU2VjcmV0IGNvdW50IGhhcyBjaGFuZ2VkLlwiO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYWxhcm1XaGVuSW5jcmVhc2VkKSB7XG4gICAgICByZXR1cm4gXCJTZWNyZXQgY291bnQ6IFNlY3JldCBjb3VudCBoYXMgaW5jcmVhc2VkLlwiO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYWxhcm1XaGVuRGVjcmVhc2VkKSB7XG4gICAgICByZXR1cm4gXCJTZWNyZXQgY291bnQ6IFNlY3JldCBjb3VudCBoYXMgZGVjcmVhc2VkLlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiWW91IG5lZWQgdG8gYWxhcm0gd2hlbiB0aGUgdmFsdWUgaGFzIGluY3JlYXNlZCwgZGVjcmVhc2VkLCBvciBib3RoLlwiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBhcmlzb25PcGVyYXRvcihwcm9wczogQ2hhbmdlSW5TZWNyZXRDb3VudFRocmVzaG9sZCkge1xuICAgIGlmIChwcm9wcy5hbGFybVdoZW5JbmNyZWFzZWQgJiYgcHJvcHMuYWxhcm1XaGVuRGVjcmVhc2VkKSB7XG4gICAgICByZXR1cm4gQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9MT1dFUl9PUl9HUkVBVEVSX1RIQU5fVVBQRVJfVEhSRVNIT0xEO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYWxhcm1XaGVuRGVjcmVhc2VkKSB7XG4gICAgICByZXR1cm4gQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQ7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5hbGFybVdoZW5JbmNyZWFzZWQpIHtcbiAgICAgIHJldHVybiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBuZWVkIHRvIGFsYXJtIHdoZW4gdGhlIHZhbHVlIGhhcyBpbmNyZWFzZWQsIGRlY3JlYXNlZCwgb3IgYm90aC5cIixcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=