"""
@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

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    SERVER_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    ICE_SERVERS_FIELD_NUMBER: builtins.int
    @property
    def server(self) -> global___EdgeServer:
        """Edge server to connect to"""
    token: builtins.str
    """The auth token needed to authenticate to the edge server"""
    @property
    def ice_servers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ICEServer]:
        """The list of ICE servers"""
    def __init__(
        self,
        *,
        server: global___EdgeServer | None = ...,
        token: builtins.str = ...,
        ice_servers: collections.abc.Iterable[global___ICEServer] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["server", b"server"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ice_servers", b"ice_servers", "server", b"server", "token", b"token"]) -> None: ...

global___Credentials = Credentials

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

    class MeasurementsEntry(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) -> global___Latency: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___Latency | 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: ...

    MEASUREMENTS_FIELD_NUMBER: builtins.int
    @property
    def measurements(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Latency]: ...
    def __init__(
        self,
        *,
        measurements: collections.abc.Mapping[builtins.str, global___Latency] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["measurements", b"measurements"]) -> None: ...

global___LatencyMeasurements = LatencyMeasurements

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

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

global___Latency = Latency

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

    LAT_FIELD_NUMBER: builtins.int
    LONG_FIELD_NUMBER: builtins.int
    lat: builtins.float
    long: builtins.float
    def __init__(
        self,
        *,
        lat: builtins.float = ...,
        long: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["lat", b"lat", "long", b"long"]) -> None: ...

global___Coordinates = Coordinates

class Edge(google.protobuf.message.Message):
    """Edges are where we deploy video servers"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    LATENCY_URL_FIELD_NUMBER: builtins.int
    COORDINATES_FIELD_NUMBER: builtins.int
    name: builtins.str
    latency_url: builtins.str
    @property
    def coordinates(self) -> global___Coordinates: ...
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        latency_url: builtins.str = ...,
        coordinates: global___Coordinates | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["coordinates", b"coordinates"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["coordinates", b"coordinates", "latency_url", b"latency_url", "name", b"name"]) -> None: ...

global___Edge = Edge

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

    URLS_FIELD_NUMBER: builtins.int
    USERNAME_FIELD_NUMBER: builtins.int
    PASSWORD_FIELD_NUMBER: builtins.int
    @property
    def urls(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    username: builtins.str
    password: builtins.str
    def __init__(
        self,
        *,
        urls: collections.abc.Iterable[builtins.str] | None = ...,
        username: builtins.str = ...,
        password: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["password", b"password", "urls", b"urls", "username", b"username"]) -> None: ...

global___ICEServer = ICEServer

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

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

global___EdgeServer = EdgeServer
