Skip to content

Commit 4e7da60

Browse files
promote optimized field to GA (#10802) (#18348)
[upstream:897bb5f010d0911cb98406905b8734adbbe724c4] Signed-off-by: Modular Magician <[email protected]>
1 parent 32e33a2 commit 4e7da60

File tree

2 files changed

+59
-4
lines changed

2 files changed

+59
-4
lines changed

google/services/vertexai/resource_vertex_ai_feature_online_store.go

+54-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func ResourceVertexAIFeatureOnlineStore() *schema.Resource {
9696
},
9797
},
9898
},
99-
ExactlyOneOf: []string{"bigtable"},
99+
ExactlyOneOf: []string{"bigtable", "optimized"},
100100
},
101101
"labels": {
102102
Type: schema.TypeMap,
@@ -107,6 +107,17 @@ func ResourceVertexAIFeatureOnlineStore() *schema.Resource {
107107
Please refer to the field 'effective_labels' for all of the labels present on the resource.`,
108108
Elem: &schema.Schema{Type: schema.TypeString},
109109
},
110+
"optimized": {
111+
Type: schema.TypeList,
112+
Optional: true,
113+
Description: `Settings for the Optimized store that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore`,
114+
MaxItems: 1,
115+
Elem: &schema.Resource{
116+
Schema: map[string]*schema.Schema{},
117+
},
118+
ConflictsWith: []string{},
119+
ExactlyOneOf: []string{"bigtable", "optimized"},
120+
},
110121
"region": {
111122
Type: schema.TypeString,
112123
Computed: true,
@@ -178,6 +189,12 @@ func resourceVertexAIFeatureOnlineStoreCreate(d *schema.ResourceData, meta inter
178189
} else if v, ok := d.GetOkExists("bigtable"); !tpgresource.IsEmptyValue(reflect.ValueOf(bigtableProp)) && (ok || !reflect.DeepEqual(v, bigtableProp)) {
179190
obj["bigtable"] = bigtableProp
180191
}
192+
optimizedProp, err := expandVertexAIFeatureOnlineStoreOptimized(d.Get("optimized"), d, config)
193+
if err != nil {
194+
return err
195+
} else if v, ok := d.GetOkExists("optimized"); ok || !reflect.DeepEqual(v, optimizedProp) {
196+
obj["optimized"] = optimizedProp
197+
}
181198
labelsProp, err := expandVertexAIFeatureOnlineStoreEffectiveLabels(d.Get("effective_labels"), d, config)
182199
if err != nil {
183200
return err
@@ -314,6 +331,9 @@ func resourceVertexAIFeatureOnlineStoreRead(d *schema.ResourceData, meta interfa
314331
if err := d.Set("bigtable", flattenVertexAIFeatureOnlineStoreBigtable(res["bigtable"], d, config)); err != nil {
315332
return fmt.Errorf("Error reading FeatureOnlineStore: %s", err)
316333
}
334+
if err := d.Set("optimized", flattenVertexAIFeatureOnlineStoreOptimized(res["optimized"], d, config)); err != nil {
335+
return fmt.Errorf("Error reading FeatureOnlineStore: %s", err)
336+
}
317337
if err := d.Set("terraform_labels", flattenVertexAIFeatureOnlineStoreTerraformLabels(res["labels"], d, config)); err != nil {
318338
return fmt.Errorf("Error reading FeatureOnlineStore: %s", err)
319339
}
@@ -346,6 +366,12 @@ func resourceVertexAIFeatureOnlineStoreUpdate(d *schema.ResourceData, meta inter
346366
} else if v, ok := d.GetOkExists("bigtable"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, bigtableProp)) {
347367
obj["bigtable"] = bigtableProp
348368
}
369+
optimizedProp, err := expandVertexAIFeatureOnlineStoreOptimized(d.Get("optimized"), d, config)
370+
if err != nil {
371+
return err
372+
} else if v, ok := d.GetOkExists("optimized"); ok || !reflect.DeepEqual(v, optimizedProp) {
373+
obj["optimized"] = optimizedProp
374+
}
349375
labelsProp, err := expandVertexAIFeatureOnlineStoreEffectiveLabels(d.Get("effective_labels"), d, config)
350376
if err != nil {
351377
return err
@@ -366,6 +392,10 @@ func resourceVertexAIFeatureOnlineStoreUpdate(d *schema.ResourceData, meta inter
366392
updateMask = append(updateMask, "bigtable")
367393
}
368394

395+
if d.HasChange("optimized") {
396+
updateMask = append(updateMask, "optimized")
397+
}
398+
369399
if d.HasChange("effective_labels") {
370400
updateMask = append(updateMask, "labels")
371401
}
@@ -609,6 +639,14 @@ func flattenVertexAIFeatureOnlineStoreBigtableAutoScalingCpuUtilizationTarget(v
609639
return v // let terraform core handle it otherwise
610640
}
611641

642+
func flattenVertexAIFeatureOnlineStoreOptimized(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
643+
if v == nil {
644+
return nil
645+
}
646+
transformed := make(map[string]interface{})
647+
return []interface{}{transformed}
648+
}
649+
612650
func flattenVertexAIFeatureOnlineStoreTerraformLabels(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
613651
if v == nil {
614652
return v
@@ -692,6 +730,21 @@ func expandVertexAIFeatureOnlineStoreBigtableAutoScalingCpuUtilizationTarget(v i
692730
return v, nil
693731
}
694732

733+
func expandVertexAIFeatureOnlineStoreOptimized(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
734+
l := v.([]interface{})
735+
if len(l) == 0 {
736+
return nil, nil
737+
}
738+
739+
if l[0] == nil {
740+
transformed := make(map[string]interface{})
741+
return transformed, nil
742+
}
743+
transformed := make(map[string]interface{})
744+
745+
return transformed, nil
746+
}
747+
695748
func expandVertexAIFeatureOnlineStoreEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
696749
if v == nil {
697750
return map[string]string{}, nil

website/docs/r/vertex_ai_feature_online_store.html.markdown

+5-3
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ The following arguments are supported:
140140
Structure is [documented below](#nested_bigtable).
141141

142142
* `optimized` -
143-
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
143+
(Optional)
144144
Settings for the Optimized store that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore
145145

146146
* `dedicated_serving_endpoint` -
@@ -149,10 +149,12 @@ The following arguments are supported:
149149
Structure is [documented below](#nested_dedicated_serving_endpoint).
150150

151151
* `embedding_management` -
152-
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
153-
The settings for embedding management in FeatureOnlineStore. Embedding management can only be used with BigTable.
152+
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html), Deprecated)
153+
The settings for embedding management in FeatureOnlineStore. Embedding management can only be set for BigTable. It is enabled by default for optimized storagetype.
154154
Structure is [documented below](#nested_embedding_management).
155155

156+
~> **Warning:** `embedding_management` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
157+
156158
* `region` -
157159
(Optional)
158160
The region of feature online store. eg us-central1

0 commit comments

Comments
 (0)