frogml 1.1.145__py3-none-any.whl → 1.2.22__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 (76) hide show
  1. frogml/__init__.py +1 -1
  2. frogml/_proto/qwak/administration/account/v1/account_pb2.py +20 -18
  3. frogml/_proto/qwak/administration/account/v1/account_pb2.pyi +23 -2
  4. frogml/_proto/qwak/admiral/secret/v0/secret_pb2.py +16 -14
  5. frogml/_proto/qwak/admiral/secret/v0/secret_pb2.pyi +22 -2
  6. frogml/_proto/qwak/builds/build_values_pb2.py +24 -18
  7. frogml/_proto/qwak/builds/build_values_pb2.pyi +23 -1
  8. frogml/_proto/qwak/execution/v1/streaming_aggregation_pb2.py +18 -11
  9. frogml/_proto/qwak/execution/v1/streaming_aggregation_pb2.pyi +72 -1
  10. frogml/_proto/qwak/feature_store/features/feature_set_pb2.py +4 -4
  11. frogml/_proto/qwak/feature_store/features/feature_set_pb2.pyi +4 -0
  12. frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.py +60 -58
  13. frogml/_proto/qwak/feature_store/features/feature_set_types_pb2.pyi +8 -2
  14. frogml/_proto/qwak/kube_deployment_captain/batch_job_pb2.py +40 -40
  15. frogml/_proto/qwak/kube_deployment_captain/batch_job_pb2.pyi +7 -1
  16. frogml/_proto/qwak/secret_service/secret_service_pb2.pyi +1 -1
  17. frogml/core/clients/feature_store/execution_management_client.py +27 -0
  18. frogml/core/exceptions/__init__.py +1 -0
  19. frogml/core/exceptions/frogml_grpc_address_exception.py +9 -0
  20. frogml/core/feature_store/data_sources/attributes.py +5 -8
  21. frogml/core/feature_store/data_sources/source_authentication.py +5 -6
  22. frogml/core/feature_store/data_sources/time_partition_columns.py +28 -41
  23. frogml/core/feature_store/execution/backfill.py +17 -28
  24. frogml/core/feature_store/execution/streaming_backfill.py +49 -0
  25. frogml/core/feature_store/feature_sets/transformations/__init__.py +0 -2
  26. frogml/core/feature_store/feature_sets/transformations/transformations.py +0 -69
  27. frogml/core/inner/const.py +1 -0
  28. frogml/core/inner/di_configuration/__init__.py +1 -65
  29. frogml/core/inner/di_configuration/dependency_wiring.py +95 -0
  30. frogml/core/inner/tool/auth/TOKEN_ROTATION.md +51 -0
  31. frogml/core/inner/tool/auth/__init__.py +3 -0
  32. frogml/core/inner/tool/auth/auth_client.py +192 -0
  33. frogml/core/inner/tool/auth/token_maintainer.py +119 -0
  34. frogml/core/inner/tool/grpc/grpc_tools.py +118 -4
  35. frogml/core/model_loggers/artifact_logger.py +5 -4
  36. frogml/feature_store/_common/packaging.py +1 -1
  37. frogml/feature_store/data_sources/base.py +8 -8
  38. frogml/feature_store/data_sources/batch/_batch.py +0 -3
  39. frogml/feature_store/data_sources/batch/_jdbc.py +6 -7
  40. frogml/feature_store/data_sources/batch/athena.py +6 -7
  41. frogml/feature_store/data_sources/batch/big_query.py +8 -5
  42. frogml/feature_store/data_sources/batch/clickhouse.py +8 -8
  43. frogml/feature_store/data_sources/batch/csv.py +2 -4
  44. frogml/feature_store/data_sources/batch/elastic_search.py +2 -4
  45. frogml/feature_store/data_sources/batch/filesystem/aws.py +21 -22
  46. frogml/feature_store/data_sources/batch/filesystem/base_config.py +3 -3
  47. frogml/feature_store/data_sources/batch/filesystem/gcp.py +3 -7
  48. frogml/feature_store/data_sources/batch/mongodb.py +2 -4
  49. frogml/feature_store/data_sources/batch/mysql.py +2 -3
  50. frogml/feature_store/data_sources/batch/parquet.py +6 -6
  51. frogml/feature_store/data_sources/batch/postgres.py +2 -3
  52. frogml/feature_store/data_sources/batch/redshift.py +8 -6
  53. frogml/feature_store/data_sources/batch/snowflake.py +17 -11
  54. frogml/feature_store/data_sources/batch/unity_catalog.py +14 -10
  55. frogml/feature_store/data_sources/batch/vertica.py +10 -6
  56. frogml/feature_store/data_sources/streaming/_streaming.py +0 -2
  57. frogml/feature_store/data_sources/streaming/kafka/authentication.py +13 -19
  58. frogml/feature_store/data_sources/streaming/kafka/deserialization.py +22 -23
  59. frogml/feature_store/data_sources/streaming/kafka/kafka.py +13 -14
  60. frogml/feature_store/feature_sets/streaming.py +84 -63
  61. frogml/feature_store/feature_sets/streaming_backfill.py +90 -136
  62. frogml/feature_store/online/client.py +20 -4
  63. frogml/sdk/model_version/utils/files_tools.py +2 -3
  64. frogml/storage/authentication/utils/_authentication_utils.py +1 -1
  65. frogml/storage/constants.py +19 -0
  66. frogml/storage/frog_ml.py +5 -22
  67. frogml/storage/models/frogml_dataset_version.py +3 -3
  68. frogml/storage/models/frogml_model_version.py +6 -3
  69. frogml/storage/utils/_input_checks_utility.py +3 -1
  70. {frogml-1.1.145.dist-info → frogml-1.2.22.dist-info}/METADATA +35 -5
  71. {frogml-1.1.145.dist-info → frogml-1.2.22.dist-info}/RECORD +75 -69
  72. frogml_services_mock/mocks/authentication_service.py +3 -3
  73. frogml_services_mock/mocks/build_orchestrator_service_api.py +5 -2
  74. frogml_services_mock/mocks/execution_management_service.py +11 -1
  75. frogml/core/inner/tool/auth.py +0 -95
  76. {frogml-1.1.145.dist-info → frogml-1.2.22.dist-info}/WHEEL +0 -0
frogml/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  __author__ = "jfrog"
2
- __version__ = "1.1.145"
2
+ __version__ = "1.2.22"
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
@@ -18,7 +18,7 @@ from frogml._proto.qwak.administration.account.v1 import terms_pb2 as qwak_dot_a
18
18
  from frogml._proto.qwak.administration.account.v1 import jfrog_tenant_details_pb2 as qwak_dot_administration_dot_account_dot_v1_dot_jfrog__tenant__details__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,qwak/administration/account/v1/account.proto\x12\x1eqwak.administration.account.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x30qwak/administration/account/v1/preferences.proto\x1a*qwak/administration/account/v1/terms.proto\x1a\x39qwak/administration/account/v1/jfrog_tenant_details.proto\"\xc9\x04\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x45\n\x06status\x18\x04 \x01(\x0e\x32\x35.qwak.administration.account.v1.AccountActivityStatus\x12\x44\n\x0bpreferences\x18\x07 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x08 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x04type\x18\t \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\n \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\x0b \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\x0c \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\"c\n\x11ListAccountFilter\x12N\n\x0f\x61\x63tivity_status\x18\x01 \x01(\x0e\x32\x35.qwak.administration.account.v1.AccountActivityStatus\"_\n\x12\x41utoBindingAccount\x12\n\n\x02id\x18\x01 \x01(\t\x12=\n\x04rule\x18\x02 \x01(\x0b\x32/.qwak.administration.account.v1.AutoBindingRule\")\n\x0f\x41utoBindingRule\x12\x16\n\x0e\x65mail_hostname\x18\x01 \x01(\t\"\xb1\x02\n\x0c\x41\x63\x63ountBrief\x12\x12\n\naccount_id\x18\x01 \x01(\t\x12\x19\n\x0fjfrog_tenant_id\x18\x02 \x01(\tH\x00\x12\x1b\n\x0f\x65nvironment_ids\x18\x03 \x03(\tB\x02\x18\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_env_id\x18\x04 \x01(\t\x12L\n\x12\x65nvironment_briefs\x18\x05 \x03(\x0b\x32\x30.qwak.administration.account.v1.EnvironmentBrief\x12\x41\n\x0bjpd_details\x18\x06 \x01(\x0b\x32*.qwak.administration.account.v1.JPDDetailsH\x01\x42\x14\n\x12optional_tenant_idB\x16\n\x14optional_jpd_details\"B\n\x10\x45nvironmentBrief\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x16\n\x0estorage_bucket\x18\x02 \x01(\t*k\n\x15\x41\x63\x63ountActivityStatus\x12\x1a\n\x16\x41\x43\x43OUNT_STATUS_INVALID\x10\x00\x12\x19\n\x15\x41\x43\x43OUNT_STATUS_ACTIVE\x10\x01\x12\x1b\n\x17\x41\x43\x43OUNT_STATUS_DISABLED\x10\x02*=\n\x0b\x41\x63\x63ountType\x12\x18\n\x14\x41\x43\x43OUNT_TYPE_INVALID\x10\x00\x12\n\n\x06HYBRID\x10\x01\x12\x08\n\x04SAAS\x10\x02*L\n\x0b\x41\x63\x63ountTier\x12\x18\n\x14\x41\x43\x43OUNT_TIER_INVALID\x10\x00\x12\x08\n\x04\x46REE\x10\x01\x12\r\n\tVALIDATED\x10\x02\x12\n\n\x06PAYING\x10\x03\x42\xb4\x01\n)com.qwak.ai.administration.api.account.v1P\x01Z\x84\x01github.com/qwak-ai/qwak-platform/services/core/java/user-management/user-management-api/pb/qwak/administration/account/v1;account_v0b\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,qwak/administration/account/v1/account.proto\x12\x1eqwak.administration.account.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x30qwak/administration/account/v1/preferences.proto\x1a*qwak/administration/account/v1/terms.proto\x1a\x39qwak/administration/account/v1/jfrog_tenant_details.proto\"\xa3\x05\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x45\n\x06status\x18\x04 \x01(\x0e\x32\x35.qwak.administration.account.v1.AccountActivityStatus\x12\x44\n\x0bpreferences\x18\x07 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x08 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_modified_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x04type\x18\t \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\n \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\x0b \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\x0c \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\x12X\n\x18\x63ontrol_plane_descriptor\x18\r \x01(\x0b\x32\x36.qwak.administration.account.v1.ControlPlaneDescriptor\"&\n\x16\x43ontrolPlaneDescriptor\x12\x0c\n\x04host\x18\x01 \x01(\t\"c\n\x11ListAccountFilter\x12N\n\x0f\x61\x63tivity_status\x18\x01 \x01(\x0e\x32\x35.qwak.administration.account.v1.AccountActivityStatus\"_\n\x12\x41utoBindingAccount\x12\n\n\x02id\x18\x01 \x01(\t\x12=\n\x04rule\x18\x02 \x01(\x0b\x32/.qwak.administration.account.v1.AutoBindingRule\")\n\x0f\x41utoBindingRule\x12\x16\n\x0e\x65mail_hostname\x18\x01 \x01(\t\"\xb1\x02\n\x0c\x41\x63\x63ountBrief\x12\x12\n\naccount_id\x18\x01 \x01(\t\x12\x19\n\x0fjfrog_tenant_id\x18\x02 \x01(\tH\x00\x12\x1b\n\x0f\x65nvironment_ids\x18\x03 \x03(\tB\x02\x18\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_env_id\x18\x04 \x01(\t\x12L\n\x12\x65nvironment_briefs\x18\x05 \x03(\x0b\x32\x30.qwak.administration.account.v1.EnvironmentBrief\x12\x41\n\x0bjpd_details\x18\x06 \x01(\x0b\x32*.qwak.administration.account.v1.JPDDetailsH\x01\x42\x14\n\x12optional_tenant_idB\x16\n\x14optional_jpd_details\"B\n\x10\x45nvironmentBrief\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x16\n\x0estorage_bucket\x18\x02 \x01(\t*k\n\x15\x41\x63\x63ountActivityStatus\x12\x1a\n\x16\x41\x43\x43OUNT_STATUS_INVALID\x10\x00\x12\x19\n\x15\x41\x43\x43OUNT_STATUS_ACTIVE\x10\x01\x12\x1b\n\x17\x41\x43\x43OUNT_STATUS_DISABLED\x10\x02*=\n\x0b\x41\x63\x63ountType\x12\x18\n\x14\x41\x43\x43OUNT_TYPE_INVALID\x10\x00\x12\n\n\x06HYBRID\x10\x01\x12\x08\n\x04SAAS\x10\x02*L\n\x0b\x41\x63\x63ountTier\x12\x18\n\x14\x41\x43\x43OUNT_TIER_INVALID\x10\x00\x12\x08\n\x04\x46REE\x10\x01\x12\r\n\tVALIDATED\x10\x02\x12\n\n\x06PAYING\x10\x03\x42\xb4\x01\n)com.qwak.ai.administration.api.account.v1P\x01Z\x84\x01github.com/qwak-ai/qwak-platform/services/core/java/user-management/user-management-api/pb/qwak/administration/account/v1;account_v0b\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -28,22 +28,24 @@ if _descriptor._USE_C_DESCRIPTORS == False:
28
28
  _globals['DESCRIPTOR']._serialized_options = b'\n)com.qwak.ai.administration.api.account.v1P\001Z\204\001github.com/qwak-ai/qwak-platform/services/core/java/user-management/user-management-api/pb/qwak/administration/account/v1;account_v0'
29
29
  _globals['_ACCOUNTBRIEF'].fields_by_name['environment_ids']._options = None
30
30
  _globals['_ACCOUNTBRIEF'].fields_by_name['environment_ids']._serialized_options = b'\030\001'
31
- _globals['_ACCOUNTACTIVITYSTATUS']._serialized_start=1471
32
- _globals['_ACCOUNTACTIVITYSTATUS']._serialized_end=1578
33
- _globals['_ACCOUNTTYPE']._serialized_start=1580
34
- _globals['_ACCOUNTTYPE']._serialized_end=1641
35
- _globals['_ACCOUNTTIER']._serialized_start=1643
36
- _globals['_ACCOUNTTIER']._serialized_end=1719
31
+ _globals['_ACCOUNTACTIVITYSTATUS']._serialized_start=1601
32
+ _globals['_ACCOUNTACTIVITYSTATUS']._serialized_end=1708
33
+ _globals['_ACCOUNTTYPE']._serialized_start=1710
34
+ _globals['_ACCOUNTTYPE']._serialized_end=1771
35
+ _globals['_ACCOUNTTIER']._serialized_start=1773
36
+ _globals['_ACCOUNTTIER']._serialized_end=1849
37
37
  _globals['_ACCOUNT']._serialized_start=267
38
- _globals['_ACCOUNT']._serialized_end=852
39
- _globals['_LISTACCOUNTFILTER']._serialized_start=854
40
- _globals['_LISTACCOUNTFILTER']._serialized_end=953
41
- _globals['_AUTOBINDINGACCOUNT']._serialized_start=955
42
- _globals['_AUTOBINDINGACCOUNT']._serialized_end=1050
43
- _globals['_AUTOBINDINGRULE']._serialized_start=1052
44
- _globals['_AUTOBINDINGRULE']._serialized_end=1093
45
- _globals['_ACCOUNTBRIEF']._serialized_start=1096
46
- _globals['_ACCOUNTBRIEF']._serialized_end=1401
47
- _globals['_ENVIRONMENTBRIEF']._serialized_start=1403
48
- _globals['_ENVIRONMENTBRIEF']._serialized_end=1469
38
+ _globals['_ACCOUNT']._serialized_end=942
39
+ _globals['_CONTROLPLANEDESCRIPTOR']._serialized_start=944
40
+ _globals['_CONTROLPLANEDESCRIPTOR']._serialized_end=982
41
+ _globals['_LISTACCOUNTFILTER']._serialized_start=984
42
+ _globals['_LISTACCOUNTFILTER']._serialized_end=1083
43
+ _globals['_AUTOBINDINGACCOUNT']._serialized_start=1085
44
+ _globals['_AUTOBINDINGACCOUNT']._serialized_end=1180
45
+ _globals['_AUTOBINDINGRULE']._serialized_start=1182
46
+ _globals['_AUTOBINDINGRULE']._serialized_end=1223
47
+ _globals['_ACCOUNTBRIEF']._serialized_start=1226
48
+ _globals['_ACCOUNTBRIEF']._serialized_end=1531
49
+ _globals['_ENVIRONMENTBRIEF']._serialized_start=1533
50
+ _globals['_ENVIRONMENTBRIEF']._serialized_end=1599
49
51
  # @@protoc_insertion_point(module_scope)
@@ -115,6 +115,7 @@ class Account(google.protobuf.message.Message):
115
115
  TIER_FIELD_NUMBER: builtins.int
116
116
  ACCEPTED_TERMS_FIELD_NUMBER: builtins.int
117
117
  JFROG_TENANT_DETAILS_FIELD_NUMBER: builtins.int
118
+ CONTROL_PLANE_DESCRIPTOR_FIELD_NUMBER: builtins.int
118
119
  id: builtins.str
119
120
  """Assigned account ID"""
120
121
  name: builtins.str
@@ -147,6 +148,10 @@ class Account(google.protobuf.message.Message):
147
148
  def jfrog_tenant_details(self) -> frogml._proto.qwak.administration.account.v1.jfrog_tenant_details_pb2.JfrogTenantDetails:
148
149
  """The JFrog tenant details"""
149
150
 
151
+ @property
152
+ def control_plane_descriptor(self) -> global___ControlPlaneDescriptor:
153
+ """The Control Plane descriptor"""
154
+
150
155
  def __init__(
151
156
  self,
152
157
  *,
@@ -161,12 +166,28 @@ class Account(google.protobuf.message.Message):
161
166
  tier: global___AccountTier.ValueType = ...,
162
167
  accepted_terms: frogml._proto.qwak.administration.account.v1.terms_pb2.AccountAcceptedTerms | None = ...,
163
168
  jfrog_tenant_details: frogml._proto.qwak.administration.account.v1.jfrog_tenant_details_pb2.JfrogTenantDetails | None = ...,
169
+ control_plane_descriptor: global___ControlPlaneDescriptor | None = ...,
164
170
  ) -> None: ...
165
- def HasField(self, field_name: typing.Literal["accepted_terms", b"accepted_terms", "created_at", b"created_at", "jfrog_tenant_details", b"jfrog_tenant_details", "last_modified_at", b"last_modified_at", "preferences", b"preferences"]) -> builtins.bool: ...
166
- def ClearField(self, field_name: typing.Literal["accepted_terms", b"accepted_terms", "created_at", b"created_at", "default_environment_id", b"default_environment_id", "id", b"id", "jfrog_tenant_details", b"jfrog_tenant_details", "last_modified_at", b"last_modified_at", "name", b"name", "preferences", b"preferences", "status", b"status", "tier", b"tier", "type", b"type"]) -> None: ...
171
+ def HasField(self, field_name: typing.Literal["accepted_terms", b"accepted_terms", "control_plane_descriptor", b"control_plane_descriptor", "created_at", b"created_at", "jfrog_tenant_details", b"jfrog_tenant_details", "last_modified_at", b"last_modified_at", "preferences", b"preferences"]) -> builtins.bool: ...
172
+ def ClearField(self, field_name: typing.Literal["accepted_terms", b"accepted_terms", "control_plane_descriptor", b"control_plane_descriptor", "created_at", b"created_at", "default_environment_id", b"default_environment_id", "id", b"id", "jfrog_tenant_details", b"jfrog_tenant_details", "last_modified_at", b"last_modified_at", "name", b"name", "preferences", b"preferences", "status", b"status", "tier", b"tier", "type", b"type"]) -> None: ...
167
173
 
168
174
  global___Account = Account
169
175
 
176
+ @typing.final
177
+ class ControlPlaneDescriptor(google.protobuf.message.Message):
178
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
179
+
180
+ HOST_FIELD_NUMBER: builtins.int
181
+ host: builtins.str
182
+ def __init__(
183
+ self,
184
+ *,
185
+ host: builtins.str = ...,
186
+ ) -> None: ...
187
+ def ClearField(self, field_name: typing.Literal["host", b"host"]) -> None: ...
188
+
189
+ global___ControlPlaneDescriptor = ControlPlaneDescriptor
190
+
170
191
  @typing.final
171
192
  class ListAccountFilter(google.protobuf.message.Message):
172
193
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -16,7 +16,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
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/admiral/secret/v0/secret.proto\x12\x16qwak.admiral.secret.v0\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1f\n\x0eUserSecretSpec\x12\r\n\x05value\x18\x02 \x01(\t\"L\n\x10SystemSecretSpec\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).qwak.admiral.secret.v0.SystemSecretValue\"\x99\x01\n\x16SystemSecretDefinition\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x36\n\x04spec\x18\x02 \x01(\x0b\x32(.qwak.admiral.secret.v0.SystemSecretSpec\"C\n\x1b\x45nvironmentSecretIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\"\xa0\x01\n\x1fSetUserEnvironmentSecretOptions\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x34\n\x04spec\x18\x02 \x01(\x0b\x32&.qwak.admiral.secret.v0.UserSecretSpec\"\xa4\x01\n!SetSystemEnvironmentSecretOptions\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x36\n\x04spec\x18\x02 \x01(\x0b\x32(.qwak.admiral.secret.v0.SystemSecretSpec\"\xa5\x01\n\x11SystemSecretValue\x12\x10\n\x06opaque\x18\x02 \x01(\tH\x00\x12\x35\n\x12\x64ocker_config_json\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x12>\n\x0bopaque_pair\x18\x04 \x01(\x0b\x32\'.qwak.admiral.secret.v0.OpaquePairValueH\x00\x42\x07\n\x05value\"\x82\x01\n\x0fOpaquePairValue\x12\x41\n\x05pairs\x18\x04 \x03(\x0b\x32\x32.qwak.admiral.secret.v0.OpaquePairValue.PairsEntry\x1a,\n\nPairsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x0e\x41\x63\x63ountSecrets\x12\x42\n\x07secrets\x18\x01 \x03(\x0b\x32\x31.qwak.admiral.secret.v0.EnvironmentSecretMetadata\"\xc9\x01\n\x19\x45nvironmentSecretMetadata\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0flast_updated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x8c\x01\n\x1d\x63om.qwak.ai.admiral.secret.v0P\x01Zigithub.com/qwak-ai/qwak-platform/services/core/go/admiral/admiral-api/pb/qwak/admiral/secret/v0;secret_v0b\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#qwak/admiral/secret/v0/secret.proto\x12\x16qwak.admiral.secret.v0\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1f\n\x0eUserSecretSpec\x12\r\n\x05value\x18\x02 \x01(\t\"L\n\x10SystemSecretSpec\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).qwak.admiral.secret.v0.SystemSecretValue\"\x99\x01\n\x16SystemSecretDefinition\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x36\n\x04spec\x18\x02 \x01(\x0b\x32(.qwak.admiral.secret.v0.SystemSecretSpec\"C\n\x1b\x45nvironmentSecretIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\"\x82\x02\n\x1fSetUserEnvironmentSecretOptions\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x34\n\x04spec\x18\x02 \x01(\x0b\x32&.qwak.admiral.secret.v0.UserSecretSpec\x12\x43\n\x10platform_options\x18\x03 \x01(\x0b\x32\'.qwak.admiral.secret.v0.PlatformOptionsH\x00\x42\x1b\n\x19optional_platform_options\"&\n\x0fPlatformOptions\x12\x13\n\x0bproject_key\x18\x01 \x01(\t\"\xa4\x01\n!SetSystemEnvironmentSecretOptions\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12\x36\n\x04spec\x18\x02 \x01(\x0b\x32(.qwak.admiral.secret.v0.SystemSecretSpec\"\xa5\x01\n\x11SystemSecretValue\x12\x10\n\x06opaque\x18\x02 \x01(\tH\x00\x12\x35\n\x12\x64ocker_config_json\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x12>\n\x0bopaque_pair\x18\x04 \x01(\x0b\x32\'.qwak.admiral.secret.v0.OpaquePairValueH\x00\x42\x07\n\x05value\"\x82\x01\n\x0fOpaquePairValue\x12\x41\n\x05pairs\x18\x04 \x03(\x0b\x32\x32.qwak.admiral.secret.v0.OpaquePairValue.PairsEntry\x1a,\n\nPairsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x0e\x41\x63\x63ountSecrets\x12\x42\n\x07secrets\x18\x01 \x03(\x0b\x32\x31.qwak.admiral.secret.v0.EnvironmentSecretMetadata\"\xc9\x01\n\x19\x45nvironmentSecretMetadata\x12G\n\nidentifier\x18\x01 \x01(\x0b\x32\x33.qwak.admiral.secret.v0.EnvironmentSecretIdentifier\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0flast_updated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x8c\x01\n\x1d\x63om.qwak.ai.admiral.secret.v0P\x01Zigithub.com/qwak-ai/qwak-platform/services/core/go/admiral/admiral-api/pb/qwak/admiral/secret/v0;secret_v0b\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -35,17 +35,19 @@ if _descriptor._USE_C_DESCRIPTORS == False:
35
35
  _globals['_ENVIRONMENTSECRETIDENTIFIER']._serialized_start=393
36
36
  _globals['_ENVIRONMENTSECRETIDENTIFIER']._serialized_end=460
37
37
  _globals['_SETUSERENVIRONMENTSECRETOPTIONS']._serialized_start=463
38
- _globals['_SETUSERENVIRONMENTSECRETOPTIONS']._serialized_end=623
39
- _globals['_SETSYSTEMENVIRONMENTSECRETOPTIONS']._serialized_start=626
40
- _globals['_SETSYSTEMENVIRONMENTSECRETOPTIONS']._serialized_end=790
41
- _globals['_SYSTEMSECRETVALUE']._serialized_start=793
42
- _globals['_SYSTEMSECRETVALUE']._serialized_end=958
43
- _globals['_OPAQUEPAIRVALUE']._serialized_start=961
44
- _globals['_OPAQUEPAIRVALUE']._serialized_end=1091
45
- _globals['_OPAQUEPAIRVALUE_PAIRSENTRY']._serialized_start=1047
46
- _globals['_OPAQUEPAIRVALUE_PAIRSENTRY']._serialized_end=1091
47
- _globals['_ACCOUNTSECRETS']._serialized_start=1093
48
- _globals['_ACCOUNTSECRETS']._serialized_end=1177
49
- _globals['_ENVIRONMENTSECRETMETADATA']._serialized_start=1180
50
- _globals['_ENVIRONMENTSECRETMETADATA']._serialized_end=1381
38
+ _globals['_SETUSERENVIRONMENTSECRETOPTIONS']._serialized_end=721
39
+ _globals['_PLATFORMOPTIONS']._serialized_start=723
40
+ _globals['_PLATFORMOPTIONS']._serialized_end=761
41
+ _globals['_SETSYSTEMENVIRONMENTSECRETOPTIONS']._serialized_start=764
42
+ _globals['_SETSYSTEMENVIRONMENTSECRETOPTIONS']._serialized_end=928
43
+ _globals['_SYSTEMSECRETVALUE']._serialized_start=931
44
+ _globals['_SYSTEMSECRETVALUE']._serialized_end=1096
45
+ _globals['_OPAQUEPAIRVALUE']._serialized_start=1099
46
+ _globals['_OPAQUEPAIRVALUE']._serialized_end=1229
47
+ _globals['_OPAQUEPAIRVALUE_PAIRSENTRY']._serialized_start=1185
48
+ _globals['_OPAQUEPAIRVALUE_PAIRSENTRY']._serialized_end=1229
49
+ _globals['_ACCOUNTSECRETS']._serialized_start=1231
50
+ _globals['_ACCOUNTSECRETS']._serialized_end=1315
51
+ _globals['_ENVIRONMENTSECRETMETADATA']._serialized_start=1318
52
+ _globals['_ENVIRONMENTSECRETMETADATA']._serialized_end=1519
51
53
  # @@protoc_insertion_point(module_scope)
@@ -100,6 +100,7 @@ class SetUserEnvironmentSecretOptions(google.protobuf.message.Message):
100
100
 
101
101
  IDENTIFIER_FIELD_NUMBER: builtins.int
102
102
  SPEC_FIELD_NUMBER: builtins.int
103
+ PLATFORM_OPTIONS_FIELD_NUMBER: builtins.int
103
104
  @property
104
105
  def identifier(self) -> global___EnvironmentSecretIdentifier:
105
106
  """Secret identifier"""
@@ -108,17 +109,36 @@ class SetUserEnvironmentSecretOptions(google.protobuf.message.Message):
108
109
  def spec(self) -> global___UserSecretSpec:
109
110
  """Secret Spec"""
110
111
 
112
+ @property
113
+ def platform_options(self) -> global___PlatformOptions: ...
111
114
  def __init__(
112
115
  self,
113
116
  *,
114
117
  identifier: global___EnvironmentSecretIdentifier | None = ...,
115
118
  spec: global___UserSecretSpec | None = ...,
119
+ platform_options: global___PlatformOptions | None = ...,
116
120
  ) -> None: ...
117
- def HasField(self, field_name: typing.Literal["identifier", b"identifier", "spec", b"spec"]) -> builtins.bool: ...
118
- def ClearField(self, field_name: typing.Literal["identifier", b"identifier", "spec", b"spec"]) -> None: ...
121
+ def HasField(self, field_name: typing.Literal["identifier", b"identifier", "optional_platform_options", b"optional_platform_options", "platform_options", b"platform_options", "spec", b"spec"]) -> builtins.bool: ...
122
+ def ClearField(self, field_name: typing.Literal["identifier", b"identifier", "optional_platform_options", b"optional_platform_options", "platform_options", b"platform_options", "spec", b"spec"]) -> None: ...
123
+ def WhichOneof(self, oneof_group: typing.Literal["optional_platform_options", b"optional_platform_options"]) -> typing.Literal["platform_options"] | None: ...
119
124
 
120
125
  global___SetUserEnvironmentSecretOptions = SetUserEnvironmentSecretOptions
121
126
 
127
+ @typing.final
128
+ class PlatformOptions(google.protobuf.message.Message):
129
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
130
+
131
+ PROJECT_KEY_FIELD_NUMBER: builtins.int
132
+ project_key: builtins.str
133
+ def __init__(
134
+ self,
135
+ *,
136
+ project_key: builtins.str = ...,
137
+ ) -> None: ...
138
+ def ClearField(self, field_name: typing.Literal["project_key", b"project_key"]) -> None: ...
139
+
140
+ global___PlatformOptions = PlatformOptions
141
+
122
142
  @typing.final
123
143
  class SetSystemEnvironmentSecretOptions(google.protobuf.message.Message):
124
144
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from frogml._proto.qwak.user_application.common.v0 import resources_pb2 as qwak_dot_user__application_dot_common_dot_v0_dot_resources__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eqwak/builds/build_values.proto\x12\x15qwak.build.management\x1a/qwak/user_application/common/v0/resources.proto\"\xc3\x03\n\x10ModelBuildValues\x12\x34\n\nbuild_info\x18\x01 \x01(\x0b\x32 .qwak.build.management.BuildInfo\x12<\n\x0emodel_metadata\x18\x02 \x01(\x0b\x32$.qwak.build.management.ModelMetadata\x12\x45\n\x13model_code_location\x18\x03 \x01(\x0b\x32(.qwak.build.management.ModelCodeLocation\x12G\n\x14\x62uild_execution_spec\x18\x04 \x01(\x0b\x32).qwak.build.management.BuildExecutionSpec\x12\x30\n\x08sdk_spec\x18\x05 \x01(\x0b\x32\x1e.qwak.build.management.SdkSpec\x12G\n\x14jfrog_ecosystem_spec\x18\x06 \x01(\x0b\x32).qwak.build.management.JfrogEcosystemSpec\x12\x30\n\x08job_spec\x18\x07 \x01(\x0b\x32\x1e.qwak.build.management.JobSpec\"\xa3\x01\n\tBuildInfo\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x12\n\nbuild_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x62uild_config\x18\x04 \x01(\t\x12\x45\n\x13\x62uild_properties_v1\x18\x05 \x01(\x0b\x32(.qwak.build.management.BuildPropertiesV1\"]\n\x11\x42uildPropertiesV1\x12\x18\n\x10\x62uild_config_url\x18\x01 \x01(\t\x12\x15\n\rsdk_wheel_url\x18\x02 \x01(\t\x12\x17\n\x0fsdk_version_url\x18\x03 \x01(\t\"\x8e\x01\n\rModelMetadata\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\naccount_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x46\n\x13\x61rtifactory_details\x18\x04 \x01(\x0b\x32).qwak.build.management.ArtifactoryDetails\")\n\x12\x41rtifactoryDetails\x12\x13\n\x0bproject_key\x18\x01 \x01(\t\"\xa0\x01\n\x11ModelCodeLocation\x12\x1c\n\x14main_model_directory\x18\x01 \x01(\t\x12\x34\n\tlocal_uri\x18\x02 \x01(\x0b\x32\x1f.qwak.build.management.LocalUriH\x00\x12\x30\n\x07git_uri\x18\x03 \x01(\x0b\x32\x1d.qwak.build.management.GitUriH\x00\x42\x05\n\x03uri\"\x18\n\x08LocalUri\x12\x0c\n\x04path\x18\x01 \x01(\t\"M\n\x06GitUri\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x36\n\x0bgit_details\x18\x02 \x01(\x0b\x32!.qwak.build.management.GitDetails\"|\n\nGitDetails\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x15\n\x0b\x63redentials\x18\x03 \x01(\tH\x00\x12!\n\x17\x63redentials_secret_name\x18\x04 \x01(\tH\x00\x42\x11\n\x0fgit_credentials\"\xd0\x02\n\x12\x42uildExecutionSpec\x12\x1f\n\x17\x62uild_image_destination\x18\x01 \x01(\t\x12\"\n\x1ashould_build_without_cache\x18\x02 \x01(\x08\x12G\n\x14logs_verbosity_level\x18\x03 \x01(\x0e\x32).qwak.build.management.LogsVerbosityLevel\x12\x12\n\nbase_image\x18\x04 \x01(\t\x12\x1b\n\x13\x63ustom_iam_role_arn\x18\x05 \x01(\t\x12\x10\n\x08\x65nv_vars\x18\x06 \x03(\t\x12\'\n\x1fremote_builder_auth_secret_name\x18\x07 \x01(\t\x12@\n\x10\x63ontainer_engine\x18\x08 \x01(\x0b\x32&.qwak.build.management.ContainerEngine\"a\n\x07SdkSpec\x12\x13\n\x0bsdk_version\x18\x01 \x01(\t\x12\x1b\n\x13sdk_extra_index_url\x18\x02 \x01(\t\x12$\n\x1csdk_runtime_version_override\x18\x03 \x01(\t\"k\n\x12JfrogEcosystemSpec\x12\x0f\n\x07\x62\x61seUrl\x18\x01 \x01(\t\x12\x1d\n\x15\x61\x63\x63\x65ssTokenSecretName\x18\x02 \x01(\t\x12%\n\x1d\x61rtifactorySettingsSecretName\x18\x03 \x01(\t\"\x9d\x03\n\x07JobSpec\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\"\n\x1aprovision_instance_timeout\x18\x02 \x01(\x05\x12>\n\x0fpurchase_option\x18\x03 \x01(\x0e\x32%.qwak.build.management.PurchaseOption\x12$\n\x1cis_node_optimization_enabled\x18\x04 \x01(\x08\x12\"\n\x1ashould_use_build_isolation\x18\x05 \x01(\x08\x12#\n\x1bis_multi_tenant_environment\x18\x06 \x01(\x08\x12\x1a\n\x12is_self_hosted_jpd\x18\n \x01(\x08\x12 \n\x18\x62uild_executor_image_url\x18\x07 \x01(\t\x12<\n\x0e\x63loud_provider\x18\x08 \x01(\x0e\x32$.qwak.build.management.CloudProvider\x12\x30\n\x08job_size\x18\t \x01(\x0b\x32\x1e.qwak.build.management.JobSize\"\x9e\x02\n\x07JobSize\x12\x0f\n\x03\x63pu\x18\x01 \x01(\x02\x42\x02\x18\x01\x12\x19\n\rmemory_amount\x18\x02 \x01(\x05\x42\x02\x18\x01\x12;\n\x0cmemory_units\x18\x03 \x01(\x0e\x32!.qwak.build.management.MemoryUnitB\x02\x18\x01\x12H\n\rgpu_resources\x18\x04 \x01(\x0b\x32-.qwak.user_application.common.v0.GpuResourcesB\x02\x18\x01\x12`\n\x1c\x63lient_pod_compute_resources\x18\x05 \x01(\x0b\x32:.qwak.user_application.common.v0.ClientPodComputeResources\"\x99\x01\n\x0f\x43ontainerEngine\x12>\n\x06\x64ocker\x18\x01 \x01(\x0b\x32,.qwak.build.management.DockerContainerEngineH\x00\x12>\n\x06podman\x18\x02 \x01(\x0b\x32,.qwak.build.management.PodmanContainerEngineH\x00\x42\x06\n\x04type\"\x17\n\x15\x44ockerContainerEngine\"\x17\n\x15PodmanContainerEngine*e\n\x0ePurchaseOption\x12\x1b\n\x17INVALID_PURCHASE_OPTION\x10\x00\x12\x18\n\x14SPOT_PURCHASE_OPTION\x10\x01\x12\x1c\n\x18ONDEMAND_PURCHASE_OPTION\x10\x02*H\n\rCloudProvider\x12\x1a\n\x16INVALID_CLOUD_PROVIDER\x10\x00\x12\x07\n\x03\x41WS\x10\x01\x12\x07\n\x03GCP\x10\x02\x12\t\n\x05\x41ZURE\x10\x03*7\n\nMemoryUnit\x12\x17\n\x13INVALID_MEMORY_UNIT\x10\x00\x12\x07\n\x03MIB\x10\x01\x12\x07\n\x03GIB\x10\x02*S\n\x12LogsVerbosityLevel\x12\x1a\n\x16INVALID_LOGS_VERBOSITY\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\n\x12\x08\n\x04INFO\x10\x14\x12\x0c\n\x08\x43RITICAL\x10\x32\x42\x36\n com.qwak.ai.management.build.apiP\x01Z\x10qwak/build;buildb\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eqwak/builds/build_values.proto\x12\x15qwak.build.management\x1a/qwak/user_application/common/v0/resources.proto\"\xc3\x03\n\x10ModelBuildValues\x12\x34\n\nbuild_info\x18\x01 \x01(\x0b\x32 .qwak.build.management.BuildInfo\x12<\n\x0emodel_metadata\x18\x02 \x01(\x0b\x32$.qwak.build.management.ModelMetadata\x12\x45\n\x13model_code_location\x18\x03 \x01(\x0b\x32(.qwak.build.management.ModelCodeLocation\x12G\n\x14\x62uild_execution_spec\x18\x04 \x01(\x0b\x32).qwak.build.management.BuildExecutionSpec\x12\x30\n\x08sdk_spec\x18\x05 \x01(\x0b\x32\x1e.qwak.build.management.SdkSpec\x12G\n\x14jfrog_ecosystem_spec\x18\x06 \x01(\x0b\x32).qwak.build.management.JfrogEcosystemSpec\x12\x30\n\x08job_spec\x18\x07 \x01(\x0b\x32\x1e.qwak.build.management.JobSpec\"\xa3\x01\n\tBuildInfo\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x12\n\nbuild_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x62uild_config\x18\x04 \x01(\t\x12\x45\n\x13\x62uild_properties_v1\x18\x05 \x01(\x0b\x32(.qwak.build.management.BuildPropertiesV1\"]\n\x11\x42uildPropertiesV1\x12\x18\n\x10\x62uild_config_url\x18\x01 \x01(\t\x12\x15\n\rsdk_wheel_url\x18\x02 \x01(\t\x12\x17\n\x0fsdk_version_url\x18\x03 \x01(\t\"\x8e\x01\n\rModelMetadata\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\naccount_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x46\n\x13\x61rtifactory_details\x18\x04 \x01(\x0b\x32).qwak.build.management.ArtifactoryDetails\")\n\x12\x41rtifactoryDetails\x12\x13\n\x0bproject_key\x18\x01 \x01(\t\"\xa0\x01\n\x11ModelCodeLocation\x12\x1c\n\x14main_model_directory\x18\x01 \x01(\t\x12\x34\n\tlocal_uri\x18\x02 \x01(\x0b\x32\x1f.qwak.build.management.LocalUriH\x00\x12\x30\n\x07git_uri\x18\x03 \x01(\x0b\x32\x1d.qwak.build.management.GitUriH\x00\x42\x05\n\x03uri\"\x18\n\x08LocalUri\x12\x0c\n\x04path\x18\x01 \x01(\t\"M\n\x06GitUri\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x36\n\x0bgit_details\x18\x02 \x01(\x0b\x32!.qwak.build.management.GitDetails\"|\n\nGitDetails\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x15\n\x0b\x63redentials\x18\x03 \x01(\tH\x00\x12!\n\x17\x63redentials_secret_name\x18\x04 \x01(\tH\x00\x42\x11\n\x0fgit_credentials\"\xd0\x02\n\x12\x42uildExecutionSpec\x12\x1f\n\x17\x62uild_image_destination\x18\x01 \x01(\t\x12\"\n\x1ashould_build_without_cache\x18\x02 \x01(\x08\x12G\n\x14logs_verbosity_level\x18\x03 \x01(\x0e\x32).qwak.build.management.LogsVerbosityLevel\x12\x12\n\nbase_image\x18\x04 \x01(\t\x12\x1b\n\x13\x63ustom_iam_role_arn\x18\x05 \x01(\t\x12\x10\n\x08\x65nv_vars\x18\x06 \x03(\t\x12\'\n\x1fremote_builder_auth_secret_name\x18\x07 \x01(\t\x12@\n\x10\x63ontainer_engine\x18\x08 \x01(\x0b\x32&.qwak.build.management.ContainerEngine\"a\n\x07SdkSpec\x12\x13\n\x0bsdk_version\x18\x01 \x01(\t\x12\x1b\n\x13sdk_extra_index_url\x18\x02 \x01(\t\x12$\n\x1csdk_runtime_version_override\x18\x03 \x01(\t\"k\n\x12JfrogEcosystemSpec\x12\x0f\n\x07\x62\x61seUrl\x18\x01 \x01(\t\x12\x1d\n\x15\x61\x63\x63\x65ssTokenSecretName\x18\x02 \x01(\t\x12%\n\x1d\x61rtifactorySettingsSecretName\x18\x03 \x01(\t\"\xb5\x04\n\x07JobSpec\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\"\n\x1aprovision_instance_timeout\x18\x02 \x01(\x05\x12>\n\x0fpurchase_option\x18\x03 \x01(\x0e\x32%.qwak.build.management.PurchaseOption\x12$\n\x1cis_node_optimization_enabled\x18\x04 \x01(\x08\x12\"\n\x1ashould_use_build_isolation\x18\x05 \x01(\x08\x12#\n\x1bis_multi_tenant_environment\x18\x06 \x01(\x08\x12\x1a\n\x12is_self_hosted_jpd\x18\n \x01(\x08\x12 \n\x18\x62uild_executor_image_url\x18\x07 \x01(\t\x12<\n\x0e\x63loud_provider\x18\x08 \x01(\x0e\x32$.qwak.build.management.CloudProvider\x12\x30\n\x08job_size\x18\t \x01(\x0b\x32\x1e.qwak.build.management.JobSize\x12Y\n\x17\x62uild_executor_env_vars\x18\x0b \x03(\x0b\x32\x38.qwak.build.management.JobSpec.BuildExecutorEnvVarsEntry\x1a;\n\x19\x42uildExecutorEnvVarsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9e\x02\n\x07JobSize\x12\x0f\n\x03\x63pu\x18\x01 \x01(\x02\x42\x02\x18\x01\x12\x19\n\rmemory_amount\x18\x02 \x01(\x05\x42\x02\x18\x01\x12;\n\x0cmemory_units\x18\x03 \x01(\x0e\x32!.qwak.build.management.MemoryUnitB\x02\x18\x01\x12H\n\rgpu_resources\x18\x04 \x01(\x0b\x32-.qwak.user_application.common.v0.GpuResourcesB\x02\x18\x01\x12`\n\x1c\x63lient_pod_compute_resources\x18\x05 \x01(\x0b\x32:.qwak.user_application.common.v0.ClientPodComputeResources\"\x9d\x01\n\x0f\x43ontainerEngine\x12>\n\x06\x64ocker\x18\x01 \x01(\x0b\x32,.qwak.build.management.DockerContainerEngineH\x00\x12\x42\n\x06podman\x18\x02 \x01(\x0b\x32,.qwak.build.management.PodmanContainerEngineB\x02\x18\x01H\x00\x42\x06\n\x04type\"\x17\n\x15\x44ockerContainerEngine\"\x17\n\x15PodmanContainerEngine*e\n\x0ePurchaseOption\x12\x1b\n\x17INVALID_PURCHASE_OPTION\x10\x00\x12\x18\n\x14SPOT_PURCHASE_OPTION\x10\x01\x12\x1c\n\x18ONDEMAND_PURCHASE_OPTION\x10\x02*H\n\rCloudProvider\x12\x1a\n\x16INVALID_CLOUD_PROVIDER\x10\x00\x12\x07\n\x03\x41WS\x10\x01\x12\x07\n\x03GCP\x10\x02\x12\t\n\x05\x41ZURE\x10\x03*7\n\nMemoryUnit\x12\x17\n\x13INVALID_MEMORY_UNIT\x10\x00\x12\x07\n\x03MIB\x10\x01\x12\x07\n\x03GIB\x10\x02*S\n\x12LogsVerbosityLevel\x12\x1a\n\x16INVALID_LOGS_VERBOSITY\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\n\x12\x08\n\x04INFO\x10\x14\x12\x0c\n\x08\x43RITICAL\x10\x32\x42\x36\n com.qwak.ai.management.build.apiP\x01Z\x10qwak/build;buildb\x06proto3')
19
19
 
20
20
  _globals = globals()
21
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -23,6 +23,8 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'qwak.builds.build_values_pb
23
23
  if _descriptor._USE_C_DESCRIPTORS == False:
24
24
  _globals['DESCRIPTOR']._options = None
25
25
  _globals['DESCRIPTOR']._serialized_options = b'\n com.qwak.ai.management.build.apiP\001Z\020qwak/build;build'
26
+ _globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._options = None
27
+ _globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_options = b'8\001'
26
28
  _globals['_JOBSIZE'].fields_by_name['cpu']._options = None
27
29
  _globals['_JOBSIZE'].fields_by_name['cpu']._serialized_options = b'\030\001'
28
30
  _globals['_JOBSIZE'].fields_by_name['memory_amount']._options = None
@@ -31,14 +33,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
31
33
  _globals['_JOBSIZE'].fields_by_name['memory_units']._serialized_options = b'\030\001'
32
34
  _globals['_JOBSIZE'].fields_by_name['gpu_resources']._options = None
33
35
  _globals['_JOBSIZE'].fields_by_name['gpu_resources']._serialized_options = b'\030\001'
34
- _globals['_PURCHASEOPTION']._serialized_start=2861
35
- _globals['_PURCHASEOPTION']._serialized_end=2962
36
- _globals['_CLOUDPROVIDER']._serialized_start=2964
37
- _globals['_CLOUDPROVIDER']._serialized_end=3036
38
- _globals['_MEMORYUNIT']._serialized_start=3038
39
- _globals['_MEMORYUNIT']._serialized_end=3093
40
- _globals['_LOGSVERBOSITYLEVEL']._serialized_start=3095
41
- _globals['_LOGSVERBOSITYLEVEL']._serialized_end=3178
36
+ _globals['_CONTAINERENGINE'].fields_by_name['podman']._options = None
37
+ _globals['_CONTAINERENGINE'].fields_by_name['podman']._serialized_options = b'\030\001'
38
+ _globals['_PURCHASEOPTION']._serialized_start=3017
39
+ _globals['_PURCHASEOPTION']._serialized_end=3118
40
+ _globals['_CLOUDPROVIDER']._serialized_start=3120
41
+ _globals['_CLOUDPROVIDER']._serialized_end=3192
42
+ _globals['_MEMORYUNIT']._serialized_start=3194
43
+ _globals['_MEMORYUNIT']._serialized_end=3249
44
+ _globals['_LOGSVERBOSITYLEVEL']._serialized_start=3251
45
+ _globals['_LOGSVERBOSITYLEVEL']._serialized_end=3334
42
46
  _globals['_MODELBUILDVALUES']._serialized_start=107
43
47
  _globals['_MODELBUILDVALUES']._serialized_end=558
44
48
  _globals['_BUILDINFO']._serialized_start=561
@@ -64,13 +68,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
64
68
  _globals['_JFROGECOSYSTEMSPEC']._serialized_start=1841
65
69
  _globals['_JFROGECOSYSTEMSPEC']._serialized_end=1948
66
70
  _globals['_JOBSPEC']._serialized_start=1951
67
- _globals['_JOBSPEC']._serialized_end=2364
68
- _globals['_JOBSIZE']._serialized_start=2367
69
- _globals['_JOBSIZE']._serialized_end=2653
70
- _globals['_CONTAINERENGINE']._serialized_start=2656
71
- _globals['_CONTAINERENGINE']._serialized_end=2809
72
- _globals['_DOCKERCONTAINERENGINE']._serialized_start=2811
73
- _globals['_DOCKERCONTAINERENGINE']._serialized_end=2834
74
- _globals['_PODMANCONTAINERENGINE']._serialized_start=2836
75
- _globals['_PODMANCONTAINERENGINE']._serialized_end=2859
71
+ _globals['_JOBSPEC']._serialized_end=2516
72
+ _globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_start=2457
73
+ _globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_end=2516
74
+ _globals['_JOBSIZE']._serialized_start=2519
75
+ _globals['_JOBSIZE']._serialized_end=2805
76
+ _globals['_CONTAINERENGINE']._serialized_start=2808
77
+ _globals['_CONTAINERENGINE']._serialized_end=2965
78
+ _globals['_DOCKERCONTAINERENGINE']._serialized_start=2967
79
+ _globals['_DOCKERCONTAINERENGINE']._serialized_end=2990
80
+ _globals['_PODMANCONTAINERENGINE']._serialized_start=2992
81
+ _globals['_PODMANCONTAINERENGINE']._serialized_end=3015
76
82
  # @@protoc_insertion_point(module_scope)
@@ -443,6 +443,22 @@ class JobSpec(google.protobuf.message.Message):
443
443
 
444
444
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
445
445
 
446
+ @typing.final
447
+ class BuildExecutorEnvVarsEntry(google.protobuf.message.Message):
448
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
449
+
450
+ KEY_FIELD_NUMBER: builtins.int
451
+ VALUE_FIELD_NUMBER: builtins.int
452
+ key: builtins.str
453
+ value: builtins.str
454
+ def __init__(
455
+ self,
456
+ *,
457
+ key: builtins.str = ...,
458
+ value: builtins.str = ...,
459
+ ) -> None: ...
460
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
461
+
446
462
  NAMESPACE_FIELD_NUMBER: builtins.int
447
463
  PROVISION_INSTANCE_TIMEOUT_FIELD_NUMBER: builtins.int
448
464
  PURCHASE_OPTION_FIELD_NUMBER: builtins.int
@@ -453,6 +469,7 @@ class JobSpec(google.protobuf.message.Message):
453
469
  BUILD_EXECUTOR_IMAGE_URL_FIELD_NUMBER: builtins.int
454
470
  CLOUD_PROVIDER_FIELD_NUMBER: builtins.int
455
471
  JOB_SIZE_FIELD_NUMBER: builtins.int
472
+ BUILD_EXECUTOR_ENV_VARS_FIELD_NUMBER: builtins.int
456
473
  namespace: builtins.str
457
474
  """Kubernetes namespace in which to run the build job."""
458
475
  provision_instance_timeout: builtins.int
@@ -466,6 +483,10 @@ class JobSpec(google.protobuf.message.Message):
466
483
  cloud_provider: global___CloudProvider.ValueType
467
484
  @property
468
485
  def job_size(self) -> global___JobSize: ...
486
+ @property
487
+ def build_executor_env_vars(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
488
+ """Environment variables to set on the build executor container."""
489
+
469
490
  def __init__(
470
491
  self,
471
492
  *,
@@ -479,9 +500,10 @@ class JobSpec(google.protobuf.message.Message):
479
500
  build_executor_image_url: builtins.str = ...,
480
501
  cloud_provider: global___CloudProvider.ValueType = ...,
481
502
  job_size: global___JobSize | None = ...,
503
+ build_executor_env_vars: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
482
504
  ) -> None: ...
483
505
  def HasField(self, field_name: typing.Literal["job_size", b"job_size"]) -> builtins.bool: ...
484
- def ClearField(self, field_name: typing.Literal["build_executor_image_url", b"build_executor_image_url", "cloud_provider", b"cloud_provider", "is_multi_tenant_environment", b"is_multi_tenant_environment", "is_node_optimization_enabled", b"is_node_optimization_enabled", "is_self_hosted_jpd", b"is_self_hosted_jpd", "job_size", b"job_size", "namespace", b"namespace", "provision_instance_timeout", b"provision_instance_timeout", "purchase_option", b"purchase_option", "should_use_build_isolation", b"should_use_build_isolation"]) -> None: ...
506
+ def ClearField(self, field_name: typing.Literal["build_executor_env_vars", b"build_executor_env_vars", "build_executor_image_url", b"build_executor_image_url", "cloud_provider", b"cloud_provider", "is_multi_tenant_environment", b"is_multi_tenant_environment", "is_node_optimization_enabled", b"is_node_optimization_enabled", "is_self_hosted_jpd", b"is_self_hosted_jpd", "job_size", b"job_size", "namespace", b"namespace", "provision_instance_timeout", b"provision_instance_timeout", "purchase_option", b"purchase_option", "should_use_build_isolation", b"should_use_build_isolation"]) -> None: ...
485
507
 
486
508
  global___JobSpec = JobSpec
487
509
 
@@ -12,9 +12,12 @@ from google.protobuf.internal import builder as _builder
12
12
  _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
+ from frogml._proto.qwak.feature_store.features import feature_set_types_pb2 as qwak_dot_feature__store_dot_features_dot_feature__set__types__pb2
16
+ from frogml._proto.qwak.feature_store.features import execution_pb2 as qwak_dot_feature__store_dot_features_dot_execution__pb2
17
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
15
18
 
16
19
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-qwak/execution/v1/streaming_aggregation.proto\x12\x1fqwak.feature.store.execution.v1\"@\n%RowLevelStreamingAggregationIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\t\"\xf8\x01\n\'CompactionStreamingAggregationIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\t\x12T\n\x14scheduled_compaction\x18\x02 \x01(\x0b\x32\x34.qwak.feature.store.execution.v1.ScheduledCompactionH\x00\x12N\n\x11manual_compaction\x18\x03 \x01(\x0b\x32\x31.qwak.feature.store.execution.v1.ManualCompactionH\x00\x42\x0e\n\x0ctrigger_type\"\x15\n\x13ScheduledCompaction\"\x12\n\x10ManualCompaction\"@\n%StreamingAggregationBackfillIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\tB)\n%com.qwak.ai.features.execution.api.v1P\x01\x62\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-qwak/execution/v1/streaming_aggregation.proto\x12\x1fqwak.feature.store.execution.v1\x1a\x33qwak/feature_store/features/feature_set_types.proto\x1a+qwak/feature_store/features/execution.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"@\n%RowLevelStreamingAggregationIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\t\"\xf8\x01\n\'CompactionStreamingAggregationIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\t\x12T\n\x14scheduled_compaction\x18\x02 \x01(\x0b\x32\x34.qwak.feature.store.execution.v1.ScheduledCompactionH\x00\x12N\n\x11manual_compaction\x18\x03 \x01(\x0b\x32\x31.qwak.feature.store.execution.v1.ManualCompactionH\x00\x42\x0e\n\x0ctrigger_type\"\x15\n\x13ScheduledCompaction\"\x12\n\x10ManualCompaction\"\x8b\x03\n%StreamingAggregationBackfillIngestion\x12\x17\n\x0f\x66\x65\x61tureset_name\x18\x01 \x01(\t\x12L\n\x0e\x65xecution_spec\x18\x02 \x01(\x0b\x32\x34.qwak.feature.store.features.execution.ExecutionSpec\x12\x33\n\x0fstart_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0etransformation\x18\x05 \x01(\x0b\x32+.qwak.feature.store.features.Transformation\x12N\n\x11\x64\x61ta_source_specs\x18\x06 \x03(\x0b\x32\x33.qwak.feature.store.execution.v1.BackfillDataSource\"n\n\x12\x42\x61\x63kfillDataSource\x12\x18\n\x10\x64\x61ta_source_name\x18\x01 \x01(\t\x12>\n\ntime_range\x18\x02 \x01(\x0b\x32*.qwak.feature.store.execution.v1.TimeRange\"\x99\x01\n\tTimeRange\x12\x35\n\x0fstart_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x33\n\rend_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x42\x10\n\x0estart_optionalB\x0e\n\x0c\x65nd_optionalB)\n%com.qwak.ai.features.execution.api.v1P\x01\x62\x06proto3')
18
21
 
19
22
  _globals = globals()
20
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -22,14 +25,18 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'qwak.execution.v1.streaming
22
25
  if _descriptor._USE_C_DESCRIPTORS == False:
23
26
  _globals['DESCRIPTOR']._options = None
24
27
  _globals['DESCRIPTOR']._serialized_options = b'\n%com.qwak.ai.features.execution.api.v1P\001'
25
- _globals['_ROWLEVELSTREAMINGAGGREGATIONINGESTION']._serialized_start=82
26
- _globals['_ROWLEVELSTREAMINGAGGREGATIONINGESTION']._serialized_end=146
27
- _globals['_COMPACTIONSTREAMINGAGGREGATIONINGESTION']._serialized_start=149
28
- _globals['_COMPACTIONSTREAMINGAGGREGATIONINGESTION']._serialized_end=397
29
- _globals['_SCHEDULEDCOMPACTION']._serialized_start=399
30
- _globals['_SCHEDULEDCOMPACTION']._serialized_end=420
31
- _globals['_MANUALCOMPACTION']._serialized_start=422
32
- _globals['_MANUALCOMPACTION']._serialized_end=440
33
- _globals['_STREAMINGAGGREGATIONBACKFILLINGESTION']._serialized_start=442
34
- _globals['_STREAMINGAGGREGATIONBACKFILLINGESTION']._serialized_end=506
28
+ _globals['_ROWLEVELSTREAMINGAGGREGATIONINGESTION']._serialized_start=213
29
+ _globals['_ROWLEVELSTREAMINGAGGREGATIONINGESTION']._serialized_end=277
30
+ _globals['_COMPACTIONSTREAMINGAGGREGATIONINGESTION']._serialized_start=280
31
+ _globals['_COMPACTIONSTREAMINGAGGREGATIONINGESTION']._serialized_end=528
32
+ _globals['_SCHEDULEDCOMPACTION']._serialized_start=530
33
+ _globals['_SCHEDULEDCOMPACTION']._serialized_end=551
34
+ _globals['_MANUALCOMPACTION']._serialized_start=553
35
+ _globals['_MANUALCOMPACTION']._serialized_end=571
36
+ _globals['_STREAMINGAGGREGATIONBACKFILLINGESTION']._serialized_start=574
37
+ _globals['_STREAMINGAGGREGATIONBACKFILLINGESTION']._serialized_end=969
38
+ _globals['_BACKFILLDATASOURCE']._serialized_start=971
39
+ _globals['_BACKFILLDATASOURCE']._serialized_end=1081
40
+ _globals['_TIMERANGE']._serialized_start=1084
41
+ _globals['_TIMERANGE']._serialized_end=1237
35
42
  # @@protoc_insertion_point(module_scope)
@@ -4,8 +4,13 @@ isort:skip_file
4
4
  """
5
5
 
6
6
  import builtins
7
+ import collections.abc
7
8
  import google.protobuf.descriptor
9
+ import google.protobuf.internal.containers
8
10
  import google.protobuf.message
11
+ import google.protobuf.timestamp_pb2
12
+ import frogml._proto.qwak.feature_store.features.execution_pb2
13
+ import frogml._proto.qwak.feature_store.features.feature_set_types_pb2
9
14
  import typing
10
15
 
11
16
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
@@ -85,12 +90,78 @@ class StreamingAggregationBackfillIngestion(google.protobuf.message.Message):
85
90
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
86
91
 
87
92
  FEATURESET_NAME_FIELD_NUMBER: builtins.int
93
+ EXECUTION_SPEC_FIELD_NUMBER: builtins.int
94
+ START_TIMESTAMP_FIELD_NUMBER: builtins.int
95
+ END_TIMESTAMP_FIELD_NUMBER: builtins.int
96
+ TRANSFORMATION_FIELD_NUMBER: builtins.int
97
+ DATA_SOURCE_SPECS_FIELD_NUMBER: builtins.int
88
98
  featureset_name: builtins.str
99
+ @property
100
+ def execution_spec(self) -> frogml._proto.qwak.feature_store.features.execution_pb2.ExecutionSpec: ...
101
+ @property
102
+ def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
103
+ @property
104
+ def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
105
+ @property
106
+ def transformation(self) -> frogml._proto.qwak.feature_store.features.feature_set_types_pb2.Transformation: ...
107
+ @property
108
+ def data_source_specs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BackfillDataSource]: ...
89
109
  def __init__(
90
110
  self,
91
111
  *,
92
112
  featureset_name: builtins.str = ...,
113
+ execution_spec: frogml._proto.qwak.feature_store.features.execution_pb2.ExecutionSpec | None = ...,
114
+ start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
115
+ end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
116
+ transformation: frogml._proto.qwak.feature_store.features.feature_set_types_pb2.Transformation | None = ...,
117
+ data_source_specs: collections.abc.Iterable[global___BackfillDataSource] | None = ...,
93
118
  ) -> None: ...
94
- def ClearField(self, field_name: typing.Literal["featureset_name", b"featureset_name"]) -> None: ...
119
+ def HasField(self, field_name: typing.Literal["end_timestamp", b"end_timestamp", "execution_spec", b"execution_spec", "start_timestamp", b"start_timestamp", "transformation", b"transformation"]) -> builtins.bool: ...
120
+ def ClearField(self, field_name: typing.Literal["data_source_specs", b"data_source_specs", "end_timestamp", b"end_timestamp", "execution_spec", b"execution_spec", "featureset_name", b"featureset_name", "start_timestamp", b"start_timestamp", "transformation", b"transformation"]) -> None: ...
95
121
 
96
122
  global___StreamingAggregationBackfillIngestion = StreamingAggregationBackfillIngestion
123
+
124
+ @typing.final
125
+ class BackfillDataSource(google.protobuf.message.Message):
126
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
127
+
128
+ DATA_SOURCE_NAME_FIELD_NUMBER: builtins.int
129
+ TIME_RANGE_FIELD_NUMBER: builtins.int
130
+ data_source_name: builtins.str
131
+ @property
132
+ def time_range(self) -> global___TimeRange: ...
133
+ def __init__(
134
+ self,
135
+ *,
136
+ data_source_name: builtins.str = ...,
137
+ time_range: global___TimeRange | None = ...,
138
+ ) -> None: ...
139
+ def HasField(self, field_name: typing.Literal["time_range", b"time_range"]) -> builtins.bool: ...
140
+ def ClearField(self, field_name: typing.Literal["data_source_name", b"data_source_name", "time_range", b"time_range"]) -> None: ...
141
+
142
+ global___BackfillDataSource = BackfillDataSource
143
+
144
+ @typing.final
145
+ class TimeRange(google.protobuf.message.Message):
146
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
147
+
148
+ START_TIMESTAMP_FIELD_NUMBER: builtins.int
149
+ END_TIMESTAMP_FIELD_NUMBER: builtins.int
150
+ @property
151
+ def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
152
+ @property
153
+ def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
154
+ def __init__(
155
+ self,
156
+ *,
157
+ start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
158
+ end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
159
+ ) -> None: ...
160
+ def HasField(self, field_name: typing.Literal["end_optional", b"end_optional", "end_timestamp", b"end_timestamp", "start_optional", b"start_optional", "start_timestamp", b"start_timestamp"]) -> builtins.bool: ...
161
+ def ClearField(self, field_name: typing.Literal["end_optional", b"end_optional", "end_timestamp", b"end_timestamp", "start_optional", b"start_optional", "start_timestamp", b"start_timestamp"]) -> None: ...
162
+ @typing.overload
163
+ def WhichOneof(self, oneof_group: typing.Literal["end_optional", b"end_optional"]) -> typing.Literal["end_timestamp"] | None: ...
164
+ @typing.overload
165
+ def WhichOneof(self, oneof_group: typing.Literal["start_optional", b"start_optional"]) -> typing.Literal["start_timestamp"] | None: ...
166
+
167
+ global___TimeRange = TimeRange
@@ -22,7 +22,7 @@ from frogml._proto.qwak.feature_store.repository.common import platform_pb2 as q
22
22
  from frogml._proto.qwak.feature_store.platform import platform_details_pb2 as qwak_dot_feature__store_dot_platform_dot_platform__details__pb2
23
23
 
24
24
 
25
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-qwak/feature_store/features/feature_set.proto\x12\x1bqwak.feature.store.features\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x33qwak/feature_store/features/feature_set_types.proto\x1a(qwak/feature_store/entities/entity.proto\x1a\x33qwak/feature_store/features/feature_set_state.proto\x1a\x37qwak/feature_store/features/feature_set_attribute.proto\x1a:qwak/feature_store/v1/common/source_code/source_code.proto\x1a\x33qwak/feature_store/repository/common/platform.proto\x1a\x32qwak/feature_store/platform/platform_details.proto\"\xfc\x01\n\nFeatureSet\x12Q\n\x16\x66\x65\x61ture_set_definition\x18\x01 \x01(\x0b\x32\x31.qwak.feature.store.features.FeatureSetDefinition\x12\x41\n\x08metadata\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.FeatureSetMetadata\x12X\n\x1b\x64\x65ployed_models_in_use_link\x18\x03 \x03(\x0b\x32\x33.qwak.feature.store.features.DeployedModelInUseLink\"\xa5\x01\n\x0e\x46\x65\x61turesetInfo\x12P\n\x15\x66\x65\x61tureset_definition\x18\x01 \x01(\x0b\x32\x31.qwak.feature.store.features.FeatureSetDefinition\x12\x41\n\x08metadata\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.FeatureSetMetadata\"x\n\x11\x46\x65\x61turesetSummary\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12I\n\x10\x66\x65\x61ture_set_type\x18\x03 \x01(\x0e\x32/.qwak.feature.store.features.FeatureSetTypeView\"\xf6\x04\n\x14\x46\x65\x61tureSetDefinition\x12\x16\n\x0e\x66\x65\x61ture_set_id\x18\x01 \x01(\t\x12\x45\n\x10\x66\x65\x61ture_set_spec\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetSpec\x12:\n\x06status\x18\x03 \x01(\x0e\x32*.qwak.feature.store.features.FeatureStatus\x12g\n feature_set_last_execution_state\x18\x04 \x01(\x0e\x32\x39.qwak.feature.store.features.FeatureSetLastExecutionStateB\x02\x18\x01\x12U\n\x0e\x66\x65\x61ture_health\x18\x05 \x01(\x0e\x32\x39.qwak.feature.store.features.FeatureSetLastExecutionStateB\x02\x18\x01\x12K\n\x11\x66\x65\x61ture_set_state\x18\x06 \x03(\x0b\x32,.qwak.feature.store.features.FeatureSetStateB\x02\x18\x01\x12*\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x42\x02\x18\x01\x12!\n\x19\x66\x65\x61tureset_version_number\x18\x08 \x01(\x05\x12H\n\x10platform_details\x18\t \x01(\x0b\x32,.qwak.feature.store.platform.PlatformDetailsH\x00\x42\x1d\n\x1b\x66\x65\x61tureset_platform_details\"\xdb\x04\n\x0e\x46\x65\x61tureSetSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x08metadata\x18\x02 \x01(\x0b\x32\x33.qwak.feature.store.features.FeatureSetUserMetadata\x12\x16\n\ngit_commit\x18\x03 \x01(\tB\x02\x18\x01\x12=\n\x06\x65ntity\x18\x04 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\x45\n\x10\x66\x65\x61ture_set_type\x18\x05 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetType\x12\x36\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32$.qwak.feature.store.features.Feature\x12*\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x42\x02\x18\x01\x12V\n\x10source_code_spec\x18\x08 \x01(\x0b\x32\x38.qwak.feature.store.v1.common.source_code.SourceCodeSpecB\x02\x18\x01\x12P\n\x15\x66\x65\x61tureset_attributes\x18\t \x01(\x0b\x32\x31.qwak.feature.store.features.FeaturesetAttributes\x12$\n\x1a\x66\x65\x61tureset_repository_name\x18\n \x01(\tH\x00\x42\"\n featureset_repository_identifier\"\xb8\x01\n\x16\x46\x65\x61tureSetUserMetadata\x12\r\n\x05owner\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x64\n featureset_version_user_metadata\x18\x04 \x01(\x0b\x32:.qwak.feature.store.features.FeaturesetVersionUserMetadata\"0\n\x1d\x46\x65\x61turesetVersionUserMetadata\x12\x0f\n\x07\x63omment\x18\x01 \x01(\t\"\x9d\x02\n\x12\x46\x65\x61tureSetMetadata\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x02 \x01(\t\x12\x34\n\x10last_modified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x04 \x01(\t\x12[\n\x1b\x66\x65\x61tureset_version_metadata\x18\x05 \x01(\x0b\x32\x36.qwak.feature.store.features.FeaturesetVersionMetadata\x12\x16\n\x0e\x65nvironment_id\x18\x06 \x01(\t\"_\n\x19\x46\x65\x61turesetVersionMetadata\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x02 \x01(\t\">\n\x16\x44\x65ployedModelInUseLink\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\"5\n\x07\x46\x65\x61ture\x12\x14\n\x0c\x66\x65\x61ture_name\x18\x01 \x01(\t\x12\x14\n\x0c\x66\x65\x61ture_type\x18\x02 \x01(\t\"\xa7\x01\n\x16\x44\x65ployedFeatureSetSpec\x12\x45\n\x10\x66\x65\x61ture_set_spec\x18\x01 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetSpec\x12\x16\n\x0e\x66\x65\x61ture_set_id\x18\x02 \x01(\t\x12\x12\n\naccount_id\x18\x03 \x01(\t\x12\x1a\n\x12\x66\x65\x61tureset_version\x18\x04 \x01(\x05\"O\n\x0e\x46\x65\x61tureSetList\x12=\n\x0c\x66\x65\x61ture_sets\x18\x01 \x03(\x0b\x32\'.qwak.feature.store.features.FeatureSet*\xb4\x01\n\rFeatureStatus\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x17\n\x13REGISTRATION_FAILED\x10\x03\x12\x1c\n\x18REGISTRATION_IN_PROGRESS\x10\x04\x12\x18\n\x14\x44\x45LETION_IN_PROGRESS\x10\x05\x12\x13\n\x0f\x44\x45LETION_FAILED\x10\x06\x12\x18\n\x14\x42\x41\x43KFILL_IN_PROGRESS\x10\x07*\x92\x01\n\x19\x46\x65\x61turesetSchedulingState\x12\x1c\n\x18SCHEDULING_STATE_INVALID\x10\x00\x12\x1c\n\x18SCHEDULING_STATE_ENABLED\x10\x01\x12\x1b\n\x17SCHEDULING_STATE_PAUSED\x10\x02\x12\x1c\n\x18SCHEDULING_STATE_UNKNOWN\x10\x03\x42[\n&com.qwak.ai.feature.store.features.apiP\x01Z/qwak/featurestore/features;featurestorefeaturesb\x06proto3')
25
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-qwak/feature_store/features/feature_set.proto\x12\x1bqwak.feature.store.features\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x33qwak/feature_store/features/feature_set_types.proto\x1a(qwak/feature_store/entities/entity.proto\x1a\x33qwak/feature_store/features/feature_set_state.proto\x1a\x37qwak/feature_store/features/feature_set_attribute.proto\x1a:qwak/feature_store/v1/common/source_code/source_code.proto\x1a\x33qwak/feature_store/repository/common/platform.proto\x1a\x32qwak/feature_store/platform/platform_details.proto\"\xfc\x01\n\nFeatureSet\x12Q\n\x16\x66\x65\x61ture_set_definition\x18\x01 \x01(\x0b\x32\x31.qwak.feature.store.features.FeatureSetDefinition\x12\x41\n\x08metadata\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.FeatureSetMetadata\x12X\n\x1b\x64\x65ployed_models_in_use_link\x18\x03 \x03(\x0b\x32\x33.qwak.feature.store.features.DeployedModelInUseLink\"\xa5\x01\n\x0e\x46\x65\x61turesetInfo\x12P\n\x15\x66\x65\x61tureset_definition\x18\x01 \x01(\x0b\x32\x31.qwak.feature.store.features.FeatureSetDefinition\x12\x41\n\x08metadata\x18\x02 \x01(\x0b\x32/.qwak.feature.store.features.FeatureSetMetadata\"x\n\x11\x46\x65\x61turesetSummary\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12I\n\x10\x66\x65\x61ture_set_type\x18\x03 \x01(\x0e\x32/.qwak.feature.store.features.FeatureSetTypeView\"\xf6\x04\n\x14\x46\x65\x61tureSetDefinition\x12\x16\n\x0e\x66\x65\x61ture_set_id\x18\x01 \x01(\t\x12\x45\n\x10\x66\x65\x61ture_set_spec\x18\x02 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetSpec\x12:\n\x06status\x18\x03 \x01(\x0e\x32*.qwak.feature.store.features.FeatureStatus\x12g\n feature_set_last_execution_state\x18\x04 \x01(\x0e\x32\x39.qwak.feature.store.features.FeatureSetLastExecutionStateB\x02\x18\x01\x12U\n\x0e\x66\x65\x61ture_health\x18\x05 \x01(\x0e\x32\x39.qwak.feature.store.features.FeatureSetLastExecutionStateB\x02\x18\x01\x12K\n\x11\x66\x65\x61ture_set_state\x18\x06 \x03(\x0b\x32,.qwak.feature.store.features.FeatureSetStateB\x02\x18\x01\x12*\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x42\x02\x18\x01\x12!\n\x19\x66\x65\x61tureset_version_number\x18\x08 \x01(\x05\x12H\n\x10platform_details\x18\t \x01(\x0b\x32,.qwak.feature.store.platform.PlatformDetailsH\x00\x42\x1d\n\x1b\x66\x65\x61tureset_platform_details\"\xdb\x04\n\x0e\x46\x65\x61tureSetSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x08metadata\x18\x02 \x01(\x0b\x32\x33.qwak.feature.store.features.FeatureSetUserMetadata\x12\x16\n\ngit_commit\x18\x03 \x01(\tB\x02\x18\x01\x12=\n\x06\x65ntity\x18\x04 \x01(\x0b\x32-.qwak.feature.store.entities.EntityDefinition\x12\x45\n\x10\x66\x65\x61ture_set_type\x18\x05 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetType\x12\x36\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32$.qwak.feature.store.features.Feature\x12*\n\x1eqwak_internal_protocol_version\x18\x07 \x01(\x05\x42\x02\x18\x01\x12V\n\x10source_code_spec\x18\x08 \x01(\x0b\x32\x38.qwak.feature.store.v1.common.source_code.SourceCodeSpecB\x02\x18\x01\x12P\n\x15\x66\x65\x61tureset_attributes\x18\t \x01(\x0b\x32\x31.qwak.feature.store.features.FeaturesetAttributes\x12$\n\x1a\x66\x65\x61tureset_repository_name\x18\n \x01(\tH\x00\x42\"\n featureset_repository_identifier\"\xb8\x01\n\x16\x46\x65\x61tureSetUserMetadata\x12\r\n\x05owner\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x64\n featureset_version_user_metadata\x18\x04 \x01(\x0b\x32:.qwak.feature.store.features.FeaturesetVersionUserMetadata\"0\n\x1d\x46\x65\x61turesetVersionUserMetadata\x12\x0f\n\x07\x63omment\x18\x01 \x01(\t\"\x9d\x02\n\x12\x46\x65\x61tureSetMetadata\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x02 \x01(\t\x12\x34\n\x10last_modified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10last_modified_by\x18\x04 \x01(\t\x12[\n\x1b\x66\x65\x61tureset_version_metadata\x18\x05 \x01(\x0b\x32\x36.qwak.feature.store.features.FeaturesetVersionMetadata\x12\x16\n\x0e\x65nvironment_id\x18\x06 \x01(\t\"_\n\x19\x46\x65\x61turesetVersionMetadata\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x02 \x01(\t\">\n\x16\x44\x65ployedModelInUseLink\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\"5\n\x07\x46\x65\x61ture\x12\x14\n\x0c\x66\x65\x61ture_name\x18\x01 \x01(\t\x12\x14\n\x0c\x66\x65\x61ture_type\x18\x02 \x01(\t\"\xa7\x01\n\x16\x44\x65ployedFeatureSetSpec\x12\x45\n\x10\x66\x65\x61ture_set_spec\x18\x01 \x01(\x0b\x32+.qwak.feature.store.features.FeatureSetSpec\x12\x16\n\x0e\x66\x65\x61ture_set_id\x18\x02 \x01(\t\x12\x12\n\naccount_id\x18\x03 \x01(\t\x12\x1a\n\x12\x66\x65\x61tureset_version\x18\x04 \x01(\x05\"O\n\x0e\x46\x65\x61tureSetList\x12=\n\x0c\x66\x65\x61ture_sets\x18\x01 \x03(\x0b\x32\'.qwak.feature.store.features.FeatureSet*\xdf\x01\n\rFeatureStatus\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x17\n\x13REGISTRATION_FAILED\x10\x03\x12\x1c\n\x18REGISTRATION_IN_PROGRESS\x10\x04\x12\x18\n\x14\x44\x45LETION_IN_PROGRESS\x10\x05\x12\x13\n\x0f\x44\x45LETION_FAILED\x10\x06\x12\x18\n\x14\x42\x41\x43KFILL_IN_PROGRESS\x10\x07\x12\x11\n\rUPDATE_FAILED\x10\x08\x12\x16\n\x12UPDATE_IN_PROGRESS\x10\t*\x92\x01\n\x19\x46\x65\x61turesetSchedulingState\x12\x1c\n\x18SCHEDULING_STATE_INVALID\x10\x00\x12\x1c\n\x18SCHEDULING_STATE_ENABLED\x10\x01\x12\x1b\n\x17SCHEDULING_STATE_PAUSED\x10\x02\x12\x1c\n\x18SCHEDULING_STATE_UNKNOWN\x10\x03\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)
@@ -45,9 +45,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
45
45
  _globals['_FEATURESETSPEC'].fields_by_name['source_code_spec']._options = None
46
46
  _globals['_FEATURESETSPEC'].fields_by_name['source_code_spec']._serialized_options = b'\030\001'
47
47
  _globals['_FEATURESTATUS']._serialized_start=3258
48
- _globals['_FEATURESTATUS']._serialized_end=3438
49
- _globals['_FEATURESETSCHEDULINGSTATE']._serialized_start=3441
50
- _globals['_FEATURESETSCHEDULINGSTATE']._serialized_end=3587
48
+ _globals['_FEATURESTATUS']._serialized_end=3481
49
+ _globals['_FEATURESETSCHEDULINGSTATE']._serialized_start=3484
50
+ _globals['_FEATURESETSCHEDULINGSTATE']._serialized_end=3630
51
51
  _globals['_FEATURESET']._serialized_start=482
52
52
  _globals['_FEATURESET']._serialized_end=734
53
53
  _globals['_FEATURESETINFO']._serialized_start=737
@@ -40,6 +40,8 @@ class _FeatureStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._
40
40
  DELETION_IN_PROGRESS: _FeatureStatus.ValueType # 5
41
41
  DELETION_FAILED: _FeatureStatus.ValueType # 6
42
42
  BACKFILL_IN_PROGRESS: _FeatureStatus.ValueType # 7
43
+ UPDATE_FAILED: _FeatureStatus.ValueType # 8
44
+ UPDATE_IN_PROGRESS: _FeatureStatus.ValueType # 9
43
45
 
44
46
  class FeatureStatus(_FeatureStatus, metaclass=_FeatureStatusEnumTypeWrapper): ...
45
47
 
@@ -51,6 +53,8 @@ REGISTRATION_IN_PROGRESS: FeatureStatus.ValueType # 4
51
53
  DELETION_IN_PROGRESS: FeatureStatus.ValueType # 5
52
54
  DELETION_FAILED: FeatureStatus.ValueType # 6
53
55
  BACKFILL_IN_PROGRESS: FeatureStatus.ValueType # 7
56
+ UPDATE_FAILED: FeatureStatus.ValueType # 8
57
+ UPDATE_IN_PROGRESS: FeatureStatus.ValueType # 9
54
58
  global___FeatureStatus = FeatureStatus
55
59
 
56
60
  class _FeaturesetSchedulingState: