fun setupIdentity()

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
    }