| --- |
| page_title: Syntax Overview - Configuration Language |
| description: >- |
| Terraform language syntax for both the native and JSON variants. Also learn |
| formatting conventions that you can enforce with terraform fmt. |
| --- |
| |
| # Syntax |
| |
| The majority of the Terraform language documentation focuses on the practical |
| uses of the language and the specific constructs it uses. The pages in this |
| section offer a more abstract view of the Terraform language. |
| |
| - [Configuration Syntax](/language/syntax/configuration) describes the native |
| grammar of the Terraform language. |
| - [JSON Configuration Syntax](/language/syntax/json) documents |
| how to represent Terraform language constructs in the pure JSON variant of the |
| Terraform language. Terraform's JSON syntax is unfriendly to humans, but can |
| be very useful when generating infrastructure as code with other systems that |
| don't have a readily available HCL library. |
| - [Style Conventions](/language/syntax/style) documents some commonly |
| accepted formatting guidelines for Terraform code. These conventions can be |
| enforced automatically with [`terraform fmt`](/cli/commands/fmt). |