"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys
import video.coordinator.call_v1.call_pb2
import video.coordinator.member_v1.member_pb2
import video.coordinator.user_v1.user_pb2

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class CallEnvelope(google.protobuf.message.Message):
    """CallEnvelope contains Call and all related information to it
    Only used in reponse types that return a single call
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class UsersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.user_v1.user_pb2.User: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.user_v1.user_pb2.User | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    USERS_FIELD_NUMBER: builtins.int
    CALL_FIELD_NUMBER: builtins.int
    DETAILS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.user_v1.user_pb2.User]:
        """All users referenced in the response"""
    @property
    def call(self) -> video.coordinator.call_v1.call_pb2.Call:
        """Call object"""
    @property
    def details(self) -> video.coordinator.call_v1.call_pb2.CallDetails:
        """Call details"""
    def __init__(
        self,
        *,
        users: collections.abc.Mapping[builtins.str, video.coordinator.user_v1.user_pb2.User] | None = ...,
        call: video.coordinator.call_v1.call_pb2.Call | None = ...,
        details: video.coordinator.call_v1.call_pb2.CallDetails | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call", "details", b"details"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call", "details", b"details", "users", b"users"]) -> None: ...

global___CallEnvelope = CallEnvelope

class CallsEnvelope(google.protobuf.message.Message):
    """CallsEnvelope contains list of calls and all related information to them
    Only used in response types that return list of calls
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class UsersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.user_v1.user_pb2.User: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.user_v1.user_pb2.User | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    class CallsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.call_v1.call_pb2.Call: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.call_v1.call_pb2.Call | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    class DetailsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.call_v1.call_pb2.CallDetails: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.call_v1.call_pb2.CallDetails | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    USERS_FIELD_NUMBER: builtins.int
    CALL_CIDS_FIELD_NUMBER: builtins.int
    CALLS_FIELD_NUMBER: builtins.int
    DETAILS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.user_v1.user_pb2.User]:
        """All users referenced in the response"""
    @property
    def call_cids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Ordered list of Call.call_cid"""
    @property
    def calls(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.call_v1.call_pb2.Call]:
        """Call objects, indexed by Call.call_cid"""
    @property
    def details(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.call_v1.call_pb2.CallDetails]:
        """Call details, indexed by Call.call_cid"""
    def __init__(
        self,
        *,
        users: collections.abc.Mapping[builtins.str, video.coordinator.user_v1.user_pb2.User] | None = ...,
        call_cids: collections.abc.Iterable[builtins.str] | None = ...,
        calls: collections.abc.Mapping[builtins.str, video.coordinator.call_v1.call_pb2.Call] | None = ...,
        details: collections.abc.Mapping[builtins.str, video.coordinator.call_v1.call_pb2.CallDetails] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cids", b"call_cids", "calls", b"calls", "details", b"details", "users", b"users"]) -> None: ...

global___CallsEnvelope = CallsEnvelope

class MembersEnvelope(google.protobuf.message.Message):
    """CallsEnvelope contains list of members and all related information to them
    Only used in response types that return list of members
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class UsersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.user_v1.user_pb2.User: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.user_v1.user_pb2.User | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    class MembersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.coordinator.member_v1.member_pb2.Member: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.coordinator.member_v1.member_pb2.Member | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    USERS_FIELD_NUMBER: builtins.int
    MEMBER_USER_IDS_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.user_v1.user_pb2.User]:
        """All users referenced in the response"""
    @property
    def member_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Ordered list of Member.user_id"""
    @property
    def members(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.coordinator.member_v1.member_pb2.Member]:
        """Map of members indexed by Member.user_id"""
    def __init__(
        self,
        *,
        users: collections.abc.Mapping[builtins.str, video.coordinator.user_v1.user_pb2.User] | None = ...,
        member_user_ids: collections.abc.Iterable[builtins.str] | None = ...,
        members: collections.abc.Mapping[builtins.str, video.coordinator.member_v1.member_pb2.Member] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["member_user_ids", b"member_user_ids", "members", b"members", "users", b"users"]) -> None: ...

global___MembersEnvelope = MembersEnvelope
