Skip to content

Commit 10f8acd

Browse files
Support for projects in EgressSource (#12532)
[upstream:43ea8747f7ccc2ef1774b12444a8f4dae98cc0cb] Signed-off-by: Modular Magician <[email protected]>
1 parent a8c296e commit 10f8acd

File tree

6 files changed

+54
-4
lines changed

6 files changed

+54
-4
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.20250131183209-0394f74fb1b9
14+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250131200031-88dcd513b784
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
@@ -172,8 +172,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 h1:qHprzXy/As0rxedphECBEQAh
172172
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A=
173173
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
174174
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
175-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250131183209-0394f74fb1b9 h1:IjGoAtyJVwM7vnKpSpQUYZ3q2pWIdnio8+4J9Yo/x0I=
176-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250131183209-0394f74fb1b9/go.mod h1:IkJf/cFmSb0kvMORnXqL/PqiMSLMSAuOKHzH60Fea58=
175+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250131200031-88dcd513b784 h1:Iftzfuauk/KbEFjZOnw3OQqBeoueAbha2T1YEKa5E+w=
176+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250131200031-88dcd513b784/go.mod h1:IkJf/cFmSb0kvMORnXqL/PqiMSLMSAuOKHzH60Fea58=
177177
github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI=
178178
github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM=
179179
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/accesscontextmanager/accesscontextmanager_service_perimeter.go

+22
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,13 @@ func expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFromSou
623623
transformed["accessLevel"] = transformedAccessLevel
624624
}
625625

626+
transformedResource, err := expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFromSourcesResource(original["resource"], d, config)
627+
if err != nil {
628+
return nil, err
629+
} else if val := reflect.ValueOf(transformedResource); val.IsValid() && !tpgresource.IsEmptyValue(val) {
630+
transformed["resource"] = transformedResource
631+
}
632+
626633
req = append(req, transformed)
627634
}
628635
return req, nil
@@ -632,6 +639,10 @@ func expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFromSou
632639
return v, nil
633640
}
634641

642+
func expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFromSourcesResource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
643+
return v, nil
644+
}
645+
635646
func expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFromSourceRestriction(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
636647
return v, nil
637648
}
@@ -1157,6 +1168,13 @@ func expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFromSourc
11571168
transformed["accessLevel"] = transformedAccessLevel
11581169
}
11591170

1171+
transformedResource, err := expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFromSourcesResource(original["resource"], d, config)
1172+
if err != nil {
1173+
return nil, err
1174+
} else if val := reflect.ValueOf(transformedResource); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1175+
transformed["resource"] = transformedResource
1176+
}
1177+
11601178
req = append(req, transformed)
11611179
}
11621180
return req, nil
@@ -1166,6 +1184,10 @@ func expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFromSourc
11661184
return v, nil
11671185
}
11681186

1187+
func expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFromSourcesResource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1188+
return v, nil
1189+
}
1190+
11691191
func expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFromSourceRestriction(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
11701192
return v, nil
11711193
}

tfplan2cai/converters/google/resources/services/accesscontextmanager/accesscontextmanager_service_perimeters.go

+22
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,13 @@ func expandAccessContextManagerServicePerimetersServicePerimetersStatusEgressPol
583583
transformed["accessLevel"] = transformedAccessLevel
584584
}
585585

586+
transformedResource, err := expandAccessContextManagerServicePerimetersServicePerimetersStatusEgressPoliciesEgressFromSourcesResource(original["resource"], d, config)
587+
if err != nil {
588+
return nil, err
589+
} else if val := reflect.ValueOf(transformedResource); val.IsValid() && !tpgresource.IsEmptyValue(val) {
590+
transformed["resource"] = transformedResource
591+
}
592+
586593
req = append(req, transformed)
587594
}
588595
return req, nil
@@ -592,6 +599,10 @@ func expandAccessContextManagerServicePerimetersServicePerimetersStatusEgressPol
592599
return v, nil
593600
}
594601

602+
func expandAccessContextManagerServicePerimetersServicePerimetersStatusEgressPoliciesEgressFromSourcesResource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
603+
return v, nil
604+
}
605+
595606
func expandAccessContextManagerServicePerimetersServicePerimetersStatusEgressPoliciesEgressFromSourceRestriction(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
596607
return v, nil
597608
}
@@ -1117,6 +1128,13 @@ func expandAccessContextManagerServicePerimetersServicePerimetersSpecEgressPolic
11171128
transformed["accessLevel"] = transformedAccessLevel
11181129
}
11191130

1131+
transformedResource, err := expandAccessContextManagerServicePerimetersServicePerimetersSpecEgressPoliciesEgressFromSourcesResource(original["resource"], d, config)
1132+
if err != nil {
1133+
return nil, err
1134+
} else if val := reflect.ValueOf(transformedResource); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1135+
transformed["resource"] = transformedResource
1136+
}
1137+
11201138
req = append(req, transformed)
11211139
}
11221140
return req, nil
@@ -1126,6 +1144,10 @@ func expandAccessContextManagerServicePerimetersServicePerimetersSpecEgressPolic
11261144
return v, nil
11271145
}
11281146

1147+
func expandAccessContextManagerServicePerimetersServicePerimetersSpecEgressPoliciesEgressFromSourcesResource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1148+
return v, nil
1149+
}
1150+
11291151
func expandAccessContextManagerServicePerimetersServicePerimetersSpecEgressPoliciesEgressFromSourceRestriction(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
11301152
return v, nil
11311153
}

tfplan2cai/testdata/templates/example_access_context_manager_service_perimeter.json

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
"sources": [
2121
{
2222
"accessLevel": "accessPolicies/987654/accessLevels/restrict_storage"
23+
},
24+
{
25+
"resource": "projects/4321"
2326
}
2427
]
2528
}

tfplan2cai/testdata/templates/example_access_context_manager_service_perimeter.tf

+4-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ resource "google_access_context_manager_service_perimeter" "service-perimeter" {
6060
sources {
6161
access_level = "accessPolicies/987654/accessLevels/restrict_storage"
6262
}
63-
source_restriction = "SOURCE_RESTRICTION_ENABLED"
63+
sources {
64+
resource = "projects/4321"
65+
}
66+
source_restriction = "SOURCE_RESTRICTION_ENABLED"
6467
identity_type = "ANY_USER_ACCOUNT"
6568
}
6669
}

0 commit comments

Comments
 (0)