"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import qwak.audience.v1.audience_pb2
import qwak.build.v1.build_pb2
import qwak.builds.builds_pb2
import qwak.deployment.deployment_pb2
import qwak.models.models_query_pb2
import qwak.projects.jfrog_project_spec_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _DeploymentModelStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DeploymentModelStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeploymentModelStatus.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DEPLOYMENT_STATUS_INVALID: _DeploymentModelStatus.ValueType  # 0
    ONLINE: _DeploymentModelStatus.ValueType  # 1
    OFFLINE: _DeploymentModelStatus.ValueType  # 2

class DeploymentModelStatus(_DeploymentModelStatus, metaclass=_DeploymentModelStatusEnumTypeWrapper): ...

DEPLOYMENT_STATUS_INVALID: DeploymentModelStatus.ValueType  # 0
ONLINE: DeploymentModelStatus.ValueType  # 1
OFFLINE: DeploymentModelStatus.ValueType  # 2
global___DeploymentModelStatus = DeploymentModelStatus

class _ModelStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ModelStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModelStatus.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID: _ModelStatus.ValueType  # 0
    ACTIVE: _ModelStatus.ValueType  # 3
    SUSPENDED: _ModelStatus.ValueType  # 2
    DISABLED: _ModelStatus.ValueType  # 1

class ModelStatus(_ModelStatus, metaclass=_ModelStatusEnumTypeWrapper):
    """Model Status
    Active - Live model
    Suspended - Suspended model
    Disabled - Deleted model
    """

INVALID: ModelStatus.ValueType  # 0
ACTIVE: ModelStatus.ValueType  # 3
SUSPENDED: ModelStatus.ValueType  # 2
DISABLED: ModelStatus.ValueType  # 1
global___ModelStatus = ModelStatus

class _MemoryUnit:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MemoryUnitEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MemoryUnit.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MEMORY_UNIT_UNKNOWN: _MemoryUnit.ValueType  # 0
    MIB: _MemoryUnit.ValueType  # 1
    GIB: _MemoryUnit.ValueType  # 2

class MemoryUnit(_MemoryUnit, metaclass=_MemoryUnitEnumTypeWrapper): ...

MEMORY_UNIT_UNKNOWN: MemoryUnit.ValueType  # 0
MIB: MemoryUnit.ValueType  # 1
GIB: MemoryUnit.ValueType  # 2
global___MemoryUnit = MemoryUnit

class CreateModelRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_SPEC_FIELD_NUMBER: builtins.int
    JFROG_PROJECT_SPEC_FIELD_NUMBER: builtins.int
    @property
    def model_spec(self) -> global___ModelSpec:
        """Model spec to add"""
    @property
    def jfrog_project_spec(self) -> qwak.projects.jfrog_project_spec_pb2.ModelRepositoryJFrogSpec:
        """JFrog project spec to add in case we want to associate the created model to another project than default"""
    def __init__(
        self,
        *,
        model_spec: global___ModelSpec | None = ...,
        jfrog_project_spec: qwak.projects.jfrog_project_spec_pb2.ModelRepositoryJFrogSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["jfrog_project_spec", b"jfrog_project_spec", "model_spec", b"model_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["jfrog_project_spec", b"jfrog_project_spec", "model_spec", b"model_spec"]) -> None: ...

global___CreateModelRequest = CreateModelRequest

class CreateModelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_id", b"model_id"]) -> None: ...

global___CreateModelResponse = CreateModelResponse

class ListModelsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """The project id"""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["project_id", b"project_id"]) -> None: ...

global___ListModelsRequest = ListModelsRequest

class ListModelsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODELS_FIELD_NUMBER: builtins.int
    @property
    def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]:
        """List of models"""
    def __init__(
        self,
        *,
        models: collections.abc.Iterable[global___Model] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["models", b"models"]) -> None: ...

global___ListModelsResponse = ListModelsResponse

class ListModelsPaginatedRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAGE_SIZE_FIELD_NUMBER: builtins.int
    CURSOR_FIELD_NUMBER: builtins.int
    SORT_MODELS_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    page_size: builtins.int
    cursor: builtins.str
    @property
    def sort_models(self) -> qwak.models.models_query_pb2.SortModels: ...
    @property
    def filter(self) -> qwak.models.models_query_pb2.Filter: ...
    def __init__(
        self,
        *,
        page_size: builtins.int = ...,
        cursor: builtins.str = ...,
        sort_models: qwak.models.models_query_pb2.SortModels | None = ...,
        filter: qwak.models.models_query_pb2.Filter | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cursor", b"cursor", "cursor_opt", b"cursor_opt", "filter", b"filter", "filter_opt", b"filter_opt", "page_size", b"page_size", "page_size_opt", b"page_size_opt", "sort_models", b"sort_models", "sort_models_opt", b"sort_models_opt"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cursor", b"cursor", "cursor_opt", b"cursor_opt", "filter", b"filter", "filter_opt", b"filter_opt", "page_size", b"page_size", "page_size_opt", b"page_size_opt", "sort_models", b"sort_models", "sort_models_opt", b"sort_models_opt"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["cursor_opt", b"cursor_opt"]) -> typing_extensions.Literal["cursor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["filter_opt", b"filter_opt"]) -> typing_extensions.Literal["filter"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["page_size_opt", b"page_size_opt"]) -> typing_extensions.Literal["page_size"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["sort_models_opt", b"sort_models_opt"]) -> typing_extensions.Literal["sort_models"] | None: ...

global___ListModelsPaginatedRequest = ListModelsPaginatedRequest

class ListModelsPaginatedResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODELS_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]:
        """List of models matching the query criteria."""
    @property
    def metadata(self) -> qwak.models.models_query_pb2.PaginationMetadata:
        """Pagination information about the result set."""
    def __init__(
        self,
        *,
        models: collections.abc.Iterable[global___Model] | None = ...,
        metadata: qwak.models.models_query_pb2.PaginationMetadata | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "models", b"models"]) -> None: ...

global___ListModelsPaginatedResponse = ListModelsPaginatedResponse

class GetModelRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    MODEL_UUID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    model_uuid: builtins.str
    """The model uuid"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        model_uuid: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["identifier", b"identifier", "model_id", b"model_id", "model_uuid", b"model_uuid"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["identifier", b"identifier", "model_id", b"model_id", "model_uuid", b"model_uuid"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["identifier", b"identifier"]) -> typing_extensions.Literal["model_id", "model_uuid"] | None: ...

global___GetModelRequest = GetModelRequest

class GetModelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_FIELD_NUMBER: builtins.int
    @property
    def model(self) -> global___Model:
        """The model"""
    def __init__(
        self,
        *,
        model: global___Model | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model", b"model"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model", b"model"]) -> None: ...

global___GetModelResponse = GetModelResponse

class DeleteModelRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    project_id: builtins.str
    """The project id"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        project_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_id", b"model_id", "project_id", b"project_id"]) -> None: ...

global___DeleteModelRequest = DeleteModelRequest

class DeleteModelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___DeleteModelResponse = DeleteModelResponse

class UpdateModelRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    MODEL_SPEC_CONFIG_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id to update"""
    @property
    def model_spec_config(self) -> global___ModelSpecConfiguration:
        """The model specification to update"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        model_spec_config: global___ModelSpecConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_spec_config", b"model_spec_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_id", b"model_id", "model_spec_config", b"model_spec_config"]) -> None: ...

global___UpdateModelRequest = UpdateModelRequest

class UpdateModelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_SPEC_FIELD_NUMBER: builtins.int
    @property
    def model_spec(self) -> global___ModelSpec:
        """The updated model specification"""
    def __init__(
        self,
        *,
        model_spec: global___ModelSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_spec", b"model_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_spec", b"model_spec"]) -> None: ...

global___UpdateModelResponse = UpdateModelResponse

class CreateBranchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    BRANCH_NAME_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    branch_name: builtins.str
    """The branch name"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        branch_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch_name", b"branch_name", "model_id", b"model_id"]) -> None: ...

global___CreateBranchRequest = CreateBranchRequest

class CreateBranchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BRANCH_ID_FIELD_NUMBER: builtins.int
    branch_id: builtins.str
    """The created branch"""
    def __init__(
        self,
        *,
        branch_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch_id", b"branch_id"]) -> None: ...

global___CreateBranchResponse = CreateBranchResponse

class DeleteBranchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BRANCH_ID_FIELD_NUMBER: builtins.int
    branch_id: builtins.str
    """The branch id"""
    def __init__(
        self,
        *,
        branch_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch_id", b"branch_id"]) -> None: ...

global___DeleteBranchRequest = DeleteBranchRequest

class DeleteBranchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___DeleteBranchResponse = DeleteBranchResponse

class IsModelExistsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    MODEL_UUID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """Model id (e.g. name)"""
    model_uuid: builtins.str
    """Model Uuid"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        model_uuid: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["identifier", b"identifier", "model_id", b"model_id", "model_uuid", b"model_uuid"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["identifier", b"identifier", "model_id", b"model_id", "model_uuid", b"model_uuid"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["identifier", b"identifier"]) -> typing_extensions.Literal["model_id", "model_uuid"] | None: ...

global___IsModelExistsRequest = IsModelExistsRequest

class IsModelExistsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXISTS_FIELD_NUMBER: builtins.int
    exists: builtins.bool
    """Does the model exist"""
    def __init__(
        self,
        *,
        exists: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exists", b"exists"]) -> None: ...

global___IsModelExistsResponse = IsModelExistsResponse

class ModelSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_NAMED_ID_FIELD_NUMBER: builtins.int
    DISPLAY_NAME_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    PROJECT_NAME_FIELD_NUMBER: builtins.int
    MODEL_DESCRIPTION_FIELD_NUMBER: builtins.int
    MODEL_BUILD_TYPE_FIELD_NUMBER: builtins.int
    model_named_id: builtins.str
    """The model id"""
    display_name: builtins.str
    """The display name"""
    project_id: builtins.str
    project_name: builtins.str
    model_description: builtins.str
    """The model description"""
    @property
    def model_build_type(self) -> global___ModelBuildType:
        """The Model build type"""
    def __init__(
        self,
        *,
        model_named_id: builtins.str = ...,
        display_name: builtins.str = ...,
        project_id: builtins.str = ...,
        project_name: builtins.str = ...,
        model_description: builtins.str = ...,
        model_build_type: global___ModelBuildType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_build_type", b"model_build_type", "project_id", b"project_id", "project_identifier", b"project_identifier", "project_name", b"project_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["display_name", b"display_name", "model_build_type", b"model_build_type", "model_description", b"model_description", "model_named_id", b"model_named_id", "project_id", b"project_id", "project_identifier", b"project_identifier", "project_name", b"project_name"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["project_identifier", b"project_identifier"]) -> typing_extensions.Literal["project_id", "project_name"] | None: ...

global___ModelSpec = ModelSpec

class ModelBrief(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    DISPLAY_NAME_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_AT_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_BY_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    MODEL_DESCRIPTION_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    DEPLOYMENT_MODEL_STATUS_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    display_name: builtins.str
    """The display name"""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Create at"""
    @property
    def last_modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Last modified"""
    last_modified_by: builtins.str
    """Last modified by"""
    created_by: builtins.str
    """Created by"""
    model_description: builtins.str
    """The model description"""
    project_id: builtins.str
    """The project id"""
    deployment_model_status: global___DeploymentModelStatus.ValueType
    """The Model status"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        display_name: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_modified_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_modified_by: builtins.str = ...,
        created_by: builtins.str = ...,
        model_description: builtins.str = ...,
        project_id: builtins.str = ...,
        deployment_model_status: global___DeploymentModelStatus.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "last_modified_at", b"last_modified_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "created_by", b"created_by", "deployment_model_status", b"deployment_model_status", "display_name", b"display_name", "last_modified_at", b"last_modified_at", "last_modified_by", b"last_modified_by", "model_description", b"model_description", "model_id", b"model_id", "project_id", b"project_id"]) -> None: ...

global___ModelBrief = ModelBrief

class ModelSpecConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_DESCRIPTION_FIELD_NUMBER: builtins.int
    model_description: builtins.str
    """The model description"""
    def __init__(
        self,
        *,
        model_description: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_description", b"model_description"]) -> None: ...

global___ModelSpecConfiguration = ModelSpecConfiguration

class Model(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    DISPLAY_NAME_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_AT_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_BY_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    MODEL_STATUS_FIELD_NUMBER: builtins.int
    MODEL_DESCRIPTION_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    BRANCHES_FIELD_NUMBER: builtins.int
    DEPLOYMENT_MODEL_STATUS_FIELD_NUMBER: builtins.int
    UUID_FIELD_NUMBER: builtins.int
    MODEL_TYPE_FIELD_NUMBER: builtins.int
    PROJECT_NAME_FIELD_NUMBER: builtins.int
    MODEL_BUILD_TYPE_FIELD_NUMBER: builtins.int
    JFROG_PROJECT_KEY_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    display_name: builtins.str
    """The display name"""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Create at"""
    @property
    def last_modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Last modified"""
    last_modified_by: builtins.str
    """Last modified by"""
    created_by: builtins.str
    """Created by"""
    model_status: global___ModelStatus.ValueType
    """Models Status"""
    model_description: builtins.str
    """The model description"""
    project_id: builtins.str
    """The project id"""
    @property
    def branches(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Branch]:
        """List of branches"""
    deployment_model_status: global___DeploymentModelStatus.ValueType
    """The deployment status of the model"""
    uuid: builtins.str
    """unique id for model."""
    model_type: qwak.deployment.deployment_pb2.KubeDeploymentType.ValueType
    """The deployment type of the model"""
    project_name: builtins.str
    """Project name"""
    @property
    def model_build_type(self) -> global___ModelBuildType:
        """Model build type"""
    jfrog_project_key: builtins.str
    """Jfrog project key"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        display_name: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_modified_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_modified_by: builtins.str = ...,
        created_by: builtins.str = ...,
        model_status: global___ModelStatus.ValueType = ...,
        model_description: builtins.str = ...,
        project_id: builtins.str = ...,
        branches: collections.abc.Iterable[global___Branch] | None = ...,
        deployment_model_status: global___DeploymentModelStatus.ValueType = ...,
        uuid: builtins.str = ...,
        model_type: qwak.deployment.deployment_pb2.KubeDeploymentType.ValueType = ...,
        project_name: builtins.str = ...,
        model_build_type: global___ModelBuildType | None = ...,
        jfrog_project_key: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "last_modified_at", b"last_modified_at", "model_build_type", b"model_build_type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["branches", b"branches", "created_at", b"created_at", "created_by", b"created_by", "deployment_model_status", b"deployment_model_status", "display_name", b"display_name", "jfrog_project_key", b"jfrog_project_key", "last_modified_at", b"last_modified_at", "last_modified_by", b"last_modified_by", "model_build_type", b"model_build_type", "model_description", b"model_description", "model_id", b"model_id", "model_status", b"model_status", "model_type", b"model_type", "project_id", b"project_id", "project_name", b"project_name", "uuid", b"uuid"]) -> None: ...

global___Model = Model

class ModelBuildType(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SOURCE_FIELD_NUMBER: builtins.int
    MODEL_REGISTRY_IMAGE_FIELD_NUMBER: builtins.int
    @property
    def source(self) -> global___Source: ...
    @property
    def model_registry_image(self) -> global___ModelRegistryImage: ...
    def __init__(
        self,
        *,
        source: global___Source | None = ...,
        model_registry_image: global___ModelRegistryImage | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_registry_image", b"model_registry_image", "source", b"source", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_registry_image", b"model_registry_image", "source", b"source", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["source", "model_registry_image"] | None: ...

global___ModelBuildType = ModelBuildType

class Source(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___Source = Source

class ModelRegistryImage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAST_IMAGE_IDENTIFIER_FIELD_NUMBER: builtins.int
    last_image_identifier: builtins.str
    def __init__(
        self,
        *,
        last_image_identifier: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["last_image_identifier", b"last_image_identifier"]) -> None: ...

global___ModelRegistryImage = ModelRegistryImage

class Branch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _BranchStatus:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _BranchStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Branch._BranchStatus.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        INVALID: Branch._BranchStatus.ValueType  # 0
        ACTIVE: Branch._BranchStatus.ValueType  # 3
        SUSPENDED: Branch._BranchStatus.ValueType  # 2
        DISABLED: Branch._BranchStatus.ValueType  # 1

    class BranchStatus(_BranchStatus, metaclass=_BranchStatusEnumTypeWrapper):
        """Branch Status
        Active - Live branch
        Suspended - Suspended branch
        Disabled - Deleted branch
        """

    INVALID: Branch.BranchStatus.ValueType  # 0
    ACTIVE: Branch.BranchStatus.ValueType  # 3
    SUSPENDED: Branch.BranchStatus.ValueType  # 2
    DISABLED: Branch.BranchStatus.ValueType  # 1

    BRANCH_ID_FIELD_NUMBER: builtins.int
    BRANCH_NAME_FIELD_NUMBER: builtins.int
    BRANCH_STATUS_FIELD_NUMBER: builtins.int
    MODEL_ID_FIELD_NUMBER: builtins.int
    DEPLOYED_BUILD_ID_FIELD_NUMBER: builtins.int
    branch_id: builtins.str
    """The branch id"""
    branch_name: builtins.str
    """The branch name"""
    branch_status: global___Branch.BranchStatus.ValueType
    """Branch Status"""
    model_id: builtins.str
    """The model ID"""
    deployed_build_id: builtins.str
    """The deployed build"""
    def __init__(
        self,
        *,
        branch_id: builtins.str = ...,
        branch_name: builtins.str = ...,
        branch_status: global___Branch.BranchStatus.ValueType = ...,
        model_id: builtins.str = ...,
        deployed_build_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch_id", b"branch_id", "branch_name", b"branch_name", "branch_status", b"branch_status", "deployed_build_id", b"deployed_build_id", "model_id", b"model_id"]) -> None: ...

global___Branch = Branch

class GetDeploymentDetailsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    BRANCH_ID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model ID"""
    branch_id: builtins.str
    """The branch ID"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        branch_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch_id", b"branch_id", "model_id", b"model_id"]) -> None: ...

global___GetDeploymentDetailsRequest = GetDeploymentDetailsRequest

class GetDeploymentDetailsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEPLOYMENT_DETAILS_FIELD_NUMBER: builtins.int
    @property
    def deployment_details(self) -> global___DeploymentDetails: ...
    def __init__(
        self,
        *,
        deployment_details: global___DeploymentDetails | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["deployment_details", b"deployment_details"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployment_details", b"deployment_details"]) -> None: ...

global___GetDeploymentDetailsResponse = GetDeploymentDetailsResponse

class DeploymentDetails(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAST_DEPLOYED_FIELD_NUMBER: builtins.int
    BUILD_ID_FIELD_NUMBER: builtins.int
    NUMBER_OF_PODS_FIELD_NUMBER: builtins.int
    CPU_FRACTION_FIELD_NUMBER: builtins.int
    MEMORY_AMOUNT_FIELD_NUMBER: builtins.int
    MEMORY_UNITS_FIELD_NUMBER: builtins.int
    NUMBER_OF_WORKERS_FIELD_NUMBER: builtins.int
    HTTP_REQUEST_TIMEOUT_MS_FIELD_NUMBER: builtins.int
    @property
    def last_deployed(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Deployed date"""
    build_id: builtins.str
    """The build id that deployed"""
    number_of_pods: builtins.int
    """Number of pods to deploy"""
    cpu_fraction: builtins.float
    """Cpu"""
    memory_amount: builtins.int
    """Amount of memory"""
    memory_units: global___MemoryUnit.ValueType
    """Units type of memory"""
    number_of_workers: builtins.int
    """Number of workers"""
    http_request_timeout_ms: builtins.int
    """Timeout for request timeout"""
    def __init__(
        self,
        *,
        last_deployed: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        build_id: builtins.str = ...,
        number_of_pods: builtins.int = ...,
        cpu_fraction: builtins.float = ...,
        memory_amount: builtins.int = ...,
        memory_units: global___MemoryUnit.ValueType = ...,
        number_of_workers: builtins.int = ...,
        http_request_timeout_ms: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["last_deployed", b"last_deployed"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_id", b"build_id", "cpu_fraction", b"cpu_fraction", "http_request_timeout_ms", b"http_request_timeout_ms", "last_deployed", b"last_deployed", "memory_amount", b"memory_amount", "memory_units", b"memory_units", "number_of_pods", b"number_of_pods", "number_of_workers", b"number_of_workers"]) -> None: ...

global___DeploymentDetails = DeploymentDetails

class ListModelsMetadataRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """The project id"""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["project_id", b"project_id"]) -> None: ...

global___ListModelsMetadataRequest = ListModelsMetadataRequest

class ListModelsMetadataResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_METADATA_FIELD_NUMBER: builtins.int
    @property
    def model_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModelMetadata]: ...
    def __init__(
        self,
        *,
        model_metadata: collections.abc.Iterable[global___ModelMetadata] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_metadata", b"model_metadata"]) -> None: ...

global___ListModelsMetadataResponse = ListModelsMetadataResponse

class GetModelMetadataRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """The model id"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_id", b"model_id"]) -> None: ...

global___GetModelMetadataRequest = GetModelMetadataRequest

class GetModelMetadataResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_METADATA_FIELD_NUMBER: builtins.int
    @property
    def model_metadata(self) -> global___ModelMetadata: ...
    def __init__(
        self,
        *,
        model_metadata: global___ModelMetadata | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_metadata", b"model_metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_metadata", b"model_metadata"]) -> None: ...

global___GetModelMetadataResponse = GetModelMetadataResponse

class EnvironmentRoutes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENVIRONMENT_FIELD_NUMBER: builtins.int
    AUDIENCE_ROUTES_FIELD_NUMBER: builtins.int
    environment: builtins.str
    @property
    def audience_routes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.audience.v1.audience_pb2.AudienceRoutesEntry]: ...
    def __init__(
        self,
        *,
        environment: builtins.str = ...,
        audience_routes: collections.abc.Iterable[qwak.audience.v1.audience_pb2.AudienceRoutesEntry] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["audience_routes", b"audience_routes", "environment", b"environment"]) -> None: ...

global___EnvironmentRoutes = EnvironmentRoutes

class ModelMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class AudienceRoutesByEnvironmentEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> qwak.audience.v1.audience_pb2.AudienceRoutesEntry: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: qwak.audience.v1.audience_pb2.AudienceRoutesEntry | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    class AudienceRoutesGroupedByEnvironmentEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___EnvironmentRoutes: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___EnvironmentRoutes | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    MODEL_FIELD_NUMBER: builtins.int
    DEPLOYMENT_DETAILS_FIELD_NUMBER: builtins.int
    AUDIENCE_ROUTES_BY_ENVIRONMENT_FIELD_NUMBER: builtins.int
    BUILD_FIELD_NUMBER: builtins.int
    AUDIENCE_ROUTES_GROUPED_BY_ENVIRONMENT_FIELD_NUMBER: builtins.int
    BUILDS_FIELD_NUMBER: builtins.int
    @property
    def model(self) -> global___Model: ...
    @property
    def deployment_details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.deployment.deployment_pb2.DeploymentDetails]: ...
    @property
    def audience_routes_by_environment(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, qwak.audience.v1.audience_pb2.AudienceRoutesEntry]: ...
    @property
    def build(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.builds.builds_pb2.Build]: ...
    @property
    def audience_routes_grouped_by_environment(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___EnvironmentRoutes]: ...
    @property
    def builds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.build.v1.build_pb2.Build]: ...
    def __init__(
        self,
        *,
        model: global___Model | None = ...,
        deployment_details: collections.abc.Iterable[qwak.deployment.deployment_pb2.DeploymentDetails] | None = ...,
        audience_routes_by_environment: collections.abc.Mapping[builtins.str, qwak.audience.v1.audience_pb2.AudienceRoutesEntry] | None = ...,
        build: collections.abc.Iterable[qwak.builds.builds_pb2.Build] | None = ...,
        audience_routes_grouped_by_environment: collections.abc.Mapping[builtins.str, global___EnvironmentRoutes] | None = ...,
        builds: collections.abc.Iterable[qwak.build.v1.build_pb2.Build] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model", b"model"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["audience_routes_by_environment", b"audience_routes_by_environment", "audience_routes_grouped_by_environment", b"audience_routes_grouped_by_environment", "build", b"build", "builds", b"builds", "deployment_details", b"deployment_details", "model", b"model"]) -> None: ...

global___ModelMetadata = ModelMetadata
