"""
@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 (circles)
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import iotics.api.common_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Circle Identifier (using DID format)"""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id"]) -> None: ...

global___CircleID = CircleID

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

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

        CIRCLEID_FIELD_NUMBER: builtins.int
        PROPERTIES_FIELD_NUMBER: builtins.int
        @property
        def circleId(self) -> global___CircleID: ...
        @property
        def properties(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[iotics.api.common_pb2.Property]: ...
        def __init__(
            self,
            *,
            circleId: global___CircleID | None = ...,
            properties: collections.abc.Iterable[iotics.api.common_pb2.Property] | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["circleId", b"circleId"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["circleId", b"circleId", "properties", b"properties"]) -> 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___UpsertCircleRequest.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___UpsertCircleRequest.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___UpsertCircleRequest = UpsertCircleRequest

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

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

        CIRCLEID_FIELD_NUMBER: builtins.int
        @property
        def circleId(self) -> global___CircleID: ...
        def __init__(
            self,
            *,
            circleId: global___CircleID | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["circleId", b"circleId"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["circleId", b"circleId"]) -> 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___UpsertCircleResponse.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___UpsertCircleResponse.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___UpsertCircleResponse = UpsertCircleResponse

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

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

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

    HEADERS_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers: ...
    @property
    def args(self) -> global___DeleteCircleRequest.Arguments: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        args: global___DeleteCircleRequest.Arguments | 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___DeleteCircleRequest = DeleteCircleRequest

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

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

        CIRCLEID_FIELD_NUMBER: builtins.int
        @property
        def circleId(self) -> global___CircleID: ...
        def __init__(
            self,
            *,
            circleId: global___CircleID | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["circleId", b"circleId"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["circleId", b"circleId"]) -> 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___DeleteCircleResponse.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___DeleteCircleResponse.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___DeleteCircleResponse = DeleteCircleResponse

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

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

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

    HEADERS_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def headers(self) -> iotics.api.common_pb2.Headers: ...
    @property
    def args(self) -> global___DescribeCircleRequest.Arguments: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        args: global___DescribeCircleRequest.Arguments | 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___DescribeCircleRequest = DescribeCircleRequest

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

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

        PROPERTIES_FIELD_NUMBER: builtins.int
        UPDATEDAT_FIELD_NUMBER: builtins.int
        @property
        def properties(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[iotics.api.common_pb2.Property]: ...
        @property
        def updatedAt(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
        def __init__(
            self,
            *,
            properties: collections.abc.Iterable[iotics.api.common_pb2.Property] | None = ...,
            updatedAt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["updatedAt", b"updatedAt"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["properties", b"properties", "updatedAt", b"updatedAt"]) -> None: ...

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

        CIRCLEID_FIELD_NUMBER: builtins.int
        RESULT_FIELD_NUMBER: builtins.int
        @property
        def circleId(self) -> global___CircleID: ...
        @property
        def result(self) -> global___DescribeCircleResponse.MetaResult: ...
        def __init__(
            self,
            *,
            circleId: global___CircleID | None = ...,
            result: global___DescribeCircleResponse.MetaResult | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["circleId", b"circleId", "result", b"result"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["circleId", b"circleId", "result", b"result"]) -> 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___DescribeCircleResponse.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___DescribeCircleResponse.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___DescribeCircleResponse = DescribeCircleResponse

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

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

global___ListAllCirclesRequest = ListAllCirclesRequest

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

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

        CIRCLEID_FIELD_NUMBER: builtins.int
        PROPERTIES_FIELD_NUMBER: builtins.int
        UPDATEDAT_FIELD_NUMBER: builtins.int
        @property
        def circleId(self) -> global___CircleID: ...
        @property
        def properties(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[iotics.api.common_pb2.Property]: ...
        @property
        def updatedAt(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
        def __init__(
            self,
            *,
            circleId: global___CircleID | None = ...,
            properties: collections.abc.Iterable[iotics.api.common_pb2.Property] | None = ...,
            updatedAt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["circleId", b"circleId", "updatedAt", b"updatedAt"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["circleId", b"circleId", "properties", b"properties", "updatedAt", b"updatedAt"]) -> None: ...

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

        CIRCLES_FIELD_NUMBER: builtins.int
        @property
        def circles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListAllCirclesResponse.CircleDetails]: ...
        def __init__(
            self,
            *,
            circles: collections.abc.Iterable[global___ListAllCirclesResponse.CircleDetails] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["circles", b"circles"]) -> 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___ListAllCirclesResponse.Payload: ...
    def __init__(
        self,
        *,
        headers: iotics.api.common_pb2.Headers | None = ...,
        payload: global___ListAllCirclesResponse.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___ListAllCirclesResponse = ListAllCirclesResponse
