"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import qwak.fitness_service.constructs_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 _PurchaseOption:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PurchaseOptionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PurchaseOption.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_PURCHASE_OPTION: _PurchaseOption.ValueType  # 0
    SPOT_PURCHASE_OPTION: _PurchaseOption.ValueType  # 1
    ONDEMAND_PURCHASE_OPTION: _PurchaseOption.ValueType  # 2

class PurchaseOption(_PurchaseOption, metaclass=_PurchaseOptionEnumTypeWrapper): ...

INVALID_PURCHASE_OPTION: PurchaseOption.ValueType  # 0
SPOT_PURCHASE_OPTION: PurchaseOption.ValueType  # 1
ONDEMAND_PURCHASE_OPTION: PurchaseOption.ValueType  # 2
global___PurchaseOption = PurchaseOption

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

    BUILD_PROPERTIES_FIELD_NUMBER: builtins.int
    BUILD_ENV_FIELD_NUMBER: builtins.int
    CPU_RESOURCES_FIELD_NUMBER: builtins.int
    GPU_RESOURCES_FIELD_NUMBER: builtins.int
    VERBOSE_FIELD_NUMBER: builtins.int
    BUILD_CONFIG_FIELD_NUMBER: builtins.int
    BUILD_V1_FLAG_FIELD_NUMBER: builtins.int
    BUILD_PROPERTIES_V1_FIELD_NUMBER: builtins.int
    PURCHASE_OPTION_FIELD_NUMBER: builtins.int
    BUILD_DESTINED_IMAGE_FIELD_NUMBER: builtins.int
    PROVISION_INSTANCE_TIMEOUT_FIELD_NUMBER: builtins.int
    @property
    def build_properties(self) -> qwak.fitness_service.constructs_pb2.BuildProperties: ...
    @property
    def build_env(self) -> qwak.fitness_service.constructs_pb2.BuildEnv: ...
    @property
    def cpu_resources(self) -> qwak.fitness_service.constructs_pb2.CpuResources:
        """CPU Properties"""
    @property
    def gpu_resources(self) -> qwak.fitness_service.constructs_pb2.GpuResources:
        """GPU Properties"""
    verbose: builtins.int
    """Logs verbose mode 0: warning, 1: info, 2: debug (by qwak.tools.logger.py VERBOSITY_LEVEL_MAPPING from qwak-sdk)"""
    build_config: builtins.str
    """replace the config passed as proto json format"""
    build_v1_flag: builtins.bool
    """Build v1 flag"""
    @property
    def build_properties_v1(self) -> global___BuildPropertiesV1:
        """Build Properties V1"""
    purchase_option: global___PurchaseOption.ValueType
    """Purchase Option"""
    build_destined_image: builtins.str
    """The image name to save build to"""
    provision_instance_timeout: builtins.int
    """The image name to save build to"""
    def __init__(
        self,
        *,
        build_properties: qwak.fitness_service.constructs_pb2.BuildProperties | None = ...,
        build_env: qwak.fitness_service.constructs_pb2.BuildEnv | None = ...,
        cpu_resources: qwak.fitness_service.constructs_pb2.CpuResources | None = ...,
        gpu_resources: qwak.fitness_service.constructs_pb2.GpuResources | None = ...,
        verbose: builtins.int = ...,
        build_config: builtins.str = ...,
        build_v1_flag: builtins.bool = ...,
        build_properties_v1: global___BuildPropertiesV1 | None = ...,
        purchase_option: global___PurchaseOption.ValueType = ...,
        build_destined_image: builtins.str = ...,
        provision_instance_timeout: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["Resources", b"Resources", "build_env", b"build_env", "build_properties", b"build_properties", "build_properties_v1", b"build_properties_v1", "cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["Resources", b"Resources", "build_config", b"build_config", "build_destined_image", b"build_destined_image", "build_env", b"build_env", "build_properties", b"build_properties", "build_properties_v1", b"build_properties_v1", "build_v1_flag", b"build_v1_flag", "cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "provision_instance_timeout", b"provision_instance_timeout", "purchase_option", b"purchase_option", "verbose", b"verbose"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["Resources", b"Resources"]) -> typing_extensions.Literal["cpu_resources", "gpu_resources"] | None: ...

global___BuildSpec = BuildSpec

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

    BUILD_CONFIG_URL_FIELD_NUMBER: builtins.int
    QWAK_SDK_WHEEL_URL_FIELD_NUMBER: builtins.int
    QWAK_SDK_VERSION_URL_FIELD_NUMBER: builtins.int
    build_config_url: builtins.str
    """Build V1 - build config url"""
    qwak_sdk_wheel_url: builtins.str
    """Build V1 - qwak-sdk wheel url"""
    qwak_sdk_version_url: builtins.str
    """Build V1 - qwak-sdk version"""
    def __init__(
        self,
        *,
        build_config_url: builtins.str = ...,
        qwak_sdk_wheel_url: builtins.str = ...,
        qwak_sdk_version_url: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_config_url", b"build_config_url", "qwak_sdk_version_url", b"qwak_sdk_version_url", "qwak_sdk_wheel_url", b"qwak_sdk_wheel_url"]) -> None: ...

global___BuildPropertiesV1 = BuildPropertiesV1
