---
page_title: provider::terraform::encode_tfvars - Functions - Configuration Language
description: >-
  The encode_tfvars function produces a string representation of an object
  using the same syntax as for ".tfvars" files used in Terraform CLI.
---

# `provider::terraform::encode_tfvars` Function

-> **Note:** This function is supported only in Terraform v1.8 and later.

`provider::terraform::encode_tfvars` is a rarely-needed function which takes
an object value and produces a string containing a description of that object
using the same syntax as Terraform CLI would expect in a
[`.tfvars` file](/terraform/language/values/variables#variable-definitions-tfvars-files).

In most cases it's better to pass data between Terraform configurations using
[Data Sources](/terraform/language/data-sources),
instead of writing generated `.tfvars` files to disk. Use this function only as
a last resort.

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::encode_tfvars({
  example = "Hello!"
})
```

The call above would produce the following result:

```hcl
example = "Hello!"
```

Due to Terraform's requirements for the `.tfvars` format, all of the attributes
of the given object must be valid Terraform variable names, as would be
accepted in an
[input variable declaration](/terraform/language/values/variables#declaring-an-input-variable).

The `.tfvars` format is specific to Terraform and so we do not recommend using
it as a general serialization format.
Use [`jsonencode`](/terraform/language/functions/jsonencode) or
[`yamlencode`](/terraform/language/functions/yamlencode) instead to produce
formats that are supported by other software.

~> **Warning:** The exact syntax used to encode certain values may change
in future versions of Terraform to follow idiomatic style. Avoid using the
results of this function in any context where such changes might be disruptive
when upgrading Terraform in future.

## Related Functions

* [`decode_tfvars`](/terraform/language/functions/terraform-decode_tfvars)
  performs the opposite operation: parsing `.tfvars` content to obtain
  the variable values declared inside.
* [`encode_expr`](/terraform/language/functions/terraform-encode_expr)
  encodes a single value as a plain expression, without the `.tfvars`
  container around it.
