code: func (s *Session) Renew(args *structs.SessionSpecificRequest,
  	reply *structs.IndexedSessions) error {
  	if done, err := s.srv.forward("Session.Renew", args, args, reply); done {
  		return err
  	}
  	defer metrics.MeasureSince([]string{"session", "renew"}, time.Now())
  
  	// Get the session, from local state.
  	state := s.srv.fsm.State()
  	index, session, err := state.SessionGet(nil, args.Session)
  	if err != nil {
  		return err
  	}
  
  	reply.Index = index
  	if session == nil {
  		return nil
  	}
  
  	// Fetch the ACL token, if any, and apply the policy.
  	rule, err := s.srv.ResolveToken(args.Token)
  	if err != nil {
  		return err
  	}
  	if rule != nil && s.srv.config.ACLEnforceVersion8 {
  		if !rule.SessionWrite(session.Node) {
  			return acl.ErrPermissionDenied
  		}
  	}
  
  	// Reset the session TTL timer.
  	reply.Sessions = structs.Sessions{session}
  	if err := s.srv.resetSessionTimer(args.Session, session); err != nil {
  		s.srv.logger.Printf("[ERR] consul.session: Session renew failed: %v", err)
  		return err
  	}
  
  	return nil
  }
docs: // Renew is used to renew the TTL on a single session