@@ -633,26 +633,30 @@ func flattenComputeRouterBgpAdvertisedIpRanges(v interface{}, d *schema.Resource
633
633
return v
634
634
}
635
635
l := v .([]interface {})
636
- transformed := make ([]interface {}, 0 , len (l ))
636
+ apiData := make ([] map [ string ]interface {}, 0 , len (l ))
637
637
for _ , raw := range l {
638
638
original := raw .(map [string ]interface {})
639
639
if len (original ) < 1 {
640
640
// Do not include empty json objects coming back from the api
641
641
continue
642
642
}
643
- transformed = append (transformed , map [string ]interface {}{
644
- "range " : flattenComputeRouterBgpAdvertisedIpRangesRange ( original ["range" ], d , config ) ,
645
- "description " : flattenComputeRouterBgpAdvertisedIpRangesDescription ( original ["description" ], d , config ) ,
643
+ apiData = append (apiData , map [string ]interface {}{
644
+ "description " : original ["description" ] ,
645
+ "range " : original ["range" ] ,
646
646
})
647
647
}
648
- return transformed
649
- }
650
- func flattenComputeRouterBgpAdvertisedIpRangesRange (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
651
- return v
652
- }
653
-
654
- func flattenComputeRouterBgpAdvertisedIpRangesDescription (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
655
- return v
648
+ configData := []map [string ]interface {}{}
649
+ if v , ok := d .GetOk ("advertised_ip_ranges" ); ok {
650
+ for _ , item := range v .([]interface {}) {
651
+ configData = append (configData , item .(map [string ]interface {}))
652
+ }
653
+ }
654
+ sorted , err := tpgresource .SortMapsByConfigOrder (configData , apiData , "range" )
655
+ if err != nil {
656
+ log .Printf ("[ERROR] Could not support API response for advertisedIpRanges.0.range: %s" , err )
657
+ return apiData
658
+ }
659
+ return sorted
656
660
}
657
661
658
662
func flattenComputeRouterBgpKeepaliveInterval (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
0 commit comments