"""
@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 _FileFormat:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _FileFormatEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FileFormat.ValueType], builtins.type
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PARQUET: _FileFormat.ValueType  # 0
    CSV: _FileFormat.ValueType  # 1
    JSON: _FileFormat.ValueType  # 2

class FileFormat(_FileFormat, metaclass=_FileFormatEnumTypeWrapper): ...

PARQUET: FileFormat.ValueType  # 0
CSV: FileFormat.ValueType  # 1
JSON: FileFormat.ValueType  # 2
global___FileFormat = FileFormat

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

    METADATA_FIELD_NUMBER: builtins.int
    SOURCE_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> senren.feature_store.v1.specs.metadata_pb2.CommonMetadata: ...
    @property
    def source_config(self) -> global___FileBatchConfig: ...
    def __init__(
        self,
        *,
        metadata: senren.feature_store.v1.specs.metadata_pb2.CommonMetadata | None = ...,
        source_config: global___FileBatchConfig | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata", "source_config", b"source_config"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing.Literal["metadata", b"metadata", "source_config", b"source_config"]
    ) -> None: ...

global___DataSourceSpec = DataSourceSpec

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

    FILE_FIELD_NUMBER: builtins.int
    FILE_FORMAT_FIELD_NUMBER: builtins.int
    TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int
    REGION_PARTITIONING_COLUMN_FIELD_NUMBER: builtins.int
    file_format: global___FileFormat.ValueType
    timestamp_column: builtins.str
    region_partitioning_column: builtins.str
    @property
    def file(self) -> global___S3File: ...
    def __init__(
        self,
        *,
        file: global___S3File | None = ...,
        file_format: global___FileFormat.ValueType = ...,
        timestamp_column: builtins.str = ...,
        region_partitioning_column: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["file", b"file"]) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "file",
            b"file",
            "file_format",
            b"file_format",
            "region_partitioning_column",
            b"region_partitioning_column",
            "timestamp_column",
            b"timestamp_column",
        ],
    ) -> None: ...

global___FileBatchConfig = FileBatchConfig

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

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

global___S3File = S3File
