def METHOD_NAME(self, request_data) -> Tuple[AgentID, OTP]:
    try:
        try:
            agent_id_argument = request_data["agent_id"]
            agent_id = AgentID(agent_id_argument)
        except ValueError as err:
            raise ArgumentParsingException(f'Invalid Agent ID "{agent_id_argument}": {err}')
        try:
            otp_argument = request_data["otp"]
            otp = OTP(otp_argument)
        except ValueError as err:
            raise ArgumentParsingException(f'Invalid OTP "{otp_argument}": {err}')
    except KeyError as err:
        raise ArgumentParsingException(f"Missing argument: {err}")
    except TypeError:
        raise ArgumentParsingException("Could not parse the login request")
    return agent_id, otp