code: func (c *Client) query(endpoint string, out interface{}, q *QueryOptions) (*QueryMeta, error) {
  	r := c.newRequest("GET", endpoint)
  	r.setQueryOptions(q)
  	rtt, resp, err := c.doRequest(r)
  	if err != nil {
  		return nil, err
  	}
  	defer resp.Body.Close()
  
  	qm := &QueryMeta{}
  	parseQueryMeta(resp, qm)
  	qm.RequestTime = rtt
  
  	if err := decodeBody(resp, out); err != nil {
  		return nil, err
  	}
  	return qm, nil
  }
docs: // Query is used to do a GET request against an endpoint
  // and deserialize the response into an interface using
  // standard Consul conventions.