code: func (s *Snapshot) Save(q *QueryOptions) (io.ReadCloser, *QueryMeta, error) {
  	r := s.c.newRequest("GET", "/v1/snapshot")
  	r.setQueryOptions(q)
  
  	rtt, resp, err := requireOK(s.c.doRequest(r))
  	if err != nil {
  		return nil, nil, err
  	}
  
  	qm := &QueryMeta{}
  	parseQueryMeta(resp, qm)
  	qm.RequestTime = rtt
  	return resp.Body, qm, nil
  }
docs: // Save requests a new snapshot and provides an io.ReadCloser with the snapshot
  // data to save. If this doesn't return an error, then it's the responsibility
  // of the caller to close it. Only a subset of the QueryOptions are supported:
  // Datacenter, AllowStale, and Token.