import: only filter id attribute at root level when generating config #35220
+98
−26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The legacy SDK introduces an
id
attribute at the root level of resources. This caused invalid config to be generated for the legacy SDK. To avoid this we introduced a filter that removed this attribute from the generated config. This workaround is discussed here: https://github.com/hashicorp/terraform/blob/main/internal/terraform/node_resource_plan_instance.go#L751-L761.The linked issue highlights we were also removing computed and optional
id
attributes from within nested attributes and blocks. Theseid
attributes are not introduced by the SDK, so I've changed the filter functionality to accept a path instead of an attribute name and it now only removes attributes at the root level instead of across the whole schema.Fixes #35178
Target Release
1.8.4
Draft CHANGELOG entry
BUG FIXES
import
blocks: Fix bug where resources with nested, computed, and optionalid
attributes would fail to generate.