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: "" };
}