"""
@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.fab_pb2
import flwr.proto.federation_pb2
import flwr.proto.node_pb2
import flwr.proto.recorddict_pb2
import flwr.proto.run_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 StartRunRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    FAB_FIELD_NUMBER: builtins.int
    OVERRIDE_CONFIG_FIELD_NUMBER: builtins.int
    FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
    APP_SPEC_FIELD_NUMBER: builtins.int
    FEDERATION_FIELD_NUMBER: builtins.int
    app_spec: builtins.str
    federation: builtins.str
    @property
    def fab(self) -> flwr.proto.fab_pb2.Fab: ...
    @property
    def override_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, flwr.proto.transport_pb2.Scalar]: ...
    @property
    def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigRecord: ...
    def __init__(
        self,
        *,
        fab: flwr.proto.fab_pb2.Fab | None = ...,
        override_config: collections.abc.Mapping[builtins.str, flwr.proto.transport_pb2.Scalar] | None = ...,
        federation_options: flwr.proto.recorddict_pb2.ConfigRecord | None = ...,
        app_spec: builtins.str = ...,
        federation: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fab", b"fab", "federation_options", b"federation_options"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["app_spec", b"app_spec", "fab", b"fab", "federation", b"federation", "federation_options", b"federation_options", "override_config", b"override_config"]) -> None: ...

global___StartRunRequest = StartRunRequest

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

    RUN_ID_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    def __init__(
        self,
        *,
        run_id: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...

global___StartRunResponse = StartRunResponse

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

    RUN_ID_FIELD_NUMBER: builtins.int
    AFTER_TIMESTAMP_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    after_timestamp: builtins.float
    def __init__(
        self,
        *,
        run_id: builtins.int = ...,
        after_timestamp: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["after_timestamp", b"after_timestamp", "run_id", b"run_id"]) -> None: ...

global___StreamLogsRequest = StreamLogsRequest

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

    LOG_OUTPUT_FIELD_NUMBER: builtins.int
    LATEST_TIMESTAMP_FIELD_NUMBER: builtins.int
    log_output: builtins.str
    latest_timestamp: builtins.float
    def __init__(
        self,
        *,
        log_output: builtins.str = ...,
        latest_timestamp: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["latest_timestamp", b"latest_timestamp", "log_output", b"log_output"]) -> None: ...

global___StreamLogsResponse = StreamLogsResponse

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

    RUN_ID_FIELD_NUMBER: builtins.int
    run_id: builtins.int
    def __init__(
        self,
        *,
        run_id: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_run_id", b"_run_id", "run_id", b"run_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...

global___ListRunsRequest = ListRunsRequest

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.int
        @property
        def value(self) -> flwr.proto.run_pb2.Run: ...
        def __init__(
            self,
            *,
            key: builtins.int = ...,
            value: flwr.proto.run_pb2.Run | 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_DICT_FIELD_NUMBER: builtins.int
    NOW_FIELD_NUMBER: builtins.int
    now: builtins.str
    @property
    def run_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, flwr.proto.run_pb2.Run]: ...
    def __init__(
        self,
        *,
        run_dict: collections.abc.Mapping[builtins.int, flwr.proto.run_pb2.Run] | None = ...,
        now: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["now", b"now", "run_dict", b"run_dict"]) -> None: ...

global___ListRunsResponse = ListRunsResponse

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

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

global___GetLoginDetailsRequest = GetLoginDetailsRequest

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

    AUTHN_TYPE_FIELD_NUMBER: builtins.int
    DEVICE_CODE_FIELD_NUMBER: builtins.int
    VERIFICATION_URI_COMPLETE_FIELD_NUMBER: builtins.int
    EXPIRES_IN_FIELD_NUMBER: builtins.int
    INTERVAL_FIELD_NUMBER: builtins.int
    authn_type: builtins.str
    device_code: builtins.str
    verification_uri_complete: builtins.str
    expires_in: builtins.int
    interval: builtins.int
    def __init__(
        self,
        *,
        authn_type: builtins.str = ...,
        device_code: builtins.str = ...,
        verification_uri_complete: builtins.str = ...,
        expires_in: builtins.int = ...,
        interval: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["authn_type", b"authn_type", "device_code", b"device_code", "expires_in", b"expires_in", "interval", b"interval", "verification_uri_complete", b"verification_uri_complete"]) -> None: ...

global___GetLoginDetailsResponse = GetLoginDetailsResponse

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

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

global___GetAuthTokensRequest = GetAuthTokensRequest

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

    ACCESS_TOKEN_FIELD_NUMBER: builtins.int
    REFRESH_TOKEN_FIELD_NUMBER: builtins.int
    access_token: builtins.str
    refresh_token: builtins.str
    def __init__(
        self,
        *,
        access_token: builtins.str = ...,
        refresh_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["access_token", b"access_token", "refresh_token", b"refresh_token"]) -> None: ...

global___GetAuthTokensResponse = GetAuthTokensResponse

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

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

global___StopRunRequest = StopRunRequest

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

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

global___StopRunResponse = StopRunResponse

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

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

global___PullArtifactsRequest = PullArtifactsRequest

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

    URL_FIELD_NUMBER: builtins.int
    url: builtins.str
    def __init__(
        self,
        *,
        url: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_url", b"_url", "url", b"url"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_url", b"_url"]) -> typing.Literal["url"] | None: ...

global___PullArtifactsResponse = PullArtifactsResponse

@typing.final
class RegisterNodeRequest(google.protobuf.message.Message):
    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___RegisterNodeRequest = RegisterNodeRequest

@typing.final
class RegisterNodeResponse(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 = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_node_id", b"_node_id", "node_id", b"node_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_node_id", b"_node_id"]) -> typing.Literal["node_id"] | None: ...

global___RegisterNodeResponse = RegisterNodeResponse

@typing.final
class UnregisterNodeRequest(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___UnregisterNodeRequest = UnregisterNodeRequest

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

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

global___UnregisterNodeResponse = UnregisterNodeResponse

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

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

global___ListNodesRequest = ListNodesRequest

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

    NODES_INFO_FIELD_NUMBER: builtins.int
    NOW_FIELD_NUMBER: builtins.int
    now: builtins.str
    @property
    def nodes_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
    def __init__(
        self,
        *,
        nodes_info: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
        now: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["nodes_info", b"nodes_info", "now", b"now"]) -> None: ...

global___ListNodesResponse = ListNodesResponse

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

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

global___ListFederationsRequest = ListFederationsRequest

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

    FEDERATIONS_FIELD_NUMBER: builtins.int
    @property
    def federations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.federation_pb2.Federation]: ...
    def __init__(
        self,
        *,
        federations: collections.abc.Iterable[flwr.proto.federation_pb2.Federation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["federations", b"federations"]) -> None: ...

global___ListFederationsResponse = ListFederationsResponse

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

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

global___ShowFederationRequest = ShowFederationRequest

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

    FEDERATION_FIELD_NUMBER: builtins.int
    NOW_FIELD_NUMBER: builtins.int
    now: builtins.str
    @property
    def federation(self) -> flwr.proto.federation_pb2.Federation: ...
    def __init__(
        self,
        *,
        federation: flwr.proto.federation_pb2.Federation | None = ...,
        now: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["federation", b"federation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["federation", b"federation", "now", b"now"]) -> None: ...

global___ShowFederationResponse = ShowFederationResponse
