Skip to content

Commit 161220a

Browse files
authored
Etag support for ACM service perimeters (GoogleCloudPlatform#12363)
1 parent 4d2543e commit 161220a

File tree

5 files changed

+26
-0
lines changed

5 files changed

+26
-0
lines changed

mmv1/products/accesscontextmanager/ServicePerimeter.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ async:
7171
custom_code:
7272
constants: 'templates/terraform/constants/access_context_manager.go.tmpl'
7373
encoder: 'templates/terraform/encoders/access_level_never_send_parent.go.tmpl'
74+
pre_update: 'templates/terraform/pre_update/access_context_manager_service_perimeter.go.tmpl'
7475
custom_import: 'templates/terraform/custom_import/set_access_policy_parent_from_self_link.go.tmpl'
7576
# Skipping the sweeper due to the non-standard base_url
7677
exclude_sweeper: true
@@ -788,3 +789,10 @@ properties:
788789
actually enforcing them. This testing is done through analyzing the differences
789790
between currently enforced and suggested restrictions. useExplicitDryRunSpec must
790791
bet set to True if any of the fields in the spec are set to non-default values.
792+
- name: 'etag'
793+
type: Fingerprint
794+
description: |
795+
An opaque identifier for the current version of the ServicePerimeter. This
796+
identifier does not follow any specific format. If an etag is not provided, the
797+
operation will be performed as if a valid etag is provided.
798+
output: true

mmv1/products/accesscontextmanager/ServicePerimeters.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ properties:
100100
description: |
101101
Description of the ServicePerimeter and its use. Does not affect
102102
behavior.
103+
- name: 'etag'
104+
type: Fingerprint
105+
description: |
106+
An opaque identifier for the current version of the ServicePerimeter. This
107+
identifier does not follow any specific format. If an etag is not provided, the
108+
operation will be performed as if a valid etag is provided.
109+
output: true
103110
- name: 'createTime'
104111
type: Time
105112
description: |

mmv1/templates/terraform/custom_flatten/accesscontextmanager_serviceperimeters_custom_flatten.go.tmpl

+5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ func flatten{{$.GetPrefix}}{{$.TitlelizeProperty}}(v interface{}, d *schema.Reso
1818
"perimeter_type": flattenAccessContextManagerServicePerimetersServicePerimetersPerimeterType(original["perimeterType"], d, config),
1919
"status": flattenAccessContextManagerServicePerimetersServicePerimetersStatus(original["status"], d, config),
2020
"spec": flattenAccessContextManagerServicePerimetersServicePerimetersSpec(original["spec"], d, config),
21+
"etag": flattenAccessContextManagerServicePerimetersServicePerimetersEtag(original["etag"], d, config),
2122
"use_explicit_dry_run_spec": flattenAccessContextManagerServicePerimetersServicePerimetersUseExplicitDryRunSpec(original["useExplicitDryRunSpec"], d, config),
2223
})
2324
}
@@ -38,6 +39,10 @@ func flattenAccessContextManagerServicePerimetersServicePerimetersName(v interfa
3839
return v
3940
}
4041

42+
func flattenAccessContextManagerServicePerimetersServicePerimetersEtag(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
43+
return v
44+
}
45+
4146
func flattenAccessContextManagerServicePerimetersServicePerimetersTitle(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
4247
return v
4348
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
if _, ok := d.GetOkExists("etag"); ok {
2+
updateMask = append(updateMask, "etag")
3+
4+
url, err = transport_tpg.AddQueryParams(url, map[string]string{"updateMask": strings.Join(updateMask, ",")})
5+
}

mmv1/third_party/terraform/services/accesscontextmanager/resource_access_context_manager_service_perimeter_test.go.tmpl

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func testAccAccessContextManagerServicePerimeter_basicTest(t *testing.T) {
2626
Steps: []resource.TestStep{
2727
{
2828
Config: testAccAccessContextManagerServicePerimeter_basic(org, "my policy", "level", "perimeter"),
29+
Check: resource.TestCheckResourceAttrSet("google_access_context_manager_service_perimeter.test-access", "etag"),
2930
},
3031
{
3132
ResourceName: "google_access_context_manager_service_perimeter.test-access",

0 commit comments

Comments
 (0)