import datetime

from buf.validate import validate_pb2 as _validate_pb2
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 import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class GetMCPProfileByURLRequest(_message.Message):
    __slots__ = ("url", "user_token")
    URL_FIELD_NUMBER: _ClassVar[int]
    USER_TOKEN_FIELD_NUMBER: _ClassVar[int]
    url: str
    user_token: str
    def __init__(self, url: _Optional[str] = ..., user_token: _Optional[str] = ...) -> None: ...

class GetMCPProfileByURLResponse(_message.Message):
    __slots__ = ("profile",)
    PROFILE_FIELD_NUMBER: _ClassVar[int]
    profile: MCPProfile
    def __init__(self, profile: _Optional[_Union[MCPProfile, _Mapping]] = ...) -> None: ...

class MCPProfile(_message.Message):
    __slots__ = ("id", "owner", "name", "description", "url", "status", "error_message", "security_policy_type", "security_policy_value", "created_at", "updated_at")
    ID_FIELD_NUMBER: _ClassVar[int]
    OWNER_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    URL_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    SECURITY_POLICY_TYPE_FIELD_NUMBER: _ClassVar[int]
    SECURITY_POLICY_VALUE_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_FIELD_NUMBER: _ClassVar[int]
    UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
    id: str
    owner: str
    name: str
    description: str
    url: str
    status: str
    error_message: str
    security_policy_type: str
    security_policy_value: str
    created_at: _timestamp_pb2.Timestamp
    updated_at: _timestamp_pb2.Timestamp
    def __init__(self, id: _Optional[str] = ..., owner: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., url: _Optional[str] = ..., status: _Optional[str] = ..., error_message: _Optional[str] = ..., security_policy_type: _Optional[str] = ..., security_policy_value: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

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

class ResolveRouteIdentityByKeyResponse(_message.Message):
    __slots__ = ("effective_client_id", "route_owner_id", "route_owner_hash", "tars_id", "is_mapped_client")
    EFFECTIVE_CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
    ROUTE_OWNER_ID_FIELD_NUMBER: _ClassVar[int]
    ROUTE_OWNER_HASH_FIELD_NUMBER: _ClassVar[int]
    TARS_ID_FIELD_NUMBER: _ClassVar[int]
    IS_MAPPED_CLIENT_FIELD_NUMBER: _ClassVar[int]
    effective_client_id: str
    route_owner_id: str
    route_owner_hash: str
    tars_id: str
    is_mapped_client: bool
    def __init__(self, effective_client_id: _Optional[str] = ..., route_owner_id: _Optional[str] = ..., route_owner_hash: _Optional[str] = ..., tars_id: _Optional[str] = ..., is_mapped_client: _Optional[bool] = ...) -> None: ...
