frogml 1.2.47__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.
frogml/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  __author__ = "jfrog"
2
- __version__ = "1.2.47"
2
+ __version__ = "1.2.49"
3
3
 
4
4
  from frogml.sdk.model.decorators.api import api_decorator as api
5
5
  from frogml.sdk.model_loggers.model_logger import load_model, log_model
@@ -16,7 +16,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
16
16
  from frogml._proto.qwak.execution.v1 import backfill_pb2 as qwak_dot_execution_dot_v1_dot_backfill__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n qwak/execution/v1/jobs/job.proto\x12$qwak.feature.store.execution.v1.jobs\x1a\x1fgoogle/protobuf/timestamp.proto\x1a qwak/execution/v1/backfill.proto\"\xc0\x05\n\tJobRecord\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x17\n\rlegacy_run_id\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x65xecution_id\x18\x03 \x01(\tH\x00\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x04 \x01(\t\x12\x15\n\rfeatureset_id\x18\x05 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x06 \x01(\t\x12\x12\n\naccount_id\x18\x07 \x01(\t\x12\x43\n\njob_status\x18\x08 \x01(\x0e\x32/.qwak.feature.store.execution.v1.jobs.JobStatus\x12\x31\n\rcreation_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12G\n\x0cjob_metadata\x18\x0c \x01(\x0b\x32\x31.qwak.feature.store.execution.v1.jobs.JobMetadata\x12R\n\njob_labels\x18\r \x03(\x0b\x32>.qwak.feature.store.execution.v1.jobs.JobRecord.JobLabelsEntry\x12\x0c\n\x04\x63ode\x18\x0e \x01(\t\x12H\n\x04info\x18\x0f \x01(\x0b\x32\x38.qwak.feature.store.execution.v1.jobs.FailureInformationH\x01\x1a\x30\n\x0eJobLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07\x65xec_idB\x0e\n\x0c\x66\x61ilure_info\"\xea\x01\n\x0bJobMetadata\x12`\n\x18\x62\x61tch_ingestion_metadata\x18\x01 \x01(\x0b\x32<.qwak.feature.store.execution.v1.jobs.BatchIngestionMetadataH\x00\x12h\n!batch_backfill_ingestion_metadata\x18\x02 \x01(\x0b\x32;.qwak.feature.store.execution.v1.jobs.BatchBackfillMetadataH\x00\x42\x0f\n\rmetadata_type\"\xe7\x01\n\x16\x42\x61tchIngestionMetadata\x12<\n\x18ingested_data_start_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16ingested_data_end_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11num_affected_rows\x18\x03 \x01(\x03\x12\x38\n\x14\x62\x61tch_execution_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd6\x03\n\x15\x42\x61tchBackfillMetadata\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\x19\n\x11num_affected_rows\x18\x03 \x01(\x03\x12\x41\n\x1doffline_processing_start_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1boffline_processing_end_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x1conline_processing_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x1aonline_processing_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17last_batch_logical_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"b\n\x12\x46\x61ilureInformation\x12\x1e\n\x16original_error_message\x18\x01 \x01(\t\x12\x11\n\x07message\x18\x02 \x01(\tH\x00\x42\x19\n\x17\x66ormatted_error_message*\xac\x01\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x18\n\x14JOB_STATUS_COMPLETED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_TOO_EARLY\x10\x05\x12\x1d\n\x19LEGACY_JOB_STATUS_RUNNING\x10\x06\x12\x1d\n\x19LEGACY_JOB_STATUS_PENDING\x10\x07\x42G\n*com.qwak.ai.features.execution.api.v1.jobsP\x01Z\x17qwak/fsexecution;fsjobsb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n qwak/execution/v1/jobs/job.proto\x12$qwak.feature.store.execution.v1.jobs\x1a\x1fgoogle/protobuf/timestamp.proto\x1a qwak/execution/v1/backfill.proto\"\xc0\x05\n\tJobRecord\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x17\n\rlegacy_run_id\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x65xecution_id\x18\x03 \x01(\tH\x00\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x04 \x01(\t\x12\x15\n\rfeatureset_id\x18\x05 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x06 \x01(\t\x12\x12\n\naccount_id\x18\x07 \x01(\t\x12\x43\n\njob_status\x18\x08 \x01(\x0e\x32/.qwak.feature.store.execution.v1.jobs.JobStatus\x12\x31\n\rcreation_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12G\n\x0cjob_metadata\x18\x0c \x01(\x0b\x32\x31.qwak.feature.store.execution.v1.jobs.JobMetadata\x12R\n\njob_labels\x18\r \x03(\x0b\x32>.qwak.feature.store.execution.v1.jobs.JobRecord.JobLabelsEntry\x12\x0c\n\x04\x63ode\x18\x0e \x01(\t\x12H\n\x04info\x18\x0f \x01(\x0b\x32\x38.qwak.feature.store.execution.v1.jobs.FailureInformationH\x01\x1a\x30\n\x0eJobLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07\x65xec_idB\x0e\n\x0c\x66\x61ilure_info\"\xad\x03\n\x0bJobMetadata\x12`\n\x18\x62\x61tch_ingestion_metadata\x18\x01 \x01(\x0b\x32<.qwak.feature.store.execution.v1.jobs.BatchIngestionMetadataH\x00\x12h\n!batch_backfill_ingestion_metadata\x18\x02 \x01(\x0b\x32;.qwak.feature.store.execution.v1.jobs.BatchBackfillMetadataH\x00\x12^\n\x17\x62\x61tch_deletion_metadata\x18\x03 \x01(\x0b\x32;.qwak.feature.store.execution.v1.jobs.BatchDeletionMetadataH\x00\x12\x44\n\x1e\x65xpiration_watermark_timestamp\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x42\x0f\n\rmetadata_typeB\x1b\n\x19\x64\x61ta_retention_state_type\"\x9d\x01\n\x15\x42\x61tchDeletionMetadata\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\"\xe7\x01\n\x16\x42\x61tchIngestionMetadata\x12<\n\x18ingested_data_start_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16ingested_data_end_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11num_affected_rows\x18\x03 \x01(\x03\x12\x38\n\x14\x62\x61tch_execution_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd6\x03\n\x15\x42\x61tchBackfillMetadata\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\x19\n\x11num_affected_rows\x18\x03 \x01(\x03\x12\x41\n\x1doffline_processing_start_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12?\n\x1boffline_processing_end_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x1conline_processing_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x1aonline_processing_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17last_batch_logical_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"b\n\x12\x46\x61ilureInformation\x12\x1e\n\x16original_error_message\x18\x01 \x01(\t\x12\x11\n\x07message\x18\x02 \x01(\tH\x00\x42\x19\n\x17\x66ormatted_error_message*\xac\x01\n\tJobStatus\x12\x16\n\x12JOB_STATUS_INVALID\x10\x00\x12\x18\n\x14JOB_STATUS_COMPLETED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_TOO_EARLY\x10\x05\x12\x1d\n\x19LEGACY_JOB_STATUS_RUNNING\x10\x06\x12\x1d\n\x19LEGACY_JOB_STATUS_PENDING\x10\x07\x42G\n*com.qwak.ai.features.execution.api.v1.jobsP\x01Z\x17qwak/fsexecution;fsjobsb\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -26,18 +26,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
26
26
  _globals['DESCRIPTOR']._serialized_options = b'\n*com.qwak.ai.features.execution.api.v1.jobsP\001Z\027qwak/fsexecution;fsjobs'
27
27
  _globals['_JOBRECORD_JOBLABELSENTRY']._options = None
28
28
  _globals['_JOBRECORD_JOBLABELSENTRY']._serialized_options = b'8\001'
29
- _globals['_JOBSTATUS']._serialized_start=1893
30
- _globals['_JOBSTATUS']._serialized_end=2065
29
+ _globals['_JOBSTATUS']._serialized_start=2248
30
+ _globals['_JOBSTATUS']._serialized_end=2420
31
31
  _globals['_JOBRECORD']._serialized_start=142
32
32
  _globals['_JOBRECORD']._serialized_end=846
33
33
  _globals['_JOBRECORD_JOBLABELSENTRY']._serialized_start=771
34
34
  _globals['_JOBRECORD_JOBLABELSENTRY']._serialized_end=819
35
35
  _globals['_JOBMETADATA']._serialized_start=849
36
- _globals['_JOBMETADATA']._serialized_end=1083
37
- _globals['_BATCHINGESTIONMETADATA']._serialized_start=1086
38
- _globals['_BATCHINGESTIONMETADATA']._serialized_end=1317
39
- _globals['_BATCHBACKFILLMETADATA']._serialized_start=1320
40
- _globals['_BATCHBACKFILLMETADATA']._serialized_end=1790
41
- _globals['_FAILUREINFORMATION']._serialized_start=1792
42
- _globals['_FAILUREINFORMATION']._serialized_end=1890
36
+ _globals['_JOBMETADATA']._serialized_end=1278
37
+ _globals['_BATCHDELETIONMETADATA']._serialized_start=1281
38
+ _globals['_BATCHDELETIONMETADATA']._serialized_end=1438
39
+ _globals['_BATCHINGESTIONMETADATA']._serialized_start=1441
40
+ _globals['_BATCHINGESTIONMETADATA']._serialized_end=1672
41
+ _globals['_BATCHBACKFILLMETADATA']._serialized_start=1675
42
+ _globals['_BATCHBACKFILLMETADATA']._serialized_end=2145
43
+ _globals['_FAILUREINFORMATION']._serialized_start=2147
44
+ _globals['_FAILUREINFORMATION']._serialized_end=2245
43
45
  # @@protoc_insertion_point(module_scope)
@@ -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)
@@ -22,6 +22,8 @@ class StreamingAggregationFeaturesetMetadata(google.protobuf.message.Message):
22
22
  STREAMING_AGGREGATION_FEATURESET_FIELD_NUMBER: builtins.int
23
23
  ENTITY_FIELD_NUMBER: builtins.int
24
24
  AVRO_SCHEMA_JSON_FIELD_NUMBER: builtins.int
25
+ FEATURESET_REPOSITORY_NAME_FIELD_NUMBER: builtins.int
26
+ PROJECT_KEY_FIELD_NUMBER: builtins.int
25
27
  environment_id: builtins.str
26
28
  """Multi environment support"""
27
29
  featureset_name: builtins.str
@@ -30,6 +32,10 @@ class StreamingAggregationFeaturesetMetadata(google.protobuf.message.Message):
30
32
  """Featureset id"""
31
33
  avro_schema_json: builtins.str
32
34
  """The avro schema in json format that represents the AggregationSpec"""
35
+ featureset_repository_name: builtins.str
36
+ """Repository name of the FeatureSet"""
37
+ project_key: builtins.str
38
+ """Project key of the FeatureSet"""
33
39
  @property
34
40
  def streaming_aggregation_featureset(self) -> frogml._proto.qwak.feature_store.features.feature_set_types_pb2.StreamingAggregationFeatureSet:
35
41
  """Streaming aggregation featureset"""
@@ -47,9 +53,11 @@ class StreamingAggregationFeaturesetMetadata(google.protobuf.message.Message):
47
53
  streaming_aggregation_featureset: frogml._proto.qwak.feature_store.features.feature_set_types_pb2.StreamingAggregationFeatureSet | None = ...,
48
54
  entity: frogml._proto.qwak.feature_store.entities.entity_pb2.EntityDefinition | None = ...,
49
55
  avro_schema_json: builtins.str = ...,
56
+ featureset_repository_name: builtins.str = ...,
57
+ project_key: builtins.str = ...,
50
58
  ) -> None: ...
51
59
  def HasField(self, field_name: typing.Literal["entity", b"entity", "streaming_aggregation_featureset", b"streaming_aggregation_featureset"]) -> builtins.bool: ...
52
- def ClearField(self, field_name: typing.Literal["avro_schema_json", b"avro_schema_json", "entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "streaming_aggregation_featureset", b"streaming_aggregation_featureset"]) -> None: ...
60
+ def ClearField(self, field_name: typing.Literal["avro_schema_json", b"avro_schema_json", "entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "featureset_repository_name", b"featureset_repository_name", "project_key", b"project_key", "streaming_aggregation_featureset", b"streaming_aggregation_featureset"]) -> None: ...
53
61
 
54
62
  global___StreamingAggregationFeaturesetMetadata = StreamingAggregationFeaturesetMetadata
55
63
 
@@ -63,6 +71,8 @@ class BatchFeaturesetV1Metadata(google.protobuf.message.Message):
63
71
  QWAK_PROTOCOL_VERSION_FIELD_NUMBER: builtins.int
64
72
  BATCH_FEATURESET_V1_FIELD_NUMBER: builtins.int
65
73
  ENTITY_FIELD_NUMBER: builtins.int
74
+ FEATURESET_REPOSITORY_NAME_FIELD_NUMBER: builtins.int
75
+ PROJECT_KEY_FIELD_NUMBER: builtins.int
66
76
  environment_id: builtins.str
67
77
  """Multi environment support"""
68
78
  featureset_name: builtins.str
@@ -71,6 +81,10 @@ class BatchFeaturesetV1Metadata(google.protobuf.message.Message):
71
81
  """Featureset id"""
72
82
  qwak_protocol_version: builtins.int
73
83
  """qwak protocol version"""
84
+ featureset_repository_name: builtins.str
85
+ """Repository name of the FeatureSet"""
86
+ project_key: builtins.str
87
+ """Project key of the FeatureSet"""
74
88
  @property
75
89
  def batch_featureset_v1(self) -> frogml._proto.qwak.feature_store.features.feature_set_types_pb2.BatchFeatureSetV1:
76
90
  """batch v1 featureset"""
@@ -88,9 +102,11 @@ class BatchFeaturesetV1Metadata(google.protobuf.message.Message):
88
102
  qwak_protocol_version: builtins.int = ...,
89
103
  batch_featureset_v1: frogml._proto.qwak.feature_store.features.feature_set_types_pb2.BatchFeatureSetV1 | None = ...,
90
104
  entity: frogml._proto.qwak.feature_store.entities.entity_pb2.EntityDefinition | None = ...,
105
+ featureset_repository_name: builtins.str = ...,
106
+ project_key: builtins.str = ...,
91
107
  ) -> None: ...
92
108
  def HasField(self, field_name: typing.Literal["batch_featureset_v1", b"batch_featureset_v1", "entity", b"entity"]) -> builtins.bool: ...
93
- def ClearField(self, field_name: typing.Literal["batch_featureset_v1", b"batch_featureset_v1", "entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "qwak_protocol_version", b"qwak_protocol_version"]) -> None: ...
109
+ def ClearField(self, field_name: typing.Literal["batch_featureset_v1", b"batch_featureset_v1", "entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "featureset_repository_name", b"featureset_repository_name", "project_key", b"project_key", "qwak_protocol_version", b"qwak_protocol_version"]) -> None: ...
94
110
 
95
111
  global___BatchFeaturesetV1Metadata = BatchFeaturesetV1Metadata
96
112
 
@@ -104,6 +120,8 @@ class StreamingFeaturesetV1Metadata(google.protobuf.message.Message):
104
120
  QWAK_PROTOCOL_VERSION_FIELD_NUMBER: builtins.int
105
121
  STREAMING_FEATURESET_V1_FIELD_NUMBER: builtins.int
106
122
  ENTITY_FIELD_NUMBER: builtins.int
123
+ FEATURESET_REPOSITORY_NAME_FIELD_NUMBER: builtins.int
124
+ PROJECT_KEY_FIELD_NUMBER: builtins.int
107
125
  environment_id: builtins.str
108
126
  """Multi environment support"""
109
127
  featureset_name: builtins.str
@@ -112,6 +130,10 @@ class StreamingFeaturesetV1Metadata(google.protobuf.message.Message):
112
130
  """Featureset id"""
113
131
  qwak_protocol_version: builtins.int
114
132
  """qwak protocol version"""
133
+ featureset_repository_name: builtins.str
134
+ """Repository name of the FeatureSet"""
135
+ project_key: builtins.str
136
+ """Project key of the FeatureSet"""
115
137
  @property
116
138
  def streaming_featureset_v1(self) -> frogml._proto.qwak.feature_store.features.feature_set_types_pb2.StreamingFeatureSetV1:
117
139
  """Streaming v1 featureset"""
@@ -129,9 +151,11 @@ class StreamingFeaturesetV1Metadata(google.protobuf.message.Message):
129
151
  qwak_protocol_version: builtins.int = ...,
130
152
  streaming_featureset_v1: frogml._proto.qwak.feature_store.features.feature_set_types_pb2.StreamingFeatureSetV1 | None = ...,
131
153
  entity: frogml._proto.qwak.feature_store.entities.entity_pb2.EntityDefinition | None = ...,
154
+ featureset_repository_name: builtins.str = ...,
155
+ project_key: builtins.str = ...,
132
156
  ) -> None: ...
133
157
  def HasField(self, field_name: typing.Literal["entity", b"entity", "streaming_featureset_v1", b"streaming_featureset_v1"]) -> builtins.bool: ...
134
- def ClearField(self, field_name: typing.Literal["entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "qwak_protocol_version", b"qwak_protocol_version", "streaming_featureset_v1", b"streaming_featureset_v1"]) -> None: ...
158
+ def ClearField(self, field_name: typing.Literal["entity", b"entity", "environment_id", b"environment_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "featureset_repository_name", b"featureset_repository_name", "project_key", b"project_key", "qwak_protocol_version", b"qwak_protocol_version", "streaming_featureset_v1", b"streaming_featureset_v1"]) -> None: ...
135
159
 
136
160
  global___StreamingFeaturesetV1Metadata = StreamingFeaturesetV1Metadata
137
161
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: frogml
3
- Version: 1.2.47
3
+ Version: 1.2.49
4
4
  Summary: frogml contains the necessary objects and communication tools for using the JFrog ml Platform
5
5
  License: Apache-2.0
6
6
  Keywords: mlops,ml,deployment,serving,model
@@ -1,4 +1,4 @@
1
- frogml/__init__.py,sha256=nvwO4HCXHk0dxYeR0cagpgioYfR0AhrIPIVdCPaco5g,741
1
+ frogml/__init__.py,sha256=eZ5gQywwWQqzXQBfuejYMYeXA__BQG9au0QkUTfaf8g,741
2
2
  frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py,sha256=-SD6RYgn5DFBLlwTpH9YkV8aW_zYymBI68Y-12Fn0I0,4193
3
3
  frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi,sha256=s0rdjIYw_dOfmuentpri79ls5dC3NqoUq__-XeavaXE,9688
4
4
  frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
@@ -341,14 +341,14 @@ frogml/_proto/qwak/execution/v1/execution_service_pb2_grpc.py,sha256=mU-NtS1-zJZ
341
341
  frogml/_proto/qwak/execution/v1/internal/deployment/platform_details_pb2.py,sha256=ivjAepuIj4oZA7cliHQVN8uXIS24tWe-NlUsH7w-Nt4,1442
342
342
  frogml/_proto/qwak/execution/v1/internal/deployment/platform_details_pb2.pyi,sha256=Y2JJ2jIsyNA25gXERfkcIC0Lxj6X0UVRNQsjSFPxhOU,670
343
343
  frogml/_proto/qwak/execution/v1/internal/deployment/platform_details_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
344
- frogml/_proto/qwak/execution/v1/jobs/job_pb2.py,sha256=X5eg6ckwWpaIdTZQ6dn_tlMc4MUH5gc3Ri0bfbxOFv0,5284
345
- frogml/_proto/qwak/execution/v1/jobs/job_pb2.pyi,sha256=g7a5wpI-E1CCLusnyy5pHuK0y2hXRjCvQnsar3vwwXw,14883
344
+ frogml/_proto/qwak/execution/v1/jobs/job_pb2.py,sha256=8SP8odPdM2aDlAB-0T7WN_LdVEFmfI8mZHgmZjMBsqk,5910
345
+ frogml/_proto/qwak/execution/v1/jobs/job_pb2.pyi,sha256=HyAEnWP_8ua5R3hATfdivKF3Z1UTZJ4waB2sPTALtRs,17387
346
346
  frogml/_proto/qwak/execution/v1/jobs/job_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
347
347
  frogml/_proto/qwak/execution/v1/jobs/job_service_pb2.py,sha256=Nde4IurdiP9G-mFU6mjGhFNNtKwe9_pFHHUFfzy-s7U,10518
348
348
  frogml/_proto/qwak/execution/v1/jobs/job_service_pb2.pyi,sha256=HqnUYs0eUO9L4cBavZyPm61WijeyNUEj6Nl72jYO_sk,20494
349
349
  frogml/_proto/qwak/execution/v1/jobs/job_service_pb2_grpc.py,sha256=95HZekdR1Hfy2zFDvrTz12oNErvkmSzT1A960v9Uato,23233
350
- frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.py,sha256=_3HGN3MV8hfxYBwTaN7O7I4eQb-20wS98wFl_oSMFVg,5419
351
- frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.pyi,sha256=koA-MbzDFCt1rVEdeDm0N_SAqC7TUUcfeGMseZDlGdw,13549
350
+ frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.py,sha256=PASb8cw_36u1FH7rKmOtG1qMwRKJCVPd_qgdch92Yiw,6074
351
+ frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2.pyi,sha256=18TGsUgwpqmz2yUFuMRF17eK21fLcF9D71J-DibUI3E,16038
352
352
  frogml/_proto/qwak/execution/v1/jobs/reports/report_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
353
353
  frogml/_proto/qwak/execution/v1/state/execution_state_pb2.py,sha256=kT7HTbhsjZJbpNAvogHFg9EMcBg3GHxwA1PVInx8Tyc,1887
354
354
  frogml/_proto/qwak/execution/v1/state/execution_state_pb2.pyi,sha256=eqajbFrytOs1CZWoq3SygyR6fTgadqRgma4XUSkvnlQ,1862
@@ -401,8 +401,8 @@ frogml/_proto/qwak/feature_store/features/feature_set_state_pb2_grpc.py,sha256=1
401
401
  frogml/_proto/qwak/feature_store/features/feature_set_state_service_pb2.py,sha256=lHM92S2Qeq08xQlWMaCskhdLZi8XGSUqgMvxMdsGKh0,5121
402
402
  frogml/_proto/qwak/feature_store/features/feature_set_state_service_pb2.pyi,sha256=JAr2xc6181qr8JRaDPmKOi66rBDk_dFkZy7yqwq52kU,6859
403
403
  frogml/_proto/qwak/feature_store/features/feature_set_state_service_pb2_grpc.py,sha256=yT0knmt0gPMDE4JIEvnhapwKRmw4bzadhas0mAPy07o,11649
404
- frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.py,sha256=X4A3ezGpXqHyKWKSOKhERvDEDfeFw-zIBgW80w1ryvE,16995
405
- frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.pyi,sha256=UvTla-dtPFKw9iRhHRorvJcvaL2c-FKbRDRMkOvGyXs,43957
404
+ frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.py,sha256=h11I2xlIwLikJ25ta5_J92KOuaDes1KD35ZWys6eRZg,17311
405
+ frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.pyi,sha256=YOghlCY89LnxQ12Ehw3idkGfWj-78ewE234d19gw4OA,44904
406
406
  frogml/_proto/qwak/feature_store/features/feature_set_types_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
407
407
  frogml/_proto/qwak/feature_store/features/monitoring_pb2.py,sha256=lMI-mHRVOeGK-ExRTEsyM5TCwqE8XIs-PTqZRnpLvKs,1913
408
408
  frogml/_proto/qwak/feature_store/features/monitoring_pb2.pyi,sha256=srBL-5vdEYd1JkBxrZIWpCzgc6aqTxkE9cNhvNGffqE,2303
@@ -434,8 +434,8 @@ frogml/_proto/qwak/feature_store/repository/common/platform_pb2_grpc.py,sha256=1
434
434
  frogml/_proto/qwak/feature_store/serving/management_pb2.py,sha256=v9xZY5P0zX-E1PByAamrz-zjSoOUdN_hdsfaAMEuNbc,3013
435
435
  frogml/_proto/qwak/feature_store/serving/management_pb2.pyi,sha256=RUuAs3GV26qwJ5UlDvwynLDvBhbBz5sLI2R4oRP6IWE,2691
436
436
  frogml/_proto/qwak/feature_store/serving/management_pb2_grpc.py,sha256=j2E_8N7iLm49YrzdWYmaHgoIxzX7RE2FkeVPVcDfbiI,5438
437
- frogml/_proto/qwak/feature_store/serving/metadata_pb2.py,sha256=9wyVUZTFS1RuG2meuBX6sOrx-ErodGxdx_C9Y-s-BQY,3635
438
- frogml/_proto/qwak/feature_store/serving/metadata_pb2.pyi,sha256=s0bhYtNN0dgVYtikv_XU2qew0vPhZW8LcrbohC9LOVM,7630
437
+ frogml/_proto/qwak/feature_store/serving/metadata_pb2.py,sha256=izPUl8ffud-i5IvEsYYKyAdu7RpKd0vU17MKxfb9sBI,3947
438
+ frogml/_proto/qwak/feature_store/serving/metadata_pb2.pyi,sha256=WfTOK5bnJT3doMDmTyMyW_5vlnq2FVpz-GPjqveef3Y,8977
439
439
  frogml/_proto/qwak/feature_store/serving/metadata_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
440
440
  frogml/_proto/qwak/feature_store/serving/serving_pb2.py,sha256=Sc-3Pr9W0HVZSyL0ohFLCOKGz-jiko93jK0fwCv90Pg,9289
441
441
  frogml/_proto/qwak/feature_store/serving/serving_pb2.pyi,sha256=sQwqq8wMIGj13L--GYaFh4wKAv2BioiZlfeHBjF_3Ec,20267
@@ -1199,6 +1199,6 @@ frogml_services_mock/mocks/utils/exception_handlers.py,sha256=k_8mez3cwjNjKE9yGQ
1199
1199
  frogml_services_mock/services_mock.py,sha256=cVydasU1hXNbvz6K_M57GIZJ285i0s2fcMATzH2HH6I,21378
1200
1200
  frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1201
1201
  frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1202
- frogml-1.2.47.dist-info/METADATA,sha256=q8fKfEVudZ2jPcKn3gO_I07sbIuuT3Dh_Ul-QPXzpcQ,5599
1203
- frogml-1.2.47.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1204
- frogml-1.2.47.dist-info/RECORD,,
1202
+ frogml-1.2.49.dist-info/METADATA,sha256=Vrz7iBjaoL4ZDO3wLz5oRpCF3rq71JerwzhIXPL1k-w,5599
1203
+ frogml-1.2.49.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1204
+ frogml-1.2.49.dist-info/RECORD,,