cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
82 lines • 12 kB
JavaScript
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
;