from google.api import annotations_pb2 as _annotations_pb2
from google.api import field_behavior_pb2 as _field_behavior_pb2
from google.protobuf import empty_pb2 as _empty_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.tenancy.v1 import customer_pb2 as _customer_pb2
from tars.tenancy.v1 import project_pb2 as _project_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 CreateCustomerRequest(_message.Message):
    __slots__ = ("customer_id", "display_name", "description")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    display_name: str
    description: str
    def __init__(self, customer_id: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...

class GetCustomerRequest(_message.Message):
    __slots__ = ("customer_id",)
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    def __init__(self, customer_id: _Optional[str] = ...) -> None: ...

class ListCustomersRequest(_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 ListCustomersResponse(_message.Message):
    __slots__ = ("customers", "page")
    CUSTOMERS_FIELD_NUMBER: _ClassVar[int]
    PAGE_FIELD_NUMBER: _ClassVar[int]
    customers: _containers.RepeatedCompositeFieldContainer[_customer_pb2.Customer]
    page: _types_pb2.PageResponse
    def __init__(self, customers: _Optional[_Iterable[_Union[_customer_pb2.Customer, _Mapping]]] = ..., page: _Optional[_Union[_types_pb2.PageResponse, _Mapping]] = ...) -> None: ...

class UpdateCustomerRequest(_message.Message):
    __slots__ = ("customer_id", "display_name", "description")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    display_name: str
    description: str
    def __init__(self, customer_id: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...

class ArchiveCustomerRequest(_message.Message):
    __slots__ = ("customer_id",)
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    def __init__(self, customer_id: _Optional[str] = ...) -> None: ...

class CreateProjectRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "display_name", "description")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    display_name: str
    description: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...

class GetProjectRequest(_message.Message):
    __slots__ = ("customer_id", "project_id")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ...) -> None: ...

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

class ListProjectsResponse(_message.Message):
    __slots__ = ("projects", "page")
    PROJECTS_FIELD_NUMBER: _ClassVar[int]
    PAGE_FIELD_NUMBER: _ClassVar[int]
    projects: _containers.RepeatedCompositeFieldContainer[_project_pb2.Project]
    page: _types_pb2.PageResponse
    def __init__(self, projects: _Optional[_Iterable[_Union[_project_pb2.Project, _Mapping]]] = ..., page: _Optional[_Union[_types_pb2.PageResponse, _Mapping]] = ...) -> None: ...

class UpdateProjectRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "display_name", "description")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    display_name: str
    description: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...

class ArchiveProjectRequest(_message.Message):
    __slots__ = ("customer_id", "project_id")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ...) -> None: ...

class AddProjectMemberRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "identity_id", "role")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    IDENTITY_ID_FIELD_NUMBER: _ClassVar[int]
    ROLE_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    identity_id: str
    role: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., identity_id: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ...

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

class ListProjectMembersResponse(_message.Message):
    __slots__ = ("members", "page")
    MEMBERS_FIELD_NUMBER: _ClassVar[int]
    PAGE_FIELD_NUMBER: _ClassVar[int]
    members: _containers.RepeatedCompositeFieldContainer[_project_pb2.ProjectMember]
    page: _types_pb2.PageResponse
    def __init__(self, members: _Optional[_Iterable[_Union[_project_pb2.ProjectMember, _Mapping]]] = ..., page: _Optional[_Union[_types_pb2.PageResponse, _Mapping]] = ...) -> None: ...

class UpdateProjectMemberRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "identity_id", "role")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    IDENTITY_ID_FIELD_NUMBER: _ClassVar[int]
    ROLE_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    identity_id: str
    role: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., identity_id: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ...

class RemoveProjectMemberRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "identity_id")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    IDENTITY_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    identity_id: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., identity_id: _Optional[str] = ...) -> None: ...
