"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class DeviceConnectionStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WIFI_FIELD_NUMBER: builtins.int
    ETHERNET_FIELD_NUMBER: builtins.int
    BLUETOOTH_FIELD_NUMBER: builtins.int
    SERIAL_FIELD_NUMBER: builtins.int
    @property
    def wifi(self) -> global___WifiConnectionStatus:
        """
        WiFi Status
        """

    @property
    def ethernet(self) -> global___EthernetConnectionStatus:
        """
        WiFi Status
        """

    @property
    def bluetooth(self) -> global___BluetoothConnectionStatus:
        """
        Bluetooth Status
        """

    @property
    def serial(self) -> global___SerialConnectionStatus:
        """
        Serial Status
        """

    def __init__(
        self,
        *,
        wifi: global___WifiConnectionStatus | None = ...,
        ethernet: global___EthernetConnectionStatus | None = ...,
        bluetooth: global___BluetoothConnectionStatus | None = ...,
        serial: global___SerialConnectionStatus | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_bluetooth", b"_bluetooth", "_ethernet", b"_ethernet", "_serial", b"_serial", "_wifi", b"_wifi", "bluetooth", b"bluetooth", "ethernet", b"ethernet", "serial", b"serial", "wifi", b"wifi"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_bluetooth", b"_bluetooth", "_ethernet", b"_ethernet", "_serial", b"_serial", "_wifi", b"_wifi", "bluetooth", b"bluetooth", "ethernet", b"ethernet", "serial", b"serial", "wifi", b"wifi"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_bluetooth", b"_bluetooth"]) -> typing.Literal["bluetooth"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_ethernet", b"_ethernet"]) -> typing.Literal["ethernet"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_serial", b"_serial"]) -> typing.Literal["serial"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_wifi", b"_wifi"]) -> typing.Literal["wifi"] | None: ...

global___DeviceConnectionStatus = DeviceConnectionStatus

@typing.final
class WifiConnectionStatus(google.protobuf.message.Message):
    """
    WiFi connection status
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATUS_FIELD_NUMBER: builtins.int
    SSID_FIELD_NUMBER: builtins.int
    RSSI_FIELD_NUMBER: builtins.int
    ssid: builtins.str
    """
    WiFi access point SSID
    """
    rssi: builtins.int
    """
    RSSI of wireless connection
    """
    @property
    def status(self) -> global___NetworkConnectionStatus:
        """
        Connection status
        """

    def __init__(
        self,
        *,
        status: global___NetworkConnectionStatus | None = ...,
        ssid: builtins.str = ...,
        rssi: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["rssi", b"rssi", "ssid", b"ssid", "status", b"status"]) -> None: ...

global___WifiConnectionStatus = WifiConnectionStatus

@typing.final
class EthernetConnectionStatus(google.protobuf.message.Message):
    """
    Ethernet connection status
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATUS_FIELD_NUMBER: builtins.int
    @property
    def status(self) -> global___NetworkConnectionStatus:
        """
        Connection status
        """

    def __init__(
        self,
        *,
        status: global___NetworkConnectionStatus | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["status", b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["status", b"status"]) -> None: ...

global___EthernetConnectionStatus = EthernetConnectionStatus

@typing.final
class NetworkConnectionStatus(google.protobuf.message.Message):
    """
    Ethernet or WiFi connection status
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IP_ADDRESS_FIELD_NUMBER: builtins.int
    IS_CONNECTED_FIELD_NUMBER: builtins.int
    IS_MQTT_CONNECTED_FIELD_NUMBER: builtins.int
    IS_SYSLOG_CONNECTED_FIELD_NUMBER: builtins.int
    ip_address: builtins.int
    """
    IP address of device
    """
    is_connected: builtins.bool
    """
    Whether the device has an active connection or not
    """
    is_mqtt_connected: builtins.bool
    """
    Whether the device has an active connection to an MQTT broker or not
    """
    is_syslog_connected: builtins.bool
    """
    Whether the device is actively remote syslogging or not
    """
    def __init__(
        self,
        *,
        ip_address: builtins.int = ...,
        is_connected: builtins.bool = ...,
        is_mqtt_connected: builtins.bool = ...,
        is_syslog_connected: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["ip_address", b"ip_address", "is_connected", b"is_connected", "is_mqtt_connected", b"is_mqtt_connected", "is_syslog_connected", b"is_syslog_connected"]) -> None: ...

global___NetworkConnectionStatus = NetworkConnectionStatus

@typing.final
class BluetoothConnectionStatus(google.protobuf.message.Message):
    """
    Bluetooth connection status
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PIN_FIELD_NUMBER: builtins.int
    RSSI_FIELD_NUMBER: builtins.int
    IS_CONNECTED_FIELD_NUMBER: builtins.int
    pin: builtins.int
    """
    The pairing PIN for bluetooth
    """
    rssi: builtins.int
    """
    RSSI of bluetooth connection
    """
    is_connected: builtins.bool
    """
    Whether the device has an active connection or not
    """
    def __init__(
        self,
        *,
        pin: builtins.int = ...,
        rssi: builtins.int = ...,
        is_connected: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["is_connected", b"is_connected", "pin", b"pin", "rssi", b"rssi"]) -> None: ...

global___BluetoothConnectionStatus = BluetoothConnectionStatus

@typing.final
class SerialConnectionStatus(google.protobuf.message.Message):
    """
    Serial connection status
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BAUD_FIELD_NUMBER: builtins.int
    IS_CONNECTED_FIELD_NUMBER: builtins.int
    baud: builtins.int
    """
    Serial baud rate
    """
    is_connected: builtins.bool
    """
    Whether the device has an active connection or not
    """
    def __init__(
        self,
        *,
        baud: builtins.int = ...,
        is_connected: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["baud", b"baud", "is_connected", b"is_connected"]) -> None: ...

global___SerialConnectionStatus = SerialConnectionStatus
