from google.api import annotations_pb2 as _annotations_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 EnterpriseContext(_message.Message):
    __slots__ = ("customer_id", "workspace_id", "organization_unit")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    WORKSPACE_ID_FIELD_NUMBER: _ClassVar[int]
    ORGANIZATION_UNIT_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    workspace_id: str
    organization_unit: str
    def __init__(self, customer_id: _Optional[str] = ..., workspace_id: _Optional[str] = ..., organization_unit: _Optional[str] = ...) -> None: ...

class CreateApiKeyRequest(_message.Message):
    __slots__ = ("user_id", "user_key_address", "name", "enterprise_context")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    USER_KEY_ADDRESS_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    ENTERPRISE_CONTEXT_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    user_key_address: str
    name: str
    enterprise_context: EnterpriseContext
    def __init__(self, user_id: _Optional[str] = ..., user_key_address: _Optional[str] = ..., name: _Optional[str] = ..., enterprise_context: _Optional[_Union[EnterpriseContext, _Mapping]] = ...) -> None: ...

class CreateApiKeyResponse(_message.Message):
    __slots__ = ("id", "user_id", "api_key", "prefix", "key_hash", "key_address", "key_suffix")
    ID_FIELD_NUMBER: _ClassVar[int]
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    API_KEY_FIELD_NUMBER: _ClassVar[int]
    PREFIX_FIELD_NUMBER: _ClassVar[int]
    KEY_HASH_FIELD_NUMBER: _ClassVar[int]
    KEY_ADDRESS_FIELD_NUMBER: _ClassVar[int]
    KEY_SUFFIX_FIELD_NUMBER: _ClassVar[int]
    id: str
    user_id: str
    api_key: str
    prefix: str
    key_hash: str
    key_address: str
    key_suffix: str
    def __init__(self, id: _Optional[str] = ..., user_id: _Optional[str] = ..., api_key: _Optional[str] = ..., prefix: _Optional[str] = ..., key_hash: _Optional[str] = ..., key_address: _Optional[str] = ..., key_suffix: _Optional[str] = ...) -> None: ...

class UpdateApiKeyRequest(_message.Message):
    __slots__ = ("user_id", "key_id", "name", "is_active")
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    KEY_ID_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
    user_id: str
    key_id: str
    name: str
    is_active: bool
    def __init__(self, user_id: _Optional[str] = ..., key_id: _Optional[str] = ..., name: _Optional[str] = ..., is_active: _Optional[bool] = ...) -> None: ...

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

class DeleteApiKeyRequest(_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 DeleteApiKeyResponse(_message.Message):
    __slots__ = ("success",)
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    def __init__(self, success: _Optional[bool] = ...) -> None: ...
