@@ -141,6 +141,11 @@ subnetworks of this network, across regions. Possible values: ["REGIONAL", "GLOB
141
141
Description : `The gateway address for default routing out of the network. This value
142
142
is selected by GCP.` ,
143
143
},
144
+ "numeric_id" : {
145
+ Type : schema .TypeString ,
146
+ Computed : true ,
147
+ Description : `The unique identifier for the resource. This identifier is defined by the server.` ,
148
+ },
144
149
"delete_default_routes_on_create" : {
145
150
Type : schema .TypeBool ,
146
151
Optional : true ,
@@ -220,6 +225,11 @@ func resourceComputeNetworkCreate(d *schema.ResourceData, meta interface{}) erro
220
225
obj ["networkFirewallPolicyEnforcementOrder" ] = networkFirewallPolicyEnforcementOrderProp
221
226
}
222
227
228
+ obj , err = resourceComputeNetworkEncoder (d , meta , obj )
229
+ if err != nil {
230
+ return err
231
+ }
232
+
223
233
url , err := tpgresource .ReplaceVars (d , config , "{{ComputeBasePath}}projects/{{project}}/global/networks" )
224
234
if err != nil {
225
235
return err
@@ -342,6 +352,18 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error
342
352
return transport_tpg .HandleNotFoundError (err , d , fmt .Sprintf ("ComputeNetwork %q" , d .Id ()))
343
353
}
344
354
355
+ res , err = resourceComputeNetworkDecoder (d , meta , res )
356
+ if err != nil {
357
+ return err
358
+ }
359
+
360
+ if res == nil {
361
+ // Decoding the object has resulted in it being gone. It may be marked deleted
362
+ log .Printf ("[DEBUG] Removing ComputeNetwork because it no longer exists." )
363
+ d .SetId ("" )
364
+ return nil
365
+ }
366
+
345
367
// Explicitly set virtual fields to default values if unset
346
368
if _ , ok := d .GetOkExists ("delete_default_routes_on_create" ); ! ok {
347
369
if err := d .Set ("delete_default_routes_on_create" , false ); err != nil {
@@ -361,6 +383,9 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error
361
383
if err := d .Set ("name" , flattenComputeNetworkName (res ["name" ], d , config )); err != nil {
362
384
return fmt .Errorf ("Error reading Network: %s" , err )
363
385
}
386
+ if err := d .Set ("numeric_id" , flattenComputeNetworkNumericId (res ["numericId" ], d , config )); err != nil {
387
+ return fmt .Errorf ("Error reading Network: %s" , err )
388
+ }
364
389
if err := d .Set ("auto_create_subnetworks" , flattenComputeNetworkAutoCreateSubnetworks (res ["autoCreateSubnetworks" ], d , config )); err != nil {
365
390
return fmt .Errorf ("Error reading Network: %s" , err )
366
391
}
@@ -431,6 +456,11 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro
431
456
obj ["networkFirewallPolicyEnforcementOrder" ] = networkFirewallPolicyEnforcementOrderProp
432
457
}
433
458
459
+ obj , err = resourceComputeNetworkUpdateEncoder (d , meta , obj )
460
+ if err != nil {
461
+ return err
462
+ }
463
+
434
464
url , err := tpgresource .ReplaceVars (d , config , "{{ComputeBasePath}}projects/{{project}}/global/networks/{{name}}" )
435
465
if err != nil {
436
466
return err
@@ -559,6 +589,10 @@ func flattenComputeNetworkName(v interface{}, d *schema.ResourceData, config *tr
559
589
return v
560
590
}
561
591
592
+ func flattenComputeNetworkNumericId (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
593
+ return v
594
+ }
595
+
562
596
func flattenComputeNetworkAutoCreateSubnetworks (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
563
597
return v
564
598
}
@@ -652,3 +686,18 @@ func expandComputeNetworkInternalIpv6Range(v interface{}, d tpgresource.Terrafor
652
686
func expandComputeNetworkNetworkFirewallPolicyEnforcementOrder (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
653
687
return v , nil
654
688
}
689
+
690
+ func resourceComputeNetworkEncoder (d * schema.ResourceData , meta interface {}, obj map [string ]interface {}) (map [string ]interface {}, error ) {
691
+ delete (obj , "numeric_id" ) // Field doesn't exist in the API
692
+ return obj , nil
693
+ }
694
+
695
+ func resourceComputeNetworkUpdateEncoder (d * schema.ResourceData , meta interface {}, obj map [string ]interface {}) (map [string ]interface {}, error ) {
696
+ delete (obj , "numeric_id" ) // Field doesn't exist in the API
697
+ return obj , nil
698
+ }
699
+
700
+ func resourceComputeNetworkDecoder (d * schema.ResourceData , meta interface {}, res map [string ]interface {}) (map [string ]interface {}, error ) {
701
+ res ["numericId" ] = res ["id" ] // stores unique id into numericId attribute before it's changed to path format
702
+ return res , nil
703
+ }
0 commit comments