"""
@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.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 Fab(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

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

    HASH_STR_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    VERIFICATIONS_FIELD_NUMBER: builtins.int
    hash_str: builtins.str
    """This field is the hash of the data field. It is used to identify the data.
    The hash is calculated using the SHA-256 algorithm and is represented as a
    hex string (sha256hex).
    """
    content: builtins.bytes
    """This field contains the fab file contents a one bytes blob."""
    @property
    def verifications(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Verifications."""

    def __init__(
        self,
        *,
        hash_str: builtins.str = ...,
        content: builtins.bytes = ...,
        verifications: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["content", b"content", "hash_str", b"hash_str", "verifications", b"verifications"]) -> None: ...

global___Fab = Fab

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

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

global___GetFabRequest = GetFabRequest

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

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

global___GetFabResponse = GetFabResponse
