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

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

INVALID_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_GPU_TYPE: _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"""

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

INVALID_GPU_TYPE: 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"""
global___GpuType = GpuType

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

class _SparkClusterResourceTemplateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SparkClusterResourceTemplate.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SPARK_CLUSTER_RESOURCE_INVALID: _SparkClusterResourceTemplate.ValueType  # 0
    SPARK_CLUSTER_RESOURCE_SMALL: _SparkClusterResourceTemplate.ValueType  # 1
    SPARK_CLUSTER_RESOURCE_MEDIUM: _SparkClusterResourceTemplate.ValueType  # 2
    SPARK_CLUSTER_RESOURCE_LARGE: _SparkClusterResourceTemplate.ValueType  # 3
    SPARK_CLUSTER_RESOURCE_XL: _SparkClusterResourceTemplate.ValueType  # 4
    SPARK_CLUSTER_RESOURCE_2XL: _SparkClusterResourceTemplate.ValueType  # 5
    SPARK_CLUSTER_RESOURCE_3XL: _SparkClusterResourceTemplate.ValueType  # 6

class SparkClusterResourceTemplate(_SparkClusterResourceTemplate, metaclass=_SparkClusterResourceTemplateEnumTypeWrapper):
    """Templates for clusters the user may choose"""

SPARK_CLUSTER_RESOURCE_INVALID: SparkClusterResourceTemplate.ValueType  # 0
SPARK_CLUSTER_RESOURCE_SMALL: SparkClusterResourceTemplate.ValueType  # 1
SPARK_CLUSTER_RESOURCE_MEDIUM: SparkClusterResourceTemplate.ValueType  # 2
SPARK_CLUSTER_RESOURCE_LARGE: SparkClusterResourceTemplate.ValueType  # 3
SPARK_CLUSTER_RESOURCE_XL: SparkClusterResourceTemplate.ValueType  # 4
SPARK_CLUSTER_RESOURCE_2XL: SparkClusterResourceTemplate.ValueType  # 5
SPARK_CLUSTER_RESOURCE_3XL: SparkClusterResourceTemplate.ValueType  # 6
global___SparkClusterResourceTemplate = SparkClusterResourceTemplate

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

class _NodeOptimizationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NodeOptimizationType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NODE_OPTIMIZATION_INVALID: _NodeOptimizationType.ValueType  # 0
    NODE_OPTIMIZATION_NONE: _NodeOptimizationType.ValueType  # 1
    NODE_OPTIMIZATION_CPU: _NodeOptimizationType.ValueType  # 2
    NODE_OPTIMIZATION_MEMORY: _NodeOptimizationType.ValueType  # 3

class NodeOptimizationType(_NodeOptimizationType, metaclass=_NodeOptimizationTypeEnumTypeWrapper): ...

NODE_OPTIMIZATION_INVALID: NodeOptimizationType.ValueType  # 0
NODE_OPTIMIZATION_NONE: NodeOptimizationType.ValueType  # 1
NODE_OPTIMIZATION_CPU: NodeOptimizationType.ValueType  # 2
NODE_OPTIMIZATION_MEMORY: NodeOptimizationType.ValueType  # 3
global___NodeOptimizationType = NodeOptimizationType

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
    gpu_type: global___GpuType.ValueType
    """The type of the GPU"""
    gpu_amount: builtins.int
    """Amount of GPUs"""
    def __init__(
        self,
        *,
        gpu_type: global___GpuType.ValueType = ...,
        gpu_amount: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["gpu_amount", b"gpu_amount", "gpu_type", b"gpu_type"]) -> None: ...

global___GpuResources = GpuResources

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

    TEMPLATE_FIELD_NUMBER: builtins.int
    template: global___SparkClusterResourceTemplate.ValueType
    def __init__(
        self,
        *,
        template: global___SparkClusterResourceTemplate.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["template", b"template"]) -> None: ...

global___SparkClusterResourceTemplateSpec = SparkClusterResourceTemplateSpec

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

    DRIVER_MEMORY_FIELD_NUMBER: builtins.int
    DRIVER_CORES_FIELD_NUMBER: builtins.int
    INITIAL_EXECUTORS_FIELD_NUMBER: builtins.int
    MIN_EXECUTORS_FIELD_NUMBER: builtins.int
    MAX_EXECUTORS_FIELD_NUMBER: builtins.int
    EXECUTOR_MEMORY_FIELD_NUMBER: builtins.int
    EXECUTOR_CORES_FIELD_NUMBER: builtins.int
    driver_memory: builtins.str
    """driver memory, corresponds to "spark.driver.memory" and has the same format"""
    driver_cores: builtins.int
    """driver cores, corresponds to "spark.driver.cores" """
    initial_executors: builtins.int
    """initial executor count, corresponds to "spark.dynamicAllocation.initialExecutors" """
    min_executors: builtins.int
    """min number of executors, corresponds to "spark.dynamicAllocation.minExecutors" """
    max_executors: builtins.int
    """max number of executors, corresponds to "spark.dynamicAllocation.maxExecutors" """
    executor_memory: builtins.str
    """executor memory, corresponds to (and has the same format of) "spark.executor.memory" """
    executor_cores: builtins.int
    """executor cores, corresponds to "spark.executor.cores" """
    def __init__(
        self,
        *,
        driver_memory: builtins.str = ...,
        driver_cores: builtins.int = ...,
        initial_executors: builtins.int = ...,
        min_executors: builtins.int = ...,
        max_executors: builtins.int = ...,
        executor_memory: builtins.str = ...,
        executor_cores: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["driver_cores", b"driver_cores", "driver_memory", b"driver_memory", "executor_cores", b"executor_cores", "executor_memory", b"executor_memory", "initial_executors", b"initial_executors", "max_executors", b"max_executors", "min_executors", b"min_executors"]) -> None: ...

global___SparkResourceConfiguration = SparkResourceConfiguration

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

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

global___PodComputeResourceTemplateSpec = PodComputeResourceTemplateSpec

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

    OPTIMIZATION_TYPE_FIELD_NUMBER: builtins.int
    CPU_RESOURCES_FIELD_NUMBER: builtins.int
    GPU_RESOURCES_FIELD_NUMBER: builtins.int
    TEMPLATE_SPEC_FIELD_NUMBER: builtins.int
    optimization_type: global___NodeOptimizationType.ValueType
    @property
    def cpu_resources(self) -> global___CpuResources: ...
    @property
    def gpu_resources(self) -> global___GpuResources: ...
    @property
    def template_spec(self) -> global___PodComputeResourceTemplateSpec: ...
    def __init__(
        self,
        *,
        optimization_type: global___NodeOptimizationType.ValueType = ...,
        cpu_resources: global___CpuResources | None = ...,
        gpu_resources: global___GpuResources | None = ...,
        template_spec: global___PodComputeResourceTemplateSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "template_spec", b"template_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "optimization_type", b"optimization_type", "template_spec", b"template_spec"]) -> None: ...

global___PodComputeResources = PodComputeResources

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

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

global___SparkComputeResources = SparkComputeResources

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

    TEMPLATE_SPEC_FIELD_NUMBER: builtins.int
    RESOURCE_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def template_spec(self) -> global___SparkClusterResourceTemplateSpec: ...
    @property
    def resource_configuration(self) -> global___SparkResourceConfiguration: ...
    def __init__(
        self,
        *,
        template_spec: global___SparkClusterResourceTemplateSpec | None = ...,
        resource_configuration: global___SparkResourceConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_configuration", b"resource_configuration", "resources", b"resources", "template_spec", b"template_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_configuration", b"resource_configuration", "resources", b"resources", "template_spec", b"template_spec"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["resources", b"resources"]) -> typing_extensions.Literal["template_spec", "resource_configuration"] | None: ...

global___ClientSparkComputeResources = ClientSparkComputeResources

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

    NODE_OPTIMIZATION_TYPE_FIELD_NUMBER: builtins.int
    TEMPLATE_SPEC_FIELD_NUMBER: builtins.int
    CPU_RESOURCES_FIELD_NUMBER: builtins.int
    GPU_RESOURCES_FIELD_NUMBER: builtins.int
    node_optimization_type: global___NodeOptimizationType.ValueType
    @property
    def template_spec(self) -> global___PodComputeResourceTemplateSpec: ...
    @property
    def cpu_resources(self) -> global___CpuResources: ...
    @property
    def gpu_resources(self) -> global___GpuResources: ...
    def __init__(
        self,
        *,
        node_optimization_type: global___NodeOptimizationType.ValueType = ...,
        template_spec: global___PodComputeResourceTemplateSpec | None = ...,
        cpu_resources: global___CpuResources | None = ...,
        gpu_resources: global___GpuResources | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "resources", b"resources", "template_spec", b"template_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "node_optimization_type", b"node_optimization_type", "resources", b"resources", "template_spec", b"template_spec"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["resources", b"resources"]) -> typing_extensions.Literal["template_spec", "cpu_resources", "gpu_resources"] | None: ...

global___ClientPodComputeResources = ClientPodComputeResources
