@@ -471,6 +471,84 @@ Please refer to the field 'effective_labels' for all of the labels present on th
471
471
MaxItems : 1 ,
472
472
Elem : & schema.Resource {
473
473
Schema : map [string ]* schema.Schema {
474
+ "clusterupgrade" : {
475
+ Type : schema .TypeList ,
476
+ Optional : true ,
477
+ Description : `Clusterupgrade feature spec.` ,
478
+ MaxItems : 1 ,
479
+ Elem : & schema.Resource {
480
+ Schema : map [string ]* schema.Schema {
481
+ "post_conditions" : {
482
+ Type : schema .TypeList ,
483
+ Computed : true ,
484
+ Optional : true ,
485
+ Description : `Post conditions to override for the specified upgrade.` ,
486
+ MaxItems : 1 ,
487
+ Elem : & schema.Resource {
488
+ Schema : map [string ]* schema.Schema {
489
+ "soaking" : {
490
+ Type : schema .TypeString ,
491
+ Required : true ,
492
+ Description : `Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.` ,
493
+ },
494
+ },
495
+ },
496
+ },
497
+ "upstream_fleets" : {
498
+ Type : schema .TypeList ,
499
+ Required : true ,
500
+ Description : `Specified if other fleet should be considered as a source of upgrades. Currently, at most one upstream fleet is allowed. The fleet name should be either fleet project number or id.` ,
501
+ Elem : & schema.Schema {
502
+ Type : schema .TypeString ,
503
+ },
504
+ },
505
+ "gke_upgrade_overrides" : {
506
+ Type : schema .TypeList ,
507
+ Optional : true ,
508
+ Description : `Configuration overrides for individual upgrades.` ,
509
+ Elem : & schema.Resource {
510
+ Schema : map [string ]* schema.Schema {
511
+ "post_conditions" : {
512
+ Type : schema .TypeList ,
513
+ Required : true ,
514
+ Description : `Post conditions to override for the specified upgrade.` ,
515
+ MaxItems : 1 ,
516
+ Elem : & schema.Resource {
517
+ Schema : map [string ]* schema.Schema {
518
+ "soaking" : {
519
+ Type : schema .TypeString ,
520
+ Required : true ,
521
+ Description : `Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.` ,
522
+ },
523
+ },
524
+ },
525
+ },
526
+ "upgrade" : {
527
+ Type : schema .TypeList ,
528
+ Required : true ,
529
+ Description : `Which upgrade to override.` ,
530
+ MaxItems : 1 ,
531
+ Elem : & schema.Resource {
532
+ Schema : map [string ]* schema.Schema {
533
+ "name" : {
534
+ Type : schema .TypeString ,
535
+ Required : true ,
536
+ Description : `Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters.` ,
537
+ },
538
+ "version" : {
539
+ Type : schema .TypeString ,
540
+ Required : true ,
541
+ Description : `Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters.` ,
542
+ },
543
+ },
544
+ },
545
+ },
546
+ },
547
+ },
548
+ },
549
+ },
550
+ },
551
+ },
474
552
"fleetobservability" : {
475
553
Type : schema .TypeList ,
476
554
Optional : true ,
@@ -1017,6 +1095,8 @@ func flattenGKEHub2FeatureSpec(v interface{}, d *schema.ResourceData, config *tr
1017
1095
flattenGKEHub2FeatureSpecMulticlusteringress (original ["multiclusteringress" ], d , config )
1018
1096
transformed ["fleetobservability" ] =
1019
1097
flattenGKEHub2FeatureSpecFleetobservability (original ["fleetobservability" ], d , config )
1098
+ transformed ["clusterupgrade" ] =
1099
+ flattenGKEHub2FeatureSpecClusterupgrade (original ["clusterupgrade" ], d , config )
1020
1100
return []interface {}{transformed }
1021
1101
}
1022
1102
func flattenGKEHub2FeatureSpecMulticlusteringress (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -1098,6 +1178,103 @@ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfi
1098
1178
return v
1099
1179
}
1100
1180
1181
+ func flattenGKEHub2FeatureSpecClusterupgrade (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1182
+ if v == nil {
1183
+ return nil
1184
+ }
1185
+ original := v .(map [string ]interface {})
1186
+ if len (original ) == 0 {
1187
+ return nil
1188
+ }
1189
+ transformed := make (map [string ]interface {})
1190
+ transformed ["upstream_fleets" ] =
1191
+ flattenGKEHub2FeatureSpecClusterupgradeUpstreamFleets (original ["upstreamFleets" ], d , config )
1192
+ transformed ["post_conditions" ] =
1193
+ flattenGKEHub2FeatureSpecClusterupgradePostConditions (original ["postConditions" ], d , config )
1194
+ transformed ["gke_upgrade_overrides" ] =
1195
+ flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverrides (original ["gkeUpgradeOverrides" ], d , config )
1196
+ return []interface {}{transformed }
1197
+ }
1198
+ func flattenGKEHub2FeatureSpecClusterupgradeUpstreamFleets (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1199
+ return v
1200
+ }
1201
+
1202
+ func flattenGKEHub2FeatureSpecClusterupgradePostConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1203
+ if v == nil {
1204
+ return nil
1205
+ }
1206
+ original := v .(map [string ]interface {})
1207
+ if len (original ) == 0 {
1208
+ return nil
1209
+ }
1210
+ transformed := make (map [string ]interface {})
1211
+ transformed ["soaking" ] =
1212
+ flattenGKEHub2FeatureSpecClusterupgradePostConditionsSoaking (original ["soaking" ], d , config )
1213
+ return []interface {}{transformed }
1214
+ }
1215
+ func flattenGKEHub2FeatureSpecClusterupgradePostConditionsSoaking (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1216
+ return v
1217
+ }
1218
+
1219
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverrides (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1220
+ if v == nil {
1221
+ return v
1222
+ }
1223
+ l := v .([]interface {})
1224
+ transformed := make ([]interface {}, 0 , len (l ))
1225
+ for _ , raw := range l {
1226
+ original := raw .(map [string ]interface {})
1227
+ if len (original ) < 1 {
1228
+ // Do not include empty json objects coming back from the api
1229
+ continue
1230
+ }
1231
+ transformed = append (transformed , map [string ]interface {}{
1232
+ "upgrade" : flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade (original ["upgrade" ], d , config ),
1233
+ "post_conditions" : flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions (original ["postConditions" ], d , config ),
1234
+ })
1235
+ }
1236
+ return transformed
1237
+ }
1238
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1239
+ if v == nil {
1240
+ return nil
1241
+ }
1242
+ original := v .(map [string ]interface {})
1243
+ if len (original ) == 0 {
1244
+ return nil
1245
+ }
1246
+ transformed := make (map [string ]interface {})
1247
+ transformed ["name" ] =
1248
+ flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeName (original ["name" ], d , config )
1249
+ transformed ["version" ] =
1250
+ flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeVersion (original ["version" ], d , config )
1251
+ return []interface {}{transformed }
1252
+ }
1253
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeName (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1254
+ return v
1255
+ }
1256
+
1257
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeVersion (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1258
+ return v
1259
+ }
1260
+
1261
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1262
+ if v == nil {
1263
+ return nil
1264
+ }
1265
+ original := v .(map [string ]interface {})
1266
+ if len (original ) == 0 {
1267
+ return nil
1268
+ }
1269
+ transformed := make (map [string ]interface {})
1270
+ transformed ["soaking" ] =
1271
+ flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsSoaking (original ["soaking" ], d , config )
1272
+ return []interface {}{transformed }
1273
+ }
1274
+ func flattenGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsSoaking (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1275
+ return v
1276
+ }
1277
+
1101
1278
func flattenGKEHub2FeatureFleetDefaultMemberConfig (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1102
1279
if v == nil {
1103
1280
return nil
@@ -1683,6 +1860,13 @@ func expandGKEHub2FeatureSpec(v interface{}, d tpgresource.TerraformResourceData
1683
1860
transformed ["fleetobservability" ] = transformedFleetobservability
1684
1861
}
1685
1862
1863
+ transformedClusterupgrade , err := expandGKEHub2FeatureSpecClusterupgrade (original ["clusterupgrade" ], d , config )
1864
+ if err != nil {
1865
+ return nil , err
1866
+ } else if val := reflect .ValueOf (transformedClusterupgrade ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
1867
+ transformed ["clusterupgrade" ] = transformedClusterupgrade
1868
+ }
1869
+
1686
1870
return transformed , nil
1687
1871
}
1688
1872
@@ -1800,6 +1984,152 @@ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig
1800
1984
return v , nil
1801
1985
}
1802
1986
1987
+ func expandGKEHub2FeatureSpecClusterupgrade (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1988
+ l := v .([]interface {})
1989
+ if len (l ) == 0 || l [0 ] == nil {
1990
+ return nil , nil
1991
+ }
1992
+ raw := l [0 ]
1993
+ original := raw .(map [string ]interface {})
1994
+ transformed := make (map [string ]interface {})
1995
+
1996
+ transformedUpstreamFleets , err := expandGKEHub2FeatureSpecClusterupgradeUpstreamFleets (original ["upstream_fleets" ], d , config )
1997
+ if err != nil {
1998
+ return nil , err
1999
+ } else if val := reflect .ValueOf (transformedUpstreamFleets ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2000
+ transformed ["upstreamFleets" ] = transformedUpstreamFleets
2001
+ }
2002
+
2003
+ transformedPostConditions , err := expandGKEHub2FeatureSpecClusterupgradePostConditions (original ["post_conditions" ], d , config )
2004
+ if err != nil {
2005
+ return nil , err
2006
+ } else if val := reflect .ValueOf (transformedPostConditions ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2007
+ transformed ["postConditions" ] = transformedPostConditions
2008
+ }
2009
+
2010
+ transformedGkeUpgradeOverrides , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverrides (original ["gke_upgrade_overrides" ], d , config )
2011
+ if err != nil {
2012
+ return nil , err
2013
+ } else if val := reflect .ValueOf (transformedGkeUpgradeOverrides ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2014
+ transformed ["gkeUpgradeOverrides" ] = transformedGkeUpgradeOverrides
2015
+ }
2016
+
2017
+ return transformed , nil
2018
+ }
2019
+
2020
+ func expandGKEHub2FeatureSpecClusterupgradeUpstreamFleets (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2021
+ return v , nil
2022
+ }
2023
+
2024
+ func expandGKEHub2FeatureSpecClusterupgradePostConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2025
+ l := v .([]interface {})
2026
+ if len (l ) == 0 || l [0 ] == nil {
2027
+ return nil , nil
2028
+ }
2029
+ raw := l [0 ]
2030
+ original := raw .(map [string ]interface {})
2031
+ transformed := make (map [string ]interface {})
2032
+
2033
+ transformedSoaking , err := expandGKEHub2FeatureSpecClusterupgradePostConditionsSoaking (original ["soaking" ], d , config )
2034
+ if err != nil {
2035
+ return nil , err
2036
+ } else if val := reflect .ValueOf (transformedSoaking ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2037
+ transformed ["soaking" ] = transformedSoaking
2038
+ }
2039
+
2040
+ return transformed , nil
2041
+ }
2042
+
2043
+ func expandGKEHub2FeatureSpecClusterupgradePostConditionsSoaking (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2044
+ return v , nil
2045
+ }
2046
+
2047
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverrides (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2048
+ l := v .([]interface {})
2049
+ req := make ([]interface {}, 0 , len (l ))
2050
+ for _ , raw := range l {
2051
+ if raw == nil {
2052
+ continue
2053
+ }
2054
+ original := raw .(map [string ]interface {})
2055
+ transformed := make (map [string ]interface {})
2056
+
2057
+ transformedUpgrade , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade (original ["upgrade" ], d , config )
2058
+ if err != nil {
2059
+ return nil , err
2060
+ } else if val := reflect .ValueOf (transformedUpgrade ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2061
+ transformed ["upgrade" ] = transformedUpgrade
2062
+ }
2063
+
2064
+ transformedPostConditions , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions (original ["post_conditions" ], d , config )
2065
+ if err != nil {
2066
+ return nil , err
2067
+ } else if val := reflect .ValueOf (transformedPostConditions ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2068
+ transformed ["postConditions" ] = transformedPostConditions
2069
+ }
2070
+
2071
+ req = append (req , transformed )
2072
+ }
2073
+ return req , nil
2074
+ }
2075
+
2076
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2077
+ l := v .([]interface {})
2078
+ if len (l ) == 0 || l [0 ] == nil {
2079
+ return nil , nil
2080
+ }
2081
+ raw := l [0 ]
2082
+ original := raw .(map [string ]interface {})
2083
+ transformed := make (map [string ]interface {})
2084
+
2085
+ transformedName , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeName (original ["name" ], d , config )
2086
+ if err != nil {
2087
+ return nil , err
2088
+ } else if val := reflect .ValueOf (transformedName ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2089
+ transformed ["name" ] = transformedName
2090
+ }
2091
+
2092
+ transformedVersion , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeVersion (original ["version" ], d , config )
2093
+ if err != nil {
2094
+ return nil , err
2095
+ } else if val := reflect .ValueOf (transformedVersion ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2096
+ transformed ["version" ] = transformedVersion
2097
+ }
2098
+
2099
+ return transformed , nil
2100
+ }
2101
+
2102
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeName (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2103
+ return v , nil
2104
+ }
2105
+
2106
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeVersion (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2107
+ return v , nil
2108
+ }
2109
+
2110
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2111
+ l := v .([]interface {})
2112
+ if len (l ) == 0 || l [0 ] == nil {
2113
+ return nil , nil
2114
+ }
2115
+ raw := l [0 ]
2116
+ original := raw .(map [string ]interface {})
2117
+ transformed := make (map [string ]interface {})
2118
+
2119
+ transformedSoaking , err := expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsSoaking (original ["soaking" ], d , config )
2120
+ if err != nil {
2121
+ return nil , err
2122
+ } else if val := reflect .ValueOf (transformedSoaking ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2123
+ transformed ["soaking" ] = transformedSoaking
2124
+ }
2125
+
2126
+ return transformed , nil
2127
+ }
2128
+
2129
+ func expandGKEHub2FeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsSoaking (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2130
+ return v , nil
2131
+ }
2132
+
1803
2133
func expandGKEHub2FeatureFleetDefaultMemberConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1804
2134
l := v .([]interface {})
1805
2135
if len (l ) == 0 || l [0 ] == nil {
0 commit comments