"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2022 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.message_pb2
import flwr.proto.node_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class RegisterNodeFleetRequest(google.protobuf.message.Message):
    """RegisterNode messages (add prefix to avoid name clash)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PUBLIC_KEY_FIELD_NUMBER: builtins.int
    public_key: builtins.bytes
    def __init__(
        self,
        *,
        public_key: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["public_key", b"public_key"]) -> None: ...

global___RegisterNodeFleetRequest = RegisterNodeFleetRequest

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

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

global___RegisterNodeFleetResponse = RegisterNodeFleetResponse

@typing.final
class ActivateNodeRequest(google.protobuf.message.Message):
    """ActivateNode messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PUBLIC_KEY_FIELD_NUMBER: builtins.int
    HEARTBEAT_INTERVAL_FIELD_NUMBER: builtins.int
    public_key: builtins.bytes
    heartbeat_interval: builtins.float
    def __init__(
        self,
        *,
        public_key: builtins.bytes = ...,
        heartbeat_interval: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["heartbeat_interval", b"heartbeat_interval", "public_key", b"public_key"]) -> None: ...

global___ActivateNodeRequest = ActivateNodeRequest

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

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

global___ActivateNodeResponse = ActivateNodeResponse

@typing.final
class DeactivateNodeRequest(google.protobuf.message.Message):
    """DeactivateNode messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___DeactivateNodeRequest = DeactivateNodeRequest

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

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

global___DeactivateNodeResponse = DeactivateNodeResponse

@typing.final
class UnregisterNodeFleetRequest(google.protobuf.message.Message):
    """UnregisterNode messages (add prefix to avoid name clash)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___UnregisterNodeFleetRequest = UnregisterNodeFleetRequest

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

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

global___UnregisterNodeFleetResponse = UnregisterNodeFleetResponse

@typing.final
class PullMessagesRequest(google.protobuf.message.Message):
    """PullMessages messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_FIELD_NUMBER: builtins.int
    MESSAGE_IDS_FIELD_NUMBER: builtins.int
    @property
    def node(self) -> flwr.proto.node_pb2.Node: ...
    @property
    def message_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        node: flwr.proto.node_pb2.Node | None = ...,
        message_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["message_ids", b"message_ids", "node", b"node"]) -> None: ...

global___PullMessagesRequest = PullMessagesRequest

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

    RECONNECT_FIELD_NUMBER: builtins.int
    MESSAGES_LIST_FIELD_NUMBER: builtins.int
    MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
    @property
    def reconnect(self) -> global___Reconnect: ...
    @property
    def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
    @property
    def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
    def __init__(
        self,
        *,
        reconnect: global___Reconnect | None = ...,
        messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
        message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["reconnect", b"reconnect"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["message_object_trees", b"message_object_trees", "messages_list", b"messages_list", "reconnect", b"reconnect"]) -> None: ...

global___PullMessagesResponse = PullMessagesResponse

@typing.final
class PushMessagesRequest(google.protobuf.message.Message):
    """PushMessages messages"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_FIELD_NUMBER: builtins.int
    MESSAGES_LIST_FIELD_NUMBER: builtins.int
    MESSAGE_OBJECT_TREES_FIELD_NUMBER: builtins.int
    @property
    def node(self) -> flwr.proto.node_pb2.Node: ...
    @property
    def messages_list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.Message]: ...
    @property
    def message_object_trees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.message_pb2.ObjectTree]: ...
    def __init__(
        self,
        *,
        node: flwr.proto.node_pb2.Node | None = ...,
        messages_list: collections.abc.Iterable[flwr.proto.message_pb2.Message] | None = ...,
        message_object_trees: collections.abc.Iterable[flwr.proto.message_pb2.ObjectTree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["message_object_trees", b"message_object_trees", "messages_list", b"messages_list", "node", b"node"]) -> None: ...

global___PushMessagesRequest = PushMessagesRequest

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

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

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

    RECONNECT_FIELD_NUMBER: builtins.int
    RESULTS_FIELD_NUMBER: builtins.int
    OBJECTS_TO_PUSH_FIELD_NUMBER: builtins.int
    @property
    def reconnect(self) -> global___Reconnect: ...
    @property
    def results(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: ...
    @property
    def objects_to_push(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        reconnect: global___Reconnect | None = ...,
        results: collections.abc.Mapping[builtins.str, builtins.int] | None = ...,
        objects_to_push: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["reconnect", b"reconnect"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["objects_to_push", b"objects_to_push", "reconnect", b"reconnect", "results", b"results"]) -> None: ...

global___PushMessagesResponse = PushMessagesResponse

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

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

global___Reconnect = Reconnect
