"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class GetNetworkOverview(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    class Device(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor
        class _Topology:
            ValueType = typing.NewType('ValueType', builtins.int)
            V: typing_extensions.TypeAlias = ValueType
        class _TopologyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GetNetworkOverview.Device._Topology.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN_TOPOLOGY: GetNetworkOverview.Device._Topology.ValueType  # 0
            LOCAL: GetNetworkOverview.Device._Topology.ValueType  # 1
            """the device is LOCAL (i.e. reachable via eth/wifi)"""

            REMOTE: GetNetworkOverview.Device._Topology.ValueType  # 2
            """the device is REMOTE (i.e. connected via powerline to the LOCAL device)"""

        class Topology(_Topology, metaclass=_TopologyEnumTypeWrapper):
            pass

        UNKNOWN_TOPOLOGY: GetNetworkOverview.Device.Topology.ValueType  # 0
        LOCAL: GetNetworkOverview.Device.Topology.ValueType  # 1
        """the device is LOCAL (i.e. reachable via eth/wifi)"""

        REMOTE: GetNetworkOverview.Device.Topology.ValueType  # 2
        """the device is REMOTE (i.e. connected via powerline to the LOCAL device)"""


        class _Technology:
            ValueType = typing.NewType('ValueType', builtins.int)
            V: typing_extensions.TypeAlias = ValueType
        class _TechnologyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GetNetworkOverview.Device._Technology.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN_TECHNOLOGY: GetNetworkOverview.Device._Technology.ValueType  # 0
            HPAV_THUNDERBOLT: GetNetworkOverview.Device._Technology.ValueType  # 3
            """HomePlugAV device (based on Intellon/QCA Thunderbolt or later, i.e. 6x00/74x0 family)"""

            HPAV_PANTHER: GetNetworkOverview.Device._Technology.ValueType  # 4
            """HomePlugAV device (based on Intellon/QCA Panther or later, i.e. 7420/75x0 family)"""

            GHN_SPIRIT: GetNetworkOverview.Device._Technology.ValueType  # 7
            """G.hn device (based on Maxlinear Spirit firmware)"""

        class Technology(_Technology, metaclass=_TechnologyEnumTypeWrapper):
            pass

        UNKNOWN_TECHNOLOGY: GetNetworkOverview.Device.Technology.ValueType  # 0
        HPAV_THUNDERBOLT: GetNetworkOverview.Device.Technology.ValueType  # 3
        """HomePlugAV device (based on Intellon/QCA Thunderbolt or later, i.e. 6x00/74x0 family)"""

        HPAV_PANTHER: GetNetworkOverview.Device.Technology.ValueType  # 4
        """HomePlugAV device (based on Intellon/QCA Panther or later, i.e. 7420/75x0 family)"""

        GHN_SPIRIT: GetNetworkOverview.Device.Technology.ValueType  # 7
        """G.hn device (based on Maxlinear Spirit firmware)"""


        PRODUCT_NAME_FIELD_NUMBER: builtins.int
        PRODUCT_ID_FIELD_NUMBER: builtins.int
        FRIENDLY_VERSION_FIELD_NUMBER: builtins.int
        FULL_VERSION_FIELD_NUMBER: builtins.int
        USER_DEVICE_NAME_FIELD_NUMBER: builtins.int
        USER_NETWORK_NAME_FIELD_NUMBER: builtins.int
        MAC_ADDRESS_FIELD_NUMBER: builtins.int
        TOPOLOGY_FIELD_NUMBER: builtins.int
        TECHNOLOGY_FIELD_NUMBER: builtins.int
        BRIDGED_DEVICES_FIELD_NUMBER: builtins.int
        IPV4_ADDRESS_FIELD_NUMBER: builtins.int
        ATTACHED_TO_ROUTER_FIELD_NUMBER: builtins.int
        product_name: typing.Text
        """product name for display purposes, like "devolo dLAN 1200+" """

        product_id: typing.Text
        """internal product identifier, like "MT2639" """

        friendly_version: typing.Text
        """version string for display purposes, like "2.5.0.0-1" """

        full_version: typing.Text
        """full version string"""

        user_device_name: typing.Text
        """user provided device name, if any"""

        user_network_name: typing.Text
        """user provided network name, if any"""

        mac_address: typing.Text
        """MAC address of the device, like "000B3BC3A4E6" """

        topology: global___GetNetworkOverview.Device.Topology.ValueType
        """in a real network, we will always see one LOCAL device
        and zero or more REMOTEs
        """

        technology: global___GetNetworkOverview.Device.Technology.ValueType
        """in a real network, you will always see either HPAV or GHN devices, but never both"""

        @property
        def bridged_devices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
            """MAC addresses of devices attached to this device on the LAN side"""
            pass
        ipv4_address: typing.Text
        """ipv4 address of the device; empty if none is available"""

        attached_to_router: builtins.bool
        """indicates whether this adapter is attached to the router or not (only one should be set true)"""

        def __init__(self,
            *,
            product_name: typing.Text = ...,
            product_id: typing.Text = ...,
            friendly_version: typing.Text = ...,
            full_version: typing.Text = ...,
            user_device_name: typing.Text = ...,
            user_network_name: typing.Text = ...,
            mac_address: typing.Text = ...,
            topology: global___GetNetworkOverview.Device.Topology.ValueType = ...,
            technology: global___GetNetworkOverview.Device.Technology.ValueType = ...,
            bridged_devices: typing.Optional[typing.Iterable[typing.Text]] = ...,
            ipv4_address: typing.Text = ...,
            attached_to_router: builtins.bool = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["attached_to_router",b"attached_to_router","bridged_devices",b"bridged_devices","friendly_version",b"friendly_version","full_version",b"full_version","ipv4_address",b"ipv4_address","mac_address",b"mac_address","product_id",b"product_id","product_name",b"product_name","technology",b"technology","topology",b"topology","user_device_name",b"user_device_name","user_network_name",b"user_network_name"]) -> None: ...

    class DataRate(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor
        MAC_ADDRESS_FROM_FIELD_NUMBER: builtins.int
        MAC_ADDRESS_TO_FIELD_NUMBER: builtins.int
        TX_RATE_FIELD_NUMBER: builtins.int
        RX_RATE_FIELD_NUMBER: builtins.int
        mac_address_from: typing.Text
        """the powerline device from which we got information about the data rates"""

        mac_address_to: typing.Text
        """the powerline device to which we are transmitting/receiving"""

        tx_rate: builtins.float
        """transmit data rate in mbps"""

        rx_rate: builtins.float
        """receive data rate in mbps"""

        def __init__(self,
            *,
            mac_address_from: typing.Text = ...,
            mac_address_to: typing.Text = ...,
            tx_rate: builtins.float = ...,
            rx_rate: builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["mac_address_from",b"mac_address_from","mac_address_to",b"mac_address_to","rx_rate",b"rx_rate","tx_rate",b"tx_rate"]) -> None: ...

    class LogicalNetwork(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor
        DEVICES_FIELD_NUMBER: builtins.int
        DATA_RATES_FIELD_NUMBER: builtins.int
        @property
        def devices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetNetworkOverview.Device]:
            """all devices in the logical network"""
            pass
        @property
        def data_rates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetNetworkOverview.DataRate]:
            """all known data rates between devices in the logical network"""
            pass
        def __init__(self,
            *,
            devices: typing.Optional[typing.Iterable[global___GetNetworkOverview.Device]] = ...,
            data_rates: typing.Optional[typing.Iterable[global___GetNetworkOverview.DataRate]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["data_rates",b"data_rates","devices",b"devices"]) -> None: ...

    NETWORK_FIELD_NUMBER: builtins.int
    @property
    def network(self) -> global___GetNetworkOverview.LogicalNetwork: ...
    def __init__(self,
        *,
        network: typing.Optional[global___GetNetworkOverview.LogicalNetwork] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["network",b"network"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["network",b"network"]) -> None: ...
global___GetNetworkOverview = GetNetworkOverview
