"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing
import video.coordinator.broadcast_v1.broadcast_pb2
import video.coordinator.call_v1.call_pb2
import video.coordinator.client_v1_rpc.envelopes_pb2
import video.coordinator.edge_v1.edge_pb2
import video.coordinator.push_v1.push_pb2
import video.coordinator.stat_v1.stat_pb2
import video.coordinator.user_v1.user_pb2
import video.coordinator.utils_v1.utils_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _UserEventType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _UserEventTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserEventType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    USER_EVENT_TYPE_UNSPECIFIED: _UserEventType.ValueType  # 0
    USER_EVENT_TYPE_ACCEPTED_CALL: _UserEventType.ValueType  # 1
    USER_EVENT_TYPE_REJECTED_CALL: _UserEventType.ValueType  # 2
    USER_EVENT_TYPE_CANCELLED_CALL: _UserEventType.ValueType  # 3

class UserEventType(_UserEventType, metaclass=_UserEventTypeEnumTypeWrapper): ...

USER_EVENT_TYPE_UNSPECIFIED: UserEventType.ValueType  # 0
USER_EVENT_TYPE_ACCEPTED_CALL: UserEventType.ValueType  # 1
USER_EVENT_TYPE_REJECTED_CALL: UserEventType.ValueType  # 2
USER_EVENT_TYPE_CANCELLED_CALL: UserEventType.ValueType  # 3
global___UserEventType = UserEventType

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

    CALL_CID_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid"]) -> None: ...

global___GetCallRequest = GetCallRequest

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

    CALL_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call"]) -> None: ...

global___GetCallResponse = GetCallResponse

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

    USER_ID_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    CUSTOM_JSON_FIELD_NUMBER: builtins.int
    USER_INPUT_FIELD_NUMBER: builtins.int
    user_id: builtins.str
    role: builtins.str
    custom_json: builtins.bytes
    @property
    def user_input(self) -> video.coordinator.user_v1.user_pb2.UserInput:
        """The user data for the user
        If the user does not exist, this will be used to create the user
        If the user already exists, this input will be ignored
        """
    def __init__(
        self,
        *,
        user_id: builtins.str = ...,
        role: builtins.str = ...,
        custom_json: builtins.bytes = ...,
        user_input: video.coordinator.user_v1.user_pb2.UserInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["user_input", b"user_input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["custom_json", b"custom_json", "role", b"role", "user_id", b"user_id", "user_input", b"user_input"]) -> None: ...

global___MemberInput = MemberInput

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

    CALL_CID_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    RING_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    @property
    def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MemberInput]: ...
    ring: builtins.bool
    """Ringing option, used to signal to clients' UI"""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        members: collections.abc.Iterable[global___MemberInput] | None = ...,
        ring: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "members", b"members", "ring", b"ring"]) -> None: ...

global___UpsertCallMembersRequest = UpsertCallMembersRequest

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

    def __init__(
        self,
    ) -> None: ...

global___UpsertCallMembersResponse = UpsertCallMembersResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    USER_IDS_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    @property
    def user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        user_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "user_ids", b"user_ids"]) -> None: ...

global___DeleteCallMembersRequest = DeleteCallMembersRequest

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

    def __init__(
        self,
    ) -> None: ...

global___DeleteCallMembersResponse = DeleteCallMembersResponse

class CreateCallInput(google.protobuf.message.Message):
    """A message that carries data for call creation"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CALL_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    RING_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> global___CallInput:
        """Call properties to set"""
    @property
    def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MemberInput]:
        """Members to add to the created call"""
    ring: builtins.bool
    """Ringing option, used to signal to clients' UI"""
    def __init__(
        self,
        *,
        call: global___CallInput | None = ...,
        members: collections.abc.Iterable[global___MemberInput] | None = ...,
        ring: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_ring", b"_ring", "call", b"call", "ring", b"ring"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_ring", b"_ring", "call", b"call", "members", b"members", "ring", b"ring"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_ring", b"_ring"]) -> typing_extensions.Literal["ring"] | None: ...

global___CreateCallInput = CreateCallInput

class CreateCallRequest(google.protobuf.message.Message):
    """A request message for GetOrCreateCall endpoint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    type: builtins.str
    """Call type"""
    id: builtins.str
    """Call ID. If empty, will be generated as UUIDv4"""
    @property
    def input(self) -> global___CreateCallInput:
        """Call creation input, only used if the call does not exist"""
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        id: builtins.str | None = ...,
        input: global___CreateCallInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_id", b"_id", "id", b"id", "input", b"input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_id", b"_id", "id", b"id", "input", b"input", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_id", b"_id"]) -> typing_extensions.Literal["id"] | None: ...

global___CreateCallRequest = CreateCallRequest

class GetOrCreateCallRequest(google.protobuf.message.Message):
    """A request message for GetOrCreateCall endpoint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    type: builtins.str
    """Call type"""
    id: builtins.str
    """Call ID"""
    @property
    def input(self) -> global___CreateCallInput:
        """Call creation input, only used if the call does not exist"""
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        id: builtins.str = ...,
        input: global___CreateCallInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "input", b"input", "type", b"type"]) -> None: ...

global___GetOrCreateCallRequest = GetOrCreateCallRequest

class JoinCallRequest(google.protobuf.message.Message):
    """A request message for JoinCall endpoint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    DATACENTER_ID_FIELD_NUMBER: builtins.int
    type: builtins.str
    """Call type"""
    id: builtins.str
    """Call ID"""
    @property
    def input(self) -> global___CreateCallInput:
        """Call creation input, only used if the call does not exist"""
    datacenter_id: builtins.str
    """Preferred client datacenter. This is optional and when set, preferred datacenter selection is not guaranteed"""
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        id: builtins.str = ...,
        input: global___CreateCallInput | None = ...,
        datacenter_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["datacenter_id", b"datacenter_id", "id", b"id", "input", b"input", "type", b"type"]) -> None: ...

global___JoinCallRequest = JoinCallRequest

class JoinCallResponse(google.protobuf.message.Message):
    """A request message for GetOrCreateCall endpoint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CALL_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    EDGES_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    created: builtins.bool
    """Whether a call was created"""
    @property
    def edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.edge_v1.edge_pb2.Edge]:
        """A list of endpoints to measure latency"""
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
        created: builtins.bool = ...,
        edges: collections.abc.Iterable[video.coordinator.edge_v1.edge_pb2.Edge] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call", "created", b"created", "edges", b"edges"]) -> None: ...

global___JoinCallResponse = JoinCallResponse

class CallInput(google.protobuf.message.Message):
    """Represents all updatable room fields"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CUSTOM_JSON_FIELD_NUMBER: builtins.int
    SETTINGS_OVERRIDES_FIELD_NUMBER: builtins.int
    custom_json: builtins.str
    """Custom JSON object that is stored in this call
    All users with read permissions will have access to this object
    """
    @property
    def settings_overrides(self) -> video.coordinator.call_v1.call_pb2.CallSettings:
        """Call settings to be overridden specifically"""
    def __init__(
        self,
        *,
        custom_json: builtins.str = ...,
        settings_overrides: video.coordinator.call_v1.call_pb2.CallSettings | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["settings_overrides", b"settings_overrides"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["custom_json", b"custom_json", "settings_overrides", b"settings_overrides"]) -> None: ...

global___CallInput = CallInput

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

    CALL_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    created: builtins.bool
    """Whether a call was created"""
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
        created: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call", "created", b"created"]) -> None: ...

global___GetOrCreateCallResponse = GetOrCreateCallResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    @property
    def input(self) -> global___CallInput: ...
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        input: global___CallInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "input", b"input"]) -> None: ...

global___UpdateCallRequest = UpdateCallRequest

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

    CALL_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call"]) -> None: ...

global___UpdateCallResponse = UpdateCallResponse

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

    USER_IDS_FIELD_NUMBER: builtins.int
    ROLE_NAME_FIELD_NUMBER: builtins.int
    @property
    def user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """the users that should get the new role, cannot be empty"""
    role_name: builtins.str
    """the new role"""
    def __init__(
        self,
        *,
        user_ids: collections.abc.Iterable[builtins.str] | None = ...,
        role_name: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_role_name", b"_role_name", "role_name", b"role_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_role_name", b"_role_name", "role_name", b"role_name", "user_ids", b"user_ids"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_role_name", b"_role_name"]) -> typing_extensions.Literal["role_name"] | None: ...

global___RoleOverride = RoleOverride

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

    USER_IDS_FIELD_NUMBER: builtins.int
    PERMISSIONS_FIELD_NUMBER: builtins.int
    @property
    def user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """the users that will get the new permissions granted
        if empty, the grant applies to all users
        """
    @property
    def permissions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """the list of permissions granted to users"""
    def __init__(
        self,
        *,
        user_ids: collections.abc.Iterable[builtins.str] | None = ...,
        permissions: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["permissions", b"permissions", "user_ids", b"user_ids"]) -> None: ...

global___PermissionGrantOverride = PermissionGrantOverride

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

    CALL_CID_FIELD_NUMBER: builtins.int
    ROLE_OVERRIDE_FIELD_NUMBER: builtins.int
    PERMISSION_OVERRIDE_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    @property
    def role_override(self) -> global___RoleOverride: ...
    @property
    def permission_override(self) -> global___PermissionGrantOverride: ...
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        role_override: global___RoleOverride | None = ...,
        permission_override: global___PermissionGrantOverride | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["grant_input", b"grant_input", "permission_override", b"permission_override", "role_override", b"role_override"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "grant_input", b"grant_input", "permission_override", b"permission_override", "role_override", b"role_override"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["grant_input", b"grant_input"]) -> typing_extensions.Literal["role_override", "permission_override"] | None: ...

global___UpdateCallPermissionsRequest = UpdateCallPermissionsRequest

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

    def __init__(
        self,
    ) -> None: ...

global___UpdateCallPermissionsResponse = UpdateCallPermissionsResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid"]) -> None: ...

global___EndCallRequest = EndCallRequest

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

    def __init__(
        self,
    ) -> None: ...

global___EndCallResponse = EndCallResponse

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

    CALL_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call"]) -> None: ...

global___CreateCallResponse = CreateCallResponse

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

    MQ_JSON_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    SORTS_FIELD_NUMBER: builtins.int
    mq_json: builtins.bytes
    limit: builtins.int
    @property
    def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.utils_v1.utils_pb2.Sort]: ...
    def __init__(
        self,
        *,
        mq_json: builtins.bytes = ...,
        limit: builtins.int | None = ...,
        sorts: collections.abc.Iterable[video.coordinator.utils_v1.utils_pb2.Sort] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit", "mq_json", b"mq_json", "sorts", b"sorts"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_limit", b"_limit"]) -> typing_extensions.Literal["limit"] | None: ...

global___QueryCallsRequest = QueryCallsRequest

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

    CALLS_FIELD_NUMBER: builtins.int
    @property
    def calls(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallsEnvelope: ...
    def __init__(
        self,
        *,
        calls: video.coordinator.client_v1_rpc.envelopes_pb2.CallsEnvelope | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["calls", b"calls"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["calls", b"calls"]) -> None: ...

global___QueryCallsResponse = QueryCallsResponse

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

    MQ_JSON_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    SORTS_FIELD_NUMBER: builtins.int
    mq_json: builtins.bytes
    limit: builtins.int
    @property
    def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.utils_v1.utils_pb2.Sort]: ...
    def __init__(
        self,
        *,
        mq_json: builtins.bytes = ...,
        limit: builtins.int | None = ...,
        sorts: collections.abc.Iterable[video.coordinator.utils_v1.utils_pb2.Sort] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit", "mq_json", b"mq_json", "sorts", b"sorts"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_limit", b"_limit"]) -> typing_extensions.Literal["limit"] | None: ...

global___QueryMembersRequest = QueryMembersRequest

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

    MEMBERS_FIELD_NUMBER: builtins.int
    @property
    def members(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.MembersEnvelope: ...
    def __init__(
        self,
        *,
        members: video.coordinator.client_v1_rpc.envelopes_pb2.MembersEnvelope | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["members", b"members"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["members", b"members"]) -> None: ...

global___QueryMembersResponse = QueryMembersResponse

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

    MQ_JSON_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    SORTS_FIELD_NUMBER: builtins.int
    mq_json: builtins.bytes
    limit: builtins.int
    @property
    def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.utils_v1.utils_pb2.Sort]: ...
    def __init__(
        self,
        *,
        mq_json: builtins.bytes = ...,
        limit: builtins.int | None = ...,
        sorts: collections.abc.Iterable[video.coordinator.utils_v1.utils_pb2.Sort] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "limit", b"limit", "mq_json", b"mq_json", "sorts", b"sorts"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_limit", b"_limit"]) -> typing_extensions.Literal["limit"] | None: ...

global___QueryUsersRequest = QueryUsersRequest

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

    USERS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.user_v1.user_pb2.User]: ...
    def __init__(
        self,
        *,
        users: collections.abc.Iterable[video.coordinator.user_v1.user_pb2.User] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["users", b"users"]) -> None: ...

global___QueryUsersResponse = QueryUsersResponse

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

    USERS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.user_v1.user_pb2.UserInput]: ...
    def __init__(
        self,
        *,
        users: collections.abc.Iterable[video.coordinator.user_v1.user_pb2.UserInput] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["users", b"users"]) -> None: ...

global___UpsertUsersRequest = UpsertUsersRequest

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

    USERS_FIELD_NUMBER: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.user_v1.user_pb2.User]: ...
    def __init__(
        self,
        *,
        users: collections.abc.Iterable[video.coordinator.user_v1.user_pb2.User] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["users", b"users"]) -> None: ...

global___UpsertUsersResponse = UpsertUsersResponse

class GetCallEdgeServerRequest(google.protobuf.message.Message):
    """A request message for GetCallEdgeServer endpoint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CALL_CID_FIELD_NUMBER: builtins.int
    MEASUREMENTS_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """Call CID to get SFU for"""
    @property
    def measurements(self) -> video.coordinator.edge_v1.edge_pb2.LatencyMeasurements:
        """Latency measurement results
        Optional
        """
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        measurements: video.coordinator.edge_v1.edge_pb2.LatencyMeasurements | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["measurements", b"measurements"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "measurements", b"measurements"]) -> None: ...

global___GetCallEdgeServerRequest = GetCallEdgeServerRequest

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

    CALL_FIELD_NUMBER: builtins.int
    CREDENTIALS_FIELD_NUMBER: builtins.int
    @property
    def call(self) -> video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope: ...
    @property
    def credentials(self) -> video.coordinator.edge_v1.edge_pb2.Credentials:
        """Call edge server credentials"""
    def __init__(
        self,
        *,
        call: video.coordinator.client_v1_rpc.envelopes_pb2.CallEnvelope | None = ...,
        credentials: video.coordinator.edge_v1.edge_pb2.Credentials | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["call", b"call", "credentials", b"credentials"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call", b"call", "credentials", b"credentials"]) -> None: ...

global___GetCallEdgeServerResponse = GetCallEdgeServerResponse

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

    INPUT_FIELD_NUMBER: builtins.int
    @property
    def input(self) -> video.coordinator.push_v1.push_pb2.DeviceInput: ...
    def __init__(
        self,
        *,
        input: video.coordinator.push_v1.push_pb2.DeviceInput | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["input", b"input"]) -> None: ...

global___CreateDeviceRequest = CreateDeviceRequest

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

    DEVICE_FIELD_NUMBER: builtins.int
    @property
    def device(self) -> video.coordinator.push_v1.push_pb2.Device: ...
    def __init__(
        self,
        *,
        device: video.coordinator.push_v1.push_pb2.Device | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["device", b"device"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["device", b"device"]) -> None: ...

global___CreateDeviceResponse = CreateDeviceResponse

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

    ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    def __init__(
        self,
        *,
        id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id"]) -> None: ...

global___DeleteDeviceRequest = DeleteDeviceRequest

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

    def __init__(
        self,
    ) -> None: ...

global___DeleteDeviceResponse = DeleteDeviceResponse

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

    def __init__(
        self,
    ) -> None: ...

global___QueryDevicesRequest = QueryDevicesRequest

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

    DEVICES_FIELD_NUMBER: builtins.int
    @property
    def devices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.coordinator.push_v1.push_pb2.Device]: ...
    def __init__(
        self,
        *,
        devices: collections.abc.Iterable[video.coordinator.push_v1.push_pb2.Device] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["devices", b"devices"]) -> None: ...

global___QueryDevicesResponse = QueryDevicesResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    EVENT_TYPE_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """The call cid"""
    event_type: global___UserEventType.ValueType
    """The type of event"""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        event_type: global___UserEventType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "event_type", b"event_type"]) -> None: ...

global___SendEventRequest = SendEventRequest

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

    def __init__(
        self,
    ) -> None: ...

global___SendEventResponse = SendEventResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    DATA_JSON_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """The call cid"""
    type: builtins.str
    """The type of event"""
    data_json: builtins.bytes
    """The data of the event"""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        type: builtins.str = ...,
        data_json: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "data_json", b"data_json", "type", b"type"]) -> None: ...

global___SendCustomEventRequest = SendCustomEventRequest

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

    def __init__(
        self,
    ) -> None: ...

global___SendCustomEventResponse = SendCustomEventResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    STATS_JSON_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """A concatenation of call type and call id with ":" as delimiter"""
    stats_json: builtins.bytes
    """A WebRTC Stats report encoded as a JSON string, as defined in https://www.w3.org/TR/webrtc/#dom-rtcstatsreport"""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        stats_json: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "stats_json", b"stats_json"]) -> None: ...

global___ReportCallStatsRequest = ReportCallStatsRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ReportCallStatsResponse = ReportCallStatsResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    PARTICIPANT_CONNECTED_FIELD_NUMBER: builtins.int
    PARTICIPANT_DISCONNECTED_FIELD_NUMBER: builtins.int
    MEDIA_STATE_CHANGED_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """A concatenation of call type and call id with ":" as delimiter"""
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Event timestamp as RFC3339 string."""
    @property
    def participant_connected(self) -> video.coordinator.stat_v1.stat_pb2.ParticipantConnected: ...
    @property
    def participant_disconnected(self) -> video.coordinator.stat_v1.stat_pb2.ParticipantDisconnected: ...
    @property
    def media_state_changed(self) -> video.coordinator.stat_v1.stat_pb2.MediaStateChanged: ...
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        participant_connected: video.coordinator.stat_v1.stat_pb2.ParticipantConnected | None = ...,
        participant_disconnected: video.coordinator.stat_v1.stat_pb2.ParticipantDisconnected | None = ...,
        media_state_changed: video.coordinator.stat_v1.stat_pb2.MediaStateChanged | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["event", b"event", "media_state_changed", b"media_state_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "event", b"event", "media_state_changed", b"media_state_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "timestamp", b"timestamp"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["event", b"event"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "media_state_changed"] | None: ...

global___ReportCallStatEventRequest = ReportCallStatEventRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ReportCallStatEventResponse = ReportCallStatEventResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """A concatenation of call type and call id with ":" as delimiter"""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid"]) -> None: ...

global___GetCallStatsRequest = GetCallStatsRequest

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

    CALL_CID_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CUSTOM_JSON_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """A concatenation of call type and call id with ":" as delimiter"""
    description: builtins.str
    """Optional description."""
    custom_json: builtins.bytes
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        description: builtins.str = ...,
        custom_json: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "custom_json", b"custom_json", "description", b"description"]) -> None: ...

global___ReportIssueRequest = ReportIssueRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ReportIssueResponse = ReportIssueResponse

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

    CALL_CID_FIELD_NUMBER: builtins.int
    STARS_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CUSTOM_JSON_FIELD_NUMBER: builtins.int
    call_cid: builtins.str
    """A concatenation of call type and call id with ":" as delimiter"""
    stars: builtins.float
    """Rating between 0 and 5 stars."""
    description: builtins.str
    """Optional description."""
    custom_json: builtins.bytes
    """Optional custom data."""
    def __init__(
        self,
        *,
        call_cid: builtins.str = ...,
        stars: builtins.float = ...,
        description: builtins.str = ...,
        custom_json: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_cid", b"call_cid", "custom_json", b"custom_json", "description", b"description", "stars", b"stars"]) -> None: ...

global___ReviewCallRequest = ReviewCallRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ReviewCallResponse = ReviewCallResponse

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

    CALL_TYPE_FIELD_NUMBER: builtins.int
    CALL_ID_FIELD_NUMBER: builtins.int
    HLS_BROADCAST_FIELD_NUMBER: builtins.int
    RTMP_FIELD_NUMBER: builtins.int
    call_type: builtins.str
    """Call type and id."""
    call_id: builtins.str
    hls_broadcast: builtins.bool
    """Toggles HLS broadcasting on/off."""
    @property
    def rtmp(self) -> video.coordinator.broadcast_v1.broadcast_pb2.RTMPOptions:
        """Enables rtmp broadcasting."""
    def __init__(
        self,
        *,
        call_type: builtins.str = ...,
        call_id: builtins.str = ...,
        hls_broadcast: builtins.bool = ...,
        rtmp: video.coordinator.broadcast_v1.broadcast_pb2.RTMPOptions | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["rtmp", b"rtmp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_id", b"call_id", "call_type", b"call_type", "hls_broadcast", b"hls_broadcast", "rtmp", b"rtmp"]) -> None: ...

global___StartBroadcastRequest = StartBroadcastRequest

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

    BROADCAST_FIELD_NUMBER: builtins.int
    @property
    def broadcast(self) -> video.coordinator.broadcast_v1.broadcast_pb2.Broadcast: ...
    def __init__(
        self,
        *,
        broadcast: video.coordinator.broadcast_v1.broadcast_pb2.Broadcast | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["broadcast", b"broadcast"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["broadcast", b"broadcast"]) -> None: ...

global___StartBroadcastResponse = StartBroadcastResponse

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

    CALL_TYPE_FIELD_NUMBER: builtins.int
    CALL_ID_FIELD_NUMBER: builtins.int
    call_type: builtins.str
    """Call type and id."""
    call_id: builtins.str
    def __init__(
        self,
        *,
        call_type: builtins.str = ...,
        call_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_id", b"call_id", "call_type", b"call_type"]) -> None: ...

global___StopBroadcastRequest = StopBroadcastRequest

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

    def __init__(
        self,
    ) -> None: ...

global___StopBroadcastResponse = StopBroadcastResponse

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

    CALL_TYPE_FIELD_NUMBER: builtins.int
    CALL_ID_FIELD_NUMBER: builtins.int
    call_type: builtins.str
    call_id: builtins.str
    def __init__(
        self,
        *,
        call_type: builtins.str = ...,
        call_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_id", b"call_id", "call_type", b"call_type"]) -> None: ...

global___StartRecordingRequest = StartRecordingRequest

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

    def __init__(
        self,
    ) -> None: ...

global___StartRecordingResponse = StartRecordingResponse

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

    CALL_TYPE_FIELD_NUMBER: builtins.int
    CALL_ID_FIELD_NUMBER: builtins.int
    call_type: builtins.str
    call_id: builtins.str
    def __init__(
        self,
        *,
        call_type: builtins.str = ...,
        call_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["call_id", b"call_id", "call_type", b"call_type"]) -> None: ...

global___StopRecordingRequest = StopRecordingRequest

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

    def __init__(
        self,
    ) -> None: ...

global___StopRecordingResponse = StopRecordingResponse
