Skip to content

Commit de06d33

Browse files
Add access restrictions field for google_iam_workforce_pool resource (#9490) (#1722)
[upstream:05e14a25287adfa933db8be44f4da737dfe38197] Signed-off-by: Modular Magician <[email protected]>
1 parent 15bdbbd commit de06d33

File tree

3 files changed

+65
-3
lines changed

3 files changed

+65
-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.19.1
1212
github.com/hashicorp/terraform-json v0.17.1
1313
github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0
14-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121191242-7976412e85a3
14+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121211734-01955b55d525
1515
github.com/mitchellh/go-homedir v1.1.0 // indirect
1616
github.com/pkg/errors v0.9.1
1717
github.com/stretchr/testify v1.8.3

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwU
169169
github.com/hashicorp/terraform-plugin-mux v0.8.0 h1:WCTP66mZ+iIaIrCNJnjPEYnVjawTshnDJu12BcXK1EI=
170170
github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 h1:wcOKYwPI9IorAJEBLzgclh3xVolO7ZorYd6U1vnok14=
171171
github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0/go.mod h1:qH/34G25Ugdj5FcM95cSoXzUgIbgfhVLXCcEcYaMwq8=
172-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121191242-7976412e85a3 h1:yLQKmCccZxKbY3ypZSsHwDCPrpbsQB/gUy+0avlzTDY=
173-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121191242-7976412e85a3/go.mod h1:W/Ri6ztEJqzSaQcRxRLTlbjcguRWT5M0nGvNcnqmGps=
172+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121211734-01955b55d525 h1:78+egg03R+VZa5fAci64bxP9mXA13VS8DB4SWvnTD8o=
173+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20231121211734-01955b55d525/go.mod h1:W/Ri6ztEJqzSaQcRxRLTlbjcguRWT5M0nGvNcnqmGps=
174174
github.com/hashicorp/terraform-registry-address v0.2.2 h1:lPQBg403El8PPicg/qONZJDC6YlgCVbWDtNmmZKtBno=
175175
github.com/hashicorp/terraform-registry-address v0.2.2/go.mod h1:LtwNbCihUoUZ3RYriyS2wF/lGPB6gF9ICLRtuDk7hSo=
176176
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/iamworkforcepool/iamworkforcepool_workforce_pool.go

+62
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ func GetIAMWorkforcePoolWorkforcePoolApiObject(d tpgresource.TerraformResourceDa
108108
} else if v, ok := d.GetOkExists("session_duration"); !tpgresource.IsEmptyValue(reflect.ValueOf(sessionDurationProp)) && (ok || !reflect.DeepEqual(v, sessionDurationProp)) {
109109
obj["sessionDuration"] = sessionDurationProp
110110
}
111+
accessRestrictionsProp, err := expandIAMWorkforcePoolWorkforcePoolAccessRestrictions(d.Get("access_restrictions"), d, config)
112+
if err != nil {
113+
return nil, err
114+
} else if v, ok := d.GetOkExists("access_restrictions"); !tpgresource.IsEmptyValue(reflect.ValueOf(accessRestrictionsProp)) && (ok || !reflect.DeepEqual(v, accessRestrictionsProp)) {
115+
obj["accessRestrictions"] = accessRestrictionsProp
116+
}
111117

112118
return obj, nil
113119
}
@@ -131,3 +137,59 @@ func expandIAMWorkforcePoolWorkforcePoolDisabled(v interface{}, d tpgresource.Te
131137
func expandIAMWorkforcePoolWorkforcePoolSessionDuration(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
132138
return v, nil
133139
}
140+
141+
func expandIAMWorkforcePoolWorkforcePoolAccessRestrictions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
142+
l := v.([]interface{})
143+
if len(l) == 0 || l[0] == nil {
144+
return nil, nil
145+
}
146+
raw := l[0]
147+
original := raw.(map[string]interface{})
148+
transformed := make(map[string]interface{})
149+
150+
transformedAllowedServices, err := expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsAllowedServices(original["allowed_services"], d, config)
151+
if err != nil {
152+
return nil, err
153+
} else if val := reflect.ValueOf(transformedAllowedServices); val.IsValid() && !tpgresource.IsEmptyValue(val) {
154+
transformed["allowedServices"] = transformedAllowedServices
155+
}
156+
157+
transformedDisableProgrammaticSignin, err := expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsDisableProgrammaticSignin(original["disable_programmatic_signin"], d, config)
158+
if err != nil {
159+
return nil, err
160+
} else if val := reflect.ValueOf(transformedDisableProgrammaticSignin); val.IsValid() && !tpgresource.IsEmptyValue(val) {
161+
transformed["disableProgrammaticSignin"] = transformedDisableProgrammaticSignin
162+
}
163+
164+
return transformed, nil
165+
}
166+
167+
func expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsAllowedServices(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
168+
l := v.([]interface{})
169+
req := make([]interface{}, 0, len(l))
170+
for _, raw := range l {
171+
if raw == nil {
172+
continue
173+
}
174+
original := raw.(map[string]interface{})
175+
transformed := make(map[string]interface{})
176+
177+
transformedDomain, err := expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsAllowedServicesDomain(original["domain"], d, config)
178+
if err != nil {
179+
return nil, err
180+
} else if val := reflect.ValueOf(transformedDomain); val.IsValid() && !tpgresource.IsEmptyValue(val) {
181+
transformed["domain"] = transformedDomain
182+
}
183+
184+
req = append(req, transformed)
185+
}
186+
return req, nil
187+
}
188+
189+
func expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsAllowedServicesDomain(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
190+
return v, nil
191+
}
192+
193+
func expandIAMWorkforcePoolWorkforcePoolAccessRestrictionsDisableProgrammaticSignin(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
194+
return v, nil
195+
}

0 commit comments

Comments
 (0)