"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import sys

import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2

import temporalio.api.enums.v1.namespace_pb2

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class ClusterReplicationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLUSTER_NAME_FIELD_NUMBER: builtins.int
    cluster_name: builtins.str
    def __init__(
        self,
        *,
        cluster_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["cluster_name", b"cluster_name"]
    ) -> None: ...

global___ClusterReplicationConfig = ClusterReplicationConfig

class NamespaceReplicationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTIVE_CLUSTER_NAME_FIELD_NUMBER: builtins.int
    CLUSTERS_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    active_cluster_name: builtins.str
    @property
    def clusters(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___ClusterReplicationConfig
    ]: ...
    state: temporalio.api.enums.v1.namespace_pb2.ReplicationState.ValueType
    def __init__(
        self,
        *,
        active_cluster_name: builtins.str = ...,
        clusters: collections.abc.Iterable[global___ClusterReplicationConfig]
        | None = ...,
        state: temporalio.api.enums.v1.namespace_pb2.ReplicationState.ValueType = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "active_cluster_name",
            b"active_cluster_name",
            "clusters",
            b"clusters",
            "state",
            b"state",
        ],
    ) -> None: ...

global___NamespaceReplicationConfig = NamespaceReplicationConfig

class FailoverStatus(google.protobuf.message.Message):
    """Represents a historical replication status of a Namespace"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FAILOVER_TIME_FIELD_NUMBER: builtins.int
    FAILOVER_VERSION_FIELD_NUMBER: builtins.int
    @property
    def failover_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Timestamp when the Cluster switched to the following failover_version"""
    failover_version: builtins.int
    def __init__(
        self,
        *,
        failover_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        failover_version: builtins.int = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["failover_time", b"failover_time"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "failover_time", b"failover_time", "failover_version", b"failover_version"
        ],
    ) -> None: ...

global___FailoverStatus = FailoverStatus
