From 2ebb20469b07c1e6db38a76ee99d7499b9142c20 Mon Sep 17 00:00:00 2001 From: Shide Foo Date: Mon, 30 Sep 2024 17:54:37 +0800 Subject: [PATCH 1/2] Add HBase as online store in protobuf, recompile --- .../main/proto/feast/core/OnlineStore.proto | 3 + caraml-store-sdk/python/feast/client.py | 2 +- .../python/feast/core/CoreService_pb2.py | 168 +-- .../python/feast/core/CoreService_pb2.pyi | 1010 ++++++++++++----- .../python/feast/core/DataFormat_pb2.py | 20 +- .../python/feast/core/DataFormat_pb2.pyi | 137 ++- .../python/feast/core/DataSource_pb2.py | 24 +- .../python/feast/core/DataSource_pb2.pyi | 263 +++-- .../python/feast/core/Entity_pb2.py | 16 +- .../python/feast/core/Entity_pb2.pyi | 151 ++- .../python/feast/core/FeatureTable_pb2.py | 16 +- .../python/feast/core/FeatureTable_pb2.pyi | 226 +++- .../python/feast/core/Feature_pb2.py | 8 +- .../python/feast/core/Feature_pb2.pyi | 79 +- .../python/feast/core/LegacyJobService_pb2.py | 27 + .../feast/core/LegacyJobService_pb2.pyi | 9 + .../feast/core/LegacyJobService_pb2_grpc.py | 135 +++ .../python/feast/core/OnlineStore_pb2.py | 8 +- .../python/feast/core/OnlineStore_pb2.pyi | 96 +- .../python/feast/core/SparkOverride_pb2.py | 6 +- .../python/feast/core/SparkOverride_pb2.pyi | 56 +- .../feast/serving/ServingService_pb2.py | 60 +- .../feast/serving/ServingService_pb2.pyi | 451 ++++++-- .../python/feast/types/Field_pb2.py | 4 +- .../python/feast/types/Field_pb2.pyi | 50 +- .../python/feast/types/Value_pb2.py | 32 +- .../python/feast/types/Value_pb2.pyi | 345 ++++-- .../python/feast_spark/api/JobService_pb2.py | 122 +- .../python/feast_spark/api/JobService_pb2.pyi | 888 ++++++++++----- 29 files changed, 3160 insertions(+), 1252 deletions(-) create mode 100644 caraml-store-sdk/python/feast/core/LegacyJobService_pb2.py create mode 100644 caraml-store-sdk/python/feast/core/LegacyJobService_pb2.pyi create mode 100644 caraml-store-sdk/python/feast/core/LegacyJobService_pb2_grpc.py diff --git a/caraml-store-protobuf/src/main/proto/feast/core/OnlineStore.proto b/caraml-store-protobuf/src/main/proto/feast/core/OnlineStore.proto index e0a565c..e1c1953 100644 --- a/caraml-store-protobuf/src/main/proto/feast/core/OnlineStore.proto +++ b/caraml-store-protobuf/src/main/proto/feast/core/OnlineStore.proto @@ -32,4 +32,7 @@ enum StoreType { // redis in-memory database REDIS = 2; + + // HBase database + HBASE = 3; } \ No newline at end of file diff --git a/caraml-store-sdk/python/feast/client.py b/caraml-store-sdk/python/feast/client.py index 1b0ae84..e08b210 100644 --- a/caraml-store-sdk/python/feast/client.py +++ b/caraml-store-sdk/python/feast/client.py @@ -236,7 +236,7 @@ def list_online_stores(self) -> ListOnlineStoresResponse: List online stores Returns: ListOnlineStoresResponse """ - return self._core_service.ListOnlineStores(ListOnlineStoresRequest()) + return self._core_service.ListOnlineStore(ListOnlineStoresRequest()) def get_online_features( self, diff --git a/caraml-store-sdk/python/feast/core/CoreService_pb2.py b/caraml-store-sdk/python/feast/core/CoreService_pb2.py index 7c443d4..398e77a 100644 --- a/caraml-store-sdk/python/feast/core/CoreService_pb2.py +++ b/caraml-store-sdk/python/feast/core/CoreService_pb2.py @@ -17,7 +17,7 @@ from feast.core import OnlineStore_pb2 as feast_dot_core_dot_OnlineStore__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/CoreService.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/core/Entity.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1d\x66\x65\x61st/core/FeatureTable.proto\x1a\x1c\x66\x65\x61st/core/OnlineStore.proto\"@\n\x10GetEntityRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\"?\n\x11GetEntityResponse\x12*\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x12.feast.core.EntityR\x06\x65ntity\"\x81\x02\n\x13ListEntitiesRequest\x12>\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.feast.core.ListEntitiesRequest.FilterR\x06\x66ilter\x1a\xa9\x01\n\x06\x46ilter\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12J\n\x06labels\x18\x04 \x03(\x0b\x32\x32.feast.core.ListEntitiesRequest.Filter.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"F\n\x14ListEntitiesResponse\x12.\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x12.feast.core.EntityR\x08\x65ntities\"\x9d\x02\n\x13ListFeaturesRequest\x12>\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.feast.core.ListFeaturesRequest.FilterR\x06\x66ilter\x1a\xc5\x01\n\x06\x46ilter\x12J\n\x06labels\x18\x01 \x03(\x0b\x32\x32.feast.core.ListFeaturesRequest.Filter.LabelsEntryR\x06labels\x12\x1a\n\x08\x65ntities\x18\x02 \x03(\tR\x08\x65ntities\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xbe\x01\n\x14ListFeaturesResponse\x12J\n\x08\x66\x65\x61tures\x18\x02 \x03(\x0b\x32..feast.core.ListFeaturesResponse.FeaturesEntryR\x08\x66\x65\x61tures\x1aT\n\rFeaturesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x17.feast.core.FeatureSpecR\x05value:\x02\x38\x01J\x04\x08\x01\x10\x02\"Z\n\x12\x41pplyEntityRequest\x12*\n\x04spec\x18\x01 \x01(\x0b\x32\x16.feast.core.EntitySpecR\x04spec\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\"A\n\x13\x41pplyEntityResponse\x12*\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x12.feast.core.EntityR\x06\x65ntity\"\x1c\n\x1aGetFeastCoreVersionRequest\"7\n\x1bGetFeastCoreVersionResponse\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\"*\n\x14\x43reateProjectRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\x17\n\x15\x43reateProjectResponse\"+\n\x15\x41rchiveProjectRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\x18\n\x16\x41rchiveProjectResponse\"\x15\n\x13ListProjectsRequest\"2\n\x14ListProjectsResponse\x12\x1a\n\x08projects\x18\x01 \x03(\tR\x08projects\"q\n\x18\x41pplyFeatureTableRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12;\n\ntable_spec\x18\x02 \x01(\x0b\x32\x1c.feast.core.FeatureTableSpecR\ttableSpec\"K\n\x19\x41pplyFeatureTableResponse\x12.\n\x05table\x18\x01 \x01(\x0b\x32\x18.feast.core.FeatureTableR\x05table\"F\n\x16GetFeatureTableRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"I\n\x17GetFeatureTableResponse\x12.\n\x05table\x18\x01 \x01(\x0b\x32\x18.feast.core.FeatureTableR\x05table\"\x90\x02\n\x18ListFeatureTablesRequest\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32+.feast.core.ListFeatureTablesRequest.FilterR\x06\x66ilter\x1a\xae\x01\n\x06\x46ilter\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12O\n\x06labels\x18\x03 \x03(\x0b\x32\x37.feast.core.ListFeatureTablesRequest.Filter.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"M\n\x19ListFeatureTablesResponse\x12\x30\n\x06tables\x18\x01 \x03(\x0b\x32\x18.feast.core.FeatureTableR\x06tables\"I\n\x19\x44\x65leteFeatureTableRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\x1c\n\x1a\x44\x65leteFeatureTableResponse\"\x19\n\x17ListOnlineStoresRequest\"V\n\x18ListOnlineStoresResponse\x12:\n\x0conline_store\x18\x01 \x03(\x0b\x32\x17.feast.core.OnlineStoreR\x0bonlineStore\"+\n\x15GetOnlineStoreRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xbb\x01\n\x16GetOnlineStoreResponse\x12:\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStoreR\x0bonlineStore\x12\x41\n\x06status\x18\x02 \x01(\x0e\x32).feast.core.GetOnlineStoreResponse.StatusR\x06status\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\"X\n\x1aRegisterOnlineStoreRequest\x12:\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStoreR\x0bonlineStore\"\xd7\x01\n\x1bRegisterOnlineStoreResponse\x12:\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStoreR\x0bonlineStore\x12\x46\n\x06status\x18\x02 \x01(\x0e\x32..feast.core.RegisterOnlineStoreResponse.StatusR\x06status\"4\n\x06Status\x12\r\n\tNO_CHANGE\x10\x00\x12\x0e\n\nREGISTERED\x10\x01\x12\x0b\n\x07UPDATED\x10\x02\"/\n\x19\x41rchiveOnlineStoreRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\x1c\n\x1a\x41rchiveOnlineStoreResponse2\xc1\x0b\n\x0b\x43oreService\x12\x66\n\x13GetFeastCoreVersion\x12&.feast.core.GetFeastCoreVersionRequest\x1a\'.feast.core.GetFeastCoreVersionResponse\x12H\n\tGetEntity\x12\x1c.feast.core.GetEntityRequest\x1a\x1d.feast.core.GetEntityResponse\x12Q\n\x0cListFeatures\x12\x1f.feast.core.ListFeaturesRequest\x1a .feast.core.ListFeaturesResponse\x12N\n\x0b\x41pplyEntity\x12\x1e.feast.core.ApplyEntityRequest\x1a\x1f.feast.core.ApplyEntityResponse\x12Q\n\x0cListEntities\x12\x1f.feast.core.ListEntitiesRequest\x1a .feast.core.ListEntitiesResponse\x12T\n\rCreateProject\x12 .feast.core.CreateProjectRequest\x1a!.feast.core.CreateProjectResponse\x12W\n\x0e\x41rchiveProject\x12!.feast.core.ArchiveProjectRequest\x1a\".feast.core.ArchiveProjectResponse\x12Q\n\x0cListProjects\x12\x1f.feast.core.ListProjectsRequest\x1a .feast.core.ListProjectsResponse\x12`\n\x11\x41pplyFeatureTable\x12$.feast.core.ApplyFeatureTableRequest\x1a%.feast.core.ApplyFeatureTableResponse\x12`\n\x11ListFeatureTables\x12$.feast.core.ListFeatureTablesRequest\x1a%.feast.core.ListFeatureTablesResponse\x12Z\n\x0fGetFeatureTable\x12\".feast.core.GetFeatureTableRequest\x1a#.feast.core.GetFeatureTableResponse\x12\x63\n\x12\x44\x65leteFeatureTable\x12%.feast.core.DeleteFeatureTableRequest\x1a&.feast.core.DeleteFeatureTableResponse\x12]\n\x10ListOnlineStores\x12#.feast.core.ListOnlineStoresRequest\x1a$.feast.core.ListOnlineStoresResponse\x12W\n\x0eGetOnlineStore\x12!.feast.core.GetOnlineStoreRequest\x1a\".feast.core.GetOnlineStoreResponse\x12\x66\n\x13RegisterOnlineStore\x12&.feast.core.RegisterOnlineStoreRequest\x1a\'.feast.core.RegisterOnlineStoreResponse\x12\x63\n\x12\x41rchiveOnlineStore\x12%.feast.core.ArchiveOnlineStoreRequest\x1a&.feast.core.ArchiveOnlineStoreResponseB|\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x10\x43oreServiceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/CoreService.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/core/Entity.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1d\x66\x65\x61st/core/FeatureTable.proto\x1a\x1c\x66\x65\x61st/core/OnlineStore.proto\"1\n\x10GetEntityRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\"7\n\x11GetEntityResponse\x12\"\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x12.feast.core.Entity\"\xdc\x01\n\x13ListEntitiesRequest\x12\x36\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.feast.core.ListEntitiesRequest.Filter\x1a\x8c\x01\n\x06\x46ilter\x12\x0f\n\x07project\x18\x03 \x01(\t\x12\x42\n\x06labels\x18\x04 \x03(\x0b\x32\x32.feast.core.ListEntitiesRequest.Filter.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"<\n\x14ListEntitiesResponse\x12$\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x12.feast.core.Entity\"\xee\x01\n\x13ListFeaturesRequest\x12\x36\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.feast.core.ListFeaturesRequest.Filter\x1a\x9e\x01\n\x06\x46ilter\x12\x42\n\x06labels\x18\x01 \x03(\x0b\x32\x32.feast.core.ListFeaturesRequest.Filter.LabelsEntry\x12\x10\n\x08\x65ntities\x18\x02 \x03(\t\x12\x0f\n\x07project\x18\x03 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa8\x01\n\x14ListFeaturesResponse\x12@\n\x08\x66\x65\x61tures\x18\x02 \x03(\x0b\x32..feast.core.ListFeaturesResponse.FeaturesEntry\x1aH\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.feast.core.FeatureSpec:\x02\x38\x01J\x04\x08\x01\x10\x02\"K\n\x12\x41pplyEntityRequest\x12$\n\x04spec\x18\x01 \x01(\x0b\x32\x16.feast.core.EntitySpec\x12\x0f\n\x07project\x18\x02 \x01(\t\"9\n\x13\x41pplyEntityResponse\x12\"\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x12.feast.core.Entity\"\x1c\n\x1aGetFeastCoreVersionRequest\".\n\x1bGetFeastCoreVersionResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\"$\n\x14\x43reateProjectRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x17\n\x15\x43reateProjectResponse\"%\n\x15\x41rchiveProjectRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x18\n\x16\x41rchiveProjectResponse\"\x15\n\x13ListProjectsRequest\"(\n\x14ListProjectsResponse\x12\x10\n\x08projects\x18\x01 \x03(\t\"]\n\x18\x41pplyFeatureTableRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x30\n\ntable_spec\x18\x02 \x01(\x0b\x32\x1c.feast.core.FeatureTableSpec\"D\n\x19\x41pplyFeatureTableResponse\x12\'\n\x05table\x18\x01 \x01(\x0b\x32\x18.feast.core.FeatureTable\"7\n\x16GetFeatureTableRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\x17GetFeatureTableResponse\x12\'\n\x05table\x18\x01 \x01(\x0b\x32\x18.feast.core.FeatureTable\"\xeb\x01\n\x18ListFeatureTablesRequest\x12;\n\x06\x66ilter\x18\x01 \x01(\x0b\x32+.feast.core.ListFeatureTablesRequest.Filter\x1a\x91\x01\n\x06\x46ilter\x12\x0f\n\x07project\x18\x01 \x01(\t\x12G\n\x06labels\x18\x03 \x03(\x0b\x32\x37.feast.core.ListFeatureTablesRequest.Filter.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"E\n\x19ListFeatureTablesResponse\x12(\n\x06tables\x18\x01 \x03(\x0b\x32\x18.feast.core.FeatureTable\":\n\x19\x44\x65leteFeatureTableRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x1c\n\x1a\x44\x65leteFeatureTableResponse\"\x19\n\x17ListOnlineStoresRequest\"I\n\x18ListOnlineStoresResponse\x12-\n\x0conline_store\x18\x01 \x03(\x0b\x32\x17.feast.core.OnlineStore\"%\n\x15GetOnlineStoreRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xa6\x01\n\x16GetOnlineStoreResponse\x12-\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStore\x12\x39\n\x06status\x18\x02 \x01(\x0e\x32).feast.core.GetOnlineStoreResponse.Status\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\"K\n\x1aRegisterOnlineStoreRequest\x12-\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStore\"\xc2\x01\n\x1bRegisterOnlineStoreResponse\x12-\n\x0conline_store\x18\x01 \x01(\x0b\x32\x17.feast.core.OnlineStore\x12>\n\x06status\x18\x02 \x01(\x0e\x32..feast.core.RegisterOnlineStoreResponse.Status\"4\n\x06Status\x12\r\n\tNO_CHANGE\x10\x00\x12\x0e\n\nREGISTERED\x10\x01\x12\x0b\n\x07UPDATED\x10\x02\")\n\x19\x41rchiveOnlineStoreRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1c\n\x1a\x41rchiveOnlineStoreResponse2\xc1\x0b\n\x0b\x43oreService\x12\x66\n\x13GetFeastCoreVersion\x12&.feast.core.GetFeastCoreVersionRequest\x1a\'.feast.core.GetFeastCoreVersionResponse\x12H\n\tGetEntity\x12\x1c.feast.core.GetEntityRequest\x1a\x1d.feast.core.GetEntityResponse\x12Q\n\x0cListFeatures\x12\x1f.feast.core.ListFeaturesRequest\x1a .feast.core.ListFeaturesResponse\x12N\n\x0b\x41pplyEntity\x12\x1e.feast.core.ApplyEntityRequest\x1a\x1f.feast.core.ApplyEntityResponse\x12Q\n\x0cListEntities\x12\x1f.feast.core.ListEntitiesRequest\x1a .feast.core.ListEntitiesResponse\x12T\n\rCreateProject\x12 .feast.core.CreateProjectRequest\x1a!.feast.core.CreateProjectResponse\x12W\n\x0e\x41rchiveProject\x12!.feast.core.ArchiveProjectRequest\x1a\".feast.core.ArchiveProjectResponse\x12Q\n\x0cListProjects\x12\x1f.feast.core.ListProjectsRequest\x1a .feast.core.ListProjectsResponse\x12`\n\x11\x41pplyFeatureTable\x12$.feast.core.ApplyFeatureTableRequest\x1a%.feast.core.ApplyFeatureTableResponse\x12`\n\x11ListFeatureTables\x12$.feast.core.ListFeatureTablesRequest\x1a%.feast.core.ListFeatureTablesResponse\x12Z\n\x0fGetFeatureTable\x12\".feast.core.GetFeatureTableRequest\x1a#.feast.core.GetFeatureTableResponse\x12\x63\n\x12\x44\x65leteFeatureTable\x12%.feast.core.DeleteFeatureTableRequest\x1a&.feast.core.DeleteFeatureTableResponse\x12]\n\x10ListOnlineStores\x12#.feast.core.ListOnlineStoresRequest\x1a$.feast.core.ListOnlineStoresResponse\x12W\n\x0eGetOnlineStore\x12!.feast.core.GetOnlineStoreRequest\x1a\".feast.core.GetOnlineStoreResponse\x12\x66\n\x13RegisterOnlineStore\x12&.feast.core.RegisterOnlineStoreRequest\x1a\'.feast.core.RegisterOnlineStoreResponse\x12\x63\n\x12\x41rchiveOnlineStore\x12%.feast.core.ArchiveOnlineStoreRequest\x1a&.feast.core.ArchiveOnlineStoreResponseB|\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x10\x43oreServiceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.CoreService_pb2', globals()) @@ -34,87 +34,87 @@ _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._options = None _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._serialized_options = b'8\001' _GETENTITYREQUEST._serialized_start=156 - _GETENTITYREQUEST._serialized_end=220 - _GETENTITYRESPONSE._serialized_start=222 - _GETENTITYRESPONSE._serialized_end=285 - _LISTENTITIESREQUEST._serialized_start=288 - _LISTENTITIESREQUEST._serialized_end=545 - _LISTENTITIESREQUEST_FILTER._serialized_start=376 - _LISTENTITIESREQUEST_FILTER._serialized_end=545 - _LISTENTITIESREQUEST_FILTER_LABELSENTRY._serialized_start=488 - _LISTENTITIESREQUEST_FILTER_LABELSENTRY._serialized_end=545 - _LISTENTITIESRESPONSE._serialized_start=547 - _LISTENTITIESRESPONSE._serialized_end=617 - _LISTFEATURESREQUEST._serialized_start=620 - _LISTFEATURESREQUEST._serialized_end=905 - _LISTFEATURESREQUEST_FILTER._serialized_start=708 - _LISTFEATURESREQUEST_FILTER._serialized_end=905 - _LISTFEATURESREQUEST_FILTER_LABELSENTRY._serialized_start=488 - _LISTFEATURESREQUEST_FILTER_LABELSENTRY._serialized_end=545 - _LISTFEATURESRESPONSE._serialized_start=908 - _LISTFEATURESRESPONSE._serialized_end=1098 - _LISTFEATURESRESPONSE_FEATURESENTRY._serialized_start=1008 - _LISTFEATURESRESPONSE_FEATURESENTRY._serialized_end=1092 - _APPLYENTITYREQUEST._serialized_start=1100 - _APPLYENTITYREQUEST._serialized_end=1190 - _APPLYENTITYRESPONSE._serialized_start=1192 - _APPLYENTITYRESPONSE._serialized_end=1257 - _GETFEASTCOREVERSIONREQUEST._serialized_start=1259 - _GETFEASTCOREVERSIONREQUEST._serialized_end=1287 - _GETFEASTCOREVERSIONRESPONSE._serialized_start=1289 - _GETFEASTCOREVERSIONRESPONSE._serialized_end=1344 - _CREATEPROJECTREQUEST._serialized_start=1346 - _CREATEPROJECTREQUEST._serialized_end=1388 - _CREATEPROJECTRESPONSE._serialized_start=1390 - _CREATEPROJECTRESPONSE._serialized_end=1413 - _ARCHIVEPROJECTREQUEST._serialized_start=1415 - _ARCHIVEPROJECTREQUEST._serialized_end=1458 - _ARCHIVEPROJECTRESPONSE._serialized_start=1460 - _ARCHIVEPROJECTRESPONSE._serialized_end=1484 - _LISTPROJECTSREQUEST._serialized_start=1486 - _LISTPROJECTSREQUEST._serialized_end=1507 - _LISTPROJECTSRESPONSE._serialized_start=1509 - _LISTPROJECTSRESPONSE._serialized_end=1559 - _APPLYFEATURETABLEREQUEST._serialized_start=1561 - _APPLYFEATURETABLEREQUEST._serialized_end=1674 - _APPLYFEATURETABLERESPONSE._serialized_start=1676 - _APPLYFEATURETABLERESPONSE._serialized_end=1751 - _GETFEATURETABLEREQUEST._serialized_start=1753 - _GETFEATURETABLEREQUEST._serialized_end=1823 - _GETFEATURETABLERESPONSE._serialized_start=1825 - _GETFEATURETABLERESPONSE._serialized_end=1898 - _LISTFEATURETABLESREQUEST._serialized_start=1901 - _LISTFEATURETABLESREQUEST._serialized_end=2173 - _LISTFEATURETABLESREQUEST_FILTER._serialized_start=1999 - _LISTFEATURETABLESREQUEST_FILTER._serialized_end=2173 - _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._serialized_start=488 - _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._serialized_end=545 - _LISTFEATURETABLESRESPONSE._serialized_start=2175 - _LISTFEATURETABLESRESPONSE._serialized_end=2252 - _DELETEFEATURETABLEREQUEST._serialized_start=2254 - _DELETEFEATURETABLEREQUEST._serialized_end=2327 - _DELETEFEATURETABLERESPONSE._serialized_start=2329 - _DELETEFEATURETABLERESPONSE._serialized_end=2357 - _LISTONLINESTORESREQUEST._serialized_start=2359 - _LISTONLINESTORESREQUEST._serialized_end=2384 - _LISTONLINESTORESRESPONSE._serialized_start=2386 - _LISTONLINESTORESRESPONSE._serialized_end=2472 - _GETONLINESTOREREQUEST._serialized_start=2474 - _GETONLINESTOREREQUEST._serialized_end=2517 - _GETONLINESTORERESPONSE._serialized_start=2520 - _GETONLINESTORERESPONSE._serialized_end=2707 - _GETONLINESTORERESPONSE_STATUS._serialized_start=2673 - _GETONLINESTORERESPONSE_STATUS._serialized_end=2707 - _REGISTERONLINESTOREREQUEST._serialized_start=2709 - _REGISTERONLINESTOREREQUEST._serialized_end=2797 - _REGISTERONLINESTORERESPONSE._serialized_start=2800 - _REGISTERONLINESTORERESPONSE._serialized_end=3015 - _REGISTERONLINESTORERESPONSE_STATUS._serialized_start=2963 - _REGISTERONLINESTORERESPONSE_STATUS._serialized_end=3015 - _ARCHIVEONLINESTOREREQUEST._serialized_start=3017 - _ARCHIVEONLINESTOREREQUEST._serialized_end=3064 - _ARCHIVEONLINESTORERESPONSE._serialized_start=3066 - _ARCHIVEONLINESTORERESPONSE._serialized_end=3094 - _CORESERVICE._serialized_start=3097 - _CORESERVICE._serialized_end=4570 + _GETENTITYREQUEST._serialized_end=205 + _GETENTITYRESPONSE._serialized_start=207 + _GETENTITYRESPONSE._serialized_end=262 + _LISTENTITIESREQUEST._serialized_start=265 + _LISTENTITIESREQUEST._serialized_end=485 + _LISTENTITIESREQUEST_FILTER._serialized_start=345 + _LISTENTITIESREQUEST_FILTER._serialized_end=485 + _LISTENTITIESREQUEST_FILTER_LABELSENTRY._serialized_start=440 + _LISTENTITIESREQUEST_FILTER_LABELSENTRY._serialized_end=485 + _LISTENTITIESRESPONSE._serialized_start=487 + _LISTENTITIESRESPONSE._serialized_end=547 + _LISTFEATURESREQUEST._serialized_start=550 + _LISTFEATURESREQUEST._serialized_end=788 + _LISTFEATURESREQUEST_FILTER._serialized_start=630 + _LISTFEATURESREQUEST_FILTER._serialized_end=788 + _LISTFEATURESREQUEST_FILTER_LABELSENTRY._serialized_start=440 + _LISTFEATURESREQUEST_FILTER_LABELSENTRY._serialized_end=485 + _LISTFEATURESRESPONSE._serialized_start=791 + _LISTFEATURESRESPONSE._serialized_end=959 + _LISTFEATURESRESPONSE_FEATURESENTRY._serialized_start=881 + _LISTFEATURESRESPONSE_FEATURESENTRY._serialized_end=953 + _APPLYENTITYREQUEST._serialized_start=961 + _APPLYENTITYREQUEST._serialized_end=1036 + _APPLYENTITYRESPONSE._serialized_start=1038 + _APPLYENTITYRESPONSE._serialized_end=1095 + _GETFEASTCOREVERSIONREQUEST._serialized_start=1097 + _GETFEASTCOREVERSIONREQUEST._serialized_end=1125 + _GETFEASTCOREVERSIONRESPONSE._serialized_start=1127 + _GETFEASTCOREVERSIONRESPONSE._serialized_end=1173 + _CREATEPROJECTREQUEST._serialized_start=1175 + _CREATEPROJECTREQUEST._serialized_end=1211 + _CREATEPROJECTRESPONSE._serialized_start=1213 + _CREATEPROJECTRESPONSE._serialized_end=1236 + _ARCHIVEPROJECTREQUEST._serialized_start=1238 + _ARCHIVEPROJECTREQUEST._serialized_end=1275 + _ARCHIVEPROJECTRESPONSE._serialized_start=1277 + _ARCHIVEPROJECTRESPONSE._serialized_end=1301 + _LISTPROJECTSREQUEST._serialized_start=1303 + _LISTPROJECTSREQUEST._serialized_end=1324 + _LISTPROJECTSRESPONSE._serialized_start=1326 + _LISTPROJECTSRESPONSE._serialized_end=1366 + _APPLYFEATURETABLEREQUEST._serialized_start=1368 + _APPLYFEATURETABLEREQUEST._serialized_end=1461 + _APPLYFEATURETABLERESPONSE._serialized_start=1463 + _APPLYFEATURETABLERESPONSE._serialized_end=1531 + _GETFEATURETABLEREQUEST._serialized_start=1533 + _GETFEATURETABLEREQUEST._serialized_end=1588 + _GETFEATURETABLERESPONSE._serialized_start=1590 + _GETFEATURETABLERESPONSE._serialized_end=1656 + _LISTFEATURETABLESREQUEST._serialized_start=1659 + _LISTFEATURETABLESREQUEST._serialized_end=1894 + _LISTFEATURETABLESREQUEST_FILTER._serialized_start=1749 + _LISTFEATURETABLESREQUEST_FILTER._serialized_end=1894 + _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._serialized_start=440 + _LISTFEATURETABLESREQUEST_FILTER_LABELSENTRY._serialized_end=485 + _LISTFEATURETABLESRESPONSE._serialized_start=1896 + _LISTFEATURETABLESRESPONSE._serialized_end=1965 + _DELETEFEATURETABLEREQUEST._serialized_start=1967 + _DELETEFEATURETABLEREQUEST._serialized_end=2025 + _DELETEFEATURETABLERESPONSE._serialized_start=2027 + _DELETEFEATURETABLERESPONSE._serialized_end=2055 + _LISTONLINESTORESREQUEST._serialized_start=2057 + _LISTONLINESTORESREQUEST._serialized_end=2082 + _LISTONLINESTORESRESPONSE._serialized_start=2084 + _LISTONLINESTORESRESPONSE._serialized_end=2157 + _GETONLINESTOREREQUEST._serialized_start=2159 + _GETONLINESTOREREQUEST._serialized_end=2196 + _GETONLINESTORERESPONSE._serialized_start=2199 + _GETONLINESTORERESPONSE._serialized_end=2365 + _GETONLINESTORERESPONSE_STATUS._serialized_start=2331 + _GETONLINESTORERESPONSE_STATUS._serialized_end=2365 + _REGISTERONLINESTOREREQUEST._serialized_start=2367 + _REGISTERONLINESTOREREQUEST._serialized_end=2442 + _REGISTERONLINESTORERESPONSE._serialized_start=2445 + _REGISTERONLINESTORERESPONSE._serialized_end=2639 + _REGISTERONLINESTORERESPONSE_STATUS._serialized_start=2587 + _REGISTERONLINESTORERESPONSE_STATUS._serialized_end=2639 + _ARCHIVEONLINESTOREREQUEST._serialized_start=2641 + _ARCHIVEONLINESTOREREQUEST._serialized_end=2682 + _ARCHIVEONLINESTORERESPONSE._serialized_start=2684 + _ARCHIVEONLINESTORERESPONSE._serialized_end=2712 + _CORESERVICE._serialized_start=2715 + _CORESERVICE._serialized_end=4188 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/CoreService_pb2.pyi b/caraml-store-sdk/python/feast/core/CoreService_pb2.pyi index 5a874d9..1d99394 100644 --- a/caraml-store-sdk/python/feast/core/CoreService_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/CoreService_pb2.pyi @@ -1,263 +1,747 @@ -from feast.core import Entity_pb2 as _Entity_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from feast.core import FeatureTable_pb2 as _FeatureTable_pb2 -from feast.core import OnlineStore_pb2 as _OnlineStore_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class ApplyEntityRequest(_message.Message): - __slots__ = ["project", "spec"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - SPEC_FIELD_NUMBER: _ClassVar[int] - project: str - spec: _Entity_pb2.EntitySpec - def __init__(self, spec: _Optional[_Union[_Entity_pb2.EntitySpec, _Mapping]] = ..., project: _Optional[str] = ...) -> None: ... - -class ApplyEntityResponse(_message.Message): - __slots__ = ["entity"] - ENTITY_FIELD_NUMBER: _ClassVar[int] - entity: _Entity_pb2.Entity - def __init__(self, entity: _Optional[_Union[_Entity_pb2.Entity, _Mapping]] = ...) -> None: ... - -class ApplyFeatureTableRequest(_message.Message): - __slots__ = ["project", "table_spec"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_SPEC_FIELD_NUMBER: _ClassVar[int] - project: str - table_spec: _FeatureTable_pb2.FeatureTableSpec - def __init__(self, project: _Optional[str] = ..., table_spec: _Optional[_Union[_FeatureTable_pb2.FeatureTableSpec, _Mapping]] = ...) -> None: ... - -class ApplyFeatureTableResponse(_message.Message): - __slots__ = ["table"] - TABLE_FIELD_NUMBER: _ClassVar[int] - table: _FeatureTable_pb2.FeatureTable - def __init__(self, table: _Optional[_Union[_FeatureTable_pb2.FeatureTable, _Mapping]] = ...) -> None: ... - -class ArchiveOnlineStoreRequest(_message.Message): - __slots__ = ["name"] - NAME_FIELD_NUMBER: _ClassVar[int] - name: str - def __init__(self, name: _Optional[str] = ...) -> None: ... - -class ArchiveOnlineStoreResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class ArchiveProjectRequest(_message.Message): - __slots__ = ["name"] - NAME_FIELD_NUMBER: _ClassVar[int] - name: str - def __init__(self, name: _Optional[str] = ...) -> None: ... - -class ArchiveProjectResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class CreateProjectRequest(_message.Message): - __slots__ = ["name"] - NAME_FIELD_NUMBER: _ClassVar[int] - name: str - def __init__(self, name: _Optional[str] = ...) -> None: ... - -class CreateProjectResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class DeleteFeatureTableRequest(_message.Message): - __slots__ = ["name", "project"] - NAME_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - name: str - project: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... - -class DeleteFeatureTableResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class GetEntityRequest(_message.Message): - __slots__ = ["name", "project"] - NAME_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - name: str - project: str - def __init__(self, name: _Optional[str] = ..., project: _Optional[str] = ...) -> None: ... - -class GetEntityResponse(_message.Message): - __slots__ = ["entity"] - ENTITY_FIELD_NUMBER: _ClassVar[int] - entity: _Entity_pb2.Entity - def __init__(self, entity: _Optional[_Union[_Entity_pb2.Entity, _Mapping]] = ...) -> None: ... - -class GetFeastCoreVersionRequest(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class GetFeastCoreVersionResponse(_message.Message): - __slots__ = ["version"] - VERSION_FIELD_NUMBER: _ClassVar[int] - version: str - def __init__(self, version: _Optional[str] = ...) -> None: ... - -class GetFeatureTableRequest(_message.Message): - __slots__ = ["name", "project"] - NAME_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - name: str - project: str - def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... - -class GetFeatureTableResponse(_message.Message): - __slots__ = ["table"] - TABLE_FIELD_NUMBER: _ClassVar[int] - table: _FeatureTable_pb2.FeatureTable - def __init__(self, table: _Optional[_Union[_FeatureTable_pb2.FeatureTable, _Mapping]] = ...) -> None: ... - -class GetOnlineStoreRequest(_message.Message): - __slots__ = ["name"] - NAME_FIELD_NUMBER: _ClassVar[int] - name: str - def __init__(self, name: _Optional[str] = ...) -> None: ... - -class GetOnlineStoreResponse(_message.Message): - __slots__ = ["online_store", "status"] - class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - ACTIVE: GetOnlineStoreResponse.Status - ARCHIVED: GetOnlineStoreResponse.Status - ONLINE_STORE_FIELD_NUMBER: _ClassVar[int] - STATUS_FIELD_NUMBER: _ClassVar[int] - online_store: _OnlineStore_pb2.OnlineStore - status: GetOnlineStoreResponse.Status - def __init__(self, online_store: _Optional[_Union[_OnlineStore_pb2.OnlineStore, _Mapping]] = ..., status: _Optional[_Union[GetOnlineStoreResponse.Status, str]] = ...) -> None: ... - -class ListEntitiesRequest(_message.Message): - __slots__ = ["filter"] - class Filter(_message.Message): - __slots__ = ["labels", "project"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - LABELS_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - labels: _containers.ScalarMap[str, str] - project: str - def __init__(self, project: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ...) -> None: ... - FILTER_FIELD_NUMBER: _ClassVar[int] - filter: ListEntitiesRequest.Filter - def __init__(self, filter: _Optional[_Union[ListEntitiesRequest.Filter, _Mapping]] = ...) -> None: ... - -class ListEntitiesResponse(_message.Message): - __slots__ = ["entities"] - ENTITIES_FIELD_NUMBER: _ClassVar[int] - entities: _containers.RepeatedCompositeFieldContainer[_Entity_pb2.Entity] - def __init__(self, entities: _Optional[_Iterable[_Union[_Entity_pb2.Entity, _Mapping]]] = ...) -> None: ... - -class ListFeatureTablesRequest(_message.Message): - __slots__ = ["filter"] - class Filter(_message.Message): - __slots__ = ["labels", "project"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - LABELS_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - labels: _containers.ScalarMap[str, str] - project: str - def __init__(self, project: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ...) -> None: ... - FILTER_FIELD_NUMBER: _ClassVar[int] - filter: ListFeatureTablesRequest.Filter - def __init__(self, filter: _Optional[_Union[ListFeatureTablesRequest.Filter, _Mapping]] = ...) -> None: ... - -class ListFeatureTablesResponse(_message.Message): - __slots__ = ["tables"] - TABLES_FIELD_NUMBER: _ClassVar[int] - tables: _containers.RepeatedCompositeFieldContainer[_FeatureTable_pb2.FeatureTable] - def __init__(self, tables: _Optional[_Iterable[_Union[_FeatureTable_pb2.FeatureTable, _Mapping]]] = ...) -> None: ... - -class ListFeaturesRequest(_message.Message): - __slots__ = ["filter"] - class Filter(_message.Message): - __slots__ = ["entities", "labels", "project"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - ENTITIES_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - entities: _containers.RepeatedScalarFieldContainer[str] - labels: _containers.ScalarMap[str, str] - project: str - def __init__(self, labels: _Optional[_Mapping[str, str]] = ..., entities: _Optional[_Iterable[str]] = ..., project: _Optional[str] = ...) -> None: ... - FILTER_FIELD_NUMBER: _ClassVar[int] - filter: ListFeaturesRequest.Filter - def __init__(self, filter: _Optional[_Union[ListFeaturesRequest.Filter, _Mapping]] = ...) -> None: ... - -class ListFeaturesResponse(_message.Message): - __slots__ = ["features"] - class FeaturesEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: _Feature_pb2.FeatureSpec - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_Feature_pb2.FeatureSpec, _Mapping]] = ...) -> None: ... - FEATURES_FIELD_NUMBER: _ClassVar[int] - features: _containers.MessageMap[str, _Feature_pb2.FeatureSpec] - def __init__(self, features: _Optional[_Mapping[str, _Feature_pb2.FeatureSpec]] = ...) -> None: ... - -class ListOnlineStoresRequest(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class ListOnlineStoresResponse(_message.Message): - __slots__ = ["online_store"] - ONLINE_STORE_FIELD_NUMBER: _ClassVar[int] - online_store: _containers.RepeatedCompositeFieldContainer[_OnlineStore_pb2.OnlineStore] - def __init__(self, online_store: _Optional[_Iterable[_Union[_OnlineStore_pb2.OnlineStore, _Mapping]]] = ...) -> None: ... - -class ListProjectsRequest(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class ListProjectsResponse(_message.Message): - __slots__ = ["projects"] - PROJECTS_FIELD_NUMBER: _ClassVar[int] - projects: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, projects: _Optional[_Iterable[str]] = ...) -> None: ... - -class RegisterOnlineStoreRequest(_message.Message): - __slots__ = ["online_store"] - ONLINE_STORE_FIELD_NUMBER: _ClassVar[int] - online_store: _OnlineStore_pb2.OnlineStore - def __init__(self, online_store: _Optional[_Union[_OnlineStore_pb2.OnlineStore, _Mapping]] = ...) -> None: ... - -class RegisterOnlineStoreResponse(_message.Message): - __slots__ = ["online_store", "status"] - class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - NO_CHANGE: RegisterOnlineStoreResponse.Status - ONLINE_STORE_FIELD_NUMBER: _ClassVar[int] - REGISTERED: RegisterOnlineStoreResponse.Status - STATUS_FIELD_NUMBER: _ClassVar[int] - UPDATED: RegisterOnlineStoreResponse.Status - online_store: _OnlineStore_pb2.OnlineStore - status: RegisterOnlineStoreResponse.Status - def __init__(self, online_store: _Optional[_Union[_OnlineStore_pb2.OnlineStore, _Mapping]] = ..., status: _Optional[_Union[RegisterOnlineStoreResponse.Status, str]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.core.Entity_pb2 +import feast.core.FeatureTable_pb2 +import feast.core.Feature_pb2 +import feast.core.OnlineStore_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class GetEntityRequest(google.protobuf.message.Message): + """Request for a single entity""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of entity (required).""" + project: builtins.str + """Name of project the entity belongs to. If omitted will default to 'default' project.""" + def __init__( + self, + *, + name: builtins.str = ..., + project: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "project", b"project"]) -> None: ... + +global___GetEntityRequest = GetEntityRequest + +@typing_extensions.final +class GetEntityResponse(google.protobuf.message.Message): + """Response containing a single entity""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTITY_FIELD_NUMBER: builtins.int + @property + def entity(self) -> feast.core.Entity_pb2.Entity: ... + def __init__( + self, + *, + entity: feast.core.Entity_pb2.Entity | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> None: ... + +global___GetEntityResponse = GetEntityResponse + +@typing_extensions.final +class ListEntitiesRequest(google.protobuf.message.Message): + """Retrieves details for all versions of a specific entity""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class Filter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + PROJECT_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + project: builtins.str + """Optional. Specifies the name of the project to list Entities in. + It is NOT possible to provide an asterisk with a string in order to do pattern matching. + If unspecified, this field will default to the default project 'default'. + """ + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Optional. User defined metadata for entity. + Entities with all matching labels will be returned. + """ + def __init__( + self, + *, + project: builtins.str = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["labels", b"labels", "project", b"project"]) -> None: ... + + FILTER_FIELD_NUMBER: builtins.int + @property + def filter(self) -> global___ListEntitiesRequest.Filter: ... + def __init__( + self, + *, + filter: global___ListEntitiesRequest.Filter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> None: ... + +global___ListEntitiesRequest = ListEntitiesRequest + +@typing_extensions.final +class ListEntitiesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTITIES_FIELD_NUMBER: builtins.int + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Entity_pb2.Entity]: ... + def __init__( + self, + *, + entities: collections.abc.Iterable[feast.core.Entity_pb2.Entity] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities"]) -> None: ... + +global___ListEntitiesResponse = ListEntitiesResponse + +@typing_extensions.final +class ListFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class Filter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + LABELS_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """User defined metadata for feature. + Features with all matching labels will be returned. + """ + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """List of entities contained within the featureSet that the feature belongs to. + Only feature tables with these entities will be searched for features. + """ + project: builtins.str + """Name of project that the feature tables belongs to. Filtering on projects is disabled. + It is NOT possible to provide an asterisk with a string in order to do pattern matching. + If unspecified this field will default to the default project 'default'. + """ + def __init__( + self, + *, + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + project: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities", "labels", b"labels", "project", b"project"]) -> None: ... + + FILTER_FIELD_NUMBER: builtins.int + @property + def filter(self) -> global___ListFeaturesRequest.Filter: ... + def __init__( + self, + *, + filter: global___ListFeaturesRequest.Filter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> None: ... + +global___ListFeaturesRequest = ListFeaturesRequest + +@typing_extensions.final +class ListFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FeaturesEntry(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) -> feast.core.Feature_pb2.FeatureSpec: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: feast.core.Feature_pb2.FeatureSpec | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FEATURES_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.core.Feature_pb2.FeatureSpec]: ... + def __init__( + self, + *, + features: collections.abc.Mapping[builtins.str, feast.core.Feature_pb2.FeatureSpec] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["features", b"features"]) -> None: ... + +global___ListFeaturesResponse = ListFeaturesResponse + +@typing_extensions.final +class ApplyEntityRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SPEC_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + @property + def spec(self) -> feast.core.Entity_pb2.EntitySpec: + """If project is unspecified, will default to 'default' project. + If project specified does not exist, the project would be automatically created. + """ + project: builtins.str + """Name of project that this entity belongs to.""" + def __init__( + self, + *, + spec: feast.core.Entity_pb2.EntitySpec | None = ..., + project: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "spec", b"spec"]) -> None: ... + +global___ApplyEntityRequest = ApplyEntityRequest + +@typing_extensions.final +class ApplyEntityResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTITY_FIELD_NUMBER: builtins.int + @property + def entity(self) -> feast.core.Entity_pb2.Entity: ... + def __init__( + self, + *, + entity: feast.core.Entity_pb2.Entity | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> None: ... + +global___ApplyEntityResponse = ApplyEntityResponse + +@typing_extensions.final +class GetFeastCoreVersionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GetFeastCoreVersionRequest = GetFeastCoreVersionRequest + +@typing_extensions.final +class GetFeastCoreVersionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VERSION_FIELD_NUMBER: builtins.int + version: builtins.str + def __init__( + self, + *, + version: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["version", b"version"]) -> None: ... + +global___GetFeastCoreVersionResponse = GetFeastCoreVersionResponse + +@typing_extensions.final +class CreateProjectRequest(google.protobuf.message.Message): + """Request to create a project""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of project (required)""" + def __init__( + self, + *, + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ... + +global___CreateProjectRequest = CreateProjectRequest + +@typing_extensions.final +class CreateProjectResponse(google.protobuf.message.Message): + """Response for creation of a project""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___CreateProjectResponse = CreateProjectResponse + +@typing_extensions.final +class ArchiveProjectRequest(google.protobuf.message.Message): + """Request for the archival of a project""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of project to be archived""" + def __init__( + self, + *, + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ... + +global___ArchiveProjectRequest = ArchiveProjectRequest + +@typing_extensions.final +class ArchiveProjectResponse(google.protobuf.message.Message): + """Response for archival of a project""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ArchiveProjectResponse = ArchiveProjectResponse + +@typing_extensions.final +class ListProjectsRequest(google.protobuf.message.Message): + """Request for listing of projects""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ListProjectsRequest = ListProjectsRequest + +@typing_extensions.final +class ListProjectsResponse(google.protobuf.message.Message): + """Response for listing of projects""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECTS_FIELD_NUMBER: builtins.int + @property + def projects(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """List of project names (archived projects are filtered out)""" + def __init__( + self, + *, + projects: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["projects", b"projects"]) -> None: ... + +global___ListProjectsResponse = ListProjectsResponse + +@typing_extensions.final +class ApplyFeatureTableRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_SPEC_FIELD_NUMBER: builtins.int + project: builtins.str + """Optional. Name of the Project to apply the Feature Table to. + If unspecified, will apply FeatureTable to the default project. + """ + @property + def table_spec(self) -> feast.core.FeatureTable_pb2.FeatureTableSpec: + """Feature Table specification to apply""" + def __init__( + self, + *, + project: builtins.str = ..., + table_spec: feast.core.FeatureTable_pb2.FeatureTableSpec | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["table_spec", b"table_spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "table_spec", b"table_spec"]) -> None: ... + +global___ApplyFeatureTableRequest = ApplyFeatureTableRequest + +@typing_extensions.final +class ApplyFeatureTableResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_FIELD_NUMBER: builtins.int + @property + def table(self) -> feast.core.FeatureTable_pb2.FeatureTable: ... + def __init__( + self, + *, + table: feast.core.FeatureTable_pb2.FeatureTable | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["table", b"table"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["table", b"table"]) -> None: ... + +global___ApplyFeatureTableResponse = ApplyFeatureTableResponse + +@typing_extensions.final +class GetFeatureTableRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + project: builtins.str + """Optional. Name of the Project to retrieve the Feature Table from. + If unspecified, will apply FeatureTable to the default project. + """ + name: builtins.str + """Name of the FeatureTable to retrieve.""" + def __init__( + self, + *, + project: builtins.str = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "project", b"project"]) -> None: ... + +global___GetFeatureTableRequest = GetFeatureTableRequest + +@typing_extensions.final +class GetFeatureTableResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_FIELD_NUMBER: builtins.int + @property + def table(self) -> feast.core.FeatureTable_pb2.FeatureTable: + """The Feature Table retrieved.""" + def __init__( + self, + *, + table: feast.core.FeatureTable_pb2.FeatureTable | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["table", b"table"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["table", b"table"]) -> None: ... + +global___GetFeatureTableResponse = GetFeatureTableResponse + +@typing_extensions.final +class ListFeatureTablesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class Filter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + PROJECT_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + project: builtins.str + """Optional. Specifies the name of the project to list Feature Tables in. + If unspecified would list Feature Tables in the default project. + """ + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Optional. Feature Tables with all matching labels will be returned. + If unspecified would list Feature Tables without filtering by labels. + """ + def __init__( + self, + *, + project: builtins.str = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["labels", b"labels", "project", b"project"]) -> None: ... + + FILTER_FIELD_NUMBER: builtins.int + @property + def filter(self) -> global___ListFeatureTablesRequest.Filter: + """Filter used when listing Feature Tables""" + def __init__( + self, + *, + filter: global___ListFeatureTablesRequest.Filter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> None: ... + +global___ListFeatureTablesRequest = ListFeatureTablesRequest + +@typing_extensions.final +class ListFeatureTablesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLES_FIELD_NUMBER: builtins.int + @property + def tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureTable_pb2.FeatureTable]: + """List of matching Feature Tables""" + def __init__( + self, + *, + tables: collections.abc.Iterable[feast.core.FeatureTable_pb2.FeatureTable] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["tables", b"tables"]) -> None: ... + +global___ListFeatureTablesResponse = ListFeatureTablesResponse + +@typing_extensions.final +class DeleteFeatureTableRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + project: builtins.str + """Optional. Name of the Project to delete the Feature Table from. + If unspecified, will delete FeatureTable from the default project. + """ + name: builtins.str + """Name of the FeatureTable to delete.""" + def __init__( + self, + *, + project: builtins.str = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "project", b"project"]) -> None: ... + +global___DeleteFeatureTableRequest = DeleteFeatureTableRequest + +@typing_extensions.final +class DeleteFeatureTableResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___DeleteFeatureTableResponse = DeleteFeatureTableResponse + +@typing_extensions.final +class ListOnlineStoresRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ListOnlineStoresRequest = ListOnlineStoresRequest + +@typing_extensions.final +class ListOnlineStoresResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ONLINE_STORE_FIELD_NUMBER: builtins.int + @property + def online_store(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.OnlineStore_pb2.OnlineStore]: ... + def __init__( + self, + *, + online_store: collections.abc.Iterable[feast.core.OnlineStore_pb2.OnlineStore] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["online_store", b"online_store"]) -> None: ... + +global___ListOnlineStoresResponse = ListOnlineStoresResponse + +@typing_extensions.final +class GetOnlineStoreRequest(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_extensions.Literal["name", b"name"]) -> None: ... + +global___GetOnlineStoreRequest = GetOnlineStoreRequest + +@typing_extensions.final +class GetOnlineStoreResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Status: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GetOnlineStoreResponse._Status.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + ACTIVE: GetOnlineStoreResponse._Status.ValueType # 0 + """Requested online store is active""" + ARCHIVED: GetOnlineStoreResponse._Status.ValueType # 1 + """Requested online store is archived""" + + class Status(_Status, metaclass=_StatusEnumTypeWrapper): ... + ACTIVE: GetOnlineStoreResponse.Status.ValueType # 0 + """Requested online store is active""" + ARCHIVED: GetOnlineStoreResponse.Status.ValueType # 1 + """Requested online store is archived""" + + ONLINE_STORE_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + @property + def online_store(self) -> feast.core.OnlineStore_pb2.OnlineStore: ... + status: global___GetOnlineStoreResponse.Status.ValueType + def __init__( + self, + *, + online_store: feast.core.OnlineStore_pb2.OnlineStore | None = ..., + status: global___GetOnlineStoreResponse.Status.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["online_store", b"online_store"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["online_store", b"online_store", "status", b"status"]) -> None: ... + +global___GetOnlineStoreResponse = GetOnlineStoreResponse + +@typing_extensions.final +class RegisterOnlineStoreRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ONLINE_STORE_FIELD_NUMBER: builtins.int + @property + def online_store(self) -> feast.core.OnlineStore_pb2.OnlineStore: ... + def __init__( + self, + *, + online_store: feast.core.OnlineStore_pb2.OnlineStore | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["online_store", b"online_store"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["online_store", b"online_store"]) -> None: ... + +global___RegisterOnlineStoreRequest = RegisterOnlineStoreRequest + +@typing_extensions.final +class RegisterOnlineStoreResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Status: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RegisterOnlineStoreResponse._Status.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + NO_CHANGE: RegisterOnlineStoreResponse._Status.ValueType # 0 + """Existing store properties matching the given online store is identical to the given request""" + REGISTERED: RegisterOnlineStoreResponse._Status.ValueType # 1 + """New online store created or existing properties updated.""" + UPDATED: RegisterOnlineStoreResponse._Status.ValueType # 2 + """Existing online store updated.""" + + class Status(_Status, metaclass=_StatusEnumTypeWrapper): ... + NO_CHANGE: RegisterOnlineStoreResponse.Status.ValueType # 0 + """Existing store properties matching the given online store is identical to the given request""" + REGISTERED: RegisterOnlineStoreResponse.Status.ValueType # 1 + """New online store created or existing properties updated.""" + UPDATED: RegisterOnlineStoreResponse.Status.ValueType # 2 + """Existing online store updated.""" + + ONLINE_STORE_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + @property + def online_store(self) -> feast.core.OnlineStore_pb2.OnlineStore: ... + status: global___RegisterOnlineStoreResponse.Status.ValueType + def __init__( + self, + *, + online_store: feast.core.OnlineStore_pb2.OnlineStore | None = ..., + status: global___RegisterOnlineStoreResponse.Status.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["online_store", b"online_store"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["online_store", b"online_store", "status", b"status"]) -> None: ... + +global___RegisterOnlineStoreResponse = RegisterOnlineStoreResponse + +@typing_extensions.final +class ArchiveOnlineStoreRequest(google.protobuf.message.Message): + """Request for the archival of an online store""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of online store to be archived""" + def __init__( + self, + *, + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ... + +global___ArchiveOnlineStoreRequest = ArchiveOnlineStoreRequest + +@typing_extensions.final +class ArchiveOnlineStoreResponse(google.protobuf.message.Message): + """Response for archival of an online store""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ArchiveOnlineStoreResponse = ArchiveOnlineStoreResponse diff --git a/caraml-store-sdk/python/feast/core/DataFormat_pb2.py b/caraml-store-sdk/python/feast/core/DataFormat_pb2.py index 919bff5..c2ee7f9 100644 --- a/caraml-store-sdk/python/feast/core/DataFormat_pb2.py +++ b/caraml-store-sdk/python/feast/core/DataFormat_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataFormat.proto\x12\nfeast.core\"v\n\nFileFormat\x12M\n\x0eparquet_format\x18\x01 \x01(\x0b\x32$.feast.core.FileFormat.ParquetFormatH\x00R\rparquetFormat\x1a\x0f\n\rParquetFormatB\x08\n\x06\x66ormat\"\x88\x02\n\x0cStreamFormat\x12\x46\n\x0b\x61vro_format\x18\x01 \x01(\x0b\x32#.feast.core.StreamFormat.AvroFormatH\x00R\navroFormat\x12I\n\x0cproto_format\x18\x02 \x01(\x0b\x32$.feast.core.StreamFormat.ProtoFormatH\x00R\x0bprotoFormat\x1a,\n\x0bProtoFormat\x12\x1d\n\nclass_path\x18\x01 \x01(\tR\tclassPath\x1a-\n\nAvroFormat\x12\x1f\n\x0bschema_json\x18\x01 \x01(\tR\nschemaJsonB\x08\n\x06\x66ormatB{\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0f\x44\x61taFormatProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataFormat.proto\x12\nfeast.core\"g\n\nFileFormat\x12>\n\x0eparquet_format\x18\x01 \x01(\x0b\x32$.feast.core.FileFormat.ParquetFormatH\x00\x1a\x0f\n\rParquetFormatB\x08\n\x06\x66ormat\"\xd8\x01\n\x0cStreamFormat\x12:\n\x0b\x61vro_format\x18\x01 \x01(\x0b\x32#.feast.core.StreamFormat.AvroFormatH\x00\x12<\n\x0cproto_format\x18\x02 \x01(\x0b\x32$.feast.core.StreamFormat.ProtoFormatH\x00\x1a!\n\x0bProtoFormat\x12\x12\n\nclass_path\x18\x01 \x01(\t\x1a!\n\nAvroFormat\x12\x13\n\x0bschema_json\x18\x01 \x01(\tB\x08\n\x06\x66ormatB{\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0f\x44\x61taFormatProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.DataFormat_pb2', globals()) @@ -22,13 +22,13 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\036dev.caraml.store.protobuf.coreB\017DataFormatProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/core' _FILEFORMAT._serialized_start=43 - _FILEFORMAT._serialized_end=161 - _FILEFORMAT_PARQUETFORMAT._serialized_start=136 - _FILEFORMAT_PARQUETFORMAT._serialized_end=151 - _STREAMFORMAT._serialized_start=164 - _STREAMFORMAT._serialized_end=428 - _STREAMFORMAT_PROTOFORMAT._serialized_start=327 - _STREAMFORMAT_PROTOFORMAT._serialized_end=371 - _STREAMFORMAT_AVROFORMAT._serialized_start=373 - _STREAMFORMAT_AVROFORMAT._serialized_end=418 + _FILEFORMAT._serialized_end=146 + _FILEFORMAT_PARQUETFORMAT._serialized_start=121 + _FILEFORMAT_PARQUETFORMAT._serialized_end=136 + _STREAMFORMAT._serialized_start=149 + _STREAMFORMAT._serialized_end=365 + _STREAMFORMAT_PROTOFORMAT._serialized_start=287 + _STREAMFORMAT_PROTOFORMAT._serialized_end=320 + _STREAMFORMAT_AVROFORMAT._serialized_start=322 + _STREAMFORMAT_AVROFORMAT._serialized_end=355 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/DataFormat_pb2.pyi b/caraml-store-sdk/python/feast/core/DataFormat_pb2.pyi index b5cc7c5..7d2d79c 100644 --- a/caraml-store-sdk/python/feast/core/DataFormat_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/DataFormat_pb2.pyi @@ -1,32 +1,105 @@ -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class FileFormat(_message.Message): - __slots__ = ["parquet_format"] - class ParquetFormat(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - PARQUET_FORMAT_FIELD_NUMBER: _ClassVar[int] - parquet_format: FileFormat.ParquetFormat - def __init__(self, parquet_format: _Optional[_Union[FileFormat.ParquetFormat, _Mapping]] = ...) -> None: ... - -class StreamFormat(_message.Message): - __slots__ = ["avro_format", "proto_format"] - class AvroFormat(_message.Message): - __slots__ = ["schema_json"] - SCHEMA_JSON_FIELD_NUMBER: _ClassVar[int] - schema_json: str - def __init__(self, schema_json: _Optional[str] = ...) -> None: ... - class ProtoFormat(_message.Message): - __slots__ = ["class_path"] - CLASS_PATH_FIELD_NUMBER: _ClassVar[int] - class_path: str - def __init__(self, class_path: _Optional[str] = ...) -> None: ... - AVRO_FORMAT_FIELD_NUMBER: _ClassVar[int] - PROTO_FORMAT_FIELD_NUMBER: _ClassVar[int] - avro_format: StreamFormat.AvroFormat - proto_format: StreamFormat.ProtoFormat - def __init__(self, avro_format: _Optional[_Union[StreamFormat.AvroFormat, _Mapping]] = ..., proto_format: _Optional[_Union[StreamFormat.ProtoFormat, _Mapping]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class FileFormat(google.protobuf.message.Message): + """Defines the file format encoding the features/entity data in files""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ParquetFormat(google.protobuf.message.Message): + """Defines options for the Parquet data format""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + + PARQUET_FORMAT_FIELD_NUMBER: builtins.int + @property + def parquet_format(self) -> global___FileFormat.ParquetFormat: ... + def __init__( + self, + *, + parquet_format: global___FileFormat.ParquetFormat | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["format", b"format", "parquet_format", b"parquet_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["format", b"format", "parquet_format", b"parquet_format"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["parquet_format"] | None: ... + +global___FileFormat = FileFormat + +@typing_extensions.final +class StreamFormat(google.protobuf.message.Message): + """Defines the data format encoding features/entity data in data streams""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ProtoFormat(google.protobuf.message.Message): + """Defines options for the protobuf data format""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CLASS_PATH_FIELD_NUMBER: builtins.int + class_path: builtins.str + """Classpath to the generated Java Protobuf class that can be used to decode + Feature data from the obtained stream message + """ + def __init__( + self, + *, + class_path: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["class_path", b"class_path"]) -> None: ... + + @typing_extensions.final + class AvroFormat(google.protobuf.message.Message): + """Defines options for the avro data format""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SCHEMA_JSON_FIELD_NUMBER: builtins.int + schema_json: builtins.str + """Optional if used in a File DataSource as schema is embedded in avro file. + Specifies the schema of the Avro message as JSON string. + """ + def __init__( + self, + *, + schema_json: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["schema_json", b"schema_json"]) -> None: ... + + AVRO_FORMAT_FIELD_NUMBER: builtins.int + PROTO_FORMAT_FIELD_NUMBER: builtins.int + @property + def avro_format(self) -> global___StreamFormat.AvroFormat: ... + @property + def proto_format(self) -> global___StreamFormat.ProtoFormat: ... + def __init__( + self, + *, + avro_format: global___StreamFormat.AvroFormat | None = ..., + proto_format: global___StreamFormat.ProtoFormat | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "proto_format", b"proto_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "proto_format", b"proto_format"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["avro_format", "proto_format"] | None: ... + +global___StreamFormat = StreamFormat diff --git a/caraml-store-sdk/python/feast/core/DataSource_pb2.py b/caraml-store-sdk/python/feast/core/DataSource_pb2.py index d4922de..0ec12d9 100644 --- a/caraml-store-sdk/python/feast/core/DataSource_pb2.py +++ b/caraml-store-sdk/python/feast/core/DataSource_pb2.py @@ -15,7 +15,7 @@ from feast.core import SparkOverride_pb2 as feast_dot_core_dot_SparkOverride__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataSource.proto\x12\nfeast.core\x1a\x1b\x66\x65\x61st/core/DataFormat.proto\x1a\x1e\x66\x65\x61st/core/SparkOverride.proto\"\xac\t\n\nDataSource\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32!.feast.core.DataSource.SourceTypeR\x04type\x12M\n\rfield_mapping\x18\x02 \x03(\x0b\x32(.feast.core.DataSource.FieldMappingEntryR\x0c\x66ieldMapping\x12\x34\n\x16\x65vent_timestamp_column\x18\x03 \x01(\tR\x14\x65ventTimestampColumn\x12\x32\n\x15\x64\x61te_partition_column\x18\x04 \x01(\tR\x13\x64\x61tePartitionColumn\x12\x38\n\x18\x63reated_timestamp_column\x18\x05 \x01(\tR\x16\x63reatedTimestampColumn\x12G\n\x0c\x66ile_options\x18\x0b \x01(\x0b\x32\".feast.core.DataSource.FileOptionsH\x00R\x0b\x66ileOptions\x12S\n\x10\x62igquery_options\x18\x0c \x01(\x0b\x32&.feast.core.DataSource.BigQueryOptionsH\x00R\x0f\x62igqueryOptions\x12J\n\rkafka_options\x18\r \x01(\x0b\x32#.feast.core.DataSource.KafkaOptionsH\x00R\x0ckafkaOptions\x1a?\n\x11\x46ieldMappingEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\xa3\x01\n\x0b\x46ileOptions\x12\x37\n\x0b\x66ile_format\x18\x01 \x01(\x0b\x32\x16.feast.core.FileFormatR\nfileFormat\x12\x19\n\x08\x66ile_url\x18\x02 \x01(\tR\x07\x66ileUrl\x12@\n\x0espark_override\x18\x03 \x01(\x0b\x32\x19.feast.core.SparkOverrideR\rsparkOverride\x1ap\n\x0f\x42igQueryOptions\x12\x1b\n\ttable_ref\x18\x01 \x01(\tR\x08tableRef\x12@\n\x0espark_override\x18\x02 \x01(\x0b\x32\x19.feast.core.SparkOverrideR\rsparkOverride\x1a\xd4\x01\n\x0cKafkaOptions\x12+\n\x11\x62ootstrap_servers\x18\x01 \x01(\tR\x10\x62ootstrapServers\x12\x14\n\x05topic\x18\x02 \x01(\tR\x05topic\x12?\n\x0emessage_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormatR\rmessageFormat\x12@\n\x0espark_override\x18\x04 \x01(\x0b\x32\x19.feast.core.SparkOverrideR\rsparkOverride\"O\n\nSourceType\x12\x0b\n\x07INVALID\x10\x00\x12\x0e\n\nBATCH_FILE\x10\x01\x12\x12\n\x0e\x42\x41TCH_BIGQUERY\x10\x02\x12\x10\n\x0cSTREAM_KAFKA\x10\x03\x42\t\n\x07optionsB{\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0f\x44\x61taSourceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataSource.proto\x12\nfeast.core\x1a\x1b\x66\x65\x61st/core/DataFormat.proto\x1a\x1e\x66\x65\x61st/core/SparkOverride.proto\"\xa8\x07\n\nDataSource\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.feast.core.DataSource.SourceType\x12?\n\rfield_mapping\x18\x02 \x03(\x0b\x32(.feast.core.DataSource.FieldMappingEntry\x12\x1e\n\x16\x65vent_timestamp_column\x18\x03 \x01(\t\x12\x1d\n\x15\x64\x61te_partition_column\x18\x04 \x01(\t\x12 \n\x18\x63reated_timestamp_column\x18\x05 \x01(\t\x12:\n\x0c\x66ile_options\x18\x0b \x01(\x0b\x32\".feast.core.DataSource.FileOptionsH\x00\x12\x42\n\x10\x62igquery_options\x18\x0c \x01(\x0b\x32&.feast.core.DataSource.BigQueryOptionsH\x00\x12<\n\rkafka_options\x18\r \x01(\x0b\x32#.feast.core.DataSource.KafkaOptionsH\x00\x1a\x33\n\x11\x46ieldMappingEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x7f\n\x0b\x46ileOptions\x12+\n\x0b\x66ile_format\x18\x01 \x01(\x0b\x32\x16.feast.core.FileFormat\x12\x10\n\x08\x66ile_url\x18\x02 \x01(\t\x12\x31\n\x0espark_override\x18\x03 \x01(\x0b\x32\x19.feast.core.SparkOverride\x1aW\n\x0f\x42igQueryOptions\x12\x11\n\ttable_ref\x18\x01 \x01(\t\x12\x31\n\x0espark_override\x18\x02 \x01(\x0b\x32\x19.feast.core.SparkOverride\x1a\x9d\x01\n\x0cKafkaOptions\x12\x19\n\x11\x62ootstrap_servers\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x30\n\x0emessage_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormat\x12\x31\n\x0espark_override\x18\x04 \x01(\x0b\x32\x19.feast.core.SparkOverride\"O\n\nSourceType\x12\x0b\n\x07INVALID\x10\x00\x12\x0e\n\nBATCH_FILE\x10\x01\x12\x12\n\x0e\x42\x41TCH_BIGQUERY\x10\x02\x12\x10\n\x0cSTREAM_KAFKA\x10\x03\x42\t\n\x07optionsB{\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0f\x44\x61taSourceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.DataSource_pb2', globals()) @@ -26,15 +26,15 @@ _DATASOURCE_FIELDMAPPINGENTRY._options = None _DATASOURCE_FIELDMAPPINGENTRY._serialized_options = b'8\001' _DATASOURCE._serialized_start=105 - _DATASOURCE._serialized_end=1301 - _DATASOURCE_FIELDMAPPINGENTRY._serialized_start=651 - _DATASOURCE_FIELDMAPPINGENTRY._serialized_end=714 - _DATASOURCE_FILEOPTIONS._serialized_start=717 - _DATASOURCE_FILEOPTIONS._serialized_end=880 - _DATASOURCE_BIGQUERYOPTIONS._serialized_start=882 - _DATASOURCE_BIGQUERYOPTIONS._serialized_end=994 - _DATASOURCE_KAFKAOPTIONS._serialized_start=997 - _DATASOURCE_KAFKAOPTIONS._serialized_end=1209 - _DATASOURCE_SOURCETYPE._serialized_start=1211 - _DATASOURCE_SOURCETYPE._serialized_end=1290 + _DATASOURCE._serialized_end=1041 + _DATASOURCE_FIELDMAPPINGENTRY._serialized_start=520 + _DATASOURCE_FIELDMAPPINGENTRY._serialized_end=571 + _DATASOURCE_FILEOPTIONS._serialized_start=573 + _DATASOURCE_FILEOPTIONS._serialized_end=700 + _DATASOURCE_BIGQUERYOPTIONS._serialized_start=702 + _DATASOURCE_BIGQUERYOPTIONS._serialized_end=789 + _DATASOURCE_KAFKAOPTIONS._serialized_start=792 + _DATASOURCE_KAFKAOPTIONS._serialized_end=949 + _DATASOURCE_SOURCETYPE._serialized_start=951 + _DATASOURCE_SOURCETYPE._serialized_end=1030 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/DataSource_pb2.pyi b/caraml-store-sdk/python/feast/core/DataSource_pb2.pyi index 293f562..8758cc3 100644 --- a/caraml-store-sdk/python/feast/core/DataSource_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/DataSource_pb2.pyi @@ -1,69 +1,194 @@ -from feast.core import DataFormat_pb2 as _DataFormat_pb2 -from feast.core import SparkOverride_pb2 as _SparkOverride_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class DataSource(_message.Message): - __slots__ = ["bigquery_options", "created_timestamp_column", "date_partition_column", "event_timestamp_column", "field_mapping", "file_options", "kafka_options", "type"] - class SourceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - class BigQueryOptions(_message.Message): - __slots__ = ["spark_override", "table_ref"] - SPARK_OVERRIDE_FIELD_NUMBER: _ClassVar[int] - TABLE_REF_FIELD_NUMBER: _ClassVar[int] - spark_override: _SparkOverride_pb2.SparkOverride - table_ref: str - def __init__(self, table_ref: _Optional[str] = ..., spark_override: _Optional[_Union[_SparkOverride_pb2.SparkOverride, _Mapping]] = ...) -> None: ... - class FieldMappingEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - class FileOptions(_message.Message): - __slots__ = ["file_format", "file_url", "spark_override"] - FILE_FORMAT_FIELD_NUMBER: _ClassVar[int] - FILE_URL_FIELD_NUMBER: _ClassVar[int] - SPARK_OVERRIDE_FIELD_NUMBER: _ClassVar[int] - file_format: _DataFormat_pb2.FileFormat - file_url: str - spark_override: _SparkOverride_pb2.SparkOverride - def __init__(self, file_format: _Optional[_Union[_DataFormat_pb2.FileFormat, _Mapping]] = ..., file_url: _Optional[str] = ..., spark_override: _Optional[_Union[_SparkOverride_pb2.SparkOverride, _Mapping]] = ...) -> None: ... - class KafkaOptions(_message.Message): - __slots__ = ["bootstrap_servers", "message_format", "spark_override", "topic"] - BOOTSTRAP_SERVERS_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FORMAT_FIELD_NUMBER: _ClassVar[int] - SPARK_OVERRIDE_FIELD_NUMBER: _ClassVar[int] - TOPIC_FIELD_NUMBER: _ClassVar[int] - bootstrap_servers: str - message_format: _DataFormat_pb2.StreamFormat - spark_override: _SparkOverride_pb2.SparkOverride - topic: str - def __init__(self, bootstrap_servers: _Optional[str] = ..., topic: _Optional[str] = ..., message_format: _Optional[_Union[_DataFormat_pb2.StreamFormat, _Mapping]] = ..., spark_override: _Optional[_Union[_SparkOverride_pb2.SparkOverride, _Mapping]] = ...) -> None: ... - BATCH_BIGQUERY: DataSource.SourceType - BATCH_FILE: DataSource.SourceType - BIGQUERY_OPTIONS_FIELD_NUMBER: _ClassVar[int] - CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: _ClassVar[int] - DATE_PARTITION_COLUMN_FIELD_NUMBER: _ClassVar[int] - EVENT_TIMESTAMP_COLUMN_FIELD_NUMBER: _ClassVar[int] - FIELD_MAPPING_FIELD_NUMBER: _ClassVar[int] - FILE_OPTIONS_FIELD_NUMBER: _ClassVar[int] - INVALID: DataSource.SourceType - KAFKA_OPTIONS_FIELD_NUMBER: _ClassVar[int] - STREAM_KAFKA: DataSource.SourceType - TYPE_FIELD_NUMBER: _ClassVar[int] - bigquery_options: DataSource.BigQueryOptions - created_timestamp_column: str - date_partition_column: str - event_timestamp_column: str - field_mapping: _containers.ScalarMap[str, str] - file_options: DataSource.FileOptions - kafka_options: DataSource.KafkaOptions - type: DataSource.SourceType - def __init__(self, type: _Optional[_Union[DataSource.SourceType, str]] = ..., field_mapping: _Optional[_Mapping[str, str]] = ..., event_timestamp_column: _Optional[str] = ..., date_partition_column: _Optional[str] = ..., created_timestamp_column: _Optional[str] = ..., file_options: _Optional[_Union[DataSource.FileOptions, _Mapping]] = ..., bigquery_options: _Optional[_Union[DataSource.BigQueryOptions, _Mapping]] = ..., kafka_options: _Optional[_Union[DataSource.KafkaOptions, _Mapping]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.core.DataFormat_pb2 +import feast.core.SparkOverride_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class DataSource(google.protobuf.message.Message): + """Defines a Data Source that can be used source Feature data""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _SourceType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _SourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DataSource._SourceType.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: DataSource._SourceType.ValueType # 0 + BATCH_FILE: DataSource._SourceType.ValueType # 1 + BATCH_BIGQUERY: DataSource._SourceType.ValueType # 2 + STREAM_KAFKA: DataSource._SourceType.ValueType # 3 + + class SourceType(_SourceType, metaclass=_SourceTypeEnumTypeWrapper): + """Type of Data Source.""" + + INVALID: DataSource.SourceType.ValueType # 0 + BATCH_FILE: DataSource.SourceType.ValueType # 1 + BATCH_BIGQUERY: DataSource.SourceType.ValueType # 2 + STREAM_KAFKA: DataSource.SourceType.ValueType # 3 + + @typing_extensions.final + class FieldMappingEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing_extensions.final + class FileOptions(google.protobuf.message.Message): + """Defines options for DataSource that sources features from a file""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILE_FORMAT_FIELD_NUMBER: builtins.int + FILE_URL_FIELD_NUMBER: builtins.int + SPARK_OVERRIDE_FIELD_NUMBER: builtins.int + @property + def file_format(self) -> feast.core.DataFormat_pb2.FileFormat: ... + file_url: builtins.str + """Target URL of file to retrieve and source features from. + s3://path/to/file for AWS S3 storage + gs://path/to/file for GCP GCS storage + file:///path/to/file for local storage + """ + @property + def spark_override(self) -> feast.core.SparkOverride_pb2.SparkOverride: + """Allow users to override some configuration for the ingestion jobs.""" + def __init__( + self, + *, + file_format: feast.core.DataFormat_pb2.FileFormat | None = ..., + file_url: builtins.str = ..., + spark_override: feast.core.SparkOverride_pb2.SparkOverride | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["file_format", b"file_format", "spark_override", b"spark_override"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["file_format", b"file_format", "file_url", b"file_url", "spark_override", b"spark_override"]) -> None: ... + + @typing_extensions.final + class BigQueryOptions(google.protobuf.message.Message): + """Defines options for DataSource that sources features from a BigQuery Query""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_REF_FIELD_NUMBER: builtins.int + SPARK_OVERRIDE_FIELD_NUMBER: builtins.int + table_ref: builtins.str + """Full table reference in the form of [project:dataset.table]""" + @property + def spark_override(self) -> feast.core.SparkOverride_pb2.SparkOverride: + """Allow users to override some configuration for the ingestion jobs.""" + def __init__( + self, + *, + table_ref: builtins.str = ..., + spark_override: feast.core.SparkOverride_pb2.SparkOverride | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["spark_override", b"spark_override"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["spark_override", b"spark_override", "table_ref", b"table_ref"]) -> None: ... + + @typing_extensions.final + class KafkaOptions(google.protobuf.message.Message): + """Defines options for DataSource that sources features from Kafka messages. + Each message should be a Protobuf that can be decoded with the generated + Java Protobuf class at the given class path + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BOOTSTRAP_SERVERS_FIELD_NUMBER: builtins.int + TOPIC_FIELD_NUMBER: builtins.int + MESSAGE_FORMAT_FIELD_NUMBER: builtins.int + SPARK_OVERRIDE_FIELD_NUMBER: builtins.int + bootstrap_servers: builtins.str + """Comma separated list of Kafka bootstrap servers. Used for feature tables without a defined source host[:port]]""" + topic: builtins.str + """Kafka topic to collect feature data from.""" + @property + def message_format(self) -> feast.core.DataFormat_pb2.StreamFormat: + """Defines the stream data format encoding feature/entity data in Kafka messages.""" + @property + def spark_override(self) -> feast.core.SparkOverride_pb2.SparkOverride: + """Allow users to override some configuration for the ingestion jobs.""" + def __init__( + self, + *, + bootstrap_servers: builtins.str = ..., + topic: builtins.str = ..., + message_format: feast.core.DataFormat_pb2.StreamFormat | None = ..., + spark_override: feast.core.SparkOverride_pb2.SparkOverride | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["message_format", b"message_format", "spark_override", b"spark_override"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bootstrap_servers", b"bootstrap_servers", "message_format", b"message_format", "spark_override", b"spark_override", "topic", b"topic"]) -> None: ... + + TYPE_FIELD_NUMBER: builtins.int + FIELD_MAPPING_FIELD_NUMBER: builtins.int + EVENT_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int + DATE_PARTITION_COLUMN_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int + FILE_OPTIONS_FIELD_NUMBER: builtins.int + BIGQUERY_OPTIONS_FIELD_NUMBER: builtins.int + KAFKA_OPTIONS_FIELD_NUMBER: builtins.int + type: global___DataSource.SourceType.ValueType + @property + def field_mapping(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Defines mapping between fields in the sourced data + and fields in parent FeatureTable. + """ + event_timestamp_column: builtins.str + """Must specify event timestamp column name""" + date_partition_column: builtins.str + """(Optional) Specify partition column + useful for file sources + """ + created_timestamp_column: builtins.str + """Must specify creation timestamp column name""" + @property + def file_options(self) -> global___DataSource.FileOptions: ... + @property + def bigquery_options(self) -> global___DataSource.BigQueryOptions: ... + @property + def kafka_options(self) -> global___DataSource.KafkaOptions: ... + def __init__( + self, + *, + type: global___DataSource.SourceType.ValueType = ..., + field_mapping: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + event_timestamp_column: builtins.str = ..., + date_partition_column: builtins.str = ..., + created_timestamp_column: builtins.str = ..., + file_options: global___DataSource.FileOptions | None = ..., + bigquery_options: global___DataSource.BigQueryOptions | None = ..., + kafka_options: global___DataSource.KafkaOptions | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["bigquery_options", b"bigquery_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "options", b"options"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "date_partition_column", b"date_partition_column", "event_timestamp_column", b"event_timestamp_column", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "options", b"options", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["options", b"options"]) -> typing_extensions.Literal["file_options", "bigquery_options", "kafka_options"] | None: ... + +global___DataSource = DataSource diff --git a/caraml-store-sdk/python/feast/core/Entity_pb2.py b/caraml-store-sdk/python/feast/core/Entity_pb2.py index 845298e..6112c20 100644 --- a/caraml-store-sdk/python/feast/core/Entity_pb2.py +++ b/caraml-store-sdk/python/feast/core/Entity_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/core/Entity.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/types/Value.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"`\n\x06\x45ntity\x12*\n\x04spec\x18\x01 \x01(\x0b\x32\x16.feast.core.EntitySpecR\x04spec\x12*\n\x04meta\x18\x02 \x01(\x0b\x32\x16.feast.core.EntityMetaR\x04meta\"\xf5\x01\n\nEntitySpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.EnumR\tvalueType\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12:\n\x06labels\x18\x08 \x03(\x0b\x32\".feast.core.EntitySpec.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa7\x01\n\nEntityMeta\x12G\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x10\x63reatedTimestamp\x12P\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14lastUpdatedTimestampBw\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0b\x45ntityProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/core/Entity.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/types/Value.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"T\n\x06\x45ntity\x12$\n\x04spec\x18\x01 \x01(\x0b\x32\x16.feast.core.EntitySpec\x12$\n\x04meta\x18\x02 \x01(\x0b\x32\x16.feast.core.EntityMeta\"\xc3\x01\n\nEntitySpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.Enum\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x32\n\x06labels\x18\x08 \x03(\x0b\x32\".feast.core.EntitySpec.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x7f\n\nEntityMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBw\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0b\x45ntityProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.Entity_pb2', globals()) @@ -26,11 +26,11 @@ _ENTITYSPEC_LABELSENTRY._options = None _ENTITYSPEC_LABELSENTRY._serialized_options = b'8\001' _ENTITY._serialized_start=97 - _ENTITY._serialized_end=193 - _ENTITYSPEC._serialized_start=196 - _ENTITYSPEC._serialized_end=441 - _ENTITYSPEC_LABELSENTRY._serialized_start=384 - _ENTITYSPEC_LABELSENTRY._serialized_end=441 - _ENTITYMETA._serialized_start=444 - _ENTITYMETA._serialized_end=611 + _ENTITY._serialized_end=181 + _ENTITYSPEC._serialized_start=184 + _ENTITYSPEC._serialized_end=379 + _ENTITYSPEC_LABELSENTRY._serialized_start=334 + _ENTITYSPEC_LABELSENTRY._serialized_end=379 + _ENTITYMETA._serialized_start=381 + _ENTITYMETA._serialized_end=508 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/Entity_pb2.pyi b/caraml-store-sdk/python/feast/core/Entity_pb2.pyi index 3c8c0ec..41003eb 100644 --- a/caraml-store-sdk/python/feast/core/Entity_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/Entity_pb2.pyi @@ -1,43 +1,108 @@ -from feast.types import Value_pb2 as _Value_pb2 -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class Entity(_message.Message): - __slots__ = ["meta", "spec"] - META_FIELD_NUMBER: _ClassVar[int] - SPEC_FIELD_NUMBER: _ClassVar[int] - meta: EntityMeta - spec: EntitySpec - def __init__(self, spec: _Optional[_Union[EntitySpec, _Mapping]] = ..., meta: _Optional[_Union[EntityMeta, _Mapping]] = ...) -> None: ... - -class EntityMeta(_message.Message): - __slots__ = ["created_timestamp", "last_updated_timestamp"] - CREATED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - created_timestamp: _timestamp_pb2.Timestamp - last_updated_timestamp: _timestamp_pb2.Timestamp - def __init__(self, created_timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_updated_timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class EntitySpec(_message.Message): - __slots__ = ["description", "labels", "name", "value_type"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - DESCRIPTION_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] - description: str - labels: _containers.ScalarMap[str, str] - name: str - value_type: _Value_pb2.ValueType.Enum - def __init__(self, name: _Optional[str] = ..., value_type: _Optional[_Union[_Value_pb2.ValueType.Enum, str]] = ..., description: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class Entity(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___EntitySpec: + """User-specified specifications of this entity.""" + @property + def meta(self) -> global___EntityMeta: + """System-populated metadata for this entity.""" + def __init__( + self, + *, + spec: global___EntitySpec | None = ..., + meta: global___EntityMeta | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + +global___Entity = Entity + +@typing_extensions.final +class EntitySpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + VALUE_TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of the entity.""" + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType + """Type of the entity.""" + description: builtins.str + """Description of the entity.""" + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """User defined metadata""" + def __init__( + self, + *, + name: builtins.str = ..., + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + description: builtins.str = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "labels", b"labels", "name", b"name", "value_type", b"value_type"]) -> None: ... + +global___EntitySpec = EntitySpec + +@typing_extensions.final +class EntityMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... + +global___EntityMeta = EntityMeta diff --git a/caraml-store-sdk/python/feast/core/FeatureTable_pb2.py b/caraml-store-sdk/python/feast/core/FeatureTable_pb2.py index ef7f0e7..6131e5b 100644 --- a/caraml-store-sdk/python/feast/core/FeatureTable_pb2.py +++ b/caraml-store-sdk/python/feast/core/FeatureTable_pb2.py @@ -18,7 +18,7 @@ from feast.core import OnlineStore_pb2 as feast_dot_core_dot_OnlineStore__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66\x65\x61st/core/FeatureTable.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1c\x66\x65\x61st/core/OnlineStore.proto\"r\n\x0c\x46\x65\x61tureTable\x12\x30\n\x04spec\x18\x01 \x01(\x0b\x32\x1c.feast.core.FeatureTableSpecR\x04spec\x12\x30\n\x04meta\x18\x02 \x01(\x0b\x32\x1c.feast.core.FeatureTableMetaR\x04meta\"\xa8\x04\n\x10\x46\x65\x61tureTableSpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n\x08\x65ntities\x18\x03 \x03(\tR\x08\x65ntities\x12\x33\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x17.feast.core.FeatureSpecR\x08\x66\x65\x61tures\x12@\n\x06labels\x18\x05 \x03(\x0b\x32(.feast.core.FeatureTableSpec.LabelsEntryR\x06labels\x12\x32\n\x07max_age\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x06maxAge\x12\x39\n\x0c\x62\x61tch_source\x18\x07 \x01(\x0b\x32\x16.feast.core.DataSourceR\x0b\x62\x61tchSource\x12;\n\rstream_source\x18\x08 \x01(\x0b\x32\x16.feast.core.DataSourceR\x0cstreamSource\x12J\n\x13staleness_threshold\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationR\x12stalenessThreshold\x12:\n\x0conline_store\x18\n \x01(\x0b\x32\x17.feast.core.OnlineStoreR\x0bonlineStore\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xdd\x01\n\x10\x46\x65\x61tureTableMeta\x12G\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x10\x63reatedTimestamp\x12P\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14lastUpdatedTimestamp\x12\x1a\n\x08revision\x18\x03 \x01(\x03R\x08revision\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hashB}\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x11\x46\x65\x61tureTableProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66\x65\x61st/core/FeatureTable.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1c\x66\x65\x61st/core/OnlineStore.proto\"f\n\x0c\x46\x65\x61tureTable\x12*\n\x04spec\x18\x01 \x01(\x0b\x32\x1c.feast.core.FeatureTableSpec\x12*\n\x04meta\x18\x02 \x01(\x0b\x32\x1c.feast.core.FeatureTableMeta\"\xb6\x03\n\x10\x46\x65\x61tureTableSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x65ntities\x18\x03 \x03(\t\x12)\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x17.feast.core.FeatureSpec\x12\x38\n\x06labels\x18\x05 \x03(\x0b\x32(.feast.core.FeatureTableSpec.LabelsEntry\x12*\n\x07max_age\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x0c\x62\x61tch_source\x18\x07 \x01(\x0b\x32\x16.feast.core.DataSource\x12-\n\rstream_source\x18\x08 \x01(\x0b\x32\x16.feast.core.DataSource\x12\x36\n\x13staleness_threshold\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12-\n\x0conline_store\x18\n \x01(\x0b\x32\x17.feast.core.OnlineStore\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x01\n\x10\x46\x65\x61tureTableMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x0c\n\x04hash\x18\x04 \x01(\tB}\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x11\x46\x65\x61tureTableProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.FeatureTable_pb2', globals()) @@ -29,11 +29,11 @@ _FEATURETABLESPEC_LABELSENTRY._options = None _FEATURETABLESPEC_LABELSENTRY._serialized_options = b'8\001' _FEATURETABLE._serialized_start=195 - _FEATURETABLE._serialized_end=309 - _FEATURETABLESPEC._serialized_start=312 - _FEATURETABLESPEC._serialized_end=864 - _FEATURETABLESPEC_LABELSENTRY._serialized_start=807 - _FEATURETABLESPEC_LABELSENTRY._serialized_end=864 - _FEATURETABLEMETA._serialized_start=867 - _FEATURETABLEMETA._serialized_end=1088 + _FEATURETABLE._serialized_end=297 + _FEATURETABLESPEC._serialized_start=300 + _FEATURETABLESPEC._serialized_end=738 + _FEATURETABLESPEC_LABELSENTRY._serialized_start=693 + _FEATURETABLESPEC_LABELSENTRY._serialized_end=738 + _FEATURETABLEMETA._serialized_start=741 + _FEATURETABLEMETA._serialized_end=906 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/FeatureTable_pb2.pyi b/caraml-store-sdk/python/feast/core/FeatureTable_pb2.pyi index 5575a3d..c76c3bc 100644 --- a/caraml-store-sdk/python/feast/core/FeatureTable_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/FeatureTable_pb2.pyi @@ -1,60 +1,166 @@ -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from feast.core import OnlineStore_pb2 as _OnlineStore_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class FeatureTable(_message.Message): - __slots__ = ["meta", "spec"] - META_FIELD_NUMBER: _ClassVar[int] - SPEC_FIELD_NUMBER: _ClassVar[int] - meta: FeatureTableMeta - spec: FeatureTableSpec - def __init__(self, spec: _Optional[_Union[FeatureTableSpec, _Mapping]] = ..., meta: _Optional[_Union[FeatureTableMeta, _Mapping]] = ...) -> None: ... - -class FeatureTableMeta(_message.Message): - __slots__ = ["created_timestamp", "hash", "last_updated_timestamp", "revision"] - CREATED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - HASH_FIELD_NUMBER: _ClassVar[int] - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - REVISION_FIELD_NUMBER: _ClassVar[int] - created_timestamp: _timestamp_pb2.Timestamp - hash: str - last_updated_timestamp: _timestamp_pb2.Timestamp - revision: int - def __init__(self, created_timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_updated_timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., revision: _Optional[int] = ..., hash: _Optional[str] = ...) -> None: ... - -class FeatureTableSpec(_message.Message): - __slots__ = ["batch_source", "entities", "features", "labels", "max_age", "name", "online_store", "staleness_threshold", "stream_source"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - BATCH_SOURCE_FIELD_NUMBER: _ClassVar[int] - ENTITIES_FIELD_NUMBER: _ClassVar[int] - FEATURES_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - MAX_AGE_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - ONLINE_STORE_FIELD_NUMBER: _ClassVar[int] - STALENESS_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - STREAM_SOURCE_FIELD_NUMBER: _ClassVar[int] - batch_source: _DataSource_pb2.DataSource - entities: _containers.RepeatedScalarFieldContainer[str] - features: _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpec] - labels: _containers.ScalarMap[str, str] - max_age: _duration_pb2.Duration - name: str - online_store: _OnlineStore_pb2.OnlineStore - staleness_threshold: _duration_pb2.Duration - stream_source: _DataSource_pb2.DataSource - def __init__(self, name: _Optional[str] = ..., entities: _Optional[_Iterable[str]] = ..., features: _Optional[_Iterable[_Union[_Feature_pb2.FeatureSpec, _Mapping]]] = ..., labels: _Optional[_Mapping[str, str]] = ..., max_age: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., batch_source: _Optional[_Union[_DataSource_pb2.DataSource, _Mapping]] = ..., stream_source: _Optional[_Union[_DataSource_pb2.DataSource, _Mapping]] = ..., staleness_threshold: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., online_store: _Optional[_Union[_OnlineStore_pb2.OnlineStore, _Mapping]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Feature_pb2 +import feast.core.OnlineStore_pb2 +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class FeatureTable(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___FeatureTableSpec: + """User-specified specifications of this feature table.""" + @property + def meta(self) -> global___FeatureTableMeta: + """System-populated metadata for this feature table.""" + def __init__( + self, + *, + spec: global___FeatureTableSpec | None = ..., + meta: global___FeatureTableMeta | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + +global___FeatureTable = FeatureTable + +@typing_extensions.final +class FeatureTableSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + MAX_AGE_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + STREAM_SOURCE_FIELD_NUMBER: builtins.int + STALENESS_THRESHOLD_FIELD_NUMBER: builtins.int + ONLINE_STORE_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of the feature table. Must be unique. Not updated.""" + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """List names of entities to associate with the Features defined in this + Feature Table. Not updatable. + """ + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpec]: + """List of features specifications for each feature defined with this feature table.""" + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """User defined metadata""" + @property + def max_age(self) -> google.protobuf.duration_pb2.Duration: + """Features in this feature table can only be retrieved from online serving + younger than max age. Age is measured as the duration of time between + the feature's event timestamp and when the feature is retrieved + Feature values outside max age will be returned as unset values and indicated to end user + """ + @property + def batch_source(self) -> feast.core.DataSource_pb2.DataSource: + """Batch/Offline DataSource to source batch/offline feature data. + Only batch DataSource can be specified + (ie source type should start with 'BATCH_') + """ + @property + def stream_source(self) -> feast.core.DataSource_pb2.DataSource: + """Stream/Online DataSource to source stream/online feature data. + Only stream DataSource can be specified + (ie source type should start with 'STREAM_') + """ + @property + def staleness_threshold(self) -> google.protobuf.duration_pb2.Duration: + """Threshold to detect features that are close to be evicted. + Used by Feast Serving to indicate that feature is stale. + Must be less than max_age, since after max_age feature most probably will be garbage collected + """ + @property + def online_store(self) -> feast.core.OnlineStore_pb2.OnlineStore: + """Database where features are stored for online serving""" + def __init__( + self, + *, + name: builtins.str = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpec] | None = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + max_age: google.protobuf.duration_pb2.Duration | None = ..., + batch_source: feast.core.DataSource_pb2.DataSource | None = ..., + stream_source: feast.core.DataSource_pb2.DataSource | None = ..., + staleness_threshold: google.protobuf.duration_pb2.Duration | None = ..., + online_store: feast.core.OnlineStore_pb2.OnlineStore | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "max_age", b"max_age", "online_store", b"online_store", "staleness_threshold", b"staleness_threshold", "stream_source", b"stream_source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "entities", b"entities", "features", b"features", "labels", b"labels", "max_age", b"max_age", "name", b"name", "online_store", b"online_store", "staleness_threshold", b"staleness_threshold", "stream_source", b"stream_source"]) -> None: ... + +global___FeatureTableSpec = FeatureTableSpec + +@typing_extensions.final +class FeatureTableMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + REVISION_FIELD_NUMBER: builtins.int + HASH_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time where this Feature Table is created""" + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time where this Feature Table is last updated""" + revision: builtins.int + """Auto incrementing revision no. of this Feature Table""" + hash: builtins.str + """Hash entities, features, batch_source and stream_source to inform JobService if + jobs should be restarted should hash change + """ + def __init__( + self, + *, + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + revision: builtins.int = ..., + hash: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "hash", b"hash", "last_updated_timestamp", b"last_updated_timestamp", "revision", b"revision"]) -> None: ... + +global___FeatureTableMeta = FeatureTableMeta diff --git a/caraml-store-sdk/python/feast/core/Feature_pb2.py b/caraml-store-sdk/python/feast/core/Feature_pb2.py index 8408304..65b82bc 100644 --- a/caraml-store-sdk/python/feast/core/Feature_pb2.py +++ b/caraml-store-sdk/python/feast/core/Feature_pb2.py @@ -14,7 +14,7 @@ from feast.types import Value_pb2 as feast_dot_types_dot_Value__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66\x65\x61st/core/Feature.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/types/Value.proto\"\xd5\x01\n\x0b\x46\x65\x61tureSpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.EnumR\tvalueType\x12;\n\x06labels\x18\x03 \x03(\x0b\x32#.feast.core.FeatureSpec.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42x\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0c\x46\x65\x61tureProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66\x65\x61st/core/Feature.proto\x12\nfeast.core\x1a\x17\x66\x65\x61st/types/Value.proto\"\xb0\x01\n\x0b\x46\x65\x61tureSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.Enum\x12\x33\n\x06labels\x18\x03 \x03(\x0b\x32#.feast.core.FeatureSpec.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42x\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x0c\x46\x65\x61tureProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.Feature_pb2', globals()) @@ -25,7 +25,7 @@ _FEATURESPEC_LABELSENTRY._options = None _FEATURESPEC_LABELSENTRY._serialized_options = b'8\001' _FEATURESPEC._serialized_start=66 - _FEATURESPEC._serialized_end=279 - _FEATURESPEC_LABELSENTRY._serialized_start=222 - _FEATURESPEC_LABELSENTRY._serialized_end=279 + _FEATURESPEC._serialized_end=242 + _FEATURESPEC_LABELSENTRY._serialized_start=197 + _FEATURESPEC_LABELSENTRY._serialized_end=242 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/Feature_pb2.pyi b/caraml-store-sdk/python/feast/core/Feature_pb2.pyi index df12af2..87a3a4f 100644 --- a/caraml-store-sdk/python/feast/core/Feature_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/Feature_pb2.pyi @@ -1,24 +1,59 @@ -from feast.types import Value_pb2 as _Value_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sys -DESCRIPTOR: _descriptor.FileDescriptor +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions -class FeatureSpec(_message.Message): - __slots__ = ["labels", "name", "value_type"] - class LabelsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - LABELS_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] - labels: _containers.ScalarMap[str, str] - name: str - value_type: _Value_pb2.ValueType.Enum - def __init__(self, name: _Optional[str] = ..., value_type: _Optional[_Union[_Value_pb2.ValueType.Enum, str]] = ..., labels: _Optional[_Mapping[str, str]] = ...) -> None: ... +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class FeatureSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + VALUE_TYPE_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of the feature. Not updatable.""" + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType + """Value type of the feature. Not updatable.""" + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Labels for user defined metadata on a feature""" + def __init__( + self, + *, + name: builtins.str = ..., + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["labels", b"labels", "name", b"name", "value_type", b"value_type"]) -> None: ... + +global___FeatureSpec = FeatureSpec diff --git a/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.py b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.py new file mode 100644 index 0000000..f8231ce --- /dev/null +++ b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: feast/core/LegacyJobService.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from feast_spark.api import JobService_pb2 as feast__spark_dot_api_dot_JobService__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!feast/core/LegacyJobService.proto\x12\nfeast.core\x1a feast_spark/api/JobService.proto2\xe9\x02\n\nJobService\x12\x97\x01\n StartOfflineToOnlineIngestionJob\x12\x38.feast_spark.api.StartOfflineToOnlineIngestionJobRequest\x1a\x39.feast_spark.api.StartOfflineToOnlineIngestionJobResponse\x12v\n\x15GetHistoricalFeatures\x12-.feast_spark.api.GetHistoricalFeaturesRequest\x1a..feast_spark.api.GetHistoricalFeaturesResponse\x12I\n\x06GetJob\x12\x1e.feast_spark.api.GetJobRequest\x1a\x1f.feast_spark.api.GetJobResponseB}\n dev.caraml.store.protobuf.compatB\x0fJobServiceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.LegacyJobService_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n dev.caraml.store.protobuf.compatB\017JobServiceProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/core' + _JOBSERVICE._serialized_start=84 + _JOBSERVICE._serialized_end=445 +# @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.pyi b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.pyi new file mode 100644 index 0000000..eb8f6d5 --- /dev/null +++ b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2.pyi @@ -0,0 +1,9 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Legacy compatibility endpoint for older version of feast client. +The new endpoint is defined in feast_spark/api/JobService.proto +""" +import google.protobuf.descriptor + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/caraml-store-sdk/python/feast/core/LegacyJobService_pb2_grpc.py b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2_grpc.py new file mode 100644 index 0000000..75ffe44 --- /dev/null +++ b/caraml-store-sdk/python/feast/core/LegacyJobService_pb2_grpc.py @@ -0,0 +1,135 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from feast_spark.api import JobService_pb2 as feast__spark_dot_api_dot_JobService__pb2 + + +class JobServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.StartOfflineToOnlineIngestionJob = channel.unary_unary( + '/feast.core.JobService/StartOfflineToOnlineIngestionJob', + request_serializer=feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobRequest.SerializeToString, + response_deserializer=feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobResponse.FromString, + ) + self.GetHistoricalFeatures = channel.unary_unary( + '/feast.core.JobService/GetHistoricalFeatures', + request_serializer=feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesRequest.SerializeToString, + response_deserializer=feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesResponse.FromString, + ) + self.GetJob = channel.unary_unary( + '/feast.core.JobService/GetJob', + request_serializer=feast__spark_dot_api_dot_JobService__pb2.GetJobRequest.SerializeToString, + response_deserializer=feast__spark_dot_api_dot_JobService__pb2.GetJobResponse.FromString, + ) + + +class JobServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def StartOfflineToOnlineIngestionJob(self, request, context): + """Start job to ingest data from offline store into online store + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetHistoricalFeatures(self, request, context): + """Produce a training dataset, return a job id that will provide a file reference + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetJob(self, request, context): + """Get details of a single job + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_JobServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'StartOfflineToOnlineIngestionJob': grpc.unary_unary_rpc_method_handler( + servicer.StartOfflineToOnlineIngestionJob, + request_deserializer=feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobRequest.FromString, + response_serializer=feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobResponse.SerializeToString, + ), + 'GetHistoricalFeatures': grpc.unary_unary_rpc_method_handler( + servicer.GetHistoricalFeatures, + request_deserializer=feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesRequest.FromString, + response_serializer=feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesResponse.SerializeToString, + ), + 'GetJob': grpc.unary_unary_rpc_method_handler( + servicer.GetJob, + request_deserializer=feast__spark_dot_api_dot_JobService__pb2.GetJobRequest.FromString, + response_serializer=feast__spark_dot_api_dot_JobService__pb2.GetJobResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'feast.core.JobService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class JobService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def StartOfflineToOnlineIngestionJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/feast.core.JobService/StartOfflineToOnlineIngestionJob', + feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobRequest.SerializeToString, + feast__spark_dot_api_dot_JobService__pb2.StartOfflineToOnlineIngestionJobResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetHistoricalFeatures(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/feast.core.JobService/GetHistoricalFeatures', + feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesRequest.SerializeToString, + feast__spark_dot_api_dot_JobService__pb2.GetHistoricalFeaturesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/feast.core.JobService/GetJob', + feast__spark_dot_api_dot_JobService__pb2.GetJobRequest.SerializeToString, + feast__spark_dot_api_dot_JobService__pb2.GetJobResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/caraml-store-sdk/python/feast/core/OnlineStore_pb2.py b/caraml-store-sdk/python/feast/core/OnlineStore_pb2.py index 71232cf..dfb3b0b 100644 --- a/caraml-store-sdk/python/feast/core/OnlineStore_pb2.py +++ b/caraml-store-sdk/python/feast/core/OnlineStore_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/OnlineStore.proto\x12\nfeast.core\"n\n\x0bOnlineStore\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x15.feast.core.StoreTypeR\x04type\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription*/\n\tStoreType\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x42IGTABLE\x10\x01\x12\t\n\x05REDIS\x10\x02\x42|\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x10OnlineStoreProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/OnlineStore.proto\x12\nfeast.core\"U\n\x0bOnlineStore\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x04type\x18\x02 \x01(\x0e\x32\x15.feast.core.StoreType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t*:\n\tStoreType\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x42IGTABLE\x10\x01\x12\t\n\x05REDIS\x10\x02\x12\t\n\x05HBASE\x10\x03\x42|\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x10OnlineStoreProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.OnlineStore_pb2', globals()) @@ -21,8 +21,8 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\036dev.caraml.store.protobuf.coreB\020OnlineStoreProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/core' - _STORETYPE._serialized_start=156 - _STORETYPE._serialized_end=203 + _STORETYPE._serialized_start=131 + _STORETYPE._serialized_end=189 _ONLINESTORE._serialized_start=44 - _ONLINESTORE._serialized_end=154 + _ONLINESTORE._serialized_end=129 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/OnlineStore_pb2.pyi b/caraml-store-sdk/python/feast/core/OnlineStore_pb2.pyi index 54b0bf6..2e8c4db 100644 --- a/caraml-store-sdk/python/feast/core/OnlineStore_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/OnlineStore_pb2.pyi @@ -1,22 +1,74 @@ -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -BIGTABLE: StoreType -DESCRIPTOR: _descriptor.FileDescriptor -REDIS: StoreType -UNSET: StoreType - -class OnlineStore(_message.Message): - __slots__ = ["description", "name", "type"] - DESCRIPTION_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - description: str - name: str - type: StoreType - def __init__(self, name: _Optional[str] = ..., type: _Optional[_Union[StoreType, str]] = ..., description: _Optional[str] = ...) -> None: ... - -class StoreType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] +""" +@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 sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _StoreType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _StoreTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_StoreType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNSET: _StoreType.ValueType # 0 + """Unset""" + BIGTABLE: _StoreType.ValueType # 1 + """google cloud NOSQL database service""" + REDIS: _StoreType.ValueType # 2 + """redis in-memory database""" + HBASE: _StoreType.ValueType # 3 + """HBase database""" + +class StoreType(_StoreType, metaclass=_StoreTypeEnumTypeWrapper): ... + +UNSET: StoreType.ValueType # 0 +"""Unset""" +BIGTABLE: StoreType.ValueType # 1 +"""google cloud NOSQL database service""" +REDIS: StoreType.ValueType # 2 +"""redis in-memory database""" +HBASE: StoreType.ValueType # 3 +"""HBase database""" +global___StoreType = StoreType + +@typing_extensions.final +class OnlineStore(google.protobuf.message.Message): + """OnlineStore provides a location where Feast reads and writes feature values. + Feature values will be written to the Store in the form of FeatureRow elements. + The way FeatureRow is encoded and decoded when it is written to and read from + the Store depends on the type of the Store. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of the store.""" + type: global___StoreType.ValueType + """Type of store.""" + description: builtins.str + """Description.""" + def __init__( + self, + *, + name: builtins.str = ..., + type: global___StoreType.ValueType = ..., + description: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "type", b"type"]) -> None: ... + +global___OnlineStore = OnlineStore diff --git a/caraml-store-sdk/python/feast/core/SparkOverride_pb2.py b/caraml-store-sdk/python/feast/core/SparkOverride_pb2.py index db66c0b..c3b2fc0 100644 --- a/caraml-store-sdk/python/feast/core/SparkOverride_pb2.py +++ b/caraml-store-sdk/python/feast/core/SparkOverride_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66\x65\x61st/core/SparkOverride.proto\x12\nfeast.core\"\x9f\x01\n\rSparkOverride\x12\x1d\n\ndriver_cpu\x18\x01 \x01(\x05R\tdriverCpu\x12#\n\rdriver_memory\x18\x02 \x01(\tR\x0c\x64riverMemory\x12!\n\x0c\x65xecutor_cpu\x18\x03 \x01(\x05R\x0b\x65xecutorCpu\x12\'\n\x0f\x65xecutor_memory\x18\x04 \x01(\tR\x0e\x65xecutorMemoryB~\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x12SparkOverrideProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66\x65\x61st/core/SparkOverride.proto\x12\nfeast.core\"i\n\rSparkOverride\x12\x12\n\ndriver_cpu\x18\x01 \x01(\x05\x12\x15\n\rdriver_memory\x18\x02 \x01(\t\x12\x14\n\x0c\x65xecutor_cpu\x18\x03 \x01(\x05\x12\x17\n\x0f\x65xecutor_memory\x18\x04 \x01(\tB~\n\x1e\x64\x65v.caraml.store.protobuf.coreB\x12SparkOverrideProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/coreb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.SparkOverride_pb2', globals()) @@ -21,6 +21,6 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\036dev.caraml.store.protobuf.coreB\022SparkOverrideProtoZHgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/core' - _SPARKOVERRIDE._serialized_start=47 - _SPARKOVERRIDE._serialized_end=206 + _SPARKOVERRIDE._serialized_start=46 + _SPARKOVERRIDE._serialized_end=151 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/core/SparkOverride_pb2.pyi b/caraml-store-sdk/python/feast/core/SparkOverride_pb2.pyi index 977de10..3105236 100644 --- a/caraml-store-sdk/python/feast/core/SparkOverride_pb2.pyi +++ b/caraml-store-sdk/python/feast/core/SparkOverride_pb2.pyi @@ -1,17 +1,43 @@ -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Optional as _Optional +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys -DESCRIPTOR: _descriptor.FileDescriptor +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions -class SparkOverride(_message.Message): - __slots__ = ["driver_cpu", "driver_memory", "executor_cpu", "executor_memory"] - DRIVER_CPU_FIELD_NUMBER: _ClassVar[int] - DRIVER_MEMORY_FIELD_NUMBER: _ClassVar[int] - EXECUTOR_CPU_FIELD_NUMBER: _ClassVar[int] - EXECUTOR_MEMORY_FIELD_NUMBER: _ClassVar[int] - driver_cpu: int - driver_memory: str - executor_cpu: int - executor_memory: str - def __init__(self, driver_cpu: _Optional[int] = ..., driver_memory: _Optional[str] = ..., executor_cpu: _Optional[int] = ..., executor_memory: _Optional[str] = ...) -> None: ... +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class SparkOverride(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DRIVER_CPU_FIELD_NUMBER: builtins.int + DRIVER_MEMORY_FIELD_NUMBER: builtins.int + EXECUTOR_CPU_FIELD_NUMBER: builtins.int + EXECUTOR_MEMORY_FIELD_NUMBER: builtins.int + driver_cpu: builtins.int + """Override CPU requested for driver""" + driver_memory: builtins.str + """Override memory requested for driver""" + executor_cpu: builtins.int + """Override CPU requested for executor""" + executor_memory: builtins.str + """Override memory requested for executor""" + def __init__( + self, + *, + driver_cpu: builtins.int = ..., + driver_memory: builtins.str = ..., + executor_cpu: builtins.int = ..., + executor_memory: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["driver_cpu", b"driver_cpu", "driver_memory", b"driver_memory", "executor_cpu", b"executor_cpu", "executor_memory", b"executor_memory"]) -> None: ... + +global___SparkOverride = SparkOverride diff --git a/caraml-store-sdk/python/feast/serving/ServingService_pb2.py b/caraml-store-sdk/python/feast/serving/ServingService_pb2.py index 3bcacc9..a1e2dea 100644 --- a/caraml-store-sdk/python/feast/serving/ServingService_pb2.py +++ b/caraml-store-sdk/python/feast/serving/ServingService_pb2.py @@ -15,7 +15,7 @@ from feast.types import Value_pb2 as feast_dot_types_dot_Value__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"feast/serving/ServingService.proto\x12\rfeast.serving\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17\x66\x65\x61st/types/Value.proto\"\x1c\n\x1aGetFeastServingInfoRequest\"7\n\x1bGetFeastServingInfoResponse\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\"K\n\x10\x46\x65\x61tureReference\x12#\n\rfeature_table\x18\x01 \x01(\tR\x0c\x66\x65\x61tureTable\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xb3\x03\n\x18GetOnlineFeaturesRequest\x12;\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x1f.feast.serving.FeatureReferenceR\x08\x66\x65\x61tures\x12R\n\x0b\x65ntity_rows\x18\x02 \x03(\x0b\x32\x31.feast.serving.GetOnlineFeaturesRequest.EntityRowR\nentityRows\x12\x18\n\x07project\x18\x05 \x01(\tR\x07project\x1a\xeb\x01\n\tEntityRow\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12U\n\x06\x66ields\x18\x02 \x03(\x0b\x32=.feast.serving.GetOnlineFeaturesRequest.EntityRow.FieldsEntryR\x06\x66ields\x1aM\n\x0b\x46ieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.ValueR\x05value:\x02\x38\x01\"\xee\x03\n\x1bGetOnlineFeaturesResponseV2\x12Y\n\x0c\x66ield_values\x18\x01 \x03(\x0b\x32\x36.feast.serving.GetOnlineFeaturesResponseV2.FieldValuesR\x0b\x66ieldValues\x1a\xf3\x02\n\x0b\x46ieldValues\x12Z\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x42.feast.serving.GetOnlineFeaturesResponseV2.FieldValues.FieldsEntryR\x06\x66ields\x12`\n\x08statuses\x18\x02 \x03(\x0b\x32\x44.feast.serving.GetOnlineFeaturesResponseV2.FieldValues.StatusesEntryR\x08statuses\x1aM\n\x0b\x46ieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.ValueR\x05value:\x02\x38\x01\x1aW\n\rStatusesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32\x1a.feast.serving.FieldStatusR\x05value:\x02\x38\x01\"\xac\x02\n\x19GetOnlineFeaturesResponse\x12L\n\x08metadata\x18\x01 \x01(\x0b\x32\x30.feast.serving.GetOnlineFeaturesResponseMetadataR\x08metadata\x12N\n\x07results\x18\x02 \x03(\x0b\x32\x34.feast.serving.GetOnlineFeaturesResponse.FieldVectorR\x07results\x1aq\n\x0b\x46ieldVector\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x12.feast.types.ValueR\x06values\x12\x36\n\x08statuses\x18\x02 \x03(\x0e\x32\x1a.feast.serving.FieldStatusR\x08statuses\"^\n!GetOnlineFeaturesResponseMetadata\x12\x39\n\x0b\x66ield_names\x18\x01 \x01(\x0b\x32\x18.feast.serving.FieldListR\nfieldNames\"\x1d\n\tFieldList\x12\x10\n\x03val\x18\x01 \x03(\tR\x03val*r\n\x0b\x46ieldStatus\x12\x0b\n\x07INVALID\x10\x00\x12\x0b\n\x07PRESENT\x10\x01\x12\x0e\n\nNULL_VALUE\x10\x02\x12\r\n\tNOT_FOUND\x10\x03\x12\x13\n\x0fOUTSIDE_MAX_AGE\x10\x04\x12\x15\n\x11INGESTION_FAILURE\x10\x05\x32\xd2\x02\n\x0eServingService\x12l\n\x13GetFeastServingInfo\x12).feast.serving.GetFeastServingInfoRequest\x1a*.feast.serving.GetFeastServingInfoResponse\x12j\n\x13GetOnlineFeaturesV2\x12\'.feast.serving.GetOnlineFeaturesRequest\x1a*.feast.serving.GetOnlineFeaturesResponseV2\x12\x66\n\x11GetOnlineFeatures\x12\'.feast.serving.GetOnlineFeaturesRequest\x1a(.feast.serving.GetOnlineFeaturesResponseB\x85\x01\n!dev.caraml.store.protobuf.servingB\x13ServingServiceProtoZKgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/servingb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"feast/serving/ServingService.proto\x12\rfeast.serving\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17\x66\x65\x61st/types/Value.proto\"\x1c\n\x1aGetFeastServingInfoRequest\".\n\x1bGetFeastServingInfoResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\"7\n\x10\x46\x65\x61tureReference\x12\x15\n\rfeature_table\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xf5\x02\n\x18GetOnlineFeaturesRequest\x12\x31\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x1f.feast.serving.FeatureReference\x12\x46\n\x0b\x65ntity_rows\x18\x02 \x03(\x0b\x32\x31.feast.serving.GetOnlineFeaturesRequest.EntityRow\x12\x0f\n\x07project\x18\x05 \x01(\t\x1a\xcc\x01\n\tEntityRow\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12M\n\x06\x66ields\x18\x02 \x03(\x0b\x32=.feast.serving.GetOnlineFeaturesRequest.EntityRow.FieldsEntry\x1a\x41\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.Value:\x02\x38\x01\"\xb7\x03\n\x1bGetOnlineFeaturesResponseV2\x12L\n\x0c\x66ield_values\x18\x01 \x03(\x0b\x32\x36.feast.serving.GetOnlineFeaturesResponseV2.FieldValues\x1a\xc9\x02\n\x0b\x46ieldValues\x12R\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x42.feast.serving.GetOnlineFeaturesResponseV2.FieldValues.FieldsEntry\x12V\n\x08statuses\x18\x02 \x03(\x0b\x32\x44.feast.serving.GetOnlineFeaturesResponseV2.FieldValues.StatusesEntry\x1a\x41\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.Value:\x02\x38\x01\x1aK\n\rStatusesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.feast.serving.FieldStatus:\x02\x38\x01\"\x87\x02\n\x19GetOnlineFeaturesResponse\x12\x42\n\x08metadata\x18\x01 \x01(\x0b\x32\x30.feast.serving.GetOnlineFeaturesResponseMetadata\x12\x45\n\x07results\x18\x02 \x03(\x0b\x32\x34.feast.serving.GetOnlineFeaturesResponse.FieldVector\x1a_\n\x0b\x46ieldVector\x12\"\n\x06values\x18\x01 \x03(\x0b\x32\x12.feast.types.Value\x12,\n\x08statuses\x18\x02 \x03(\x0e\x32\x1a.feast.serving.FieldStatus\"R\n!GetOnlineFeaturesResponseMetadata\x12-\n\x0b\x66ield_names\x18\x01 \x01(\x0b\x32\x18.feast.serving.FieldList\"\x18\n\tFieldList\x12\x0b\n\x03val\x18\x01 \x03(\t*r\n\x0b\x46ieldStatus\x12\x0b\n\x07INVALID\x10\x00\x12\x0b\n\x07PRESENT\x10\x01\x12\x0e\n\nNULL_VALUE\x10\x02\x12\r\n\tNOT_FOUND\x10\x03\x12\x13\n\x0fOUTSIDE_MAX_AGE\x10\x04\x12\x15\n\x11INGESTION_FAILURE\x10\x05\x32\xd2\x02\n\x0eServingService\x12l\n\x13GetFeastServingInfo\x12).feast.serving.GetFeastServingInfoRequest\x1a*.feast.serving.GetFeastServingInfoResponse\x12j\n\x13GetOnlineFeaturesV2\x12\'.feast.serving.GetOnlineFeaturesRequest\x1a*.feast.serving.GetOnlineFeaturesResponseV2\x12\x66\n\x11GetOnlineFeatures\x12\'.feast.serving.GetOnlineFeaturesRequest\x1a(.feast.serving.GetOnlineFeaturesResponseB\x85\x01\n!dev.caraml.store.protobuf.servingB\x13ServingServiceProtoZKgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/servingb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.serving.ServingService_pb2', globals()) @@ -29,36 +29,36 @@ _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_FIELDSENTRY._serialized_options = b'8\001' _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._options = None _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._serialized_options = b'8\001' - _FIELDSTATUS._serialized_start=1640 - _FIELDSTATUS._serialized_end=1754 + _FIELDSTATUS._serialized_start=1440 + _FIELDSTATUS._serialized_end=1554 _GETFEASTSERVINGINFOREQUEST._serialized_start=111 _GETFEASTSERVINGINFOREQUEST._serialized_end=139 _GETFEASTSERVINGINFORESPONSE._serialized_start=141 - _GETFEASTSERVINGINFORESPONSE._serialized_end=196 - _FEATUREREFERENCE._serialized_start=198 - _FEATUREREFERENCE._serialized_end=273 - _GETONLINEFEATURESREQUEST._serialized_start=276 - _GETONLINEFEATURESREQUEST._serialized_end=711 - _GETONLINEFEATURESREQUEST_ENTITYROW._serialized_start=476 - _GETONLINEFEATURESREQUEST_ENTITYROW._serialized_end=711 - _GETONLINEFEATURESREQUEST_ENTITYROW_FIELDSENTRY._serialized_start=634 - _GETONLINEFEATURESREQUEST_ENTITYROW_FIELDSENTRY._serialized_end=711 - _GETONLINEFEATURESRESPONSEV2._serialized_start=714 - _GETONLINEFEATURESRESPONSEV2._serialized_end=1208 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES._serialized_start=837 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES._serialized_end=1208 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_FIELDSENTRY._serialized_start=634 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_FIELDSENTRY._serialized_end=711 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._serialized_start=1121 - _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._serialized_end=1208 - _GETONLINEFEATURESRESPONSE._serialized_start=1211 - _GETONLINEFEATURESRESPONSE._serialized_end=1511 - _GETONLINEFEATURESRESPONSE_FIELDVECTOR._serialized_start=1398 - _GETONLINEFEATURESRESPONSE_FIELDVECTOR._serialized_end=1511 - _GETONLINEFEATURESRESPONSEMETADATA._serialized_start=1513 - _GETONLINEFEATURESRESPONSEMETADATA._serialized_end=1607 - _FIELDLIST._serialized_start=1609 - _FIELDLIST._serialized_end=1638 - _SERVINGSERVICE._serialized_start=1757 - _SERVINGSERVICE._serialized_end=2095 + _GETFEASTSERVINGINFORESPONSE._serialized_end=187 + _FEATUREREFERENCE._serialized_start=189 + _FEATUREREFERENCE._serialized_end=244 + _GETONLINEFEATURESREQUEST._serialized_start=247 + _GETONLINEFEATURESREQUEST._serialized_end=620 + _GETONLINEFEATURESREQUEST_ENTITYROW._serialized_start=416 + _GETONLINEFEATURESREQUEST_ENTITYROW._serialized_end=620 + _GETONLINEFEATURESREQUEST_ENTITYROW_FIELDSENTRY._serialized_start=555 + _GETONLINEFEATURESREQUEST_ENTITYROW_FIELDSENTRY._serialized_end=620 + _GETONLINEFEATURESRESPONSEV2._serialized_start=623 + _GETONLINEFEATURESRESPONSEV2._serialized_end=1062 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES._serialized_start=733 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES._serialized_end=1062 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_FIELDSENTRY._serialized_start=555 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_FIELDSENTRY._serialized_end=620 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._serialized_start=987 + _GETONLINEFEATURESRESPONSEV2_FIELDVALUES_STATUSESENTRY._serialized_end=1062 + _GETONLINEFEATURESRESPONSE._serialized_start=1065 + _GETONLINEFEATURESRESPONSE._serialized_end=1328 + _GETONLINEFEATURESRESPONSE_FIELDVECTOR._serialized_start=1233 + _GETONLINEFEATURESRESPONSE_FIELDVECTOR._serialized_end=1328 + _GETONLINEFEATURESRESPONSEMETADATA._serialized_start=1330 + _GETONLINEFEATURESRESPONSEMETADATA._serialized_end=1412 + _FIELDLIST._serialized_start=1414 + _FIELDLIST._serialized_end=1438 + _SERVINGSERVICE._serialized_start=1557 + _SERVINGSERVICE._serialized_end=1895 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/serving/ServingService_pb2.pyi b/caraml-store-sdk/python/feast/serving/ServingService_pb2.pyi index 4f19e22..14a8086 100644 --- a/caraml-store-sdk/python/feast/serving/ServingService_pb2.pyi +++ b/caraml-store-sdk/python/feast/serving/ServingService_pb2.pyi @@ -1,114 +1,337 @@ -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from feast.types import Value_pb2 as _Value_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor -INGESTION_FAILURE: FieldStatus -INVALID: FieldStatus -NOT_FOUND: FieldStatus -NULL_VALUE: FieldStatus -OUTSIDE_MAX_AGE: FieldStatus -PRESENT: FieldStatus - -class FeatureReference(_message.Message): - __slots__ = ["feature_table", "name"] - FEATURE_TABLE_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - feature_table: str - name: str - def __init__(self, feature_table: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... - -class FieldList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, val: _Optional[_Iterable[str]] = ...) -> None: ... - -class GetFeastServingInfoRequest(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class GetFeastServingInfoResponse(_message.Message): - __slots__ = ["version"] - VERSION_FIELD_NUMBER: _ClassVar[int] - version: str - def __init__(self, version: _Optional[str] = ...) -> None: ... - -class GetOnlineFeaturesRequest(_message.Message): - __slots__ = ["entity_rows", "features", "project"] - class EntityRow(_message.Message): - __slots__ = ["fields", "timestamp"] - class FieldsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: _Value_pb2.Value - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_Value_pb2.Value, _Mapping]] = ...) -> None: ... - FIELDS_FIELD_NUMBER: _ClassVar[int] - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - fields: _containers.MessageMap[str, _Value_pb2.Value] - timestamp: _timestamp_pb2.Timestamp - def __init__(self, timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., fields: _Optional[_Mapping[str, _Value_pb2.Value]] = ...) -> None: ... - ENTITY_ROWS_FIELD_NUMBER: _ClassVar[int] - FEATURES_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - entity_rows: _containers.RepeatedCompositeFieldContainer[GetOnlineFeaturesRequest.EntityRow] - features: _containers.RepeatedCompositeFieldContainer[FeatureReference] - project: str - def __init__(self, features: _Optional[_Iterable[_Union[FeatureReference, _Mapping]]] = ..., entity_rows: _Optional[_Iterable[_Union[GetOnlineFeaturesRequest.EntityRow, _Mapping]]] = ..., project: _Optional[str] = ...) -> None: ... - -class GetOnlineFeaturesResponse(_message.Message): - __slots__ = ["metadata", "results"] - class FieldVector(_message.Message): - __slots__ = ["statuses", "values"] - STATUSES_FIELD_NUMBER: _ClassVar[int] - VALUES_FIELD_NUMBER: _ClassVar[int] - statuses: _containers.RepeatedScalarFieldContainer[FieldStatus] - values: _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value] - def __init__(self, values: _Optional[_Iterable[_Union[_Value_pb2.Value, _Mapping]]] = ..., statuses: _Optional[_Iterable[_Union[FieldStatus, str]]] = ...) -> None: ... - METADATA_FIELD_NUMBER: _ClassVar[int] - RESULTS_FIELD_NUMBER: _ClassVar[int] - metadata: GetOnlineFeaturesResponseMetadata - results: _containers.RepeatedCompositeFieldContainer[GetOnlineFeaturesResponse.FieldVector] - def __init__(self, metadata: _Optional[_Union[GetOnlineFeaturesResponseMetadata, _Mapping]] = ..., results: _Optional[_Iterable[_Union[GetOnlineFeaturesResponse.FieldVector, _Mapping]]] = ...) -> None: ... - -class GetOnlineFeaturesResponseMetadata(_message.Message): - __slots__ = ["field_names"] - FIELD_NAMES_FIELD_NUMBER: _ClassVar[int] - field_names: FieldList - def __init__(self, field_names: _Optional[_Union[FieldList, _Mapping]] = ...) -> None: ... - -class GetOnlineFeaturesResponseV2(_message.Message): - __slots__ = ["field_values"] - class FieldValues(_message.Message): - __slots__ = ["fields", "statuses"] - class FieldsEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: _Value_pb2.Value - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_Value_pb2.Value, _Mapping]] = ...) -> None: ... - class StatusesEntry(_message.Message): - __slots__ = ["key", "value"] - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: FieldStatus - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[FieldStatus, str]] = ...) -> None: ... - FIELDS_FIELD_NUMBER: _ClassVar[int] - STATUSES_FIELD_NUMBER: _ClassVar[int] - fields: _containers.MessageMap[str, _Value_pb2.Value] - statuses: _containers.ScalarMap[str, FieldStatus] - def __init__(self, fields: _Optional[_Mapping[str, _Value_pb2.Value]] = ..., statuses: _Optional[_Mapping[str, FieldStatus]] = ...) -> None: ... - FIELD_VALUES_FIELD_NUMBER: _ClassVar[int] - field_values: _containers.RepeatedCompositeFieldContainer[GetOnlineFeaturesResponseV2.FieldValues] - def __init__(self, field_values: _Optional[_Iterable[_Union[GetOnlineFeaturesResponseV2.FieldValues, _Mapping]]] = ...) -> None: ... - -class FieldStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_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 _FieldStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _FieldStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FieldStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: _FieldStatus.ValueType # 0 + """Status is unset for this field.""" + PRESENT: _FieldStatus.ValueType # 1 + """Field value is present for this field and age is within max age.""" + NULL_VALUE: _FieldStatus.ValueType # 2 + """Values could be found for entity key and age is within max age, but + this field value is assigned a value on ingestion into feast. + """ + NOT_FOUND: _FieldStatus.ValueType # 3 + """Entity key did not return any values as they do not exist in Feast. + This could suggest that the feature values have not yet been ingested + into feast or the ingestion failed. + """ + OUTSIDE_MAX_AGE: _FieldStatus.ValueType # 4 + """Values could be found for entity key, but field values are outside the maximum + allowable range. + """ + INGESTION_FAILURE: _FieldStatus.ValueType # 5 + """Values could be found for entity key, but are null and is due to ingestion failures""" + +class FieldStatus(_FieldStatus, metaclass=_FieldStatusEnumTypeWrapper): ... + +INVALID: FieldStatus.ValueType # 0 +"""Status is unset for this field.""" +PRESENT: FieldStatus.ValueType # 1 +"""Field value is present for this field and age is within max age.""" +NULL_VALUE: FieldStatus.ValueType # 2 +"""Values could be found for entity key and age is within max age, but +this field value is assigned a value on ingestion into feast. +""" +NOT_FOUND: FieldStatus.ValueType # 3 +"""Entity key did not return any values as they do not exist in Feast. +This could suggest that the feature values have not yet been ingested +into feast or the ingestion failed. +""" +OUTSIDE_MAX_AGE: FieldStatus.ValueType # 4 +"""Values could be found for entity key, but field values are outside the maximum +allowable range. +""" +INGESTION_FAILURE: FieldStatus.ValueType # 5 +"""Values could be found for entity key, but are null and is due to ingestion failures""" +global___FieldStatus = FieldStatus + +@typing_extensions.final +class GetFeastServingInfoRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GetFeastServingInfoRequest = GetFeastServingInfoRequest + +@typing_extensions.final +class GetFeastServingInfoResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VERSION_FIELD_NUMBER: builtins.int + version: builtins.str + """Feast version of this serving deployment.""" + def __init__( + self, + *, + version: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["version", b"version"]) -> None: ... + +global___GetFeastServingInfoResponse = GetFeastServingInfoResponse + +@typing_extensions.final +class FeatureReference(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_TABLE_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + feature_table: builtins.str + """Name of the Feature Table to retrieve the feature from.""" + name: builtins.str + """Name of the Feature to retrieve the feature from.""" + def __init__( + self, + *, + feature_table: builtins.str = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_table", b"feature_table", "name", b"name"]) -> None: ... + +global___FeatureReference = FeatureReference + +@typing_extensions.final +class GetOnlineFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class EntityRow(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FieldsEntry(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) -> feast.types.Value_pb2.Value: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + TIMESTAMP_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Request timestamp of this row. This value will be used, + together with maxAge, to determine feature staleness. + """ + @property + def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: + """Map containing mapping of entity name to entity value.""" + def __init__( + self, + *, + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + fields: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "timestamp", b"timestamp"]) -> None: ... + + FEATURES_FIELD_NUMBER: builtins.int + ENTITY_ROWS_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureReference]: + """List of features that are being retrieved""" + @property + def entity_rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesRequest.EntityRow]: + """List of entity rows, containing entity id and timestamp data. + Used during retrieval of feature rows and for joining feature + rows into a final dataset + """ + project: builtins.str + """Optional field to specify project name override. If specified, uses the + given project for retrieval. Overrides the projects specified in + Feature References if both are specified. + """ + def __init__( + self, + *, + features: collections.abc.Iterable[global___FeatureReference] | None = ..., + entity_rows: collections.abc.Iterable[global___GetOnlineFeaturesRequest.EntityRow] | None = ..., + project: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entity_rows", b"entity_rows", "features", b"features", "project", b"project"]) -> None: ... + +global___GetOnlineFeaturesRequest = GetOnlineFeaturesRequest + +@typing_extensions.final +class GetOnlineFeaturesResponseV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FieldValues(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FieldsEntry(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) -> feast.types.Value_pb2.Value: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing_extensions.final + class StatusesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: global___FieldStatus.ValueType + def __init__( + self, + *, + key: builtins.str = ..., + value: global___FieldStatus.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FIELDS_FIELD_NUMBER: builtins.int + STATUSES_FIELD_NUMBER: builtins.int + @property + def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: + """Map of feature or entity name to feature/entity values. + Timestamps are not returned in this response. + """ + @property + def statuses(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, global___FieldStatus.ValueType]: + """Map of feature or entity name to feature/entity statuses/metadata.""" + def __init__( + self, + *, + fields: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., + statuses: collections.abc.Mapping[builtins.str, global___FieldStatus.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "statuses", b"statuses"]) -> None: ... + + FIELD_VALUES_FIELD_NUMBER: builtins.int + @property + def field_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesResponseV2.FieldValues]: + """Feature values retrieved from feast.""" + def __init__( + self, + *, + field_values: collections.abc.Iterable[global___GetOnlineFeaturesResponseV2.FieldValues] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["field_values", b"field_values"]) -> None: ... + +global___GetOnlineFeaturesResponseV2 = GetOnlineFeaturesResponseV2 + +@typing_extensions.final +class GetOnlineFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FieldVector(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + STATUSES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... + @property + def statuses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___FieldStatus.ValueType]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., + statuses: collections.abc.Iterable[global___FieldStatus.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["statuses", b"statuses", "values", b"values"]) -> None: ... + + METADATA_FIELD_NUMBER: builtins.int + RESULTS_FIELD_NUMBER: builtins.int + @property + def metadata(self) -> global___GetOnlineFeaturesResponseMetadata: ... + @property + def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesResponse.FieldVector]: + """Length of "results" array should match length of requested features and entities. + We also preserve the same order of features here as in metadata.field_names + """ + def __init__( + self, + *, + metadata: global___GetOnlineFeaturesResponseMetadata | None = ..., + results: collections.abc.Iterable[global___GetOnlineFeaturesResponse.FieldVector] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "results", b"results"]) -> None: ... + +global___GetOnlineFeaturesResponse = GetOnlineFeaturesResponse + +@typing_extensions.final +class GetOnlineFeaturesResponseMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FIELD_NAMES_FIELD_NUMBER: builtins.int + @property + def field_names(self) -> global___FieldList: ... + def __init__( + self, + *, + field_names: global___FieldList | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["field_names", b"field_names"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["field_names", b"field_names"]) -> None: ... + +global___GetOnlineFeaturesResponseMetadata = GetOnlineFeaturesResponseMetadata + +@typing_extensions.final +class FieldList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___FieldList = FieldList diff --git a/caraml-store-sdk/python/feast/types/Field_pb2.py b/caraml-store-sdk/python/feast/types/Field_pb2.py index e95826a..5df3cff 100644 --- a/caraml-store-sdk/python/feast/types/Field_pb2.py +++ b/caraml-store-sdk/python/feast/types/Field_pb2.py @@ -14,7 +14,7 @@ from feast.types import Value_pb2 as feast_dot_types_dot_Value__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Field.proto\x12\x0b\x66\x65\x61st.types\x1a\x17\x66\x65\x61st/types/Value.proto\"E\n\x05\x46ield\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.ValueR\x05valueBx\n\x1f\x64\x65v.caraml.store.protobuf.typesB\nFieldProtoZIgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/typesb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Field.proto\x12\x0b\x66\x65\x61st.types\x1a\x17\x66\x65\x61st/types/Value.proto\"8\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.ValueBx\n\x1f\x64\x65v.caraml.store.protobuf.typesB\nFieldProtoZIgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/typesb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.types.Field_pb2', globals()) @@ -23,5 +23,5 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\037dev.caraml.store.protobuf.typesB\nFieldProtoZIgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/types' _FIELD._serialized_start=65 - _FIELD._serialized_end=134 + _FIELD._serialized_end=121 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/types/Field_pb2.pyi b/caraml-store-sdk/python/feast/types/Field_pb2.pyi index 44e8a28..e1a3e87 100644 --- a/caraml-store-sdk/python/feast/types/Field_pb2.pyi +++ b/caraml-store-sdk/python/feast/types/Field_pb2.pyi @@ -1,14 +1,36 @@ -from feast.types import Value_pb2 as _Value_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class Field(_message.Message): - __slots__ = ["name", "value"] - NAME_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - name: str - value: _Value_pb2.Value - def __init__(self, name: _Optional[str] = ..., value: _Optional[_Union[_Value_pb2.Value, _Mapping]] = ...) -> None: ... +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.message +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class Field(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def value(self) -> feast.types.Value_pb2.Value: ... + def __init__( + self, + *, + name: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... + +global___Field = Field diff --git a/caraml-store-sdk/python/feast/types/Value_pb2.py b/caraml-store-sdk/python/feast/types/Value_pb2.py index a55ff86..77d9f4d 100644 --- a/caraml-store-sdk/python/feast/types/Value_pb2.py +++ b/caraml-store-sdk/python/feast/types/Value_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Value.proto\x12\x0b\x66\x65\x61st.types\"\xe0\x01\n\tValueType\"\xd2\x01\n\x04\x45num\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05INT32\x10\x03\x12\t\n\x05INT64\x10\x04\x12\n\n\x06\x44OUBLE\x10\x05\x12\t\n\x05\x46LOAT\x10\x06\x12\x08\n\x04\x42OOL\x10\x07\x12\x0e\n\nBYTES_LIST\x10\x0b\x12\x0f\n\x0bSTRING_LIST\x10\x0c\x12\x0e\n\nINT32_LIST\x10\r\x12\x0e\n\nINT64_LIST\x10\x0e\x12\x0f\n\x0b\x44OUBLE_LIST\x10\x0f\x12\x0e\n\nFLOAT_LIST\x10\x10\x12\r\n\tBOOL_LIST\x10\x11\"\xac\x05\n\x05Value\x12\x1d\n\tbytes_val\x18\x01 \x01(\x0cH\x00R\x08\x62ytesVal\x12\x1f\n\nstring_val\x18\x02 \x01(\tH\x00R\tstringVal\x12\x1d\n\tint32_val\x18\x03 \x01(\x05H\x00R\x08int32Val\x12\x1d\n\tint64_val\x18\x04 \x01(\x03H\x00R\x08int64Val\x12\x1f\n\ndouble_val\x18\x05 \x01(\x01H\x00R\tdoubleVal\x12\x1d\n\tfloat_val\x18\x06 \x01(\x02H\x00R\x08\x66loatVal\x12\x1b\n\x08\x62ool_val\x18\x07 \x01(\x08H\x00R\x07\x62oolVal\x12>\n\x0e\x62ytes_list_val\x18\x0b \x01(\x0b\x32\x16.feast.types.BytesListH\x00R\x0c\x62ytesListVal\x12\x41\n\x0fstring_list_val\x18\x0c \x01(\x0b\x32\x17.feast.types.StringListH\x00R\rstringListVal\x12>\n\x0eint32_list_val\x18\r \x01(\x0b\x32\x16.feast.types.Int32ListH\x00R\x0cint32ListVal\x12>\n\x0eint64_list_val\x18\x0e \x01(\x0b\x32\x16.feast.types.Int64ListH\x00R\x0cint64ListVal\x12\x41\n\x0f\x64ouble_list_val\x18\x0f \x01(\x0b\x32\x17.feast.types.DoubleListH\x00R\rdoubleListVal\x12>\n\x0e\x66loat_list_val\x18\x10 \x01(\x0b\x32\x16.feast.types.FloatListH\x00R\x0c\x66loatListVal\x12;\n\rbool_list_val\x18\x11 \x01(\x0b\x32\x15.feast.types.BoolListH\x00R\x0b\x62oolListValB\x05\n\x03val\"\x1d\n\tBytesList\x12\x10\n\x03val\x18\x01 \x03(\x0cR\x03val\"\x1e\n\nStringList\x12\x10\n\x03val\x18\x01 \x03(\tR\x03val\"\x1d\n\tInt32List\x12\x10\n\x03val\x18\x01 \x03(\x05R\x03val\"\x1d\n\tInt64List\x12\x10\n\x03val\x18\x01 \x03(\x03R\x03val\"\x1e\n\nDoubleList\x12\x10\n\x03val\x18\x01 \x03(\x01R\x03val\"\x1d\n\tFloatList\x12\x10\n\x03val\x18\x01 \x03(\x02R\x03val\"\x1c\n\x08\x42oolList\x12\x10\n\x03val\x18\x01 \x03(\x08R\x03valBx\n\x1f\x64\x65v.caraml.store.protobuf.typesB\nValueProtoZIgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/typesb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Value.proto\x12\x0b\x66\x65\x61st.types\"\xe0\x01\n\tValueType\"\xd2\x01\n\x04\x45num\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05INT32\x10\x03\x12\t\n\x05INT64\x10\x04\x12\n\n\x06\x44OUBLE\x10\x05\x12\t\n\x05\x46LOAT\x10\x06\x12\x08\n\x04\x42OOL\x10\x07\x12\x0e\n\nBYTES_LIST\x10\x0b\x12\x0f\n\x0bSTRING_LIST\x10\x0c\x12\x0e\n\nINT32_LIST\x10\r\x12\x0e\n\nINT64_LIST\x10\x0e\x12\x0f\n\x0b\x44OUBLE_LIST\x10\x0f\x12\x0e\n\nFLOAT_LIST\x10\x10\x12\r\n\tBOOL_LIST\x10\x11\"\x82\x04\n\x05Value\x12\x13\n\tbytes_val\x18\x01 \x01(\x0cH\x00\x12\x14\n\nstring_val\x18\x02 \x01(\tH\x00\x12\x13\n\tint32_val\x18\x03 \x01(\x05H\x00\x12\x13\n\tint64_val\x18\x04 \x01(\x03H\x00\x12\x14\n\ndouble_val\x18\x05 \x01(\x01H\x00\x12\x13\n\tfloat_val\x18\x06 \x01(\x02H\x00\x12\x12\n\x08\x62ool_val\x18\x07 \x01(\x08H\x00\x12\x30\n\x0e\x62ytes_list_val\x18\x0b \x01(\x0b\x32\x16.feast.types.BytesListH\x00\x12\x32\n\x0fstring_list_val\x18\x0c \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x30\n\x0eint32_list_val\x18\r \x01(\x0b\x32\x16.feast.types.Int32ListH\x00\x12\x30\n\x0eint64_list_val\x18\x0e \x01(\x0b\x32\x16.feast.types.Int64ListH\x00\x12\x32\n\x0f\x64ouble_list_val\x18\x0f \x01(\x0b\x32\x17.feast.types.DoubleListH\x00\x12\x30\n\x0e\x66loat_list_val\x18\x10 \x01(\x0b\x32\x16.feast.types.FloatListH\x00\x12.\n\rbool_list_val\x18\x11 \x01(\x0b\x32\x15.feast.types.BoolListH\x00\x42\x05\n\x03val\"\x18\n\tBytesList\x12\x0b\n\x03val\x18\x01 \x03(\x0c\"\x19\n\nStringList\x12\x0b\n\x03val\x18\x01 \x03(\t\"\x18\n\tInt32List\x12\x0b\n\x03val\x18\x01 \x03(\x05\"\x18\n\tInt64List\x12\x0b\n\x03val\x18\x01 \x03(\x03\"\x19\n\nDoubleList\x12\x0b\n\x03val\x18\x01 \x03(\x01\"\x18\n\tFloatList\x12\x0b\n\x03val\x18\x01 \x03(\x02\"\x17\n\x08\x42oolList\x12\x0b\n\x03val\x18\x01 \x03(\x08\x42x\n\x1f\x64\x65v.caraml.store.protobuf.typesB\nValueProtoZIgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast/typesb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.types.Value_pb2', globals()) @@ -26,19 +26,19 @@ _VALUETYPE_ENUM._serialized_start=55 _VALUETYPE_ENUM._serialized_end=265 _VALUE._serialized_start=268 - _VALUE._serialized_end=952 - _BYTESLIST._serialized_start=954 - _BYTESLIST._serialized_end=983 - _STRINGLIST._serialized_start=985 - _STRINGLIST._serialized_end=1015 - _INT32LIST._serialized_start=1017 - _INT32LIST._serialized_end=1046 - _INT64LIST._serialized_start=1048 - _INT64LIST._serialized_end=1077 - _DOUBLELIST._serialized_start=1079 - _DOUBLELIST._serialized_end=1109 - _FLOATLIST._serialized_start=1111 - _FLOATLIST._serialized_end=1140 - _BOOLLIST._serialized_start=1142 - _BOOLLIST._serialized_end=1170 + _VALUE._serialized_end=782 + _BYTESLIST._serialized_start=784 + _BYTESLIST._serialized_end=808 + _STRINGLIST._serialized_start=810 + _STRINGLIST._serialized_end=835 + _INT32LIST._serialized_start=837 + _INT32LIST._serialized_end=861 + _INT64LIST._serialized_start=863 + _INT64LIST._serialized_end=887 + _DOUBLELIST._serialized_start=889 + _DOUBLELIST._serialized_end=914 + _FLOATLIST._serialized_start=916 + _FLOATLIST._serialized_end=940 + _BOOLLIST._serialized_start=942 + _BOOLLIST._serialized_end=965 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast/types/Value_pb2.pyi b/caraml-store-sdk/python/feast/types/Value_pb2.pyi index b79a92f..6b8ad32 100644 --- a/caraml-store-sdk/python/feast/types/Value_pb2.pyi +++ b/caraml-store-sdk/python/feast/types/Value_pb2.pyi @@ -1,102 +1,243 @@ -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class BoolList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[bool] - def __init__(self, val: _Optional[_Iterable[bool]] = ...) -> None: ... - -class BytesList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[bytes] - def __init__(self, val: _Optional[_Iterable[bytes]] = ...) -> None: ... - -class DoubleList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[float] - def __init__(self, val: _Optional[_Iterable[float]] = ...) -> None: ... - -class FloatList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[float] - def __init__(self, val: _Optional[_Iterable[float]] = ...) -> None: ... - -class Int32List(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, val: _Optional[_Iterable[int]] = ...) -> None: ... - -class Int64List(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, val: _Optional[_Iterable[int]] = ...) -> None: ... - -class StringList(_message.Message): - __slots__ = ["val"] - VAL_FIELD_NUMBER: _ClassVar[int] - val: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, val: _Optional[_Iterable[str]] = ...) -> None: ... - -class Value(_message.Message): - __slots__ = ["bool_list_val", "bool_val", "bytes_list_val", "bytes_val", "double_list_val", "double_val", "float_list_val", "float_val", "int32_list_val", "int32_val", "int64_list_val", "int64_val", "string_list_val", "string_val"] - BOOL_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - BOOL_VAL_FIELD_NUMBER: _ClassVar[int] - BYTES_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - BYTES_VAL_FIELD_NUMBER: _ClassVar[int] - DOUBLE_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - DOUBLE_VAL_FIELD_NUMBER: _ClassVar[int] - FLOAT_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - FLOAT_VAL_FIELD_NUMBER: _ClassVar[int] - INT32_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - INT32_VAL_FIELD_NUMBER: _ClassVar[int] - INT64_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - INT64_VAL_FIELD_NUMBER: _ClassVar[int] - STRING_LIST_VAL_FIELD_NUMBER: _ClassVar[int] - STRING_VAL_FIELD_NUMBER: _ClassVar[int] - bool_list_val: BoolList - bool_val: bool - bytes_list_val: BytesList - bytes_val: bytes - double_list_val: DoubleList - double_val: float - float_list_val: FloatList - float_val: float - int32_list_val: Int32List - int32_val: int - int64_list_val: Int64List - int64_val: int - string_list_val: StringList - string_val: str - def __init__(self, bytes_val: _Optional[bytes] = ..., string_val: _Optional[str] = ..., int32_val: _Optional[int] = ..., int64_val: _Optional[int] = ..., double_val: _Optional[float] = ..., float_val: _Optional[float] = ..., bool_val: bool = ..., bytes_list_val: _Optional[_Union[BytesList, _Mapping]] = ..., string_list_val: _Optional[_Union[StringList, _Mapping]] = ..., int32_list_val: _Optional[_Union[Int32List, _Mapping]] = ..., int64_list_val: _Optional[_Union[Int64List, _Mapping]] = ..., double_list_val: _Optional[_Union[DoubleList, _Mapping]] = ..., float_list_val: _Optional[_Union[FloatList, _Mapping]] = ..., bool_list_val: _Optional[_Union[BoolList, _Mapping]] = ...) -> None: ... - -class ValueType(_message.Message): - __slots__ = [] - class Enum(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - BOOL: ValueType.Enum - BOOL_LIST: ValueType.Enum - BYTES: ValueType.Enum - BYTES_LIST: ValueType.Enum - DOUBLE: ValueType.Enum - DOUBLE_LIST: ValueType.Enum - FLOAT: ValueType.Enum - FLOAT_LIST: ValueType.Enum - INT32: ValueType.Enum - INT32_LIST: ValueType.Enum - INT64: ValueType.Enum - INT64_LIST: ValueType.Enum - INVALID: ValueType.Enum - STRING: ValueType.Enum - STRING_LIST: ValueType.Enum - def __init__(self) -> None: ... +""" +@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.internal.enum_type_wrapper +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class ValueType(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Enum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: ValueType._Enum.ValueType # 0 + BYTES: ValueType._Enum.ValueType # 1 + STRING: ValueType._Enum.ValueType # 2 + INT32: ValueType._Enum.ValueType # 3 + INT64: ValueType._Enum.ValueType # 4 + DOUBLE: ValueType._Enum.ValueType # 5 + FLOAT: ValueType._Enum.ValueType # 6 + BOOL: ValueType._Enum.ValueType # 7 + BYTES_LIST: ValueType._Enum.ValueType # 11 + STRING_LIST: ValueType._Enum.ValueType # 12 + INT32_LIST: ValueType._Enum.ValueType # 13 + INT64_LIST: ValueType._Enum.ValueType # 14 + DOUBLE_LIST: ValueType._Enum.ValueType # 15 + FLOAT_LIST: ValueType._Enum.ValueType # 16 + BOOL_LIST: ValueType._Enum.ValueType # 17 + + class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ... + INVALID: ValueType.Enum.ValueType # 0 + BYTES: ValueType.Enum.ValueType # 1 + STRING: ValueType.Enum.ValueType # 2 + INT32: ValueType.Enum.ValueType # 3 + INT64: ValueType.Enum.ValueType # 4 + DOUBLE: ValueType.Enum.ValueType # 5 + FLOAT: ValueType.Enum.ValueType # 6 + BOOL: ValueType.Enum.ValueType # 7 + BYTES_LIST: ValueType.Enum.ValueType # 11 + STRING_LIST: ValueType.Enum.ValueType # 12 + INT32_LIST: ValueType.Enum.ValueType # 13 + INT64_LIST: ValueType.Enum.ValueType # 14 + DOUBLE_LIST: ValueType.Enum.ValueType # 15 + FLOAT_LIST: ValueType.Enum.ValueType # 16 + BOOL_LIST: ValueType.Enum.ValueType # 17 + + def __init__( + self, + ) -> None: ... + +global___ValueType = ValueType + +@typing_extensions.final +class Value(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BYTES_VAL_FIELD_NUMBER: builtins.int + STRING_VAL_FIELD_NUMBER: builtins.int + INT32_VAL_FIELD_NUMBER: builtins.int + INT64_VAL_FIELD_NUMBER: builtins.int + DOUBLE_VAL_FIELD_NUMBER: builtins.int + FLOAT_VAL_FIELD_NUMBER: builtins.int + BOOL_VAL_FIELD_NUMBER: builtins.int + BYTES_LIST_VAL_FIELD_NUMBER: builtins.int + STRING_LIST_VAL_FIELD_NUMBER: builtins.int + INT32_LIST_VAL_FIELD_NUMBER: builtins.int + INT64_LIST_VAL_FIELD_NUMBER: builtins.int + DOUBLE_LIST_VAL_FIELD_NUMBER: builtins.int + FLOAT_LIST_VAL_FIELD_NUMBER: builtins.int + BOOL_LIST_VAL_FIELD_NUMBER: builtins.int + bytes_val: builtins.bytes + string_val: builtins.str + int32_val: builtins.int + int64_val: builtins.int + double_val: builtins.float + float_val: builtins.float + bool_val: builtins.bool + @property + def bytes_list_val(self) -> global___BytesList: ... + @property + def string_list_val(self) -> global___StringList: ... + @property + def int32_list_val(self) -> global___Int32List: ... + @property + def int64_list_val(self) -> global___Int64List: ... + @property + def double_list_val(self) -> global___DoubleList: ... + @property + def float_list_val(self) -> global___FloatList: ... + @property + def bool_list_val(self) -> global___BoolList: ... + def __init__( + self, + *, + bytes_val: builtins.bytes = ..., + string_val: builtins.str = ..., + int32_val: builtins.int = ..., + int64_val: builtins.int = ..., + double_val: builtins.float = ..., + float_val: builtins.float = ..., + bool_val: builtins.bool = ..., + bytes_list_val: global___BytesList | None = ..., + string_list_val: global___StringList | None = ..., + int32_list_val: global___Int32List | None = ..., + int64_list_val: global___Int64List | None = ..., + double_list_val: global___DoubleList | None = ..., + float_list_val: global___FloatList | None = ..., + bool_list_val: global___BoolList | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_val", b"bytes_val", "double_list_val", b"double_list_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_val", b"int64_val", "string_list_val", b"string_list_val", "string_val", b"string_val", "val", b"val"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_val", b"bytes_val", "double_list_val", b"double_list_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_val", b"int64_val", "string_list_val", b"string_list_val", "string_val", b"string_val", "val", b"val"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["val", b"val"]) -> typing_extensions.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val"] | None: ... + +global___Value = Value + +@typing_extensions.final +class BytesList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.bytes] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___BytesList = BytesList + +@typing_extensions.final +class StringList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___StringList = StringList + +@typing_extensions.final +class Int32List(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___Int32List = Int32List + +@typing_extensions.final +class Int64List(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___Int64List = Int64List + +@typing_extensions.final +class DoubleList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___DoubleList = DoubleList + +@typing_extensions.final +class FloatList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___FloatList = FloatList + +@typing_extensions.final +class BoolList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... + def __init__( + self, + *, + val: collections.abc.Iterable[builtins.bool] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + +global___BoolList = BoolList diff --git a/caraml-store-sdk/python/feast_spark/api/JobService_pb2.py b/caraml-store-sdk/python/feast_spark/api/JobService_pb2.py index 5d1714a..f8b3559 100644 --- a/caraml-store-sdk/python/feast_spark/api/JobService_pb2.py +++ b/caraml-store-sdk/python/feast_spark/api/JobService_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n feast_spark/api/JobService.proto\x12\x0f\x66\x65\x61st_spark.api\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xab\x01\n\x0cScheduledJob\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12-\n\x12ingestion_timespan\x18\x04 \x01(\x05R\x11ingestionTimespan\x12#\n\rcron_schedule\x18\x05 \x01(\tR\x0c\x63ronSchedule\"\xc0\x05\n\x03Job\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x18.feast_spark.api.JobTypeR\x04type\x12\x32\n\x06status\x18\x03 \x01(\x0e\x32\x1a.feast_spark.api.JobStatusR\x06status\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x39\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x45\n\tretrieval\x18\x06 \x01(\x0b\x32%.feast_spark.api.Job.RetrievalJobMetaH\x00R\tretrieval\x12S\n\x0f\x62\x61tch_ingestion\x18\x07 \x01(\x0b\x32(.feast_spark.api.Job.OfflineToOnlineMetaH\x00R\x0e\x62\x61tchIngestion\x12T\n\x10stream_ingestion\x18\x08 \x01(\x0b\x32\'.feast_spark.api.Job.StreamToOnlineMetaH\x00R\x0fstreamIngestion\x12\x17\n\x07log_uri\x18\t \x01(\tR\x06logUri\x12#\n\rerror_message\x18\n \x01(\tR\x0c\x65rrorMessage\x12\x18\n\x07project\x18\x0b \x01(\tR\x07project\x1a;\n\x10RetrievalJobMeta\x12\'\n\x0foutput_location\x18\x01 \x01(\tR\x0eoutputLocation\x1a\x34\n\x13OfflineToOnlineMeta\x12\x1d\n\ntable_name\x18\x01 \x01(\tR\ttableName\x1a\x33\n\x12StreamToOnlineMeta\x12\x1d\n\ntable_name\x18\x01 \x01(\tR\ttableNameB\x06\n\x04meta\"\xfd\x01\n\'StartOfflineToOnlineIngestionJobRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\x12\x39\n\nstart_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartDate\x12\x35\n\x08\x65nd_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndDate\x12\'\n\x0f\x64\x65lta_ingestion\x18\x05 \x01(\x08R\x0e\x64\x65ltaIngestion\"\xb4\x01\n(StartOfflineToOnlineIngestionJobResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12@\n\x0ejob_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cjobStartTime\x12\x1d\n\ntable_name\x18\x03 \x01(\tR\ttableName\x12\x17\n\x07log_uri\x18\x04 \x01(\tR\x06logUri\"Y\n\x1eStartStreamIngestionJobRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\"1\n\x1fStartStreamIngestionJobResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"\xb9\x01\n*ScheduleOfflineToOnlineIngestionJobRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\x12-\n\x12ingestion_timespan\x18\x03 \x01(\x05R\x11ingestionTimespan\x12#\n\rcron_schedule\x18\x04 \x01(\tR\x0c\x63ronSchedule\"-\n+ScheduleOfflineToOnlineIngestionJobResponse\"g\n,UnscheduleOfflineToOnlineIngestionJobRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\"/\n-UnscheduleOfflineToOnlineIngestionJobResponse\"\xe6\x01\n\x1cGetHistoricalFeaturesRequest\x12!\n\x0c\x66\x65\x61ture_refs\x18\x01 \x03(\tR\x0b\x66\x65\x61tureRefs\x12;\n\rentity_source\x18\x02 \x01(\x0b\x32\x16.feast.core.DataSourceR\x0c\x65ntitySource\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12\'\n\x0foutput_location\x18\x04 \x01(\tR\x0eoutputLocation\x12#\n\routput_format\x18\x05 \x01(\tR\x0coutputFormat\"\xb2\x01\n\x1dGetHistoricalFeaturesResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12&\n\x0foutput_file_uri\x18\x02 \x01(\tR\routputFileUri\x12@\n\x0ejob_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cjobStartTime\x12\x17\n\x07log_uri\x18\x04 \x01(\tR\x06logUri\"\xa7\x01\n\x0fListJobsRequest\x12-\n\x12include_terminated\x18\x01 \x01(\x08R\x11includeTerminated\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12,\n\x04type\x18\x04 \x01(\x0e\x32\x18.feast_spark.api.JobTypeR\x04type\"S\n\x18ListScheduledJobsRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1d\n\ntable_name\x18\x02 \x01(\tR\ttableName\"<\n\x10ListJobsResponse\x12(\n\x04jobs\x18\x01 \x03(\x0b\x32\x14.feast_spark.api.JobR\x04jobs\"N\n\x19ListScheduledJobsResponse\x12\x31\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.feast_spark.api.ScheduledJobR\x04jobs\"&\n\rGetJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"8\n\x0eGetJobResponse\x12&\n\x03job\x18\x01 \x01(\x0b\x32\x14.feast_spark.api.JobR\x03job\")\n\x10\x43\x61ncelJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"\x13\n\x11\x43\x61ncelJobResponse\"-\n\x14UnscheduleJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"\x17\n\x15UnscheduleJobResponse\"T\n\x17GetHealthMetricsRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x1f\n\x0btable_names\x18\x02 \x03(\tR\ntableNames\"J\n\x18GetHealthMetricsResponse\x12\x16\n\x06passed\x18\x01 \x03(\tR\x06passed\x12\x16\n\x06\x66\x61iled\x18\x02 \x03(\tR\x06\x66\x61iled*`\n\x07JobType\x12\x0f\n\x0bINVALID_JOB\x10\x00\x12\x17\n\x13\x42\x41TCH_INGESTION_JOB\x10\x01\x12\x18\n\x14STREAM_INGESTION_JOB\x10\x02\x12\x11\n\rRETRIEVAL_JOB\x10\x04*~\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x16\n\x12JOB_STATUS_PENDING\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x13\n\x0fJOB_STATUS_DONE\x10\x03\x12\x14\n\x10JOB_STATUS_ERROR\x10\x04\x32\x8d\n\n\nJobService\x12\x97\x01\n StartOfflineToOnlineIngestionJob\x12\x38.feast_spark.api.StartOfflineToOnlineIngestionJobRequest\x1a\x39.feast_spark.api.StartOfflineToOnlineIngestionJobResponse\x12|\n\x17StartStreamIngestionJob\x12/.feast_spark.api.StartStreamIngestionJobRequest\x1a\x30.feast_spark.api.StartStreamIngestionJobResponse\x12\xa0\x01\n#ScheduleOfflineToOnlineIngestionJob\x12;.feast_spark.api.ScheduleOfflineToOnlineIngestionJobRequest\x1a<.feast_spark.api.ScheduleOfflineToOnlineIngestionJobResponse\x12\xa6\x01\n%UnscheduleOfflineToOnlineIngestionJob\x12=.feast_spark.api.UnscheduleOfflineToOnlineIngestionJobRequest\x1a>.feast_spark.api.UnscheduleOfflineToOnlineIngestionJobResponse\x12v\n\x15GetHistoricalFeatures\x12-.feast_spark.api.GetHistoricalFeaturesRequest\x1a..feast_spark.api.GetHistoricalFeaturesResponse\x12O\n\x08ListJobs\x12 .feast_spark.api.ListJobsRequest\x1a!.feast_spark.api.ListJobsResponse\x12j\n\x11ListScheduledJobs\x12).feast_spark.api.ListScheduledJobsRequest\x1a*.feast_spark.api.ListScheduledJobsResponse\x12R\n\tCancelJob\x12!.feast_spark.api.CancelJobRequest\x1a\".feast_spark.api.CancelJobResponse\x12^\n\rUnscheduleJob\x12%.feast_spark.api.UnscheduleJobRequest\x1a&.feast_spark.api.UnscheduleJobResponse\x12I\n\x06GetJob\x12\x1e.feast_spark.api.GetJobRequest\x1a\x1f.feast_spark.api.GetJobResponse\x12g\n\x10GetHealthMetrics\x12(.feast_spark.api.GetHealthMetricsRequest\x1a).feast_spark.api.GetHealthMetricsResponseB\x86\x01\n$dev.caraml.store.protobuf.jobserviceB\x0fJobServiceProtoZMgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast_spark/apib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n feast_spark/api/JobService.proto\x12\x0f\x66\x65\x61st_spark.api\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"r\n\x0cScheduledJob\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x0f\n\x07project\x18\x03 \x01(\t\x12\x1a\n\x12ingestion_timespan\x18\x04 \x01(\x05\x12\x15\n\rcron_schedule\x18\x05 \x01(\t\"\xac\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12&\n\x04type\x18\x02 \x01(\x0e\x32\x18.feast_spark.api.JobType\x12*\n\x06status\x18\x03 \x01(\x0e\x32\x1a.feast_spark.api.JobStatus\x12\x0c\n\x04hash\x18\x04 \x01(\t\x12.\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\tretrieval\x18\x06 \x01(\x0b\x32%.feast_spark.api.Job.RetrievalJobMetaH\x00\x12\x43\n\x0f\x62\x61tch_ingestion\x18\x07 \x01(\x0b\x32(.feast_spark.api.Job.OfflineToOnlineMetaH\x00\x12\x43\n\x10stream_ingestion\x18\x08 \x01(\x0b\x32\'.feast_spark.api.Job.StreamToOnlineMetaH\x00\x12\x0f\n\x07log_uri\x18\t \x01(\t\x12\x15\n\rerror_message\x18\n \x01(\t\x12\x0f\n\x07project\x18\x0b \x01(\t\x1a+\n\x10RetrievalJobMeta\x12\x17\n\x0foutput_location\x18\x01 \x01(\t\x1a)\n\x13OfflineToOnlineMeta\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a(\n\x12StreamToOnlineMeta\x12\x12\n\ntable_name\x18\x01 \x01(\tB\x06\n\x04meta\"\xc5\x01\n\'StartOfflineToOnlineIngestionJobRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12.\n\nstart_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\x0f\x64\x65lta_ingestion\x18\x05 \x01(\x08\"\x8f\x01\n(StartOfflineToOnlineIngestionJobResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x32\n\x0ejob_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12\x0f\n\x07log_uri\x18\x04 \x01(\t\"E\n\x1eStartStreamIngestionJobRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\"-\n\x1fStartStreamIngestionJobResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x84\x01\n*ScheduleOfflineToOnlineIngestionJobRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x1a\n\x12ingestion_timespan\x18\x03 \x01(\x05\x12\x15\n\rcron_schedule\x18\x04 \x01(\t\"-\n+ScheduleOfflineToOnlineIngestionJobResponse\"S\n,UnscheduleOfflineToOnlineIngestionJobRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\"/\n-UnscheduleOfflineToOnlineIngestionJobResponse\"\xa4\x01\n\x1cGetHistoricalFeaturesRequest\x12\x14\n\x0c\x66\x65\x61ture_refs\x18\x01 \x03(\t\x12-\n\rentity_source\x18\x02 \x01(\x0b\x32\x16.feast.core.DataSource\x12\x0f\n\x07project\x18\x03 \x01(\t\x12\x17\n\x0foutput_location\x18\x04 \x01(\t\x12\x15\n\routput_format\x18\x05 \x01(\t\"\x89\x01\n\x1dGetHistoricalFeaturesResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x17\n\x0foutput_file_uri\x18\x02 \x01(\t\x12\x32\n\x0ejob_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07log_uri\x18\x04 \x01(\t\"z\n\x0fListJobsRequest\x12\x1a\n\x12include_terminated\x18\x01 \x01(\x08\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x0f\n\x07project\x18\x03 \x01(\t\x12&\n\x04type\x18\x04 \x01(\x0e\x32\x18.feast_spark.api.JobType\"?\n\x18ListScheduledJobsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x02 \x01(\t\"6\n\x10ListJobsResponse\x12\"\n\x04jobs\x18\x01 \x03(\x0b\x32\x14.feast_spark.api.Job\"H\n\x19ListScheduledJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.feast_spark.api.ScheduledJob\"\x1f\n\rGetJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"3\n\x0eGetJobResponse\x12!\n\x03job\x18\x01 \x01(\x0b\x32\x14.feast_spark.api.Job\"\"\n\x10\x43\x61ncelJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\x13\n\x11\x43\x61ncelJobResponse\"&\n\x14UnscheduleJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\x17\n\x15UnscheduleJobResponse\"?\n\x17GetHealthMetricsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x13\n\x0btable_names\x18\x02 \x03(\t\":\n\x18GetHealthMetricsResponse\x12\x0e\n\x06passed\x18\x01 \x03(\t\x12\x0e\n\x06\x66\x61iled\x18\x02 \x03(\t*`\n\x07JobType\x12\x0f\n\x0bINVALID_JOB\x10\x00\x12\x17\n\x13\x42\x41TCH_INGESTION_JOB\x10\x01\x12\x18\n\x14STREAM_INGESTION_JOB\x10\x02\x12\x11\n\rRETRIEVAL_JOB\x10\x04*~\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x16\n\x12JOB_STATUS_PENDING\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x13\n\x0fJOB_STATUS_DONE\x10\x03\x12\x14\n\x10JOB_STATUS_ERROR\x10\x04\x32\x8d\n\n\nJobService\x12\x97\x01\n StartOfflineToOnlineIngestionJob\x12\x38.feast_spark.api.StartOfflineToOnlineIngestionJobRequest\x1a\x39.feast_spark.api.StartOfflineToOnlineIngestionJobResponse\x12|\n\x17StartStreamIngestionJob\x12/.feast_spark.api.StartStreamIngestionJobRequest\x1a\x30.feast_spark.api.StartStreamIngestionJobResponse\x12\xa0\x01\n#ScheduleOfflineToOnlineIngestionJob\x12;.feast_spark.api.ScheduleOfflineToOnlineIngestionJobRequest\x1a<.feast_spark.api.ScheduleOfflineToOnlineIngestionJobResponse\x12\xa6\x01\n%UnscheduleOfflineToOnlineIngestionJob\x12=.feast_spark.api.UnscheduleOfflineToOnlineIngestionJobRequest\x1a>.feast_spark.api.UnscheduleOfflineToOnlineIngestionJobResponse\x12v\n\x15GetHistoricalFeatures\x12-.feast_spark.api.GetHistoricalFeaturesRequest\x1a..feast_spark.api.GetHistoricalFeaturesResponse\x12O\n\x08ListJobs\x12 .feast_spark.api.ListJobsRequest\x1a!.feast_spark.api.ListJobsResponse\x12j\n\x11ListScheduledJobs\x12).feast_spark.api.ListScheduledJobsRequest\x1a*.feast_spark.api.ListScheduledJobsResponse\x12R\n\tCancelJob\x12!.feast_spark.api.CancelJobRequest\x1a\".feast_spark.api.CancelJobResponse\x12^\n\rUnscheduleJob\x12%.feast_spark.api.UnscheduleJobRequest\x1a&.feast_spark.api.UnscheduleJobResponse\x12I\n\x06GetJob\x12\x1e.feast_spark.api.GetJobRequest\x1a\x1f.feast_spark.api.GetJobResponse\x12g\n\x10GetHealthMetrics\x12(.feast_spark.api.GetHealthMetricsRequest\x1a).feast_spark.api.GetHealthMetricsResponseB\x86\x01\n$dev.caraml.store.protobuf.jobserviceB\x0fJobServiceProtoZMgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast_spark/apib\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast_spark.api.JobService_pb2', globals()) @@ -23,64 +23,64 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n$dev.caraml.store.protobuf.jobserviceB\017JobServiceProtoZMgithub.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast_spark/api' - _JOBTYPE._serialized_start=3173 - _JOBTYPE._serialized_end=3269 - _JOBSTATUS._serialized_start=3271 - _JOBSTATUS._serialized_end=3397 - _SCHEDULEDJOB._serialized_start=116 - _SCHEDULEDJOB._serialized_end=287 - _JOB._serialized_start=290 - _JOB._serialized_end=994 - _JOB_RETRIEVALJOBMETA._serialized_start=820 - _JOB_RETRIEVALJOBMETA._serialized_end=879 - _JOB_OFFLINETOONLINEMETA._serialized_start=881 - _JOB_OFFLINETOONLINEMETA._serialized_end=933 - _JOB_STREAMTOONLINEMETA._serialized_start=935 - _JOB_STREAMTOONLINEMETA._serialized_end=986 - _STARTOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=997 - _STARTOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=1250 - _STARTOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=1253 - _STARTOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1433 - _STARTSTREAMINGESTIONJOBREQUEST._serialized_start=1435 - _STARTSTREAMINGESTIONJOBREQUEST._serialized_end=1524 - _STARTSTREAMINGESTIONJOBRESPONSE._serialized_start=1526 - _STARTSTREAMINGESTIONJOBRESPONSE._serialized_end=1575 - _SCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=1578 - _SCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=1763 - _SCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=1765 - _SCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1810 - _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=1812 - _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=1915 - _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=1917 - _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1964 - _GETHISTORICALFEATURESREQUEST._serialized_start=1967 - _GETHISTORICALFEATURESREQUEST._serialized_end=2197 - _GETHISTORICALFEATURESRESPONSE._serialized_start=2200 - _GETHISTORICALFEATURESRESPONSE._serialized_end=2378 - _LISTJOBSREQUEST._serialized_start=2381 - _LISTJOBSREQUEST._serialized_end=2548 - _LISTSCHEDULEDJOBSREQUEST._serialized_start=2550 - _LISTSCHEDULEDJOBSREQUEST._serialized_end=2633 - _LISTJOBSRESPONSE._serialized_start=2635 - _LISTJOBSRESPONSE._serialized_end=2695 - _LISTSCHEDULEDJOBSRESPONSE._serialized_start=2697 - _LISTSCHEDULEDJOBSRESPONSE._serialized_end=2775 - _GETJOBREQUEST._serialized_start=2777 - _GETJOBREQUEST._serialized_end=2815 - _GETJOBRESPONSE._serialized_start=2817 - _GETJOBRESPONSE._serialized_end=2873 - _CANCELJOBREQUEST._serialized_start=2875 - _CANCELJOBREQUEST._serialized_end=2916 - _CANCELJOBRESPONSE._serialized_start=2918 - _CANCELJOBRESPONSE._serialized_end=2937 - _UNSCHEDULEJOBREQUEST._serialized_start=2939 - _UNSCHEDULEJOBREQUEST._serialized_end=2984 - _UNSCHEDULEJOBRESPONSE._serialized_start=2986 - _UNSCHEDULEJOBRESPONSE._serialized_end=3009 - _GETHEALTHMETRICSREQUEST._serialized_start=3011 - _GETHEALTHMETRICSREQUEST._serialized_end=3095 - _GETHEALTHMETRICSRESPONSE._serialized_start=3097 - _GETHEALTHMETRICSRESPONSE._serialized_end=3171 - _JOBSERVICE._serialized_start=3400 - _JOBSERVICE._serialized_end=4693 + _JOBTYPE._serialized_start=2529 + _JOBTYPE._serialized_end=2625 + _JOBSTATUS._serialized_start=2627 + _JOBSTATUS._serialized_end=2753 + _SCHEDULEDJOB._serialized_start=115 + _SCHEDULEDJOB._serialized_end=229 + _JOB._serialized_start=232 + _JOB._serialized_end=788 + _JOB_RETRIEVALJOBMETA._serialized_start=652 + _JOB_RETRIEVALJOBMETA._serialized_end=695 + _JOB_OFFLINETOONLINEMETA._serialized_start=697 + _JOB_OFFLINETOONLINEMETA._serialized_end=738 + _JOB_STREAMTOONLINEMETA._serialized_start=740 + _JOB_STREAMTOONLINEMETA._serialized_end=780 + _STARTOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=791 + _STARTOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=988 + _STARTOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=991 + _STARTOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1134 + _STARTSTREAMINGESTIONJOBREQUEST._serialized_start=1136 + _STARTSTREAMINGESTIONJOBREQUEST._serialized_end=1205 + _STARTSTREAMINGESTIONJOBRESPONSE._serialized_start=1207 + _STARTSTREAMINGESTIONJOBRESPONSE._serialized_end=1252 + _SCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=1255 + _SCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=1387 + _SCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=1389 + _SCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1434 + _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_start=1436 + _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBREQUEST._serialized_end=1519 + _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_start=1521 + _UNSCHEDULEOFFLINETOONLINEINGESTIONJOBRESPONSE._serialized_end=1568 + _GETHISTORICALFEATURESREQUEST._serialized_start=1571 + _GETHISTORICALFEATURESREQUEST._serialized_end=1735 + _GETHISTORICALFEATURESRESPONSE._serialized_start=1738 + _GETHISTORICALFEATURESRESPONSE._serialized_end=1875 + _LISTJOBSREQUEST._serialized_start=1877 + _LISTJOBSREQUEST._serialized_end=1999 + _LISTSCHEDULEDJOBSREQUEST._serialized_start=2001 + _LISTSCHEDULEDJOBSREQUEST._serialized_end=2064 + _LISTJOBSRESPONSE._serialized_start=2066 + _LISTJOBSRESPONSE._serialized_end=2120 + _LISTSCHEDULEDJOBSRESPONSE._serialized_start=2122 + _LISTSCHEDULEDJOBSRESPONSE._serialized_end=2194 + _GETJOBREQUEST._serialized_start=2196 + _GETJOBREQUEST._serialized_end=2227 + _GETJOBRESPONSE._serialized_start=2229 + _GETJOBRESPONSE._serialized_end=2280 + _CANCELJOBREQUEST._serialized_start=2282 + _CANCELJOBREQUEST._serialized_end=2316 + _CANCELJOBRESPONSE._serialized_start=2318 + _CANCELJOBRESPONSE._serialized_end=2337 + _UNSCHEDULEJOBREQUEST._serialized_start=2339 + _UNSCHEDULEJOBREQUEST._serialized_end=2377 + _UNSCHEDULEJOBRESPONSE._serialized_start=2379 + _UNSCHEDULEJOBRESPONSE._serialized_end=2402 + _GETHEALTHMETRICSREQUEST._serialized_start=2404 + _GETHEALTHMETRICSREQUEST._serialized_end=2467 + _GETHEALTHMETRICSRESPONSE._serialized_start=2469 + _GETHEALTHMETRICSRESPONSE._serialized_end=2527 + _JOBSERVICE._serialized_start=2756 + _JOBSERVICE._serialized_end=4049 # @@protoc_insertion_point(module_scope) diff --git a/caraml-store-sdk/python/feast_spark/api/JobService_pb2.pyi b/caraml-store-sdk/python/feast_spark/api/JobService_pb2.pyi index 25e9843..648a608 100644 --- a/caraml-store-sdk/python/feast_spark/api/JobService_pb2.pyi +++ b/caraml-store-sdk/python/feast_spark/api/JobService_pb2.pyi @@ -1,253 +1,635 @@ -from feast.core import DataSource_pb2 as _DataSource_pb2 -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -BATCH_INGESTION_JOB: JobType -DESCRIPTOR: _descriptor.FileDescriptor -INVALID_JOB: JobType -JOB_STATUS_DONE: JobStatus -JOB_STATUS_ERROR: JobStatus -JOB_STATUS_INVALID: JobStatus -JOB_STATUS_PENDING: JobStatus -JOB_STATUS_RUNNING: JobStatus -RETRIEVAL_JOB: JobType -STREAM_INGESTION_JOB: JobType - -class CancelJobRequest(_message.Message): - __slots__ = ["job_id"] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - -class CancelJobResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class GetHealthMetricsRequest(_message.Message): - __slots__ = ["project", "table_names"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAMES_FIELD_NUMBER: _ClassVar[int] - project: str - table_names: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, project: _Optional[str] = ..., table_names: _Optional[_Iterable[str]] = ...) -> None: ... - -class GetHealthMetricsResponse(_message.Message): - __slots__ = ["failed", "passed"] - FAILED_FIELD_NUMBER: _ClassVar[int] - PASSED_FIELD_NUMBER: _ClassVar[int] - failed: _containers.RepeatedScalarFieldContainer[str] - passed: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, passed: _Optional[_Iterable[str]] = ..., failed: _Optional[_Iterable[str]] = ...) -> None: ... - -class GetHistoricalFeaturesRequest(_message.Message): - __slots__ = ["entity_source", "feature_refs", "output_format", "output_location", "project"] - ENTITY_SOURCE_FIELD_NUMBER: _ClassVar[int] - FEATURE_REFS_FIELD_NUMBER: _ClassVar[int] - OUTPUT_FORMAT_FIELD_NUMBER: _ClassVar[int] - OUTPUT_LOCATION_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - entity_source: _DataSource_pb2.DataSource - feature_refs: _containers.RepeatedScalarFieldContainer[str] - output_format: str - output_location: str - project: str - def __init__(self, feature_refs: _Optional[_Iterable[str]] = ..., entity_source: _Optional[_Union[_DataSource_pb2.DataSource, _Mapping]] = ..., project: _Optional[str] = ..., output_location: _Optional[str] = ..., output_format: _Optional[str] = ...) -> None: ... - -class GetHistoricalFeaturesResponse(_message.Message): - __slots__ = ["id", "job_start_time", "log_uri", "output_file_uri"] - ID_FIELD_NUMBER: _ClassVar[int] - JOB_START_TIME_FIELD_NUMBER: _ClassVar[int] - LOG_URI_FIELD_NUMBER: _ClassVar[int] - OUTPUT_FILE_URI_FIELD_NUMBER: _ClassVar[int] - id: str - job_start_time: _timestamp_pb2.Timestamp - log_uri: str - output_file_uri: str - def __init__(self, id: _Optional[str] = ..., output_file_uri: _Optional[str] = ..., job_start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., log_uri: _Optional[str] = ...) -> None: ... - -class GetJobRequest(_message.Message): - __slots__ = ["job_id"] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - -class GetJobResponse(_message.Message): - __slots__ = ["job"] - JOB_FIELD_NUMBER: _ClassVar[int] - job: Job - def __init__(self, job: _Optional[_Union[Job, _Mapping]] = ...) -> None: ... - -class Job(_message.Message): - __slots__ = ["batch_ingestion", "error_message", "hash", "id", "log_uri", "project", "retrieval", "start_time", "status", "stream_ingestion", "type"] - class OfflineToOnlineMeta(_message.Message): - __slots__ = ["table_name"] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - table_name: str - def __init__(self, table_name: _Optional[str] = ...) -> None: ... - class RetrievalJobMeta(_message.Message): - __slots__ = ["output_location"] - OUTPUT_LOCATION_FIELD_NUMBER: _ClassVar[int] - output_location: str - def __init__(self, output_location: _Optional[str] = ...) -> None: ... - class StreamToOnlineMeta(_message.Message): - __slots__ = ["table_name"] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - table_name: str - def __init__(self, table_name: _Optional[str] = ...) -> None: ... - BATCH_INGESTION_FIELD_NUMBER: _ClassVar[int] - ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] - HASH_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - LOG_URI_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - RETRIEVAL_FIELD_NUMBER: _ClassVar[int] - START_TIME_FIELD_NUMBER: _ClassVar[int] - STATUS_FIELD_NUMBER: _ClassVar[int] - STREAM_INGESTION_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - batch_ingestion: Job.OfflineToOnlineMeta - error_message: str - hash: str - id: str - log_uri: str - project: str - retrieval: Job.RetrievalJobMeta - start_time: _timestamp_pb2.Timestamp - status: JobStatus - stream_ingestion: Job.StreamToOnlineMeta - type: JobType - def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., status: _Optional[_Union[JobStatus, str]] = ..., hash: _Optional[str] = ..., start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., retrieval: _Optional[_Union[Job.RetrievalJobMeta, _Mapping]] = ..., batch_ingestion: _Optional[_Union[Job.OfflineToOnlineMeta, _Mapping]] = ..., stream_ingestion: _Optional[_Union[Job.StreamToOnlineMeta, _Mapping]] = ..., log_uri: _Optional[str] = ..., error_message: _Optional[str] = ..., project: _Optional[str] = ...) -> None: ... - -class ListJobsRequest(_message.Message): - __slots__ = ["include_terminated", "project", "table_name", "type"] - INCLUDE_TERMINATED_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - include_terminated: bool - project: str - table_name: str - type: JobType - def __init__(self, include_terminated: bool = ..., table_name: _Optional[str] = ..., project: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ...) -> None: ... - -class ListJobsResponse(_message.Message): - __slots__ = ["jobs"] - JOBS_FIELD_NUMBER: _ClassVar[int] - jobs: _containers.RepeatedCompositeFieldContainer[Job] - def __init__(self, jobs: _Optional[_Iterable[_Union[Job, _Mapping]]] = ...) -> None: ... - -class ListScheduledJobsRequest(_message.Message): - __slots__ = ["project", "table_name"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - project: str - table_name: str - def __init__(self, project: _Optional[str] = ..., table_name: _Optional[str] = ...) -> None: ... - -class ListScheduledJobsResponse(_message.Message): - __slots__ = ["jobs"] - JOBS_FIELD_NUMBER: _ClassVar[int] - jobs: _containers.RepeatedCompositeFieldContainer[ScheduledJob] - def __init__(self, jobs: _Optional[_Iterable[_Union[ScheduledJob, _Mapping]]] = ...) -> None: ... - -class ScheduleOfflineToOnlineIngestionJobRequest(_message.Message): - __slots__ = ["cron_schedule", "ingestion_timespan", "project", "table_name"] - CRON_SCHEDULE_FIELD_NUMBER: _ClassVar[int] - INGESTION_TIMESPAN_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - cron_schedule: str - ingestion_timespan: int - project: str - table_name: str - def __init__(self, project: _Optional[str] = ..., table_name: _Optional[str] = ..., ingestion_timespan: _Optional[int] = ..., cron_schedule: _Optional[str] = ...) -> None: ... - -class ScheduleOfflineToOnlineIngestionJobResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class ScheduledJob(_message.Message): - __slots__ = ["cron_schedule", "id", "ingestion_timespan", "project", "table_name"] - CRON_SCHEDULE_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - INGESTION_TIMESPAN_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - cron_schedule: str - id: str - ingestion_timespan: int - project: str - table_name: str - def __init__(self, id: _Optional[str] = ..., table_name: _Optional[str] = ..., project: _Optional[str] = ..., ingestion_timespan: _Optional[int] = ..., cron_schedule: _Optional[str] = ...) -> None: ... - -class StartOfflineToOnlineIngestionJobRequest(_message.Message): - __slots__ = ["delta_ingestion", "end_date", "project", "start_date", "table_name"] - DELTA_INGESTION_FIELD_NUMBER: _ClassVar[int] - END_DATE_FIELD_NUMBER: _ClassVar[int] - PROJECT_FIELD_NUMBER: _ClassVar[int] - START_DATE_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - delta_ingestion: bool - end_date: _timestamp_pb2.Timestamp - project: str - start_date: _timestamp_pb2.Timestamp - table_name: str - def __init__(self, project: _Optional[str] = ..., table_name: _Optional[str] = ..., start_date: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end_date: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., delta_ingestion: bool = ...) -> None: ... - -class StartOfflineToOnlineIngestionJobResponse(_message.Message): - __slots__ = ["id", "job_start_time", "log_uri", "table_name"] - ID_FIELD_NUMBER: _ClassVar[int] - JOB_START_TIME_FIELD_NUMBER: _ClassVar[int] - LOG_URI_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - id: str - job_start_time: _timestamp_pb2.Timestamp - log_uri: str - table_name: str - def __init__(self, id: _Optional[str] = ..., job_start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., table_name: _Optional[str] = ..., log_uri: _Optional[str] = ...) -> None: ... - -class StartStreamIngestionJobRequest(_message.Message): - __slots__ = ["project", "table_name"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - project: str - table_name: str - def __init__(self, project: _Optional[str] = ..., table_name: _Optional[str] = ...) -> None: ... - -class StartStreamIngestionJobResponse(_message.Message): - __slots__ = ["id"] - ID_FIELD_NUMBER: _ClassVar[int] - id: str - def __init__(self, id: _Optional[str] = ...) -> None: ... - -class UnscheduleJobRequest(_message.Message): - __slots__ = ["job_id"] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - -class UnscheduleJobResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class UnscheduleOfflineToOnlineIngestionJobRequest(_message.Message): - __slots__ = ["project", "table_name"] - PROJECT_FIELD_NUMBER: _ClassVar[int] - TABLE_NAME_FIELD_NUMBER: _ClassVar[int] - project: str - table_name: str - def __init__(self, project: _Optional[str] = ..., table_name: _Optional[str] = ...) -> None: ... - -class UnscheduleOfflineToOnlineIngestionJobResponse(_message.Message): - __slots__ = [] - def __init__(self) -> None: ... - -class JobType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - -class JobStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_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 _JobType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _JobTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_JobType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID_JOB: _JobType.ValueType # 0 + BATCH_INGESTION_JOB: _JobType.ValueType # 1 + STREAM_INGESTION_JOB: _JobType.ValueType # 2 + RETRIEVAL_JOB: _JobType.ValueType # 4 + +class JobType(_JobType, metaclass=_JobTypeEnumTypeWrapper): ... + +INVALID_JOB: JobType.ValueType # 0 +BATCH_INGESTION_JOB: JobType.ValueType # 1 +STREAM_INGESTION_JOB: JobType.ValueType # 2 +RETRIEVAL_JOB: JobType.ValueType # 4 +global___JobType = JobType + +class _JobStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _JobStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_JobStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + JOB_STATUS_INVALID: _JobStatus.ValueType # 0 + JOB_STATUS_PENDING: _JobStatus.ValueType # 1 + """The Job has be registered and waiting to get scheduled to run""" + JOB_STATUS_RUNNING: _JobStatus.ValueType # 2 + """The Job is currently processing its task""" + JOB_STATUS_DONE: _JobStatus.ValueType # 3 + """The Job has successfully completed its task""" + JOB_STATUS_ERROR: _JobStatus.ValueType # 4 + """The Job has encountered an error while processing its task""" + +class JobStatus(_JobStatus, metaclass=_JobStatusEnumTypeWrapper): ... + +JOB_STATUS_INVALID: JobStatus.ValueType # 0 +JOB_STATUS_PENDING: JobStatus.ValueType # 1 +"""The Job has be registered and waiting to get scheduled to run""" +JOB_STATUS_RUNNING: JobStatus.ValueType # 2 +"""The Job is currently processing its task""" +JOB_STATUS_DONE: JobStatus.ValueType # 3 +"""The Job has successfully completed its task""" +JOB_STATUS_ERROR: JobStatus.ValueType # 4 +"""The Job has encountered an error while processing its task""" +global___JobStatus = JobStatus + +@typing_extensions.final +class ScheduledJob(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + INGESTION_TIMESPAN_FIELD_NUMBER: builtins.int + CRON_SCHEDULE_FIELD_NUMBER: builtins.int + id: builtins.str + """Identifier of the Job""" + table_name: builtins.str + project: builtins.str + ingestion_timespan: builtins.int + """Timespan of the ingested data per job, in days. The data from end of the day - timespan till end of the day will be ingested. Eg. if the job execution date is 10/4/2021, and ingestion timespan is 2, then data from 9/4/2021 00:00 to 10/4/2021 23:59 (inclusive) will be ingested.""" + cron_schedule: builtins.str + """Crontab string. Eg. 0 13 * * *""" + def __init__( + self, + *, + id: builtins.str = ..., + table_name: builtins.str = ..., + project: builtins.str = ..., + ingestion_timespan: builtins.int = ..., + cron_schedule: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["cron_schedule", b"cron_schedule", "id", b"id", "ingestion_timespan", b"ingestion_timespan", "project", b"project", "table_name", b"table_name"]) -> None: ... + +global___ScheduledJob = ScheduledJob + +@typing_extensions.final +class Job(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class RetrievalJobMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OUTPUT_LOCATION_FIELD_NUMBER: builtins.int + output_location: builtins.str + def __init__( + self, + *, + output_location: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["output_location", b"output_location"]) -> None: ... + + @typing_extensions.final + class OfflineToOnlineMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_NAME_FIELD_NUMBER: builtins.int + table_name: builtins.str + def __init__( + self, + *, + table_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... + + @typing_extensions.final + class StreamToOnlineMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TABLE_NAME_FIELD_NUMBER: builtins.int + table_name: builtins.str + def __init__( + self, + *, + table_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... + + ID_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + HASH_FIELD_NUMBER: builtins.int + START_TIME_FIELD_NUMBER: builtins.int + RETRIEVAL_FIELD_NUMBER: builtins.int + BATCH_INGESTION_FIELD_NUMBER: builtins.int + STREAM_INGESTION_FIELD_NUMBER: builtins.int + LOG_URI_FIELD_NUMBER: builtins.int + ERROR_MESSAGE_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + id: builtins.str + """Identifier of the Job""" + type: global___JobType.ValueType + """Type of the Job""" + status: global___JobStatus.ValueType + """Current job status""" + hash: builtins.str + """Deterministic hash of the Job""" + @property + def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Start time of the Job""" + @property + def retrieval(self) -> global___Job.RetrievalJobMeta: ... + @property + def batch_ingestion(self) -> global___Job.OfflineToOnlineMeta: ... + @property + def stream_ingestion(self) -> global___Job.StreamToOnlineMeta: ... + log_uri: builtins.str + """Path to Spark job logs, if available""" + error_message: builtins.str + """Spark job error message, if available""" + project: builtins.str + """Project""" + def __init__( + self, + *, + id: builtins.str = ..., + type: global___JobType.ValueType = ..., + status: global___JobStatus.ValueType = ..., + hash: builtins.str = ..., + start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + retrieval: global___Job.RetrievalJobMeta | None = ..., + batch_ingestion: global___Job.OfflineToOnlineMeta | None = ..., + stream_ingestion: global___Job.StreamToOnlineMeta | None = ..., + log_uri: builtins.str = ..., + error_message: builtins.str = ..., + project: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["batch_ingestion", b"batch_ingestion", "meta", b"meta", "retrieval", b"retrieval", "start_time", b"start_time", "stream_ingestion", b"stream_ingestion"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["batch_ingestion", b"batch_ingestion", "error_message", b"error_message", "hash", b"hash", "id", b"id", "log_uri", b"log_uri", "meta", b"meta", "project", b"project", "retrieval", b"retrieval", "start_time", b"start_time", "status", b"status", "stream_ingestion", b"stream_ingestion", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["meta", b"meta"]) -> typing_extensions.Literal["retrieval", "batch_ingestion", "stream_ingestion"] | None: ... + +global___Job = Job + +@typing_extensions.final +class StartOfflineToOnlineIngestionJobRequest(google.protobuf.message.Message): + """Ingest data from offline store into online store""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + START_DATE_FIELD_NUMBER: builtins.int + END_DATE_FIELD_NUMBER: builtins.int + DELTA_INGESTION_FIELD_NUMBER: builtins.int + project: builtins.str + """Feature table to ingest""" + table_name: builtins.str + @property + def start_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Start of time range for source data from offline store""" + @property + def end_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + """End of time range for source data from offline store""" + delta_ingestion: builtins.bool + """optional setting for delta ingestion""" + def __init__( + self, + *, + project: builtins.str = ..., + table_name: builtins.str = ..., + start_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + end_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + delta_ingestion: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["end_date", b"end_date", "start_date", b"start_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["delta_ingestion", b"delta_ingestion", "end_date", b"end_date", "project", b"project", "start_date", b"start_date", "table_name", b"table_name"]) -> None: ... + +global___StartOfflineToOnlineIngestionJobRequest = StartOfflineToOnlineIngestionJobRequest + +@typing_extensions.final +class StartOfflineToOnlineIngestionJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + JOB_START_TIME_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + LOG_URI_FIELD_NUMBER: builtins.int + id: builtins.str + """Job ID assigned by Feast""" + @property + def job_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Job start time""" + table_name: builtins.str + """Feature table associated with the job""" + log_uri: builtins.str + """Path to Spark job logs, if available""" + def __init__( + self, + *, + id: builtins.str = ..., + job_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + table_name: builtins.str = ..., + log_uri: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["job_start_time", b"job_start_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "job_start_time", b"job_start_time", "log_uri", b"log_uri", "table_name", b"table_name"]) -> None: ... + +global___StartOfflineToOnlineIngestionJobResponse = StartOfflineToOnlineIngestionJobResponse + +@typing_extensions.final +class StartStreamIngestionJobRequest(google.protobuf.message.Message): + """Ingest data from streaming source into online store""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + project: builtins.str + """Feature table to ingest""" + table_name: builtins.str + def __init__( + self, + *, + project: builtins.str = ..., + table_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "table_name", b"table_name"]) -> None: ... + +global___StartStreamIngestionJobRequest = StartStreamIngestionJobRequest + +@typing_extensions.final +class StartStreamIngestionJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + id: builtins.str + """Job ID assigned by Feast""" + def __init__( + self, + *, + id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["id", b"id"]) -> None: ... + +global___StartStreamIngestionJobResponse = StartStreamIngestionJobResponse + +@typing_extensions.final +class ScheduleOfflineToOnlineIngestionJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + INGESTION_TIMESPAN_FIELD_NUMBER: builtins.int + CRON_SCHEDULE_FIELD_NUMBER: builtins.int + project: builtins.str + """Feature table to ingest""" + table_name: builtins.str + ingestion_timespan: builtins.int + """Timespan of the ingested data per job, in days. The data from end of the day - timespan till end of the day will be ingested. Eg. if the job execution date is 10/4/2021, and ingestion timespan is 2, then data from 9/4/2021 00:00 to 10/4/2021 23:59 (inclusive) will be ingested.""" + cron_schedule: builtins.str + """Crontab string. Eg. 0 13 * * *""" + def __init__( + self, + *, + project: builtins.str = ..., + table_name: builtins.str = ..., + ingestion_timespan: builtins.int = ..., + cron_schedule: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["cron_schedule", b"cron_schedule", "ingestion_timespan", b"ingestion_timespan", "project", b"project", "table_name", b"table_name"]) -> None: ... + +global___ScheduleOfflineToOnlineIngestionJobRequest = ScheduleOfflineToOnlineIngestionJobRequest + +@typing_extensions.final +class ScheduleOfflineToOnlineIngestionJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ScheduleOfflineToOnlineIngestionJobResponse = ScheduleOfflineToOnlineIngestionJobResponse + +@typing_extensions.final +class UnscheduleOfflineToOnlineIngestionJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + project: builtins.str + table_name: builtins.str + def __init__( + self, + *, + project: builtins.str = ..., + table_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "table_name", b"table_name"]) -> None: ... + +global___UnscheduleOfflineToOnlineIngestionJobRequest = UnscheduleOfflineToOnlineIngestionJobRequest + +@typing_extensions.final +class UnscheduleOfflineToOnlineIngestionJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UnscheduleOfflineToOnlineIngestionJobResponse = UnscheduleOfflineToOnlineIngestionJobResponse + +@typing_extensions.final +class GetHistoricalFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_REFS_FIELD_NUMBER: builtins.int + ENTITY_SOURCE_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + OUTPUT_LOCATION_FIELD_NUMBER: builtins.int + OUTPUT_FORMAT_FIELD_NUMBER: builtins.int + @property + def feature_refs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """List of feature references that are being retrieved""" + @property + def entity_source(self) -> feast.core.DataSource_pb2.DataSource: + """Batch DataSource that can be used to obtain entity values for historical retrieval. + For each entity value, a feature value will be retrieved for that value/timestamp + Only 'BATCH_*' source types are supported. + Currently only BATCH_FILE source type is supported. + """ + project: builtins.str + """Optional field to specify project name override. If specified, uses the + given project for retrieval. Overrides the projects specified in + Feature References if both are specified. + """ + output_location: builtins.str + """Specifies the path in a bucket to write the exported feature data files + Export to AWS S3 - s3://path/to/features + Export to GCP GCS - gs://path/to/features + """ + output_format: builtins.str + """Specify format name for output, eg. parquet""" + def __init__( + self, + *, + feature_refs: collections.abc.Iterable[builtins.str] | None = ..., + entity_source: feast.core.DataSource_pb2.DataSource | None = ..., + project: builtins.str = ..., + output_location: builtins.str = ..., + output_format: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["entity_source", b"entity_source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entity_source", b"entity_source", "feature_refs", b"feature_refs", "output_format", b"output_format", "output_location", b"output_location", "project", b"project"]) -> None: ... + +global___GetHistoricalFeaturesRequest = GetHistoricalFeaturesRequest + +@typing_extensions.final +class GetHistoricalFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + OUTPUT_FILE_URI_FIELD_NUMBER: builtins.int + JOB_START_TIME_FIELD_NUMBER: builtins.int + LOG_URI_FIELD_NUMBER: builtins.int + id: builtins.str + """Export Job with ID assigned by Feast""" + output_file_uri: builtins.str + """Uri to the join result output file""" + @property + def job_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Job start time""" + log_uri: builtins.str + """Path to Spark job logs, if available""" + def __init__( + self, + *, + id: builtins.str = ..., + output_file_uri: builtins.str = ..., + job_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + log_uri: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["job_start_time", b"job_start_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "job_start_time", b"job_start_time", "log_uri", b"log_uri", "output_file_uri", b"output_file_uri"]) -> None: ... + +global___GetHistoricalFeaturesResponse = GetHistoricalFeaturesResponse + +@typing_extensions.final +class ListJobsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INCLUDE_TERMINATED_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + include_terminated: builtins.bool + table_name: builtins.str + project: builtins.str + type: global___JobType.ValueType + def __init__( + self, + *, + include_terminated: builtins.bool = ..., + table_name: builtins.str = ..., + project: builtins.str = ..., + type: global___JobType.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["include_terminated", b"include_terminated", "project", b"project", "table_name", b"table_name", "type", b"type"]) -> None: ... + +global___ListJobsRequest = ListJobsRequest + +@typing_extensions.final +class ListScheduledJobsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAME_FIELD_NUMBER: builtins.int + project: builtins.str + table_name: builtins.str + def __init__( + self, + *, + project: builtins.str = ..., + table_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "table_name", b"table_name"]) -> None: ... + +global___ListScheduledJobsRequest = ListScheduledJobsRequest + +@typing_extensions.final +class ListJobsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOBS_FIELD_NUMBER: builtins.int + @property + def jobs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Job]: ... + def __init__( + self, + *, + jobs: collections.abc.Iterable[global___Job] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["jobs", b"jobs"]) -> None: ... + +global___ListJobsResponse = ListJobsResponse + +@typing_extensions.final +class ListScheduledJobsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOBS_FIELD_NUMBER: builtins.int + @property + def jobs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScheduledJob]: ... + def __init__( + self, + *, + jobs: collections.abc.Iterable[global___ScheduledJob] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["jobs", b"jobs"]) -> None: ... + +global___ListScheduledJobsResponse = ListScheduledJobsResponse + +@typing_extensions.final +class GetJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_ID_FIELD_NUMBER: builtins.int + job_id: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["job_id", b"job_id"]) -> None: ... + +global___GetJobRequest = GetJobRequest + +@typing_extensions.final +class GetJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_FIELD_NUMBER: builtins.int + @property + def job(self) -> global___Job: ... + def __init__( + self, + *, + job: global___Job | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["job", b"job"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["job", b"job"]) -> None: ... + +global___GetJobResponse = GetJobResponse + +@typing_extensions.final +class CancelJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_ID_FIELD_NUMBER: builtins.int + job_id: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["job_id", b"job_id"]) -> None: ... + +global___CancelJobRequest = CancelJobRequest + +@typing_extensions.final +class CancelJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___CancelJobResponse = CancelJobResponse + +@typing_extensions.final +class UnscheduleJobRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_ID_FIELD_NUMBER: builtins.int + job_id: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["job_id", b"job_id"]) -> None: ... + +global___UnscheduleJobRequest = UnscheduleJobRequest + +@typing_extensions.final +class UnscheduleJobResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UnscheduleJobResponse = UnscheduleJobResponse + +@typing_extensions.final +class GetHealthMetricsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + TABLE_NAMES_FIELD_NUMBER: builtins.int + project: builtins.str + @property + def table_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + project: builtins.str = ..., + table_names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "table_names", b"table_names"]) -> None: ... + +global___GetHealthMetricsRequest = GetHealthMetricsRequest + +@typing_extensions.final +class GetHealthMetricsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PASSED_FIELD_NUMBER: builtins.int + FAILED_FIELD_NUMBER: builtins.int + @property + def passed(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def failed(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + passed: collections.abc.Iterable[builtins.str] | None = ..., + failed: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["failed", b"failed", "passed", b"passed"]) -> None: ... + +global___GetHealthMetricsResponse = GetHealthMetricsResponse From 647a90f25155485f909f271583f992b1cfa6a7c6 Mon Sep 17 00:00:00 2001 From: Shide Foo Date: Wed, 2 Oct 2024 11:56:26 +0800 Subject: [PATCH 2/2] Generate new go sdk protobuf --- .../go/protos/feast/core/CoreService.pb.go | 2 +- .../protos/feast/core/CoreService_grpc.pb.go | 8 +- .../go/protos/feast/core/DataFormat.pb.go | 2 +- .../go/protos/feast/core/DataSource.pb.go | 2 +- .../go/protos/feast/core/Entity.pb.go | 2 +- .../go/protos/feast/core/Feature.pb.go | 2 +- .../go/protos/feast/core/FeatureTable.pb.go | 2 +- .../protos/feast/core/LegacyJobService.pb.go | 112 ++++++++++ .../feast/core/LegacyJobService_grpc.pb.go | 193 ++++++++++++++++++ .../go/protos/feast/core/OnlineStore.pb.go | 28 +-- .../go/protos/feast/core/SparkOverride.pb.go | 2 +- .../protos/feast/serving/ServingService.pb.go | 2 +- .../feast/serving/ServingService_grpc.pb.go | 8 +- .../go/protos/feast/types/Field.pb.go | 2 +- .../go/protos/feast/types/Value.pb.go | 2 +- .../protos/feast_spark/api/JobService.pb.go | 2 +- .../feast_spark/api/JobService_grpc.pb.go | 8 +- 17 files changed, 347 insertions(+), 32 deletions(-) create mode 100644 caraml-store-sdk/go/protos/feast/core/LegacyJobService.pb.go create mode 100644 caraml-store-sdk/go/protos/feast/core/LegacyJobService_grpc.pb.go diff --git a/caraml-store-sdk/go/protos/feast/core/CoreService.pb.go b/caraml-store-sdk/go/protos/feast/core/CoreService.pb.go index 7f313d3..ea0fea5 100644 --- a/caraml-store-sdk/go/protos/feast/core/CoreService.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/CoreService.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/CoreService.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/CoreService_grpc.pb.go b/caraml-store-sdk/go/protos/feast/core/CoreService_grpc.pb.go index f7050d3..7d081a4 100644 --- a/caraml-store-sdk/go/protos/feast/core/CoreService_grpc.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/CoreService_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc (unknown) +// - protoc v5.27.1 // source: feast/core/CoreService.proto package core @@ -256,7 +256,7 @@ func (c *coreServiceClient) ArchiveOnlineStore(ctx context.Context, in *ArchiveO } // CoreServiceServer is the server API for CoreService service. -// All implementations should embed UnimplementedCoreServiceServer +// All implementations must embed UnimplementedCoreServiceServer // for forward compatibility type CoreServiceServer interface { // Retrieve version information about this Feast deployment @@ -319,9 +319,10 @@ type CoreServiceServer interface { RegisterOnlineStore(context.Context, *RegisterOnlineStoreRequest) (*RegisterOnlineStoreResponse, error) // Archives an online store to mark it deprecated ArchiveOnlineStore(context.Context, *ArchiveOnlineStoreRequest) (*ArchiveOnlineStoreResponse, error) + mustEmbedUnimplementedCoreServiceServer() } -// UnimplementedCoreServiceServer should be embedded to have forward compatible implementations. +// UnimplementedCoreServiceServer must be embedded to have forward compatible implementations. type UnimplementedCoreServiceServer struct { } @@ -373,6 +374,7 @@ func (UnimplementedCoreServiceServer) RegisterOnlineStore(context.Context, *Regi func (UnimplementedCoreServiceServer) ArchiveOnlineStore(context.Context, *ArchiveOnlineStoreRequest) (*ArchiveOnlineStoreResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ArchiveOnlineStore not implemented") } +func (UnimplementedCoreServiceServer) mustEmbedUnimplementedCoreServiceServer() {} // UnsafeCoreServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CoreServiceServer will diff --git a/caraml-store-sdk/go/protos/feast/core/DataFormat.pb.go b/caraml-store-sdk/go/protos/feast/core/DataFormat.pb.go index 4644089..7a21bb7 100644 --- a/caraml-store-sdk/go/protos/feast/core/DataFormat.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/DataFormat.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/DataFormat.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/DataSource.pb.go b/caraml-store-sdk/go/protos/feast/core/DataSource.pb.go index f1dea91..0ce77ce 100644 --- a/caraml-store-sdk/go/protos/feast/core/DataSource.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/DataSource.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/DataSource.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/Entity.pb.go b/caraml-store-sdk/go/protos/feast/core/Entity.pb.go index 1566eea..0aa5918 100644 --- a/caraml-store-sdk/go/protos/feast/core/Entity.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/Entity.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/Entity.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/Feature.pb.go b/caraml-store-sdk/go/protos/feast/core/Feature.pb.go index d6d9ec2..8c67fb0 100644 --- a/caraml-store-sdk/go/protos/feast/core/Feature.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/Feature.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/Feature.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/FeatureTable.pb.go b/caraml-store-sdk/go/protos/feast/core/FeatureTable.pb.go index 4c28c57..8f27cab 100644 --- a/caraml-store-sdk/go/protos/feast/core/FeatureTable.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/FeatureTable.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/FeatureTable.proto package core diff --git a/caraml-store-sdk/go/protos/feast/core/LegacyJobService.pb.go b/caraml-store-sdk/go/protos/feast/core/LegacyJobService.pb.go new file mode 100644 index 0000000..f1719bd --- /dev/null +++ b/caraml-store-sdk/go/protos/feast/core/LegacyJobService.pb.go @@ -0,0 +1,112 @@ +// Legacy compatibility endpoint for older version of feast client. +// The new endpoint is defined in feast_spark/api/JobService.proto + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v5.27.1 +// source: feast/core/LegacyJobService.proto + +package core + +import ( + api "github.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast_spark/api" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var File_feast_core_LegacyJobService_proto protoreflect.FileDescriptor + +var file_feast_core_LegacyJobService_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x4c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x1a, + 0x20, 0x66, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x32, 0xe9, 0x02, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x97, 0x01, 0x0a, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x38, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x6f, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, + 0x63, 0x61, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, + 0x61, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x66, + 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x66, + 0x65, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7d, 0x0a, + 0x20, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x42, 0x0f, 0x4a, 0x6f, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, + 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x2f, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var file_feast_core_LegacyJobService_proto_goTypes = []interface{}{ + (*api.StartOfflineToOnlineIngestionJobRequest)(nil), // 0: feast_spark.api.StartOfflineToOnlineIngestionJobRequest + (*api.GetHistoricalFeaturesRequest)(nil), // 1: feast_spark.api.GetHistoricalFeaturesRequest + (*api.GetJobRequest)(nil), // 2: feast_spark.api.GetJobRequest + (*api.StartOfflineToOnlineIngestionJobResponse)(nil), // 3: feast_spark.api.StartOfflineToOnlineIngestionJobResponse + (*api.GetHistoricalFeaturesResponse)(nil), // 4: feast_spark.api.GetHistoricalFeaturesResponse + (*api.GetJobResponse)(nil), // 5: feast_spark.api.GetJobResponse +} +var file_feast_core_LegacyJobService_proto_depIdxs = []int32{ + 0, // 0: feast.core.JobService.StartOfflineToOnlineIngestionJob:input_type -> feast_spark.api.StartOfflineToOnlineIngestionJobRequest + 1, // 1: feast.core.JobService.GetHistoricalFeatures:input_type -> feast_spark.api.GetHistoricalFeaturesRequest + 2, // 2: feast.core.JobService.GetJob:input_type -> feast_spark.api.GetJobRequest + 3, // 3: feast.core.JobService.StartOfflineToOnlineIngestionJob:output_type -> feast_spark.api.StartOfflineToOnlineIngestionJobResponse + 4, // 4: feast.core.JobService.GetHistoricalFeatures:output_type -> feast_spark.api.GetHistoricalFeaturesResponse + 5, // 5: feast.core.JobService.GetJob:output_type -> feast_spark.api.GetJobResponse + 3, // [3:6] is the sub-list for method output_type + 0, // [0:3] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_feast_core_LegacyJobService_proto_init() } +func file_feast_core_LegacyJobService_proto_init() { + if File_feast_core_LegacyJobService_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_feast_core_LegacyJobService_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_feast_core_LegacyJobService_proto_goTypes, + DependencyIndexes: file_feast_core_LegacyJobService_proto_depIdxs, + }.Build() + File_feast_core_LegacyJobService_proto = out.File + file_feast_core_LegacyJobService_proto_rawDesc = nil + file_feast_core_LegacyJobService_proto_goTypes = nil + file_feast_core_LegacyJobService_proto_depIdxs = nil +} diff --git a/caraml-store-sdk/go/protos/feast/core/LegacyJobService_grpc.pb.go b/caraml-store-sdk/go/protos/feast/core/LegacyJobService_grpc.pb.go new file mode 100644 index 0000000..67f44f5 --- /dev/null +++ b/caraml-store-sdk/go/protos/feast/core/LegacyJobService_grpc.pb.go @@ -0,0 +1,193 @@ +// Legacy compatibility endpoint for older version of feast client. +// The new endpoint is defined in feast_spark/api/JobService.proto + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v5.27.1 +// source: feast/core/LegacyJobService.proto + +package core + +import ( + context "context" + api "github.com/caraml-dev/caraml-store/caraml-store-sdk/go/protos/feast_spark/api" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + JobService_StartOfflineToOnlineIngestionJob_FullMethodName = "/feast.core.JobService/StartOfflineToOnlineIngestionJob" + JobService_GetHistoricalFeatures_FullMethodName = "/feast.core.JobService/GetHistoricalFeatures" + JobService_GetJob_FullMethodName = "/feast.core.JobService/GetJob" +) + +// JobServiceClient is the client API for JobService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type JobServiceClient interface { + // Start job to ingest data from offline store into online store + StartOfflineToOnlineIngestionJob(ctx context.Context, in *api.StartOfflineToOnlineIngestionJobRequest, opts ...grpc.CallOption) (*api.StartOfflineToOnlineIngestionJobResponse, error) + // Produce a training dataset, return a job id that will provide a file reference + GetHistoricalFeatures(ctx context.Context, in *api.GetHistoricalFeaturesRequest, opts ...grpc.CallOption) (*api.GetHistoricalFeaturesResponse, error) + // Get details of a single job + GetJob(ctx context.Context, in *api.GetJobRequest, opts ...grpc.CallOption) (*api.GetJobResponse, error) +} + +type jobServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewJobServiceClient(cc grpc.ClientConnInterface) JobServiceClient { + return &jobServiceClient{cc} +} + +func (c *jobServiceClient) StartOfflineToOnlineIngestionJob(ctx context.Context, in *api.StartOfflineToOnlineIngestionJobRequest, opts ...grpc.CallOption) (*api.StartOfflineToOnlineIngestionJobResponse, error) { + out := new(api.StartOfflineToOnlineIngestionJobResponse) + err := c.cc.Invoke(ctx, JobService_StartOfflineToOnlineIngestionJob_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *jobServiceClient) GetHistoricalFeatures(ctx context.Context, in *api.GetHistoricalFeaturesRequest, opts ...grpc.CallOption) (*api.GetHistoricalFeaturesResponse, error) { + out := new(api.GetHistoricalFeaturesResponse) + err := c.cc.Invoke(ctx, JobService_GetHistoricalFeatures_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *jobServiceClient) GetJob(ctx context.Context, in *api.GetJobRequest, opts ...grpc.CallOption) (*api.GetJobResponse, error) { + out := new(api.GetJobResponse) + err := c.cc.Invoke(ctx, JobService_GetJob_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// JobServiceServer is the server API for JobService service. +// All implementations must embed UnimplementedJobServiceServer +// for forward compatibility +type JobServiceServer interface { + // Start job to ingest data from offline store into online store + StartOfflineToOnlineIngestionJob(context.Context, *api.StartOfflineToOnlineIngestionJobRequest) (*api.StartOfflineToOnlineIngestionJobResponse, error) + // Produce a training dataset, return a job id that will provide a file reference + GetHistoricalFeatures(context.Context, *api.GetHistoricalFeaturesRequest) (*api.GetHistoricalFeaturesResponse, error) + // Get details of a single job + GetJob(context.Context, *api.GetJobRequest) (*api.GetJobResponse, error) + mustEmbedUnimplementedJobServiceServer() +} + +// UnimplementedJobServiceServer must be embedded to have forward compatible implementations. +type UnimplementedJobServiceServer struct { +} + +func (UnimplementedJobServiceServer) StartOfflineToOnlineIngestionJob(context.Context, *api.StartOfflineToOnlineIngestionJobRequest) (*api.StartOfflineToOnlineIngestionJobResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StartOfflineToOnlineIngestionJob not implemented") +} +func (UnimplementedJobServiceServer) GetHistoricalFeatures(context.Context, *api.GetHistoricalFeaturesRequest) (*api.GetHistoricalFeaturesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistoricalFeatures not implemented") +} +func (UnimplementedJobServiceServer) GetJob(context.Context, *api.GetJobRequest) (*api.GetJobResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") +} +func (UnimplementedJobServiceServer) mustEmbedUnimplementedJobServiceServer() {} + +// UnsafeJobServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to JobServiceServer will +// result in compilation errors. +type UnsafeJobServiceServer interface { + mustEmbedUnimplementedJobServiceServer() +} + +func RegisterJobServiceServer(s grpc.ServiceRegistrar, srv JobServiceServer) { + s.RegisterService(&JobService_ServiceDesc, srv) +} + +func _JobService_StartOfflineToOnlineIngestionJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(api.StartOfflineToOnlineIngestionJobRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(JobServiceServer).StartOfflineToOnlineIngestionJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: JobService_StartOfflineToOnlineIngestionJob_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(JobServiceServer).StartOfflineToOnlineIngestionJob(ctx, req.(*api.StartOfflineToOnlineIngestionJobRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _JobService_GetHistoricalFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(api.GetHistoricalFeaturesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(JobServiceServer).GetHistoricalFeatures(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: JobService_GetHistoricalFeatures_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(JobServiceServer).GetHistoricalFeatures(ctx, req.(*api.GetHistoricalFeaturesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _JobService_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(api.GetJobRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(JobServiceServer).GetJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: JobService_GetJob_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(JobServiceServer).GetJob(ctx, req.(*api.GetJobRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// JobService_ServiceDesc is the grpc.ServiceDesc for JobService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var JobService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "feast.core.JobService", + HandlerType: (*JobServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "StartOfflineToOnlineIngestionJob", + Handler: _JobService_StartOfflineToOnlineIngestionJob_Handler, + }, + { + MethodName: "GetHistoricalFeatures", + Handler: _JobService_GetHistoricalFeatures_Handler, + }, + { + MethodName: "GetJob", + Handler: _JobService_GetJob_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "feast/core/LegacyJobService.proto", +} diff --git a/caraml-store-sdk/go/protos/feast/core/OnlineStore.pb.go b/caraml-store-sdk/go/protos/feast/core/OnlineStore.pb.go index e06ceda..54973d3 100644 --- a/caraml-store-sdk/go/protos/feast/core/OnlineStore.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/OnlineStore.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/OnlineStore.proto package core @@ -29,6 +29,8 @@ const ( StoreType_BIGTABLE StoreType = 1 // redis in-memory database StoreType_REDIS StoreType = 2 + // HBase database + StoreType_HBASE StoreType = 3 ) // Enum value maps for StoreType. @@ -37,11 +39,13 @@ var ( 0: "UNSET", 1: "BIGTABLE", 2: "REDIS", + 3: "HBASE", } StoreType_value = map[string]int32{ "UNSET": 0, "BIGTABLE": 1, "REDIS": 2, + "HBASE": 3, } ) @@ -154,19 +158,19 @@ var file_feast_core_OnlineStore_proto_rawDesc = []byte{ 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x2f, 0x0a, 0x09, 0x53, 0x74, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3a, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x49, 0x47, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, - 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x44, 0x49, 0x53, 0x10, 0x02, 0x42, 0x7c, 0x0a, 0x1e, 0x64, - 0x65, 0x76, 0x2e, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x10, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, - 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x72, 0x61, - 0x6d, 0x6c, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, - 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x44, 0x49, 0x53, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x48, + 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x42, 0x7c, 0x0a, 0x1e, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x61, + 0x72, 0x61, 0x6d, 0x6c, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x10, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x64, 0x65, + 0x76, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x63, + 0x61, 0x72, 0x61, 0x6d, 0x6c, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, + 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/caraml-store-sdk/go/protos/feast/core/SparkOverride.pb.go b/caraml-store-sdk/go/protos/feast/core/SparkOverride.pb.go index 0d05726..b57b76c 100644 --- a/caraml-store-sdk/go/protos/feast/core/SparkOverride.pb.go +++ b/caraml-store-sdk/go/protos/feast/core/SparkOverride.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/core/SparkOverride.proto package core diff --git a/caraml-store-sdk/go/protos/feast/serving/ServingService.pb.go b/caraml-store-sdk/go/protos/feast/serving/ServingService.pb.go index 1d33604..191d7e0 100644 --- a/caraml-store-sdk/go/protos/feast/serving/ServingService.pb.go +++ b/caraml-store-sdk/go/protos/feast/serving/ServingService.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/serving/ServingService.proto package serving diff --git a/caraml-store-sdk/go/protos/feast/serving/ServingService_grpc.pb.go b/caraml-store-sdk/go/protos/feast/serving/ServingService_grpc.pb.go index 9148f41..a89f2bb 100644 --- a/caraml-store-sdk/go/protos/feast/serving/ServingService_grpc.pb.go +++ b/caraml-store-sdk/go/protos/feast/serving/ServingService_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc (unknown) +// - protoc v5.27.1 // source: feast/serving/ServingService.proto package serving @@ -72,7 +72,7 @@ func (c *servingServiceClient) GetOnlineFeatures(ctx context.Context, in *GetOnl } // ServingServiceServer is the server API for ServingService service. -// All implementations should embed UnimplementedServingServiceServer +// All implementations must embed UnimplementedServingServiceServer // for forward compatibility type ServingServiceServer interface { // Get information about this Feast serving. @@ -81,9 +81,10 @@ type ServingServiceServer interface { GetOnlineFeaturesV2(context.Context, *GetOnlineFeaturesRequest) (*GetOnlineFeaturesResponseV2, error) // Get online features using optimized response message. GetOnlineFeatures(context.Context, *GetOnlineFeaturesRequest) (*GetOnlineFeaturesResponse, error) + mustEmbedUnimplementedServingServiceServer() } -// UnimplementedServingServiceServer should be embedded to have forward compatible implementations. +// UnimplementedServingServiceServer must be embedded to have forward compatible implementations. type UnimplementedServingServiceServer struct { } @@ -96,6 +97,7 @@ func (UnimplementedServingServiceServer) GetOnlineFeaturesV2(context.Context, *G func (UnimplementedServingServiceServer) GetOnlineFeatures(context.Context, *GetOnlineFeaturesRequest) (*GetOnlineFeaturesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOnlineFeatures not implemented") } +func (UnimplementedServingServiceServer) mustEmbedUnimplementedServingServiceServer() {} // UnsafeServingServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ServingServiceServer will diff --git a/caraml-store-sdk/go/protos/feast/types/Field.pb.go b/caraml-store-sdk/go/protos/feast/types/Field.pb.go index f9dd1f7..b7c296b 100644 --- a/caraml-store-sdk/go/protos/feast/types/Field.pb.go +++ b/caraml-store-sdk/go/protos/feast/types/Field.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/types/Field.proto package types diff --git a/caraml-store-sdk/go/protos/feast/types/Value.pb.go b/caraml-store-sdk/go/protos/feast/types/Value.pb.go index f1d1ca8..ef4f283 100644 --- a/caraml-store-sdk/go/protos/feast/types/Value.pb.go +++ b/caraml-store-sdk/go/protos/feast/types/Value.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast/types/Value.proto package types diff --git a/caraml-store-sdk/go/protos/feast_spark/api/JobService.pb.go b/caraml-store-sdk/go/protos/feast_spark/api/JobService.pb.go index 5dfa8f1..375315a 100644 --- a/caraml-store-sdk/go/protos/feast_spark/api/JobService.pb.go +++ b/caraml-store-sdk/go/protos/feast_spark/api/JobService.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc (unknown) +// protoc v5.27.1 // source: feast_spark/api/JobService.proto package api diff --git a/caraml-store-sdk/go/protos/feast_spark/api/JobService_grpc.pb.go b/caraml-store-sdk/go/protos/feast_spark/api/JobService_grpc.pb.go index 385ac0d..fd1fbd0 100644 --- a/caraml-store-sdk/go/protos/feast_spark/api/JobService_grpc.pb.go +++ b/caraml-store-sdk/go/protos/feast_spark/api/JobService_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc (unknown) +// - protoc v5.27.1 // source: feast_spark/api/JobService.proto package api @@ -168,7 +168,7 @@ func (c *jobServiceClient) GetHealthMetrics(ctx context.Context, in *GetHealthMe } // JobServiceServer is the server API for JobService service. -// All implementations should embed UnimplementedJobServiceServer +// All implementations must embed UnimplementedJobServiceServer // for forward compatibility type JobServiceServer interface { // Start job to ingest data from offline store into online store @@ -193,9 +193,10 @@ type JobServiceServer interface { GetJob(context.Context, *GetJobRequest) (*GetJobResponse, error) // Get ingestion health metrics for a Feature Table GetHealthMetrics(context.Context, *GetHealthMetricsRequest) (*GetHealthMetricsResponse, error) + mustEmbedUnimplementedJobServiceServer() } -// UnimplementedJobServiceServer should be embedded to have forward compatible implementations. +// UnimplementedJobServiceServer must be embedded to have forward compatible implementations. type UnimplementedJobServiceServer struct { } @@ -232,6 +233,7 @@ func (UnimplementedJobServiceServer) GetJob(context.Context, *GetJobRequest) (*G func (UnimplementedJobServiceServer) GetHealthMetrics(context.Context, *GetHealthMetricsRequest) (*GetHealthMetricsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHealthMetrics not implemented") } +func (UnimplementedJobServiceServer) mustEmbedUnimplementedJobServiceServer() {} // UnsafeJobServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to JobServiceServer will