@@ -124,6 +124,27 @@ with varying MTUs.`,
124
124
Description : `Set the order that Firewall Rules and Firewall Policies are evaluated. Default value: "AFTER_CLASSIC_FIREWALL" Possible values: ["BEFORE_CLASSIC_FIREWALL", "AFTER_CLASSIC_FIREWALL"]` ,
125
125
Default : "AFTER_CLASSIC_FIREWALL" ,
126
126
},
127
+ "bgp_always_compare_med" : {
128
+ Type : schema .TypeBool ,
129
+ Computed : true ,
130
+ Optional : true ,
131
+ Description : `Enables/disables the comparison of MED across routes with different Neighbor ASNs.
132
+ This value can only be set if the --bgp-best-path-selection-mode is STANDARD` ,
133
+ },
134
+ "bgp_best_path_selection_mode" : {
135
+ Type : schema .TypeString ,
136
+ Computed : true ,
137
+ Optional : true ,
138
+ ValidateFunc : verify .ValidateEnum ([]string {"LEGACY" , "STANDARD" , "" }),
139
+ Description : `The BGP best selection algorithm to be employed. MODE can be LEGACY or STANDARD. Possible values: ["LEGACY", "STANDARD"]` ,
140
+ },
141
+ "bgp_inter_region_cost" : {
142
+ Type : schema .TypeString ,
143
+ Computed : true ,
144
+ Optional : true ,
145
+ ValidateFunc : verify .ValidateEnum ([]string {"DEFAULT" , "ADD_COST_TO_MED" , "" }),
146
+ Description : `Choice of the behavior of inter-regional cost and MED in the BPS algorithm. Possible values: ["DEFAULT", "ADD_COST_TO_MED"]` ,
147
+ },
127
148
"routing_mode" : {
128
149
Type : schema .TypeString ,
129
150
Computed : true ,
@@ -454,7 +475,7 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro
454
475
455
476
d .Partial (true )
456
477
457
- if d .HasChange ("routing_mode" ) || d .HasChange ("network_firewall_policy_enforcement_order" ) {
478
+ if d .HasChange ("routing_mode" ) || d .HasChange ("bgp_best_path_selection_mode" ) || d . HasChange ( "bgp_always_compare_med" ) || d . HasChange ( "bgp_inter_region_cost" ) || d . HasChange ( " network_firewall_policy_enforcement_order" ) {
458
479
obj := make (map [string ]interface {})
459
480
460
481
routingConfigProp , err := expandComputeNetworkRoutingConfig (nil , d , config )
@@ -632,12 +653,30 @@ func flattenComputeNetworkRoutingConfig(v interface{}, d *schema.ResourceData, c
632
653
transformed := make (map [string ]interface {})
633
654
transformed ["routing_mode" ] =
634
655
flattenComputeNetworkRoutingConfigRoutingMode (original ["routingMode" ], d , config )
656
+ transformed ["bgp_best_path_selection_mode" ] =
657
+ flattenComputeNetworkRoutingConfigBgpBestPathSelectionMode (original ["bgpBestPathSelectionMode" ], d , config )
658
+ transformed ["bgp_always_compare_med" ] =
659
+ flattenComputeNetworkRoutingConfigBgpAlwaysCompareMed (original ["bgpAlwaysCompareMed" ], d , config )
660
+ transformed ["bgp_inter_region_cost" ] =
661
+ flattenComputeNetworkRoutingConfigBgpInterRegionCost (original ["bgpInterRegionCost" ], d , config )
635
662
return []interface {}{transformed }
636
663
}
637
664
func flattenComputeNetworkRoutingConfigRoutingMode (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
638
665
return v
639
666
}
640
667
668
+ func flattenComputeNetworkRoutingConfigBgpBestPathSelectionMode (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
669
+ return v
670
+ }
671
+
672
+ func flattenComputeNetworkRoutingConfigBgpAlwaysCompareMed (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
673
+ return v
674
+ }
675
+
676
+ func flattenComputeNetworkRoutingConfigBgpInterRegionCost (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
677
+ return v
678
+ }
679
+
641
680
func flattenComputeNetworkMtu (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
642
681
// Handles the string fixed64 format
643
682
if strVal , ok := v .(string ); ok {
@@ -688,13 +727,46 @@ func expandComputeNetworkRoutingConfig(v interface{}, d tpgresource.TerraformRes
688
727
transformed ["routingMode" ] = transformedRoutingMode
689
728
}
690
729
730
+ transformedBgpBestPathSelectionMode , err := expandComputeNetworkRoutingConfigBgpBestPathSelectionMode (d .Get ("bgp_best_path_selection_mode" ), d , config )
731
+ if err != nil {
732
+ return nil , err
733
+ } else if val := reflect .ValueOf (transformedBgpBestPathSelectionMode ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
734
+ transformed ["bgpBestPathSelectionMode" ] = transformedBgpBestPathSelectionMode
735
+ }
736
+
737
+ transformedBgpAlwaysCompareMed , err := expandComputeNetworkRoutingConfigBgpAlwaysCompareMed (d .Get ("bgp_always_compare_med" ), d , config )
738
+ if err != nil {
739
+ return nil , err
740
+ } else if val := reflect .ValueOf (transformedBgpAlwaysCompareMed ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
741
+ transformed ["bgpAlwaysCompareMed" ] = transformedBgpAlwaysCompareMed
742
+ }
743
+
744
+ transformedBgpInterRegionCost , err := expandComputeNetworkRoutingConfigBgpInterRegionCost (d .Get ("bgp_inter_region_cost" ), d , config )
745
+ if err != nil {
746
+ return nil , err
747
+ } else if val := reflect .ValueOf (transformedBgpInterRegionCost ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
748
+ transformed ["bgpInterRegionCost" ] = transformedBgpInterRegionCost
749
+ }
750
+
691
751
return transformed , nil
692
752
}
693
753
694
754
func expandComputeNetworkRoutingConfigRoutingMode (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
695
755
return v , nil
696
756
}
697
757
758
+ func expandComputeNetworkRoutingConfigBgpBestPathSelectionMode (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
759
+ return v , nil
760
+ }
761
+
762
+ func expandComputeNetworkRoutingConfigBgpAlwaysCompareMed (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
763
+ return v , nil
764
+ }
765
+
766
+ func expandComputeNetworkRoutingConfigBgpInterRegionCost (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
767
+ return v , nil
768
+ }
769
+
698
770
func expandComputeNetworkMtu (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
699
771
return v , nil
700
772
}
0 commit comments