Update TagKeys to support purpose and purposeData #12649
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the additional properties
purpose
andpurposeData
to thegoogle_tags_tag_key
resource. These additional properties enable the ability to deploy Secure Tags, which can then be used by Firewall Policies.Since both
purpose
andpurpose_data
cannot be modified once set, both resources haveinput: true
set in their definitions. Additionally, theignore_read
override is set onpurpose_data
. This is because althoughpurpose_data
can accept input such as the following:-
{network = "[project-id]/[vpc-name]}
-
{network = "[project-id]/[vpc-id]"}
-
{network = "https://www.googleapis.com/compute/v1/projects/[project-id]/global/networks/[vpc-id]"}
The API's response is always stored in the state as
{network = "https://www.googleapis.com/compute/v1/projects/[project-id]/global/networks/[vpc-id]"}
(also known as selfLinkWithId). As a result, persistent diffs would be generated withoutignore_read
, which stores the user input instead of the API's response. The API does validate that the referenced network (VPC) exists and is accessible, so using theignore_read
override will not result in a corrupted or broken state.If this PR is for Terraform, I acknowledge that I have:
make test
andmake lint
to ensure it passes unit and linter tests.Release Note Template for Downstream PRs (will be copied)
Derived from GoogleCloudPlatform/magic-modules#6593