in plugin-azure-server/src/main/kotlin/jetbrains/buildServer/clouds/azure/arm/utils/ArmTemplateBuilder.kt [421:439]
fun setupIdentity(userAssignedIdentity: String?, enableSystemAssignedIdentity: Boolean?): ArmTemplateBuilder {
val resource = getFirstResourceOfType("Microsoft.Compute/virtualMachines")
val hasUserAssigned = !userAssignedIdentity.isNullOrEmpty();
val hasSystemAssigned = enableSystemAssignedIdentity == true;
if (hasUserAssigned || hasSystemAssigned) {
val identity = resource.putObject("identity")
val fullType = if (hasUserAssigned && hasSystemAssigned) "SystemAssigned, UserAssigned" else if (hasSystemAssigned) "SystemAssigned" else "UserAssigned"
identity.put("type", fullType)
if (hasUserAssigned) {
identity.putObject("userAssignedIdentities").putObject(userAssignedIdentity)
}
}
return this
}