Although maps and objects are similar, maps require that all values be of the same type while objects can allow different values to have their own type.
This function does not restrict itself to maps- the examples themselves include cases where both strings and lists are passed through, making this an object and not a map.
Previously, there was mixed usage of "(sensitive)" and "(sensitive value)" and even though it was more common to see "(sensitive)", the thought is that it's a value we are hiding rather than describing something already shown.
We originally included this warning because the go-cty-yaml module wasn't
yet stable and it was also not extensively tested so it wasn't yet clear
if its behavior would need to change in some less common cases we hadn't
tested so far.
However, go-cty-yaml had its v1.0.0 release some time ago and is now
committed to preserving its current Marshal output unless it is found to
be non-compliant with the YAML 1.2 specification. This doc change means
that Terraform's yamlencode is now adopting a similar posture:
- The exact style details produced by the function for a particular input
are now frozen. It'll change only if we find that the function is
producing output that isn't valid per the YAML spec.
- If someone finds a YAML parser that cannot parse what yamlencode
produces but what it produces is valid per the YAML 1.2 spec, we'll
expect the parser to be corrected to better support the spec rather
than changing the yamlencode output.
There may be pragmatic exceptions if we encounter a situation we cannot
anticipate yet, but the above will be our general rule. This is really
just a specialization of the spirit of the v1.x Compatibility Promises,
tailored specifically to this function.
This is a complement to "timestamp" and "timeadd" which allows
establishing the ordering of two different timestamps while taking into
account their timezone offsets, which isn't otherwise possible using the
existing primitives in the Terraform language.
The existing description for the '-' symbol as use in format() stated that the result would padded spaces to the left. When tested in via 'terraform console' using format("%-10.1f", 3) the result was "3.0 "
Terraform v1.1.7
Fix output in `toset`
```
toset(["a", "b", 3])
toset([
"3",
"a",
"b",
])
```
This is the actual output from the tf console, using Terraform v1.1.5 on windows_amd64