NOTES:
- 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
}
(#1021)
ENHANCEMENTS:
- all: Added embedded struct support for object to struct conversions with
tfsdk
tags (#1021)