Source code for q2_sdk.hq.models.external_auth.validate_token

from __future__ import annotations
from dataclasses import dataclass

from lxml import objectify  # type: ignore

from q2_sdk.tools.utils import to_bool
from .base import BaseAuthRequest, BaseAuthResponse


[docs] @dataclass class Request(BaseAuthRequest): """ Shape that comes in from HQ after login during step up authentication. .. code-block:: xml <HQ request="ValidateToken" messageID="{0}"> <UserId>2</UserId> <LoginId>3</LoginId> <TokenID>deadbeef</TokenID> <OTP1>12345</OTP1> <isLogon>True</isLogon> <IsPrelogonSession>False</IsPrelogonSession> <SessionId>shb3cnukdl32c54nodvyxcsj</SessionId> </HQ> """ raw: objectify.Element user_id: int login_id: int token_id: str otp1: str is_logon: bool is_prelogon_session: bool session_id: str @staticmethod def from_xml(xml: objectify.Element) -> Request: user_id = int(xml.UserId.text) login_id = int(xml.LoginId.text) token_id = xml.TokenID.text otp1 = xml.OTP1.text is_logon = to_bool(xml.isLogon.text) is_prelogon_session = to_bool(xml.IsPrelogonSession.text) session_id = xml.SessionId.text return Request( xml, user_id, login_id, token_id, otp1, is_logon, is_prelogon_session, session_id, )
[docs] @dataclass class Response(BaseAuthResponse): ...