pulumi-gcp 7.8.0a1706829616__py3-none-any.whl → 7.8.0a1706905467__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pulumi_gcp/__init__.py +30 -0
- pulumi_gcp/artifactregistry/repository.py +26 -28
- pulumi_gcp/cloudrun/_inputs.py +87 -4
- pulumi_gcp/cloudrun/outputs.py +152 -4
- pulumi_gcp/composer/_inputs.py +63 -0
- pulumi_gcp/composer/outputs.py +136 -0
- pulumi_gcp/compute/_inputs.py +8 -18
- pulumi_gcp/compute/backend_service.py +28 -0
- pulumi_gcp/compute/outputs.py +10 -20
- pulumi_gcp/compute/region_backend_service.py +30 -0
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/discoveryengine/__init__.py +8 -0
- pulumi_gcp/discoveryengine/data_store.py +734 -0
- pulumi_gcp/eventarc/_inputs.py +2 -2
- pulumi_gcp/eventarc/outputs.py +2 -2
- pulumi_gcp/firebase/_inputs.py +4 -2
- pulumi_gcp/firebase/extensions_instance.py +6 -8
- pulumi_gcp/firebase/outputs.py +4 -2
- pulumi_gcp/firestore/backup_schedule.py +36 -12
- pulumi_gcp/firestore/database.py +0 -8
- pulumi_gcp/firestore/document.py +0 -68
- pulumi_gcp/firestore/field.py +22 -102
- pulumi_gcp/firestore/index.py +4 -42
- pulumi_gcp/gkehub/feature.py +2 -2
- pulumi_gcp/provider.py +40 -0
- pulumi_gcp/pubsub/_inputs.py +26 -4
- pulumi_gcp/pubsub/outputs.py +45 -8
- pulumi_gcp/pubsub/subscription.py +82 -0
- pulumi_gcp/securityposture/__init__.py +11 -0
- pulumi_gcp/securityposture/_inputs.py +1364 -0
- pulumi_gcp/securityposture/outputs.py +1372 -0
- pulumi_gcp/securityposture/posture.py +828 -0
- pulumi_gcp/securityposture/posture_deployment.py +872 -0
- pulumi_gcp/vertex/_inputs.py +156 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +259 -3
- pulumi_gcp/vertex/outputs.py +170 -0
- pulumi_gcp/workflows/workflow.py +75 -7
- pulumi_gcp/workstations/_inputs.py +38 -0
- pulumi_gcp/workstations/outputs.py +30 -0
- pulumi_gcp/workstations/workstation_config.py +54 -0
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/RECORD +45 -38
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/top_level.txt +0 -0
pulumi_gcp/vertex/_inputs.py
CHANGED
@@ -29,6 +29,9 @@ __all__ = [
|
|
29
29
|
'AiFeatureOnlineStoreEmbeddingManagementArgs',
|
30
30
|
'AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs',
|
31
31
|
'AiFeatureOnlineStoreFeatureviewSyncConfigArgs',
|
32
|
+
'AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs',
|
33
|
+
'AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs',
|
34
|
+
'AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs',
|
32
35
|
'AiFeatureOnlineStoreOptimizedArgs',
|
33
36
|
'AiFeatureStoreEncryptionSpecArgs',
|
34
37
|
'AiFeatureStoreEntityTypeIamBindingConditionArgs',
|
@@ -1039,6 +1042,159 @@ class AiFeatureOnlineStoreFeatureviewSyncConfigArgs:
|
|
1039
1042
|
pulumi.set(self, "cron", value)
|
1040
1043
|
|
1041
1044
|
|
1045
|
+
@pulumi.input_type
|
1046
|
+
class AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs:
|
1047
|
+
def __init__(__self__, *,
|
1048
|
+
embedding_column: pulumi.Input[str],
|
1049
|
+
brute_force_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs']] = None,
|
1050
|
+
crowding_column: Optional[pulumi.Input[str]] = None,
|
1051
|
+
distance_measure_type: Optional[pulumi.Input[str]] = None,
|
1052
|
+
embedding_dimension: Optional[pulumi.Input[int]] = None,
|
1053
|
+
filter_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
1054
|
+
tree_ah_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs']] = None):
|
1055
|
+
"""
|
1056
|
+
:param pulumi.Input[str] embedding_column: Column of embedding. This column contains the source data to create index for vector search.
|
1057
|
+
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs'] brute_force_config: Configuration options for using brute force search, which simply implements the standard linear search in the database for each query. It is primarily meant for benchmarking and to generate the ground truth for approximate search.
|
1058
|
+
:param pulumi.Input[str] crowding_column: Column of crowding. This column contains crowding attribute which is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowdingAttribute.
|
1059
|
+
:param pulumi.Input[str] distance_measure_type: The distance measure used in nearest neighbor search.
|
1060
|
+
For details on allowed values, see the [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.featureOnlineStores.featureViews#DistanceMeasureType).
|
1061
|
+
Possible values are: `SQUARED_L2_DISTANCE`, `COSINE_DISTANCE`, `DOT_PRODUCT_DISTANCE`.
|
1062
|
+
:param pulumi.Input[int] embedding_dimension: The number of dimensions of the input embedding.
|
1063
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] filter_columns: Columns of features that are used to filter vector search results.
|
1064
|
+
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs'] tree_ah_config: Configuration options for the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396
|
1065
|
+
Structure is documented below.
|
1066
|
+
"""
|
1067
|
+
pulumi.set(__self__, "embedding_column", embedding_column)
|
1068
|
+
if brute_force_config is not None:
|
1069
|
+
pulumi.set(__self__, "brute_force_config", brute_force_config)
|
1070
|
+
if crowding_column is not None:
|
1071
|
+
pulumi.set(__self__, "crowding_column", crowding_column)
|
1072
|
+
if distance_measure_type is not None:
|
1073
|
+
pulumi.set(__self__, "distance_measure_type", distance_measure_type)
|
1074
|
+
if embedding_dimension is not None:
|
1075
|
+
pulumi.set(__self__, "embedding_dimension", embedding_dimension)
|
1076
|
+
if filter_columns is not None:
|
1077
|
+
pulumi.set(__self__, "filter_columns", filter_columns)
|
1078
|
+
if tree_ah_config is not None:
|
1079
|
+
pulumi.set(__self__, "tree_ah_config", tree_ah_config)
|
1080
|
+
|
1081
|
+
@property
|
1082
|
+
@pulumi.getter(name="embeddingColumn")
|
1083
|
+
def embedding_column(self) -> pulumi.Input[str]:
|
1084
|
+
"""
|
1085
|
+
Column of embedding. This column contains the source data to create index for vector search.
|
1086
|
+
"""
|
1087
|
+
return pulumi.get(self, "embedding_column")
|
1088
|
+
|
1089
|
+
@embedding_column.setter
|
1090
|
+
def embedding_column(self, value: pulumi.Input[str]):
|
1091
|
+
pulumi.set(self, "embedding_column", value)
|
1092
|
+
|
1093
|
+
@property
|
1094
|
+
@pulumi.getter(name="bruteForceConfig")
|
1095
|
+
def brute_force_config(self) -> Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs']]:
|
1096
|
+
"""
|
1097
|
+
Configuration options for using brute force search, which simply implements the standard linear search in the database for each query. It is primarily meant for benchmarking and to generate the ground truth for approximate search.
|
1098
|
+
"""
|
1099
|
+
return pulumi.get(self, "brute_force_config")
|
1100
|
+
|
1101
|
+
@brute_force_config.setter
|
1102
|
+
def brute_force_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs']]):
|
1103
|
+
pulumi.set(self, "brute_force_config", value)
|
1104
|
+
|
1105
|
+
@property
|
1106
|
+
@pulumi.getter(name="crowdingColumn")
|
1107
|
+
def crowding_column(self) -> Optional[pulumi.Input[str]]:
|
1108
|
+
"""
|
1109
|
+
Column of crowding. This column contains crowding attribute which is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowdingAttribute.
|
1110
|
+
"""
|
1111
|
+
return pulumi.get(self, "crowding_column")
|
1112
|
+
|
1113
|
+
@crowding_column.setter
|
1114
|
+
def crowding_column(self, value: Optional[pulumi.Input[str]]):
|
1115
|
+
pulumi.set(self, "crowding_column", value)
|
1116
|
+
|
1117
|
+
@property
|
1118
|
+
@pulumi.getter(name="distanceMeasureType")
|
1119
|
+
def distance_measure_type(self) -> Optional[pulumi.Input[str]]:
|
1120
|
+
"""
|
1121
|
+
The distance measure used in nearest neighbor search.
|
1122
|
+
For details on allowed values, see the [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.featureOnlineStores.featureViews#DistanceMeasureType).
|
1123
|
+
Possible values are: `SQUARED_L2_DISTANCE`, `COSINE_DISTANCE`, `DOT_PRODUCT_DISTANCE`.
|
1124
|
+
"""
|
1125
|
+
return pulumi.get(self, "distance_measure_type")
|
1126
|
+
|
1127
|
+
@distance_measure_type.setter
|
1128
|
+
def distance_measure_type(self, value: Optional[pulumi.Input[str]]):
|
1129
|
+
pulumi.set(self, "distance_measure_type", value)
|
1130
|
+
|
1131
|
+
@property
|
1132
|
+
@pulumi.getter(name="embeddingDimension")
|
1133
|
+
def embedding_dimension(self) -> Optional[pulumi.Input[int]]:
|
1134
|
+
"""
|
1135
|
+
The number of dimensions of the input embedding.
|
1136
|
+
"""
|
1137
|
+
return pulumi.get(self, "embedding_dimension")
|
1138
|
+
|
1139
|
+
@embedding_dimension.setter
|
1140
|
+
def embedding_dimension(self, value: Optional[pulumi.Input[int]]):
|
1141
|
+
pulumi.set(self, "embedding_dimension", value)
|
1142
|
+
|
1143
|
+
@property
|
1144
|
+
@pulumi.getter(name="filterColumns")
|
1145
|
+
def filter_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
1146
|
+
"""
|
1147
|
+
Columns of features that are used to filter vector search results.
|
1148
|
+
"""
|
1149
|
+
return pulumi.get(self, "filter_columns")
|
1150
|
+
|
1151
|
+
@filter_columns.setter
|
1152
|
+
def filter_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
1153
|
+
pulumi.set(self, "filter_columns", value)
|
1154
|
+
|
1155
|
+
@property
|
1156
|
+
@pulumi.getter(name="treeAhConfig")
|
1157
|
+
def tree_ah_config(self) -> Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs']]:
|
1158
|
+
"""
|
1159
|
+
Configuration options for the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396
|
1160
|
+
Structure is documented below.
|
1161
|
+
"""
|
1162
|
+
return pulumi.get(self, "tree_ah_config")
|
1163
|
+
|
1164
|
+
@tree_ah_config.setter
|
1165
|
+
def tree_ah_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs']]):
|
1166
|
+
pulumi.set(self, "tree_ah_config", value)
|
1167
|
+
|
1168
|
+
|
1169
|
+
@pulumi.input_type
|
1170
|
+
class AiFeatureOnlineStoreFeatureviewVectorSearchConfigBruteForceConfigArgs:
|
1171
|
+
def __init__(__self__):
|
1172
|
+
pass
|
1173
|
+
|
1174
|
+
|
1175
|
+
@pulumi.input_type
|
1176
|
+
class AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs:
|
1177
|
+
def __init__(__self__, *,
|
1178
|
+
leaf_node_embedding_count: Optional[pulumi.Input[str]] = None):
|
1179
|
+
"""
|
1180
|
+
:param pulumi.Input[str] leaf_node_embedding_count: Number of embeddings on each leaf node. The default value is 1000 if not set.
|
1181
|
+
"""
|
1182
|
+
if leaf_node_embedding_count is not None:
|
1183
|
+
pulumi.set(__self__, "leaf_node_embedding_count", leaf_node_embedding_count)
|
1184
|
+
|
1185
|
+
@property
|
1186
|
+
@pulumi.getter(name="leafNodeEmbeddingCount")
|
1187
|
+
def leaf_node_embedding_count(self) -> Optional[pulumi.Input[str]]:
|
1188
|
+
"""
|
1189
|
+
Number of embeddings on each leaf node. The default value is 1000 if not set.
|
1190
|
+
"""
|
1191
|
+
return pulumi.get(self, "leaf_node_embedding_count")
|
1192
|
+
|
1193
|
+
@leaf_node_embedding_count.setter
|
1194
|
+
def leaf_node_embedding_count(self, value: Optional[pulumi.Input[str]]):
|
1195
|
+
pulumi.set(self, "leaf_node_embedding_count", value)
|
1196
|
+
|
1197
|
+
|
1042
1198
|
@pulumi.input_type
|
1043
1199
|
class AiFeatureOnlineStoreOptimizedArgs:
|
1044
1200
|
def __init__(__self__):
|
@@ -22,7 +22,8 @@ class AiFeatureOnlineStoreFeatureviewArgs:
|
|
22
22
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
23
23
|
name: Optional[pulumi.Input[str]] = None,
|
24
24
|
project: Optional[pulumi.Input[str]] = None,
|
25
|
-
sync_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']] = None
|
25
|
+
sync_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']] = None,
|
26
|
+
vector_search_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']] = None):
|
26
27
|
"""
|
27
28
|
The set of arguments for constructing a AiFeatureOnlineStoreFeatureview resource.
|
28
29
|
:param pulumi.Input[str] feature_online_store: The name of the FeatureOnlineStore to use for the featureview.
|
@@ -41,6 +42,8 @@ class AiFeatureOnlineStoreFeatureviewArgs:
|
|
41
42
|
If it is not provided, the provider project is used.
|
42
43
|
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs'] sync_config: Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.
|
43
44
|
Structure is documented below.
|
45
|
+
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs'] vector_search_config: Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
46
|
+
Structure is documented below.
|
44
47
|
"""
|
45
48
|
pulumi.set(__self__, "feature_online_store", feature_online_store)
|
46
49
|
pulumi.set(__self__, "region", region)
|
@@ -54,6 +57,8 @@ class AiFeatureOnlineStoreFeatureviewArgs:
|
|
54
57
|
pulumi.set(__self__, "project", project)
|
55
58
|
if sync_config is not None:
|
56
59
|
pulumi.set(__self__, "sync_config", sync_config)
|
60
|
+
if vector_search_config is not None:
|
61
|
+
pulumi.set(__self__, "vector_search_config", vector_search_config)
|
57
62
|
|
58
63
|
@property
|
59
64
|
@pulumi.getter(name="featureOnlineStore")
|
@@ -148,6 +153,19 @@ class AiFeatureOnlineStoreFeatureviewArgs:
|
|
148
153
|
def sync_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']]):
|
149
154
|
pulumi.set(self, "sync_config", value)
|
150
155
|
|
156
|
+
@property
|
157
|
+
@pulumi.getter(name="vectorSearchConfig")
|
158
|
+
def vector_search_config(self) -> Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]:
|
159
|
+
"""
|
160
|
+
Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
161
|
+
Structure is documented below.
|
162
|
+
"""
|
163
|
+
return pulumi.get(self, "vector_search_config")
|
164
|
+
|
165
|
+
@vector_search_config.setter
|
166
|
+
def vector_search_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]):
|
167
|
+
pulumi.set(self, "vector_search_config", value)
|
168
|
+
|
151
169
|
|
152
170
|
@pulumi.input_type
|
153
171
|
class _AiFeatureOnlineStoreFeatureviewState:
|
@@ -162,7 +180,8 @@ class _AiFeatureOnlineStoreFeatureviewState:
|
|
162
180
|
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
163
181
|
region: Optional[pulumi.Input[str]] = None,
|
164
182
|
sync_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']] = None,
|
165
|
-
update_time: Optional[pulumi.Input[str]] = None
|
183
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
184
|
+
vector_search_config: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']] = None):
|
166
185
|
"""
|
167
186
|
Input properties used for looking up and filtering AiFeatureOnlineStoreFeatureview resources.
|
168
187
|
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs'] big_query_source: Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore.
|
@@ -186,6 +205,8 @@ class _AiFeatureOnlineStoreFeatureviewState:
|
|
186
205
|
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewSyncConfigArgs'] sync_config: Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.
|
187
206
|
Structure is documented below.
|
188
207
|
:param pulumi.Input[str] update_time: The timestamp of when the featureOnlinestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
|
208
|
+
:param pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs'] vector_search_config: Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
209
|
+
Structure is documented below.
|
189
210
|
"""
|
190
211
|
if big_query_source is not None:
|
191
212
|
pulumi.set(__self__, "big_query_source", big_query_source)
|
@@ -209,6 +230,8 @@ class _AiFeatureOnlineStoreFeatureviewState:
|
|
209
230
|
pulumi.set(__self__, "sync_config", sync_config)
|
210
231
|
if update_time is not None:
|
211
232
|
pulumi.set(__self__, "update_time", update_time)
|
233
|
+
if vector_search_config is not None:
|
234
|
+
pulumi.set(__self__, "vector_search_config", vector_search_config)
|
212
235
|
|
213
236
|
@property
|
214
237
|
@pulumi.getter(name="bigQuerySource")
|
@@ -352,6 +375,19 @@ class _AiFeatureOnlineStoreFeatureviewState:
|
|
352
375
|
def update_time(self, value: Optional[pulumi.Input[str]]):
|
353
376
|
pulumi.set(self, "update_time", value)
|
354
377
|
|
378
|
+
@property
|
379
|
+
@pulumi.getter(name="vectorSearchConfig")
|
380
|
+
def vector_search_config(self) -> Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]:
|
381
|
+
"""
|
382
|
+
Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
383
|
+
Structure is documented below.
|
384
|
+
"""
|
385
|
+
return pulumi.get(self, "vector_search_config")
|
386
|
+
|
387
|
+
@vector_search_config.setter
|
388
|
+
def vector_search_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]):
|
389
|
+
pulumi.set(self, "vector_search_config", value)
|
390
|
+
|
355
391
|
|
356
392
|
class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
357
393
|
@overload
|
@@ -365,6 +401,7 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
365
401
|
project: Optional[pulumi.Input[str]] = None,
|
366
402
|
region: Optional[pulumi.Input[str]] = None,
|
367
403
|
sync_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']]] = None,
|
404
|
+
vector_search_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]] = None,
|
368
405
|
__props__=None):
|
369
406
|
"""
|
370
407
|
FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.
|
@@ -436,6 +473,107 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
436
473
|
))
|
437
474
|
project = gcp.organizations.get_project()
|
438
475
|
```
|
476
|
+
### Vertex Ai Featureonlinestore Featureview With Vector Search
|
477
|
+
|
478
|
+
```python
|
479
|
+
import pulumi
|
480
|
+
import pulumi_gcp as gcp
|
481
|
+
|
482
|
+
featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
|
483
|
+
labels={
|
484
|
+
"foo": "bar",
|
485
|
+
},
|
486
|
+
region="us-central1",
|
487
|
+
bigtable=gcp.vertex.AiFeatureOnlineStoreBigtableArgs(
|
488
|
+
auto_scaling=gcp.vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs(
|
489
|
+
min_node_count=1,
|
490
|
+
max_node_count=2,
|
491
|
+
cpu_utilization_target=80,
|
492
|
+
),
|
493
|
+
),
|
494
|
+
embedding_management=gcp.vertex.AiFeatureOnlineStoreEmbeddingManagementArgs(
|
495
|
+
enabled=True,
|
496
|
+
),
|
497
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
498
|
+
tf_test_dataset = gcp.bigquery.Dataset("tf-test-dataset",
|
499
|
+
dataset_id="example_feature_view_vector_search",
|
500
|
+
friendly_name="test",
|
501
|
+
description="This is a test description",
|
502
|
+
location="US",
|
503
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
504
|
+
tf_test_table = gcp.bigquery.Table("tf-test-table",
|
505
|
+
deletion_protection=False,
|
506
|
+
dataset_id=tf_test_dataset.dataset_id,
|
507
|
+
table_id="example_feature_view_vector_search",
|
508
|
+
schema=\"\"\"[
|
509
|
+
{
|
510
|
+
"name": "test_primary_id",
|
511
|
+
"mode": "NULLABLE",
|
512
|
+
"type": "STRING",
|
513
|
+
"description": "primary test id"
|
514
|
+
},
|
515
|
+
{
|
516
|
+
"name": "embedding",
|
517
|
+
"mode": "REPEATED",
|
518
|
+
"type": "FLOAT",
|
519
|
+
"description": "embedding column for primary_id column"
|
520
|
+
},
|
521
|
+
{
|
522
|
+
"name": "country",
|
523
|
+
"mode": "NULLABLE",
|
524
|
+
"type": "STRING",
|
525
|
+
"description": "country"
|
526
|
+
},
|
527
|
+
{
|
528
|
+
"name": "test_crowding_column",
|
529
|
+
"mode": "NULLABLE",
|
530
|
+
"type": "INTEGER",
|
531
|
+
"description": "test crowding column"
|
532
|
+
},
|
533
|
+
{
|
534
|
+
"name": "entity_id",
|
535
|
+
"mode": "NULLABLE",
|
536
|
+
"type": "STRING",
|
537
|
+
"description": "Test default entity_id"
|
538
|
+
},
|
539
|
+
{
|
540
|
+
"name": "test_entity_column",
|
541
|
+
"mode": "NULLABLE",
|
542
|
+
"type": "STRING",
|
543
|
+
"description": "test secondary entity column"
|
544
|
+
},
|
545
|
+
{
|
546
|
+
"name": "feature_timestamp",
|
547
|
+
"mode": "NULLABLE",
|
548
|
+
"type": "TIMESTAMP",
|
549
|
+
"description": "Default timestamp value"
|
550
|
+
}
|
551
|
+
]
|
552
|
+
\"\"\",
|
553
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
554
|
+
featureview_vector_search = gcp.vertex.AiFeatureOnlineStoreFeatureview("featureviewVectorSearch",
|
555
|
+
region="us-central1",
|
556
|
+
feature_online_store=featureonlinestore.name,
|
557
|
+
sync_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs(
|
558
|
+
cron="0 0 * * *",
|
559
|
+
),
|
560
|
+
big_query_source=gcp.vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs(
|
561
|
+
uri=pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
|
562
|
+
entity_id_columns=["test_entity_column"],
|
563
|
+
),
|
564
|
+
vector_search_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs(
|
565
|
+
embedding_column="embedding",
|
566
|
+
filter_columns=["country"],
|
567
|
+
crowding_column="test_crowding_column",
|
568
|
+
distance_measure_type="DOT_PRODUCT_DISTANCE",
|
569
|
+
tree_ah_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs(
|
570
|
+
leaf_node_embedding_count="1000",
|
571
|
+
),
|
572
|
+
embedding_dimension=2,
|
573
|
+
),
|
574
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
575
|
+
project = gcp.organizations.get_project()
|
576
|
+
```
|
439
577
|
|
440
578
|
## Import
|
441
579
|
|
@@ -475,6 +613,8 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
475
613
|
- - -
|
476
614
|
:param pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']] sync_config: Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.
|
477
615
|
Structure is documented below.
|
616
|
+
:param pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']] vector_search_config: Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
617
|
+
Structure is documented below.
|
478
618
|
"""
|
479
619
|
...
|
480
620
|
@overload
|
@@ -552,6 +692,107 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
552
692
|
))
|
553
693
|
project = gcp.organizations.get_project()
|
554
694
|
```
|
695
|
+
### Vertex Ai Featureonlinestore Featureview With Vector Search
|
696
|
+
|
697
|
+
```python
|
698
|
+
import pulumi
|
699
|
+
import pulumi_gcp as gcp
|
700
|
+
|
701
|
+
featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
|
702
|
+
labels={
|
703
|
+
"foo": "bar",
|
704
|
+
},
|
705
|
+
region="us-central1",
|
706
|
+
bigtable=gcp.vertex.AiFeatureOnlineStoreBigtableArgs(
|
707
|
+
auto_scaling=gcp.vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs(
|
708
|
+
min_node_count=1,
|
709
|
+
max_node_count=2,
|
710
|
+
cpu_utilization_target=80,
|
711
|
+
),
|
712
|
+
),
|
713
|
+
embedding_management=gcp.vertex.AiFeatureOnlineStoreEmbeddingManagementArgs(
|
714
|
+
enabled=True,
|
715
|
+
),
|
716
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
717
|
+
tf_test_dataset = gcp.bigquery.Dataset("tf-test-dataset",
|
718
|
+
dataset_id="example_feature_view_vector_search",
|
719
|
+
friendly_name="test",
|
720
|
+
description="This is a test description",
|
721
|
+
location="US",
|
722
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
723
|
+
tf_test_table = gcp.bigquery.Table("tf-test-table",
|
724
|
+
deletion_protection=False,
|
725
|
+
dataset_id=tf_test_dataset.dataset_id,
|
726
|
+
table_id="example_feature_view_vector_search",
|
727
|
+
schema=\"\"\"[
|
728
|
+
{
|
729
|
+
"name": "test_primary_id",
|
730
|
+
"mode": "NULLABLE",
|
731
|
+
"type": "STRING",
|
732
|
+
"description": "primary test id"
|
733
|
+
},
|
734
|
+
{
|
735
|
+
"name": "embedding",
|
736
|
+
"mode": "REPEATED",
|
737
|
+
"type": "FLOAT",
|
738
|
+
"description": "embedding column for primary_id column"
|
739
|
+
},
|
740
|
+
{
|
741
|
+
"name": "country",
|
742
|
+
"mode": "NULLABLE",
|
743
|
+
"type": "STRING",
|
744
|
+
"description": "country"
|
745
|
+
},
|
746
|
+
{
|
747
|
+
"name": "test_crowding_column",
|
748
|
+
"mode": "NULLABLE",
|
749
|
+
"type": "INTEGER",
|
750
|
+
"description": "test crowding column"
|
751
|
+
},
|
752
|
+
{
|
753
|
+
"name": "entity_id",
|
754
|
+
"mode": "NULLABLE",
|
755
|
+
"type": "STRING",
|
756
|
+
"description": "Test default entity_id"
|
757
|
+
},
|
758
|
+
{
|
759
|
+
"name": "test_entity_column",
|
760
|
+
"mode": "NULLABLE",
|
761
|
+
"type": "STRING",
|
762
|
+
"description": "test secondary entity column"
|
763
|
+
},
|
764
|
+
{
|
765
|
+
"name": "feature_timestamp",
|
766
|
+
"mode": "NULLABLE",
|
767
|
+
"type": "TIMESTAMP",
|
768
|
+
"description": "Default timestamp value"
|
769
|
+
}
|
770
|
+
]
|
771
|
+
\"\"\",
|
772
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
773
|
+
featureview_vector_search = gcp.vertex.AiFeatureOnlineStoreFeatureview("featureviewVectorSearch",
|
774
|
+
region="us-central1",
|
775
|
+
feature_online_store=featureonlinestore.name,
|
776
|
+
sync_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs(
|
777
|
+
cron="0 0 * * *",
|
778
|
+
),
|
779
|
+
big_query_source=gcp.vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs(
|
780
|
+
uri=pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
|
781
|
+
entity_id_columns=["test_entity_column"],
|
782
|
+
),
|
783
|
+
vector_search_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs(
|
784
|
+
embedding_column="embedding",
|
785
|
+
filter_columns=["country"],
|
786
|
+
crowding_column="test_crowding_column",
|
787
|
+
distance_measure_type="DOT_PRODUCT_DISTANCE",
|
788
|
+
tree_ah_config=gcp.vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs(
|
789
|
+
leaf_node_embedding_count="1000",
|
790
|
+
),
|
791
|
+
embedding_dimension=2,
|
792
|
+
),
|
793
|
+
opts=pulumi.ResourceOptions(provider=google_beta))
|
794
|
+
project = gcp.organizations.get_project()
|
795
|
+
```
|
555
796
|
|
556
797
|
## Import
|
557
798
|
|
@@ -595,6 +836,7 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
595
836
|
project: Optional[pulumi.Input[str]] = None,
|
596
837
|
region: Optional[pulumi.Input[str]] = None,
|
597
838
|
sync_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']]] = None,
|
839
|
+
vector_search_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]] = None,
|
598
840
|
__props__=None):
|
599
841
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
600
842
|
if not isinstance(opts, pulumi.ResourceOptions):
|
@@ -615,6 +857,7 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
615
857
|
raise TypeError("Missing required property 'region'")
|
616
858
|
__props__.__dict__["region"] = region
|
617
859
|
__props__.__dict__["sync_config"] = sync_config
|
860
|
+
__props__.__dict__["vector_search_config"] = vector_search_config
|
618
861
|
__props__.__dict__["create_time"] = None
|
619
862
|
__props__.__dict__["effective_labels"] = None
|
620
863
|
__props__.__dict__["pulumi_labels"] = None
|
@@ -641,7 +884,8 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
641
884
|
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
642
885
|
region: Optional[pulumi.Input[str]] = None,
|
643
886
|
sync_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']]] = None,
|
644
|
-
update_time: Optional[pulumi.Input[str]] = None
|
887
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
888
|
+
vector_search_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']]] = None) -> 'AiFeatureOnlineStoreFeatureview':
|
645
889
|
"""
|
646
890
|
Get an existing AiFeatureOnlineStoreFeatureview resource's state with the given name, id, and optional extra
|
647
891
|
properties used to qualify the lookup.
|
@@ -670,6 +914,8 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
670
914
|
:param pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewSyncConfigArgs']] sync_config: Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.
|
671
915
|
Structure is documented below.
|
672
916
|
:param pulumi.Input[str] update_time: The timestamp of when the featureOnlinestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
|
917
|
+
:param pulumi.Input[pulumi.InputType['AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs']] vector_search_config: Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
918
|
+
Structure is documented below.
|
673
919
|
"""
|
674
920
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
675
921
|
|
@@ -686,6 +932,7 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
686
932
|
__props__.__dict__["region"] = region
|
687
933
|
__props__.__dict__["sync_config"] = sync_config
|
688
934
|
__props__.__dict__["update_time"] = update_time
|
935
|
+
__props__.__dict__["vector_search_config"] = vector_search_config
|
689
936
|
return AiFeatureOnlineStoreFeatureview(resource_name, opts=opts, __props__=__props__)
|
690
937
|
|
691
938
|
@property
|
@@ -786,3 +1033,12 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
786
1033
|
"""
|
787
1034
|
return pulumi.get(self, "update_time")
|
788
1035
|
|
1036
|
+
@property
|
1037
|
+
@pulumi.getter(name="vectorSearchConfig")
|
1038
|
+
def vector_search_config(self) -> pulumi.Output[Optional['outputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfig']]:
|
1039
|
+
"""
|
1040
|
+
Configuration for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.
|
1041
|
+
Structure is documented below.
|
1042
|
+
"""
|
1043
|
+
return pulumi.get(self, "vector_search_config")
|
1044
|
+
|