-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
internal/keyvaluetags: New Go package for consistently managing resource tags #10018
Conversation
SO happy for this 😃 😃 😃. |
I think once we get through a first pass of covering most of the "regular" services, we can look to migrate the very customized services into this new package as well. If nothing else, to at least use the same underlying functionality of the package, even if the wrapping code is not automatically generated. 😄 |
Output from acceptance testing: ``` --- PASS: TestAccAWSAthenaWorkGroup_disappears (13.62s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_EncryptionConfiguration_SseS3 (20.73s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_BytesScannedCutoffPerQuery (25.21s) --- PASS: TestAccAWSAthenaWorkGroup_Description (29.82s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_EnforceWorkgroupConfiguration (31.01s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_PublishCloudWatchMetricsEnabled (36.91s) --- PASS: TestAccAWSAthenaWorkGroup_Tags (40.80s) --- PASS: TestAccAWSAthenaWorkGroup_State (43.45s) --- PASS: TestAccAWSAthenaWorkGroup_basic (57.10s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_EncryptionConfiguration_Kms (59.79s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_OutputLocation (60.00s) ```
…sttags example and fix title of servicetags
… error Output from acceptance testing: ``` --- PASS: TestAccAWSAthenaWorkGroup_disappears (10.58s) --- PASS: TestAccAWSAthenaWorkGroup_basic (14.71s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_EncryptionConfiguration_SseS3 (14.98s) --- PASS: TestAccAWSAthenaWorkGroup_Description (22.34s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_PublishCloudWatchMetricsEnabled (22.90s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_BytesScannedCutoffPerQuery (22.92s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_EnforceWorkgroupConfiguration (23.13s) --- PASS: TestAccAWSAthenaWorkGroup_State (32.09s) --- PASS: TestAccAWSAthenaWorkGroup_Tags (32.27s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_EncryptionConfiguration_Kms (54.86s) --- PASS: TestAccAWSAthenaWorkGroup_Configuration_ResultConfiguration_OutputLocation (54.90s) ```
e5758eb
to
6a3765b
Compare
Rebased against master to resolve merge conflict with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
My immediate plan after merging:
|
This has been released in version 2.31.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks! |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks! |
Community Note
Release note for CHANGELOG:
The
keyvaluetags
package is designed to provide a consistent interface for handling AWS resource key-value tags. Many of the AWS Go SDK services, implement their own Go struct withKey
andValue
fields (e.g.athena.Tag
) while others simply use a map (e.g.map[string]string
). These inconsistent implementations and numerous Go types makes the process of correctly working with each of the services a tedius, previously copy-paste-modify process.This package instead implements a single
KeyValueTags
type, which covers all key-value handling logic such as merging tags and ignoring keys via functions on the single type. Much of the code associated with tagging operations can be code generated. Adding tagging abilities for new AWS services now only requires a few lines of code.Output from acceptance testing: