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 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: "9.15.2" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0c01hbmFnZXJBbGFybUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTZWNyZXRzTWFuYWdlckFsYXJtRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtEQUdvQztBQUtwQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQWlCL0IsTUFBYSwwQkFBMEI7SUFHckMsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQ3BCLE1BQThCLEVBQzlCLEtBQThCLEVBQzlCLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLGdCQUFnQixFQUNkLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxpQ0FBZ0IsQ0FBQyxPQUFPO1lBQzVELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxvQkFBb0I7WUFDbEUsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLG1CQUFtQjtZQUN4QyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQy9CLGVBQWUsRUFBRSxtQkFBbUI7WUFDcEMsZ0JBQWdCLEVBQUUsK0JBQStCO1NBQ2xELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsTUFBOEIsRUFDOUIsS0FBOEIsRUFDOUIsYUFBc0I7UUFFdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLE9BQU87WUFDNUQsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLHNCQUFzQjtZQUMzQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksb0JBQW9CO1lBQ2xFLEdBQUcsS0FBSztZQUNSLGFBQWE7WUFDYixTQUFTLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDL0IsZUFBZSxFQUFFLG1CQUFtQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQ0FBZ0M7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJCQUEyQixDQUN6QixNQUE4QixFQUM5QixLQUFtQyxFQUNuQyxhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLE9BQU87WUFDNUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDcEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUNyRCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksb0JBQW9CO1lBQ2xFLGVBQWUsRUFBRSxzQkFBc0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBbUM7UUFDL0QsSUFBSSxLQUFLLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQ3hELE9BQU8seUNBQXlDLENBQUM7U0FDbEQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtZQUNuQyxPQUFPLDJDQUEyQyxDQUFDO1NBQ3BEO2FBQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDbkMsT0FBTywyQ0FBMkMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixxRUFBcUUsQ0FDdEUsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQW1DO1FBQy9ELElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtZQUN4RCxPQUFPLG1DQUFrQixDQUFDLCtDQUErQyxDQUFDO1NBQzNFO2FBQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDbkMsT0FBTyxtQ0FBa0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUMvQzthQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQ25DLE9BQU8sbUNBQWtCLENBQUMsc0JBQXNCLENBQUM7U0FDbEQ7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7U0FDSDtJQUNILENBQUM7O0FBM0ZILGdFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgVHJlYXRNaXNzaW5nRGF0YSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5cbmltcG9ydCB7IEFsYXJtRmFjdG9yeSwgQ3VzdG9tQWxhcm1UaHJlc2hvbGQgfSBmcm9tIFwiLi4vLi4vYWxhcm1cIjtcbmltcG9ydCB7IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQgfSBmcm9tIFwiLi4vLi4vbWV0cmljXCI7XG5cbmNvbnN0IE5VTUJFUl9PRl9EQVRBUE9JTlRTID0gMTtcblxuZXhwb3J0IGludGVyZmFjZSBNaW5TZWNyZXRDb3VudFRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWluU2VjcmV0Q291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXhTZWNyZXRDb3VudFRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4U2VjcmV0Q291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VJblNlY3JldENvdW50VGhyZXNob2xkIGV4dGVuZHMgQ3VzdG9tQWxhcm1UaHJlc2hvbGQge1xuICByZWFkb25seSByZXF1aXJlZFNlY3JldENvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IGFsYXJtV2hlbkluY3JlYXNlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYWxhcm1XaGVuRGVjcmVhc2VkOiBib29sZWFuO1xuICByZWFkb25seSBhZGRpdGlvbmFsRGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWNyZXRzTWFuYWdlckFsYXJtRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcihhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeSkge1xuICAgIHRoaXMuYWxhcm1GYWN0b3J5ID0gYWxhcm1GYWN0b3J5O1xuICB9XG5cbiAgYWRkTWluU2VjcmV0Q291bnRBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IE1pblNlY3JldENvdW50VGhyZXNob2xkLFxuICAgIGRpc2FtYmlndWF0b3I/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk1JU1NJTkcsXG4gICAgICBkYXRhcG9pbnRzVG9BbGFybTogcHJvcHMuZGF0YXBvaW50c1RvQWxhcm0gPz8gTlVNQkVSX09GX0RBVEFQT0lOVFMsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5taW5TZWNyZXRDb3VudCxcbiAgICAgIGFsYXJtTmFtZVN1ZmZpeDogXCJTZWNyZXRzLUNvdW50LU1pblwiLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogXCJOdW1iZXIgb2Ygc2VjcmV0cyBpcyB0b28gbG93LlwiLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkTWF4U2VjcmV0Q291bnRBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IE1heFNlY3JldENvdW50VGhyZXNob2xkLFxuICAgIGRpc2FtYmlndWF0b3I/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk1JU1NJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZGF0YXBvaW50c1RvQWxhcm06IHByb3BzLmRhdGFwb2ludHNUb0FsYXJtID8/IE5VTUJFUl9PRl9EQVRBUE9JTlRTLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5tYXhTZWNyZXRDb3VudCxcbiAgICAgIGFsYXJtTmFtZVN1ZmZpeDogXCJTZWNyZXRzLUNvdW50LU1heFwiLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogXCJOdW1iZXIgb2Ygc2VjcmV0cyBpcyB0b28gaGlnaC5cIixcbiAgICB9KTtcbiAgfVxuXG4gIGFkZENoYW5nZUluU2VjcmV0Q291bnRBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IENoYW5nZUluU2VjcmV0Q291bnRUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1GYWN0b3J5LmFkZEFsYXJtKG1ldHJpYywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTpcbiAgICAgICAgcHJvcHMudHJlYXRNaXNzaW5nRGF0YU92ZXJyaWRlID8/IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMucmVxdWlyZWRTZWNyZXRDb3VudCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogdGhpcy5nZXRDb21wYXJpc29uT3BlcmF0b3IocHJvcHMpLFxuICAgICAgZGF0YXBvaW50c1RvQWxhcm06IHByb3BzLmRhdGFwb2ludHNUb0FsYXJtID8/IE5VTUJFUl9PRl9EQVRBUE9JTlRTLFxuICAgICAgYWxhcm1OYW1lU3VmZml4OiBcIlNlY3JldHMtQ291bnQtQ2hhbmdlXCIsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiB0aGlzLmdldERlZmF1bHREZXNjcmlwdGlvbihwcm9wcyksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHREZXNjcmlwdGlvbihwcm9wczogQ2hhbmdlSW5TZWNyZXRDb3VudFRocmVzaG9sZCkge1xuICAgIGlmIChwcm9wcy5hbGFybVdoZW5JbmNyZWFzZWQgJiYgcHJvcHMuYWxhcm1XaGVuRGVjcmVhc2VkKSB7XG4gICAgICByZXR1cm4gXCJTZWNyZXQgY291bnQ6IFNlY3JldCBjb3VudCBoYXMgY2hhbmdlZC5cIjtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmFsYXJtV2hlbkluY3JlYXNlZCkge1xuICAgICAgcmV0dXJuIFwiU2VjcmV0IGNvdW50OiBTZWNyZXQgY291bnQgaGFzIGluY3JlYXNlZC5cIjtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmFsYXJtV2hlbkRlY3JlYXNlZCkge1xuICAgICAgcmV0dXJuIFwiU2VjcmV0IGNvdW50OiBTZWNyZXQgY291bnQgaGFzIGRlY3JlYXNlZC5cIjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBuZWVkIHRvIGFsYXJtIHdoZW4gdGhlIHZhbHVlIGhhcyBpbmNyZWFzZWQsIGRlY3JlYXNlZCwgb3IgYm90aC5cIixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21wYXJpc29uT3BlcmF0b3IocHJvcHM6IENoYW5nZUluU2VjcmV0Q291bnRUaHJlc2hvbGQpIHtcbiAgICBpZiAocHJvcHMuYWxhcm1XaGVuSW5jcmVhc2VkICYmIHByb3BzLmFsYXJtV2hlbkRlY3JlYXNlZCkge1xuICAgICAgcmV0dXJuIENvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fTE9XRVJfT1JfR1JFQVRFUl9USEFOX1VQUEVSX1RIUkVTSE9MRDtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmFsYXJtV2hlbkRlY3JlYXNlZCkge1xuICAgICAgcmV0dXJuIENvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xEO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYWxhcm1XaGVuSW5jcmVhc2VkKSB7XG4gICAgICByZXR1cm4gQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJZb3UgbmVlZCB0byBhbGFybSB3aGVuIHRoZSB2YWx1ZSBoYXMgaW5jcmVhc2VkLCBkZWNyZWFzZWQsIG9yIGJvdGguXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19