cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
95 lines • 15.8 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueueAlarmFactory = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
class QueueAlarmFactory {
constructor(alarmFactory) {
this.alarmFactory = alarmFactory;
}
addMinQueueMessageCountAlarm(metric, props, disambiguator) {
return this.alarmFactory.addAlarm(metric, {
treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.MISSING,
comparisonOperator: props.comparisonOperatorOverride ??
aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD,
...props,
disambiguator,
threshold: props.minMessageCount,
alarmNameSuffix: "Queue-Message-Count-Min",
alarmDescription: `Number of messages in the queue is too low.`,
// we will dedupe any kind of message count issue to the same ticket
alarmDedupeStringSuffix: "AnyQueueMessageCount",
});
}
addMaxQueueMessageCountAlarm(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,
...props,
disambiguator,
threshold: props.maxMessageCount,
alarmNameSuffix: "Queue-Message-Count-Max",
alarmDescription: `Number of messages in the queue is too high.`,
// we will dedupe any kind of message count issue to the same ticket
alarmDedupeStringSuffix: "AnyQueueMessageCount",
});
}
addMaxQueueMessageAgeAlarm(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,
...props,
disambiguator,
threshold: props.maxAgeInSeconds,
alarmNameSuffix: "Queue-Message-Age-Max",
alarmDescription: `Age of the oldest message in the queue is too high.`,
// we will dedupe any kind of message age issue to the same ticket
alarmDedupeStringSuffix: "AnyQueueMessageAge",
});
}
addMaxQueueTimeToDrainMessagesAlarm(metric, props, disambiguator) {
return this.alarmFactory.addAlarm(metric, {
treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
comparisonOperator: props.comparisonOperatorOverride ??
aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
...props,
disambiguator,
threshold: props.maxTimeToDrain.toSeconds(),
alarmNameSuffix: "Queue-TimeToDrain-Max",
alarmDescription: `Time to drain messages in the queue is too high.`,
});
}
addMinQueueIncomingMessagesCountAlarm(metric, props, disambiguator) {
return this.alarmFactory.addAlarm(metric, {
treatMissingData: props.treatMissingDataOverride ?? aws_cloudwatch_1.TreatMissingData.MISSING,
comparisonOperator: props.comparisonOperatorOverride ??
aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD,
...props,
disambiguator,
threshold: props.minIncomingMessagesCount,
alarmNameSuffix: "Queue-Incoming-Messages-Count-Min",
alarmDescription: `Number of incoming messages into the queue is too low.`,
// we will dedupe any kind of min message issues to the same ticket
alarmDedupeStringSuffix: "AnyQueueMinIncomingMessages",
});
}
addMaxQueueIncomingMessagesCountAlarm(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,
...props,
disambiguator,
threshold: props.maxIncomingMessagesCount,
alarmNameSuffix: "Queue-Incoming-Messages-Count-Max",
alarmDescription: `Number of incoming messages into the queue is too high.`,
});
}
}
exports.QueueAlarmFactory = QueueAlarmFactory;
_a = JSII_RTTI_SYMBOL_1;
QueueAlarmFactory[_a] = { fqn: "cdk-monitoring-constructs.QueueAlarmFactory", version: "9.15.2" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVldWVBbGFybUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJRdWV1ZUFsYXJtRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtEQUdvQztBQStCcEMsTUFBYSxpQkFBaUI7SUFHNUIsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsNEJBQTRCLENBQzFCLE1BQThCLEVBQzlCLEtBQStCLEVBQy9CLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLGdCQUFnQixFQUNkLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxpQ0FBZ0IsQ0FBQyxPQUFPO1lBQzVELGtCQUFrQixFQUNoQixLQUFLLENBQUMsMEJBQTBCO2dCQUNoQyxtQ0FBa0IsQ0FBQyxtQkFBbUI7WUFDeEMsR0FBRyxLQUFLO1lBQ1IsYUFBYTtZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNoQyxlQUFlLEVBQUUseUJBQXlCO1lBQzFDLGdCQUFnQixFQUFFLDZDQUE2QztZQUMvRCxvRUFBb0U7WUFDcEUsdUJBQXVCLEVBQUUsc0JBQXNCO1NBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0QkFBNEIsQ0FDMUIsTUFBOEIsRUFDOUIsS0FBK0IsRUFDL0IsYUFBc0I7UUFFdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQ2QsS0FBSyxDQUFDLHdCQUF3QixJQUFJLGlDQUFnQixDQUFDLE9BQU87WUFDNUQsa0JBQWtCLEVBQ2hCLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ2hDLG1DQUFrQixDQUFDLHNCQUFzQjtZQUMzQyxHQUFHLEtBQUs7WUFDUixhQUFhO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ2hDLGVBQWUsRUFBRSx5QkFBeUI7WUFDMUMsZ0JBQWdCLEVBQUUsOENBQThDO1lBQ2hFLG9FQUFvRTtZQUNwRSx1QkFBdUIsRUFBRSxzQkFBc0I7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBCQUEwQixDQUN4QixNQUE4QixFQUM5QixLQUE2QixFQUM3QixhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxnQkFBZ0IsRUFDZCxLQUFLLENBQUMsd0JBQXdCLElBQUksaUNBQWdCLENBQUMsT0FBTztZQUM1RCxrQkFBa0IsRUFDaEIsS0FBSyxDQUFDLDBCQUEwQjtnQkFDaEMsbUNBQWtCLENBQUMsc0JBQXNCO1lBQzNDLEdBQUcsS0FBSztZQUNSLGFBQWE7WUFDYixTQUFTLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDaEMsZUFBZSxFQUFFLHVCQUF1QjtZQUN4QyxnQkFBZ0IsRUFBRSxxREFBcUQ7WUFDdkUsa0VBQWtFO1lBQ2xFLHVCQUF1QixFQUFFLG9CQUFvQjtTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUNBQW1DLENBQ2pDLE1BQThCLEVBQzlCLEtBQThCLEVBQzlCLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLGdCQUFnQixFQUNkLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxpQ0FBZ0IsQ0FBQyxhQUFhO1lBQ2xFLGtCQUFrQixFQUNoQixLQUFLLENBQUMsMEJBQTBCO2dCQUNoQyxtQ0FBa0IsQ0FBQyxzQkFBc0I7WUFDM0MsR0FBRyxLQUFLO1lBQ1IsYUFBYTtZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxlQUFlLEVBQUUsdUJBQXVCO1lBQ3hDLGdCQUFnQixFQUFFLGtEQUFrRDtTQUNyRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUNBQXFDLENBQ25DLE1BQThCLEVBQzlCLEtBQXdDLEVBQ3hDLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLGdCQUFnQixFQUNkLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxpQ0FBZ0IsQ0FBQyxPQUFPO1lBQzVELGtCQUFrQixFQUNoQixLQUFLLENBQUMsMEJBQTBCO2dCQUNoQyxtQ0FBa0IsQ0FBQyxtQkFBbUI7WUFDeEMsR0FBRyxLQUFLO1lBQ1IsYUFBYTtZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsd0JBQXdCO1lBQ3pDLGVBQWUsRUFBRSxtQ0FBbUM7WUFDcEQsZ0JBQWdCLEVBQUUsd0RBQXdEO1lBQzFFLG1FQUFtRTtZQUNuRSx1QkFBdUIsRUFBRSw2QkFBNkI7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFDQUFxQyxDQUNuQyxNQUE4QixFQUM5QixLQUF3QyxFQUN4QyxhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxnQkFBZ0IsRUFDZCxLQUFLLENBQUMsd0JBQXdCLElBQUksaUNBQWdCLENBQUMsT0FBTztZQUM1RCxrQkFBa0IsRUFDaEIsS0FBSyxDQUFDLDBCQUEwQjtnQkFDaEMsbUNBQWtCLENBQUMsc0JBQXNCO1lBQzNDLEdBQUcsS0FBSztZQUNSLGFBQWE7WUFDYixTQUFTLEVBQUUsS0FBSyxDQUFDLHdCQUF3QjtZQUN6QyxlQUFlLEVBQUUsbUNBQW1DO1lBQ3BELGdCQUFnQixFQUFFLHlEQUF5RDtTQUM1RSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9ISCw4Q0FnSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBUcmVhdE1pc3NpbmdEYXRhLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHsgQWxhcm1GYWN0b3J5LCBDdXN0b21BbGFybVRocmVzaG9sZCB9IGZyb20gXCIuLi8uLi9hbGFybVwiO1xuaW1wb3J0IHsgTWV0cmljV2l0aEFsYXJtU3VwcG9ydCB9IGZyb20gXCIuLi8uLi9tZXRyaWNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNaW5NZXNzYWdlQ291bnRUaHJlc2hvbGQgZXh0ZW5kcyBDdXN0b21BbGFybVRocmVzaG9sZCB7XG4gIHJlYWRvbmx5IG1pbk1lc3NhZ2VDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heE1lc3NhZ2VDb3VudFRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4TWVzc2FnZUNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF4TWVzc2FnZUFnZVRocmVzaG9sZCBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4QWdlSW5TZWNvbmRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF4VGltZVRvRHJhaW5UaHJlc2hvbGQgZXh0ZW5kcyBDdXN0b21BbGFybVRocmVzaG9sZCB7XG4gIHJlYWRvbmx5IG1heFRpbWVUb0RyYWluOiBEdXJhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW5JbmNvbWluZ01lc3NhZ2VzQ291bnRUaHJlc2hvbGRcbiAgZXh0ZW5kcyBDdXN0b21BbGFybVRocmVzaG9sZCB7XG4gIHJlYWRvbmx5IG1pbkluY29taW5nTWVzc2FnZXNDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heEluY29taW5nTWVzc2FnZXNDb3VudFRocmVzaG9sZFxuICBleHRlbmRzIEN1c3RvbUFsYXJtVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgbWF4SW5jb21pbmdNZXNzYWdlc0NvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBRdWV1ZUFsYXJtRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcihhbGFybUZhY3Rvcnk6IEFsYXJtRmFjdG9yeSkge1xuICAgIHRoaXMuYWxhcm1GYWN0b3J5ID0gYWxhcm1GYWN0b3J5O1xuICB9XG5cbiAgYWRkTWluUXVldWVNZXNzYWdlQ291bnRBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IE1pbk1lc3NhZ2VDb3VudFRocmVzaG9sZCxcbiAgICBkaXNhbWJpZ3VhdG9yPzogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5hbGFybUZhY3RvcnkuYWRkQWxhcm0obWV0cmljLCB7XG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOlxuICAgICAgICBwcm9wcy50cmVhdE1pc3NpbmdEYXRhT3ZlcnJpZGUgPz8gVHJlYXRNaXNzaW5nRGF0YS5NSVNTSU5HLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOlxuICAgICAgICBwcm9wcy5jb21wYXJpc29uT3BlcmF0b3JPdmVycmlkZSA/P1xuICAgICAgICBDb21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGlzYW1iaWd1YXRvcixcbiAgICAgIHRocmVzaG9sZDogcHJvcHMubWluTWVzc2FnZUNvdW50LFxuICAgICAgYWxhcm1OYW1lU3VmZml4OiBcIlF1ZXVlLU1lc3NhZ2UtQ291bnQtTWluXCIsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgTnVtYmVyIG9mIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSBpcyB0b28gbG93LmAsXG4gICAgICAvLyB3ZSB3aWxsIGRlZHVwZSBhbnkga2luZCBvZiBtZXNzYWdlIGNvdW50IGlzc3VlIHRvIHRoZSBzYW1lIHRpY2tldFxuICAgICAgYWxhcm1EZWR1cGVTdHJpbmdTdWZmaXg6IFwiQW55UXVldWVNZXNzYWdlQ291bnRcIixcbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1heFF1ZXVlTWVzc2FnZUNvdW50QWxhcm0oXG4gICAgbWV0cmljOiBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0LFxuICAgIHByb3BzOiBNYXhNZXNzYWdlQ291bnRUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1GYWN0b3J5LmFkZEFsYXJtKG1ldHJpYywge1xuICAgICAgdHJlYXRNaXNzaW5nRGF0YTpcbiAgICAgICAgcHJvcHMudHJlYXRNaXNzaW5nRGF0YU92ZXJyaWRlID8/IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjpcbiAgICAgICAgcHJvcHMuY29tcGFyaXNvbk9wZXJhdG9yT3ZlcnJpZGUgPz9cbiAgICAgICAgQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRpc2FtYmlndWF0b3IsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLm1heE1lc3NhZ2VDb3VudCxcbiAgICAgIGFsYXJtTmFtZVN1ZmZpeDogXCJRdWV1ZS1NZXNzYWdlLUNvdW50LU1heFwiLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYE51bWJlciBvZiBtZXNzYWdlcyBpbiB0aGUgcXVldWUgaXMgdG9vIGhpZ2guYCxcbiAgICAgIC8vIHdlIHdpbGwgZGVkdXBlIGFueSBraW5kIG9mIG1lc3NhZ2UgY291bnQgaXNzdWUgdG8gdGhlIHNhbWUgdGlja2V0XG4gICAgICBhbGFybURlZHVwZVN0cmluZ1N1ZmZpeDogXCJBbnlRdWV1ZU1lc3NhZ2VDb3VudFwiLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkTWF4UXVldWVNZXNzYWdlQWdlQWxhcm0oXG4gICAgbWV0cmljOiBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0LFxuICAgIHByb3BzOiBNYXhNZXNzYWdlQWdlVGhyZXNob2xkLFxuICAgIGRpc2FtYmlndWF0b3I/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk1JU1NJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5tYXhBZ2VJblNlY29uZHMsXG4gICAgICBhbGFybU5hbWVTdWZmaXg6IFwiUXVldWUtTWVzc2FnZS1BZ2UtTWF4XCIsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgQWdlIG9mIHRoZSBvbGRlc3QgbWVzc2FnZSBpbiB0aGUgcXVldWUgaXMgdG9vIGhpZ2guYCxcbiAgICAgIC8vIHdlIHdpbGwgZGVkdXBlIGFueSBraW5kIG9mIG1lc3NhZ2UgYWdlIGlzc3VlIHRvIHRoZSBzYW1lIHRpY2tldFxuICAgICAgYWxhcm1EZWR1cGVTdHJpbmdTdWZmaXg6IFwiQW55UXVldWVNZXNzYWdlQWdlXCIsXG4gICAgfSk7XG4gIH1cblxuICBhZGRNYXhRdWV1ZVRpbWVUb0RyYWluTWVzc2FnZXNBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IE1heFRpbWVUb0RyYWluVGhyZXNob2xkLFxuICAgIGRpc2FtYmlndWF0b3I/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiB0aGlzLmFsYXJtRmFjdG9yeS5hZGRBbGFybShtZXRyaWMsIHtcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6XG4gICAgICAgIHByb3BzLnRyZWF0TWlzc2luZ0RhdGFPdmVycmlkZSA/PyBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIHByb3BzLmNvbXBhcmlzb25PcGVyYXRvck92ZXJyaWRlID8/XG4gICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBkaXNhbWJpZ3VhdG9yLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5tYXhUaW1lVG9EcmFpbi50b1NlY29uZHMoKSxcbiAgICAgIGFsYXJtTmFtZVN1ZmZpeDogXCJRdWV1ZS1UaW1lVG9EcmFpbi1NYXhcIixcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBUaW1lIHRvIGRyYWluIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSBpcyB0b28gaGlnaC5gLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkTWluUXVldWVJbmNvbWluZ01lc3NhZ2VzQ291bnRBbGFybShcbiAgICBtZXRyaWM6IE1ldHJpY1dpdGhBbGFybVN1cHBvcnQsXG4gICAgcHJvcHM6IE1pbkluY29taW5nTWVzc2FnZXNDb3VudFRocmVzaG9sZCxcbiAgICBkaXNhbWJpZ3VhdG9yPzogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5hbGFybUZhY3RvcnkuYWRkQWxhcm0obWV0cmljLCB7XG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOlxuICAgICAgICBwcm9wcy50cmVhdE1pc3NpbmdEYXRhT3ZlcnJpZGUgPz8gVHJlYXRNaXNzaW5nRGF0YS5NSVNTSU5HLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOlxuICAgICAgICBwcm9wcy5jb21wYXJpc29uT3BlcmF0b3JPdmVycmlkZSA/P1xuICAgICAgICBDb21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGlzYW1iaWd1YXRvcixcbiAgICAgIHRocmVzaG9sZDogcHJvcHMubWluSW5jb21pbmdNZXNzYWdlc0NvdW50LFxuICAgICAgYWxhcm1OYW1lU3VmZml4OiBcIlF1ZXVlLUluY29taW5nLU1lc3NhZ2VzLUNvdW50LU1pblwiLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYE51bWJlciBvZiBpbmNvbWluZyBtZXNzYWdlcyBpbnRvIHRoZSBxdWV1ZSBpcyB0b28gbG93LmAsXG4gICAgICAvLyB3ZSB3aWxsIGRlZHVwZSBhbnkga2luZCBvZiBtaW4gbWVzc2FnZSBpc3N1ZXMgdG8gdGhlIHNhbWUgdGlja2V0XG4gICAgICBhbGFybURlZHVwZVN0cmluZ1N1ZmZpeDogXCJBbnlRdWV1ZU1pbkluY29taW5nTWVzc2FnZXNcIixcbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1heFF1ZXVlSW5jb21pbmdNZXNzYWdlc0NvdW50QWxhcm0oXG4gICAgbWV0cmljOiBNZXRyaWNXaXRoQWxhcm1TdXBwb3J0LFxuICAgIHByb3BzOiBNYXhJbmNvbWluZ01lc3NhZ2VzQ291bnRUaHJlc2hvbGQsXG4gICAgZGlzYW1iaWd1YXRvcj86IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1GYWN0b3J5LmFkZEFsYXJtKG1ldHJpYywge1xuICAgICAgdHJlYXRNaXNzaW5nRGF0YTpcbiAgICAgICAgcHJvcHMudHJlYXRNaXNzaW5nRGF0YU92ZXJyaWRlID8/IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjpcbiAgICAgICAgcHJvcHMuY29tcGFyaXNvbk9wZXJhdG9yT3ZlcnJpZGUgPz9cbiAgICAgICAgQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRpc2FtYmlndWF0b3IsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLm1heEluY29taW5nTWVzc2FnZXNDb3VudCxcbiAgICAgIGFsYXJtTmFtZVN1ZmZpeDogXCJRdWV1ZS1JbmNvbWluZy1NZXNzYWdlcy1Db3VudC1NYXhcIixcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBOdW1iZXIgb2YgaW5jb21pbmcgbWVzc2FnZXMgaW50byB0aGUgcXVldWUgaXMgdG9vIGhpZ2guYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
;