Skip to content

Commit ffb90eb

Browse files
Memorystore Valkey Multi vpc support (#13355) (#9652)
[upstream:a89d9534c8d63aad647030a54bc7fd62dd5935bd] Signed-off-by: Modular Magician <[email protected]>
1 parent fc95da6 commit ffb90eb

10 files changed

+1961
-6
lines changed

.changelog/13355.txt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
```release-note:new-resource
2+
`google_memorystore_instance_desired_user_created_connections`
3+
```
4+
```release-note:enhancement
5+
memorystore: added `psc_attachment_details` field to `google_memorystore_instance` resource, to enable use of the fine-grained resource `google_memorystore_instance_desired_user_created_connections
6+
```

google-beta/provider/provider_mmv1_resources.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -554,9 +554,9 @@ var handwrittenIAMDatasources = map[string]*schema.Resource{
554554
}
555555

556556
// Resources
557-
// Generated resources: 633
557+
// Generated resources: 634
558558
// Generated IAM resources: 312
559-
// Total generated resources: 945
559+
// Total generated resources: 946
560560
var generatedResources = map[string]*schema.Resource{
561561
"google_folder_access_approval_settings": accessapproval.ResourceAccessApprovalFolderSettings(),
562562
"google_organization_access_approval_settings": accessapproval.ResourceAccessApprovalOrganizationSettings(),
@@ -1220,6 +1220,7 @@ var generatedResources = map[string]*schema.Resource{
12201220
"google_managed_kafka_topic": managedkafka.ResourceManagedKafkaTopic(),
12211221
"google_memcache_instance": memcache.ResourceMemcacheInstance(),
12221222
"google_memorystore_instance": memorystore.ResourceMemorystoreInstance(),
1223+
"google_memorystore_instance_desired_user_created_endpoints": memorystore.ResourceMemorystoreInstanceDesiredUserCreatedEndpoints(),
12231224
"google_migration_center_group": migrationcenter.ResourceMigrationCenterGroup(),
12241225
"google_migration_center_preference_set": migrationcenter.ResourceMigrationCenterPreferenceSet(),
12251226
"google_ml_engine_model": mlengine.ResourceMLEngineModel(),

google-beta/services/memorystore/resource_memorystore_instance.go

+74-3
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,25 @@ Format: projects/{project}/locations/{location}/instances/{instance}`,
520520
},
521521
},
522522
},
523+
"psc_attachment_details": {
524+
Type: schema.TypeList,
525+
Computed: true,
526+
Description: `Configuration of a service attachment of the cluster, for creating PSC connections.`,
527+
Elem: &schema.Resource{
528+
Schema: map[string]*schema.Schema{
529+
"connection_type": {
530+
Type: schema.TypeString,
531+
Computed: true,
532+
Description: `Service attachment URI which your self-created PscConnection should use as target.`,
533+
},
534+
"service_attachment": {
535+
Type: schema.TypeString,
536+
Computed: true,
537+
Description: `Service attachment URI which your self-created PscConnection should use as target.`,
538+
},
539+
},
540+
},
541+
},
523542
"psc_auto_connections": {
524543
Type: schema.TypeList,
525544
Computed: true,
@@ -607,6 +626,16 @@ DELETING`,
607626
Description: `Represents information about instance with state UPDATING.`,
608627
Elem: &schema.Resource{
609628
Schema: map[string]*schema.Schema{
629+
"target_engine_version": {
630+
Type: schema.TypeString,
631+
Computed: true,
632+
Description: `Output only. Target engine version for the instance.`,
633+
},
634+
"target_node_type": {
635+
Type: schema.TypeString,
636+
Computed: true,
637+
Description: `Output only. Target node type for the instance.`,
638+
},
610639
"target_replica_count": {
611640
Type: schema.TypeInt,
612641
Computed: true,
@@ -642,9 +671,9 @@ DELETING`,
642671
},
643672
"desired_psc_auto_connections": {
644673
Type: schema.TypeList,
645-
Required: true,
674+
Optional: true,
646675
ForceNew: true,
647-
Description: `Required. Immutable. User inputs for the auto-created PSC connections.`,
676+
Description: `Immutable. User inputs for the auto-created PSC connections.`,
648677
Elem: &schema.Resource{
649678
Schema: map[string]*schema.Schema{
650679
"network": {
@@ -966,6 +995,9 @@ func resourceMemorystoreInstanceRead(d *schema.ResourceData, meta interface{}) e
966995
if err := d.Set("mode", flattenMemorystoreInstanceMode(res["mode"], d, config)); err != nil {
967996
return fmt.Errorf("Error reading Instance: %s", err)
968997
}
998+
if err := d.Set("psc_attachment_details", flattenMemorystoreInstancePscAttachmentDetails(res["pscAttachmentDetails"], d, config)); err != nil {
999+
return fmt.Errorf("Error reading Instance: %s", err)
1000+
}
9691001
if err := d.Set("psc_auto_connections", flattenMemorystoreInstancePscAutoConnections(res["pscAutoConnections"], d, config)); err != nil {
9701002
return fmt.Errorf("Error reading Instance: %s", err)
9711003
}
@@ -1277,6 +1309,10 @@ func flattenMemorystoreInstanceStateInfoUpdateInfo(v interface{}, d *schema.Reso
12771309
flattenMemorystoreInstanceStateInfoUpdateInfoTargetShardCount(original["targetShardCount"], d, config)
12781310
transformed["target_replica_count"] =
12791311
flattenMemorystoreInstanceStateInfoUpdateInfoTargetReplicaCount(original["targetReplicaCount"], d, config)
1312+
transformed["target_engine_version"] =
1313+
flattenMemorystoreInstanceStateInfoUpdateInfoTargetEngineVersion(original["targetEngineVersion"], d, config)
1314+
transformed["target_node_type"] =
1315+
flattenMemorystoreInstanceStateInfoUpdateInfoTargetNodeType(original["targetNodeType"], d, config)
12801316
return []interface{}{transformed}
12811317
}
12821318
func flattenMemorystoreInstanceStateInfoUpdateInfoTargetShardCount(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
@@ -1313,6 +1349,14 @@ func flattenMemorystoreInstanceStateInfoUpdateInfoTargetReplicaCount(v interface
13131349
return v // let terraform core handle it otherwise
13141350
}
13151351

1352+
func flattenMemorystoreInstanceStateInfoUpdateInfoTargetEngineVersion(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1353+
return v
1354+
}
1355+
1356+
func flattenMemorystoreInstanceStateInfoUpdateInfoTargetNodeType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1357+
return v
1358+
}
1359+
13161360
func flattenMemorystoreInstanceUid(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
13171361
return v
13181362
}
@@ -1799,6 +1843,33 @@ func flattenMemorystoreInstanceMode(v interface{}, d *schema.ResourceData, confi
17991843
return v
18001844
}
18011845

1846+
func flattenMemorystoreInstancePscAttachmentDetails(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1847+
if v == nil {
1848+
return v
1849+
}
1850+
l := v.([]interface{})
1851+
transformed := make([]interface{}, 0, len(l))
1852+
for _, raw := range l {
1853+
original := raw.(map[string]interface{})
1854+
if len(original) < 1 {
1855+
// Do not include empty json objects coming back from the api
1856+
continue
1857+
}
1858+
transformed = append(transformed, map[string]interface{}{
1859+
"service_attachment": flattenMemorystoreInstancePscAttachmentDetailsServiceAttachment(original["serviceAttachment"], d, config),
1860+
"connection_type": flattenMemorystoreInstancePscAttachmentDetailsConnectionType(original["connectionType"], d, config),
1861+
})
1862+
}
1863+
return transformed
1864+
}
1865+
func flattenMemorystoreInstancePscAttachmentDetailsServiceAttachment(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1866+
return v
1867+
}
1868+
1869+
func flattenMemorystoreInstancePscAttachmentDetailsConnectionType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1870+
return v
1871+
}
1872+
18021873
func flattenMemorystoreInstancePscAutoConnections(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
18031874
if v == nil {
18041875
return v
@@ -2258,7 +2329,7 @@ func resourceMemorystoreInstanceDecoder(d *schema.ResourceData, meta interface{}
22582329
if _, endpointsFound := res["endpoints"]; endpointsFound {
22592330
return res, nil // For Cluster Disabled instances, we would have 'endpoints' instead of 'pscAutoConnections'
22602331
}
2261-
return nil, fmt.Errorf("pscAutoConnections field not found in API response")
2332+
return res, nil
22622333
}
22632334

22642335
connections, ok := v.([]interface{})

0 commit comments

Comments
 (0)