code: func (c *Client) GenerateToken(req GenerateTokenRequest) (string, error) {
  	out, err := c.PostJSON(c.Endpoint("tokens"), req)
  	if err != nil {
  		return "", trace.Wrap(err)
  	}
  	var token string
  	if err := json.Unmarshal(out.Bytes(), &token); err != nil {
  		return "", trace.Wrap(err)
  	}
  	return token, nil
  }
docs: // GenerateToken creates a special provisioning token for a new SSH server
  // that is valid for ttl period seconds.
  //
  // This token is used by SSH server to authenticate with Auth server
  // and get signed certificate and private key from the auth server.
  //
  // If token is not supplied, it will be auto generated and returned.
  // If TTL is not supplied, token will be valid until removed.