code: func (c *Client) GetNodes(namespace string, opts ...services.MarshalOption) ([]services.Server, error) {
  	if namespace == "" {
  		return nil, trace.BadParameter(MissingNamespaceError)
  	}
  	cfg, err := services.CollectOptions(opts)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	out, err := c.Get(c.Endpoint("namespaces", namespace, "nodes"), url.Values{
  		"skip_validation": []string{fmt.Sprintf("%t", cfg.SkipValidation)},
  	})
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	var items []json.RawMessage
  	if err := json.Unmarshal(out.Bytes(), &items); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	re := make([]services.Server, len(items))
  	for i, raw := range items {
  		s, err := services.GetServerMarshaler().UnmarshalServer(
  			raw,
  			services.KindNode,
  			services.AddOptions(opts, services.SkipValidation())...)
  		if err != nil {
  			return nil, trace.Wrap(err)
  		}
  		re[i] = s
  	}
  
  	return re, nil
  }
docs: // GetNodes returns the list of servers registered in the cluster.