Skip to content

Commit cafc04f

Browse files
Add Mirroring resources to Network Security. (#12420) (#3138)
[upstream:2f5a307b242272340b03c1582a452b52c506d72c] Signed-off-by: Modular Magician <[email protected]>
1 parent 961e2d7 commit cafc04f

6 files changed

+367
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/hashicorp/hcl/v2 v2.20.1
1212
github.com/hashicorp/terraform-json v0.22.1
1313
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
14-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126201353-4d956a8fe036
14+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126204447-015857320c8c
1515
github.com/mitchellh/go-homedir v1.1.0 // indirect
1616
github.com/pkg/errors v0.9.1
1717
github.com/stretchr/testify v1.9.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 h1:qHprzXy/As0rxedphECBEQAh
190190
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A=
191191
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
192192
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
193-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126201353-4d956a8fe036 h1:4ZK3LpSxWlXYeBTjgv+JSyZwcI4FphoyBcqve7L0rGo=
194-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126201353-4d956a8fe036/go.mod h1:7wuVGQqktzeD6IUlbXiQ/5VW7SOiM2azbN6jbRuvYxA=
193+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126204447-015857320c8c h1:u5oxMmT4vds0I5y931BqC4ZP/VfkgFiPHifAikDv0YU=
194+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241126204447-015857320c8c/go.mod h1:7wuVGQqktzeD6IUlbXiQ/5VW7SOiM2azbN6jbRuvYxA=
195195
github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI=
196196
github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM=
197197
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package networksecurity
16+
17+
import (
18+
"reflect"
19+
20+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v5/tfplan2cai/converters/google/resources/cai"
21+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
22+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
23+
)
24+
25+
const NetworkSecurityMirroringDeploymentAssetType string = "networksecurity.googleapis.com/MirroringDeployment"
26+
27+
func ResourceConverterNetworkSecurityMirroringDeployment() cai.ResourceConverter {
28+
return cai.ResourceConverter{
29+
AssetType: NetworkSecurityMirroringDeploymentAssetType,
30+
Convert: GetNetworkSecurityMirroringDeploymentCaiObject,
31+
}
32+
}
33+
34+
func GetNetworkSecurityMirroringDeploymentCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
35+
name, err := cai.AssetName(d, config, "//networksecurity.googleapis.com/projects/{{project}}/locations/{{location}}/mirroringDeployments/{{mirroring_deployment_id}}")
36+
if err != nil {
37+
return []cai.Asset{}, err
38+
}
39+
if obj, err := GetNetworkSecurityMirroringDeploymentApiObject(d, config); err == nil {
40+
return []cai.Asset{{
41+
Name: name,
42+
Type: NetworkSecurityMirroringDeploymentAssetType,
43+
Resource: &cai.AssetResource{
44+
Version: "v1beta1",
45+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/networksecurity/v1beta1/rest",
46+
DiscoveryName: "MirroringDeployment",
47+
Data: obj,
48+
},
49+
}}, nil
50+
} else {
51+
return []cai.Asset{}, err
52+
}
53+
}
54+
55+
func GetNetworkSecurityMirroringDeploymentApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
56+
obj := make(map[string]interface{})
57+
forwardingRuleProp, err := expandNetworkSecurityMirroringDeploymentForwardingRule(d.Get("forwarding_rule"), d, config)
58+
if err != nil {
59+
return nil, err
60+
} else if v, ok := d.GetOkExists("forwarding_rule"); !tpgresource.IsEmptyValue(reflect.ValueOf(forwardingRuleProp)) && (ok || !reflect.DeepEqual(v, forwardingRuleProp)) {
61+
obj["forwardingRule"] = forwardingRuleProp
62+
}
63+
mirroringDeploymentGroupProp, err := expandNetworkSecurityMirroringDeploymentMirroringDeploymentGroup(d.Get("mirroring_deployment_group"), d, config)
64+
if err != nil {
65+
return nil, err
66+
} else if v, ok := d.GetOkExists("mirroring_deployment_group"); !tpgresource.IsEmptyValue(reflect.ValueOf(mirroringDeploymentGroupProp)) && (ok || !reflect.DeepEqual(v, mirroringDeploymentGroupProp)) {
67+
obj["mirroringDeploymentGroup"] = mirroringDeploymentGroupProp
68+
}
69+
labelsProp, err := expandNetworkSecurityMirroringDeploymentEffectiveLabels(d.Get("effective_labels"), d, config)
70+
if err != nil {
71+
return nil, err
72+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
73+
obj["labels"] = labelsProp
74+
}
75+
76+
return obj, nil
77+
}
78+
79+
func expandNetworkSecurityMirroringDeploymentForwardingRule(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
80+
return v, nil
81+
}
82+
83+
func expandNetworkSecurityMirroringDeploymentMirroringDeploymentGroup(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
84+
return v, nil
85+
}
86+
87+
func expandNetworkSecurityMirroringDeploymentEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
88+
if v == nil {
89+
return map[string]string{}, nil
90+
}
91+
m := make(map[string]string)
92+
for k, val := range v.(map[string]interface{}) {
93+
m[k] = val.(string)
94+
}
95+
return m, nil
96+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package networksecurity
16+
17+
import (
18+
"reflect"
19+
20+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v5/tfplan2cai/converters/google/resources/cai"
21+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
22+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
23+
)
24+
25+
const NetworkSecurityMirroringDeploymentGroupAssetType string = "networksecurity.googleapis.com/MirroringDeploymentGroup"
26+
27+
func ResourceConverterNetworkSecurityMirroringDeploymentGroup() cai.ResourceConverter {
28+
return cai.ResourceConverter{
29+
AssetType: NetworkSecurityMirroringDeploymentGroupAssetType,
30+
Convert: GetNetworkSecurityMirroringDeploymentGroupCaiObject,
31+
}
32+
}
33+
34+
func GetNetworkSecurityMirroringDeploymentGroupCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
35+
name, err := cai.AssetName(d, config, "//networksecurity.googleapis.com/projects/{{project}}/locations/{{location}}/mirroringDeploymentGroups/{{mirroring_deployment_group_id}}")
36+
if err != nil {
37+
return []cai.Asset{}, err
38+
}
39+
if obj, err := GetNetworkSecurityMirroringDeploymentGroupApiObject(d, config); err == nil {
40+
return []cai.Asset{{
41+
Name: name,
42+
Type: NetworkSecurityMirroringDeploymentGroupAssetType,
43+
Resource: &cai.AssetResource{
44+
Version: "v1beta1",
45+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/networksecurity/v1beta1/rest",
46+
DiscoveryName: "MirroringDeploymentGroup",
47+
Data: obj,
48+
},
49+
}}, nil
50+
} else {
51+
return []cai.Asset{}, err
52+
}
53+
}
54+
55+
func GetNetworkSecurityMirroringDeploymentGroupApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
56+
obj := make(map[string]interface{})
57+
networkProp, err := expandNetworkSecurityMirroringDeploymentGroupNetwork(d.Get("network"), d, config)
58+
if err != nil {
59+
return nil, err
60+
} else if v, ok := d.GetOkExists("network"); !tpgresource.IsEmptyValue(reflect.ValueOf(networkProp)) && (ok || !reflect.DeepEqual(v, networkProp)) {
61+
obj["network"] = networkProp
62+
}
63+
labelsProp, err := expandNetworkSecurityMirroringDeploymentGroupEffectiveLabels(d.Get("effective_labels"), d, config)
64+
if err != nil {
65+
return nil, err
66+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
67+
obj["labels"] = labelsProp
68+
}
69+
70+
return obj, nil
71+
}
72+
73+
func expandNetworkSecurityMirroringDeploymentGroupNetwork(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
74+
return v, nil
75+
}
76+
77+
func expandNetworkSecurityMirroringDeploymentGroupEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
78+
if v == nil {
79+
return map[string]string{}, nil
80+
}
81+
m := make(map[string]string)
82+
for k, val := range v.(map[string]interface{}) {
83+
m[k] = val.(string)
84+
}
85+
return m, nil
86+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package networksecurity
16+
17+
import (
18+
"reflect"
19+
20+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v5/tfplan2cai/converters/google/resources/cai"
21+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
22+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
23+
)
24+
25+
const NetworkSecurityMirroringEndpointGroupAssetType string = "networksecurity.googleapis.com/MirroringEndpointGroup"
26+
27+
func ResourceConverterNetworkSecurityMirroringEndpointGroup() cai.ResourceConverter {
28+
return cai.ResourceConverter{
29+
AssetType: NetworkSecurityMirroringEndpointGroupAssetType,
30+
Convert: GetNetworkSecurityMirroringEndpointGroupCaiObject,
31+
}
32+
}
33+
34+
func GetNetworkSecurityMirroringEndpointGroupCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
35+
name, err := cai.AssetName(d, config, "//networksecurity.googleapis.com/projects/{{project}}/locations/{{location}}/mirroringEndpointGroups/{{mirroring_endpoint_group_id}}")
36+
if err != nil {
37+
return []cai.Asset{}, err
38+
}
39+
if obj, err := GetNetworkSecurityMirroringEndpointGroupApiObject(d, config); err == nil {
40+
return []cai.Asset{{
41+
Name: name,
42+
Type: NetworkSecurityMirroringEndpointGroupAssetType,
43+
Resource: &cai.AssetResource{
44+
Version: "v1beta1",
45+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/networksecurity/v1beta1/rest",
46+
DiscoveryName: "MirroringEndpointGroup",
47+
Data: obj,
48+
},
49+
}}, nil
50+
} else {
51+
return []cai.Asset{}, err
52+
}
53+
}
54+
55+
func GetNetworkSecurityMirroringEndpointGroupApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
56+
obj := make(map[string]interface{})
57+
mirroringDeploymentGroupProp, err := expandNetworkSecurityMirroringEndpointGroupMirroringDeploymentGroup(d.Get("mirroring_deployment_group"), d, config)
58+
if err != nil {
59+
return nil, err
60+
} else if v, ok := d.GetOkExists("mirroring_deployment_group"); !tpgresource.IsEmptyValue(reflect.ValueOf(mirroringDeploymentGroupProp)) && (ok || !reflect.DeepEqual(v, mirroringDeploymentGroupProp)) {
61+
obj["mirroringDeploymentGroup"] = mirroringDeploymentGroupProp
62+
}
63+
labelsProp, err := expandNetworkSecurityMirroringEndpointGroupEffectiveLabels(d.Get("effective_labels"), d, config)
64+
if err != nil {
65+
return nil, err
66+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
67+
obj["labels"] = labelsProp
68+
}
69+
70+
return obj, nil
71+
}
72+
73+
func expandNetworkSecurityMirroringEndpointGroupMirroringDeploymentGroup(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
74+
return v, nil
75+
}
76+
77+
func expandNetworkSecurityMirroringEndpointGroupEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
78+
if v == nil {
79+
return map[string]string{}, nil
80+
}
81+
m := make(map[string]string)
82+
for k, val := range v.(map[string]interface{}) {
83+
m[k] = val.(string)
84+
}
85+
return m, nil
86+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This file is automatically generated by Magic Modules and manual
8+
// changes will be clobbered when the file is regenerated.
9+
//
10+
// Please read more about how to change this file in
11+
// .github/CONTRIBUTING.md.
12+
//
13+
// ----------------------------------------------------------------------------
14+
15+
package networksecurity
16+
17+
import (
18+
"reflect"
19+
20+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v5/tfplan2cai/converters/google/resources/cai"
21+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
22+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
23+
)
24+
25+
const NetworkSecurityMirroringEndpointGroupAssociationAssetType string = "networksecurity.googleapis.com/MirroringEndpointGroupAssociation"
26+
27+
func ResourceConverterNetworkSecurityMirroringEndpointGroupAssociation() cai.ResourceConverter {
28+
return cai.ResourceConverter{
29+
AssetType: NetworkSecurityMirroringEndpointGroupAssociationAssetType,
30+
Convert: GetNetworkSecurityMirroringEndpointGroupAssociationCaiObject,
31+
}
32+
}
33+
34+
func GetNetworkSecurityMirroringEndpointGroupAssociationCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
35+
name, err := cai.AssetName(d, config, "//networksecurity.googleapis.com/projects/{{project}}/locations/{{location}}/mirroringEndpointGroupAssociations/{{mirroring_endpoint_group_association_id}}")
36+
if err != nil {
37+
return []cai.Asset{}, err
38+
}
39+
if obj, err := GetNetworkSecurityMirroringEndpointGroupAssociationApiObject(d, config); err == nil {
40+
return []cai.Asset{{
41+
Name: name,
42+
Type: NetworkSecurityMirroringEndpointGroupAssociationAssetType,
43+
Resource: &cai.AssetResource{
44+
Version: "v1beta1",
45+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/networksecurity/v1beta1/rest",
46+
DiscoveryName: "MirroringEndpointGroupAssociation",
47+
Data: obj,
48+
},
49+
}}, nil
50+
} else {
51+
return []cai.Asset{}, err
52+
}
53+
}
54+
55+
func GetNetworkSecurityMirroringEndpointGroupAssociationApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
56+
obj := make(map[string]interface{})
57+
mirroringEndpointGroupProp, err := expandNetworkSecurityMirroringEndpointGroupAssociationMirroringEndpointGroup(d.Get("mirroring_endpoint_group"), d, config)
58+
if err != nil {
59+
return nil, err
60+
} else if v, ok := d.GetOkExists("mirroring_endpoint_group"); !tpgresource.IsEmptyValue(reflect.ValueOf(mirroringEndpointGroupProp)) && (ok || !reflect.DeepEqual(v, mirroringEndpointGroupProp)) {
61+
obj["mirroringEndpointGroup"] = mirroringEndpointGroupProp
62+
}
63+
networkProp, err := expandNetworkSecurityMirroringEndpointGroupAssociationNetwork(d.Get("network"), d, config)
64+
if err != nil {
65+
return nil, err
66+
} else if v, ok := d.GetOkExists("network"); !tpgresource.IsEmptyValue(reflect.ValueOf(networkProp)) && (ok || !reflect.DeepEqual(v, networkProp)) {
67+
obj["network"] = networkProp
68+
}
69+
labelsProp, err := expandNetworkSecurityMirroringEndpointGroupAssociationEffectiveLabels(d.Get("effective_labels"), d, config)
70+
if err != nil {
71+
return nil, err
72+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
73+
obj["labels"] = labelsProp
74+
}
75+
76+
return obj, nil
77+
}
78+
79+
func expandNetworkSecurityMirroringEndpointGroupAssociationMirroringEndpointGroup(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
80+
return v, nil
81+
}
82+
83+
func expandNetworkSecurityMirroringEndpointGroupAssociationNetwork(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
84+
return v, nil
85+
}
86+
87+
func expandNetworkSecurityMirroringEndpointGroupAssociationEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
88+
if v == nil {
89+
return map[string]string{}, nil
90+
}
91+
m := make(map[string]string)
92+
for k, val := range v.(map[string]interface{}) {
93+
m[k] = val.(string)
94+
}
95+
return m, nil
96+
}

0 commit comments

Comments
 (0)