function validateReferenceIdentities()

in lib/Utils/YamlValidationUtil.js [249:277]


function validateReferenceIdentities(referenceIdentities) {
    for (let referenceIdentity of referenceIdentities) {
        if (!isDictionary(referenceIdentity)) {
            return { valid: false, error: `The value "${referenceIdentity.toString()}" for referenceIdentities is invalid. Provide a valid dictionary with kind, value and type.` };
        }
        if (referenceIdentity.value != undefined && typeof referenceIdentity.value != 'string') {
            return { valid: false, error: `The value "${referenceIdentity.value.toString()}" for id in referenceIdentities is invalid. Provide a valid string.` };
        }
        if (referenceIdentity.type != undefined && typeof referenceIdentity.type != 'string') {
            return { valid: false, error: `The value "${referenceIdentity.type.toString()}" for type in referenceIdentities is invalid. Allowed values are "SystemAssigned" and "UserAssigned".` };
        }
        if (!isValidReferenceIdentityKind(referenceIdentity.kind)) {
            return { valid: false, error: `The value "${referenceIdentity.kind}" for kind in referenceIdentity is invalid. Allowed values are 'Metrics', 'Keyvault' and 'Engine'.` };
        }
        if (referenceIdentity.type && !isValidManagedIdentityType(referenceIdentity.type)) {
            return { valid: false, error: `The value "${referenceIdentity.type}" for type in referenceIdentities is invalid. Allowed values are "SystemAssigned" and "UserAssigned".` };
        }
        if (!(0, util_1.isNullOrUndefined)(referenceIdentity.value) && referenceIdentity.type == UtilModels_1.ManagedIdentityType.SystemAssigned) {
            return { valid: false, error: `The "reference identity value" should omitted or set to null when using the "SystemAssigned" identity type.` };
        }
        if ((0, util_1.isNullOrUndefined)(referenceIdentity.value) && referenceIdentity.type == UtilModels_1.ManagedIdentityType.UserAssigned) {
            return { valid: false, error: `The value for 'referenceIdentity value' cannot be null when using the 'UserAssigned' identity type. Provide a valid identity reference for 'reference identity value'.` };
        }
        if (referenceIdentity.value && isInvalidManagedIdentityId(referenceIdentity.value)) {
            return { valid: false, error: `The value "${referenceIdentity.value}" for reference identity is invalid. The value should be a string of the format: "/subscriptions/{subsId}/resourceGroups/{rgName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".` };
        }
    }
    return { valid: true, error: "" };
}