code: func RESTClientFor(config *Config) (*RESTClient, error) {
  	if config.GroupVersion == nil {
  		return nil, fmt.Errorf("GroupVersion is required when initializing a RESTClient")
  	}
  	if config.Codec == nil {
  		return nil, fmt.Errorf("Codec is required when initializing a RESTClient")
  	}
  
  	baseURL, versionedAPIPath, err := defaultServerUrlFor(config)
  	if err != nil {
  		return nil, err
  	}
  
  	transport, err := TransportFor(config)
  	if err != nil {
  		return nil, err
  	}
  
  	var httpClient *http.Client
  	if transport != http.DefaultTransport {
  		httpClient = &http.Client{Transport: transport}
  	}
  
  	client := NewRESTClient(baseURL, versionedAPIPath, config.ContentConfig, config.QPS, config.Burst, httpClient)
  
  	return client, nil
  }
docs: // RESTClientFor returns a RESTClient that satisfies the requested attributes on a client Config
  // object. Note that a RESTClient may require fields that are optional when initializing a Client.
  // A RESTClient created by this method is generic - it expects to operate on an API that follows
  // the Kubernetes conventions, but may not be the Kubernetes API.