Framework reflection logic (Config.Get, Plan.Get, etc.) for structs with
tfsdk field tags has been updated to support embedded structs that promote exported
fields. For existing structs that embed unexported structs with exported fields, a tfsdk
ignore tag (tfsdk:"-") can be added to ignore all promoted fields.
For example, the following struct will now return an error diagnostic:
type thingResourceModel struct {
Attr1 types.String `tfsdk:"attr_1"`
Attr2 types.Bool `tfsdk:"attr_2"`
// Previously, this embedded struct was ignored, will now promote underlying fields
embeddedModel
}
type embeddedModel struct {
// No tfsdk tag
ExportedField string
}
To preserve the original behavior, a tfsdk ignore tag can be added to ignore the entire embedded struct:
type thingResourceModel struct {
Attr1 types.String `tfsdk:"attr_1"`
Attr2 types.Bool `tfsdk:"attr_2"`
// This embedded struct will now be ignored
embeddedModel `tfsdk:"-"`
}
type embeddedModel struct {
ExportedField string
}
Framework reflection logic (Config.Get, Plan.Get, etc.) for structs with
tfsdk field tags has been updated to support embedded structs that promote exported
fields. For existing structs that embed unexported structs with exported fields, a tfsdk
ignore tag (tfsdk:"-") can be added to ignore all promoted fields.
For example, the following struct will now return an error diagnostic:
type thingResourceModel struct {
Attr1 types.String `tfsdk:"attr_1"`
Attr2 types.Bool `tfsdk:"attr_2"`
// Previously, this embedded struct was ignored, will now promote underlying fields
embeddedModel
}
type embeddedModel struct {
// No tfsdk tag
ExportedField string
}
To preserve the original behavior, a tfsdk ignore tag can be added to ignore the entire embedded struct:
type thingResourceModel struct {
Attr1 types.String `tfsdk:"attr_1"`
Attr2 types.Bool `tfsdk:"attr_2"`
// This embedded struct will now be ignored
embeddedModel `tfsdk:"-"`
}
type embeddedModel struct {
ExportedField string
}
compare: The compare package is considered experimental and may be altered or removed in a subsequent release (#330)
statecheck: CompareValue, CompareValueCollection, and CompareValuePairs state checks are considered experimental and may be altered or removed in a subsequent release. (#330)
FEATURES:
compare: Introduced new compare package, which contains interfaces and implementations for value comparisons in state checks. (#330)
statecheck: Added CompareValue state check, which compares sequential values of the specified attribute at the given managed resource, or data source, using the supplied value comparer. (#330)
statecheck: Added CompareValueCollection state check, which compares each item in the specified collection (e.g., list, set) attribute, with the second specified attribute at the given managed resources, or data sources, using the supplied value comparer. (#330)
statecheck: Added CompareValuePairs state check, which compares the specified attributes at the given managed resources, or data sources, using the supplied value comparer. (#330)
compare: The compare package is considered experimental and may be altered or removed in a subsequent release (#330)
statecheck: CompareValue, CompareValueCollection, and CompareValuePairs state checks are considered experimental and may be altered or removed in a subsequent release. (#330)
FEATURES:
compare: Introduced new compare package, which contains interfaces and implementations for value comparisons in state checks. (#330)
statecheck: Added CompareValue state check, which compares sequential values of the specified attribute at the given managed resource, or data source, using the supplied value comparer. (#330)
statecheck: Added CompareValueCollection state check, which compares each item in the specified collection (e.g., list, set) attribute, with the second specified attribute at the given managed resources, or data sources, using the supplied value comparer. (#330)
statecheck: Added CompareValuePairs state check, which compares the specified attributes at the given managed resources, or data sources, using the supplied value comparer. (#330)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the gomodupdates group with 2 updates: github.com/hashicorp/terraform-plugin-framework and github.com/hashicorp/terraform-plugin-testing.
Updates
github.com/hashicorp/terraform-plugin-framework
from 1.10.0 to 1.11.0Release notes
Sourced from github.com/hashicorp/terraform-plugin-framework's releases.
Changelog
Sourced from github.com/hashicorp/terraform-plugin-framework's changelog.
Commits
c338d61
Update changelog4d10c17
all: Add support for embedded struct types in object conversions (#1021)d6c8b06
docs: Add more clarification for unknown values during config validation (#1023)0f21b14
Result of tsccr-helper -log-level=info gha update -latest . (#1020)12d7331
Result of tsccr-helper -log-level=info gha update -latest . (#1018)Updates
github.com/hashicorp/terraform-plugin-testing
from 1.9.0 to 1.10.0Release notes
Sourced from github.com/hashicorp/terraform-plugin-testing's releases.
Changelog
Sourced from github.com/hashicorp/terraform-plugin-testing's changelog.
Commits
dfafdd7
Update changelog5d78aa4
Implement comparison state checks to replaceTestCheckResourceAttrPtr
, `Tes...9501a02
build(deps): Bump golang.org/x/crypto from 0.25.0 to 0.26.0 (#364)c187925
build(deps): Bump github.com/hashicorp/hc-install from 0.7.0 to 0.8.0 (#362)4910d52
docs: UpdateCheck
function examples withstatecheck
package implementati...f9ca4c3
Result of tsccr-helper -log-level=info gha update -latest . (#361)6dacd4f
Result of tsccr-helper -log-level=info gha update -latest . (#360)23a9124
build(deps): Bump github.com/zclconf/go-cty from 1.14.4 to 1.15.0 (#359)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show