@@ -28,6 +28,7 @@ import (
28
28
29
29
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
30
30
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
31
+ "github.com/hashicorp/terraform-provider-google/google/verify"
31
32
)
32
33
33
34
func ResourceGKEHub2Feature () * schema.Resource {
@@ -74,6 +75,58 @@ func ResourceGKEHub2Feature() *schema.Resource {
74
75
MaxItems : 1 ,
75
76
Elem : & schema.Resource {
76
77
Schema : map [string ]* schema.Schema {
78
+ "fleetobservability" : {
79
+ Type : schema .TypeList ,
80
+ Optional : true ,
81
+ Description : `Fleet Observability feature spec.` ,
82
+ MaxItems : 1 ,
83
+ Elem : & schema.Resource {
84
+ Schema : map [string ]* schema.Schema {
85
+ "logging_config" : {
86
+ Type : schema .TypeList ,
87
+ Optional : true ,
88
+ Description : `Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet.` ,
89
+ MaxItems : 1 ,
90
+ Elem : & schema.Resource {
91
+ Schema : map [string ]* schema.Schema {
92
+ "default_config" : {
93
+ Type : schema .TypeList ,
94
+ Optional : true ,
95
+ Description : `Specified if applying the default routing config to logs not specified in other configs.` ,
96
+ MaxItems : 1 ,
97
+ Elem : & schema.Resource {
98
+ Schema : map [string ]* schema.Schema {
99
+ "mode" : {
100
+ Type : schema .TypeString ,
101
+ Optional : true ,
102
+ ValidateFunc : verify .ValidateEnum ([]string {"MODE_UNSPECIFIED" , "COPY" , "MOVE" , "" }),
103
+ Description : `Specified if fleet logging feature is enabled. Possible values: ["MODE_UNSPECIFIED", "COPY", "MOVE"]` ,
104
+ },
105
+ },
106
+ },
107
+ },
108
+ "fleet_scope_logs_config" : {
109
+ Type : schema .TypeList ,
110
+ Optional : true ,
111
+ Description : `Specified if applying the routing config to all logs for all fleet scopes.` ,
112
+ MaxItems : 1 ,
113
+ Elem : & schema.Resource {
114
+ Schema : map [string ]* schema.Schema {
115
+ "mode" : {
116
+ Type : schema .TypeString ,
117
+ Optional : true ,
118
+ ValidateFunc : verify .ValidateEnum ([]string {"MODE_UNSPECIFIED" , "COPY" , "MOVE" , "" }),
119
+ Description : `Specified if fleet logging feature is enabled. Possible values: ["MODE_UNSPECIFIED", "COPY", "MOVE"]` ,
120
+ },
121
+ },
122
+ },
123
+ },
124
+ },
125
+ },
126
+ },
127
+ },
128
+ },
129
+ },
77
130
"multiclusteringress" : {
78
131
Type : schema .TypeList ,
79
132
Optional : true ,
@@ -521,6 +574,8 @@ func flattenGKEHub2FeatureSpec(v interface{}, d *schema.ResourceData, config *tr
521
574
transformed := make (map [string ]interface {})
522
575
transformed ["multiclusteringress" ] =
523
576
flattenGKEHub2FeatureSpecMulticlusteringress (original ["multiclusteringress" ], d , config )
577
+ transformed ["fleetobservability" ] =
578
+ flattenGKEHub2FeatureSpecFleetobservability (original ["fleetobservability" ], d , config )
524
579
return []interface {}{transformed }
525
580
}
526
581
func flattenGKEHub2FeatureSpecMulticlusteringress (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
@@ -540,6 +595,68 @@ func flattenGKEHub2FeatureSpecMulticlusteringressConfigMembership(v interface{},
540
595
return v
541
596
}
542
597
598
+ func flattenGKEHub2FeatureSpecFleetobservability (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
599
+ if v == nil {
600
+ return nil
601
+ }
602
+ original := v .(map [string ]interface {})
603
+ if len (original ) == 0 {
604
+ return nil
605
+ }
606
+ transformed := make (map [string ]interface {})
607
+ transformed ["logging_config" ] =
608
+ flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfig (original ["loggingConfig" ], d , config )
609
+ return []interface {}{transformed }
610
+ }
611
+ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfig (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
612
+ if v == nil {
613
+ return nil
614
+ }
615
+ original := v .(map [string ]interface {})
616
+ if len (original ) == 0 {
617
+ return nil
618
+ }
619
+ transformed := make (map [string ]interface {})
620
+ transformed ["default_config" ] =
621
+ flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfig (original ["defaultConfig" ], d , config )
622
+ transformed ["fleet_scope_logs_config" ] =
623
+ flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig (original ["fleetScopeLogsConfig" ], d , config )
624
+ return []interface {}{transformed }
625
+ }
626
+ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfig (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
627
+ if v == nil {
628
+ return nil
629
+ }
630
+ original := v .(map [string ]interface {})
631
+ if len (original ) == 0 {
632
+ return nil
633
+ }
634
+ transformed := make (map [string ]interface {})
635
+ transformed ["mode" ] =
636
+ flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfigMode (original ["mode" ], d , config )
637
+ return []interface {}{transformed }
638
+ }
639
+ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfigMode (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
640
+ return v
641
+ }
642
+
643
+ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
644
+ if v == nil {
645
+ return nil
646
+ }
647
+ original := v .(map [string ]interface {})
648
+ if len (original ) == 0 {
649
+ return nil
650
+ }
651
+ transformed := make (map [string ]interface {})
652
+ transformed ["mode" ] =
653
+ flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigMode (original ["mode" ], d , config )
654
+ return []interface {}{transformed }
655
+ }
656
+ func flattenGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigMode (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
657
+ return v
658
+ }
659
+
543
660
func flattenGKEHub2FeatureState (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
544
661
if v == nil {
545
662
return nil
@@ -621,6 +738,13 @@ func expandGKEHub2FeatureSpec(v interface{}, d tpgresource.TerraformResourceData
621
738
transformed ["multiclusteringress" ] = transformedMulticlusteringress
622
739
}
623
740
741
+ transformedFleetobservability , err := expandGKEHub2FeatureSpecFleetobservability (original ["fleetobservability" ], d , config )
742
+ if err != nil {
743
+ return nil , err
744
+ } else if val := reflect .ValueOf (transformedFleetobservability ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
745
+ transformed ["fleetobservability" ] = transformedFleetobservability
746
+ }
747
+
624
748
return transformed , nil
625
749
}
626
750
@@ -646,3 +770,94 @@ func expandGKEHub2FeatureSpecMulticlusteringress(v interface{}, d tpgresource.Te
646
770
func expandGKEHub2FeatureSpecMulticlusteringressConfigMembership (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
647
771
return v , nil
648
772
}
773
+
774
+ func expandGKEHub2FeatureSpecFleetobservability (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
775
+ l := v .([]interface {})
776
+ if len (l ) == 0 || l [0 ] == nil {
777
+ return nil , nil
778
+ }
779
+ raw := l [0 ]
780
+ original := raw .(map [string ]interface {})
781
+ transformed := make (map [string ]interface {})
782
+
783
+ transformedLoggingConfig , err := expandGKEHub2FeatureSpecFleetobservabilityLoggingConfig (original ["logging_config" ], d , config )
784
+ if err != nil {
785
+ return nil , err
786
+ } else if val := reflect .ValueOf (transformedLoggingConfig ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
787
+ transformed ["loggingConfig" ] = transformedLoggingConfig
788
+ }
789
+
790
+ return transformed , nil
791
+ }
792
+
793
+ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
794
+ l := v .([]interface {})
795
+ if len (l ) == 0 || l [0 ] == nil {
796
+ return nil , nil
797
+ }
798
+ raw := l [0 ]
799
+ original := raw .(map [string ]interface {})
800
+ transformed := make (map [string ]interface {})
801
+
802
+ transformedDefaultConfig , err := expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfig (original ["default_config" ], d , config )
803
+ if err != nil {
804
+ return nil , err
805
+ } else if val := reflect .ValueOf (transformedDefaultConfig ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
806
+ transformed ["defaultConfig" ] = transformedDefaultConfig
807
+ }
808
+
809
+ transformedFleetScopeLogsConfig , err := expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig (original ["fleet_scope_logs_config" ], d , config )
810
+ if err != nil {
811
+ return nil , err
812
+ } else if val := reflect .ValueOf (transformedFleetScopeLogsConfig ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
813
+ transformed ["fleetScopeLogsConfig" ] = transformedFleetScopeLogsConfig
814
+ }
815
+
816
+ return transformed , nil
817
+ }
818
+
819
+ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
820
+ l := v .([]interface {})
821
+ if len (l ) == 0 || l [0 ] == nil {
822
+ return nil , nil
823
+ }
824
+ raw := l [0 ]
825
+ original := raw .(map [string ]interface {})
826
+ transformed := make (map [string ]interface {})
827
+
828
+ transformedMode , err := expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfigMode (original ["mode" ], d , config )
829
+ if err != nil {
830
+ return nil , err
831
+ } else if val := reflect .ValueOf (transformedMode ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
832
+ transformed ["mode" ] = transformedMode
833
+ }
834
+
835
+ return transformed , nil
836
+ }
837
+
838
+ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigDefaultConfigMode (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
839
+ return v , nil
840
+ }
841
+
842
+ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
843
+ l := v .([]interface {})
844
+ if len (l ) == 0 || l [0 ] == nil {
845
+ return nil , nil
846
+ }
847
+ raw := l [0 ]
848
+ original := raw .(map [string ]interface {})
849
+ transformed := make (map [string ]interface {})
850
+
851
+ transformedMode , err := expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigMode (original ["mode" ], d , config )
852
+ if err != nil {
853
+ return nil , err
854
+ } else if val := reflect .ValueOf (transformedMode ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
855
+ transformed ["mode" ] = transformedMode
856
+ }
857
+
858
+ return transformed , nil
859
+ }
860
+
861
+ func expandGKEHub2FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigMode (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
862
+ return v , nil
863
+ }
0 commit comments