code: static public LoginOutput renewSession(LoginInput loginInput)
    throws SFException, SnowflakeSQLException
    {
      try
      {
        return tokenRequest(loginInput, TokenRequestType.RENEW);
      }
      catch (SnowflakeReauthenticationRequest ex)
      {
        if (Strings.isNullOrEmpty(loginInput.getIdToken()))
        {
          throw ex;
        }
        return tokenRequest(loginInput, TokenRequestType.ISSUE);
      }
    }
docs: Renew a session.
  <p>
  Use cases:
  - Session and Master tokens are provided. No Id token:
  - succeed in getting a new Session token.
  - fail and raise SnowflakeReauthenticationRequest because Master
  token expires. Since no id token exists, the exception is thrown
  to the upstream.
  - Session and Id tokens are provided. No Master token:
  - fail and raise SnowflakeReauthenticationRequest and
  issue a new Session token
  - fail and raise SnowflakeReauthenticationRequest and fail
  to issue a new Session token as the
  
  @param loginInput login information
  @return login output
  @throws SFException           if unexpected uri information
  @throws SnowflakeSQLException if failed to renew the session