docs/glossary.md
This document is intended for anyone who wants to gain more knowledge about the terms and vocabulary used to talk about different concepts in OpenTofu.
[!NOTE] This was created with the intent of gathering more knowledge over time. The state that you find this in right now could be incomplete. Once you discover and learn about a new concept that would benefit others, feel free to open a PR to update this.
[!NOTE] When adding new content to this document, try to place it in such a way to match the alphabetical order of the already existing content.
Optionally, also add a reference link if possible (GitHub conversation, issue, other docs, etc).
It is recommended to avoid using popular programming language terms such as "field" or "property" to describe an element of an object in OpenTofu.
Reference: link
data, and the associated object it declares.data block header, and the associated declarations and code for it in the provider plugin.Reference: link
"Diagnostic" is the general term we use to describe the error or warning message that OpenTofu returns when there are problems with the configuration, or when interactions with external systems fail.
Reference: link
OpenTofu uses cty.Value to represent the result of expressions (and other data). Occasionally, we will want to annotate that data with additional properties, without actually modifying the underlying value. Marks are used for that purpose and are the preferred method of doing so with go-cty.
resource, data or ephemeral block.count, for_each, or enabled arguments.aws_instance is a "resource type".It is recommended to use the following terms when discussing about "resource" blocks:
resource "type" "name" {}data "type" "name" {}ephemeral "type" "name" {}Reference: link
timestamp, bcrypt and uuid.A set of already known functions, input values, local values, resources, etc. that is used to evaluate an expression that can reference any of the concepts listed above.
The list of concepts above, in the context of HCL evaluation, are called variables.
An expression is any right hand side of an assignment that will be evaluated to generate the value that will be associated with key on the left hand side of the assignment. The simplest expressions are just literal values, like "hello" or 5, but the OpenTofu language also allows more complex expressions such as references to data exported by resources, arithmetic, conditional evaluation, and a number of built-in and provider-defined functions.
Reference: link
Anything that's available to refer to in the current evaluation context.