code: func (a *Agent) Leave() error {
  	r := a.c.newRequest("PUT", "/v1/agent/leave")
  	_, resp, err := requireOK(a.c.doRequest(r))
  	if err != nil {
  		return err
  	}
  	resp.Body.Close()
  	return nil
  }
docs: // Leave is used to have the agent gracefully leave the cluster and shutdown