"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright (c) 2019-2024 Iotic Labs Ltd. All rights reserved.

Iotics Web protocol definitions (hosts)
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import iotics.api.common_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class GetHostIDRequest(google.protobuf.message.Message):
    """GetHostIDRequest gets the local host twin's ID"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["headers", b"headers"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headers", b"headers"]) -> None: ...

global___GetHostIDRequest = GetHostIDRequest

@typing.final
class GetHostIDResponse(google.protobuf.message.Message):
    """GetHostIDResponse is the response containing the local host twin's ID"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class Payload(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: ...

    HEADERS_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers: ...
    @property
    def payload(self) -> global___GetHostIDResponse.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___GetHostIDResponse.Payload | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> None: ...

global___GetHostIDResponse = GetHostIDResponse

@typing.final
class HostAllowedArguments(google.protobuf.message.Message):
    """HostAllowedArguments are the arguments determining which host and twin the allow list check applies to."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REMOTEHOSTID_FIELD_NUMBER: builtins.int
    TWINID_FIELD_NUMBER: builtins.int
    remoteHostId: builtins.str
    """Remote Host Id"""
    @property
    def twinId(self) -> iotics.api.common_pb2.TwinID:
        """TwinDID of the twin to which the request applies"""

    def __init__(
        self,
        *,
        remoteHostId: builtins.str = ...,
        twinId: iotics.api.common_pb2.TwinID | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["twinId", b"twinId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["remoteHostId", b"remoteHostId", "twinId", b"twinId"]) -> None: ...

global___HostAllowedArguments = HostAllowedArguments

@typing.final
class HostAllowedResponsePayload(google.protobuf.message.Message):
    """HostAllowedResponsePayload contans response details to a data/meta allow list check."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REMOTEHOSTID_FIELD_NUMBER: builtins.int
    TWINID_FIELD_NUMBER: builtins.int
    ALLOWED_FIELD_NUMBER: builtins.int
    remoteHostId: builtins.str
    """Remote Host Id"""
    allowed: builtins.bool
    """Whether the twin allows the remote host to perform meta or data actions"""
    @property
    def twinId(self) -> iotics.api.common_pb2.TwinID:
        """TwinDID of the twin to which the request applies"""

    def __init__(
        self,
        *,
        remoteHostId: builtins.str = ...,
        twinId: iotics.api.common_pb2.TwinID | None = ...,
        allowed: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["twinId", b"twinId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["allowed", b"allowed", "remoteHostId", b"remoteHostId", "twinId", b"twinId"]) -> None: ...

global___HostAllowedResponsePayload = HostAllowedResponsePayload

@typing.final
class IsHostDataAllowedRequest(google.protobuf.message.Message):
    """IsHostDataAllowedRequest determines whether a remote host is allowed to perform data requests against the given twin."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers:
        """IsHostDataAllowedRequest headers"""

    @property
    def args(self) -> global___HostAllowedArguments:
        """IsHostDataAllowedRequest mandatory arguments"""

    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        args: global___HostAllowedArguments | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["args", b"args", "headers", b"headers"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["args", b"args", "headers", b"headers"]) -> None: ...

global___IsHostDataAllowedRequest = IsHostDataAllowedRequest

@typing.final
class IsHostDataAllowedResponse(google.protobuf.message.Message):
    """IsHostDataAllowedResponse is the response to for an IsHostDataAllowed call"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers:
        """IsHostDataAllowedResponse headers"""

    @property
    def payload(self) -> global___HostAllowedResponsePayload:
        """IsHostDataAllowedResponse payload"""

    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___HostAllowedResponsePayload | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> None: ...

global___IsHostDataAllowedResponse = IsHostDataAllowedResponse

@typing.final
class IsHostMetaAllowedRequest(google.protobuf.message.Message):
    """IsHostMetaAllowedRequest determines whether a remote host is allowed to perform meta requests against the given twin."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers:
        """IsHostMetaAllowedRequest headers"""

    @property
    def args(self) -> global___HostAllowedArguments:
        """IsHostMetaAllowedRequest mandatory arguments"""

    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        args: global___HostAllowedArguments | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["args", b"args", "headers", b"headers"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["args", b"args", "headers", b"headers"]) -> None: ...

global___IsHostMetaAllowedRequest = IsHostMetaAllowedRequest

@typing.final
class IsHostMetaAllowedResponse(google.protobuf.message.Message):
    """IsHostDataAllowedResponse is the response to for an IsHostMetaAllowed call"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEADERS_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers:
        """IsHostMetaAllowedResponse headers"""

    @property
    def payload(self) -> global___HostAllowedResponsePayload:
        """IsHostMetaAllowedResponse payload"""

    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___HostAllowedResponsePayload | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headers", b"headers", "payload", b"payload"]) -> None: ...

global___IsHostMetaAllowedResponse = IsHostMetaAllowedResponse
