"""
@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 sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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
    UNKNOWN_MEMORY_UNIT: _MemoryUnit.ValueType  # 0
    MIB: _MemoryUnit.ValueType  # 1
    GIB: _MemoryUnit.ValueType  # 2

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

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

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

class _GpuTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GpuType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID: _GpuType.ValueType  # 0
    NVIDIA_K80: _GpuType.ValueType  # 1
    NVIDIA_V100: _GpuType.ValueType  # 2
    NVIDIA_A100: _GpuType.ValueType  # 3
    NVIDIA_T4: _GpuType.ValueType  # 4
    NVIDIA_A10G: _GpuType.ValueType  # 5
    NVIDIA_L4: _GpuType.ValueType  # 6
    NVIDIA_T4_1_4_15: _GpuType.ValueType  # 7
    """More specific node types
    t4.xl
    """
    NVIDIA_T4_1_8_30: _GpuType.ValueType  # 8
    """t4.2xl"""
    NVIDIA_T4_1_16_60: _GpuType.ValueType  # 9
    """t4.4xl"""
    NVIDIA_A100_80GB_8_96_1360: _GpuType.ValueType  # 10
    """a100.8xl"""
    NVIDIA_V100_1_8_52: _GpuType.ValueType  # 11
    """a100.xl"""
    NVIDIA_V100_4_32_208: _GpuType.ValueType  # 12
    """v100.4xl"""
    NVIDIA_H100_NVL: _GpuType.ValueType  # 13
    """H100 NVL XLarge"""
    NVIDIA_A10: _GpuType.ValueType  # 14
    """A10 Small"""
    NVIDIA_H100_SXM: _GpuType.ValueType  # 15
    """H100 SXM 8XLarge"""
    NVIDIA_H100_40GB: _GpuType.ValueType  # 16
    """H100 40GB 8XLarge"""
    NVIDIA_H100_80GB: _GpuType.ValueType  # 17
    """H100 80GB 8XLarge"""
    NVIDIA_M60: _GpuType.ValueType  # 18
    """M60 XLarge"""

class GpuType(_GpuType, metaclass=_GpuTypeEnumTypeWrapper): ...

INVALID: GpuType.ValueType  # 0
NVIDIA_K80: GpuType.ValueType  # 1
NVIDIA_V100: GpuType.ValueType  # 2
NVIDIA_A100: GpuType.ValueType  # 3
NVIDIA_T4: GpuType.ValueType  # 4
NVIDIA_A10G: GpuType.ValueType  # 5
NVIDIA_L4: GpuType.ValueType  # 6
NVIDIA_T4_1_4_15: GpuType.ValueType  # 7
"""More specific node types
t4.xl
"""
NVIDIA_T4_1_8_30: GpuType.ValueType  # 8
"""t4.2xl"""
NVIDIA_T4_1_16_60: GpuType.ValueType  # 9
"""t4.4xl"""
NVIDIA_A100_80GB_8_96_1360: GpuType.ValueType  # 10
"""a100.8xl"""
NVIDIA_V100_1_8_52: GpuType.ValueType  # 11
"""a100.xl"""
NVIDIA_V100_4_32_208: GpuType.ValueType  # 12
"""v100.4xl"""
NVIDIA_H100_NVL: GpuType.ValueType  # 13
"""H100 NVL XLarge"""
NVIDIA_A10: GpuType.ValueType  # 14
"""A10 Small"""
NVIDIA_H100_SXM: GpuType.ValueType  # 15
"""H100 SXM 8XLarge"""
NVIDIA_H100_40GB: GpuType.ValueType  # 16
"""H100 40GB 8XLarge"""
NVIDIA_H100_80GB: GpuType.ValueType  # 17
"""H100 80GB 8XLarge"""
NVIDIA_M60: GpuType.ValueType  # 18
"""M60 XLarge"""
global___GpuType = GpuType

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

    BUILD_ID_FIELD_NUMBER: builtins.int
    BRANCH_FIELD_NUMBER: builtins.int
    MODEL_ID_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    MODEL_URI_FIELD_NUMBER: builtins.int
    GPU_COMPATIBLE_FIELD_NUMBER: builtins.int
    build_id: builtins.str
    """Build id"""
    branch: builtins.str
    """Branch name. When none provided - 'main' will be the selected branch"""
    model_id: builtins.str
    """Model id"""
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Build tags"""
    @property
    def model_uri(self) -> global___ModelUriSpec:
        """Model URI spec"""
    gpu_compatible: builtins.bool
    """Is GPU Compatible"""
    def __init__(
        self,
        *,
        build_id: builtins.str = ...,
        branch: builtins.str = ...,
        model_id: builtins.str = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        model_uri: global___ModelUriSpec | None = ...,
        gpu_compatible: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_uri", b"model_uri"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["branch", b"branch", "build_id", b"build_id", "gpu_compatible", b"gpu_compatible", "model_id", b"model_id", "model_uri", b"model_uri", "tags", b"tags"]) -> None: ...

global___BuildProperties = BuildProperties

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

    URI_FIELD_NUMBER: builtins.int
    GIT_BRANCH_FIELD_NUMBER: builtins.int
    GIT_CREDENTIALS_FIELD_NUMBER: builtins.int
    GIT_CREDENTIALS_SECRET_FIELD_NUMBER: builtins.int
    COMMIT_ID_FIELD_NUMBER: builtins.int
    MAIN_DIR_FIELD_NUMBER: builtins.int
    uri: builtins.str
    """Model code to build upon, can be a download link or a git repo"""
    git_branch: builtins.str
    """Model code branch to clone"""
    git_credentials: builtins.str
    """Git credentials"""
    git_credentials_secret: builtins.str
    """Secret to fetch git credentials, overrides git_credentials if set"""
    commit_id: builtins.str
    """Commit id - filled when using local model code which is part of a git repo"""
    main_dir: builtins.str
    """Overrides the models main dir"""
    def __init__(
        self,
        *,
        uri: builtins.str = ...,
        git_branch: builtins.str = ...,
        git_credentials: builtins.str = ...,
        git_credentials_secret: builtins.str = ...,
        commit_id: builtins.str = ...,
        main_dir: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["commit_id", b"commit_id", "git_branch", b"git_branch", "git_credentials", b"git_credentials", "git_credentials_secret", b"git_credentials_secret", "main_dir", b"main_dir", "uri", b"uri"]) -> None: ...

global___ModelUriSpec = ModelUriSpec

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

    DOCKER_ENV_FIELD_NUMBER: builtins.int
    PYTHON_ENV_FIELD_NUMBER: builtins.int
    @property
    def docker_env(self) -> global___DockerEnv: ...
    @property
    def python_env(self) -> global___PythonEnv: ...
    def __init__(
        self,
        *,
        docker_env: global___DockerEnv | None = ...,
        python_env: global___PythonEnv | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["docker_env", b"docker_env", "python_env", b"python_env"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["docker_env", b"docker_env", "python_env", b"python_env"]) -> None: ...

global___BuildEnv = BuildEnv

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

    BASE_IMAGE_FIELD_NUMBER: builtins.int
    ENV_VARS_FIELD_NUMBER: builtins.int
    NO_CACHE_FIELD_NUMBER: builtins.int
    ASSUMED_IAM_ROLE_ARN_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_KEY_SECRET_NAME_FIELD_NUMBER: builtins.int
    base_image: builtins.str
    """Base image to use for serving"""
    @property
    def env_vars(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Environment variables for the model code"""
    no_cache: builtins.bool
    """Don't use remote cache to build the images, defaults to use cache,
    if the model dependencies changed significantly it could be faster and better to run with no cache
    """
    assumed_iam_role_arn: builtins.str
    """Custom IAM role to be assumed by model"""
    service_account_key_secret_name: builtins.str
    """Service account key secret name for gcp"""
    def __init__(
        self,
        *,
        base_image: builtins.str = ...,
        env_vars: collections.abc.Iterable[builtins.str] | None = ...,
        no_cache: builtins.bool = ...,
        assumed_iam_role_arn: builtins.str = ...,
        service_account_key_secret_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["assumed_iam_role_arn", b"assumed_iam_role_arn", "base_image", b"base_image", "env_vars", b"env_vars", "no_cache", b"no_cache", "service_account_key_secret_name", b"service_account_key_secret_name"]) -> None: ...

global___DockerEnv = DockerEnv

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

    GIT_CREDENTIALS_FIELD_NUMBER: builtins.int
    GIT_CREDENTIALS_SECRET_FIELD_NUMBER: builtins.int
    QWAK_SDK_VERSION_FIELD_NUMBER: builtins.int
    QWAK_SDK_EXTRA_INDEX_FIELD_NUMBER: builtins.int
    git_credentials: builtins.str
    """Git credentials"""
    git_credentials_secret: builtins.str
    """Secret to fetch git credentials, overrides git_credentials if set"""
    qwak_sdk_version: builtins.str
    """Qwak sdk version of calling user"""
    qwak_sdk_extra_index: builtins.str
    """Pip extra index url to install qwak-sdk from"""
    def __init__(
        self,
        *,
        git_credentials: builtins.str = ...,
        git_credentials_secret: builtins.str = ...,
        qwak_sdk_version: builtins.str = ...,
        qwak_sdk_extra_index: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["git_credentials", b"git_credentials", "git_credentials_secret", b"git_credentials_secret", "qwak_sdk_extra_index", b"qwak_sdk_extra_index", "qwak_sdk_version", b"qwak_sdk_version"]) -> None: ...

global___PythonEnv = PythonEnv

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

    CPU_FIELD_NUMBER: builtins.int
    MEMORY_AMOUNT_FIELD_NUMBER: builtins.int
    MEMORY_UNITS_FIELD_NUMBER: builtins.int
    cpu: builtins.float
    """Amount of CPU cores"""
    memory_amount: builtins.int
    """Amount of memory"""
    memory_units: global___MemoryUnit.ValueType
    """Units type of memory"""
    def __init__(
        self,
        *,
        cpu: builtins.float = ...,
        memory_amount: builtins.int = ...,
        memory_units: global___MemoryUnit.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu", b"cpu", "memory_amount", b"memory_amount", "memory_units", b"memory_units"]) -> None: ...

global___CpuResources = CpuResources

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

    GPU_TYPE_FIELD_NUMBER: builtins.int
    GPU_AMOUNT_FIELD_NUMBER: builtins.int
    CPU_FIELD_NUMBER: builtins.int
    MEMORY_AMOUNT_FIELD_NUMBER: builtins.int
    MEMORY_UNITS_FIELD_NUMBER: builtins.int
    gpu_type: global___GpuType.ValueType
    """The type of the GPU"""
    gpu_amount: builtins.int
    """Amount of GPUs"""
    cpu: builtins.float
    """Amount of CPU cores"""
    memory_amount: builtins.int
    """Amount of memory"""
    memory_units: global___MemoryUnit.ValueType
    """Units type of memory"""
    def __init__(
        self,
        *,
        gpu_type: global___GpuType.ValueType = ...,
        gpu_amount: builtins.int = ...,
        cpu: builtins.float = ...,
        memory_amount: builtins.int = ...,
        memory_units: global___MemoryUnit.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu", b"cpu", "gpu_amount", b"gpu_amount", "gpu_type", b"gpu_type", "memory_amount", b"memory_amount", "memory_units", b"memory_units"]) -> None: ...

global___GpuResources = GpuResources
