"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
from builtins import (
    bool,
    bytes,
    int,
)

from google.protobuf.descriptor import (
    Descriptor,
    FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
)

from google.protobuf.message import (
    Message,
)

from typing import (
    Iterable,
    Optional,
    Text,
)

from typing_extensions import (
    Literal,
)


DESCRIPTOR: FileDescriptor

class ExternMsg(Message):
    DESCRIPTOR: Descriptor
    CHANNELTYPE_FIELD_NUMBER: int
    channelType: int
    def __init__(self,
        *,
        channelType: int = ...,
        ) -> None: ...
    def ClearField(self, field_name: Literal["channelType",b"channelType"]) -> None: ...

class MultiMsgApplyDownReq(Message):
    DESCRIPTOR: Descriptor
    MSGRESID_FIELD_NUMBER: int
    MSGTYPE_FIELD_NUMBER: int
    SRCUIN_FIELD_NUMBER: int
    msgResid: bytes
    msgType: int
    srcUin: int
    def __init__(self,
        *,
        msgResid: bytes = ...,
        msgType: int = ...,
        srcUin: int = ...,
        ) -> None: ...
    def ClearField(self, field_name: Literal["msgResid",b"msgResid","msgType",b"msgType","srcUin",b"srcUin"]) -> None: ...

class MultiMsgApplyDownRsp(Message):
    DESCRIPTOR: Descriptor
    RESULT_FIELD_NUMBER: int
    THUMBDOWNPARA_FIELD_NUMBER: int
    MSGKEY_FIELD_NUMBER: int
    UINT32DOWNIP_FIELD_NUMBER: int
    UINT32DOWNPORT_FIELD_NUMBER: int
    MSGRESID_FIELD_NUMBER: int
    MSGEXTERNINFO_FIELD_NUMBER: int
    BYTESDOWNIPV6_FIELD_NUMBER: int
    UINT32DOWNV6PORT_FIELD_NUMBER: int
    result: int
    thumbDownPara: bytes
    msgKey: bytes
    @property
    def uint32DownIp(self) -> RepeatedScalarFieldContainer[int]: ...
    @property
    def uint32DownPort(self) -> RepeatedScalarFieldContainer[int]: ...
    msgResid: bytes
    @property
    def msgExternInfo(self) -> ExternMsg: ...
    @property
    def bytesDownIpV6(self) -> RepeatedScalarFieldContainer[bytes]: ...
    @property
    def uint32DownV6Port(self) -> RepeatedScalarFieldContainer[int]: ...
    def __init__(self,
        *,
        result: int = ...,
        thumbDownPara: bytes = ...,
        msgKey: bytes = ...,
        uint32DownIp: Optional[Iterable[int]] = ...,
        uint32DownPort: Optional[Iterable[int]] = ...,
        msgResid: bytes = ...,
        msgExternInfo: Optional[ExternMsg] = ...,
        bytesDownIpV6: Optional[Iterable[bytes]] = ...,
        uint32DownV6Port: Optional[Iterable[int]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["msgExternInfo",b"msgExternInfo"]) -> bool: ...
    def ClearField(self, field_name: Literal["bytesDownIpV6",b"bytesDownIpV6","msgExternInfo",b"msgExternInfo","msgKey",b"msgKey","msgResid",b"msgResid","result",b"result","thumbDownPara",b"thumbDownPara","uint32DownIp",b"uint32DownIp","uint32DownPort",b"uint32DownPort","uint32DownV6Port",b"uint32DownV6Port"]) -> None: ...

class MultiMsgApplyUpReq(Message):
    DESCRIPTOR: Descriptor
    DSTUIN_FIELD_NUMBER: int
    MSGSIZE_FIELD_NUMBER: int
    MSGMD5_FIELD_NUMBER: int
    MSGTYPE_FIELD_NUMBER: int
    APPLYID_FIELD_NUMBER: int
    dstUin: int
    msgSize: int
    msgMd5: bytes
    msgType: int
    applyId: int
    def __init__(self,
        *,
        dstUin: int = ...,
        msgSize: int = ...,
        msgMd5: bytes = ...,
        msgType: int = ...,
        applyId: int = ...,
        ) -> None: ...
    def ClearField(self, field_name: Literal["applyId",b"applyId","dstUin",b"dstUin","msgMd5",b"msgMd5","msgSize",b"msgSize","msgType",b"msgType"]) -> None: ...

class MultiMsgApplyUpRsp(Message):
    DESCRIPTOR: Descriptor
    RESULT_FIELD_NUMBER: int
    MSGRESID_FIELD_NUMBER: int
    MSGUKEY_FIELD_NUMBER: int
    UINT32UPIP_FIELD_NUMBER: int
    UINT32UPPORT_FIELD_NUMBER: int
    BLOCKSIZE_FIELD_NUMBER: int
    UPOFFSET_FIELD_NUMBER: int
    APPLYID_FIELD_NUMBER: int
    MSGKEY_FIELD_NUMBER: int
    MSGSIG_FIELD_NUMBER: int
    MSGEXTERNINFO_FIELD_NUMBER: int
    BYTESUPIPV6_FIELD_NUMBER: int
    UINT32UPV6PORT_FIELD_NUMBER: int
    result: int
    msgResid: Text
    msgUkey: bytes
    @property
    def uint32UpIp(self) -> RepeatedScalarFieldContainer[int]: ...
    @property
    def uint32UpPort(self) -> RepeatedScalarFieldContainer[int]: ...
    blockSize: int
    upOffset: int
    applyId: int
    msgKey: bytes
    msgSig: bytes
    @property
    def msgExternInfo(self) -> ExternMsg: ...
    @property
    def bytesUpIpV6(self) -> RepeatedScalarFieldContainer[bytes]: ...
    @property
    def uint32UpV6Port(self) -> RepeatedScalarFieldContainer[int]: ...
    def __init__(self,
        *,
        result: int = ...,
        msgResid: Text = ...,
        msgUkey: bytes = ...,
        uint32UpIp: Optional[Iterable[int]] = ...,
        uint32UpPort: Optional[Iterable[int]] = ...,
        blockSize: int = ...,
        upOffset: int = ...,
        applyId: int = ...,
        msgKey: bytes = ...,
        msgSig: bytes = ...,
        msgExternInfo: Optional[ExternMsg] = ...,
        bytesUpIpV6: Optional[Iterable[bytes]] = ...,
        uint32UpV6Port: Optional[Iterable[int]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["msgExternInfo",b"msgExternInfo"]) -> bool: ...
    def ClearField(self, field_name: Literal["applyId",b"applyId","blockSize",b"blockSize","bytesUpIpV6",b"bytesUpIpV6","msgExternInfo",b"msgExternInfo","msgKey",b"msgKey","msgResid",b"msgResid","msgSig",b"msgSig","msgUkey",b"msgUkey","result",b"result","uint32UpIp",b"uint32UpIp","uint32UpPort",b"uint32UpPort","uint32UpV6Port",b"uint32UpV6Port","upOffset",b"upOffset"]) -> None: ...

class MultiReqBody(Message):
    DESCRIPTOR: Descriptor
    SUBCMD_FIELD_NUMBER: int
    TERMTYPE_FIELD_NUMBER: int
    PLATFORMTYPE_FIELD_NUMBER: int
    NETTYPE_FIELD_NUMBER: int
    BUILDVER_FIELD_NUMBER: int
    MULTIMSGAPPLYUPREQ_FIELD_NUMBER: int
    MULTIMSGAPPLYDOWNREQ_FIELD_NUMBER: int
    BUTYPE_FIELD_NUMBER: int
    REQCHANNELTYPE_FIELD_NUMBER: int
    subcmd: int
    termType: int
    platformType: int
    netType: int
    buildVer: Text
    @property
    def multimsgApplyupReq(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyUpReq]: ...
    @property
    def multimsgApplydownReq(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyDownReq]: ...
    buType: int
    reqChannelType: int
    def __init__(self,
        *,
        subcmd: int = ...,
        termType: int = ...,
        platformType: int = ...,
        netType: int = ...,
        buildVer: Text = ...,
        multimsgApplyupReq: Optional[Iterable[MultiMsgApplyUpReq]] = ...,
        multimsgApplydownReq: Optional[Iterable[MultiMsgApplyDownReq]] = ...,
        buType: int = ...,
        reqChannelType: int = ...,
        ) -> None: ...
    def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","multimsgApplydownReq",b"multimsgApplydownReq","multimsgApplyupReq",b"multimsgApplyupReq","netType",b"netType","platformType",b"platformType","reqChannelType",b"reqChannelType","subcmd",b"subcmd","termType",b"termType"]) -> None: ...

class MultiRspBody(Message):
    DESCRIPTOR: Descriptor
    SUBCMD_FIELD_NUMBER: int
    MULTIMSGAPPLYUPRSP_FIELD_NUMBER: int
    MULTIMSGAPPLYDOWNRSP_FIELD_NUMBER: int
    subcmd: int
    @property
    def multimsgApplyupRsp(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyUpRsp]: ...
    @property
    def multimsgApplydownRsp(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyDownRsp]: ...
    def __init__(self,
        *,
        subcmd: int = ...,
        multimsgApplyupRsp: Optional[Iterable[MultiMsgApplyUpRsp]] = ...,
        multimsgApplydownRsp: Optional[Iterable[MultiMsgApplyDownRsp]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: Literal["multimsgApplydownRsp",b"multimsgApplydownRsp","multimsgApplyupRsp",b"multimsgApplyupRsp","subcmd",b"subcmd"]) -> None: ...
