docs: static private ClientAuthnDTO.AuthenticatorType getAuthenticator(
        LoginInput loginInput)
    {
      if (loginInput.getAuthenticator() != null)
      {
        if (loginInput.getAuthenticator().equalsIgnoreCase(
            ClientAuthnDTO.AuthenticatorType.EXTERNALBROWSER.name()))
        {
          // SAML 2.0 compliant service/application
          return ClientAuthnDTO.AuthenticatorType.EXTERNALBROWSER;
        }
        else if (loginInput.getAuthenticator().equalsIgnoreCase(
            ClientAuthnDTO.AuthenticatorType.OAUTH.name()))
        {
          // OAuth Authentication
          return ClientAuthnDTO.AuthenticatorType.OAUTH;
        }
        else if (loginInput.getAuthenticator().equalsIgnoreCase(
            ClientAuthnDTO.AuthenticatorType.SNOWFLAKE_JWT.name()))
        {
          return ClientAuthnDTO.AuthenticatorType.SNOWFLAKE_JWT;
        }
        else if (!loginInput.getAuthenticator().equalsIgnoreCase(
            ClientAuthnDTO.AuthenticatorType.SNOWFLAKE.name()))
        {
          // OKTA authenticator v1. This will be deprecated once externalbrowser
          // is in production.
          return ClientAuthnDTO.AuthenticatorType.OKTA;
        }
      }
  
      // authenticator is null, then jdbc will decide authenticator depends on
      // if privateKey is specified or not. If yes, authenticator type will be
      // SNOWFLAKE_JWT, otherwise it will use SNOWFLAKE.
      return loginInput.getPrivateKey() != null ?
             ClientAuthnDTO.AuthenticatorType.SNOWFLAKE_JWT :
             ClientAuthnDTO.AuthenticatorType.SNOWFLAKE;
    }