Skip to content

Commit 75e1f21

Browse files
Add title field in directional policy rules. (#12932) (#9259)
[upstream:ee2fbd5223c1cc44fc145a552641a7503aed2e48] Signed-off-by: Modular Magician <[email protected]>
1 parent d136713 commit 75e1f21

File tree

25 files changed

+407
-0
lines changed

25 files changed

+407
-0
lines changed

Diff for: .changelog/12932.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
accesscontextmanager: added `title` field to policy blocks under `google_access_context_manager_service_perimeter ` and variants
3+
```

Diff for: google-beta/services/accesscontextmanager/resource_access_context_manager_service_perimeter.go

+84
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,11 @@ the perimeter.`,
368368
},
369369
},
370370
},
371+
"title": {
372+
Type: schema.TypeString,
373+
Optional: true,
374+
Description: `Human readable title. Must be unique within the perimeter. Does not affect behavior.`,
375+
},
371376
},
372377
},
373378
},
@@ -511,6 +516,11 @@ also matches the 'operations' field.`,
511516
},
512517
},
513518
},
519+
"title": {
520+
Type: schema.TypeString,
521+
Optional: true,
522+
Description: `Human readable title. Must be unique within the perimeter. Does not affect behavior.`,
523+
},
514524
},
515525
},
516526
},
@@ -746,6 +756,11 @@ the perimeter.`,
746756
},
747757
},
748758
},
759+
"title": {
760+
Type: schema.TypeString,
761+
Optional: true,
762+
Description: `Human readable title. Must be unique within the perimeter. Does not affect behavior.`,
763+
},
749764
},
750765
},
751766
},
@@ -894,6 +909,11 @@ also matches the 'operations' field.`,
894909
},
895910
},
896911
},
912+
"title": {
913+
Type: schema.TypeString,
914+
Optional: true,
915+
Description: `Human readable title. Must be unique within the perimeter. Does not affect behavior.`,
916+
},
897917
},
898918
},
899919
},
@@ -1484,6 +1504,7 @@ func flattenAccessContextManagerServicePerimeterStatusIngressPolicies(v interfac
14841504
transformed = append(transformed, map[string]interface{}{
14851505
"ingress_from": flattenAccessContextManagerServicePerimeterStatusIngressPoliciesIngressFrom(original["ingressFrom"], d, config),
14861506
"ingress_to": flattenAccessContextManagerServicePerimeterStatusIngressPoliciesIngressTo(original["ingressTo"], d, config),
1507+
"title": flattenAccessContextManagerServicePerimeterStatusIngressPoliciesTitle(original["title"], d, config),
14871508
})
14881509
}
14891510
return transformed
@@ -1615,6 +1636,10 @@ func flattenAccessContextManagerServicePerimeterStatusIngressPoliciesIngressToOp
16151636
return v
16161637
}
16171638

1639+
func flattenAccessContextManagerServicePerimeterStatusIngressPoliciesTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1640+
return v
1641+
}
1642+
16181643
func flattenAccessContextManagerServicePerimeterStatusEgressPolicies(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
16191644
if v == nil {
16201645
return v
@@ -1630,6 +1655,7 @@ func flattenAccessContextManagerServicePerimeterStatusEgressPolicies(v interface
16301655
transformed = append(transformed, map[string]interface{}{
16311656
"egress_from": flattenAccessContextManagerServicePerimeterStatusEgressPoliciesEgressFrom(original["egressFrom"], d, config),
16321657
"egress_to": flattenAccessContextManagerServicePerimeterStatusEgressPoliciesEgressTo(original["egressTo"], d, config),
1658+
"title": flattenAccessContextManagerServicePerimeterStatusEgressPoliciesTitle(original["title"], d, config),
16331659
})
16341660
}
16351661
return transformed
@@ -1776,6 +1802,10 @@ func flattenAccessContextManagerServicePerimeterStatusEgressPoliciesEgressToOper
17761802
return v
17771803
}
17781804

1805+
func flattenAccessContextManagerServicePerimeterStatusEgressPoliciesTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1806+
return v
1807+
}
1808+
17791809
func flattenAccessContextManagerServicePerimeterSpec(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
17801810
if v == nil {
17811811
return nil
@@ -1861,6 +1891,7 @@ func flattenAccessContextManagerServicePerimeterSpecIngressPolicies(v interface{
18611891
transformed = append(transformed, map[string]interface{}{
18621892
"ingress_from": flattenAccessContextManagerServicePerimeterSpecIngressPoliciesIngressFrom(original["ingressFrom"], d, config),
18631893
"ingress_to": flattenAccessContextManagerServicePerimeterSpecIngressPoliciesIngressTo(original["ingressTo"], d, config),
1894+
"title": flattenAccessContextManagerServicePerimeterSpecIngressPoliciesTitle(original["title"], d, config),
18641895
})
18651896
}
18661897
return transformed
@@ -1992,6 +2023,10 @@ func flattenAccessContextManagerServicePerimeterSpecIngressPoliciesIngressToOper
19922023
return v
19932024
}
19942025

2026+
func flattenAccessContextManagerServicePerimeterSpecIngressPoliciesTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2027+
return v
2028+
}
2029+
19952030
func flattenAccessContextManagerServicePerimeterSpecEgressPolicies(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
19962031
if v == nil {
19972032
return v
@@ -2007,6 +2042,7 @@ func flattenAccessContextManagerServicePerimeterSpecEgressPolicies(v interface{}
20072042
transformed = append(transformed, map[string]interface{}{
20082043
"egress_from": flattenAccessContextManagerServicePerimeterSpecEgressPoliciesEgressFrom(original["egressFrom"], d, config),
20092044
"egress_to": flattenAccessContextManagerServicePerimeterSpecEgressPoliciesEgressTo(original["egressTo"], d, config),
2045+
"title": flattenAccessContextManagerServicePerimeterSpecEgressPoliciesTitle(original["title"], d, config),
20102046
})
20112047
}
20122048
return transformed
@@ -2153,6 +2189,10 @@ func flattenAccessContextManagerServicePerimeterSpecEgressPoliciesEgressToOperat
21532189
return v
21542190
}
21552191

2192+
func flattenAccessContextManagerServicePerimeterSpecEgressPoliciesTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2193+
return v
2194+
}
2195+
21562196
func flattenAccessContextManagerServicePerimeterUseExplicitDryRunSpec(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
21572197
return v
21582198
}
@@ -2301,6 +2341,13 @@ func expandAccessContextManagerServicePerimeterStatusIngressPolicies(v interface
23012341
transformed["ingressTo"] = transformedIngressTo
23022342
}
23032343

2344+
transformedTitle, err := expandAccessContextManagerServicePerimeterStatusIngressPoliciesTitle(original["title"], d, config)
2345+
if err != nil {
2346+
return nil, err
2347+
} else if val := reflect.ValueOf(transformedTitle); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2348+
transformed["title"] = transformedTitle
2349+
}
2350+
23042351
req = append(req, transformed)
23052352
}
23062353
return req, nil
@@ -2486,6 +2533,10 @@ func expandAccessContextManagerServicePerimeterStatusIngressPoliciesIngressToOpe
24862533
return v, nil
24872534
}
24882535

2536+
func expandAccessContextManagerServicePerimeterStatusIngressPoliciesTitle(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2537+
return v, nil
2538+
}
2539+
24892540
func expandAccessContextManagerServicePerimeterStatusEgressPolicies(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
24902541
l := v.([]interface{})
24912542
req := make([]interface{}, 0, len(l))
@@ -2510,6 +2561,13 @@ func expandAccessContextManagerServicePerimeterStatusEgressPolicies(v interface{
25102561
transformed["egressTo"] = transformedEgressTo
25112562
}
25122563

2564+
transformedTitle, err := expandAccessContextManagerServicePerimeterStatusEgressPoliciesTitle(original["title"], d, config)
2565+
if err != nil {
2566+
return nil, err
2567+
} else if val := reflect.ValueOf(transformedTitle); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2568+
transformed["title"] = transformedTitle
2569+
}
2570+
25132571
req = append(req, transformed)
25142572
}
25152573
return req, nil
@@ -2718,6 +2776,10 @@ func expandAccessContextManagerServicePerimeterStatusEgressPoliciesEgressToOpera
27182776
return v, nil
27192777
}
27202778

2779+
func expandAccessContextManagerServicePerimeterStatusEgressPoliciesTitle(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2780+
return v, nil
2781+
}
2782+
27212783
func expandAccessContextManagerServicePerimeterSpec(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
27222784
l := v.([]interface{})
27232785
if len(l) == 0 || l[0] == nil {
@@ -2846,6 +2908,13 @@ func expandAccessContextManagerServicePerimeterSpecIngressPolicies(v interface{}
28462908
transformed["ingressTo"] = transformedIngressTo
28472909
}
28482910

2911+
transformedTitle, err := expandAccessContextManagerServicePerimeterSpecIngressPoliciesTitle(original["title"], d, config)
2912+
if err != nil {
2913+
return nil, err
2914+
} else if val := reflect.ValueOf(transformedTitle); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2915+
transformed["title"] = transformedTitle
2916+
}
2917+
28492918
req = append(req, transformed)
28502919
}
28512920
return req, nil
@@ -3031,6 +3100,10 @@ func expandAccessContextManagerServicePerimeterSpecIngressPoliciesIngressToOpera
30313100
return v, nil
30323101
}
30333102

3103+
func expandAccessContextManagerServicePerimeterSpecIngressPoliciesTitle(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
3104+
return v, nil
3105+
}
3106+
30343107
func expandAccessContextManagerServicePerimeterSpecEgressPolicies(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
30353108
l := v.([]interface{})
30363109
req := make([]interface{}, 0, len(l))
@@ -3055,6 +3128,13 @@ func expandAccessContextManagerServicePerimeterSpecEgressPolicies(v interface{},
30553128
transformed["egressTo"] = transformedEgressTo
30563129
}
30573130

3131+
transformedTitle, err := expandAccessContextManagerServicePerimeterSpecEgressPoliciesTitle(original["title"], d, config)
3132+
if err != nil {
3133+
return nil, err
3134+
} else if val := reflect.ValueOf(transformedTitle); val.IsValid() && !tpgresource.IsEmptyValue(val) {
3135+
transformed["title"] = transformedTitle
3136+
}
3137+
30583138
req = append(req, transformed)
30593139
}
30603140
return req, nil
@@ -3263,6 +3343,10 @@ func expandAccessContextManagerServicePerimeterSpecEgressPoliciesEgressToOperati
32633343
return v, nil
32643344
}
32653345

3346+
func expandAccessContextManagerServicePerimeterSpecEgressPoliciesTitle(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
3347+
return v, nil
3348+
}
3349+
32663350
func expandAccessContextManagerServicePerimeterUseExplicitDryRunSpec(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
32673351
return v, nil
32683352
}

Diff for: google-beta/services/accesscontextmanager/resource_access_context_manager_service_perimeter_dry_run_egress_policy.go

+37
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,12 @@ the perimeter.`,
298298
},
299299
},
300300
},
301+
"title": {
302+
Type: schema.TypeString,
303+
Optional: true,
304+
ForceNew: true,
305+
Description: `Human readable title. Must be unique within the perimeter. Does not affect behavior.`,
306+
},
301307
"access_policy_id": {
302308
Type: schema.TypeString,
303309
Computed: true,
@@ -328,6 +334,12 @@ func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyCreate(d *sch
328334
} else if v, ok := d.GetOkExists("egress_to"); !tpgresource.IsEmptyValue(reflect.ValueOf(egressToProp)) && (ok || !reflect.DeepEqual(v, egressToProp)) {
329335
obj["egressTo"] = egressToProp
330336
}
337+
titleProp, err := expandNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(d.Get("title"), d, config)
338+
if err != nil {
339+
return err
340+
} else if v, ok := d.GetOkExists("title"); !tpgresource.IsEmptyValue(reflect.ValueOf(titleProp)) && (ok || !reflect.DeepEqual(v, titleProp)) {
341+
obj["title"] = titleProp
342+
}
331343

332344
obj, err = resourceAccessContextManagerServicePerimeterDryRunEgressPolicyEncoder(d, meta, obj)
333345
if err != nil {
@@ -415,6 +427,9 @@ func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyCreate(d *sch
415427
if err := d.Set("egress_to", flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressTo(opRes["egressTo"], d, config)); err != nil {
416428
return err
417429
}
430+
if err := d.Set("title", flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(opRes["title"], d, config)); err != nil {
431+
return err
432+
}
418433

419434
// This may have caused the ID to update - update it if so.
420435
id, err = tpgresource.ReplaceVars(d, config, "{{perimeter}}")
@@ -478,6 +493,9 @@ func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyRead(d *schem
478493
if err := d.Set("egress_to", flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressTo(res["egressTo"], d, config)); err != nil {
479494
return fmt.Errorf("Error reading ServicePerimeterDryRunEgressPolicy: %s", err)
480495
}
496+
if err := d.Set("title", flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(res["title"], d, config)); err != nil {
497+
return fmt.Errorf("Error reading ServicePerimeterDryRunEgressPolicy: %s", err)
498+
}
481499

482500
return nil
483501
}
@@ -728,6 +746,10 @@ func flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressTo
728746
return v
729747
}
730748

749+
func flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
750+
return v
751+
}
752+
731753
func expandNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressFrom(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
732754
l := v.([]interface{})
733755
if len(l) == 0 || l[0] == nil {
@@ -928,6 +950,10 @@ func expandNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressToO
928950
return v, nil
929951
}
930952

953+
func expandNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
954+
return v, nil
955+
}
956+
931957
func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyEncoder(d *schema.ResourceData, meta interface{}, obj map[string]interface{}) (map[string]interface{}, error) {
932958
// Set the access_policy_id field from part of the perimeter parameter.
933959

@@ -982,6 +1008,11 @@ func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyFindNestedObj
9821008
return -1, nil, err
9831009
}
9841010
expectedFlattenedEgressTo := flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyEgressTo(expectedEgressTo, d, meta.(*transport_tpg.Config))
1011+
expectedTitle, err := expandNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(d.Get("title"), d, meta.(*transport_tpg.Config))
1012+
if err != nil {
1013+
return -1, nil, err
1014+
}
1015+
expectedFlattenedTitle := flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(expectedTitle, d, meta.(*transport_tpg.Config))
9851016

9861017
// Search list for this resource.
9871018
for idx, itemRaw := range items {
@@ -1002,6 +1033,12 @@ func resourceAccessContextManagerServicePerimeterDryRunEgressPolicyFindNestedObj
10021033
log.Printf("[DEBUG] Skipping item with egressTo= %#v, looking for %#v)", itemEgressTo, expectedFlattenedEgressTo)
10031034
continue
10041035
}
1036+
itemTitle := flattenNestedAccessContextManagerServicePerimeterDryRunEgressPolicyTitle(item["title"], d, meta.(*transport_tpg.Config))
1037+
// IsEmptyValue check so that if one is nil and the other is "", that's considered a match
1038+
if !(tpgresource.IsEmptyValue(reflect.ValueOf(itemTitle)) && tpgresource.IsEmptyValue(reflect.ValueOf(expectedFlattenedTitle))) && !reflect.DeepEqual(itemTitle, expectedFlattenedTitle) {
1039+
log.Printf("[DEBUG] Skipping item with title= %#v, looking for %#v)", itemTitle, expectedFlattenedTitle)
1040+
continue
1041+
}
10051042
log.Printf("[DEBUG] Found item for resource %q: %#v)", d.Id(), item)
10061043
return idx, item, nil
10071044
}

Diff for: google-beta/services/accesscontextmanager/resource_access_context_manager_service_perimeter_dry_run_egress_policy_generated_meta.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ fields:
1818
- field: 'egress_to.resources'
1919
- field: 'perimeter'
2020
provider_only: true
21+
- field: 'title'

Diff for: google-beta/services/accesscontextmanager/resource_access_context_manager_service_perimeter_dry_run_egress_policy_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ resource "google_access_context_manager_access_level" "test-access" {
105105
106106
resource "google_access_context_manager_service_perimeter_dry_run_egress_policy" "test-access1" {
107107
perimeter = google_access_context_manager_service_perimeter.test-access.name
108+
title = "egress policy title 1"
108109
egress_from {
109110
identity_type = "ANY_USER_ACCOUNT"
110111
}
@@ -120,6 +121,7 @@ resource "google_access_context_manager_service_perimeter_dry_run_egress_policy"
120121
121122
resource "google_access_context_manager_service_perimeter_dry_run_egress_policy" "test-access2" {
122123
perimeter = google_access_context_manager_service_perimeter.test-access.name
124+
title = "egress policy title 2"
123125
egress_from {
124126
identity_type = "ANY_USER_ACCOUNT"
125127
sources {

0 commit comments

Comments
 (0)