"""
@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.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message

import temporalio.api.enums.v1.common_pb2
import temporalio.api.nexus.v1.message_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class AddSearchAttributesRequest(google.protobuf.message.Message):
    """(-- Search Attribute --)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    SEARCH_ATTRIBUTES_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    @property
    def search_attributes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[
        builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
    ]:
        """Mapping between search attribute name and its IndexedValueType."""
    namespace: builtins.str
    def __init__(
        self,
        *,
        search_attributes: collections.abc.Mapping[
            builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        ]
        | None = ...,
        namespace: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "namespace", b"namespace", "search_attributes", b"search_attributes"
        ],
    ) -> None: ...

global___AddSearchAttributesRequest = AddSearchAttributesRequest

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

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

global___AddSearchAttributesResponse = AddSearchAttributesResponse

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

    SEARCH_ATTRIBUTES_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    @property
    def search_attributes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Search attribute names to delete."""
    namespace: builtins.str
    def __init__(
        self,
        *,
        search_attributes: collections.abc.Iterable[builtins.str] | None = ...,
        namespace: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "namespace", b"namespace", "search_attributes", b"search_attributes"
        ],
    ) -> None: ...

global___RemoveSearchAttributesRequest = RemoveSearchAttributesRequest

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

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

global___RemoveSearchAttributesResponse = RemoveSearchAttributesResponse

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

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

global___ListSearchAttributesRequest = ListSearchAttributesRequest

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    class StorageSchemaEntry(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_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    CUSTOM_ATTRIBUTES_FIELD_NUMBER: builtins.int
    SYSTEM_ATTRIBUTES_FIELD_NUMBER: builtins.int
    STORAGE_SCHEMA_FIELD_NUMBER: builtins.int
    @property
    def custom_attributes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[
        builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
    ]:
        """Mapping between custom (user-registered) search attribute name to its IndexedValueType."""
    @property
    def system_attributes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[
        builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
    ]:
        """Mapping between system (predefined) search attribute name to its IndexedValueType."""
    @property
    def storage_schema(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Mapping from the attribute name to the visibility storage native type."""
    def __init__(
        self,
        *,
        custom_attributes: collections.abc.Mapping[
            builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        ]
        | None = ...,
        system_attributes: collections.abc.Mapping[
            builtins.str, temporalio.api.enums.v1.common_pb2.IndexedValueType.ValueType
        ]
        | None = ...,
        storage_schema: collections.abc.Mapping[builtins.str, builtins.str]
        | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "custom_attributes",
            b"custom_attributes",
            "storage_schema",
            b"storage_schema",
            "system_attributes",
            b"system_attributes",
        ],
    ) -> None: ...

global___ListSearchAttributesResponse = ListSearchAttributesResponse

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

    NAMESPACE_FIELD_NUMBER: builtins.int
    NAMESPACE_ID_FIELD_NUMBER: builtins.int
    NAMESPACE_DELETE_DELAY_FIELD_NUMBER: builtins.int
    namespace: builtins.str
    """Only one of namespace or namespace_id must be specified to identify namespace."""
    namespace_id: builtins.str
    @property
    def namespace_delete_delay(self) -> google.protobuf.duration_pb2.Duration:
        """If provided, the deletion of namespace info will be delayed for the given duration (0 means no delay).
        If not provided, the default delay configured in the cluster will be used.
        """
    def __init__(
        self,
        *,
        namespace: builtins.str = ...,
        namespace_id: builtins.str = ...,
        namespace_delete_delay: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "namespace_delete_delay", b"namespace_delete_delay"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "namespace",
            b"namespace",
            "namespace_delete_delay",
            b"namespace_delete_delay",
            "namespace_id",
            b"namespace_id",
        ],
    ) -> None: ...

global___DeleteNamespaceRequest = DeleteNamespaceRequest

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

    DELETED_NAMESPACE_FIELD_NUMBER: builtins.int
    deleted_namespace: builtins.str
    """Temporary namespace name that is used during reclaim resources step."""
    def __init__(
        self,
        *,
        deleted_namespace: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "deleted_namespace", b"deleted_namespace"
        ],
    ) -> None: ...

global___DeleteNamespaceResponse = DeleteNamespaceResponse

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

    FRONTEND_ADDRESS_FIELD_NUMBER: builtins.int
    ENABLE_REMOTE_CLUSTER_CONNECTION_FIELD_NUMBER: builtins.int
    FRONTEND_HTTP_ADDRESS_FIELD_NUMBER: builtins.int
    frontend_address: builtins.str
    """Frontend Address is a cross cluster accessible address for gRPC traffic. This field is required."""
    enable_remote_cluster_connection: builtins.bool
    """Flag to enable / disable the cross cluster connection."""
    frontend_http_address: builtins.str
    """Frontend HTTP Address is a cross cluster accessible address for HTTP traffic. This field is optional. If not provided
     on update, the existing HTTP address will be removed.
    """
    def __init__(
        self,
        *,
        frontend_address: builtins.str = ...,
        enable_remote_cluster_connection: builtins.bool = ...,
        frontend_http_address: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "enable_remote_cluster_connection",
            b"enable_remote_cluster_connection",
            "frontend_address",
            b"frontend_address",
            "frontend_http_address",
            b"frontend_http_address",
        ],
    ) -> None: ...

global___AddOrUpdateRemoteClusterRequest = AddOrUpdateRemoteClusterRequest

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

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

global___AddOrUpdateRemoteClusterResponse = AddOrUpdateRemoteClusterResponse

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

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

global___RemoveRemoteClusterRequest = RemoveRemoteClusterRequest

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

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

global___RemoveRemoteClusterResponse = RemoveRemoteClusterResponse

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

    PAGE_SIZE_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    page_size: builtins.int
    next_page_token: builtins.bytes
    def __init__(
        self,
        *,
        page_size: builtins.int = ...,
        next_page_token: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "next_page_token", b"next_page_token", "page_size", b"page_size"
        ],
    ) -> None: ...

global___ListClustersRequest = ListClustersRequest

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

    CLUSTERS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    @property
    def clusters(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___ClusterMetadata
    ]:
        """List of all cluster information"""
    next_page_token: builtins.bytes
    def __init__(
        self,
        *,
        clusters: collections.abc.Iterable[global___ClusterMetadata] | None = ...,
        next_page_token: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "clusters", b"clusters", "next_page_token", b"next_page_token"
        ],
    ) -> None: ...

global___ListClustersResponse = ListClustersResponse

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

    CLUSTER_NAME_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    HTTP_ADDRESS_FIELD_NUMBER: builtins.int
    INITIAL_FAILOVER_VERSION_FIELD_NUMBER: builtins.int
    HISTORY_SHARD_COUNT_FIELD_NUMBER: builtins.int
    IS_CONNECTION_ENABLED_FIELD_NUMBER: builtins.int
    cluster_name: builtins.str
    """Name of the cluster name."""
    cluster_id: builtins.str
    """Id of the cluster."""
    address: builtins.str
    """gRPC address."""
    http_address: builtins.str
    """HTTP address, if one exists."""
    initial_failover_version: builtins.int
    """A unique failover version across all connected clusters."""
    history_shard_count: builtins.int
    """History service shard number."""
    is_connection_enabled: builtins.bool
    """A flag to indicate if a connection is active."""
    def __init__(
        self,
        *,
        cluster_name: builtins.str = ...,
        cluster_id: builtins.str = ...,
        address: builtins.str = ...,
        http_address: builtins.str = ...,
        initial_failover_version: builtins.int = ...,
        history_shard_count: builtins.int = ...,
        is_connection_enabled: builtins.bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "address",
            b"address",
            "cluster_id",
            b"cluster_id",
            "cluster_name",
            b"cluster_name",
            "history_shard_count",
            b"history_shard_count",
            "http_address",
            b"http_address",
            "initial_failover_version",
            b"initial_failover_version",
            "is_connection_enabled",
            b"is_connection_enabled",
        ],
    ) -> None: ...

global___ClusterMetadata = ClusterMetadata

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

    ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Server-generated unique endpoint ID."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["id", b"id"]
    ) -> None: ...

global___GetNexusEndpointRequest = GetNexusEndpointRequest

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

    ENDPOINT_FIELD_NUMBER: builtins.int
    @property
    def endpoint(self) -> temporalio.api.nexus.v1.message_pb2.Endpoint: ...
    def __init__(
        self,
        *,
        endpoint: temporalio.api.nexus.v1.message_pb2.Endpoint | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> None: ...

global___GetNexusEndpointResponse = GetNexusEndpointResponse

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

    SPEC_FIELD_NUMBER: builtins.int
    @property
    def spec(self) -> temporalio.api.nexus.v1.message_pb2.EndpointSpec:
        """Endpoint definition to create."""
    def __init__(
        self,
        *,
        spec: temporalio.api.nexus.v1.message_pb2.EndpointSpec | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["spec", b"spec"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["spec", b"spec"]
    ) -> None: ...

global___CreateNexusEndpointRequest = CreateNexusEndpointRequest

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

    ENDPOINT_FIELD_NUMBER: builtins.int
    @property
    def endpoint(self) -> temporalio.api.nexus.v1.message_pb2.Endpoint:
        """Data post acceptance. Can be used to issue additional updates to this record."""
    def __init__(
        self,
        *,
        endpoint: temporalio.api.nexus.v1.message_pb2.Endpoint | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> None: ...

global___CreateNexusEndpointResponse = CreateNexusEndpointResponse

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

    ID_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Server-generated unique endpoint ID."""
    version: builtins.int
    """Data version for this endpoint. Must match current version."""
    @property
    def spec(self) -> temporalio.api.nexus.v1.message_pb2.EndpointSpec: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        version: builtins.int = ...,
        spec: temporalio.api.nexus.v1.message_pb2.EndpointSpec | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["spec", b"spec"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "id", b"id", "spec", b"spec", "version", b"version"
        ],
    ) -> None: ...

global___UpdateNexusEndpointRequest = UpdateNexusEndpointRequest

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

    ENDPOINT_FIELD_NUMBER: builtins.int
    @property
    def endpoint(self) -> temporalio.api.nexus.v1.message_pb2.Endpoint:
        """Data post acceptance. Can be used to issue additional updates to this record."""
    def __init__(
        self,
        *,
        endpoint: temporalio.api.nexus.v1.message_pb2.Endpoint | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["endpoint", b"endpoint"]
    ) -> None: ...

global___UpdateNexusEndpointResponse = UpdateNexusEndpointResponse

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

    ID_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Server-generated unique endpoint ID."""
    version: builtins.int
    """Data version for this endpoint. Must match current version."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        version: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["id", b"id", "version", b"version"]
    ) -> None: ...

global___DeleteNexusEndpointRequest = DeleteNexusEndpointRequest

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

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

global___DeleteNexusEndpointResponse = DeleteNexusEndpointResponse

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

    PAGE_SIZE_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    page_size: builtins.int
    next_page_token: builtins.bytes
    """To get the next page, pass in `ListNexusEndpointsResponse.next_page_token` from the previous page's
    response, the token will be empty if there's no other page.
    Note: the last page may be empty if the total number of endpoints registered is a multiple of the page size.
    """
    name: builtins.str
    """Name of the incoming endpoint to filter on - optional. Specifying this will result in zero or one results.
    (-- api-linter: core::203::field-behavior-required=disabled
        aip.dev/not-precedent: Not following linter rules. --)
    """
    def __init__(
        self,
        *,
        page_size: builtins.int = ...,
        next_page_token: builtins.bytes = ...,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "name",
            b"name",
            "next_page_token",
            b"next_page_token",
            "page_size",
            b"page_size",
        ],
    ) -> None: ...

global___ListNexusEndpointsRequest = ListNexusEndpointsRequest

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

    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    ENDPOINTS_FIELD_NUMBER: builtins.int
    next_page_token: builtins.bytes
    """Token for getting the next page."""
    @property
    def endpoints(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        temporalio.api.nexus.v1.message_pb2.Endpoint
    ]: ...
    def __init__(
        self,
        *,
        next_page_token: builtins.bytes = ...,
        endpoints: collections.abc.Iterable[
            temporalio.api.nexus.v1.message_pb2.Endpoint
        ]
        | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "endpoints", b"endpoints", "next_page_token", b"next_page_token"
        ],
    ) -> None: ...

global___ListNexusEndpointsResponse = ListNexusEndpointsResponse
