code: func (a *Agent) Self() (map[string]map[string]interface{}, error) {
  	r := a.c.newRequest("GET", "/v1/agent/self")
  	_, resp, err := requireOK(a.c.doRequest(r))
  	if err != nil {
  		return nil, err
  	}
  	defer resp.Body.Close()
  
  	var out map[string]map[string]interface{}
  	if err := decodeBody(resp, &out); err != nil {
  		return nil, err
  	}
  	return out, nil
  }
docs: // Self is used to query the agent we are speaking to for
  // information about itself