"""
@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 google.protobuf.wrappers_pb2
import protos.v1.models.SystemModels_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

class _HostStatusEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HostStatus.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Unknown: _HostStatus.ValueType  # 0
    Online: _HostStatus.ValueType  # 1
    Offline: _HostStatus.ValueType  # 2
    Maintenance: _HostStatus.ValueType  # 3
    Archived: _HostStatus.ValueType  # 4

class HostStatus(_HostStatus, metaclass=_HostStatusEnumTypeWrapper): ...

Unknown: HostStatus.ValueType  # 0
Online: HostStatus.ValueType  # 1
Offline: HostStatus.ValueType  # 2
Maintenance: HostStatus.ValueType  # 3
Archived: HostStatus.ValueType  # 4
Global___HostStatus: typing_extensions.TypeAlias = HostStatus

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

    PAGING_FIELD_NUMBER: builtins.int
    @property
    def Paging(self) -> protos.v1.models.SystemModels_pb2.PagingInfo: ...
    def __init__(
        self,
        *,
        Paging: protos.v1.models.SystemModels_pb2.PagingInfo | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Paging", b"Paging"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Paging", b"Paging"]) -> None: ...

Global___GetHostsRequest: typing_extensions.TypeAlias = GetHostsRequest

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

    HOSTS_FIELD_NUMBER: builtins.int
    TOTALCOUNT_FIELD_NUMBER: builtins.int
    TotalCount: builtins.int
    @property
    def Hosts(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___Host
    ]: ...
    def __init__(
        self,
        *,
        Hosts: collections.abc.Iterable[Global___Host] | None = ...,
        TotalCount: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["Hosts", b"Hosts", "TotalCount", b"TotalCount"]
    ) -> None: ...

Global___GetHostsResponse: typing_extensions.TypeAlias = GetHostsResponse

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

    HOST_FIELD_NUMBER: builtins.int
    @property
    def Host(self) -> Global___Host: ...
    def __init__(
        self,
        *,
        Host: Global___Host | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Host", b"Host"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Host", b"Host"]) -> None: ...

Global___UpdateHostRequest: typing_extensions.TypeAlias = UpdateHostRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    Message: builtins.str
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
        Message: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["Message", b"Message", "Success", b"Success"]
    ) -> None: ...

Global___UpdateHostResponse: typing_extensions.TypeAlias = UpdateHostResponse

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

    HOST_FIELD_NUMBER: builtins.int
    @property
    def Host(self) -> Global___Host: ...
    def __init__(
        self,
        *,
        Host: Global___Host | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Host", b"Host"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Host", b"Host"]) -> None: ...

Global___RegisterHostRequest: typing_extensions.TypeAlias = RegisterHostRequest

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

    SECRETKEY_FIELD_NUMBER: builtins.int
    HOSTID_FIELD_NUMBER: builtins.int
    SecretKey: builtins.str
    HostId: builtins.str
    def __init__(
        self,
        *,
        SecretKey: builtins.str = ...,
        HostId: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["HostId", b"HostId", "SecretKey", b"SecretKey"]
    ) -> None: ...

Global___RegisterHostResponse: typing_extensions.TypeAlias = RegisterHostResponse

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

    HOSTID_FIELD_NUMBER: builtins.int
    HostId: builtins.str
    def __init__(
        self,
        *,
        HostId: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["HostId", b"HostId"]) -> None: ...

Global___GetSecretKeyRequest: typing_extensions.TypeAlias = GetSecretKeyRequest

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

    SECRETKEY_FIELD_NUMBER: builtins.int
    SecretKey: builtins.str
    def __init__(
        self,
        *,
        SecretKey: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["SecretKey", b"SecretKey"]
    ) -> None: ...

Global___GetSecretKeyResponse: typing_extensions.TypeAlias = GetSecretKeyResponse

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

    HOSTID_FIELD_NUMBER: builtins.int
    HostId: builtins.str
    def __init__(
        self,
        *,
        HostId: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["HostId", b"HostId"]) -> None: ...

Global___ArchiveHostRequest: typing_extensions.TypeAlias = ArchiveHostRequest

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

    SUCCESS_FIELD_NUMBER: builtins.int
    Success: builtins.bool
    def __init__(
        self,
        *,
        Success: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["Success", b"Success"]) -> None: ...

Global___ArchiveHostResponse: typing_extensions.TypeAlias = ArchiveHostResponse

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

    HOSTID_FIELD_NUMBER: builtins.int
    TIMEFRAME_FIELD_NUMBER: builtins.int
    DATE_FIELD_NUMBER: builtins.int
    HostId: builtins.str
    Timeframe: protos.v1.models.SystemModels_pb2.Timeframe.ValueType
    @property
    def Date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        HostId: builtins.str = ...,
        Timeframe: protos.v1.models.SystemModels_pb2.Timeframe.ValueType = ...,
        Date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["Date", b"Date"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Date", b"Date", "HostId", b"HostId", "Timeframe", b"Timeframe"
        ],
    ) -> None: ...

Global___GetHostStatsRequest: typing_extensions.TypeAlias = GetHostStatsRequest

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

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    IPADDRESS_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    DATESTARTED_FIELD_NUMBER: builtins.int
    DATESTOPPED_FIELD_NUMBER: builtins.int
    DATELASTHEARTBEAT_FIELD_NUMBER: builtins.int
    DATELASTSESSION_FIELD_NUMBER: builtins.int
    OPERATINGSYSTEM_FIELD_NUMBER: builtins.int
    OPERATINGSYSTEMVERSION_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    DIRECTCONNECT_FIELD_NUMBER: builtins.int
    PEERCONNECT_FIELD_NUMBER: builtins.int
    APPVERSION_FIELD_NUMBER: builtins.int
    Id: builtins.str
    Name: builtins.str
    Port: builtins.int
    Status: Global___HostStatus.ValueType
    Region: builtins.str
    DirectConnect: builtins.bool
    PeerConnect: builtins.bool
    @property
    def IpAddress(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def DateStarted(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def DateStopped(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def DateLastHeartbeat(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def DateLastSession(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def OperatingSystem(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def OperatingSystemVersion(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def AppVersion(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    def __init__(
        self,
        *,
        Id: builtins.str = ...,
        Name: builtins.str = ...,
        IpAddress: google.protobuf.wrappers_pb2.StringValue | None = ...,
        Port: builtins.int = ...,
        DateStarted: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        DateStopped: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        DateLastHeartbeat: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        DateLastSession: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        OperatingSystem: google.protobuf.wrappers_pb2.StringValue | None = ...,
        OperatingSystemVersion: google.protobuf.wrappers_pb2.StringValue | None = ...,
        Status: Global___HostStatus.ValueType = ...,
        Region: builtins.str = ...,
        DirectConnect: builtins.bool = ...,
        PeerConnect: builtins.bool = ...,
        AppVersion: google.protobuf.wrappers_pb2.StringValue | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "AppVersion",
            b"AppVersion",
            "DateLastHeartbeat",
            b"DateLastHeartbeat",
            "DateLastSession",
            b"DateLastSession",
            "DateStarted",
            b"DateStarted",
            "DateStopped",
            b"DateStopped",
            "IpAddress",
            b"IpAddress",
            "OperatingSystem",
            b"OperatingSystem",
            "OperatingSystemVersion",
            b"OperatingSystemVersion",
            "_AppVersion",
            b"_AppVersion",
            "_DateLastHeartbeat",
            b"_DateLastHeartbeat",
            "_DateLastSession",
            b"_DateLastSession",
            "_DateStarted",
            b"_DateStarted",
            "_DateStopped",
            b"_DateStopped",
            "_IpAddress",
            b"_IpAddress",
            "_OperatingSystem",
            b"_OperatingSystem",
            "_OperatingSystemVersion",
            b"_OperatingSystemVersion",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "AppVersion",
            b"AppVersion",
            "DateLastHeartbeat",
            b"DateLastHeartbeat",
            "DateLastSession",
            b"DateLastSession",
            "DateStarted",
            b"DateStarted",
            "DateStopped",
            b"DateStopped",
            "DirectConnect",
            b"DirectConnect",
            "Id",
            b"Id",
            "IpAddress",
            b"IpAddress",
            "Name",
            b"Name",
            "OperatingSystem",
            b"OperatingSystem",
            "OperatingSystemVersion",
            b"OperatingSystemVersion",
            "PeerConnect",
            b"PeerConnect",
            "Port",
            b"Port",
            "Region",
            b"Region",
            "Status",
            b"Status",
            "_AppVersion",
            b"_AppVersion",
            "_DateLastHeartbeat",
            b"_DateLastHeartbeat",
            "_DateLastSession",
            b"_DateLastSession",
            "_DateStarted",
            b"_DateStarted",
            "_DateStopped",
            b"_DateStopped",
            "_IpAddress",
            b"_IpAddress",
            "_OperatingSystem",
            b"_OperatingSystem",
            "_OperatingSystemVersion",
            b"_OperatingSystemVersion",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_AppVersion", b"_AppVersion"]
    ) -> typing.Literal["AppVersion"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DateLastHeartbeat", b"_DateLastHeartbeat"]
    ) -> typing.Literal["DateLastHeartbeat"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DateLastSession", b"_DateLastSession"]
    ) -> typing.Literal["DateLastSession"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DateStarted", b"_DateStarted"]
    ) -> typing.Literal["DateStarted"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_DateStopped", b"_DateStopped"]
    ) -> typing.Literal["DateStopped"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_IpAddress", b"_IpAddress"]
    ) -> typing.Literal["IpAddress"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_OperatingSystem", b"_OperatingSystem"]
    ) -> typing.Literal["OperatingSystem"] | None: ...
    @typing.overload
    def WhichOneof(
        self,
        oneof_group: typing.Literal[
            "_OperatingSystemVersion", b"_OperatingSystemVersion"
        ],
    ) -> typing.Literal["OperatingSystemVersion"] | None: ...

Global___Host: typing_extensions.TypeAlias = Host

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

    HOSTID_FIELD_NUMBER: builtins.int
    NETWORKID_FIELD_NUMBER: builtins.int
    TOKENCOUNT_FIELD_NUMBER: builtins.int
    SECONDSPROCESSINGTOKENS_FIELD_NUMBER: builtins.int
    TIMEFRAME_FIELD_NUMBER: builtins.int
    DATE_FIELD_NUMBER: builtins.int
    PART_FIELD_NUMBER: builtins.int
    HostId: builtins.str
    NetworkId: builtins.str
    TokenCount: builtins.int
    SecondsProcessingTokens: builtins.int
    Timeframe: protos.v1.models.SystemModels_pb2.Timeframe.ValueType
    Part: builtins.int
    @property
    def Date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        HostId: builtins.str = ...,
        NetworkId: builtins.str = ...,
        TokenCount: builtins.int = ...,
        SecondsProcessingTokens: builtins.int = ...,
        Timeframe: protos.v1.models.SystemModels_pb2.Timeframe.ValueType = ...,
        Date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        Part: builtins.int | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal["Date", b"Date", "Part", b"Part", "_Part", b"_Part"],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "Date",
            b"Date",
            "HostId",
            b"HostId",
            "NetworkId",
            b"NetworkId",
            "Part",
            b"Part",
            "SecondsProcessingTokens",
            b"SecondsProcessingTokens",
            "Timeframe",
            b"Timeframe",
            "TokenCount",
            b"TokenCount",
            "_Part",
            b"_Part",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_Part", b"_Part"]
    ) -> typing.Literal["Part"] | None: ...

Global___HostStat: typing_extensions.TypeAlias = HostStat
