Skip to content

Commit 6a343be

Browse files
BBBmauwuchris-g
authored andcommitted
serviceDirectory: add beta compatibility after GA promotion (GoogleCloudPlatform#15970)
1 parent d0dc8f0 commit 6a343be

File tree

6 files changed

+47
-7
lines changed

6 files changed

+47
-7
lines changed

mmv1/products/servicedirectory/Endpoint.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ base_url: '{{name}}'
2424
self_link: '{{name}}'
2525
create_url: '{{service}}/endpoints?endpointId={{endpoint_id}}'
2626
update_verb: 'PATCH'
27-
update_mask: true
2827
import_format:
2928
- 'projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}/endpoints/{{endpoint_id}}'
3029
timeouts:
@@ -35,7 +34,7 @@ custom_code:
3534
custom_import: 'templates/terraform/custom_import/service_directory_endpoint.go.tmpl'
3635
encoder: 'templates/terraform/encoders/service_directory_metadata_to_annotations.go.tmpl'
3736
decoder: 'templates/terraform/decoders/service_directory_metadata_to_annotations.go.tmpl'
38-
37+
pre_update: 'templates/terraform/pre_update/service_directory_endpoint.go.tmpl'
3938
exclude_sweeper: true
4039
examples:
4140
- name: 'service_directory_endpoint_basic'
@@ -92,8 +91,6 @@ properties:
9291
function: 'validation.IntBetween(0, 65535)'
9392
- name: 'metadata'
9493
type: KeyValuePairs
95-
update_mask_fields:
96-
- 'annotations'
9794
description: |
9895
Metadata for the endpoint. This data can be consumed
9996
by service clients. The entire metadata dictionary may contain

mmv1/products/servicedirectory/Service.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ base_url: '{{name}}'
2424
self_link: '{{name}}'
2525
create_url: '{{namespace}}/services?serviceId={{service_id}}'
2626
update_verb: 'PATCH'
27-
update_mask: true
2827
import_format:
2928
- 'projects/{{project}}/locations/{{location}}/namespaces/{{namespace_id}}/services/{{service_id}}'
3029
timeouts:
@@ -40,6 +39,7 @@ custom_code:
4039
custom_import: 'templates/terraform/custom_import/service_directory_service.go.tmpl'
4140
encoder: 'templates/terraform/encoders/service_directory_metadata_to_annotations.go.tmpl'
4241
decoder: 'templates/terraform/decoders/service_directory_metadata_to_annotations.go.tmpl'
42+
pre_update: 'templates/terraform/pre_update/service_directory.go.tmpl'
4343

4444
exclude_sweeper: true
4545
examples:
@@ -75,8 +75,6 @@ properties:
7575
output: true
7676
- name: 'metadata'
7777
type: KeyValuePairs
78-
update_mask_fields:
79-
- 'annotations'
8078
description: |
8179
Metadata for the service. This data can be consumed
8280
by service clients. The entire metadata dictionary may contain

mmv1/products/servicedirectory/product.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ display_name: 'Service Directory'
1717
versions:
1818
- name: 'ga'
1919
base_url: 'https://servicedirectory.googleapis.com/v1/'
20+
- name: 'beta'
21+
base_url: 'https://servicedirectory.googleapis.com/v1beta1/'
2022
scopes:
2123
- 'https://www.googleapis.com/auth/cloud-platform'
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
{{ if eq $.TargetVersionName "ga" }}
12
if obj["metadata"] == nil {
23
return obj, nil
34
}
45

56
obj["annotations"] = obj["metadata"].(map[string]string)
67
delete(obj, "metadata")
8+
{{ end }}
79
return obj, nil
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
updateMask := []string{}
2+
{{ if ne $.TargetVersionName "ga" }}
3+
if d.HasChange("metadata") {
4+
updateMask = append(updateMask, "metadata")
5+
}
6+
{{ else}}
7+
if d.HasChange("metadata") {
8+
updateMask = append(updateMask, "annotations")
9+
}
10+
{{ end }}
11+
// updateMask is a URL parameter but not present in the schema, so ReplaceVars
12+
// won't set it
13+
url, err = transport_tpg.AddQueryParams(url, map[string]string{"updateMask": strings.Join(updateMask, ",")})
14+
if err != nil {
15+
return err
16+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
updateMask := []string{}
2+
3+
4+
if d.HasChange("address") {
5+
updateMask = append(updateMask, "address")
6+
}
7+
8+
if d.HasChange("port") {
9+
updateMask = append(updateMask, "port")
10+
}
11+
{{ if ne $.TargetVersionName "ga" }}
12+
if d.HasChange("metadata") {
13+
updateMask = append(updateMask, "metadata")
14+
}
15+
{{ else}}
16+
if d.HasChange("metadata") {
17+
updateMask = append(updateMask, "annotations")
18+
}
19+
{{ end }}
20+
// updateMask is a URL parameter but not present in the schema, so ReplaceVars
21+
// won't set it
22+
url, err = transport_tpg.AddQueryParams(url, map[string]string{"updateMask": strings.Join(updateMask, ",")})
23+
if err != nil {
24+
return err
25+
}

0 commit comments

Comments
 (0)