Skip to content

Conversation

shawnaws
Copy link
Contributor

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.
No

Description

This implements the necessary changes to support DynamoDB Multi-Region Strong Consistency
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/multi-region-strong-consistency-gt.html

Relations

Closes #42637

References

Output from Acceptance Testing

MRSC Only Tests

% make testacc PKG
=dynamodb TESTS=TestAccDynamoDBTable_Replica_MRSC
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.9 test ./internal/service/dynamodb/... -v -count 1 -parallel 20 -run='TestAccDynamoDBTable_Replica_MRSC'  -timeout 360m -vet=off
2025/06/23 14:28:39 Initializing Terraform AWS Provider...
=== RUN   TestAccDynamoDBTable_Replica_MRSC_Create
--- PASS: TestAccDynamoDBTable_Replica_MRSC_Create (192.75s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_pitr
--- PASS: TestAccDynamoDBTable_Replica_MRSC_pitr (211.20s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_oneOfTwo
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_oneOfTwo (233.67s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_twoOfTwo
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_twoOfTwo (444.20s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_propagateToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_propagateToAddedReplica (428.55s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_notPropagatedToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_notPropagatedToAddedReplica (374.95s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_nonPropagatedTagsAreUnmanaged
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_nonPropagatedTagsAreUnmanaged (364.25s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tagsUpdate
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tagsUpdate (354.18s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
=== RUN   TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
=== RUN   TestAccDynamoDBTable_Replica_MRSC_UnsupportedRegions
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_UnsupportedRegions
=== RUN   TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
=== RUN   TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
=== CONT  TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
=== CONT  TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
=== CONT  TestAccDynamoDBTable_Replica_MRSC_UnsupportedRegions
=== CONT  TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
=== CONT  TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
--- PASS: TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes (29.56s)
--- PASS: TestAccDynamoDBTable_Replica_MRSC_UnsupportedRegions (29.74s)
--- PASS: TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas (33.40s)
--- PASS: TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas (39.28s)
--- PASS: TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent (280.46s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb   2890.082s

@shawnaws shawnaws requested a review from a team as a code owner June 30, 2025 14:26
Copy link
Contributor

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.

Copy link
Contributor

github-actions bot commented Jun 30, 2025

✅ Thank you for correcting the previously detected issues! The maintainers appreciate your efforts to make the review process as smooth as possible.

@github-actions github-actions bot added needs-triage Waiting for first response or review from a maintainer. documentation Introduces or discusses updates to documentation. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/dynamodb Issues and PRs that pertain to the dynamodb service. size/XL Managed by automation to categorize the size of a PR. labels Jun 30, 2025
@justinretzolk justinretzolk added enhancement Requests to existing resources that expand the functionality or scope. and removed needs-triage Waiting for first response or review from a maintainer. labels Jun 30, 2025
@ewbankkit ewbankkit added the partner Contribution from a partner. label Jun 30, 2025
@ewbankkit ewbankkit self-assigned this Jul 7, 2025
@github-actions github-actions bot added the prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. label Jul 7, 2025
ewbankkit
ewbankkit previously approved these changes Jul 8, 2025
Copy link
Contributor

@ewbankkit ewbankkit left a comment

Choose a reason for hiding this comment

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

LGTM 🚀.

% ACCTEST_TIMEOUT=720m make testacc TESTARGS='-run=TestAccDynamoDBTable_' PKG=dynamodb ACCTEST_PARALLELISM=4
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.24.4 test ./internal/service/dynamodb/... -v -count 1 -parallel 4  -run=TestAccDynamoDBTable_ -timeout 720m -vet=off
2025/07/07 14:32:59 Creating Terraform AWS Provider (SDKv2-style)...
2025/07/07 14:32:59 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccDynamoDBTable_tags
=== PAUSE TestAccDynamoDBTable_tags
=== RUN   TestAccDynamoDBTable_tags_null
=== PAUSE TestAccDynamoDBTable_tags_null
=== RUN   TestAccDynamoDBTable_tags_EmptyMap
=== PAUSE TestAccDynamoDBTable_tags_EmptyMap
=== RUN   TestAccDynamoDBTable_tags_AddOnUpdate
=== PAUSE TestAccDynamoDBTable_tags_AddOnUpdate
=== RUN   TestAccDynamoDBTable_tags_EmptyTag_OnCreate
=== PAUSE TestAccDynamoDBTable_tags_EmptyTag_OnCreate
=== RUN   TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Add
=== PAUSE TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Add
=== RUN   TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Replace
=== PAUSE TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Replace
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_providerOnly
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_providerOnly
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_nonOverlapping
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_nonOverlapping
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_overlapping
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_overlapping
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_emptyResourceTag
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccDynamoDBTable_tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccDynamoDBTable_tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccDynamoDBTable_tags_ComputedTag_OnCreate
=== PAUSE TestAccDynamoDBTable_tags_ComputedTag_OnCreate
=== RUN   TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Add
=== PAUSE TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Add
=== RUN   TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Replace
=== PAUSE TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Replace
=== RUN   TestAccDynamoDBTable_tags_IgnoreTags_Overlap_DefaultTag
=== PAUSE TestAccDynamoDBTable_tags_IgnoreTags_Overlap_DefaultTag
=== RUN   TestAccDynamoDBTable_tags_IgnoreTags_Overlap_ResourceTag
=== PAUSE TestAccDynamoDBTable_tags_IgnoreTags_Overlap_ResourceTag
=== RUN   TestAccDynamoDBTable_basic
=== PAUSE TestAccDynamoDBTable_basic
=== RUN   TestAccDynamoDBTable_deletion_protection
=== PAUSE TestAccDynamoDBTable_deletion_protection
=== RUN   TestAccDynamoDBTable_disappears
=== PAUSE TestAccDynamoDBTable_disappears
=== RUN   TestAccDynamoDBTable_Disappears_payPerRequestWithGSI
=== PAUSE TestAccDynamoDBTable_Disappears_payPerRequestWithGSI
=== RUN   TestAccDynamoDBTable_extended
=== PAUSE TestAccDynamoDBTable_extended
=== RUN   TestAccDynamoDBTable_enablePITR
=== PAUSE TestAccDynamoDBTable_enablePITR
=== RUN   TestAccDynamoDBTable_enablePITRWithCustomRecoveryPeriod
=== PAUSE TestAccDynamoDBTable_enablePITRWithCustomRecoveryPeriod
=== RUN   TestAccDynamoDBTable_BillingMode_payPerRequestToProvisioned
=== PAUSE TestAccDynamoDBTable_BillingMode_payPerRequestToProvisioned
=== RUN   TestAccDynamoDBTable_BillingMode_payPerRequestToProvisionedIgnoreChanges
=== PAUSE TestAccDynamoDBTable_BillingMode_payPerRequestToProvisionedIgnoreChanges
=== RUN   TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequest
=== PAUSE TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequest
=== RUN   TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequestIgnoreChanges
=== PAUSE TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequestIgnoreChanges
=== RUN   TestAccDynamoDBTable_BillingModeGSI_payPerRequestToProvisioned
=== PAUSE TestAccDynamoDBTable_BillingModeGSI_payPerRequestToProvisioned
=== RUN   TestAccDynamoDBTable_BillingModeGSI_provisionedToPayPerRequest
=== PAUSE TestAccDynamoDBTable_BillingModeGSI_provisionedToPayPerRequest
=== RUN   TestAccDynamoDBTable_BillingMode_payPerRequestBasic
=== PAUSE TestAccDynamoDBTable_BillingMode_payPerRequestBasic
=== RUN   TestAccDynamoDBTable_onDemandThroughput
=== PAUSE TestAccDynamoDBTable_onDemandThroughput
=== RUN   TestAccDynamoDBTable_gsiOnDemandThroughput
=== PAUSE TestAccDynamoDBTable_gsiOnDemandThroughput
=== RUN   TestAccDynamoDBTable_streamSpecification
=== PAUSE TestAccDynamoDBTable_streamSpecification
=== RUN   TestAccDynamoDBTable_streamSpecificationDiffs
=== PAUSE TestAccDynamoDBTable_streamSpecificationDiffs
=== RUN   TestAccDynamoDBTable_streamSpecificationValidation
=== PAUSE TestAccDynamoDBTable_streamSpecificationValidation
=== RUN   TestAccDynamoDBTable_gsiUpdateCapacity
=== PAUSE TestAccDynamoDBTable_gsiUpdateCapacity
=== RUN   TestAccDynamoDBTable_gsiUpdateOtherAttributes
=== PAUSE TestAccDynamoDBTable_gsiUpdateOtherAttributes
=== RUN   TestAccDynamoDBTable_lsiNonKeyAttributes
=== PAUSE TestAccDynamoDBTable_lsiNonKeyAttributes
=== RUN   TestAccDynamoDBTable_gsiUpdateNonKeyAttributes
=== PAUSE TestAccDynamoDBTable_gsiUpdateNonKeyAttributes
=== RUN   TestAccDynamoDBTable_GsiUpdateNonKeyAttributes_emptyPlan
=== PAUSE TestAccDynamoDBTable_GsiUpdateNonKeyAttributes_emptyPlan
=== RUN   TestAccDynamoDBTable_TTL_enabled
=== PAUSE TestAccDynamoDBTable_TTL_enabled
=== RUN   TestAccDynamoDBTable_TTL_disabled
=== PAUSE TestAccDynamoDBTable_TTL_disabled
=== RUN   TestAccDynamoDBTable_TTL_updateEnable
=== PAUSE TestAccDynamoDBTable_TTL_updateEnable
=== RUN   TestAccDynamoDBTable_TTL_updateDisable
=== PAUSE TestAccDynamoDBTable_TTL_updateDisable
=== RUN   TestAccDynamoDBTable_TTL_validate
=== PAUSE TestAccDynamoDBTable_TTL_validate
=== RUN   TestAccDynamoDBTable_attributeUpdate
=== PAUSE TestAccDynamoDBTable_attributeUpdate
=== RUN   TestAccDynamoDBTable_lsiUpdate
=== PAUSE TestAccDynamoDBTable_lsiUpdate
=== RUN   TestAccDynamoDBTable_attributeUpdateValidation
=== PAUSE TestAccDynamoDBTable_attributeUpdateValidation
=== RUN   TestAccDynamoDBTable_encryption
=== PAUSE TestAccDynamoDBTable_encryption
=== RUN   TestAccDynamoDBTable_restoreCrossRegion
=== PAUSE TestAccDynamoDBTable_restoreCrossRegion
=== RUN   TestAccDynamoDBTable_Replica_multiple
=== PAUSE TestAccDynamoDBTable_Replica_multiple
=== RUN   TestAccDynamoDBTable_Replica_single
=== PAUSE TestAccDynamoDBTable_Replica_single
=== RUN   TestAccDynamoDBTable_Replica_singleStreamSpecification
=== PAUSE TestAccDynamoDBTable_Replica_singleStreamSpecification
=== RUN   TestAccDynamoDBTable_Replica_singleDefaultKeyEncrypted
=== PAUSE TestAccDynamoDBTable_Replica_singleDefaultKeyEncrypted
=== RUN   TestAccDynamoDBTable_Replica_singleDefaultKeyEncryptedAmazonOwned
=== PAUSE TestAccDynamoDBTable_Replica_singleDefaultKeyEncryptedAmazonOwned
=== RUN   TestAccDynamoDBTable_Replica_singleCMK
=== PAUSE TestAccDynamoDBTable_Replica_singleCMK
=== RUN   TestAccDynamoDBTable_Replica_doubleAddCMK
=== PAUSE TestAccDynamoDBTable_Replica_doubleAddCMK
=== RUN   TestAccDynamoDBTable_Replica_pitr
=== PAUSE TestAccDynamoDBTable_Replica_pitr
=== RUN   TestAccDynamoDBTable_Replica_pitrKMS
=== PAUSE TestAccDynamoDBTable_Replica_pitrKMS
=== RUN   TestAccDynamoDBTable_Replica_tags_updateIsPropagated_oneOfTwo
=== PAUSE TestAccDynamoDBTable_Replica_tags_updateIsPropagated_oneOfTwo
=== RUN   TestAccDynamoDBTable_Replica_tags_updateIsPropagated_twoOfTwo
=== PAUSE TestAccDynamoDBTable_Replica_tags_updateIsPropagated_twoOfTwo
=== RUN   TestAccDynamoDBTable_Replica_tags_propagateToAddedReplica
=== PAUSE TestAccDynamoDBTable_Replica_tags_propagateToAddedReplica
=== RUN   TestAccDynamoDBTable_Replica_tags_notPropagatedToAddedReplica
=== PAUSE TestAccDynamoDBTable_Replica_tags_notPropagatedToAddedReplica
=== RUN   TestAccDynamoDBTable_Replica_tags_nonPropagatedTagsAreUnmanaged
=== PAUSE TestAccDynamoDBTable_Replica_tags_nonPropagatedTagsAreUnmanaged
=== RUN   TestAccDynamoDBTable_Replica_tagsUpdate
=== PAUSE TestAccDynamoDBTable_Replica_tagsUpdate
=== RUN   TestAccDynamoDBTable_Replica_MRSC_Create
--- PASS: TestAccDynamoDBTable_Replica_MRSC_Create (212.93s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_doubleAddCMK
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_doubleAddCMK
=== RUN   TestAccDynamoDBTable_Replica_MRSC_pitr
--- PASS: TestAccDynamoDBTable_Replica_MRSC_pitr (202.28s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_pitrKMS
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_pitrKMS
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_oneOfTwo
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_oneOfTwo (195.27s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_twoOfTwo
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_updateIsPropagated_twoOfTwo (277.37s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_propagateToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_propagateToAddedReplica (236.76s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_notPropagatedToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_notPropagatedToAddedReplica (354.38s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tags_nonPropagatedTagsAreUnmanaged
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tags_nonPropagatedTagsAreUnmanaged (238.43s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_tagsUpdate
--- PASS: TestAccDynamoDBTable_Replica_MRSC_tagsUpdate (314.17s)
=== RUN   TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
=== RUN   TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
=== RUN   TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
=== RUN   TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
=== PAUSE TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
=== RUN   TestAccDynamoDBTable_tableClassInfrequentAccess
=== PAUSE TestAccDynamoDBTable_tableClassInfrequentAccess
=== RUN   TestAccDynamoDBTable_tableClassExplicitDefault
=== PAUSE TestAccDynamoDBTable_tableClassExplicitDefault
=== RUN   TestAccDynamoDBTable_tableClass_ConcurrentModification
=== PAUSE TestAccDynamoDBTable_tableClass_ConcurrentModification
=== RUN   TestAccDynamoDBTable_tableClass_migrate
=== PAUSE TestAccDynamoDBTable_tableClass_migrate
=== RUN   TestAccDynamoDBTable_backupEncryption
=== PAUSE TestAccDynamoDBTable_backupEncryption
=== RUN   TestAccDynamoDBTable_backup_overrideEncryption
=== PAUSE TestAccDynamoDBTable_backup_overrideEncryption
=== RUN   TestAccDynamoDBTable_importTable
=== PAUSE TestAccDynamoDBTable_importTable
=== CONT  TestAccDynamoDBTable_tags
=== CONT  TestAccDynamoDBTable_lsiNonKeyAttributes
=== CONT  TestAccDynamoDBTable_basic
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccDynamoDBTable_basic (24.57s)
=== CONT  TestAccDynamoDBTable_tags_ComputedTag_OnCreate
--- PASS: TestAccDynamoDBTable_lsiNonKeyAttributes (30.59s)
=== CONT  TestAccDynamoDBTable_tags_IgnoreTags_Overlap_ResourceTag
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_updateToResourceOnly (40.13s)
=== CONT  TestAccDynamoDBTable_tags_IgnoreTags_Overlap_DefaultTag
--- PASS: TestAccDynamoDBTable_tags_ComputedTag_OnCreate (29.07s)
=== CONT  TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Replace
--- PASS: TestAccDynamoDBTable_tags (76.62s)
=== CONT  TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Add
--- PASS: TestAccDynamoDBTable_tags_IgnoreTags_Overlap_ResourceTag (48.55s)
=== CONT  TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Replace
--- PASS: TestAccDynamoDBTable_tags_IgnoreTags_Overlap_DefaultTag (46.79s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Replace (40.96s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_overlapping
--- PASS: TestAccDynamoDBTable_tags_ComputedTag_OnUpdate_Add (43.98s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_nonOverlapping
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_updateToProviderOnly (34.80s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_providerOnly
--- PASS: TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Replace (46.88s)
=== CONT  TestAccDynamoDBTable_tags_AddOnUpdate
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_overlapping (64.38s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccDynamoDBTable_tags_AddOnUpdate (40.24s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_nullOverlappingResourceTag (20.26s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_nonOverlapping (62.08s)
=== CONT  TestAccDynamoDBTable_Replica_pitrKMS
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_nullNonOverlappingResourceTag (23.81s)
=== CONT  TestAccDynamoDBTable_importTable
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_providerOnly (77.66s)
=== CONT  TestAccDynamoDBTable_backup_overrideEncryption
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_emptyProviderOnlyTag (25.26s)
=== CONT  TestAccDynamoDBTable_backupEncryption
--- PASS: TestAccDynamoDBTable_importTable (133.66s)
=== CONT  TestAccDynamoDBTable_tableClass_migrate
=== CONT  TestAccDynamoDBTable_tableClass_ConcurrentModification
--- PASS: TestAccDynamoDBTable_tableClass_migrate (43.37s)
--- PASS: TestAccDynamoDBTable_tableClass_ConcurrentModification (55.93s)
=== CONT  TestAccDynamoDBTable_tableClassExplicitDefault
--- PASS: TestAccDynamoDBTable_tableClassExplicitDefault (31.96s)
=== CONT  TestAccDynamoDBTable_tableClassInfrequentAccess
--- PASS: TestAccDynamoDBTable_tableClassInfrequentAccess (42.68s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent
--- PASS: TestAccDynamoDBTable_Replica_pitrKMS (347.26s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes
--- PASS: TestAccDynamoDBTable_Replica_MRSC_MixedConsistencyModes (31.80s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas
--- PASS: TestAccDynamoDBTable_Replica_MRSC_NotEnoughReplicas (30.83s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas
--- PASS: TestAccDynamoDBTable_Replica_MRSC_TooManyReplicas (34.39s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_pitrKMS
--- PASS: TestAccDynamoDBTable_Replica_MRSC_CreateEventuallyConsistent (270.45s)
=== CONT  TestAccDynamoDBTable_Replica_MRSC_doubleAddCMK
--- PASS: TestAccDynamoDBTable_Replica_MRSC_pitrKMS (261.08s)
=== CONT  TestAccDynamoDBTable_Replica_tagsUpdate
--- PASS: TestAccDynamoDBTable_backup_overrideEncryption (807.50s)
=== CONT  TestAccDynamoDBTable_Replica_tags_nonPropagatedTagsAreUnmanaged
--- PASS: TestAccDynamoDBTable_backupEncryption (854.16s)
=== CONT  TestAccDynamoDBTable_Replica_tags_notPropagatedToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_tagsUpdate (368.59s)
=== CONT  TestAccDynamoDBTable_Replica_tags_propagateToAddedReplica
--- PASS: TestAccDynamoDBTable_Replica_tags_nonPropagatedTagsAreUnmanaged (357.01s)
=== CONT  TestAccDynamoDBTable_Replica_tags_updateIsPropagated_twoOfTwo
--- PASS: TestAccDynamoDBTable_Replica_tags_notPropagatedToAddedReplica (306.67s)
=== CONT  TestAccDynamoDBTable_Replica_tags_updateIsPropagated_oneOfTwo
--- PASS: TestAccDynamoDBTable_Replica_MRSC_doubleAddCMK (675.66s)
=== CONT  TestAccDynamoDBTable_tags_DefaultTags_emptyResourceTag
--- PASS: TestAccDynamoDBTable_tags_DefaultTags_emptyResourceTag (28.45s)
=== CONT  TestAccDynamoDBTable_tags_EmptyTag_OnCreate
--- PASS: TestAccDynamoDBTable_Replica_tags_propagateToAddedReplica (240.19s)
=== CONT  TestAccDynamoDBTable_tags_EmptyMap
--- PASS: TestAccDynamoDBTable_tags_EmptyTag_OnCreate (40.56s)
=== CONT  TestAccDynamoDBTable_BillingModeGSI_payPerRequestToProvisioned
--- PASS: TestAccDynamoDBTable_tags_EmptyMap (39.21s)
=== CONT  TestAccDynamoDBTable_gsiUpdateOtherAttributes
--- PASS: TestAccDynamoDBTable_Replica_tags_updateIsPropagated_oneOfTwo (359.36s)
=== CONT  TestAccDynamoDBTable_gsiUpdateCapacity
--- PASS: TestAccDynamoDBTable_Replica_tags_updateIsPropagated_twoOfTwo (361.81s)
=== CONT  TestAccDynamoDBTable_streamSpecificationValidation
--- PASS: TestAccDynamoDBTable_streamSpecificationValidation (1.28s)
=== CONT  TestAccDynamoDBTable_streamSpecificationDiffs
--- PASS: TestAccDynamoDBTable_BillingModeGSI_payPerRequestToProvisioned (247.92s)
=== CONT  TestAccDynamoDBTable_streamSpecification
--- PASS: TestAccDynamoDBTable_gsiUpdateCapacity (51.61s)
=== CONT  TestAccDynamoDBTable_gsiOnDemandThroughput
--- PASS: TestAccDynamoDBTable_streamSpecification (45.91s)
=== CONT  TestAccDynamoDBTable_onDemandThroughput
--- PASS: TestAccDynamoDBTable_streamSpecificationDiffs (92.38s)
=== CONT  TestAccDynamoDBTable_BillingMode_payPerRequestBasic
--- PASS: TestAccDynamoDBTable_gsiOnDemandThroughput (54.92s)
=== CONT  TestAccDynamoDBTable_BillingModeGSI_provisionedToPayPerRequest
--- PASS: TestAccDynamoDBTable_onDemandThroughput (51.79s)
=== CONT  TestAccDynamoDBTable_enablePITRWithCustomRecoveryPeriod
--- PASS: TestAccDynamoDBTable_enablePITRWithCustomRecoveryPeriod (73.16s)
=== CONT  TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequestIgnoreChanges
--- PASS: TestAccDynamoDBTable_BillingMode_payPerRequestBasic (129.94s)
=== CONT  TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequest
--- PASS: TestAccDynamoDBTable_gsiUpdateOtherAttributes (755.75s)
=== CONT  TestAccDynamoDBTable_BillingMode_payPerRequestToProvisionedIgnoreChanges
--- PASS: TestAccDynamoDBTable_BillingMode_payPerRequestToProvisionedIgnoreChanges (187.96s)
=== CONT  TestAccDynamoDBTable_BillingMode_payPerRequestToProvisioned
--- PASS: TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequestIgnoreChanges (728.28s)
=== CONT  TestAccDynamoDBTable_Disappears_payPerRequestWithGSI
--- PASS: TestAccDynamoDBTable_BillingMode_payPerRequestToProvisioned (218.51s)
=== CONT  TestAccDynamoDBTable_enablePITR
--- PASS: TestAccDynamoDBTable_Disappears_payPerRequestWithGSI (79.50s)
=== CONT  TestAccDynamoDBTable_extended
--- PASS: TestAccDynamoDBTable_enablePITR (66.69s)
=== CONT  TestAccDynamoDBTable_disappears
--- PASS: TestAccDynamoDBTable_disappears (21.28s)
=== CONT  TestAccDynamoDBTable_encryption
--- PASS: TestAccDynamoDBTable_BillingMode_provisionedToPayPerRequest (887.00s)
=== CONT  TestAccDynamoDBTable_Replica_pitr
--- PASS: TestAccDynamoDBTable_encryption (120.99s)
=== CONT  TestAccDynamoDBTable_Replica_doubleAddCMK
--- PASS: TestAccDynamoDBTable_extended (231.07s)
=== CONT  TestAccDynamoDBTable_Replica_singleCMK
--- PASS: TestAccDynamoDBTable_Replica_singleCMK (196.12s)
=== CONT  TestAccDynamoDBTable_Replica_singleDefaultKeyEncryptedAmazonOwned
--- PASS: TestAccDynamoDBTable_Replica_pitr (337.67s)
=== CONT  TestAccDynamoDBTable_Replica_singleDefaultKeyEncrypted
--- PASS: TestAccDynamoDBTable_BillingModeGSI_provisionedToPayPerRequest (1514.37s)
=== CONT  TestAccDynamoDBTable_Replica_singleStreamSpecification
--- PASS: TestAccDynamoDBTable_Replica_singleDefaultKeyEncryptedAmazonOwned (238.73s)
=== CONT  TestAccDynamoDBTable_Replica_single
--- PASS: TestAccDynamoDBTable_Replica_singleDefaultKeyEncrypted (237.35s)
=== CONT  TestAccDynamoDBTable_Replica_multiple
--- PASS: TestAccDynamoDBTable_Replica_singleStreamSpecification (188.21s)
=== CONT  TestAccDynamoDBTable_restoreCrossRegion
--- PASS: TestAccDynamoDBTable_Replica_doubleAddCMK (877.67s)
=== CONT  TestAccDynamoDBTable_TTL_updateDisable
--- PASS: TestAccDynamoDBTable_restoreCrossRegion (311.90s)
=== CONT  TestAccDynamoDBTable_attributeUpdateValidation
--- PASS: TestAccDynamoDBTable_attributeUpdateValidation (3.44s)
=== CONT  TestAccDynamoDBTable_lsiUpdate
--- PASS: TestAccDynamoDBTable_Replica_single (494.55s)
=== CONT  TestAccDynamoDBTable_attributeUpdate
--- PASS: TestAccDynamoDBTable_lsiUpdate (57.35s)
=== CONT  TestAccDynamoDBTable_TTL_validate
--- PASS: TestAccDynamoDBTable_TTL_validate (2.41s)
=== CONT  TestAccDynamoDBTable_TTL_enabled
--- PASS: TestAccDynamoDBTable_TTL_enabled (30.51s)
=== CONT  TestAccDynamoDBTable_TTL_updateEnable
--- PASS: TestAccDynamoDBTable_TTL_updateEnable (32.37s)
=== CONT  TestAccDynamoDBTable_TTL_disabled
--- PASS: TestAccDynamoDBTable_TTL_disabled (30.73s)
=== CONT  TestAccDynamoDBTable_deletion_protection
--- PASS: TestAccDynamoDBTable_Replica_multiple (602.76s)
=== CONT  TestAccDynamoDBTable_GsiUpdateNonKeyAttributes_emptyPlan
--- PASS: TestAccDynamoDBTable_deletion_protection (33.14s)
=== CONT  TestAccDynamoDBTable_gsiUpdateNonKeyAttributes
--- PASS: TestAccDynamoDBTable_GsiUpdateNonKeyAttributes_emptyPlan (48.43s)
=== CONT  TestAccDynamoDBTable_tags_null
--- PASS: TestAccDynamoDBTable_tags_null (30.44s)
=== CONT  TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Add
--- PASS: TestAccDynamoDBTable_tags_EmptyTag_OnUpdate_Add (58.79s)
--- PASS: TestAccDynamoDBTable_gsiUpdateNonKeyAttributes (332.07s)
--- PASS: TestAccDynamoDBTable_attributeUpdate (468.84s)
--- PASS: TestAccDynamoDBTable_TTL_updateDisable (3649.39s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/dynamodb	9463.329s

jar-b
jar-b previously approved these changes Jul 8, 2025
Copy link
Member

@jar-b jar-b left a comment

Choose a reason for hiding this comment

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

LGTM 🚀

@ewbankkit ewbankkit dismissed stale reviews from jar-b and themself via e421c7f July 8, 2025 18:00
@ewbankkit
Copy link
Contributor

@shawnaws Thanks for the contribution 🎉 👏.

@ewbankkit ewbankkit merged commit 7bba6bf into hashicorp:main Jul 8, 2025
46 checks passed
Copy link
Contributor

github-actions bot commented Jul 8, 2025

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.3.0 milestone Jul 8, 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 10, 2025
Copy link
Contributor

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

Copy link
Contributor

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. enhancement Requests to existing resources that expand the functionality or scope. partner Contribution from a partner. service/dynamodb Issues and PRs that pertain to the dynamodb service. size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support multi-region strong consistency for DynamoDB global tables
4 participants