terraform/website/docs/configuration/expressions.mdx

122 lines
3.7 KiB
Plaintext

---
page_title: Expressions Landing Page - Configuration Language
---
# Expressions Landing Page
To improve navigation, we've split the old Expressions page into several smaller
pages.
<a id="types-and-values"></a> <a id="advanced-type-details"></a> <a id="type-conversion"></a> <a id="literal-expressions"></a> <a id="indices-and-attributes"></a>
## Types and Values, Literal Expressions, Indices and Attributes
Terraform's types are `string`, `number`, `bool`, `list`, `tuple`, `map`,
`object`, and `null`.
This information has moved to
[Types and Values](/language/expressions/types).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="references-to-named-values"></a> <a id="local-named-values"></a> <a id="named-values-and-dependencies"></a> <a id="references-to-resource-attributes"></a> <a id="local-named-values-1"></a> <a id="values-not-yet-known"></a>
## References to Named Values (Resource Attributes, Variables, etc.)
You can refer to certain values by name, like `var.some_variable` or
`aws_instance.example.ami`.
This information has moved to
[References to Values](/language/expressions/references).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="arithmetic-operators"></a> <a id="equality-operators"></a> <a id="comparison-operators"></a> <a id="logical-operators"></a>
## Arithmetic and Logical Operators
Operators are expressions that transform other expressions, like adding two
numbers (`+`) or comparing two values to get a bool (`==`, `>=`, etc.).
This information has moved to
[Operators](/language/expressions/operators).
<div style={{height: '30vh', margin: 0, padding: 0}} />
## Conditional Expressions
The `condition ? true_val : false_val` expression chooses between two
expressions based on a bool condition.
This information has moved to
[Conditional Expressions](/language/expressions/conditionals).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="expanding-function-arguments"></a> <a id="available-functions"></a>
## Function Calls
Terraform's functions can be called like `function_name(arg1, arg2)`.
This information has moved to
[Function Calls](/language/expressions/function-calls).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="for-expressions"></a>
## `for` Expressions
Expressions like `[for s in var.list : upper(s)]` can transform a complex type
value into another complex type value.
This information has moved to
[For Expressions](/language/expressions/for).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="splat-expressions"></a> <a id="legacy-attribute-only-splat-expressions"></a>
## Splat Expressions
Expressions like `var.list[*].id` can extract simpler collections from complex
collections.
This information has moved to
[Splat Expressions](/language/expressions/splat).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="dynamic-blocks"></a> <a id="best-practices-for-dynamic-blocks"></a>
## `dynamic` Blocks
The special `dynamic` block type serves the same purpose as a `for` expression,
except it creates multiple repeatable nested blocks instead of a complex value.
This information has moved to
[Dynamic Blocks](/language/expressions/dynamic-blocks).
<div style={{height: '30vh', margin: 0, padding: 0}} />
<a id="string-literals"></a> <a id="string-templates"></a> <a id="interpolation"></a> <a id="directives"></a>
## String Literals and String Templates
Strings can be `"double-quoted"` or
```hcl
<<EOT
heredocs
EOT
```
Strings can also include escape sequences like `\n`, interpolation sequences
(`${ ... }`), and template sequences (`%{ ... }`).
This information has moved to
[Strings and Templates](/language/expressions/strings).
<div style={{height: '30vh', margin: 0, padding: 0}} />