open-nomad/website/pages/docs/job-specification/hcl2/functions/conversion/convert.mdx
Mahmood Ali d1e139c3fb
Docs for HCL2 (#9322)
Add more detailed HCL2 docs, mostly lifted from Packer with tweaks for Nomad.

The function docs are basically verbatim taken from Packer with basic string substitutions. I commented out some for_each details as the examples are mostly driven towards Packer resources. I'll iterate on those with better Nomad examples.
2020-11-29 20:36:41 -05:00

55 lines
1.2 KiB
Plaintext

---
layout: docs
page_title: convert - Functions - Configuration Language
sidebar_title: convert
description: 'The convert function converts a value or an expression to a given type. '
---
# `convert` Function
`convert` converts a value or an expression to a given type.
Explicit type conversions are rarely necessary in HCL because it will convert
types automatically where required. Use the explicit type conversion functions
only to normalize types returned in outputs.
Only numbers and strings containing decimal representations of numbers can be
converted to number. All other values will produce an error.
Only boolean values and the exact strings "true" and "false" can be converted
to boolean. All other values will produce an error.
Only the primitive types (string, number, and bool) can be converted to string.
All other values will produce an error.
`convert(value, type_constraint)`
## Examples
```shell-session
> convert(3, string)
"3"
> convert("3", number)
3
> convert("false", bool)
false
> convert(false, string)
"false"
> convert(["a", "b", 3], list)
[
"a",
"b",
"3",
]
> convert(["c", "b", "b"], set)
[
"b",
"c",
]
> convert({"a" = "foo", "b" = true}, map)
{
"a" = "foo"
"b" = "true"
}
```