"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import senren.feature_store.v1.specs.alerts_pb2
import senren.feature_store.v1.specs.entity_pb2
import senren.feature_store.v1.specs.feature_pb2
import senren.feature_store.v1.specs.metadata_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    METADATA_FIELD_NUMBER: builtins.int
    ENTITIES_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    MATERIALIZATION_FIELD_NUMBER: builtins.int
    TTL_FIELD_NUMBER: builtins.int
    @property
    def metadata(self) -> senren.feature_store.v1.specs.metadata_pb2.CommonMetadata: ...
    @property
    def entities(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        senren.feature_store.v1.specs.entity_pb2.EntityRef
    ]: ...
    @property
    def features(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        senren.feature_store.v1.specs.feature_pb2.FeatureSpec
    ]: ...
    @property
    def materialization(self) -> global___MaterializationConfig: ...
    @property
    def ttl(self) -> google.protobuf.duration_pb2.Duration: ...
    def __init__(
        self,
        *,
        metadata: senren.feature_store.v1.specs.metadata_pb2.CommonMetadata | None = ...,
        entities: collections.abc.Iterable[senren.feature_store.v1.specs.entity_pb2.EntityRef] | None = ...,
        features: collections.abc.Iterable[senren.feature_store.v1.specs.feature_pb2.FeatureSpec] | None = ...,
        materialization: global___MaterializationConfig | None = ...,
        ttl: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_ttl", b"_ttl", "materialization", b"materialization", "metadata", b"metadata", "ttl", b"ttl"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_ttl",
            b"_ttl",
            "entities",
            b"entities",
            "features",
            b"features",
            "materialization",
            b"materialization",
            "metadata",
            b"metadata",
            "ttl",
            b"ttl",
        ],
    ) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_ttl", b"_ttl"]) -> typing.Literal["ttl"] | None: ...

global___FeatureViewSpec = FeatureViewSpec

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

    FEATURE_START_TIME_FIELD_NUMBER: builtins.int
    SCHEDULE_FIELD_NUMBER: builtins.int
    ALERTS_FIELD_NUMBER: builtins.int
    schedule: builtins.str
    @property
    def feature_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def alerts(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        senren.feature_store.v1.specs.alerts_pb2.Alert
    ]: ...
    def __init__(
        self,
        *,
        feature_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        schedule: builtins.str = ...,
        alerts: collections.abc.Iterable[senren.feature_store.v1.specs.alerts_pb2.Alert] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["feature_start_time", b"feature_start_time"]) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "alerts", b"alerts", "feature_start_time", b"feature_start_time", "schedule", b"schedule"
        ],
    ) -> None: ...

global___MaterializationConfig = MaterializationConfig
