"""
@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 senren.feature_store.v1.specs.data_source_pb2
import senren.feature_store.v1.specs.entity_pb2
import senren.feature_store.v1.specs.feature_service_pb2
import senren.feature_store.v1.specs.feature_view_pb2
import senren.feature_store.v1.specs.online_store_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> senren.feature_store.v1.specs.entity_pb2.EntitySpec: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: senren.feature_store.v1.specs.entity_pb2.EntitySpec | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> senren.feature_store.v1.specs.data_source_pb2.DataSourceSpec: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: senren.feature_store.v1.specs.data_source_pb2.DataSourceSpec | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> senren.feature_store.v1.specs.feature_view_pb2.FeatureViewSpec: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: senren.feature_store.v1.specs.feature_view_pb2.FeatureViewSpec | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> senren.feature_store.v1.specs.feature_service_pb2.FeatureServiceSpec: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: senren.feature_store.v1.specs.feature_service_pb2.FeatureServiceSpec | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> senren.feature_store.v1.specs.online_store_pb2.OnlineStoreSpec: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: senren.feature_store.v1.specs.online_store_pb2.OnlineStoreSpec | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    ENTITIES_FIELD_NUMBER: builtins.int
    DATA_SOURCES_FIELD_NUMBER: builtins.int
    FEATURE_VIEWS_FIELD_NUMBER: builtins.int
    FEATURE_SERVICES_FIELD_NUMBER: builtins.int
    ONLINE_STORES_FIELD_NUMBER: builtins.int
    @property
    def entities(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, senren.feature_store.v1.specs.entity_pb2.EntitySpec
    ]: ...
    @property
    def data_sources(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, senren.feature_store.v1.specs.data_source_pb2.DataSourceSpec
    ]: ...
    @property
    def feature_views(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, senren.feature_store.v1.specs.feature_view_pb2.FeatureViewSpec
    ]: ...
    @property
    def feature_services(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, senren.feature_store.v1.specs.feature_service_pb2.FeatureServiceSpec
    ]: ...
    @property
    def online_stores(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, senren.feature_store.v1.specs.online_store_pb2.OnlineStoreSpec
    ]: ...
    def __init__(
        self,
        *,
        entities: collections.abc.Mapping[builtins.str, senren.feature_store.v1.specs.entity_pb2.EntitySpec]
        | None = ...,
        data_sources: collections.abc.Mapping[
            builtins.str, senren.feature_store.v1.specs.data_source_pb2.DataSourceSpec
        ]
        | None = ...,
        feature_views: collections.abc.Mapping[
            builtins.str, senren.feature_store.v1.specs.feature_view_pb2.FeatureViewSpec
        ]
        | None = ...,
        feature_services: collections.abc.Mapping[
            builtins.str, senren.feature_store.v1.specs.feature_service_pb2.FeatureServiceSpec
        ]
        | None = ...,
        online_stores: collections.abc.Mapping[
            builtins.str, senren.feature_store.v1.specs.online_store_pb2.OnlineStoreSpec
        ]
        | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "data_sources",
            b"data_sources",
            "entities",
            b"entities",
            "feature_services",
            b"feature_services",
            "feature_views",
            b"feature_views",
            "online_stores",
            b"online_stores",
        ],
    ) -> None: ...

global___RepoSpec = RepoSpec
