from google.api import annotations_pb2 as _annotations_pb2
from google.api import field_behavior_pb2 as _field_behavior_pb2
from tars.auth.v1 import auth_options_pb2 as _auth_options_pb2
from tars.cli.v1 import cli_pb2 as _cli_pb2
from tars.common.v1 import types_pb2 as _types_pb2
from tars.docs.v1 import docs_pb2 as _docs_pb2
from tars.identity.v1 import api_key_pb2 as _api_key_pb2
from tars.identity.v1 import identity_pb2 as _identity_pb2
from google.protobuf.internal import containers as _containers
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 LoginRequest(_message.Message):
    __slots__ = ("issuer", "redirect_uri", "code_challenge", "code_challenge_method")
    ISSUER_FIELD_NUMBER: _ClassVar[int]
    REDIRECT_URI_FIELD_NUMBER: _ClassVar[int]
    CODE_CHALLENGE_FIELD_NUMBER: _ClassVar[int]
    CODE_CHALLENGE_METHOD_FIELD_NUMBER: _ClassVar[int]
    issuer: str
    redirect_uri: str
    code_challenge: str
    code_challenge_method: str
    def __init__(self, issuer: _Optional[str] = ..., redirect_uri: _Optional[str] = ..., code_challenge: _Optional[str] = ..., code_challenge_method: _Optional[str] = ...) -> None: ...

class LoginResponse(_message.Message):
    __slots__ = ("authorization_url", "state")
    AUTHORIZATION_URL_FIELD_NUMBER: _ClassVar[int]
    STATE_FIELD_NUMBER: _ClassVar[int]
    authorization_url: str
    state: str
    def __init__(self, authorization_url: _Optional[str] = ..., state: _Optional[str] = ...) -> None: ...

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

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

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

class GetMeResponse(_message.Message):
    __slots__ = ("identity",)
    IDENTITY_FIELD_NUMBER: _ClassVar[int]
    identity: _identity_pb2.Identity
    def __init__(self, identity: _Optional[_Union[_identity_pb2.Identity, _Mapping]] = ...) -> None: ...

class IssueMyKeyRequest(_message.Message):
    __slots__ = ("name", "type", "idempotency_key")
    NAME_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    IDEMPOTENCY_KEY_FIELD_NUMBER: _ClassVar[int]
    name: str
    type: _api_key_pb2.ApiKeyType
    idempotency_key: str
    def __init__(self, name: _Optional[str] = ..., type: _Optional[_Union[_api_key_pb2.ApiKeyType, str]] = ..., idempotency_key: _Optional[str] = ...) -> None: ...

class IssueMyKeyResponse(_message.Message):
    __slots__ = ("key", "secret")
    KEY_FIELD_NUMBER: _ClassVar[int]
    SECRET_FIELD_NUMBER: _ClassVar[int]
    key: _api_key_pb2.ApiKey
    secret: str
    def __init__(self, key: _Optional[_Union[_api_key_pb2.ApiKey, _Mapping]] = ..., secret: _Optional[str] = ...) -> None: ...

class ListMyKeysRequest(_message.Message):
    __slots__ = ("page",)
    PAGE_FIELD_NUMBER: _ClassVar[int]
    page: _types_pb2.PageRequest
    def __init__(self, page: _Optional[_Union[_types_pb2.PageRequest, _Mapping]] = ...) -> None: ...

class ListMyKeysResponse(_message.Message):
    __slots__ = ("keys", "page")
    KEYS_FIELD_NUMBER: _ClassVar[int]
    PAGE_FIELD_NUMBER: _ClassVar[int]
    keys: _containers.RepeatedCompositeFieldContainer[_api_key_pb2.ApiKey]
    page: _types_pb2.PageResponse
    def __init__(self, keys: _Optional[_Iterable[_Union[_api_key_pb2.ApiKey, _Mapping]]] = ..., page: _Optional[_Union[_types_pb2.PageResponse, _Mapping]] = ...) -> None: ...

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

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

class ResolveApiKeyRequest(_message.Message):
    __slots__ = ("key",)
    KEY_FIELD_NUMBER: _ClassVar[int]
    key: str
    def __init__(self, key: _Optional[str] = ...) -> None: ...

class ResolveApiKeyResponse(_message.Message):
    __slots__ = ("identity", "key")
    IDENTITY_FIELD_NUMBER: _ClassVar[int]
    KEY_FIELD_NUMBER: _ClassVar[int]
    identity: _identity_pb2.Identity
    key: _api_key_pb2.ApiKey
    def __init__(self, identity: _Optional[_Union[_identity_pb2.Identity, _Mapping]] = ..., key: _Optional[_Union[_api_key_pb2.ApiKey, _Mapping]] = ...) -> None: ...
