import datetime

from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from tars.auth.v1 import auth_options_pb2 as _auth_options_pb2
from tars.docs.v1 import docs_pb2 as _docs_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class ConfigType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    CONFIG_TYPE_UNSPECIFIED: _ClassVar[ConfigType]
    CONFIG_TYPE_GLOBAL_ROUTES: _ClassVar[ConfigType]
    CONFIG_TYPE_USER_ROUTES: _ClassVar[ConfigType]
    CONFIG_TYPE_BYOK: _ClassVar[ConfigType]
    CONFIG_TYPE_MCP_PROFILE: _ClassVar[ConfigType]
    CONFIG_TYPE_MCP_BACKENDS: _ClassVar[ConfigType]
    CONFIG_TYPE_OAUTH_TOKEN: _ClassVar[ConfigType]
    CONFIG_TYPE_BYOK_BACKENDS: _ClassVar[ConfigType]
    CONFIG_TYPE_GUARDRAILS: _ClassVar[ConfigType]
    CONFIG_TYPE_PROXY_URL: _ClassVar[ConfigType]
    CONFIG_TYPE_PROXY: _ClassVar[ConfigType]
    CONFIG_TYPE_PROVIDER_SECRETS: _ClassVar[ConfigType]
    CONFIG_TYPE_DATAPLANE_UPGRADE: _ClassVar[ConfigType]
    CONFIG_TYPE_BYOK_SCOPED: _ClassVar[ConfigType]

class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    EVENT_TYPE_UNSPECIFIED: _ClassVar[EventType]
    EVENT_TYPE_NEW: _ClassVar[EventType]
    EVENT_TYPE_UPDATE: _ClassVar[EventType]
    EVENT_TYPE_UPGRADE: _ClassVar[EventType]
    EVENT_TYPE_UPGRADE_CANCEL: _ClassVar[EventType]
    EVENT_TYPE_UPGRADE_ROLLBACK: _ClassVar[EventType]
    EVENT_TYPE_DELETE: _ClassVar[EventType]
    EVENT_TYPE_UPDATE_BYOK: _ClassVar[EventType]
    EVENT_TYPE_UPDATE_MCP: _ClassVar[EventType]
    EVENT_TYPE_UPDATE_OAUTH: _ClassVar[EventType]
CONFIG_TYPE_UNSPECIFIED: ConfigType
CONFIG_TYPE_GLOBAL_ROUTES: ConfigType
CONFIG_TYPE_USER_ROUTES: ConfigType
CONFIG_TYPE_BYOK: ConfigType
CONFIG_TYPE_MCP_PROFILE: ConfigType
CONFIG_TYPE_MCP_BACKENDS: ConfigType
CONFIG_TYPE_OAUTH_TOKEN: ConfigType
CONFIG_TYPE_BYOK_BACKENDS: ConfigType
CONFIG_TYPE_GUARDRAILS: ConfigType
CONFIG_TYPE_PROXY_URL: ConfigType
CONFIG_TYPE_PROXY: ConfigType
CONFIG_TYPE_PROVIDER_SECRETS: ConfigType
CONFIG_TYPE_DATAPLANE_UPGRADE: ConfigType
CONFIG_TYPE_BYOK_SCOPED: ConfigType
EVENT_TYPE_UNSPECIFIED: EventType
EVENT_TYPE_NEW: EventType
EVENT_TYPE_UPDATE: EventType
EVENT_TYPE_UPGRADE: EventType
EVENT_TYPE_UPGRADE_CANCEL: EventType
EVENT_TYPE_UPGRADE_ROLLBACK: EventType
EVENT_TYPE_DELETE: EventType
EVENT_TYPE_UPDATE_BYOK: EventType
EVENT_TYPE_UPDATE_MCP: EventType
EVENT_TYPE_UPDATE_OAUTH: EventType

class GetConfigurationRequest(_message.Message):
    __slots__ = ("queries",)
    QUERIES_FIELD_NUMBER: _ClassVar[int]
    queries: _containers.RepeatedCompositeFieldContainer[UserConfigQuery]
    def __init__(self, queries: _Optional[_Iterable[_Union[UserConfigQuery, _Mapping]]] = ...) -> None: ...

class UserConfigQuery(_message.Message):
    __slots__ = ("user_id", "config_type", "current_version", "key_id")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_TYPE_FIELD_NUMBER: _ClassVar[int]
    CURRENT_VERSION_FIELD_NUMBER: _ClassVar[int]
    KEY_ID_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    config_type: ConfigType
    current_version: int
    key_id: str
    def __init__(self, user_id: _Optional[str] = ..., config_type: _Optional[_Union[ConfigType, str]] = ..., current_version: _Optional[int] = ..., key_id: _Optional[str] = ...) -> None: ...

class GetConfigurationResponse(_message.Message):
    __slots__ = ("configurations",)
    CONFIGURATIONS_FIELD_NUMBER: _ClassVar[int]
    configurations: _containers.RepeatedCompositeFieldContainer[Configuration]
    def __init__(self, configurations: _Optional[_Iterable[_Union[Configuration, _Mapping]]] = ...) -> None: ...

class TriggerUpdateRequest(_message.Message):
    __slots__ = ("user_id", "config_type", "event_type", "key_id", "workspace_id", "metadata")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_TYPE_FIELD_NUMBER: _ClassVar[int]
    EVENT_TYPE_FIELD_NUMBER: _ClassVar[int]
    KEY_ID_FIELD_NUMBER: _ClassVar[int]
    WORKSPACE_ID_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    config_type: ConfigType
    event_type: EventType
    key_id: str
    workspace_id: str
    metadata: TriggerMetadata
    def __init__(self, user_id: _Optional[str] = ..., config_type: _Optional[_Union[ConfigType, str]] = ..., event_type: _Optional[_Union[EventType, str]] = ..., key_id: _Optional[str] = ..., workspace_id: _Optional[str] = ..., metadata: _Optional[_Union[TriggerMetadata, _Mapping]] = ...) -> None: ...

class TriggerMetadata(_message.Message):
    __slots__ = ("dataplane_upgrade",)
    DATAPLANE_UPGRADE_FIELD_NUMBER: _ClassVar[int]
    dataplane_upgrade: DataplaneUpgradeTrigger
    def __init__(self, dataplane_upgrade: _Optional[_Union[DataplaneUpgradeTrigger, _Mapping]] = ...) -> None: ...

class DataplaneUpgradeTrigger(_message.Message):
    __slots__ = ("target_version", "allow_downtime", "credentials_ref", "persist_in_cluster", "acknowledged_preflight_checks")
    TARGET_VERSION_FIELD_NUMBER: _ClassVar[int]
    ALLOW_DOWNTIME_FIELD_NUMBER: _ClassVar[int]
    CREDENTIALS_REF_FIELD_NUMBER: _ClassVar[int]
    PERSIST_IN_CLUSTER_FIELD_NUMBER: _ClassVar[int]
    ACKNOWLEDGED_PREFLIGHT_CHECKS_FIELD_NUMBER: _ClassVar[int]
    target_version: str
    allow_downtime: bool
    credentials_ref: str
    persist_in_cluster: bool
    acknowledged_preflight_checks: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, target_version: _Optional[str] = ..., allow_downtime: _Optional[bool] = ..., credentials_ref: _Optional[str] = ..., persist_in_cluster: _Optional[bool] = ..., acknowledged_preflight_checks: _Optional[_Iterable[str]] = ...) -> None: ...

class TriggerUpdateResponse(_message.Message):
    __slots__ = ("configuration", "configuration_updated")
    CONFIGURATION_FIELD_NUMBER: _ClassVar[int]
    CONFIGURATION_UPDATED_FIELD_NUMBER: _ClassVar[int]
    configuration: Configuration
    configuration_updated: bool
    def __init__(self, configuration: _Optional[_Union[Configuration, _Mapping]] = ..., configuration_updated: _Optional[bool] = ...) -> None: ...

class ListConfigurationsRequest(_message.Message):
    __slots__ = ("user_id", "config_type", "page_size", "page_token")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_TYPE_FIELD_NUMBER: _ClassVar[int]
    PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
    PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    config_type: ConfigType
    page_size: int
    page_token: str
    def __init__(self, user_id: _Optional[str] = ..., config_type: _Optional[_Union[ConfigType, str]] = ..., page_size: _Optional[int] = ..., page_token: _Optional[str] = ...) -> None: ...

class ListConfigurationsResponse(_message.Message):
    __slots__ = ("configurations", "next_page_token")
    CONFIGURATIONS_FIELD_NUMBER: _ClassVar[int]
    NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
    configurations: _containers.RepeatedCompositeFieldContainer[Configuration]
    next_page_token: str
    def __init__(self, configurations: _Optional[_Iterable[_Union[Configuration, _Mapping]]] = ..., next_page_token: _Optional[str] = ...) -> None: ...

class ListPendingEventsRequest(_message.Message):
    __slots__ = ("limit", "doctor_runtime")
    LIMIT_FIELD_NUMBER: _ClassVar[int]
    DOCTOR_RUNTIME_FIELD_NUMBER: _ClassVar[int]
    limit: int
    doctor_runtime: DoctorRuntimeStatus
    def __init__(self, limit: _Optional[int] = ..., doctor_runtime: _Optional[_Union[DoctorRuntimeStatus, _Mapping]] = ...) -> None: ...

class DoctorRuntimeStatus(_message.Message):
    __slots__ = ("instance_id", "tare_version", "state", "reason", "last_successful_run", "observed_at")
    INSTANCE_ID_FIELD_NUMBER: _ClassVar[int]
    TARE_VERSION_FIELD_NUMBER: _ClassVar[int]
    STATE_FIELD_NUMBER: _ClassVar[int]
    REASON_FIELD_NUMBER: _ClassVar[int]
    LAST_SUCCESSFUL_RUN_FIELD_NUMBER: _ClassVar[int]
    OBSERVED_AT_FIELD_NUMBER: _ClassVar[int]
    instance_id: str
    tare_version: str
    state: str
    reason: str
    last_successful_run: _timestamp_pb2.Timestamp
    observed_at: _timestamp_pb2.Timestamp
    def __init__(self, instance_id: _Optional[str] = ..., tare_version: _Optional[str] = ..., state: _Optional[str] = ..., reason: _Optional[str] = ..., last_successful_run: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., observed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class ListPendingEventsResponse(_message.Message):
    __slots__ = ("events",)
    EVENTS_FIELD_NUMBER: _ClassVar[int]
    events: _containers.RepeatedCompositeFieldContainer[ConfigurationEvent]
    def __init__(self, events: _Optional[_Iterable[_Union[ConfigurationEvent, _Mapping]]] = ...) -> None: ...

class ReconcileWorkspaceRequest(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class ReconcileWorkspaceResponse(_message.Message):
    __slots__ = ("replayed_total", "replayed_global", "replayed_per_user", "replayed_per_user_per_key")
    REPLAYED_TOTAL_FIELD_NUMBER: _ClassVar[int]
    REPLAYED_GLOBAL_FIELD_NUMBER: _ClassVar[int]
    REPLAYED_PER_USER_FIELD_NUMBER: _ClassVar[int]
    REPLAYED_PER_USER_PER_KEY_FIELD_NUMBER: _ClassVar[int]
    replayed_total: int
    replayed_global: int
    replayed_per_user: int
    replayed_per_user_per_key: int
    def __init__(self, replayed_total: _Optional[int] = ..., replayed_global: _Optional[int] = ..., replayed_per_user: _Optional[int] = ..., replayed_per_user_per_key: _Optional[int] = ...) -> None: ...

class FullSyncWorkspaceRequest(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class FullSyncWorkspaceResponse(_message.Message):
    __slots__ = ("replayed_total", "replayed_per_user", "replayed_per_user_per_key")
    REPLAYED_TOTAL_FIELD_NUMBER: _ClassVar[int]
    REPLAYED_PER_USER_FIELD_NUMBER: _ClassVar[int]
    REPLAYED_PER_USER_PER_KEY_FIELD_NUMBER: _ClassVar[int]
    replayed_total: int
    replayed_per_user: int
    replayed_per_user_per_key: int
    def __init__(self, replayed_total: _Optional[int] = ..., replayed_per_user: _Optional[int] = ..., replayed_per_user_per_key: _Optional[int] = ...) -> None: ...

class ConfigurationEvent(_message.Message):
    __slots__ = ("id", "user_id", "config_type", "event_type", "key_id", "config_id", "config_version", "status", "triggered_at", "retry_count", "workspace_id", "metadata")
    ID_FIELD_NUMBER: _ClassVar[int]
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_TYPE_FIELD_NUMBER: _ClassVar[int]
    EVENT_TYPE_FIELD_NUMBER: _ClassVar[int]
    KEY_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_VERSION_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    TRIGGERED_AT_FIELD_NUMBER: _ClassVar[int]
    RETRY_COUNT_FIELD_NUMBER: _ClassVar[int]
    WORKSPACE_ID_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    id: str
    user_id: str
    config_type: ConfigType
    event_type: str
    key_id: str
    config_id: str
    config_version: int
    status: str
    triggered_at: _timestamp_pb2.Timestamp
    retry_count: int
    workspace_id: str
    metadata: str
    def __init__(self, id: _Optional[str] = ..., user_id: _Optional[str] = ..., config_type: _Optional[_Union[ConfigType, str]] = ..., event_type: _Optional[str] = ..., key_id: _Optional[str] = ..., config_id: _Optional[str] = ..., config_version: _Optional[int] = ..., status: _Optional[str] = ..., triggered_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., retry_count: _Optional[int] = ..., workspace_id: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ...

class AcknowledgeEventRequest(_message.Message):
    __slots__ = ("event_id", "worker_id")
    EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    WORKER_ID_FIELD_NUMBER: _ClassVar[int]
    event_id: str
    worker_id: str
    def __init__(self, event_id: _Optional[str] = ..., worker_id: _Optional[str] = ...) -> None: ...

class AcknowledgeEventResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...

class CompleteEventRequest(_message.Message):
    __slots__ = ("event_id", "success", "error_message")
    EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    event_id: str
    success: bool
    error_message: str
    def __init__(self, event_id: _Optional[str] = ..., success: _Optional[bool] = ..., error_message: _Optional[str] = ...) -> None: ...

class CompleteEventResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...

class ListActiveUsersRequest(_message.Message):
    __slots__ = ("limit",)
    LIMIT_FIELD_NUMBER: _ClassVar[int]
    limit: int
    def __init__(self, limit: _Optional[int] = ...) -> None: ...

class ListActiveUsersResponse(_message.Message):
    __slots__ = ("user_ids",)
    USER_IDS_FIELD_NUMBER: _ClassVar[int]
    user_ids: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, user_ids: _Optional[_Iterable[str]] = ...) -> None: ...

class Configuration(_message.Message):
    __slots__ = ("id", "user_id", "config_type", "config_data", "version", "key_id", "created_at", "updated_at")
    ID_FIELD_NUMBER: _ClassVar[int]
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_TYPE_FIELD_NUMBER: _ClassVar[int]
    CONFIG_DATA_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    KEY_ID_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_FIELD_NUMBER: _ClassVar[int]
    UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
    id: str
    user_id: str
    config_type: ConfigType
    config_data: str
    version: int
    key_id: str
    created_at: _timestamp_pb2.Timestamp
    updated_at: _timestamp_pb2.Timestamp
    def __init__(self, id: _Optional[str] = ..., user_id: _Optional[str] = ..., config_type: _Optional[_Union[ConfigType, str]] = ..., config_data: _Optional[str] = ..., version: _Optional[int] = ..., key_id: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class ProviderBackend(_message.Message):
    __slots__ = ("name", "owner", "provider", "weight", "priority", "byok_policy", "is_external", "model_name")
    NAME_FIELD_NUMBER: _ClassVar[int]
    OWNER_FIELD_NUMBER: _ClassVar[int]
    PROVIDER_FIELD_NUMBER: _ClassVar[int]
    WEIGHT_FIELD_NUMBER: _ClassVar[int]
    PRIORITY_FIELD_NUMBER: _ClassVar[int]
    BYOK_POLICY_FIELD_NUMBER: _ClassVar[int]
    IS_EXTERNAL_FIELD_NUMBER: _ClassVar[int]
    MODEL_NAME_FIELD_NUMBER: _ClassVar[int]
    name: str
    owner: str
    provider: str
    weight: int
    priority: int
    byok_policy: str
    is_external: bool
    model_name: str
    def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., provider: _Optional[str] = ..., weight: _Optional[int] = ..., priority: _Optional[int] = ..., byok_policy: _Optional[str] = ..., is_external: _Optional[bool] = ..., model_name: _Optional[str] = ...) -> None: ...

class SaveBYOKBackendsRequest(_message.Message):
    __slots__ = ("user_id", "key_address", "backends")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    KEY_ADDRESS_FIELD_NUMBER: _ClassVar[int]
    BACKENDS_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    key_address: str
    backends: _containers.RepeatedCompositeFieldContainer[ProviderBackend]
    def __init__(self, user_id: _Optional[str] = ..., key_address: _Optional[str] = ..., backends: _Optional[_Iterable[_Union[ProviderBackend, _Mapping]]] = ...) -> None: ...

class SaveBYOKBackendsResponse(_message.Message):
    __slots__ = ("configuration", "updated")
    CONFIGURATION_FIELD_NUMBER: _ClassVar[int]
    UPDATED_FIELD_NUMBER: _ClassVar[int]
    configuration: Configuration
    updated: bool
    def __init__(self, configuration: _Optional[_Union[Configuration, _Mapping]] = ..., updated: _Optional[bool] = ...) -> None: ...

class DeleteBYOKBackendsRequest(_message.Message):
    __slots__ = ("user_id",)
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    def __init__(self, user_id: _Optional[str] = ...) -> None: ...

class DeleteBYOKBackendsResponse(_message.Message):
    __slots__ = ("deleted",)
    DELETED_FIELD_NUMBER: _ClassVar[int]
    deleted: bool
    def __init__(self, deleted: _Optional[bool] = ...) -> None: ...

class RevokeUserTokenRequest(_message.Message):
    __slots__ = ("jti", "user_id", "reason")
    JTI_FIELD_NUMBER: _ClassVar[int]
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    REASON_FIELD_NUMBER: _ClassVar[int]
    jti: str
    user_id: str
    reason: str
    def __init__(self, jti: _Optional[str] = ..., user_id: _Optional[str] = ..., reason: _Optional[str] = ...) -> None: ...

class RevokeUserTokenResponse(_message.Message):
    __slots__ = ("success", "revoked_at")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    REVOKED_AT_FIELD_NUMBER: _ClassVar[int]
    success: bool
    revoked_at: _timestamp_pb2.Timestamp
    def __init__(self, success: _Optional[bool] = ..., revoked_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class Provider(_message.Message):
    __slots__ = ("slug", "display_name", "api_base_url", "auth_type", "is_enabled", "metadata", "created_at", "updated_at")
    SLUG_FIELD_NUMBER: _ClassVar[int]
    DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
    API_BASE_URL_FIELD_NUMBER: _ClassVar[int]
    AUTH_TYPE_FIELD_NUMBER: _ClassVar[int]
    IS_ENABLED_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_FIELD_NUMBER: _ClassVar[int]
    UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
    slug: str
    display_name: str
    api_base_url: str
    auth_type: str
    is_enabled: bool
    metadata: str
    created_at: _timestamp_pb2.Timestamp
    updated_at: _timestamp_pb2.Timestamp
    def __init__(self, slug: _Optional[str] = ..., display_name: _Optional[str] = ..., api_base_url: _Optional[str] = ..., auth_type: _Optional[str] = ..., is_enabled: _Optional[bool] = ..., metadata: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class ListActiveProvidersRequest(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class ListActiveProvidersResponse(_message.Message):
    __slots__ = ("providers",)
    PROVIDERS_FIELD_NUMBER: _ClassVar[int]
    providers: _containers.RepeatedCompositeFieldContainer[Provider]
    def __init__(self, providers: _Optional[_Iterable[_Union[Provider, _Mapping]]] = ...) -> None: ...

class SetDataplaneURLRequest(_message.Message):
    __slots__ = ("workspace_id", "url", "trigger_update")
    WORKSPACE_ID_FIELD_NUMBER: _ClassVar[int]
    URL_FIELD_NUMBER: _ClassVar[int]
    TRIGGER_UPDATE_FIELD_NUMBER: _ClassVar[int]
    workspace_id: str
    url: str
    trigger_update: bool
    def __init__(self, workspace_id: _Optional[str] = ..., url: _Optional[str] = ..., trigger_update: _Optional[bool] = ...) -> None: ...

class SetDataplaneURLResponse(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class UpsertMCPCatalogServerRequest(_message.Message):
    __slots__ = ("workspace_id", "id", "url", "name", "description", "icon_url", "categories", "authentication", "requires_auth", "force_overwrite")
    WORKSPACE_ID_FIELD_NUMBER: _ClassVar[int]
    ID_FIELD_NUMBER: _ClassVar[int]
    URL_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    ICON_URL_FIELD_NUMBER: _ClassVar[int]
    CATEGORIES_FIELD_NUMBER: _ClassVar[int]
    AUTHENTICATION_FIELD_NUMBER: _ClassVar[int]
    REQUIRES_AUTH_FIELD_NUMBER: _ClassVar[int]
    FORCE_OVERWRITE_FIELD_NUMBER: _ClassVar[int]
    workspace_id: str
    id: str
    url: str
    name: str
    description: str
    icon_url: str
    categories: _containers.RepeatedScalarFieldContainer[str]
    authentication: str
    requires_auth: bool
    force_overwrite: bool
    def __init__(self, workspace_id: _Optional[str] = ..., id: _Optional[str] = ..., url: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., icon_url: _Optional[str] = ..., categories: _Optional[_Iterable[str]] = ..., authentication: _Optional[str] = ..., requires_auth: _Optional[bool] = ..., force_overwrite: _Optional[bool] = ...) -> None: ...

class UpsertMCPCatalogServerResponse(_message.Message):
    __slots__ = ("created",)
    CREATED_FIELD_NUMBER: _ClassVar[int]
    created: bool
    def __init__(self, created: _Optional[bool] = ...) -> None: ...

class ValidateDataplaneRequest(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class ValidateDataplaneResponse(_message.Message):
    __slots__ = ("gatekeeper_public_keys",)
    GATEKEEPER_PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int]
    gatekeeper_public_keys: _containers.RepeatedCompositeFieldContainer[GatekeeperPublicKey]
    def __init__(self, gatekeeper_public_keys: _Optional[_Iterable[_Union[GatekeeperPublicKey, _Mapping]]] = ...) -> None: ...

class GatekeeperPublicKey(_message.Message):
    __slots__ = ("kid", "alg", "use", "public_key_pem")
    KID_FIELD_NUMBER: _ClassVar[int]
    ALG_FIELD_NUMBER: _ClassVar[int]
    USE_FIELD_NUMBER: _ClassVar[int]
    PUBLIC_KEY_PEM_FIELD_NUMBER: _ClassVar[int]
    kid: str
    alg: str
    use: str
    public_key_pem: str
    def __init__(self, kid: _Optional[str] = ..., alg: _Optional[str] = ..., use: _Optional[str] = ..., public_key_pem: _Optional[str] = ...) -> None: ...

class UpdateEventMetadataRequest(_message.Message):
    __slots__ = ("event_id", "metadata")
    EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    event_id: str
    metadata: str
    def __init__(self, event_id: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ...

class UpdateEventMetadataResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...

class CancelDataplaneUpgradeRequest(_message.Message):
    __slots__ = ("upgrade_event_id",)
    UPGRADE_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    upgrade_event_id: str
    def __init__(self, upgrade_event_id: _Optional[str] = ...) -> None: ...

class CancelDataplaneUpgradeResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...

class RollbackDataplaneUpgradeRequest(_message.Message):
    __slots__ = ("upgrade_event_id",)
    UPGRADE_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    upgrade_event_id: str
    def __init__(self, upgrade_event_id: _Optional[str] = ...) -> None: ...

class RollbackDataplaneUpgradeResponse(_message.Message):
    __slots__ = ("success", "rollback_event_id")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ROLLBACK_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    success: bool
    rollback_event_id: str
    def __init__(self, success: _Optional[bool] = ..., rollback_event_id: _Optional[str] = ...) -> None: ...

class DataplaneUpgradeCredential(_message.Message):
    __slots__ = ("slot", "username", "password", "registry")
    SLOT_FIELD_NUMBER: _ClassVar[int]
    USERNAME_FIELD_NUMBER: _ClassVar[int]
    PASSWORD_FIELD_NUMBER: _ClassVar[int]
    REGISTRY_FIELD_NUMBER: _ClassVar[int]
    slot: str
    username: str
    password: str
    registry: str
    def __init__(self, slot: _Optional[str] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., registry: _Optional[str] = ...) -> None: ...

class SubmitDataplaneUpgradeCredentialsRequest(_message.Message):
    __slots__ = ("upgrade_event_id", "credentials", "persist_in_cluster")
    UPGRADE_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    CREDENTIALS_FIELD_NUMBER: _ClassVar[int]
    PERSIST_IN_CLUSTER_FIELD_NUMBER: _ClassVar[int]
    upgrade_event_id: str
    credentials: _containers.RepeatedCompositeFieldContainer[DataplaneUpgradeCredential]
    persist_in_cluster: bool
    def __init__(self, upgrade_event_id: _Optional[str] = ..., credentials: _Optional[_Iterable[_Union[DataplaneUpgradeCredential, _Mapping]]] = ..., persist_in_cluster: _Optional[bool] = ...) -> None: ...

class SubmitDataplaneUpgradeCredentialsResponse(_message.Message):
    __slots__ = ("credentials_id", "success")
    CREDENTIALS_ID_FIELD_NUMBER: _ClassVar[int]
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    credentials_id: str
    success: bool
    def __init__(self, credentials_id: _Optional[str] = ..., success: _Optional[bool] = ...) -> None: ...

class GetDataplaneUpgradeCredentialsRequest(_message.Message):
    __slots__ = ("upgrade_event_id",)
    UPGRADE_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    upgrade_event_id: str
    def __init__(self, upgrade_event_id: _Optional[str] = ...) -> None: ...

class GetDataplaneUpgradeCredentialsResponse(_message.Message):
    __slots__ = ("credentials", "present", "persist_in_cluster")
    CREDENTIALS_FIELD_NUMBER: _ClassVar[int]
    PRESENT_FIELD_NUMBER: _ClassVar[int]
    PERSIST_IN_CLUSTER_FIELD_NUMBER: _ClassVar[int]
    credentials: _containers.RepeatedCompositeFieldContainer[DataplaneUpgradeCredential]
    present: bool
    persist_in_cluster: bool
    def __init__(self, credentials: _Optional[_Iterable[_Union[DataplaneUpgradeCredential, _Mapping]]] = ..., present: _Optional[bool] = ..., persist_in_cluster: _Optional[bool] = ...) -> None: ...

class AckDataplaneUpgradeCredentialsRequest(_message.Message):
    __slots__ = ("upgrade_event_id", "delivered")
    UPGRADE_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
    DELIVERED_FIELD_NUMBER: _ClassVar[int]
    upgrade_event_id: str
    delivered: bool
    def __init__(self, upgrade_event_id: _Optional[str] = ..., delivered: _Optional[bool] = ...) -> None: ...

class AckDataplaneUpgradeCredentialsResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...
