"""
@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

@typing_extensions.final
class Code(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Code._Type.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        NOT_SET: Code._Type.ValueType  # 0
        NBOX: Code._Type.ValueType  # 1
        ZIP: Code._Type.ValueType  # 2
        BINARY: Code._Type.ValueType  # 3

    class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
    NOT_SET: Code.Type.ValueType  # 0
    NBOX: Code.Type.ValueType  # 1
    ZIP: Code.Type.ValueType  # 2
    BINARY: Code.Type.ValueType  # 3

    @typing_extensions.final
    class S3MetaEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    S3_URL_FIELD_NUMBER: builtins.int
    SIZE_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    S3_META_FIELD_NUMBER: builtins.int
    s3_url: builtins.str
    size: builtins.int
    type: global___Code.Type.ValueType
    @property
    def s3_meta(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        s3_url: builtins.str = ...,
        size: builtins.int = ...,
        type: global___Code.Type.ValueType = ...,
        s3_meta: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["s3_meta", b"s3_meta", "s3_url", b"s3_url", "size", b"size", "type", b"type"]) -> None: ...

global___Code = Code

@typing_extensions.final
class NBXAuthInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERNAME_FIELD_NUMBER: builtins.int
    WORKSPACE_ID_FIELD_NUMBER: builtins.int
    ACCESS_TOKEN_FIELD_NUMBER: builtins.int
    REFRESH_TOKEN_FIELD_NUMBER: builtins.int
    ACCESS_KEY_FIELD_NUMBER: builtins.int
    username: builtins.str
    workspace_id: builtins.str
    """Workspace ID"""
    access_token: builtins.str
    refresh_token: builtins.str
    access_key: builtins.str
    """NBX Access Key for use with Jobs"""
    def __init__(
        self,
        *,
        username: builtins.str = ...,
        workspace_id: builtins.str = ...,
        access_token: builtins.str = ...,
        refresh_token: builtins.str = ...,
        access_key: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["access_key", b"access_key", "access_token", b"access_token", "refresh_token", b"refresh_token", "username", b"username", "workspace_id", b"workspace_id"]) -> None: ...

global___NBXAuthInfo = NBXAuthInfo

@typing_extensions.final
class Resource(google.protobuf.message.Message):
    """Resources required by Job"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CPU_FIELD_NUMBER: builtins.int
    MEMORY_FIELD_NUMBER: builtins.int
    GPU_FIELD_NUMBER: builtins.int
    GPU_COUNT_FIELD_NUMBER: builtins.int
    DISK_SIZE_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    MAX_RETRIES_FIELD_NUMBER: builtins.int
    cpu: builtins.str
    """CPU in milli-core"""
    memory: builtins.str
    """Memory in MiB"""
    gpu: builtins.str
    """GPU Type"""
    gpu_count: builtins.str
    """Number of GPUs as a fraction"""
    disk_size: builtins.str
    """in GiBs"""
    timeout: builtins.int
    """in seconds. Note this is inclusive of jobs and init containers, enforced by k8s, regardless of `max_retries` set"""
    max_retries: builtins.int
    """max number of retries for a job"""
    def __init__(
        self,
        *,
        cpu: builtins.str = ...,
        memory: builtins.str = ...,
        gpu: builtins.str = ...,
        gpu_count: builtins.str = ...,
        disk_size: builtins.str = ...,
        timeout: builtins.int = ...,
        max_retries: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu", b"cpu", "disk_size", b"disk_size", "gpu", b"gpu", "gpu_count", b"gpu_count", "max_retries", b"max_retries", "memory", b"memory", "timeout", b"timeout"]) -> None: ...

global___Resource = Resource
