From e489eff5998942698cca8c5fb7918fa58db0e153 Mon Sep 17 00:00:00 2001 From: The Magician Date: Tue, 28 Jun 2022 11:58:43 -0700 Subject: [PATCH] promote kms_key_name to ga (#6177) (#11976) Signed-off-by: Modular Magician --- .changelog/6177.txt | 3 +++ google/resource_compute_region_disk.go | 23 +++++++++++++++++++ .../docs/r/compute_region_disk.html.markdown | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 .changelog/6177.txt diff --git a/.changelog/6177.txt b/.changelog/6177.txt new file mode 100644 index 00000000000..cd4dd4360c1 --- /dev/null +++ b/.changelog/6177.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +compute: promoted `disk_encryption_key.kms_key_name` on `google_compute_region_disk` +``` diff --git a/google/resource_compute_region_disk.go b/google/resource_compute_region_disk.go index ee92ede2262..8746d4b6d7c 100644 --- a/google/resource_compute_region_disk.go +++ b/google/resource_compute_region_disk.go @@ -97,6 +97,12 @@ you do not need to provide a key to use the disk later.`, MaxItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ + "kms_key_name": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Description: `The name of the encryption key that is stored in Google Cloud KMS.`, + }, "raw_key": { Type: schema.TypeString, Optional: true, @@ -813,6 +819,8 @@ func flattenComputeRegionDiskDiskEncryptionKey(v interface{}, d *schema.Resource flattenComputeRegionDiskDiskEncryptionKeyRawKey(original["rawKey"], d, config) transformed["sha256"] = flattenComputeRegionDiskDiskEncryptionKeySha256(original["sha256"], d, config) + transformed["kms_key_name"] = + flattenComputeRegionDiskDiskEncryptionKeyKmsKeyName(original["kmsKeyName"], d, config) return []interface{}{transformed} } func flattenComputeRegionDiskDiskEncryptionKeyRawKey(v interface{}, d *schema.ResourceData, config *Config) interface{} { @@ -823,6 +831,10 @@ func flattenComputeRegionDiskDiskEncryptionKeySha256(v interface{}, d *schema.Re return v } +func flattenComputeRegionDiskDiskEncryptionKeyKmsKeyName(v interface{}, d *schema.ResourceData, config *Config) interface{} { + return v +} + func flattenComputeRegionDiskSnapshot(v interface{}, d *schema.ResourceData, config *Config) interface{} { if v == nil { return v @@ -943,6 +955,13 @@ func expandComputeRegionDiskDiskEncryptionKey(v interface{}, d TerraformResource transformed["sha256"] = transformedSha256 } + transformedKmsKeyName, err := expandComputeRegionDiskDiskEncryptionKeyKmsKeyName(original["kms_key_name"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedKmsKeyName); val.IsValid() && !isEmptyValue(val) { + transformed["kmsKeyName"] = transformedKmsKeyName + } + return transformed, nil } @@ -954,6 +973,10 @@ func expandComputeRegionDiskDiskEncryptionKeySha256(v interface{}, d TerraformRe return v, nil } +func expandComputeRegionDiskDiskEncryptionKeyKmsKeyName(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + func expandComputeRegionDiskSnapshot(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { f, err := parseGlobalFieldValue("snapshots", v.(string), "project", d, config, true) if err != nil { diff --git a/website/docs/r/compute_region_disk.html.markdown b/website/docs/r/compute_region_disk.html.markdown index 1079f5f92c9..5b19e43ad9e 100644 --- a/website/docs/r/compute_region_disk.html.markdown +++ b/website/docs/r/compute_region_disk.html.markdown @@ -193,7 +193,7 @@ The following arguments are supported: encryption key that protects this resource. * `kms_key_name` - - (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) + (Optional) The name of the encryption key that is stored in Google Cloud KMS. The `source_snapshot_encryption_key` block supports: