Skip to content

Commit 1a84232

Browse files
modular-magiciankotatut
authored andcommitted
Add Terraform support for antivirus threat override (#13444) (GoogleCloudPlatform#3668)
[upstream:59ca2c34ce7b5a8d71ecf1905c7e9eb2039522de] Signed-off-by: Modular Magician <[email protected]>
1 parent 249a286 commit 1a84232

File tree

3 files changed

+48
-3
lines changed

3 files changed

+48
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/hashicorp/hcl/v2 v2.23.0
1414
github.com/hashicorp/terraform-json v0.24.0
1515
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0
16-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325180433-63008db3ba36
16+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325192347-6a28654d27aa
1717
github.com/mitchellh/go-homedir v1.1.0 // indirect
1818
github.com/pkg/errors v0.9.1
1919
github.com/stretchr/testify v1.10.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0 h1:7/iejAPyCRBhqAg3jOx+4UcA
175175
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0/go.mod h1:TiQwXAjFrgBf5tg5rvBRz8/ubPULpU0HjSaVi5UoJf8=
176176
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
177177
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
178-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325180433-63008db3ba36 h1:jdN4aerksoQNvu3tnz0+EnJDxT0gDc+WFyw63/3RQxM=
179-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325180433-63008db3ba36/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
178+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325192347-6a28654d27aa h1:iZaTOuN0MwpQ2Gt15DZ6c3k/Im8VfJDULZwpjWtnl78=
179+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250325192347-6a28654d27aa/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
180180
github.com/hashicorp/terraform-registry-address v0.2.4 h1:JXu/zHB2Ymg/TGVCRu10XqNa4Sh2bWcqCNyKWjnCPJA=
181181
github.com/hashicorp/terraform-registry-address v0.2.4/go.mod h1:tUNYTVyCtU4OIGXXMDp7WNcJ+0W1B4nmstVDgHMjfAU=
182182
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/networksecurity/networksecurity_security_profile.go

+45
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@ func expandNetworkSecuritySecurityProfileThreatPreventionProfile(v interface{},
125125
transformed["threatOverrides"] = transformedThreatOverrides
126126
}
127127

128+
transformedAntivirusOverrides, err := expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverrides(original["antivirus_overrides"], d, config)
129+
if err != nil {
130+
return nil, err
131+
} else if val := reflect.ValueOf(transformedAntivirusOverrides); val.IsValid() && !tpgresource.IsEmptyValue(val) {
132+
transformed["antivirusOverrides"] = transformedAntivirusOverrides
133+
}
134+
128135
return transformed, nil
129136
}
130137

@@ -215,6 +222,44 @@ func expandNetworkSecuritySecurityProfileThreatPreventionProfileThreatOverridesT
215222
return v, nil
216223
}
217224

225+
func expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverrides(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
226+
v = v.(*schema.Set).List()
227+
l := v.([]interface{})
228+
req := make([]interface{}, 0, len(l))
229+
for _, raw := range l {
230+
if raw == nil {
231+
continue
232+
}
233+
original := raw.(map[string]interface{})
234+
transformed := make(map[string]interface{})
235+
236+
transformedProtocol, err := expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverridesProtocol(original["protocol"], d, config)
237+
if err != nil {
238+
return nil, err
239+
} else if val := reflect.ValueOf(transformedProtocol); val.IsValid() && !tpgresource.IsEmptyValue(val) {
240+
transformed["protocol"] = transformedProtocol
241+
}
242+
243+
transformedAction, err := expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverridesAction(original["action"], d, config)
244+
if err != nil {
245+
return nil, err
246+
} else if val := reflect.ValueOf(transformedAction); val.IsValid() && !tpgresource.IsEmptyValue(val) {
247+
transformed["action"] = transformedAction
248+
}
249+
250+
req = append(req, transformed)
251+
}
252+
return req, nil
253+
}
254+
255+
func expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverridesProtocol(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
256+
return v, nil
257+
}
258+
259+
func expandNetworkSecuritySecurityProfileThreatPreventionProfileAntivirusOverridesAction(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
260+
return v, nil
261+
}
262+
218263
func expandNetworkSecuritySecurityProfileCustomMirroringProfile(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
219264
l := v.([]interface{})
220265
if len(l) == 0 || l[0] == nil {

0 commit comments

Comments
 (0)