yamlencode
encodes a given value to a string using YAML 1.2 block syntax.
This function maps Terraform language values to YAML tags in the following way:
Terraform type YAML typestring
!!str
number
!!float
or !!int
bool
!!bool
list(...)
!!seq
set(...)
!!seq
tuple(...)
!!seq
map(...)
!!map
object(...)
!!map
Null value !!null
yamlencode
uses the implied syntaxes for all of the above types, so it does not generate explicit YAML tags.
Because the YAML format cannot fully represent all of the Terraform language types, passing the yamlencode
result to yamldecode
will not produce an identical value, but the Terraform language automatic type conversion rules mean that this is rarely a problem in practice.
YAML is a superset of JSON, and so where possible we recommend generating JSON using jsonencode
instead, even if a remote system supports YAML. JSON syntax is equivalent to flow-style YAML and Terraform can present detailed structural change information for JSON values in plans, whereas Terraform will treat block-style YAML just as a normal multi-line string. However, generating YAML may improve readability if the resulting value will be directly read or modified in the remote system by humans.
> yamlencode({"a":"b", "c":"d"})
"a": "b"
"c": "d"
> yamlencode({"foo":[1, 2, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- 2
- 3
> yamlencode({"foo":[1, {"a":"b","c":"d"}, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- "a": "b"
"c": "d"
- 3
yamlencode
always uses YAML's "block style" for mappings and sequences, unless the mapping or sequence is empty. To generate flow-style YAML, use jsonencode
instead: YAML flow-style is a superset of JSON syntax.
jsonencode
is a similar operation using JSON instead of YAML.yamldecode
performs the opposite operation, decoding a YAML string to obtain its represented value.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4