code: func (s *Session) Renew(id string, q *WriteOptions) (*SessionEntry, *WriteMeta, error) {
  	r := s.c.newRequest("PUT", "/v1/session/renew/"+id)
  	r.setWriteOptions(q)
  	rtt, resp, err := s.c.doRequest(r)
  	if err != nil {
  		return nil, nil, err
  	}
  	defer resp.Body.Close()
  
  	wm := &WriteMeta{RequestTime: rtt}
  
  	if resp.StatusCode == 404 {
  		return nil, wm, nil
  	} else if resp.StatusCode != 200 {
  		return nil, nil, fmt.Errorf("Unexpected response code: %d", resp.StatusCode)
  	}
  
  	var entries []*SessionEntry
  	if err := decodeBody(resp, &entries); err != nil {
  		return nil, nil, fmt.Errorf("Failed to read response: %v", err)
  	}
  	if len(entries) > 0 {
  		return entries[0], wm, nil
  	}
  	return nil, wm, nil
  }
docs: // Renew renews the TTL on a given session