opentofu/config
Martin Atkins 88e76fa9ef configs/configschema: Introduce the NestingGroup mode for blocks
In study of existing providers we've found a pattern we werent previously
accounting for of using a nested block type to represent a group of
arguments that relate to a particular feature that is always enabled but
where it improves configuration readability to group all of its settings
together in a nested block.

The existing NestingSingle was not a good fit for this because it is
designed under the assumption that the presence or absence of the block
has some significance in enabling or disabling the relevant feature, and
so for these always-active cases we'd generate a misleading plan where
the settings for the feature appear totally absent, rather than showing
the default values that will be selected.

NestingGroup is, therefore, a slight variation of NestingSingle where
presence vs. absence of the block is not distinguishable (it's never null)
and instead its contents are treated as unset when the block is absent.
This then in turn causes any default values associated with the nested
arguments to be honored and displayed in the plan whenever the block is
not explicitly configured.

The current SDK cannot activate this mode, but that's okay because its
"legacy type system" opt-out flag allows it to force a block to be
processed in this way anyway. We're adding this now so that we can
introduce the feature in a future SDK without causing a breaking change
to the protocol, since the set of possible block nesting modes is not
extensible.
2019-04-10 14:53:52 -07:00
..
hcl2shim configs/configschema: Introduce the NestingGroup mode for blocks 2019-04-10 14:53:52 -07:00
module registry: renaming module-specific registry functions 2018-10-16 18:56:50 -07:00
test-fixtures accessing count directly in an output should is OK 2017-12-06 18:59:53 -05:00
append_test.go config: merge/append for local values 2017-09-01 17:51:13 -07:00
append.go config: merge/append for local values 2017-09-01 17:51:13 -07:00
config_string.go config: parse description field for outputs 2017-08-28 09:42:03 -07:00
config_terraform_test.go config: add "backend" loading to the Terraform section 2017-01-26 14:33:49 -08:00
config_terraform.go add Rehash to terraform.BackendState 2017-03-29 15:53:42 -04:00
config_test.go config: a nicer error message for invalid provider constraints 2017-12-07 14:28:43 -08:00
config_tree.go config: make Merge an exported func 2014-07-18 17:05:22 -07:00
config.go config: Don't expose go implementation details in Resource.Count 2018-01-19 13:06:00 -08:00
hcl2_shim_util_test.go config/hcl2shim: make some of the HCL2 shim functions public 2017-10-16 17:54:02 -07:00
hcl2_shim_util.go config/hcl2shim: make some of the HCL2 shim functions public 2017-10-16 17:54:02 -07:00
import_tree_test.go config: allow HCL2 experiment opt-in (build-time flag to enable) 2017-10-03 17:47:01 -07:00
import_tree.go config and command: use errwrap to propagate config load errors 2017-10-06 11:46:07 -07:00
interpolate_funcs_test.go config: new "reverse" interpolation function 2019-03-19 17:32:19 -07:00
interpolate_funcs.go config: new "reverse" interpolation function 2019-03-19 17:32:19 -07:00
interpolate_test.go config: parsing of local.foo variables for interpolation 2017-08-21 15:15:25 -07:00
interpolate_walk_test.go config: use ast.TypeUnknown and don't remove computed values 2016-11-09 14:28:15 -08:00
interpolate_walk.go optimization:Merge slices 2017-09-13 21:08:41 +08:00
interpolate.go config: source code ranges for InterpolatedVariable 2017-10-17 07:20:17 -07:00
lang.go remove config/lang, use hashicorp/hil 2016-02-03 13:24:04 -05:00
loader_hcl2_test.go config: HCL2 config loader 2017-10-03 17:47:01 -07:00
loader_hcl2.go hcl2 maps now work 2017-10-27 09:08:15 -04:00
loader_hcl_test.go config: HCL loader 2014-08-11 09:58:53 -07:00
loader_hcl.go add "version" and "provider" to module config 2017-10-27 09:08:15 -04:00
loader_test.go remove raw print statements 2017-11-06 17:10:33 -05:00
loader.go config: Don't panic if config directory contains only overrides 2017-10-23 15:46:15 -07:00
merge_test.go config: merge/append for local values 2017-09-01 17:51:13 -07:00
merge.go optimization:Merge slices 2017-09-13 21:08:41 +08:00
providers.go config: parse provider version constraints into a constraint map 2017-06-09 14:03:59 -07:00
provisioner_enums.go config: parse "when" and "on_failure" on provisioners 2017-01-19 18:10:21 -08:00
raw_config_test.go grammatical updates to comments and docs (#20195) 2019-03-21 14:05:41 -07:00
raw_config.go config: when copying a HCL2 RawConfig, don't corrupt it 2017-10-16 17:52:23 -07:00
resource_mode_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08:00
resource_mode.go config: "ResourceMode" concept for resources 2016-05-14 08:26:35 -07:00
testing.go Use t.Helper() in our test helpers 2017-08-28 09:59:30 -07:00