private static void assertLegalNodeTypeForTargetVersion(NodeType nodeType) {
        switch (nodeType) {
            case config:
            case confighost:
            case controller:
            case controllerhost:
            case proxyhost:
            case host:
                break;
            default:
                throw new IllegalArgumentException("Target version for type " + nodeType + " is not allowed");
        }
    }
Multithread safe class to see and set target versions for infrastructure node types.
{@link InfrastructureProvisioner} maintainer will then allocate the nodes of given node type
with a wanted version equal to the given target version.

@author freva
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureVersions.java