"""
@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 senren.feature_store.v1.specs.metadata_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 _Cloud:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CloudEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Cloud.ValueType], builtins.type
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    CLOUD_UNSPECIFIED: _Cloud.ValueType  # 0
    AWS: _Cloud.ValueType  # 1
    GCP: _Cloud.ValueType  # 2

class Cloud(_Cloud, metaclass=_CloudEnumTypeWrapper): ...

CLOUD_UNSPECIFIED: Cloud.ValueType  # 0
AWS: Cloud.ValueType  # 1
GCP: Cloud.ValueType  # 2
global___Cloud = Cloud

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

class _RegionEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Region.ValueType], builtins.type
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    REGION_UNSPECIFIED: _Region.ValueType  # 0
    AWS_US_EAST_1: _Region.ValueType  # 1
    AWS_US_WEST_2: _Region.ValueType  # 2
    AWS_EU_CENTRAL_1: _Region.ValueType  # 3
    AWS_AP_SOUTHEAST_1: _Region.ValueType  # 4
    GCP_US_CENTRAL1: _Region.ValueType  # 5
    GCP_EUROPE_WEST1: _Region.ValueType  # 6
    GCP_ASIA_EAST1: _Region.ValueType  # 7

class Region(_Region, metaclass=_RegionEnumTypeWrapper): ...

REGION_UNSPECIFIED: Region.ValueType  # 0
AWS_US_EAST_1: Region.ValueType  # 1
AWS_US_WEST_2: Region.ValueType  # 2
AWS_EU_CENTRAL_1: Region.ValueType  # 3
AWS_AP_SOUTHEAST_1: Region.ValueType  # 4
GCP_US_CENTRAL1: Region.ValueType  # 5
GCP_EUROPE_WEST1: Region.ValueType  # 6
GCP_ASIA_EAST1: Region.ValueType  # 7
global___Region = Region

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

class _NodeSizeEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NodeSize.ValueType], builtins.type
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NODE_SIZE_UNSPECIFIED: _NodeSize.ValueType  # 0
    AWS_T3_MICRO: _NodeSize.ValueType  # 1
    AWS_T3_SMALL: _NodeSize.ValueType  # 2
    AWS_T3_MEDIUM: _NodeSize.ValueType  # 3
    GCP_E2_MICRO: _NodeSize.ValueType  # 4
    GCP_E2_SMALL: _NodeSize.ValueType  # 5
    GCP_E2_MEDIUM: _NodeSize.ValueType  # 6

class NodeSize(_NodeSize, metaclass=_NodeSizeEnumTypeWrapper): ...

NODE_SIZE_UNSPECIFIED: NodeSize.ValueType  # 0
AWS_T3_MICRO: NodeSize.ValueType  # 1
AWS_T3_SMALL: NodeSize.ValueType  # 2
AWS_T3_MEDIUM: NodeSize.ValueType  # 3
GCP_E2_MICRO: NodeSize.ValueType  # 4
GCP_E2_SMALL: NodeSize.ValueType  # 5
GCP_E2_MEDIUM: NodeSize.ValueType  # 6
global___NodeSize = NodeSize

@typing.final
class OnlineStoreSpec(google.protobuf.message.Message):
    """TODO: Michael, rename to a Database and add multiple options"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    METADATA_FIELD_NUMBER: builtins.int
    CLOUD_FIELD_NUMBER: builtins.int
    NODE_SIZE_FIELD_NUMBER: builtins.int
    NUM_NODES_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    cloud: global___Cloud.ValueType
    node_size: global___NodeSize.ValueType
    num_nodes: builtins.int
    region: global___Region.ValueType
    @property
    def metadata(self) -> senren.feature_store.v1.specs.metadata_pb2.CommonMetadata: ...
    def __init__(
        self,
        *,
        metadata: senren.feature_store.v1.specs.metadata_pb2.CommonMetadata | None = ...,
        cloud: global___Cloud.ValueType = ...,
        node_size: global___NodeSize.ValueType = ...,
        num_nodes: builtins.int = ...,
        region: global___Region.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "cloud",
            b"cloud",
            "metadata",
            b"metadata",
            "node_size",
            b"node_size",
            "num_nodes",
            b"num_nodes",
            "region",
            b"region",
        ],
    ) -> None: ...

global___OnlineStoreSpec = OnlineStoreSpec

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___OnlineStoreRef = OnlineStoreRef
