code: func ResourceLocation(getter ResourceGetter, connection client.ConnectionInfoGetter, proxyTransport http.RoundTripper, ctx context.Context, id string) (*url.URL, http.RoundTripper, error) {
  	schemeReq, name, portReq, valid := utilnet.SplitSchemeNamePort(id)
  	if !valid {
  		return nil, nil, errors.NewBadRequest(fmt.Sprintf("invalid node request %q", id))
  	}
  
  	info, err := connection.GetConnectionInfo(ctx, types.NodeName(name))
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// We check if we want to get a default Kubelet's transport. It happens if either:
  	// - no port is specified in request (Kubelet's port is default)
  	// - the requested port matches the kubelet port for this node
  	if portReq == "" || portReq == info.Port {
  		return &url.URL{
  				Scheme: info.Scheme,
  				Host:   net.JoinHostPort(info.Hostname, info.Port),
  			},
  			info.Transport,
  			nil
  	}
  
  	if err := proxyutil.IsProxyableHostname(ctx, &net.Resolver{}, info.Hostname); err != nil {
  		return nil, nil, errors.NewBadRequest(err.Error())
  	}
  
  	// Otherwise, return the requested scheme and port, and the proxy transport
  	return &url.URL{Scheme: schemeReq, Host: net.JoinHostPort(info.Hostname, portReq)}, proxyTransport, nil
  }
docs: // ResourceLocation returns a URL and transport which one can use to send traffic for the specified node.