function validateFailureCriteria()

in lib/Utils/YamlValidationUtil.js [185:248]


function validateFailureCriteria(failureCriteria) {
    var _a, _b, _c, _d, _e, _f, _g, _h;
    if (!Array.isArray(failureCriteria)) {
        if (!isDictionary(failureCriteria)) {
            return { valid: false, error: `The value "${failureCriteria === null || failureCriteria === void 0 ? void 0 : failureCriteria.toString()}" for failureCriteria is invalid. Provide a valid dictionary with keys as ${UtilModels_1.ValidCriteriaTypes.clientMetrics} and ${UtilModels_1.ValidCriteriaTypes.serverMetrics}.` };
        }
        let keys = Object.keys(failureCriteria);
        for (let i = 0; i < keys.length; i++) {
            let key = keys[i];
            if (!isValidFailureCriteriaType(key)) {
                return { valid: false, error: `The value "${key}" for failureCriteria is invalid. Provide a valid dictionary with keys as ${UtilModels_1.ValidCriteriaTypes.clientMetrics} and ${UtilModels_1.ValidCriteriaTypes.serverMetrics}.` };
            }
            if (!Array.isArray(failureCriteria[key])) {
                return { valid: false, error: `The value "${(_a = failureCriteria[key]) === null || _a === void 0 ? void 0 : _a.toString()}" for ${key} in failureCriteria is invalid. Provide a valid list of criteria.` };
            }
        }
        if (failureCriteria[UtilModels_1.ValidCriteriaTypes.serverMetrics]) {
            let serverMetrics = failureCriteria[UtilModels_1.ValidCriteriaTypes.serverMetrics];
            for (let i = 0; i < serverMetrics.length; i++) {
                let serverMetric = serverMetrics[i];
                if (!isDictionary(serverMetric)) {
                    return { valid: false, error: `The value "${serverMetric === null || serverMetric === void 0 ? void 0 : serverMetric.toString()}" for ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid dictionary with metricName, aggregation, condition, value and optionally metricNamespace.` };
                }
                if (isInvalidString(serverMetric.resourceId)) {
                    return { valid: false, error: `The value "${(_b = serverMetric.resourceId) === null || _b === void 0 ? void 0 : _b.toString()}" for resourceId in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid string.` };
                }
                if (isInvalidString(serverMetric.metricNameSpace, true)) {
                    return { valid: false, error: `The value "${(_c = serverMetric.metricNameSpace) === null || _c === void 0 ? void 0 : _c.toString()}" for metricNameSpace in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid string.` };
                }
                if (isInvalidString(serverMetric.metricName)) {
                    return { valid: false, error: `The value "${(_d = serverMetric.metricName) === null || _d === void 0 ? void 0 : _d.toString()}" for metricName in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid string.` };
                }
                if (isInvalidString(serverMetric.aggregation)) {
                    return { valid: false, error: `The value "${(_e = serverMetric.aggregation) === null || _e === void 0 ? void 0 : _e.toString()}" for aggregation in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid string.` };
                }
                if (isInvalidString(serverMetric.condition)) {
                    return { valid: false, error: `The value "${(_f = serverMetric.condition) === null || _f === void 0 ? void 0 : _f.toString()}" for condition in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid condition from "${UtilModels_1.ValidConditionsEnumValuesList.GreaterThan}", "${UtilModels_1.ValidConditionsEnumValuesList.LessThan}".` };
                }
                if ((0, util_1.isNullOrUndefined)(serverMetric.value) || typeof serverMetric.value != 'number' || isNaN(serverMetric.value)) {
                    return { valid: false, error: `The value "${(_g = serverMetric.value) === null || _g === void 0 ? void 0 : _g.toString()}" for value in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid number.` };
                }
                if (!isValidConditionEnumString(serverMetric.condition)) {
                    return { valid: false, error: `The value "${(_h = serverMetric.condition) === null || _h === void 0 ? void 0 : _h.toString()}" for condition in ${UtilModels_1.ValidCriteriaTypes.serverMetrics} in failureCriteria is invalid. Provide a valid condition from "${UtilModels_1.ValidConditionsEnumValuesList.GreaterThan}", "${UtilModels_1.ValidConditionsEnumValuesList.LessThan}".` };
                }
            }
        }
        if (failureCriteria[UtilModels_1.ValidCriteriaTypes.clientMetrics]) {
            let clientMetrics = failureCriteria[UtilModels_1.ValidCriteriaTypes.clientMetrics];
            for (let clientMetric of clientMetrics) {
                if (!isDictionary(clientMetric) && typeof clientMetric != 'string') {
                    return { valid: false, error: `The value "${clientMetric === null || clientMetric === void 0 ? void 0 : clientMetric.toString()}" for ${UtilModels_1.ValidCriteriaTypes.clientMetrics} in failureCriteria is invalid. Provide a valid criteria.` };
                }
            }
        }
    }
    else {
        for (let criteria of failureCriteria) {
            if (!isDictionary(criteria) && typeof criteria != 'string') {
                return { valid: false, error: `The value "${criteria === null || criteria === void 0 ? void 0 : criteria.toString()}" for failureCriteria is invalid. Provide a valid criteria.` };
            }
        }
    }
    return { valid: true, error: "" };
}