"""
@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.message
import typing
import yandex.cloud.baremetal.v1alpha.disk_pb2

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class CPU(google.protobuf.message.Message):
    """CPU configuration."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    VENDOR_FIELD_NUMBER: builtins.int
    CORES_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of the CPU."""
    vendor: builtins.str
    """Vendor of the CPU."""
    cores: builtins.int
    """Number of cores."""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        vendor: builtins.str = ...,
        cores: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["cores", b"cores", "name", b"name", "vendor", b"vendor"]) -> None: ...

global___CPU = CPU

@typing.final
class DiskDriveConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    DISK_COUNT_FIELD_NUMBER: builtins.int
    DISK_SIZE_GIB_FIELD_NUMBER: builtins.int
    type: yandex.cloud.baremetal.v1alpha.disk_pb2.DiskDriveType.ValueType
    """Type of the disk drive."""
    disk_count: builtins.int
    """Number of disk drives."""
    disk_size_gib: builtins.int
    """Size of a single disk drive in gibibytes (2^30 bytes)."""
    def __init__(
        self,
        *,
        type: yandex.cloud.baremetal.v1alpha.disk_pb2.DiskDriveType.ValueType = ...,
        disk_count: builtins.int = ...,
        disk_size_gib: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["disk_count", b"disk_count", "disk_size_gib", b"disk_size_gib", "type", b"type"]) -> None: ...

global___DiskDriveConfiguration = DiskDriveConfiguration

@typing.final
class Configuration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    MEMORY_GIB_FIELD_NUMBER: builtins.int
    CPU_FIELD_NUMBER: builtins.int
    DISK_DRIVES_FIELD_NUMBER: builtins.int
    NETWORK_CAPACITY_GBPS_FIELD_NUMBER: builtins.int
    CPU_NUM_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the configuration."""
    name: builtins.str
    """Name of the configuration."""
    memory_gib: builtins.int
    """Random-access memory (RAM) size in gibibytes (2^30 bytes)."""
    network_capacity_gbps: builtins.int
    """Network capacity or bandwidth in gigabits per second."""
    cpu_num: builtins.int
    """Number of cpu."""
    @property
    def cpu(self) -> global___CPU:
        """CPU configuration."""

    @property
    def disk_drives(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DiskDriveConfiguration]:
        """Array of disk drive configurations."""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        name: builtins.str = ...,
        memory_gib: builtins.int = ...,
        cpu: global___CPU | None = ...,
        disk_drives: collections.abc.Iterable[global___DiskDriveConfiguration] | None = ...,
        network_capacity_gbps: builtins.int = ...,
        cpu_num: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cpu", b"cpu"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cpu", b"cpu", "cpu_num", b"cpu_num", "disk_drives", b"disk_drives", "id", b"id", "memory_gib", b"memory_gib", "name", b"name", "network_capacity_gbps", b"network_capacity_gbps"]) -> None: ...

global___Configuration = Configuration
