blob: 6bd7d6c8c436a0d2bd8924211f08196f9393f1d4 [file] [log] [blame]
---
page_title: provider::terraform::decode_tfvars - Functions - Configuration Language
description: >-
The decode_tfvars function parses a string containing syntax like that used
in a ".tfvars" file.
---
# `provider::terraform::decode_tfvars` Function
-> **Note:** This function is supported only in Terraform v1.8 and later.
`provider::terraform::decode_tfvars` is a rarely-needed function which takes
a string containing the content of a
[`.tfvars` file](/terraform/language/values/variables#variable-definitions-tfvars-files)
and returns an object describing the raw variable values it defines.
To use this function, your module must declare a dependency on the built-in
`terraform` provider, which contains this function:
```hcl
terraform {
required_providers {
terraform = {
source = "terraform.io/builtin/terraform"
}
}
}
```
Elsewhere in your module you can then call this function:
```hcl
provider::terraform::decode_tfvars(
<<EOT
example = "Hello!"
EOT
)
```
The call above would produce an object value like the following:
```hcl
{
example = "Hello!"
}
```
## Result Types
When interpreting a `.tfvars` file, Terraform CLI normally uses the variable
declarations from the related module to find a target type to convert the
definitions for use in the module.
`tfvarsdecode` does not have access to that type information, and so the result
always uses the most general type that a particular syntax could represent.
The supported value types for attributes of the result are:
* `string`, `number`, and `bool`
* `object` types
* `tuple` types
If you need to interpret object or tuple values as collection types, use
the type conversion functions to convert the returned values. There is no way
to represent list, set, or map values directly in the `.tfvars` format.
## Related Functions
* [`encode_tfvars`](/terraform/language/functions/terraform-encode_tfvars)
performs the opposite operation: producing `.tfvars` content from an
object value.