frogml 1.2.41__py3-none-any.whl → 1.2.49__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. frogml/__init__.py +1 -1
  2. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.py +52 -0
  3. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2.pyi +208 -0
  4. frogml/_proto/qwak/administration/cluster/v2/cluster_service_pb2_grpc.py +237 -0
  5. frogml/_proto/qwak/administration/v1/environments/environment_pb2.py +29 -0
  6. frogml/_proto/qwak/administration/v1/environments/environment_pb2.pyi +35 -0
  7. frogml/_proto/qwak/administration/v1/environments/environment_pb2_grpc.py +4 -0
  8. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.py +33 -0
  9. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2.pyi +59 -0
  10. frogml/_proto/qwak/administration/v1/environments/environment_service_pb2_grpc.py +67 -0
  11. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.py +33 -0
  12. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2.pyi +76 -0
  13. frogml/_proto/qwak/admiral/secret/v0/account_secret_pb2_grpc.py +4 -0
  14. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +28 -15
  15. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2.pyi +89 -0
  16. frogml/_proto/qwak/admiral/secret/v0/system_secret_service_pb2_grpc.py +102 -0
  17. frogml/_proto/qwak/execution/v1/jobs/job_pb2.py +12 -10
  18. frogml/_proto/qwak/execution/v1/jobs/job_pb2.pyi +40 -3
  19. frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.py +17 -15
  20. frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.pyi +37 -3
  21. frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.py +68 -66
  22. frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.pyi +22 -2
  23. frogml/_proto/qwak/feature_store/serving/metadata_pb2.py +8 -8
  24. frogml/_proto/qwak/feature_store/serving/metadata_pb2.pyi +27 -3
  25. frogml/core/clients/administration/cluster_v2/__init__.py +1 -0
  26. frogml/core/clients/administration/cluster_v2/client.py +122 -0
  27. frogml/core/clients/administration/environment/client.py +28 -0
  28. frogml/core/clients/administration/environment_v1/__init__.py +1 -0
  29. frogml/core/clients/administration/environment_v1/client.py +53 -0
  30. frogml/core/inner/di_configuration/dependency_wiring.py +18 -16
  31. {frogml-1.2.41.dist-info → frogml-1.2.49.dist-info}/METADATA +1 -1
  32. {frogml-1.2.41.dist-info → frogml-1.2.49.dist-info}/RECORD +38 -19
  33. frogml_services_mock/mocks/cluster_v2_service.py +146 -0
  34. frogml_services_mock/mocks/environment_v0_service.py +175 -0
  35. frogml_services_mock/mocks/environment_v1_service.py +37 -0
  36. frogml_services_mock/mocks/frogml_mocks.py +6 -0
  37. frogml_services_mock/services_mock.py +33 -0
  38. {frogml-1.2.41.dist-info → frogml-1.2.49.dist-info}/WHEEL +0 -0
@@ -171,6 +171,8 @@ class JobMetadata(google.protobuf.message.Message):
171
171
 
172
172
  BATCH_INGESTION_METADATA_FIELD_NUMBER: builtins.int
173
173
  BATCH_BACKFILL_INGESTION_METADATA_FIELD_NUMBER: builtins.int
174
+ BATCH_DELETION_METADATA_FIELD_NUMBER: builtins.int
175
+ EXPIRATION_WATERMARK_TIMESTAMP_FIELD_NUMBER: builtins.int
174
176
  @property
175
177
  def batch_ingestion_metadata(self) -> global___BatchIngestionMetadata:
176
178
  """"regular" batch job"""
@@ -179,18 +181,53 @@ class JobMetadata(google.protobuf.message.Message):
179
181
  def batch_backfill_ingestion_metadata(self) -> global___BatchBackfillMetadata:
180
182
  """batch backfill"""
181
183
 
184
+ @property
185
+ def batch_deletion_metadata(self) -> global___BatchDeletionMetadata:
186
+ """Batch Deletion/Expiration job"""
187
+
188
+ @property
189
+ def expiration_watermark_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
182
190
  def __init__(
183
191
  self,
184
192
  *,
185
193
  batch_ingestion_metadata: global___BatchIngestionMetadata | None = ...,
186
194
  batch_backfill_ingestion_metadata: global___BatchBackfillMetadata | None = ...,
195
+ batch_deletion_metadata: global___BatchDeletionMetadata | None = ...,
196
+ expiration_watermark_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
187
197
  ) -> None: ...
188
- def HasField(self, field_name: typing.Literal["batch_backfill_ingestion_metadata", b"batch_backfill_ingestion_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "metadata_type", b"metadata_type"]) -> builtins.bool: ...
189
- def ClearField(self, field_name: typing.Literal["batch_backfill_ingestion_metadata", b"batch_backfill_ingestion_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "metadata_type", b"metadata_type"]) -> None: ...
190
- def WhichOneof(self, oneof_group: typing.Literal["metadata_type", b"metadata_type"]) -> typing.Literal["batch_ingestion_metadata", "batch_backfill_ingestion_metadata"] | None: ...
198
+ def HasField(self, field_name: typing.Literal["batch_backfill_ingestion_metadata", b"batch_backfill_ingestion_metadata", "batch_deletion_metadata", b"batch_deletion_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "data_retention_state_type", b"data_retention_state_type", "expiration_watermark_timestamp", b"expiration_watermark_timestamp", "metadata_type", b"metadata_type"]) -> builtins.bool: ...
199
+ def ClearField(self, field_name: typing.Literal["batch_backfill_ingestion_metadata", b"batch_backfill_ingestion_metadata", "batch_deletion_metadata", b"batch_deletion_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "data_retention_state_type", b"data_retention_state_type", "expiration_watermark_timestamp", b"expiration_watermark_timestamp", "metadata_type", b"metadata_type"]) -> None: ...
200
+ @typing.overload
201
+ def WhichOneof(self, oneof_group: typing.Literal["data_retention_state_type", b"data_retention_state_type"]) -> typing.Literal["expiration_watermark_timestamp"] | None: ...
202
+ @typing.overload
203
+ def WhichOneof(self, oneof_group: typing.Literal["metadata_type", b"metadata_type"]) -> typing.Literal["batch_ingestion_metadata", "batch_backfill_ingestion_metadata", "batch_deletion_metadata"] | None: ...
191
204
 
192
205
  global___JobMetadata = JobMetadata
193
206
 
207
+ @typing.final
208
+ class BatchDeletionMetadata(google.protobuf.message.Message):
209
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
210
+
211
+ DELETION_CANDIDATES_TABLE_FIELD_NUMBER: builtins.int
212
+ DELETION_CANDIDATES_SIZE_IN_BYTES_ON_REDIS_FIELD_NUMBER: builtins.int
213
+ BILLING_SIZE_IN_BYTES_BEFORE_DELETION_FIELD_NUMBER: builtins.int
214
+ deletion_candidates_table: builtins.str
215
+ """The name of the table containing the keys that are currently in the process of being deleted."""
216
+ deletion_candidates_size_in_bytes_on_redis: builtins.int
217
+ """The size (in bytes) of the Redis keys that are being deleted."""
218
+ billing_size_in_bytes_before_deletion: builtins.int
219
+ """The captured billing size (in bytes) before deletion of the Redis keys."""
220
+ def __init__(
221
+ self,
222
+ *,
223
+ deletion_candidates_table: builtins.str = ...,
224
+ deletion_candidates_size_in_bytes_on_redis: builtins.int = ...,
225
+ billing_size_in_bytes_before_deletion: builtins.int = ...,
226
+ ) -> None: ...
227
+ def ClearField(self, field_name: typing.Literal["billing_size_in_bytes_before_deletion", b"billing_size_in_bytes_before_deletion", "deletion_candidates_size_in_bytes_on_redis", b"deletion_candidates_size_in_bytes_on_redis", "deletion_candidates_table", b"deletion_candidates_table"]) -> None: ...
228
+
229
+ global___BatchDeletionMetadata = BatchDeletionMetadata
230
+
194
231
  @typing.final
195
232
  class BatchIngestionMetadata(google.protobuf.message.Message):
196
233
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -16,7 +16,7 @@ from frogml._proto.qwak.execution.v1 import backfill_pb2 as qwak_dot_execution_d
16
16
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+qwak/execution/v1/jobs/reports/report.proto\x12,qwak.feature.store.execution.v1.jobs.reports\x1a qwak/execution/v1/backfill.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"+\n\x12\x46\x61ilureInformation\x12\x15\n\rerror_message\x18\x01 \x01(\t\"\xd5\x01\n\x19\x42\x61tchIngestionJobMetadata\x12\x38\n\x14\x62\x61tch_execution_date\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1bingestion_window_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x19ingestion_window_end_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x03\n\x18\x42\x61tchBackfillJobMetadata\x12\x19\n\x11num_interval_rows\x18\x01 \x01(\x03\x12\x44\n\rbackfill_spec\x18\x02 \x01(\x0b\x32-.qwak.feature.store.execution.v1.BackfillSpec\x12\x41\n\x1doffline_processing_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1boffline_processing_end_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x1conline_processing_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x1aonline_processing_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17last_batch_logical_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"(\n\x14StreamingJobMetadata\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\x04\"!\n\x1fStreamingAggregationJobMetadata\"\xb6\x08\n\tJobReport\x12k\n\x18\x62\x61tch_ingestion_metadata\x18\x01 \x01(\x0b\x32G.qwak.feature.store.execution.v1.jobs.reports.BatchIngestionJobMetadataH\x00\x12\x64\n\x16streaming_job_metadata\x18\x02 \x01(\x0b\x32\x42.qwak.feature.store.execution.v1.jobs.reports.StreamingJobMetadataH\x00\x12t\n\x1bstreaming_aggr_job_metadata\x18\x03 \x01(\x0b\x32M.qwak.feature.store.execution.v1.jobs.reports.StreamingAggregationJobMetadataH\x00\x12m\n\x1b\x62\x61tch_backfill_job_metadata\x18\x04 \x01(\x0b\x32\x46.qwak.feature.store.execution.v1.jobs.reports.BatchBackfillJobMetadataH\x00\x12\x1c\n\x14num_affected_records\x18\x05 \x01(\x03\x12\x32\n\x0erun_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0crun_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\rlegacy_run_id\x18\x08 \x01(\x03H\x01\x12\x16\n\x0c\x65xecution_id\x18\t \x01(\tH\x01\x12\x16\n\x0e\x65nvironment_id\x18\n \x01(\t\x12\x15\n\rfeatureset_id\x18\x0b \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x0c \x01(\t\x12G\n\x06status\x18\r \x01(\x0e\x32\x37.qwak.feature.store.execution.v1.jobs.reports.JobStatus\x12Z\n\njob_labels\x18\x0e \x03(\x0b\x32\x46.qwak.feature.store.execution.v1.jobs.reports.JobReport.JobLabelsEntry\x12\x0e\n\x06job_id\x18\x0f \x01(\t\x12P\n\x04info\x18\x10 \x01(\x0b\x32@.qwak.feature.store.execution.v1.jobs.reports.FailureInformationH\x02\x1a\x30\n\x0eJobLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x13\n\x11job_metadata_typeB\x16\n\x14\x65xecution_identifierB\x0e\n\x0c\x66\x61ilure_info*m\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x16\n\x12JOB_STATUS_SUCCESS\x10\x01\x12\x16\n\x12JOB_STATUS_FAILURE\x10\x02\x12\x18\n\x14JOB_STATUS_TOO_EARLY\x10\x03\x42\x36\n2com.qwak.ai.features.execution.api.v1.jobs.reportsP\x01\x62\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+qwak/execution/v1/jobs/reports/report.proto\x12,qwak.feature.store.execution.v1.jobs.reports\x1a qwak/execution/v1/backfill.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"+\n\x12\x46\x61ilureInformation\x12\x15\n\rerror_message\x18\x01 \x01(\t\"\xa0\x01\n\x18\x42\x61tchDeletionJobMetadata\x12!\n\x19\x64\x65letion_candidates_table\x18\x01 \x01(\t\x12\x32\n*deletion_candidates_size_in_bytes_on_redis\x18\x02 \x01(\x03\x12-\n%billing_size_in_bytes_before_deletion\x18\x03 \x01(\x03\"\xd5\x01\n\x19\x42\x61tchIngestionJobMetadata\x12\x38\n\x14\x62\x61tch_execution_date\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1bingestion_window_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x19ingestion_window_end_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x03\n\x18\x42\x61tchBackfillJobMetadata\x12\x19\n\x11num_interval_rows\x18\x01 \x01(\x03\x12\x44\n\rbackfill_spec\x18\x02 \x01(\x0b\x32-.qwak.feature.store.execution.v1.BackfillSpec\x12\x41\n\x1doffline_processing_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1boffline_processing_end_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x1conline_processing_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x1aonline_processing_end_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17last_batch_logical_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"(\n\x14StreamingJobMetadata\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\x04\"!\n\x1fStreamingAggregationJobMetadata\"\x88\n\n\tJobReport\x12k\n\x18\x62\x61tch_ingestion_metadata\x18\x01 \x01(\x0b\x32G.qwak.feature.store.execution.v1.jobs.reports.BatchIngestionJobMetadataH\x00\x12\x64\n\x16streaming_job_metadata\x18\x02 \x01(\x0b\x32\x42.qwak.feature.store.execution.v1.jobs.reports.StreamingJobMetadataH\x00\x12t\n\x1bstreaming_aggr_job_metadata\x18\x03 \x01(\x0b\x32M.qwak.feature.store.execution.v1.jobs.reports.StreamingAggregationJobMetadataH\x00\x12m\n\x1b\x62\x61tch_backfill_job_metadata\x18\x04 \x01(\x0b\x32\x46.qwak.feature.store.execution.v1.jobs.reports.BatchBackfillJobMetadataH\x00\x12m\n\x1b\x62\x61tch_deletion_job_metadata\x18\x12 \x01(\x0b\x32\x46.qwak.feature.store.execution.v1.jobs.reports.BatchDeletionJobMetadataH\x00\x12\x1c\n\x14num_affected_records\x18\x05 \x01(\x03\x12\x32\n\x0erun_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0crun_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\rlegacy_run_id\x18\x08 \x01(\x03H\x01\x12\x16\n\x0c\x65xecution_id\x18\t \x01(\tH\x01\x12\x16\n\x0e\x65nvironment_id\x18\n \x01(\t\x12\x15\n\rfeatureset_id\x18\x0b \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x0c \x01(\t\x12G\n\x06status\x18\r \x01(\x0e\x32\x37.qwak.feature.store.execution.v1.jobs.reports.JobStatus\x12Z\n\njob_labels\x18\x0e \x03(\x0b\x32\x46.qwak.feature.store.execution.v1.jobs.reports.JobReport.JobLabelsEntry\x12\x0e\n\x06job_id\x18\x0f \x01(\t\x12P\n\x04info\x18\x10 \x01(\x0b\x32@.qwak.feature.store.execution.v1.jobs.reports.FailureInformationH\x02\x12\x44\n\x1e\x65xpiration_watermark_timestamp\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x1a\x30\n\x0eJobLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x13\n\x11job_metadata_typeB\x16\n\x14\x65xecution_identifierB\x0e\n\x0c\x66\x61ilure_infoB\x1b\n\x19\x64\x61ta_retention_state_type*m\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x16\n\x12JOB_STATUS_SUCCESS\x10\x01\x12\x16\n\x12JOB_STATUS_FAILURE\x10\x02\x12\x18\n\x14JOB_STATUS_TOO_EARLY\x10\x03\x42\x36\n2com.qwak.ai.features.execution.api.v1.jobs.reportsP\x01\x62\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -26,20 +26,22 @@ if _descriptor._USE_C_DESCRIPTORS == False:
26
26
  _globals['DESCRIPTOR']._serialized_options = b'\n2com.qwak.ai.features.execution.api.v1.jobs.reportsP\001'
27
27
  _globals['_JOBREPORT_JOBLABELSENTRY']._options = None
28
28
  _globals['_JOBREPORT_JOBLABELSENTRY']._serialized_options = b'8\001'
29
- _globals['_JOBSTATUS']._serialized_start=2028
30
- _globals['_JOBSTATUS']._serialized_end=2137
29
+ _globals['_JOBSTATUS']._serialized_start=2401
30
+ _globals['_JOBSTATUS']._serialized_end=2510
31
31
  _globals['_FAILUREINFORMATION']._serialized_start=160
32
32
  _globals['_FAILUREINFORMATION']._serialized_end=203
33
- _globals['_BATCHINGESTIONJOBMETADATA']._serialized_start=206
34
- _globals['_BATCHINGESTIONJOBMETADATA']._serialized_end=419
35
- _globals['_BATCHBACKFILLJOBMETADATA']._serialized_start=422
36
- _globals['_BATCHBACKFILLJOBMETADATA']._serialized_end=868
37
- _globals['_STREAMINGJOBMETADATA']._serialized_start=870
38
- _globals['_STREAMINGJOBMETADATA']._serialized_end=910
39
- _globals['_STREAMINGAGGREGATIONJOBMETADATA']._serialized_start=912
40
- _globals['_STREAMINGAGGREGATIONJOBMETADATA']._serialized_end=945
41
- _globals['_JOBREPORT']._serialized_start=948
42
- _globals['_JOBREPORT']._serialized_end=2026
43
- _globals['_JOBREPORT_JOBLABELSENTRY']._serialized_start=1917
44
- _globals['_JOBREPORT_JOBLABELSENTRY']._serialized_end=1965
33
+ _globals['_BATCHDELETIONJOBMETADATA']._serialized_start=206
34
+ _globals['_BATCHDELETIONJOBMETADATA']._serialized_end=366
35
+ _globals['_BATCHINGESTIONJOBMETADATA']._serialized_start=369
36
+ _globals['_BATCHINGESTIONJOBMETADATA']._serialized_end=582
37
+ _globals['_BATCHBACKFILLJOBMETADATA']._serialized_start=585
38
+ _globals['_BATCHBACKFILLJOBMETADATA']._serialized_end=1031
39
+ _globals['_STREAMINGJOBMETADATA']._serialized_start=1033
40
+ _globals['_STREAMINGJOBMETADATA']._serialized_end=1073
41
+ _globals['_STREAMINGAGGREGATIONJOBMETADATA']._serialized_start=1075
42
+ _globals['_STREAMINGAGGREGATIONJOBMETADATA']._serialized_end=1108
43
+ _globals['_JOBREPORT']._serialized_start=1111
44
+ _globals['_JOBREPORT']._serialized_end=2399
45
+ _globals['_JOBREPORT_JOBLABELSENTRY']._serialized_start=2261
46
+ _globals['_JOBREPORT_JOBLABELSENTRY']._serialized_end=2309
45
47
  # @@protoc_insertion_point(module_scope)
@@ -64,6 +64,30 @@ class FailureInformation(google.protobuf.message.Message):
64
64
 
65
65
  global___FailureInformation = FailureInformation
66
66
 
67
+ @typing.final
68
+ class BatchDeletionJobMetadata(google.protobuf.message.Message):
69
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
70
+
71
+ DELETION_CANDIDATES_TABLE_FIELD_NUMBER: builtins.int
72
+ DELETION_CANDIDATES_SIZE_IN_BYTES_ON_REDIS_FIELD_NUMBER: builtins.int
73
+ BILLING_SIZE_IN_BYTES_BEFORE_DELETION_FIELD_NUMBER: builtins.int
74
+ deletion_candidates_table: builtins.str
75
+ """The name of the table containing the keys that are currently in the process of being deleted."""
76
+ deletion_candidates_size_in_bytes_on_redis: builtins.int
77
+ """The size (in bytes) of the Redis keys that are being deleted."""
78
+ billing_size_in_bytes_before_deletion: builtins.int
79
+ """The captured billing size (in bytes) before deletion of the Redis keys."""
80
+ def __init__(
81
+ self,
82
+ *,
83
+ deletion_candidates_table: builtins.str = ...,
84
+ deletion_candidates_size_in_bytes_on_redis: builtins.int = ...,
85
+ billing_size_in_bytes_before_deletion: builtins.int = ...,
86
+ ) -> None: ...
87
+ def ClearField(self, field_name: typing.Literal["billing_size_in_bytes_before_deletion", b"billing_size_in_bytes_before_deletion", "deletion_candidates_size_in_bytes_on_redis", b"deletion_candidates_size_in_bytes_on_redis", "deletion_candidates_table", b"deletion_candidates_table"]) -> None: ...
88
+
89
+ global___BatchDeletionJobMetadata = BatchDeletionJobMetadata
90
+
67
91
  @typing.final
68
92
  class BatchIngestionJobMetadata(google.protobuf.message.Message):
69
93
  """batchV1 job ingestion details"""
@@ -204,6 +228,7 @@ class JobReport(google.protobuf.message.Message):
204
228
  STREAMING_JOB_METADATA_FIELD_NUMBER: builtins.int
205
229
  STREAMING_AGGR_JOB_METADATA_FIELD_NUMBER: builtins.int
206
230
  BATCH_BACKFILL_JOB_METADATA_FIELD_NUMBER: builtins.int
231
+ BATCH_DELETION_JOB_METADATA_FIELD_NUMBER: builtins.int
207
232
  NUM_AFFECTED_RECORDS_FIELD_NUMBER: builtins.int
208
233
  RUN_START_TIME_FIELD_NUMBER: builtins.int
209
234
  RUN_END_TIME_FIELD_NUMBER: builtins.int
@@ -216,6 +241,7 @@ class JobReport(google.protobuf.message.Message):
216
241
  JOB_LABELS_FIELD_NUMBER: builtins.int
217
242
  JOB_ID_FIELD_NUMBER: builtins.int
218
243
  INFO_FIELD_NUMBER: builtins.int
244
+ EXPIRATION_WATERMARK_TIMESTAMP_FIELD_NUMBER: builtins.int
219
245
  num_affected_records: builtins.int
220
246
  """number of affected records"""
221
247
  legacy_run_id: builtins.int
@@ -241,6 +267,8 @@ class JobReport(google.protobuf.message.Message):
241
267
  @property
242
268
  def batch_backfill_job_metadata(self) -> global___BatchBackfillJobMetadata: ...
243
269
  @property
270
+ def batch_deletion_job_metadata(self) -> global___BatchDeletionJobMetadata: ...
271
+ @property
244
272
  def run_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
245
273
  """SYSTEM start time of the job"""
246
274
 
@@ -254,6 +282,8 @@ class JobReport(google.protobuf.message.Message):
254
282
 
255
283
  @property
256
284
  def info(self) -> global___FailureInformation: ...
285
+ @property
286
+ def expiration_watermark_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
257
287
  def __init__(
258
288
  self,
259
289
  *,
@@ -261,6 +291,7 @@ class JobReport(google.protobuf.message.Message):
261
291
  streaming_job_metadata: global___StreamingJobMetadata | None = ...,
262
292
  streaming_aggr_job_metadata: global___StreamingAggregationJobMetadata | None = ...,
263
293
  batch_backfill_job_metadata: global___BatchBackfillJobMetadata | None = ...,
294
+ batch_deletion_job_metadata: global___BatchDeletionJobMetadata | None = ...,
264
295
  num_affected_records: builtins.int = ...,
265
296
  run_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
266
297
  run_end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
@@ -273,14 +304,17 @@ class JobReport(google.protobuf.message.Message):
273
304
  job_labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
274
305
  job_id: builtins.str = ...,
275
306
  info: global___FailureInformation | None = ...,
307
+ expiration_watermark_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
276
308
  ) -> None: ...
277
- def HasField(self, field_name: typing.Literal["batch_backfill_job_metadata", b"batch_backfill_job_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "execution_id", b"execution_id", "execution_identifier", b"execution_identifier", "failure_info", b"failure_info", "info", b"info", "job_metadata_type", b"job_metadata_type", "legacy_run_id", b"legacy_run_id", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "streaming_aggr_job_metadata", b"streaming_aggr_job_metadata", "streaming_job_metadata", b"streaming_job_metadata"]) -> builtins.bool: ...
278
- def ClearField(self, field_name: typing.Literal["batch_backfill_job_metadata", b"batch_backfill_job_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "environment_id", b"environment_id", "execution_id", b"execution_id", "execution_identifier", b"execution_identifier", "failure_info", b"failure_info", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "info", b"info", "job_id", b"job_id", "job_labels", b"job_labels", "job_metadata_type", b"job_metadata_type", "legacy_run_id", b"legacy_run_id", "num_affected_records", b"num_affected_records", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "status", b"status", "streaming_aggr_job_metadata", b"streaming_aggr_job_metadata", "streaming_job_metadata", b"streaming_job_metadata"]) -> None: ...
309
+ def HasField(self, field_name: typing.Literal["batch_backfill_job_metadata", b"batch_backfill_job_metadata", "batch_deletion_job_metadata", b"batch_deletion_job_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "data_retention_state_type", b"data_retention_state_type", "execution_id", b"execution_id", "execution_identifier", b"execution_identifier", "expiration_watermark_timestamp", b"expiration_watermark_timestamp", "failure_info", b"failure_info", "info", b"info", "job_metadata_type", b"job_metadata_type", "legacy_run_id", b"legacy_run_id", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "streaming_aggr_job_metadata", b"streaming_aggr_job_metadata", "streaming_job_metadata", b"streaming_job_metadata"]) -> builtins.bool: ...
310
+ def ClearField(self, field_name: typing.Literal["batch_backfill_job_metadata", b"batch_backfill_job_metadata", "batch_deletion_job_metadata", b"batch_deletion_job_metadata", "batch_ingestion_metadata", b"batch_ingestion_metadata", "data_retention_state_type", b"data_retention_state_type", "environment_id", b"environment_id", "execution_id", b"execution_id", "execution_identifier", b"execution_identifier", "expiration_watermark_timestamp", b"expiration_watermark_timestamp", "failure_info", b"failure_info", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "info", b"info", "job_id", b"job_id", "job_labels", b"job_labels", "job_metadata_type", b"job_metadata_type", "legacy_run_id", b"legacy_run_id", "num_affected_records", b"num_affected_records", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "status", b"status", "streaming_aggr_job_metadata", b"streaming_aggr_job_metadata", "streaming_job_metadata", b"streaming_job_metadata"]) -> None: ...
311
+ @typing.overload
312
+ def WhichOneof(self, oneof_group: typing.Literal["data_retention_state_type", b"data_retention_state_type"]) -> typing.Literal["expiration_watermark_timestamp"] | None: ...
279
313
  @typing.overload
280
314
  def WhichOneof(self, oneof_group: typing.Literal["execution_identifier", b"execution_identifier"]) -> typing.Literal["legacy_run_id", "execution_id"] | None: ...
281
315
  @typing.overload
282
316
  def WhichOneof(self, oneof_group: typing.Literal["failure_info", b"failure_info"]) -> typing.Literal["info"] | None: ...
283
317
  @typing.overload
284
- def WhichOneof(self, oneof_group: typing.Literal["job_metadata_type", b"job_metadata_type"]) -> typing.Literal["batch_ingestion_metadata", "streaming_job_metadata", "streaming_aggr_job_metadata", "batch_backfill_job_metadata"] | None: ...
318
+ def WhichOneof(self, oneof_group: typing.Literal["job_metadata_type", b"job_metadata_type"]) -> typing.Literal["batch_ingestion_metadata", "streaming_job_metadata", "streaming_aggr_job_metadata", "batch_backfill_job_metadata", "batch_deletion_job_metadata"] | None: ...
285
319
 
286
320
  global___JobReport = JobReport
@@ -22,7 +22,7 @@ from frogml._proto.qwak.feature_store.features import real_time_feature_extracto
22
22
  from frogml._proto.qwak.feature_store.sinks import sink_pb2 as qwak_dot_feature__store_dot_sinks_dot_sink__pb2
23
23
 
24
24
 
25
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3qwak/feature_store/features/feature_set_types.proto\x12\x1bqwak.feature.store.features\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&qwak/feature_store/sources/batch.proto\x1a*qwak/feature_store/sources/streaming.proto\x1a+qwak/feature_store/features/execution.proto\x1a-qwak/feature_store/features/aggregation.proto\x1a,qwak/feature_store/features/monitoring.proto\x1a=qwak/feature_store/features/real_time_feature_extractor.proto\x1a#qwak/feature_store/sinks/sink.proto\"\x9f\x04\n\x0e\x46\x65\x61tureSetType\x12I\n\x11\x62\x61tch_feature_set\x18\x05 \x01(\x0b\x32,.qwak.feature.store.features.BatchFeatureSetH\x00\x12Q\n\x16on_the_fly_feature_set\x18\x06 \x01(\x0b\x32/.qwak.feature.store.features.OnTheFlyFeatureSetH\x00\x12Q\n\x15streaming_feature_set\x18\x07 \x01(\x0b\x32\x30.qwak.feature.store.features.StreamingFeatureSetH\x00\x12V\n\x18streaming_feature_set_v1\x18\x08 \x01(\x0b\x32\x32.qwak.feature.store.features.StreamingFeatureSetV1H\x00\x12N\n\x14\x62\x61tch_feature_set_v1\x18\t \x01(\x0b\x32..qwak.feature.store.features.BatchFeatureSetV1H\x00\x12h\n!streaming_aggregation_feature_set\x18\n \x01(\x0b\x32;.qwak.feature.store.features.StreamingAggregationFeatureSetH\x00\x42\n\n\x08set_type\"\x9d\x03\n\x0f\x42\x61tchFeatureSet\x12\x19\n\x11scheduling_policy\x18\x01 \x01(\t\x12\x41\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32\'.qwak.feature.store.sources.BatchSourceB\x02\x18\x01\x12\x37\n\x08\x62\x61\x63kfill\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.Backfill\x12\x37\n\x08\x66unction\x18\x04 \x01(\x0b\x32%.qwak.feature.store.features.Function\x12U\n\x19\x66\x65\x61ture_set_batch_sources\x18\x05 \x03(\x0b\x32\x32.qwak.feature.store.features.FeatureSetBatchSource\x12\x63\n\x19monitoring_configurations\x18\x06 \x01(\x0b\x32@.qwak.feature.store.features.monitoring.MonitoringConfigurations\"\xd8\x05\n\x11\x42\x61tchFeatureSetV1\x12\x19\n\x11scheduling_policy\x18\x01 \x01(\t\x12\x37\n\x08\x62\x61\x63kfill\x18\x02 \x01(\x0b\x32%.qwak.feature.store.features.Backfill\x12;\n\x08\x66unction\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.FunctionB\x02\x18\x01\x12U\n\x19\x66\x65\x61ture_set_batch_sources\x18\x04 \x03(\x0b\x32\x32.qwak.feature.store.features.FeatureSetBatchSource\x12L\n\x0e\x65xecution_spec\x18\x05 \x01(\x0b\x32\x34.qwak.feature.store.features.execution.ExecutionSpec\x12\x14\n\x0coffline_sink\x18\x06 \x01(\x08\x12\x13\n\x0bonline_sink\x18\x07 \x01(\x08\x12\x63\n\x19monitoring_configurations\x18\x08 \x01(\x0b\x32@.qwak.feature.store.features.monitoring.MonitoringConfigurations\x12\x1d\n\x15timestamp_column_name\x18\t \x01(\t\x12\x43\n\x0etransformation\x18\n \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12&\n\x1eqwak_internal_protocol_version\x18\x0b \x01(\x05\x12\\\n\x1breal_time_feature_extractor\x18\x0c \x01(\x0b\x32\x35.qwak.feature.store.features.RealTimeFeatureExtractorH\x00\x42\x13\n\x11\x66\x65\x61ture_extractor\"\x9d\x01\n\x15\x46\x65\x61tureSetBatchSource\x12<\n\x0b\x64\x61ta_source\x18\x01 \x01(\x0b\x32\'.qwak.feature.store.sources.BatchSource\x12\x46\n\x0bread_policy\x18\x02 \x01(\x0b\x32\x31.qwak.feature.store.features.DataSourceReadPolicy\"X\n\x13StreamingFeatureSet\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\"\xc3\x03\n\x15StreamingFeatureSetV1\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\x12\x43\n\x0etransformation\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12U\n\x0e\x65xecution_spec\x18\x03 \x01(\x0b\x32=.qwak.feature.store.features.execution.StreamingExecutionSpec\x12\x1d\n\x15timestamp_column_name\x18\x04 \x01(\t\x12\x1f\n\x17online_trigger_interval\x18\x05 \x01(\x05\x12!\n\x19offline_scheduling_policy\x18\x06 \x01(\t\x12&\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x12@\n\x0f\x61uxiliary_sinks\x18\x08 \x03(\x0b\x32\'.qwak.feature.store.sinks.StreamingSink\"\xd7\x04\n\x1eStreamingAggregationFeatureSet\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\x12\x43\n\x0etransformation\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12U\n\x0e\x65xecution_spec\x18\x03 \x01(\x0b\x32=.qwak.feature.store.features.execution.StreamingExecutionSpec\x12\x1d\n\x15timestamp_column_name\x18\x04 \x01(\t\x12\x1f\n\x17online_trigger_interval\x18\x05 \x01(\x05\x12$\n\x1c\x63ompaction_scheduling_policy\x18\x06 \x01(\t\x12\x46\n\x10\x61ggregation_spec\x18\x07 \x01(\x0b\x32,.qwak.feature.store.features.AggregationSpec\x12\x44\n\rbackfill_spec\x18\x08 \x01(\x0b\x32).qwak.feature.store.features.BackfillSpecB\x02\x18\x01\x12&\n\x1eqwak_internal_protocol_version\x18\t \x01(\x05\x12:\n\x16\x62\x61\x63kfill_max_timestamp\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xc3\x01\n\x1b\x42\x61\x63kfillBatchDataSourceSpec\x12<\n\x0b\x64\x61ta_source\x18\x01 \x01(\x0b\x32\'.qwak.feature.store.sources.BatchSource\x12\x33\n\x0fstart_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"|\n\x16\x42\x61\x63kfillDataSourceSpec\x12Z\n\x16\x62\x61tch_data_source_spec\x18\x01 \x01(\x0b\x32\x38.qwak.feature.store.features.BackfillBatchDataSourceSpecH\x00\x42\x06\n\x04type\"\xe1\x02\n\x0c\x42\x61\x63kfillSpec\x12T\n\x0e\x65xecution_spec\x18\x01 \x01(\x0b\x32<.qwak.feature.store.features.execution.BackfillExecutionSpec\x12\x33\n\x0fstart_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0etransformation\x18\x04 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12N\n\x11\x64\x61ta_source_specs\x18\x05 \x03(\x0b\x32\x33.qwak.feature.store.features.BackfillDataSourceSpec\"\x9f\x01\n\x0f\x41ggregationSpec\x12O\n\x0c\x61ggregations\x18\x01 \x03(\x0b\x32\x39.qwak.feature.store.features.aggregation.AggregationField\x12\x15\n\rslide_seconds\x18\x02 \x01(\x05\x12$\n\x1c\x61llowed_late_arrival_seconds\x18\x03 \x01(\x05\"\xdd\x03\n\x0eTransformation\x12L\n\x12udf_transformation\x18\x01 \x01(\x0b\x32..qwak.feature.store.features.UdfTransformationH\x00\x12L\n\x12sql_transformation\x18\x02 \x01(\x0b\x32..qwak.feature.store.features.SqlTransformationH\x00\x12V\n\x15koalas_transformation\x18\x03 \x01(\x0b\x32\x31.qwak.feature.store.features.KoalasTransformationB\x02\x18\x01H\x00\x12T\n\x16pyspark_transformation\x18\x05 \x01(\x0b\x32\x32.qwak.feature.store.features.PySparkTransformationH\x00\x12\x62\n\x1epandas_on_spark_transformation\x18\x06 \x01(\x0b\x32\x38.qwak.feature.store.features.PandasOnSparkTransformationH\x00\x12\x15\n\rartifact_path\x18\x04 \x01(\tB\x06\n\x04type\"*\n\x11UdfTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\"8\n\x11SqlTransformation\x12\x0b\n\x03sql\x18\x01 \x01(\t\x12\x16\n\x0e\x66unction_names\x18\x02 \x03(\t\"\x83\x01\n\x14KoalasTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00:\x02\x18\x01\x42\r\n\x0b\x61rgs_option\"\x80\x01\n\x15PySparkTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00\x42\r\n\x0b\x61rgs_option\"\x86\x01\n\x1bPandasOnSparkTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00\x42\r\n\x0b\x61rgs_option\"\x90\x01\n\x12TransformArguments\x12K\n\x06qwargs\x18\x01 \x03(\x0b\x32;.qwak.feature.store.features.TransformArguments.QwargsEntry\x1a-\n\x0bQwargsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"f\n\x12OnTheFlyFeatureSet\x12:\n\x08\x66unction\x18\x01 \x01(\x0b\x32(.qwak.feature.store.features.UdfFunction\x12\x14\n\x0crequirements\x18\x02 \x01(\x0c\"\x96\x01\n\x08\x46unction\x12@\n\x0csql_function\x18\x01 \x01(\x0b\x32(.qwak.feature.store.features.SqlFunctionH\x00\x12@\n\x0cudf_function\x18\x02 \x01(\x0b\x32(.qwak.feature.store.features.UdfFunctionH\x00\x42\x06\n\x04type\"\xb5\x01\n\x08\x42\x61\x63kfill\x12.\n\nstart_date\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\rfillup_method\x18\x02 \x01(\x0e\x32\x32.qwak.feature.store.features.Backfill.FillUpMethod\".\n\x0c\x46illUpMethod\x12\x10\n\x0c\x41S_SCHEDULED\x10\x00\x12\x0c\n\x08SNAPSHOT\x10\x01\"\x1a\n\x0bSqlFunction\x12\x0b\n\x03sql\x18\x01 \x01(\t\"\x1b\n\x0bUdfFunction\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x0c\"\t\n\x07NewOnly\"\xa0\x01\n\tTimeFrame\x12\x0f\n\x07minutes\x18\x01 \x01(\x05\x12\x37\n\x07vanilla\x18\x02 \x01(\x0b\x32$.qwak.feature.store.features.VanillaH\x00\x12?\n\x0b\x61ggregation\x18\x03 \x01(\x0b\x32(.qwak.feature.store.features.AggregationH\x00\x42\x08\n\x06\x66lavor\"k\n\x0b\x41ggregation\x12T\n\x16\x61ggregation_population\x18\x01 \x01(\x0b\x32\x32.qwak.feature.store.features.AggregationPopulationH\x00\x42\x06\n\x04type\"\x17\n\x15\x41ggregationPopulation\"\x1c\n\x1aPopulationTimeframeNewOnly\"j\n\x13PopulationTimeframe\x12K\n\x08new_only\x18\x01 \x01(\x0b\x32\x37.qwak.feature.store.features.PopulationTimeframeNewOnlyH\x00\x42\x06\n\x04type\"\t\n\x07Vanilla\"\x9f\x01\n\x08\x46ullRead\x12\x37\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\x0b\x32$.qwak.feature.store.features.VanillaH\x00\x12P\n\x14population_timeframe\x18\x02 \x01(\x0b\x32\x30.qwak.feature.store.features.PopulationTimeframeH\x00\x42\x08\n\x06\x66lavor\"\xd2\x01\n\x14\x44\x61taSourceReadPolicy\x12\x38\n\x08new_only\x18\x01 \x01(\x0b\x32$.qwak.feature.store.features.NewOnlyH\x00\x12<\n\ntime_frame\x18\x02 \x01(\x0b\x32&.qwak.feature.store.features.TimeFrameH\x00\x12:\n\tfull_read\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.FullReadH\x00\x42\x06\n\x04type*}\n\x12\x46\x65\x61tureSetTypeView\x12!\n\x1d\x46\x45\x41TURE_SET_TYPE_VIEW_INVALID\x10\x00\x12\x1f\n\x1b\x46\x45\x41TURE_SET_TYPE_VIEW_BATCH\x10\x01\x12#\n\x1f\x46\x45\x41TURE_SET_TYPE_VIEW_STREAMING\x10\x02\x42[\n&com.qwak.ai.feature.store.features.apiP\x01Z/qwak/featurestore/features;featurestorefeaturesb\x06proto3')
25
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3qwak/feature_store/features/feature_set_types.proto\x12\x1bqwak.feature.store.features\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&qwak/feature_store/sources/batch.proto\x1a*qwak/feature_store/sources/streaming.proto\x1a+qwak/feature_store/features/execution.proto\x1a-qwak/feature_store/features/aggregation.proto\x1a,qwak/feature_store/features/monitoring.proto\x1a=qwak/feature_store/features/real_time_feature_extractor.proto\x1a#qwak/feature_store/sinks/sink.proto\"\x9f\x04\n\x0e\x46\x65\x61tureSetType\x12I\n\x11\x62\x61tch_feature_set\x18\x05 \x01(\x0b\x32,.qwak.feature.store.features.BatchFeatureSetH\x00\x12Q\n\x16on_the_fly_feature_set\x18\x06 \x01(\x0b\x32/.qwak.feature.store.features.OnTheFlyFeatureSetH\x00\x12Q\n\x15streaming_feature_set\x18\x07 \x01(\x0b\x32\x30.qwak.feature.store.features.StreamingFeatureSetH\x00\x12V\n\x18streaming_feature_set_v1\x18\x08 \x01(\x0b\x32\x32.qwak.feature.store.features.StreamingFeatureSetV1H\x00\x12N\n\x14\x62\x61tch_feature_set_v1\x18\t \x01(\x0b\x32..qwak.feature.store.features.BatchFeatureSetV1H\x00\x12h\n!streaming_aggregation_feature_set\x18\n \x01(\x0b\x32;.qwak.feature.store.features.StreamingAggregationFeatureSetH\x00\x42\n\n\x08set_type\"\x9d\x03\n\x0f\x42\x61tchFeatureSet\x12\x19\n\x11scheduling_policy\x18\x01 \x01(\t\x12\x41\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32\'.qwak.feature.store.sources.BatchSourceB\x02\x18\x01\x12\x37\n\x08\x62\x61\x63kfill\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.Backfill\x12\x37\n\x08\x66unction\x18\x04 \x01(\x0b\x32%.qwak.feature.store.features.Function\x12U\n\x19\x66\x65\x61ture_set_batch_sources\x18\x05 \x03(\x0b\x32\x32.qwak.feature.store.features.FeatureSetBatchSource\x12\x63\n\x19monitoring_configurations\x18\x06 \x01(\x0b\x32@.qwak.feature.store.features.monitoring.MonitoringConfigurations\"\xab\x06\n\x11\x42\x61tchFeatureSetV1\x12\x19\n\x11scheduling_policy\x18\x01 \x01(\t\x12\x37\n\x08\x62\x61\x63kfill\x18\x02 \x01(\x0b\x32%.qwak.feature.store.features.Backfill\x12;\n\x08\x66unction\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.FunctionB\x02\x18\x01\x12U\n\x19\x66\x65\x61ture_set_batch_sources\x18\x04 \x03(\x0b\x32\x32.qwak.feature.store.features.FeatureSetBatchSource\x12L\n\x0e\x65xecution_spec\x18\x05 \x01(\x0b\x32\x34.qwak.feature.store.features.execution.ExecutionSpec\x12\x14\n\x0coffline_sink\x18\x06 \x01(\x08\x12\x13\n\x0bonline_sink\x18\x07 \x01(\x08\x12\x63\n\x19monitoring_configurations\x18\x08 \x01(\x0b\x32@.qwak.feature.store.features.monitoring.MonitoringConfigurations\x12\x1d\n\x15timestamp_column_name\x18\t \x01(\t\x12\x43\n\x0etransformation\x18\n \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12&\n\x1eqwak_internal_protocol_version\x18\x0b \x01(\x05\x12\\\n\x1breal_time_feature_extractor\x18\x0c \x01(\x0b\x32\x35.qwak.feature.store.features.RealTimeFeatureExtractorH\x00\x12Q\n\x16\x64\x61ta_retention_options\x18\r \x01(\x0b\x32\x31.qwak.feature.store.features.DataRetentionOptionsB\x13\n\x11\x66\x65\x61ture_extractor\";\n\x14\x44\x61taRetentionOptions\x12#\n\x1bonline_time_to_live_seconds\x18\x01 \x01(\x03\"\x9d\x01\n\x15\x46\x65\x61tureSetBatchSource\x12<\n\x0b\x64\x61ta_source\x18\x01 \x01(\x0b\x32\'.qwak.feature.store.sources.BatchSource\x12\x46\n\x0bread_policy\x18\x02 \x01(\x0b\x32\x31.qwak.feature.store.features.DataSourceReadPolicy\"X\n\x13StreamingFeatureSet\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\"\xc3\x03\n\x15StreamingFeatureSetV1\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\x12\x43\n\x0etransformation\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12U\n\x0e\x65xecution_spec\x18\x03 \x01(\x0b\x32=.qwak.feature.store.features.execution.StreamingExecutionSpec\x12\x1d\n\x15timestamp_column_name\x18\x04 \x01(\t\x12\x1f\n\x17online_trigger_interval\x18\x05 \x01(\x05\x12!\n\x19offline_scheduling_policy\x18\x06 \x01(\t\x12&\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x12@\n\x0f\x61uxiliary_sinks\x18\x08 \x03(\x0b\x32\'.qwak.feature.store.sinks.StreamingSink\"\xd7\x04\n\x1eStreamingAggregationFeatureSet\x12\x41\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32+.qwak.feature.store.sources.StreamingSource\x12\x43\n\x0etransformation\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12U\n\x0e\x65xecution_spec\x18\x03 \x01(\x0b\x32=.qwak.feature.store.features.execution.StreamingExecutionSpec\x12\x1d\n\x15timestamp_column_name\x18\x04 \x01(\t\x12\x1f\n\x17online_trigger_interval\x18\x05 \x01(\x05\x12$\n\x1c\x63ompaction_scheduling_policy\x18\x06 \x01(\t\x12\x46\n\x10\x61ggregation_spec\x18\x07 \x01(\x0b\x32,.qwak.feature.store.features.AggregationSpec\x12\x44\n\rbackfill_spec\x18\x08 \x01(\x0b\x32).qwak.feature.store.features.BackfillSpecB\x02\x18\x01\x12&\n\x1eqwak_internal_protocol_version\x18\t \x01(\x05\x12:\n\x16\x62\x61\x63kfill_max_timestamp\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xc3\x01\n\x1b\x42\x61\x63kfillBatchDataSourceSpec\x12<\n\x0b\x64\x61ta_source\x18\x01 \x01(\x0b\x32\'.qwak.feature.store.sources.BatchSource\x12\x33\n\x0fstart_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"|\n\x16\x42\x61\x63kfillDataSourceSpec\x12Z\n\x16\x62\x61tch_data_source_spec\x18\x01 \x01(\x0b\x32\x38.qwak.feature.store.features.BackfillBatchDataSourceSpecH\x00\x42\x06\n\x04type\"\xe1\x02\n\x0c\x42\x61\x63kfillSpec\x12T\n\x0e\x65xecution_spec\x18\x01 \x01(\x0b\x32<.qwak.feature.store.features.execution.BackfillExecutionSpec\x12\x33\n\x0fstart_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0etransformation\x18\x04 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12N\n\x11\x64\x61ta_source_specs\x18\x05 \x03(\x0b\x32\x33.qwak.feature.store.features.BackfillDataSourceSpec\"\x9f\x01\n\x0f\x41ggregationSpec\x12O\n\x0c\x61ggregations\x18\x01 \x03(\x0b\x32\x39.qwak.feature.store.features.aggregation.AggregationField\x12\x15\n\rslide_seconds\x18\x02 \x01(\x05\x12$\n\x1c\x61llowed_late_arrival_seconds\x18\x03 \x01(\x05\"\xdd\x03\n\x0eTransformation\x12L\n\x12udf_transformation\x18\x01 \x01(\x0b\x32..qwak.feature.store.features.UdfTransformationH\x00\x12L\n\x12sql_transformation\x18\x02 \x01(\x0b\x32..qwak.feature.store.features.SqlTransformationH\x00\x12V\n\x15koalas_transformation\x18\x03 \x01(\x0b\x32\x31.qwak.feature.store.features.KoalasTransformationB\x02\x18\x01H\x00\x12T\n\x16pyspark_transformation\x18\x05 \x01(\x0b\x32\x32.qwak.feature.store.features.PySparkTransformationH\x00\x12\x62\n\x1epandas_on_spark_transformation\x18\x06 \x01(\x0b\x32\x38.qwak.feature.store.features.PandasOnSparkTransformationH\x00\x12\x15\n\rartifact_path\x18\x04 \x01(\tB\x06\n\x04type\"*\n\x11UdfTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\"8\n\x11SqlTransformation\x12\x0b\n\x03sql\x18\x01 \x01(\t\x12\x16\n\x0e\x66unction_names\x18\x02 \x03(\t\"\x83\x01\n\x14KoalasTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00:\x02\x18\x01\x42\r\n\x0b\x61rgs_option\"\x80\x01\n\x15PySparkTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00\x42\r\n\x0b\x61rgs_option\"\x86\x01\n\x1bPandasOnSparkTransformation\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x41\n\x06qwargs\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.TransformArgumentsH\x00\x42\r\n\x0b\x61rgs_option\"\x90\x01\n\x12TransformArguments\x12K\n\x06qwargs\x18\x01 \x03(\x0b\x32;.qwak.feature.store.features.TransformArguments.QwargsEntry\x1a-\n\x0bQwargsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"f\n\x12OnTheFlyFeatureSet\x12:\n\x08\x66unction\x18\x01 \x01(\x0b\x32(.qwak.feature.store.features.UdfFunction\x12\x14\n\x0crequirements\x18\x02 \x01(\x0c\"\x96\x01\n\x08\x46unction\x12@\n\x0csql_function\x18\x01 \x01(\x0b\x32(.qwak.feature.store.features.SqlFunctionH\x00\x12@\n\x0cudf_function\x18\x02 \x01(\x0b\x32(.qwak.feature.store.features.UdfFunctionH\x00\x42\x06\n\x04type\"\xb5\x01\n\x08\x42\x61\x63kfill\x12.\n\nstart_date\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\rfillup_method\x18\x02 \x01(\x0e\x32\x32.qwak.feature.store.features.Backfill.FillUpMethod\".\n\x0c\x46illUpMethod\x12\x10\n\x0c\x41S_SCHEDULED\x10\x00\x12\x0c\n\x08SNAPSHOT\x10\x01\"\x1a\n\x0bSqlFunction\x12\x0b\n\x03sql\x18\x01 \x01(\t\"\x1b\n\x0bUdfFunction\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x0c\"\t\n\x07NewOnly\"\xa0\x01\n\tTimeFrame\x12\x0f\n\x07minutes\x18\x01 \x01(\x05\x12\x37\n\x07vanilla\x18\x02 \x01(\x0b\x32$.qwak.feature.store.features.VanillaH\x00\x12?\n\x0b\x61ggregation\x18\x03 \x01(\x0b\x32(.qwak.feature.store.features.AggregationH\x00\x42\x08\n\x06\x66lavor\"k\n\x0b\x41ggregation\x12T\n\x16\x61ggregation_population\x18\x01 \x01(\x0b\x32\x32.qwak.feature.store.features.AggregationPopulationH\x00\x42\x06\n\x04type\"\x17\n\x15\x41ggregationPopulation\"\x1c\n\x1aPopulationTimeframeNewOnly\"j\n\x13PopulationTimeframe\x12K\n\x08new_only\x18\x01 \x01(\x0b\x32\x37.qwak.feature.store.features.PopulationTimeframeNewOnlyH\x00\x42\x06\n\x04type\"\t\n\x07Vanilla\"\x9f\x01\n\x08\x46ullRead\x12\x37\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\x0b\x32$.qwak.feature.store.features.VanillaH\x00\x12P\n\x14population_timeframe\x18\x02 \x01(\x0b\x32\x30.qwak.feature.store.features.PopulationTimeframeH\x00\x42\x08\n\x06\x66lavor\"\xd2\x01\n\x14\x44\x61taSourceReadPolicy\x12\x38\n\x08new_only\x18\x01 \x01(\x0b\x32$.qwak.feature.store.features.NewOnlyH\x00\x12<\n\ntime_frame\x18\x02 \x01(\x0b\x32&.qwak.feature.store.features.TimeFrameH\x00\x12:\n\tfull_read\x18\x03 \x01(\x0b\x32%.qwak.feature.store.features.FullReadH\x00\x42\x06\n\x04type*}\n\x12\x46\x65\x61tureSetTypeView\x12!\n\x1d\x46\x45\x41TURE_SET_TYPE_VIEW_INVALID\x10\x00\x12\x1f\n\x1b\x46\x45\x41TURE_SET_TYPE_VIEW_BATCH\x10\x01\x12#\n\x1f\x46\x45\x41TURE_SET_TYPE_VIEW_STREAMING\x10\x02\x42[\n&com.qwak.ai.feature.store.features.apiP\x01Z/qwak/featurestore/features;featurestorefeaturesb\x06proto3')
26
26
 
27
27
  _globals = globals()
28
28
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -42,74 +42,76 @@ if _descriptor._USE_C_DESCRIPTORS == False:
42
42
  _globals['_KOALASTRANSFORMATION']._serialized_options = b'\030\001'
43
43
  _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._options = None
44
44
  _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._serialized_options = b'8\001'
45
- _globals['_FEATURESETTYPEVIEW']._serialized_start=6741
46
- _globals['_FEATURESETTYPEVIEW']._serialized_end=6866
45
+ _globals['_FEATURESETTYPEVIEW']._serialized_start=6885
46
+ _globals['_FEATURESETTYPEVIEW']._serialized_end=7010
47
47
  _globals['_FEATURESETTYPE']._serialized_start=440
48
48
  _globals['_FEATURESETTYPE']._serialized_end=983
49
49
  _globals['_BATCHFEATURESET']._serialized_start=986
50
50
  _globals['_BATCHFEATURESET']._serialized_end=1399
51
51
  _globals['_BATCHFEATURESETV1']._serialized_start=1402
52
- _globals['_BATCHFEATURESETV1']._serialized_end=2130
53
- _globals['_FEATURESETBATCHSOURCE']._serialized_start=2133
54
- _globals['_FEATURESETBATCHSOURCE']._serialized_end=2290
55
- _globals['_STREAMINGFEATURESET']._serialized_start=2292
56
- _globals['_STREAMINGFEATURESET']._serialized_end=2380
57
- _globals['_STREAMINGFEATURESETV1']._serialized_start=2383
58
- _globals['_STREAMINGFEATURESETV1']._serialized_end=2834
59
- _globals['_STREAMINGAGGREGATIONFEATURESET']._serialized_start=2837
60
- _globals['_STREAMINGAGGREGATIONFEATURESET']._serialized_end=3436
61
- _globals['_BACKFILLBATCHDATASOURCESPEC']._serialized_start=3439
62
- _globals['_BACKFILLBATCHDATASOURCESPEC']._serialized_end=3634
63
- _globals['_BACKFILLDATASOURCESPEC']._serialized_start=3636
64
- _globals['_BACKFILLDATASOURCESPEC']._serialized_end=3760
65
- _globals['_BACKFILLSPEC']._serialized_start=3763
66
- _globals['_BACKFILLSPEC']._serialized_end=4116
67
- _globals['_AGGREGATIONSPEC']._serialized_start=4119
68
- _globals['_AGGREGATIONSPEC']._serialized_end=4278
69
- _globals['_TRANSFORMATION']._serialized_start=4281
70
- _globals['_TRANSFORMATION']._serialized_end=4758
71
- _globals['_UDFTRANSFORMATION']._serialized_start=4760
72
- _globals['_UDFTRANSFORMATION']._serialized_end=4802
73
- _globals['_SQLTRANSFORMATION']._serialized_start=4804
74
- _globals['_SQLTRANSFORMATION']._serialized_end=4860
75
- _globals['_KOALASTRANSFORMATION']._serialized_start=4863
76
- _globals['_KOALASTRANSFORMATION']._serialized_end=4994
77
- _globals['_PYSPARKTRANSFORMATION']._serialized_start=4997
78
- _globals['_PYSPARKTRANSFORMATION']._serialized_end=5125
79
- _globals['_PANDASONSPARKTRANSFORMATION']._serialized_start=5128
80
- _globals['_PANDASONSPARKTRANSFORMATION']._serialized_end=5262
81
- _globals['_TRANSFORMARGUMENTS']._serialized_start=5265
82
- _globals['_TRANSFORMARGUMENTS']._serialized_end=5409
83
- _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._serialized_start=5364
84
- _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._serialized_end=5409
85
- _globals['_ONTHEFLYFEATURESET']._serialized_start=5411
86
- _globals['_ONTHEFLYFEATURESET']._serialized_end=5513
87
- _globals['_FUNCTION']._serialized_start=5516
88
- _globals['_FUNCTION']._serialized_end=5666
89
- _globals['_BACKFILL']._serialized_start=5669
90
- _globals['_BACKFILL']._serialized_end=5850
91
- _globals['_BACKFILL_FILLUPMETHOD']._serialized_start=5804
92
- _globals['_BACKFILL_FILLUPMETHOD']._serialized_end=5850
93
- _globals['_SQLFUNCTION']._serialized_start=5852
94
- _globals['_SQLFUNCTION']._serialized_end=5878
95
- _globals['_UDFFUNCTION']._serialized_start=5880
96
- _globals['_UDFFUNCTION']._serialized_end=5907
97
- _globals['_NEWONLY']._serialized_start=5909
98
- _globals['_NEWONLY']._serialized_end=5918
99
- _globals['_TIMEFRAME']._serialized_start=5921
100
- _globals['_TIMEFRAME']._serialized_end=6081
101
- _globals['_AGGREGATION']._serialized_start=6083
102
- _globals['_AGGREGATION']._serialized_end=6190
103
- _globals['_AGGREGATIONPOPULATION']._serialized_start=6192
104
- _globals['_AGGREGATIONPOPULATION']._serialized_end=6215
105
- _globals['_POPULATIONTIMEFRAMENEWONLY']._serialized_start=6217
106
- _globals['_POPULATIONTIMEFRAMENEWONLY']._serialized_end=6245
107
- _globals['_POPULATIONTIMEFRAME']._serialized_start=6247
108
- _globals['_POPULATIONTIMEFRAME']._serialized_end=6353
109
- _globals['_VANILLA']._serialized_start=6355
110
- _globals['_VANILLA']._serialized_end=6364
111
- _globals['_FULLREAD']._serialized_start=6367
112
- _globals['_FULLREAD']._serialized_end=6526
113
- _globals['_DATASOURCEREADPOLICY']._serialized_start=6529
114
- _globals['_DATASOURCEREADPOLICY']._serialized_end=6739
52
+ _globals['_BATCHFEATURESETV1']._serialized_end=2213
53
+ _globals['_DATARETENTIONOPTIONS']._serialized_start=2215
54
+ _globals['_DATARETENTIONOPTIONS']._serialized_end=2274
55
+ _globals['_FEATURESETBATCHSOURCE']._serialized_start=2277
56
+ _globals['_FEATURESETBATCHSOURCE']._serialized_end=2434
57
+ _globals['_STREAMINGFEATURESET']._serialized_start=2436
58
+ _globals['_STREAMINGFEATURESET']._serialized_end=2524
59
+ _globals['_STREAMINGFEATURESETV1']._serialized_start=2527
60
+ _globals['_STREAMINGFEATURESETV1']._serialized_end=2978
61
+ _globals['_STREAMINGAGGREGATIONFEATURESET']._serialized_start=2981
62
+ _globals['_STREAMINGAGGREGATIONFEATURESET']._serialized_end=3580
63
+ _globals['_BACKFILLBATCHDATASOURCESPEC']._serialized_start=3583
64
+ _globals['_BACKFILLBATCHDATASOURCESPEC']._serialized_end=3778
65
+ _globals['_BACKFILLDATASOURCESPEC']._serialized_start=3780
66
+ _globals['_BACKFILLDATASOURCESPEC']._serialized_end=3904
67
+ _globals['_BACKFILLSPEC']._serialized_start=3907
68
+ _globals['_BACKFILLSPEC']._serialized_end=4260
69
+ _globals['_AGGREGATIONSPEC']._serialized_start=4263
70
+ _globals['_AGGREGATIONSPEC']._serialized_end=4422
71
+ _globals['_TRANSFORMATION']._serialized_start=4425
72
+ _globals['_TRANSFORMATION']._serialized_end=4902
73
+ _globals['_UDFTRANSFORMATION']._serialized_start=4904
74
+ _globals['_UDFTRANSFORMATION']._serialized_end=4946
75
+ _globals['_SQLTRANSFORMATION']._serialized_start=4948
76
+ _globals['_SQLTRANSFORMATION']._serialized_end=5004
77
+ _globals['_KOALASTRANSFORMATION']._serialized_start=5007
78
+ _globals['_KOALASTRANSFORMATION']._serialized_end=5138
79
+ _globals['_PYSPARKTRANSFORMATION']._serialized_start=5141
80
+ _globals['_PYSPARKTRANSFORMATION']._serialized_end=5269
81
+ _globals['_PANDASONSPARKTRANSFORMATION']._serialized_start=5272
82
+ _globals['_PANDASONSPARKTRANSFORMATION']._serialized_end=5406
83
+ _globals['_TRANSFORMARGUMENTS']._serialized_start=5409
84
+ _globals['_TRANSFORMARGUMENTS']._serialized_end=5553
85
+ _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._serialized_start=5508
86
+ _globals['_TRANSFORMARGUMENTS_QWARGSENTRY']._serialized_end=5553
87
+ _globals['_ONTHEFLYFEATURESET']._serialized_start=5555
88
+ _globals['_ONTHEFLYFEATURESET']._serialized_end=5657
89
+ _globals['_FUNCTION']._serialized_start=5660
90
+ _globals['_FUNCTION']._serialized_end=5810
91
+ _globals['_BACKFILL']._serialized_start=5813
92
+ _globals['_BACKFILL']._serialized_end=5994
93
+ _globals['_BACKFILL_FILLUPMETHOD']._serialized_start=5948
94
+ _globals['_BACKFILL_FILLUPMETHOD']._serialized_end=5994
95
+ _globals['_SQLFUNCTION']._serialized_start=5996
96
+ _globals['_SQLFUNCTION']._serialized_end=6022
97
+ _globals['_UDFFUNCTION']._serialized_start=6024
98
+ _globals['_UDFFUNCTION']._serialized_end=6051
99
+ _globals['_NEWONLY']._serialized_start=6053
100
+ _globals['_NEWONLY']._serialized_end=6062
101
+ _globals['_TIMEFRAME']._serialized_start=6065
102
+ _globals['_TIMEFRAME']._serialized_end=6225
103
+ _globals['_AGGREGATION']._serialized_start=6227
104
+ _globals['_AGGREGATION']._serialized_end=6334
105
+ _globals['_AGGREGATIONPOPULATION']._serialized_start=6336
106
+ _globals['_AGGREGATIONPOPULATION']._serialized_end=6359
107
+ _globals['_POPULATIONTIMEFRAMENEWONLY']._serialized_start=6361
108
+ _globals['_POPULATIONTIMEFRAMENEWONLY']._serialized_end=6389
109
+ _globals['_POPULATIONTIMEFRAME']._serialized_start=6391
110
+ _globals['_POPULATIONTIMEFRAME']._serialized_end=6497
111
+ _globals['_VANILLA']._serialized_start=6499
112
+ _globals['_VANILLA']._serialized_end=6508
113
+ _globals['_FULLREAD']._serialized_start=6511
114
+ _globals['_FULLREAD']._serialized_end=6670
115
+ _globals['_DATASOURCEREADPOLICY']._serialized_start=6673
116
+ _globals['_DATASOURCEREADPOLICY']._serialized_end=6883
115
117
  # @@protoc_insertion_point(module_scope)
@@ -147,6 +147,7 @@ class BatchFeatureSetV1(google.protobuf.message.Message):
147
147
  TRANSFORMATION_FIELD_NUMBER: builtins.int
148
148
  QWAK_INTERNAL_PROTOCOL_VERSION_FIELD_NUMBER: builtins.int
149
149
  REAL_TIME_FEATURE_EXTRACTOR_FIELD_NUMBER: builtins.int
150
+ DATA_RETENTION_OPTIONS_FIELD_NUMBER: builtins.int
150
151
  scheduling_policy: builtins.str
151
152
  """Scheduling policy of batch feature set. Can be a cron string format or @annotation: @daily, @monthly, @yearly"""
152
153
  offline_sink: builtins.bool
@@ -183,6 +184,8 @@ class BatchFeatureSetV1(google.protobuf.message.Message):
183
184
 
184
185
  @property
185
186
  def real_time_feature_extractor(self) -> frogml._proto.qwak.feature_store.features.real_time_feature_extractor_pb2.RealTimeFeatureExtractor: ...
187
+ @property
188
+ def data_retention_options(self) -> global___DataRetentionOptions: ...
186
189
  def __init__(
187
190
  self,
188
191
  *,
@@ -198,13 +201,30 @@ class BatchFeatureSetV1(google.protobuf.message.Message):
198
201
  transformation: global___Transformation | None = ...,
199
202
  qwak_internal_protocol_version: builtins.int = ...,
200
203
  real_time_feature_extractor: frogml._proto.qwak.feature_store.features.real_time_feature_extractor_pb2.RealTimeFeatureExtractor | None = ...,
204
+ data_retention_options: global___DataRetentionOptions | None = ...,
201
205
  ) -> None: ...
202
- def HasField(self, field_name: typing.Literal["backfill", b"backfill", "execution_spec", b"execution_spec", "feature_extractor", b"feature_extractor", "function", b"function", "monitoring_configurations", b"monitoring_configurations", "real_time_feature_extractor", b"real_time_feature_extractor", "transformation", b"transformation"]) -> builtins.bool: ...
203
- def ClearField(self, field_name: typing.Literal["backfill", b"backfill", "execution_spec", b"execution_spec", "feature_extractor", b"feature_extractor", "feature_set_batch_sources", b"feature_set_batch_sources", "function", b"function", "monitoring_configurations", b"monitoring_configurations", "offline_sink", b"offline_sink", "online_sink", b"online_sink", "qwak_internal_protocol_version", b"qwak_internal_protocol_version", "real_time_feature_extractor", b"real_time_feature_extractor", "scheduling_policy", b"scheduling_policy", "timestamp_column_name", b"timestamp_column_name", "transformation", b"transformation"]) -> None: ...
206
+ def HasField(self, field_name: typing.Literal["backfill", b"backfill", "data_retention_options", b"data_retention_options", "execution_spec", b"execution_spec", "feature_extractor", b"feature_extractor", "function", b"function", "monitoring_configurations", b"monitoring_configurations", "real_time_feature_extractor", b"real_time_feature_extractor", "transformation", b"transformation"]) -> builtins.bool: ...
207
+ def ClearField(self, field_name: typing.Literal["backfill", b"backfill", "data_retention_options", b"data_retention_options", "execution_spec", b"execution_spec", "feature_extractor", b"feature_extractor", "feature_set_batch_sources", b"feature_set_batch_sources", "function", b"function", "monitoring_configurations", b"monitoring_configurations", "offline_sink", b"offline_sink", "online_sink", b"online_sink", "qwak_internal_protocol_version", b"qwak_internal_protocol_version", "real_time_feature_extractor", b"real_time_feature_extractor", "scheduling_policy", b"scheduling_policy", "timestamp_column_name", b"timestamp_column_name", "transformation", b"transformation"]) -> None: ...
204
208
  def WhichOneof(self, oneof_group: typing.Literal["feature_extractor", b"feature_extractor"]) -> typing.Literal["real_time_feature_extractor"] | None: ...
205
209
 
206
210
  global___BatchFeatureSetV1 = BatchFeatureSetV1
207
211
 
212
+ @typing.final
213
+ class DataRetentionOptions(google.protobuf.message.Message):
214
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
215
+
216
+ ONLINE_TIME_TO_LIVE_SECONDS_FIELD_NUMBER: builtins.int
217
+ online_time_to_live_seconds: builtins.int
218
+ """Time to live per entity after event-time in the online store, in seconds."""
219
+ def __init__(
220
+ self,
221
+ *,
222
+ online_time_to_live_seconds: builtins.int = ...,
223
+ ) -> None: ...
224
+ def ClearField(self, field_name: typing.Literal["online_time_to_live_seconds", b"online_time_to_live_seconds"]) -> None: ...
225
+
226
+ global___DataRetentionOptions = DataRetentionOptions
227
+
208
228
  @typing.final
209
229
  class FeatureSetBatchSource(google.protobuf.message.Message):
210
230
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -16,7 +16,7 @@ from frogml._proto.qwak.feature_store.features import feature_set_types_pb2 as q
16
16
  from frogml._proto.qwak.feature_store.entities import entity_pb2 as qwak_dot_feature__store_dot_entities_dot_entity__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)qwak/feature_store/serving/metadata.proto\x12*com.qwak.ai.feature.store.serving.metadata\x1a\x33qwak/feature_store/features/feature_set_types.proto\x1a(qwak/feature_store/entities/entity.proto\"\xb0\x02\n&StreamingAggregationFeaturesetMetadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x65\n streaming_aggregation_featureset\x18\x04 \x01(\x0b\x32;.qwak.feature.store.features.StreamingAggregationFeatureSet\x12=\n\x06\x65ntity\x18\x05 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\x18\n\x10\x61vro_schema_json\x18\x06 \x01(\t\"\x8e\x02\n\x19\x42\x61tchFeaturesetV1Metadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x1d\n\x15qwak_protocol_version\x18\x04 \x01(\x05\x12K\n\x13\x62\x61tch_featureset_v1\x18\x05 \x01(\x0b\x32..qwak.feature.store.features.BatchFeatureSetV1\x12=\n\x06\x65ntity\x18\x06 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\"\x9a\x02\n\x1dStreamingFeaturesetV1Metadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x1d\n\x15qwak_protocol_version\x18\x04 \x01(\x05\x12S\n\x17streaming_featureset_v1\x18\x05 \x01(\x0b\x32\x32.qwak.feature.store.features.StreamingFeatureSetV1\x12=\n\x06\x65ntity\x18\x06 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\"\x7f\n\x1a\x46\x65\x61turesetMemoryUsageStats\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x15\n\rfeatureset_id\x18\x02 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x03 \x01(\t\x12\x19\n\x11online_used_bytes\x18\x04 \x01(\x03\x42,\n*com.qwak.ai.feature.store.serving.metadatab\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)qwak/feature_store/serving/metadata.proto\x12*com.qwak.ai.feature.store.serving.metadata\x1a\x33qwak/feature_store/features/feature_set_types.proto\x1a(qwak/feature_store/entities/entity.proto\"\xe9\x02\n&StreamingAggregationFeaturesetMetadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x65\n streaming_aggregation_featureset\x18\x04 \x01(\x0b\x32;.qwak.feature.store.features.StreamingAggregationFeatureSet\x12=\n\x06\x65ntity\x18\x05 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\x18\n\x10\x61vro_schema_json\x18\x06 \x01(\t\x12\"\n\x1a\x66\x65\x61tureset_repository_name\x18\x07 \x01(\t\x12\x13\n\x0bproject_key\x18\x08 \x01(\t\"\xc7\x02\n\x19\x42\x61tchFeaturesetV1Metadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x1d\n\x15qwak_protocol_version\x18\x04 \x01(\x05\x12K\n\x13\x62\x61tch_featureset_v1\x18\x05 \x01(\x0b\x32..qwak.feature.store.features.BatchFeatureSetV1\x12=\n\x06\x65ntity\x18\x06 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\"\n\x1a\x66\x65\x61tureset_repository_name\x18\x07 \x01(\t\x12\x13\n\x0bproject_key\x18\x08 \x01(\t\"\xd3\x02\n\x1dStreamingFeaturesetV1Metadata\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x02 \x01(\t\x12\x15\n\rfeatureset_id\x18\x03 \x01(\t\x12\x1d\n\x15qwak_protocol_version\x18\x04 \x01(\x05\x12S\n\x17streaming_featureset_v1\x18\x05 \x01(\x0b\x32\x32.qwak.feature.store.features.StreamingFeatureSetV1\x12=\n\x06\x65ntity\x18\x06 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\"\n\x1a\x66\x65\x61tureset_repository_name\x18\x07 \x01(\t\x12\x13\n\x0bproject_key\x18\x08 \x01(\t\"\x7f\n\x1a\x46\x65\x61turesetMemoryUsageStats\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x15\n\rfeatureset_id\x18\x02 \x01(\t\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x03 \x01(\t\x12\x19\n\x11online_used_bytes\x18\x04 \x01(\x03\x42,\n*com.qwak.ai.feature.store.serving.metadatab\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -25,11 +25,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
25
25
  _globals['DESCRIPTOR']._options = None
26
26
  _globals['DESCRIPTOR']._serialized_options = b'\n*com.qwak.ai.feature.store.serving.metadata'
27
27
  _globals['_STREAMINGAGGREGATIONFEATURESETMETADATA']._serialized_start=185
28
- _globals['_STREAMINGAGGREGATIONFEATURESETMETADATA']._serialized_end=489
29
- _globals['_BATCHFEATURESETV1METADATA']._serialized_start=492
30
- _globals['_BATCHFEATURESETV1METADATA']._serialized_end=762
31
- _globals['_STREAMINGFEATURESETV1METADATA']._serialized_start=765
32
- _globals['_STREAMINGFEATURESETV1METADATA']._serialized_end=1047
33
- _globals['_FEATURESETMEMORYUSAGESTATS']._serialized_start=1049
34
- _globals['_FEATURESETMEMORYUSAGESTATS']._serialized_end=1176
28
+ _globals['_STREAMINGAGGREGATIONFEATURESETMETADATA']._serialized_end=546
29
+ _globals['_BATCHFEATURESETV1METADATA']._serialized_start=549
30
+ _globals['_BATCHFEATURESETV1METADATA']._serialized_end=876
31
+ _globals['_STREAMINGFEATURESETV1METADATA']._serialized_start=879
32
+ _globals['_STREAMINGFEATURESETV1METADATA']._serialized_end=1218
33
+ _globals['_FEATURESETMEMORYUSAGESTATS']._serialized_start=1220
34
+ _globals['_FEATURESETMEMORYUSAGESTATS']._serialized_end=1347
35
35
  # @@protoc_insertion_point(module_scope)