in src/Utils/YamlValidationUtil.ts [232:260]
function validateReferenceIdentities(referenceIdentities: Array<any>) : ValidationModel {
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(!isNullOrUndefined(referenceIdentity.value) && referenceIdentity.type == ManagedIdentityType.SystemAssigned){
return {valid : false, error : `The "reference identity value" should omitted or set to null when using the "SystemAssigned" identity type.`};
}
if(isNullOrUndefined(referenceIdentity.value) && referenceIdentity.type == 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 : ""};
}