Skip to content

smarterr CloudWatch Integration: Declarative, Config-Driven Error Handling #43121

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

Merged
merged 26 commits into from
Jul 16, 2025

Conversation

YakDriver
Copy link
Member

@YakDriver YakDriver commented Jun 19, 2025

Rollback Plan

If a change needs to be reverted, we will publish an updated version of the library.

Changes to Security Controls

Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.

Description

This PR begins integration of smarterr into the Terraform AWS Provider, starting with CloudWatch, establishing a new foundation for standardized, maintainable, and user-focused error diagnostics.

Why smarterr?

Our current error handling is spread across ~15,000 call sites, many of which manually format error messages. This leads to:

  • Repetitive and inconsistent messaging
  • Walls of duplicated diagnostic text
  • Difficulties evolving how we talk to users

With smarterr, we move toward a config-driven model where error formatting—summary, detail, and logs—is handled centrally and declaratively.

PR To Do

  • semgrep (or other) check to ensure a migrated service has all callsites using smarterr
  • add CI to validate configs from every service directory (this will just be testing the global config over and over again early on)

What this enables

  • 💬 Improved user experience with clean, friendly, and informative error messages—plus optional, per-error suggestions—all powered by config
  • 🔄 Centralized updates to formatting and messaging via HCL config (not cross-codebase rewrites)
  • 🛠️ Better developer experience with simple, low-friction APIs
  • 🧪 Validation and previewing of error output via CLI during development

User experience

This is a template-driven error formatted by smarterr. And we can change it as needs change by just updating declarative config.

        Error: creating CloudWatch Composite Alarm
        
          with aws_cloudwatch_composite_alarm.test,
          on terraform_plugin_test.tf line 29, in resource "aws_cloudwatch_composite_alarm" "test":
          29: resource "aws_cloudwatch_composite_alarm" "test" {
        
        ID: r-1234567890
        Underlying issue: operation error CloudWatch: ModifyServerlessCache
        If you are trying to modify a serverless cache, please use the
        `aws_cloudwatch_serverless_cache` resource instead of
        `aws_cloudwatch_log_group`.

Integration Pattern

The integration pattern uses the smerr package (a thin wrapper around smarterr) for idiomatic use in this codebase. Example SDK-style usage:

return smerr.Append(ctx, diags, err, smerr.ID, d.Id())

And wrapped errors in helpers:

return nil, smarterr.NewError(err)

What’s in this PR

Note: smarterr is mostly focused on diag.Diagnostics generation. However, it also wraps Go errors to gather information. Wrapping errors with smarterr.NewError is fully safe and transparent*smarterr.Error implements error and Unwrap(), so tools like errors.Is and errors.As continue to work as expected, while smarterr-aware functions (e.g. smerr.Append) can extract structured context when needed.

  • Adds smarterr as a module dependency
  • Adds internal smerr wrapper for resource/service context injection
  • Begins migration journey with CloudWatch and the tags generator, including CloudWatch resources, data sources, and framework and SDKv2 styles and tags_gen.go across services
  • Embeds smarterr configuration so it becomes versioned along with the provider

Next Steps

  • Continue migration across services
  • Refine configuration
  • Add per-error suggestions
  • Debug

🔗 For more details on the smarterr project, see smarterr.
This integration lays the groundwork for long-term improvements to developer ergonomics and user diagnostics.

Relations

Closes #0000

References

Output from Acceptance Testing

% make t T=TestAccCloudWatch K=cloudwatch P=10 
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.24.4 test ./internal/service/cloudwatch/... -v -count 1 -parallel 10 -run='TestAccCloudWatch'  -timeout 360m -vet=off
2025/06/19 20:41:53 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/19 20:41:53 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccCloudWatchCompositeAlarm_tags
=== PAUSE TestAccCloudWatchCompositeAlarm_tags
=== RUN   TestAccCloudWatchCompositeAlarm_tags_null
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_null
=== RUN   TestAccCloudWatchCompositeAlarm_tags_EmptyMap
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_EmptyMap
=== RUN   TestAccCloudWatchCompositeAlarm_tags_AddOnUpdate
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_AddOnUpdate
=== RUN   TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnCreate
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnCreate
=== RUN   TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_providerOnly
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_providerOnly
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nonOverlapping
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_overlapping
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_overlapping
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnCreate
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnCreate
=== RUN   TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccCloudWatchCompositeAlarm_basic
=== PAUSE TestAccCloudWatchCompositeAlarm_basic
=== RUN   TestAccCloudWatchCompositeAlarm_disappears
=== PAUSE TestAccCloudWatchCompositeAlarm_disappears
=== RUN   TestAccCloudWatchCompositeAlarm_actionsEnabled
=== PAUSE TestAccCloudWatchCompositeAlarm_actionsEnabled
=== RUN   TestAccCloudWatchCompositeAlarm_alarmActions
=== PAUSE TestAccCloudWatchCompositeAlarm_alarmActions
=== RUN   TestAccCloudWatchCompositeAlarm_description
=== PAUSE TestAccCloudWatchCompositeAlarm_description
=== RUN   TestAccCloudWatchCompositeAlarm_updateAlarmRule
=== PAUSE TestAccCloudWatchCompositeAlarm_updateAlarmRule
=== RUN   TestAccCloudWatchCompositeAlarm_insufficientDataActions
=== PAUSE TestAccCloudWatchCompositeAlarm_insufficientDataActions
=== RUN   TestAccCloudWatchCompositeAlarm_okActions
=== PAUSE TestAccCloudWatchCompositeAlarm_okActions
=== RUN   TestAccCloudWatchCompositeAlarm_allActions
=== PAUSE TestAccCloudWatchCompositeAlarm_allActions
=== RUN   TestAccCloudWatchCompositeAlarm_actionsSuppressor
=== PAUSE TestAccCloudWatchCompositeAlarm_actionsSuppressor
=== RUN   TestAccCloudWatchContributorInsightRule_tags
=== PAUSE TestAccCloudWatchContributorInsightRule_tags
=== RUN   TestAccCloudWatchContributorInsightRule_tags_null
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_null
=== RUN   TestAccCloudWatchContributorInsightRule_tags_EmptyMap
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_EmptyMap
=== RUN   TestAccCloudWatchContributorInsightRule_tags_AddOnUpdate
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_AddOnUpdate
=== RUN   TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnCreate
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnCreate
=== RUN   TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_providerOnly
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_providerOnly
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nonOverlapping
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_overlapping
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_overlapping
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnCreate
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnCreate
=== RUN   TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccCloudWatchContributorInsightRule_basic
=== PAUSE TestAccCloudWatchContributorInsightRule_basic
=== RUN   TestAccCloudWatchContributorInsightRule_disappears
=== PAUSE TestAccCloudWatchContributorInsightRule_disappears
=== RUN   TestAccCloudWatchContributorManagedInsightRule_basic
=== PAUSE TestAccCloudWatchContributorManagedInsightRule_basic
=== RUN   TestAccCloudWatchContributorManagedInsightRule_disappears
=== PAUSE TestAccCloudWatchContributorManagedInsightRule_disappears
=== RUN   TestAccCloudWatchContributorManagedInsightRule_tags
=== PAUSE TestAccCloudWatchContributorManagedInsightRule_tags
=== RUN   TestAccCloudWatchContributorManagedInsightRulesDataSource_basic
=== PAUSE TestAccCloudWatchContributorManagedInsightRulesDataSource_basic
=== RUN   TestAccCloudWatchDashboard_basic
=== PAUSE TestAccCloudWatchDashboard_basic
=== RUN   TestAccCloudWatchDashboard_disappears
=== PAUSE TestAccCloudWatchDashboard_disappears
=== RUN   TestAccCloudWatchMetricAlarm_tags
=== PAUSE TestAccCloudWatchMetricAlarm_tags
=== RUN   TestAccCloudWatchMetricAlarm_tags_null
=== PAUSE TestAccCloudWatchMetricAlarm_tags_null
=== RUN   TestAccCloudWatchMetricAlarm_tags_EmptyMap
=== PAUSE TestAccCloudWatchMetricAlarm_tags_EmptyMap
=== RUN   TestAccCloudWatchMetricAlarm_tags_AddOnUpdate
=== PAUSE TestAccCloudWatchMetricAlarm_tags_AddOnUpdate
=== RUN   TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnCreate
=== PAUSE TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnCreate
=== RUN   TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_providerOnly
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_providerOnly
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_nonOverlapping
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_overlapping
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_overlapping
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnCreate
=== PAUSE TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnCreate
=== RUN   TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccCloudWatchMetricAlarm_basic
=== PAUSE TestAccCloudWatchMetricAlarm_basic
=== RUN   TestAccCloudWatchMetricAlarm_AlarmActions_ec2Automate
=== PAUSE TestAccCloudWatchMetricAlarm_AlarmActions_ec2Automate
=== RUN   TestAccCloudWatchMetricAlarm_AlarmActions_snsTopic
=== PAUSE TestAccCloudWatchMetricAlarm_AlarmActions_snsTopic
=== RUN   TestAccCloudWatchMetricAlarm_AlarmActions_swfAction
=== PAUSE TestAccCloudWatchMetricAlarm_AlarmActions_swfAction
=== RUN   TestAccCloudWatchMetricAlarm_dataPointsToAlarm
=== PAUSE TestAccCloudWatchMetricAlarm_dataPointsToAlarm
=== RUN   TestAccCloudWatchMetricAlarm_treatMissingData
=== PAUSE TestAccCloudWatchMetricAlarm_treatMissingData
=== RUN   TestAccCloudWatchMetricAlarm_evaluateLowSampleCountPercentiles
=== PAUSE TestAccCloudWatchMetricAlarm_evaluateLowSampleCountPercentiles
=== RUN   TestAccCloudWatchMetricAlarm_extendedStatistic
=== PAUSE TestAccCloudWatchMetricAlarm_extendedStatistic
=== RUN   TestAccCloudWatchMetricAlarm_metricQuery
=== PAUSE TestAccCloudWatchMetricAlarm_metricQuery
=== RUN   TestAccCloudWatchMetricAlarm_missingStatistic
=== PAUSE TestAccCloudWatchMetricAlarm_missingStatistic
=== RUN   TestAccCloudWatchMetricAlarm_disappears
=== PAUSE TestAccCloudWatchMetricAlarm_disappears
=== RUN   TestAccCloudWatchMetricStream_tags
=== PAUSE TestAccCloudWatchMetricStream_tags
=== RUN   TestAccCloudWatchMetricStream_tags_null
=== PAUSE TestAccCloudWatchMetricStream_tags_null
=== RUN   TestAccCloudWatchMetricStream_tags_EmptyMap
=== PAUSE TestAccCloudWatchMetricStream_tags_EmptyMap
=== RUN   TestAccCloudWatchMetricStream_tags_AddOnUpdate
=== PAUSE TestAccCloudWatchMetricStream_tags_AddOnUpdate
=== RUN   TestAccCloudWatchMetricStream_tags_EmptyTag_OnCreate
=== PAUSE TestAccCloudWatchMetricStream_tags_EmptyTag_OnCreate
=== RUN   TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_providerOnly
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_providerOnly
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_nonOverlapping
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_overlapping
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_overlapping
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccCloudWatchMetricStream_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccCloudWatchMetricStream_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccCloudWatchMetricStream_tags_ComputedTag_OnCreate
=== PAUSE TestAccCloudWatchMetricStream_tags_ComputedTag_OnCreate
=== RUN   TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccCloudWatchMetricStream_basic
=== PAUSE TestAccCloudWatchMetricStream_basic
=== RUN   TestAccCloudWatchMetricStream_disappears
=== PAUSE TestAccCloudWatchMetricStream_disappears
=== RUN   TestAccCloudWatchMetricStream_nameGenerated
=== PAUSE TestAccCloudWatchMetricStream_nameGenerated
=== RUN   TestAccCloudWatchMetricStream_namePrefix
=== PAUSE TestAccCloudWatchMetricStream_namePrefix
=== RUN   TestAccCloudWatchMetricStream_includeFilters
=== PAUSE TestAccCloudWatchMetricStream_includeFilters
=== RUN   TestAccCloudWatchMetricStream_includeFiltersWithMetricNames
=== PAUSE TestAccCloudWatchMetricStream_includeFiltersWithMetricNames
=== RUN   TestAccCloudWatchMetricStream_excludeFilters
=== PAUSE TestAccCloudWatchMetricStream_excludeFilters
=== RUN   TestAccCloudWatchMetricStream_excludeFiltersWithMetricNames
=== PAUSE TestAccCloudWatchMetricStream_excludeFiltersWithMetricNames
=== RUN   TestAccCloudWatchMetricStream_update
=== PAUSE TestAccCloudWatchMetricStream_update
=== RUN   TestAccCloudWatchMetricStream_additional_statistics
=== PAUSE TestAccCloudWatchMetricStream_additional_statistics
=== RUN   TestAccCloudWatchMetricStream_includeLinkedAccountsMetrics
=== PAUSE TestAccCloudWatchMetricStream_includeLinkedAccountsMetrics
=== CONT  TestAccCloudWatchCompositeAlarm_tags
=== CONT  TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Replace
=== CONT  TestAccCloudWatchContributorManagedInsightRule_disappears
=== CONT  TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Add
=== CONT  TestAccCloudWatchMetricStream_tags_ComputedTag_OnCreate
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_nullNonOverlappingResourceTag
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_nullOverlappingResourceTag
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_emptyProviderOnlyTag
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_emptyResourceTag
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccCloudWatchCompositeAlarm_tags (57.86s)
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_emptyProviderOnlyTag (79.98s)
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_overlapping
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_nullNonOverlappingResourceTag (80.01s)
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_nonOverlapping
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_nullOverlappingResourceTag (81.18s)
=== CONT  TestAccCloudWatchMetricStream_tags_DefaultTags_providerOnly
--- PASS: TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Replace (99.91s)
=== CONT  TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchMetricStream_tags_ComputedTag_OnUpdate_Add (107.17s)
=== CONT  TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_emptyResourceTag (110.19s)
=== CONT  TestAccCloudWatchMetricStream_tags_EmptyTag_OnCreate
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_updateToResourceOnly (110.48s)
=== CONT  TestAccCloudWatchMetricStream_tags_AddOnUpdate
--- PASS: TestAccCloudWatchMetricStream_tags_ComputedTag_OnCreate (113.55s)
=== CONT  TestAccCloudWatchMetricStream_tags_EmptyMap
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_updateToProviderOnly (104.80s)
=== CONT  TestAccCloudWatchMetricStream_tags_null
--- PASS: TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Replace (103.58s)
=== CONT  TestAccCloudWatchMetricStream_tags
--- PASS: TestAccCloudWatchMetricStream_tags_AddOnUpdate (101.79s)
=== CONT  TestAccCloudWatchMetricAlarm_missingStatistic
=== CONT  TestAccCloudWatchMetricAlarm_disappears
--- PASS: TestAccCloudWatchMetricStream_tags_EmptyTag_OnCreate (102.08s)
--- PASS: TestAccCloudWatchMetricAlarm_missingStatistic (1.31s)
=== CONT  TestAccCloudWatchMetricAlarm_metricQuery
--- PASS: TestAccCloudWatchContributorManagedInsightRule_disappears (215.17s)
=== CONT  TestAccCloudWatchMetricAlarm_extendedStatistic
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_overlapping (135.94s)
=== CONT  TestAccCloudWatchMetricAlarm_evaluateLowSampleCountPercentiles
--- PASS: TestAccCloudWatchMetricStream_tags_EmptyMap (103.61s)
=== CONT  TestAccCloudWatchMetricAlarm_treatMissingData
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_nonOverlapping (139.55s)
=== CONT  TestAccCloudWatchMetricAlarm_dataPointsToAlarm
--- PASS: TestAccCloudWatchMetricAlarm_disappears (11.94s)
=== CONT  TestAccCloudWatchMetricAlarm_AlarmActions_swfAction
--- PASS: TestAccCloudWatchMetricStream_tags_EmptyTag_OnUpdate_Add (120.04s)
=== CONT  TestAccCloudWatchMetricAlarm_AlarmActions_snsTopic
--- PASS: TestAccCloudWatchMetricAlarm_dataPointsToAlarm (11.57s)
=== CONT  TestAccCloudWatchMetricAlarm_AlarmActions_ec2Automate
--- PASS: TestAccCloudWatchMetricAlarm_evaluateLowSampleCountPercentiles (20.62s)
=== CONT  TestAccCloudWatchMetricAlarm_basic
--- PASS: TestAccCloudWatchMetricAlarm_AlarmActions_swfAction (14.81s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccCloudWatchMetricStream_tags_DefaultTags_providerOnly (159.15s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccCloudWatchMetricAlarm_AlarmActions_snsTopic (17.40s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchMetricAlarm_treatMissingData (32.65s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Add
--- PASS: TestAccCloudWatchMetricAlarm_basic (14.87s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnCreate
--- PASS: TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnCreate (19.67s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_DefaultTag (34.52s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Replace (30.44s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccCloudWatchMetricStream_tags_null (115.08s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyResourceTag
--- PASS: TestAccCloudWatchMetricAlarm_tags_IgnoreTags_Overlap_ResourceTag (39.99s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccCloudWatchMetricAlarm_tags_ComputedTag_OnUpdate_Add (30.60s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullNonOverlappingResourceTag (16.78s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_overlapping
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_nullOverlappingResourceTag (17.29s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_nonOverlapping
--- PASS: TestAccCloudWatchMetricAlarm_metricQuery (78.75s)
=== CONT  TestAccCloudWatchMetricStream_includeFilters
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyProviderOnlyTag (17.84s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_DefaultTags_providerOnly
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_emptyResourceTag (17.86s)
=== CONT  TestAccCloudWatchMetricStream_includeLinkedAccountsMetrics
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToResourceOnly (27.20s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchMetricStream_includeFilters (15.36s)
=== CONT  TestAccCloudWatchMetricStream_additional_statistics
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_updateToProviderOnly (27.98s)
=== CONT  TestAccCloudWatchMetricStream_update
--- PASS: TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Replace (27.17s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_overlapping (45.75s)
=== CONT  TestAccCloudWatchMetricStream_excludeFiltersWithMetricNames
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_nonOverlapping (44.66s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnCreate
--- PASS: TestAccCloudWatchMetricStream_tags (141.26s)
=== CONT  TestAccCloudWatchMetricStream_excludeFilters
--- PASS: TestAccCloudWatchMetricStream_excludeFiltersWithMetricNames (15.70s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_AddOnUpdate
--- PASS: TestAccCloudWatchMetricAlarm_tags_DefaultTags_providerOnly (58.82s)
=== CONT  TestAccCloudWatchMetricStream_includeFiltersWithMetricNames
--- PASS: TestAccCloudWatchMetricStream_additional_statistics (49.05s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_EmptyMap
--- PASS: TestAccCloudWatchMetricStream_excludeFilters (15.92s)
=== CONT  TestAccCloudWatchMetricAlarm_tags_null
--- PASS: TestAccCloudWatchMetricAlarm_extendedStatistic (146.52s)
=== CONT  TestAccCloudWatchMetricAlarm_tags
--- PASS: TestAccCloudWatchMetricStream_update (54.75s)
=== CONT  TestAccCloudWatchCompositeAlarm_okActions
--- PASS: TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnCreate (30.09s)
=== CONT  TestAccCloudWatchDashboard_disappears
--- PASS: TestAccCloudWatchMetricStream_includeFiltersWithMetricNames (15.34s)
=== CONT  TestAccCloudWatchContributorManagedInsightRule_basic
--- PASS: TestAccCloudWatchMetricStream_includeLinkedAccountsMetrics (74.89s)
=== CONT  TestAccCloudWatchDashboard_basic
--- PASS: TestAccCloudWatchMetricAlarm_tags_EmptyTag_OnUpdate_Add (41.67s)
=== CONT  TestAccCloudWatchContributorInsightRule_disappears
--- PASS: TestAccCloudWatchMetricAlarm_tags_AddOnUpdate (26.85s)
=== CONT  TestAccCloudWatchContributorManagedInsightRulesDataSource_basic
--- PASS: TestAccCloudWatchMetricAlarm_tags_EmptyMap (20.67s)
=== CONT  TestAccCloudWatchContributorInsightRule_basic
--- PASS: TestAccCloudWatchDashboard_disappears (13.65s)
=== CONT  TestAccCloudWatchContributorManagedInsightRule_tags
--- PASS: TestAccCloudWatchMetricAlarm_tags_null (20.41s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccCloudWatchMetricAlarm_AlarmActions_ec2Automate (153.12s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccCloudWatchContributorInsightRule_disappears (11.81s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nonOverlapping
--- PASS: TestAccCloudWatchContributorInsightRule_basic (14.66s)
=== CONT  TestAccCloudWatchCompositeAlarm_insufficientDataActions
--- PASS: TestAccCloudWatchDashboard_basic (24.91s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_providerOnly
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullOverlappingResourceTag (17.35s)
=== CONT  TestAccCloudWatchCompositeAlarm_updateAlarmRule
--- PASS: TestAccCloudWatchCompositeAlarm_okActions (39.35s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_ResourceTag (35.47s)
=== CONT  TestAccCloudWatchCompositeAlarm_description
--- PASS: TestAccCloudWatchMetricAlarm_tags (56.32s)
=== CONT  TestAccCloudWatchCompositeAlarm_actionsEnabled
--- PASS: TestAccCloudWatchCompositeAlarm_updateAlarmRule (25.38s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Replace (25.59s)
=== CONT  TestAccCloudWatchCompositeAlarm_disappears
--- PASS: TestAccCloudWatchCompositeAlarm_insufficientDataActions (36.28s)
=== CONT  TestAccCloudWatchCompositeAlarm_basic
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nonOverlapping (42.52s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccCloudWatchCompositeAlarm_disappears (13.77s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccCloudWatchCompositeAlarm_description (25.46s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchCompositeAlarm_actionsEnabled (25.70s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Add
--- PASS: TestAccCloudWatchCompositeAlarm_basic (15.79s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnCreate
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_providerOnly (55.74s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnCreate (20.15s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_providerOnly
--- PASS: TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnUpdate_Add (38.61s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nullNonOverlappingResourceTag (17.45s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyResourceTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_ResourceTag (41.06s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Replace (31.65s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccCloudWatchCompositeAlarm_tags_ComputedTag_OnUpdate_Add (30.87s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_overlapping
--- PASS: TestAccCloudWatchCompositeAlarm_tags_IgnoreTags_Overlap_DefaultTag (35.64s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nonOverlapping
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyProviderOnlyTag (17.79s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_AddOnUpdate
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_emptyResourceTag (17.51s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnCreate
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToResourceOnly (28.25s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_EmptyMap
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_updateToProviderOnly (28.44s)
=== CONT  TestAccCloudWatchMetricStream_disappears
--- PASS: TestAccCloudWatchContributorInsightRule_tags_AddOnUpdate (27.11s)
=== CONT  TestAccCloudWatchMetricStream_namePrefix
--- PASS: TestAccCloudWatchContributorInsightRule_tags_EmptyMap (15.39s)
=== CONT  TestAccCloudWatchMetricStream_nameGenerated
--- PASS: TestAccCloudWatchContributorInsightRule_tags_EmptyTag_OnCreate (28.57s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_null
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_overlapping (46.62s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_nonOverlapping (46.00s)
=== CONT  TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_DefaultTags_providerOnly (60.75s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccCloudWatchContributorInsightRule_tags_null (14.90s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullNonOverlappingResourceTag (15.14s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Add
--- PASS: TestAccCloudWatchContributorInsightRule_tags_IgnoreTags_Overlap_DefaultTag (30.73s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnCreate
--- PASS: TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Replace (27.40s)
=== CONT  TestAccCloudWatchMetricStream_basic
--- PASS: TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnUpdate_Add (27.75s)
=== CONT  TestAccCloudWatchCompositeAlarm_actionsSuppressor
--- PASS: TestAccCloudWatchContributorInsightRule_tags_ComputedTag_OnCreate (17.68s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccCloudWatchCompositeAlarm_actionsSuppressor (15.94s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags
--- PASS: TestAccCloudWatchMetricStream_namePrefix (75.45s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccCloudWatchMetricStream_disappears (84.29s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnCreate
--- PASS: TestAccCloudWatchContributorManagedInsightRule_tags (206.21s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccCloudWatchMetricStream_nameGenerated (75.20s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToResourceOnly (24.17s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_overlapping
--- PASS: TestAccCloudWatchContributorManagedInsightRulesDataSource_basic (221.87s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyResourceTag
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_nullOverlappingResourceTag (16.64s)
=== CONT  TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccCloudWatchContributorManagedInsightRule_basic (237.34s)
=== CONT  TestAccCloudWatchCompositeAlarm_allActions
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyProviderOnlyTag (16.65s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_EmptyMap
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_emptyResourceTag (17.03s)
=== CONT  TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Replace (29.36s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_AddOnUpdate
--- PASS: TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnCreate (32.37s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_null
--- PASS: TestAccCloudWatchCompositeAlarm_tags_EmptyMap (22.59s)
=== CONT  TestAccCloudWatchCompositeAlarm_alarmActions
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_updateToProviderOnly (26.44s)
=== CONT  TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccCloudWatchMetricStream_basic (73.84s)
--- PASS: TestAccCloudWatchCompositeAlarm_allActions (27.35s)
--- PASS: TestAccCloudWatchContributorInsightRule_tags (55.84s)
--- PASS: TestAccCloudWatchCompositeAlarm_tags_null (21.28s)
--- PASS: TestAccCloudWatchContributorInsightRule_tags_DefaultTags_overlapping (44.23s)
--- PASS: TestAccCloudWatchCompositeAlarm_tags_AddOnUpdate (27.66s)
--- PASS: TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_ResourceTag (130.15s)
--- PASS: TestAccCloudWatchCompositeAlarm_alarmActions (34.28s)
--- PASS: TestAccCloudWatchCompositeAlarm_tags_EmptyTag_OnUpdate_Add (39.36s)
--- PASS: TestAccCloudWatchMetricStream_tags_IgnoreTags_Overlap_DefaultTag (104.54s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/cloudwatch	724.323s

@YakDriver YakDriver requested a review from a team as a code owner June 19, 2025 22:54
Copy link

Community Guidelines

This comment is added to every new Pull Request to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! 🚀

Voting for Prioritization

  • Please vote on this Pull Request by adding a 👍 reaction to the original post to help the community and maintainers prioritize it.
  • Please see our prioritization guide for additional information on how the maintainers handle prioritization.
  • Please do not leave +1 or other comments that do not add relevant new information or questions; they generate extra noise for others following the Pull Request and do not help prioritize the request.

Pull Request Authors

  • Review the contribution guide relating to the type of change you are making to ensure all of the necessary steps have been taken.
  • Whether or not the branch has been rebased will not impact prioritization, but doing so is always a welcome surprise.

@github-actions github-actions bot added prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. documentation Introduces or discusses updates to documentation. service/ecs Issues and PRs that pertain to the ecs service. service/emr Issues and PRs that pertain to the emr service. service/configservice Issues and PRs that pertain to the configservice service. service/elbv2 Issues and PRs that pertain to the elbv2 service. service/apigateway Issues and PRs that pertain to the apigateway service. service/dax Issues and PRs that pertain to the dax service. service/directconnect Issues and PRs that pertain to the directconnect service. service/gamelift Issues and PRs that pertain to the gamelift service. service/cloudtrail Issues and PRs that pertain to the cloudtrail service. service/acm Issues and PRs that pertain to the acm service. service/elb Issues and PRs that pertain to the elb service. service/cloudfront Issues and PRs that pertain to the cloudfront service. service/elasticbeanstalk Issues and PRs that pertain to the elasticbeanstalk service. service/athena Issues and PRs that pertain to the athena service. service/firehose Issues and PRs that pertain to the firehose service. labels Jun 19, 2025
@ewbankkit
Copy link
Contributor

semgrep rule(s) to check that we have found all the relevant call sites?

@YakDriver
Copy link
Member Author

semgrep rule(s) to check that we have found all the relevant call sites?

Yes, excellent idea. Also, I got the validate tool working so we should be calling it in CI to ensure changes to the config are valid (parseable, names connect, etc.). I'll start a todo list in the op.

@aristosvo
Copy link
Contributor

Hi @YakDriver, nice work! 👍🏽

Question from my side: while reading it the suggestion was given that the original AWS API error message is not (completely) shown anymore. I understand that, but at the same time that gave me (as someone who knows a bit in general what is going on under the hood) insights on what the exact issue might be.

Can you elaborate a bit on that? Is it just me interpreting it in a (wrong) way or are is the plan indeed to shield details from end users?

I really love the continuous improvements coming our way! ❤️

@YakDriver
Copy link
Member Author

YakDriver commented Jun 23, 2025

is the plan indeed to shield details from end users?

Thank you for your interest! Let me try to clarify and then let us know if you have feedback.

More information and more consistent information will be output to logs. For end-user visible errors, more relevant and more consistent information will be output with some irrelevant information stripped. All stripped information will still be in the logs. Some information is shifted around. This aims to aligns us with best practices in the industry and Terraform's own standards.

Here's a mock-up example to show the differences.

Before

Error: updating Lambda Function (lambda-function) code: operation error Lambda: UpdateFunctionCode,
https response error StatusCode: 403, RequestID: 9c9c8b2c-d71b-4717-b62a-68cfa4b18aa9,
InvalidParameterCombination: No, api error AccessDeniedException: Your access has been denied by
S3, please make sure your request credentials have permission to GetObject for
binaries-bucket/lambda-package.zip. S3 Error Code: AccessDenied. S3 Error Message: User:
arn:aws:sts::123456789012:assumed-role/devops-role/session-name is not authorized to perform:
kms:Decrypt on resource: arn:aws:kms:eu-west-1:123456789012:key/
mrk-00000000000000000000000000000000 because no identity-based policy allows the kms:Decrypt action

   with resource "aws_lambda_function" "lambda-function":
   17: resource "aws_lambda_function" "lambda-function" {

After

User-facing (brief error summary, removal of RequestID, InvalidParameterCombination: No, https response error StatusCode: 403):

Error: updating Lambda Function

   with resource "aws_lambda_function" "lambda-function":
   17: resource "aws_lambda_function" "lambda-function" {

ID: lambda-function
Cause: operation error Lambda: UpdateFunctionCode, api error AccessDeniedException: Your access has
been denied by S3, please make sure your request credentials have permission to GetObject for
binaries-bucket/lambda-package.zip. S3 Error Code: AccessDenied. S3 Error Message: User:
arn:aws:sts::123456789012:assumed-role/devops-role/session-name is not authorized to perform: 
kms:Decrypt on resource: arn:aws:kms:eu-west-1:123456789012:key/mrk-00000000000000000000000000000000
because no identity-based policy allows the kms:Decrypt action

Log (includes RequestID, InvalidParameterCombination: No, https response error StatusCode: 403):

updating Lambda Function (lambda-function) code: operation error Lambda: UpdateFunctionCode, https 
response error StatusCode: 403, RequestID: 9c9c8b2c-d71b-4717-b62a-68cfa4b18aa9, 
InvalidParameterCombination: No, api error AccessDeniedException: Your access has been denied by 
S3, please make sure your request credentials have permission to GetObject for binaries-bucket/
lambda-package.zip. S3 Error Code: AccessDenied. S3 Error Message: User: arn:aws:sts::123456789012:
assumed-role/devops-role/session-name is not authorized to perform: kms:Decrypt on resource: 
arn:aws:kms:eu-west-1:123456789012:key/mrk-00000000000000000000000000000000 because no identity-
based policy allows the kms:Decrypt action

@aristosvo
Copy link
Contributor

Thanks, that looks good! Filtering makes sense for the mentioned items, readability wise it's definitely an improvement.

LGTM 🙃

@YakDriver
Copy link
Member Author

YakDriver commented Jun 30, 2025

Recent changes:

  • Added Semgrep enforcement rules: .ci/semgrep/smarterr/enforce.yml
  • Made migration docs better suited to AI assistance: docs/smarterr.md
  • Add config validation to CI: .github/workflows/smarterr.yml
  • Update to merge with recent generator changes
% make smoke
make: Sane Smoke Tests (x tests of Top y resources)
make: Like 'sanity' except full output and stops soon after 1st error
make: NOTE: NOT an exhaustive set of tests! Finds big problems only.
2025/06/30 12:55:09 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:55:09 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccIAMInstanceProfile_tags
=== PAUSE TestAccIAMInstanceProfile_tags
=== RUN   TestAccIAMInstanceProfile_basic
=== PAUSE TestAccIAMInstanceProfile_basic
=== RUN   TestAccIAMPolicyDocumentDataSource_basic
=== PAUSE TestAccIAMPolicyDocumentDataSource_basic
=== RUN   TestAccIAMPolicyDocumentDataSource_sourceConflicting
=== PAUSE TestAccIAMPolicyDocumentDataSource_sourceConflicting
=== RUN   TestAccIAMPolicy_tags
=== PAUSE TestAccIAMPolicy_tags
=== RUN   TestAccIAMPolicy_basic
=== PAUSE TestAccIAMPolicy_basic
=== RUN   TestAccIAMPolicy_policy
=== PAUSE TestAccIAMPolicy_policy
=== RUN   TestAccIAMRolePolicyAttachment_basic
=== PAUSE TestAccIAMRolePolicyAttachment_basic
=== RUN   TestAccIAMRolePolicyAttachment_disappears
=== PAUSE TestAccIAMRolePolicyAttachment_disappears
=== RUN   TestAccIAMRolePolicyAttachment_Disappears_role
=== PAUSE TestAccIAMRolePolicyAttachment_Disappears_role
=== RUN   TestAccIAMRolePolicy_basic
=== PAUSE TestAccIAMRolePolicy_basic
=== RUN   TestAccIAMRolePolicy_unknownsInPolicy
=== PAUSE TestAccIAMRolePolicy_unknownsInPolicy
=== RUN   TestAccIAMRole_basic
=== PAUSE TestAccIAMRole_basic
=== RUN   TestAccIAMRole_namePrefix
=== PAUSE TestAccIAMRole_namePrefix
=== RUN   TestAccIAMRole_disappears
=== PAUSE TestAccIAMRole_disappears
=== RUN   TestAccIAMRole_InlinePolicy_basic
=== PAUSE TestAccIAMRole_InlinePolicy_basic
=== CONT  TestAccIAMInstanceProfile_tags
=== CONT  TestAccIAMRolePolicyAttachment_disappears
=== CONT  TestAccIAMRole_basic
=== CONT  TestAccIAMRole_InlinePolicy_basic
=== CONT  TestAccIAMRolePolicy_basic
=== CONT  TestAccIAMInstanceProfile_basic
=== CONT  TestAccIAMRolePolicy_unknownsInPolicy
=== CONT  TestAccIAMRolePolicyAttachment_Disappears_role
=== CONT  TestAccIAMRole_disappears
=== CONT  TestAccIAMPolicy_tags
=== CONT  TestAccIAMPolicyDocumentDataSource_basic
=== CONT  TestAccIAMRolePolicyAttachment_basic
=== CONT  TestAccIAMPolicy_policy
=== CONT  TestAccIAMPolicyDocumentDataSource_sourceConflicting
=== CONT  TestAccIAMPolicy_basic
=== CONT  TestAccIAMRole_namePrefix
--- PASS: TestAccIAMPolicyDocumentDataSource_basic (14.41s)
--- PASS: TestAccIAMPolicyDocumentDataSource_sourceConflicting (14.44s)
--- PASS: TestAccIAMRolePolicyAttachment_Disappears_role (19.10s)
--- PASS: TestAccIAMRole_disappears (19.24s)
--- PASS: TestAccIAMRolePolicyAttachment_disappears (19.79s)
--- PASS: TestAccIAMPolicy_basic (20.81s)
--- PASS: TestAccIAMRole_namePrefix (21.20s)
--- PASS: TestAccIAMRole_basic (21.26s)
--- PASS: TestAccIAMRolePolicy_basic (21.41s)
--- PASS: TestAccIAMRolePolicy_unknownsInPolicy (22.47s)
--- PASS: TestAccIAMInstanceProfile_basic (26.06s)
--- PASS: TestAccIAMPolicy_policy (29.49s)
--- PASS: TestAccIAMRolePolicyAttachment_basic (30.47s)
--- PASS: TestAccIAMRole_InlinePolicy_basic (37.20s)
--- PASS: TestAccIAMPolicy_tags (57.09s)
--- PASS: TestAccIAMInstanceProfile_tags (78.65s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/iam	83.629s
2025/06/30 12:56:53 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:56:53 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccLogsGroup_basic
=== PAUSE TestAccLogsGroup_basic
=== RUN   TestAccLogsGroup_multiple
=== PAUSE TestAccLogsGroup_multiple
=== CONT  TestAccLogsGroup_basic
=== CONT  TestAccLogsGroup_multiple
--- PASS: TestAccLogsGroup_multiple (13.77s)
--- PASS: TestAccLogsGroup_basic (17.16s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/logs	22.143s
2025/06/30 12:57:10 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:57:10 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccVPCDataSource_basic
=== PAUSE TestAccVPCDataSource_basic
=== RUN   TestAccVPCRouteTableAssociation_Subnet_basic
=== PAUSE TestAccVPCRouteTableAssociation_Subnet_basic
=== RUN   TestAccVPCRouteTable_basic
=== PAUSE TestAccVPCRouteTable_basic
=== RUN   TestAccVPCSecurityGroupRule_race
=== PAUSE TestAccVPCSecurityGroupRule_race
=== RUN   TestAccVPCSecurityGroupRule_protocolChange
=== PAUSE TestAccVPCSecurityGroupRule_protocolChange
=== RUN   TestAccVPCSecurityGroup_basic
=== PAUSE TestAccVPCSecurityGroup_basic
=== RUN   TestAccVPCSecurityGroup_egressMode
=== PAUSE TestAccVPCSecurityGroup_egressMode
=== RUN   TestAccVPCSecurityGroup_vpcAllEgress
=== PAUSE TestAccVPCSecurityGroup_vpcAllEgress
=== RUN   TestAccVPCSubnet_basic
=== PAUSE TestAccVPCSubnet_basic
=== RUN   TestAccVPC_tenancy
=== PAUSE TestAccVPC_tenancy
=== CONT  TestAccVPCDataSource_basic
=== CONT  TestAccVPCSecurityGroup_basic
=== CONT  TestAccVPCRouteTable_basic
=== CONT  TestAccVPCRouteTableAssociation_Subnet_basic
=== CONT  TestAccVPC_tenancy
=== CONT  TestAccVPCSecurityGroup_vpcAllEgress
=== CONT  TestAccVPCSecurityGroupRule_race
=== CONT  TestAccVPCSecurityGroupRule_protocolChange
=== CONT  TestAccVPCSecurityGroup_egressMode
=== CONT  TestAccVPCSubnet_basic
--- PASS: TestAccVPCSubnet_basic (21.09s)
--- PASS: TestAccVPCRouteTable_basic (21.11s)
--- PASS: TestAccVPCSecurityGroup_basic (23.03s)
--- PASS: TestAccVPCSecurityGroup_vpcAllEgress (24.28s)
--- PASS: TestAccVPCRouteTableAssociation_Subnet_basic (24.71s)
--- PASS: TestAccVPCDataSource_basic (29.48s)
--- PASS: TestAccVPCSecurityGroup_egressMode (43.93s)
--- PASS: TestAccVPC_tenancy (48.30s)
--- PASS: TestAccVPCSecurityGroupRule_protocolChange (52.29s)
--- PASS: TestAccVPCSecurityGroupRule_race (167.83s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	183.244s
2025/06/30 12:57:00 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:57:00 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccECSService_basic
=== PAUSE TestAccECSService_basic
=== RUN   TestAccECSTaskDefinition_basic
=== PAUSE TestAccECSTaskDefinition_basic
=== CONT  TestAccECSService_basic
=== CONT  TestAccECSTaskDefinition_basic
--- PASS: TestAccECSTaskDefinition_basic (24.87s)
--- PASS: TestAccECSService_basic (73.92s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ecs	78.916s
2025/06/30 12:57:04 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:57:04 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccELBV2TargetGroup_basic
=== PAUSE TestAccELBV2TargetGroup_basic
=== CONT  TestAccELBV2TargetGroup_basic
--- PASS: TestAccELBV2TargetGroup_basic (21.74s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/elbv2	30.151s
2025/06/30 12:57:07 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 12:57:07 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccKMSKey_basic
=== PAUSE TestAccKMSKey_basic
=== CONT  TestAccKMSKey_basic
--- PASS: TestAccKMSKey_basic (29.53s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/kms	41.304s
2025/06/30 13:00:19 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:19 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccLambdaFunction_basic
=== PAUSE TestAccLambdaFunction_basic
=== RUN   TestAccLambdaPermission_basic
=== PAUSE TestAccLambdaPermission_basic
=== CONT  TestAccLambdaFunction_basic
=== CONT  TestAccLambdaPermission_basic
--- PASS: TestAccLambdaPermission_basic (31.78s)
--- PASS: TestAccLambdaFunction_basic (41.95s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/lambda	47.026s
2025/06/30 13:00:22 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:22 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccMetaPartitionDataSource_basic
=== PAUSE TestAccMetaPartitionDataSource_basic
=== RUN   TestAccMetaRegionDataSource_basic
=== PAUSE TestAccMetaRegionDataSource_basic
=== RUN   TestAccMetaRegionDataSource_endpoint
=== PAUSE TestAccMetaRegionDataSource_endpoint
=== CONT  TestAccMetaPartitionDataSource_basic
=== CONT  TestAccMetaRegionDataSource_endpoint
=== CONT  TestAccMetaRegionDataSource_basic
--- PASS: TestAccMetaPartitionDataSource_basic (11.72s)
--- PASS: TestAccMetaRegionDataSource_endpoint (11.78s)
--- PASS: TestAccMetaRegionDataSource_basic (12.34s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/meta	20.337s
2025/06/30 13:00:25 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:25 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccRoute53Record_basic
=== PAUSE TestAccRoute53Record_basic
=== RUN   TestAccRoute53Record_Latency_basic
=== PAUSE TestAccRoute53Record_Latency_basic
=== RUN   TestAccRoute53ZoneDataSource_name
=== PAUSE TestAccRoute53ZoneDataSource_name
=== CONT  TestAccRoute53Record_basic
=== CONT  TestAccRoute53ZoneDataSource_name
=== CONT  TestAccRoute53Record_Latency_basic
--- PASS: TestAccRoute53ZoneDataSource_name (73.76s)
--- PASS: TestAccRoute53Record_basic (138.62s)
--- PASS: TestAccRoute53Record_Latency_basic (140.88s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/route53	151.685s
2025/06/30 13:00:29 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:29 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccS3BucketACL_updateACL
=== PAUSE TestAccS3BucketACL_updateACL
=== RUN   TestAccS3BucketPolicy_basic
=== PAUSE TestAccS3BucketPolicy_basic
=== RUN   TestAccS3BucketPublicAccessBlock_basic
=== PAUSE TestAccS3BucketPublicAccessBlock_basic
=== RUN   TestAccS3Bucket_Basic_basic
=== PAUSE TestAccS3Bucket_Basic_basic
=== RUN   TestAccS3Bucket_Security_corsUpdate
=== PAUSE TestAccS3Bucket_Security_corsUpdate
=== RUN   TestAccS3Object_basic
=== PAUSE TestAccS3Object_basic
=== CONT  TestAccS3Bucket_Security_corsUpdate
=== CONT  TestAccS3BucketPublicAccessBlock_basic
=== CONT  TestAccS3Object_basic
=== CONT  TestAccS3Bucket_Basic_basic
=== CONT  TestAccS3BucketPolicy_basic
=== CONT  TestAccS3BucketACL_updateACL
--- PASS: TestAccS3BucketPolicy_basic (22.29s)
--- PASS: TestAccS3Bucket_Basic_basic (23.00s)
--- PASS: TestAccS3BucketPublicAccessBlock_basic (23.29s)
--- PASS: TestAccS3Object_basic (24.50s)
--- PASS: TestAccS3BucketACL_updateACL (35.49s)
--- PASS: TestAccS3Bucket_Security_corsUpdate (37.67s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/s3	49.511s
2025/06/30 13:00:32 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:32 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccSSMParameterEphemeral_basic
=== PAUSE TestAccSSMParameterEphemeral_basic
=== CONT  TestAccSSMParameterEphemeral_basic
--- PASS: TestAccSSMParameterEphemeral_basic (14.93s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ssm	30.133s
2025/06/30 13:00:36 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:36 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccSecretsManagerSecret_basic
=== PAUSE TestAccSecretsManagerSecret_basic
=== CONT  TestAccSecretsManagerSecret_basic
--- PASS: TestAccSecretsManagerSecret_basic (16.02s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/secretsmanager	34.599s
2025/06/30 13:00:39 Creating Terraform AWS Provider (SDKv2-style)...
2025/06/30 13:00:39 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccSTSCallerIdentityDataSource_basic
=== PAUSE TestAccSTSCallerIdentityDataSource_basic
=== CONT  TestAccSTSCallerIdentityDataSource_basic
--- PASS: TestAccSTSCallerIdentityDataSource_basic (8.66s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/sts	30.545s

Copy link
Contributor

@johnsonaj johnsonaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀

@YakDriver YakDriver merged commit ac51558 into main Jul 16, 2025
53 checks passed
@YakDriver YakDriver deleted the f-use-smarterr-in-cloudwatch2 branch July 16, 2025 18:06
Copy link

Warning

This Issue has been closed, meaning that any additional comments are much easier for the maintainers to miss. Please assume that the maintainers will not see them.

Ongoing conversations amongst community members are welcome, however, the issue will be locked after 30 days. Moving conversations to another venue, such as the AWS Provider forum, is recommended. If you have additional concerns, please open a new issue, referencing this one where needed.

@github-actions github-actions bot added this to the v6.4.0 milestone Jul 16, 2025
@github-actions github-actions bot removed the prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. label Jul 17, 2025
Copy link

This functionality has been released in v6.4.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. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Introduces or discusses updates to documentation. flex Pertains to FLatteners and EXpanders. generators Relates to code generators. provider Pertains to the provider itself, rather than any interaction with AWS. service/accessanalyzer Issues and PRs that pertain to the accessanalyzer service. service/acm Issues and PRs that pertain to the acm service. service/acmpca Issues and PRs that pertain to the acmpca service. service/amp Issues and PRs that pertain to the amp service. service/amplify Issues and PRs that pertain to the amplify service. service/apigateway Issues and PRs that pertain to the apigateway service. service/apigatewayv2 Issues and PRs that pertain to the apigatewayv2 service. service/appautoscaling Issues and PRs that pertain to the appautoscaling service. service/appconfig Issues and PRs that pertain to the appconfig service. service/appfabric Issues and PRs that pertain to the appfabric service. service/appflow Issues and PRs that pertain to the appflow service. service/appintegrations Issues and PRs that pertain to the appintegrations service. service/applicationinsights Issues and PRs that pertain to the applicationinsights service. service/applicationsignals Issues and PRs that pertain to the applicationsignals service. service/appmesh Issues and PRs that pertain to the appmesh service. service/apprunner Issues and PRs that pertain to the apprunner service. service/appstream Issues and PRs that pertain to the appstream service. service/appsync Issues and PRs that pertain to the appsync service. service/athena Issues and PRs that pertain to the athena service. service/auditmanager Issues and PRs that pertain to the auditmanager service. service/autoscaling Issues and PRs that pertain to the autoscaling service. service/backup Issues and PRs that pertain to the backup service. service/batch Issues and PRs that pertain to the batch service. service/bcmdataexports Issues and PRs that pertain to the bcmdataexports service. service/bedrock Issues and PRs that pertain to the bedrock service. service/bedrockagent Issues and PRs that pertain to the bedrockagent service. service/budgets Issues and PRs that pertain to the budgets service. service/ce Issues and PRs that pertain to the ce service. service/chatbot Issues and PRs that pertain to the chatbot service. service/chime Issues and PRs that pertain to the chime service. service/chimesdkmediapipelines Issues and PRs that pertain to the chimesdkmediapipelines service. service/chimesdkvoice Issues and PRs that pertain to the chimesdkvoice service. service/cleanrooms Issues and PRs that pertain to the cleanrooms service. service/cloud9 Issues and PRs that pertain to the cloud9 service. service/cloudfront Issues and PRs that pertain to the cloudfront service. service/cloudhsmv2 Issues and PRs that pertain to the cloudhsmv2 service. service/cloudtrail Issues and PRs that pertain to the cloudtrail service. service/cloudwatch Issues and PRs that pertain to the cloudwatch service. service/codeartifact Issues and PRs that pertain to the codeartifact service. service/codecommit Issues and PRs that pertain to the codecommit service. service/codeconnections Issues and PRs that pertain to the codeconnections service. service/codeguruprofiler Issues and PRs that pertain to the codeguruprofiler service. service/codegurureviewer Issues and PRs that pertain to the codegurureviewer service. service/codepipeline Issues and PRs that pertain to the codepipeline service. service/codestarconnections Issues and PRs that pertain to the codestarconnections service. service/codestarnotifications Issues and PRs that pertain to the codestarnotifications service. service/cognitoidentity Issues and PRs that pertain to the cognitoidentity service. service/cognitoidp Issues and PRs that pertain to the cognitoidp service. service/comprehend Issues and PRs that pertain to the comprehend service. service/configservice Issues and PRs that pertain to the configservice service. service/connect Issues and PRs that pertain to the connect service. service/controltower Issues and PRs that pertain to the controltower service. service/cur Issues and PRs that pertain to the cur service. service/customerprofiles Issues and PRs that pertain to the customerprofiles service. service/databrew Issues and PRs that pertain to the databrew service. service/dataexchange Issues and PRs that pertain to the dataexchange service. service/datapipeline Issues and PRs that pertain to the datapipeline service. service/datasync Issues and PRs that pertain to the datasync service. service/datazone Issues and PRs that pertain to the datazone service. service/dax Issues and PRs that pertain to the dax service. service/deploy Issues and PRs that pertain to the deploy service. service/detective Issues and PRs that pertain to the detective service. service/devicefarm Issues and PRs that pertain to the devicefarm service. service/directconnect Issues and PRs that pertain to the directconnect service. service/dlm Issues and PRs that pertain to the dlm service. service/dms Issues and PRs that pertain to the dms service. service/docdb Issues and PRs that pertain to the docdb service. service/docdbelastic Issues and PRs that pertain to the docdbelastic service. service/drs Issues and PRs that pertain to the drs service. service/ds Issues and PRs that pertain to the ds service. service/dsql Issues and PRs that pertain to the dsql service. service/dynamodb Issues and PRs that pertain to the dynamodb service. service/ecr Issues and PRs that pertain to the ecr service. service/ecrpublic Issues and PRs that pertain to the ecrpublic service. service/ecs Issues and PRs that pertain to the ecs service. service/efs Issues and PRs that pertain to the efs service. service/eks Issues and PRs that pertain to the eks service. service/elasticache Issues and PRs that pertain to the elasticache service. service/elasticbeanstalk Issues and PRs that pertain to the elasticbeanstalk service. service/elasticsearch Issues and PRs that pertain to the elasticsearch service. service/elb Issues and PRs that pertain to the elb service. service/elbv2 Issues and PRs that pertain to the elbv2 service. service/emr Issues and PRs that pertain to the emr service. service/emrcontainers Issues and PRs that pertain to the emrcontainers service. service/emrserverless Issues and PRs that pertain to the emrserverless service. service/events Issues and PRs that pertain to the events service. service/evidently Issues and PRs that pertain to the evidently service. service/evs Issues and PRs that pertain to the evs service. service/finspace Issues and PRs that pertain to the finspace service. service/firehose Issues and PRs that pertain to the firehose service. service/fis Issues and PRs that pertain to the fis service. service/fms Issues and PRs that pertain to the fms service. service/fsx Issues and PRs that pertain to the fsx service. service/gamelift Issues and PRs that pertain to the gamelift service. tags Pertains to resource tagging.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants