"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2024 Flower Labs GmbH. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================
"""

import builtins
import collections.abc
import flwr.proto.error_pb2
import flwr.proto.node_pb2
import flwr.proto.recorddict_pb2
import flwr.proto.transport_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    METADATA_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> global___Metadata: ...
    @property
    def content(self) -> flwr.proto.recorddict_pb2.RecordDict: ...
    @property
    def error(self) -> flwr.proto.error_pb2.Error: ...
    def __init__(
        self,
        *,
        metadata: global___Metadata | None = ...,
        content: flwr.proto.recorddict_pb2.RecordDict | None = ...,
        error: flwr.proto.error_pb2.Error | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["content", b"content", "error", b"error", "metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["content", b"content", "error", b"error", "metadata", b"metadata"]) -> None: ...

global___Message = Message

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> flwr.proto.transport_pb2.Scalar: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: flwr.proto.transport_pb2.Scalar | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> flwr.proto.transport_pb2.Scalar: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: flwr.proto.transport_pb2.Scalar | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    RUN_ID_FIELD_NUMBER: builtins.int
    NODE_ID_FIELD_NUMBER: builtins.int
    NODE_CONFIG_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    RUN_CONFIG_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    node_id: builtins.int
    @property
    def node_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
    @property
    def state(self) -> flwr.proto.recorddict_pb2.RecordDict: ...
    @property
    def run_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
    def __init__(
        self,
        *,
        run_id: builtins.int = ...,
        node_id: builtins.int = ...,
        node_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
        state: flwr.proto.recorddict_pb2.RecordDict | None = ...,
        run_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["state", b"state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["node_config", b"node_config", "node_id", b"node_id", "run_config", b"run_config", "run_id", b"run_id", "state", b"state"]) -> None: ...

global___Context = Context

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

    RUN_ID_FIELD_NUMBER: builtins.int
    MESSAGE_ID_FIELD_NUMBER: builtins.int
    SRC_NODE_ID_FIELD_NUMBER: builtins.int
    DST_NODE_ID_FIELD_NUMBER: builtins.int
    REPLY_TO_MESSAGE_ID_FIELD_NUMBER: builtins.int
    GROUP_ID_FIELD_NUMBER: builtins.int
    TTL_FIELD_NUMBER: builtins.int
    MESSAGE_TYPE_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    message_id: builtins.str
    src_node_id: builtins.int
    dst_node_id: builtins.int
    reply_to_message_id: builtins.str
    group_id: builtins.str
    ttl: builtins.float
    message_type: builtins.str
    created_at: builtins.float
    def __init__(
        self,
        *,
        run_id: builtins.int = ...,
        message_id: builtins.str = ...,
        src_node_id: builtins.int = ...,
        dst_node_id: builtins.int = ...,
        reply_to_message_id: builtins.str = ...,
        group_id: builtins.str = ...,
        ttl: builtins.float = ...,
        message_type: builtins.str = ...,
        created_at: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "dst_node_id", b"dst_node_id", "group_id", b"group_id", "message_id", b"message_id", "message_type", b"message_type", "reply_to_message_id", b"reply_to_message_id", "run_id", b"run_id", "src_node_id", b"src_node_id", "ttl", b"ttl"]) -> None: ...

global___Metadata = Metadata

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

    OBJECT_IDS_FIELD_NUMBER: builtins.int
    @property
    def object_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        object_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["object_ids", b"object_ids"]) -> None: ...

global___ObjectIDs = ObjectIDs

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

    OBJECT_ID_FIELD_NUMBER: builtins.int
    CHILDREN_FIELD_NUMBER: builtins.int
    object_id: builtins.str
    @property
    def children(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObjectTree]: ...
    def __init__(
        self,
        *,
        object_id: builtins.str = ...,
        children: collections.abc.Iterable[global___ObjectTree] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["children", b"children", "object_id", b"object_id"]) -> None: ...

global___ObjectTree = ObjectTree

@typing.final
class PushObjectRequest(google.protobuf.message.Message):
    """PushObject messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_FIELD_NUMBER: builtins.int
    RUN_ID_FIELD_NUMBER: builtins.int
    OBJECT_ID_FIELD_NUMBER: builtins.int
    OBJECT_CONTENT_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    object_id: builtins.str
    object_content: builtins.bytes
    @property
    def node(self) -> flwr.proto.node_pb2.Node: ...
    def __init__(
        self,
        *,
        node: flwr.proto.node_pb2.Node | None = ...,
        run_id: builtins.int = ...,
        object_id: builtins.str = ...,
        object_content: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["node", b"node", "object_content", b"object_content", "object_id", b"object_id", "run_id", b"run_id"]) -> None: ...

global___PushObjectRequest = PushObjectRequest

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

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

global___PushObjectResponse = PushObjectResponse

@typing.final
class PullObjectRequest(google.protobuf.message.Message):
    """PullObject messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_FIELD_NUMBER: builtins.int
    RUN_ID_FIELD_NUMBER: builtins.int
    OBJECT_ID_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    object_id: builtins.str
    @property
    def node(self) -> flwr.proto.node_pb2.Node: ...
    def __init__(
        self,
        *,
        node: flwr.proto.node_pb2.Node | None = ...,
        run_id: builtins.int = ...,
        object_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["node", b"node", "object_id", b"object_id", "run_id", b"run_id"]) -> None: ...

global___PullObjectRequest = PullObjectRequest

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

    OBJECT_FOUND_FIELD_NUMBER: builtins.int
    OBJECT_AVAILABLE_FIELD_NUMBER: builtins.int
    OBJECT_CONTENT_FIELD_NUMBER: builtins.int
    object_found: builtins.bool
    object_available: builtins.bool
    object_content: builtins.bytes
    def __init__(
        self,
        *,
        object_found: builtins.bool = ...,
        object_available: builtins.bool = ...,
        object_content: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["object_available", b"object_available", "object_content", b"object_content", "object_found", b"object_found"]) -> None: ...

global___PullObjectResponse = PullObjectResponse

@typing.final
class ConfirmMessageReceivedRequest(google.protobuf.message.Message):
    """ConfirmMessageReceived messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_FIELD_NUMBER: builtins.int
    RUN_ID_FIELD_NUMBER: builtins.int
    MESSAGE_OBJECT_ID_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    message_object_id: builtins.str
    @property
    def node(self) -> flwr.proto.node_pb2.Node: ...
    def __init__(
        self,
        *,
        node: flwr.proto.node_pb2.Node | None = ...,
        run_id: builtins.int = ...,
        message_object_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["message_object_id", b"message_object_id", "node", b"node", "run_id", b"run_id"]) -> None: ...

global___ConfirmMessageReceivedRequest = ConfirmMessageReceivedRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ConfirmMessageReceivedResponse = ConfirmMessageReceivedResponse
