--- description: >- Resources describe infrastructure objects in OpenTofu configurations. Find documentation for resource syntax, behavior, and meta-arguments. --- # Resources _Resources_ are the most important element in the OpenTofu language. Each resource block describes one or more infrastructure objects, such as virtual networks, compute instances, or higher-level components such as DNS records. This section discusses the main kind of resource, known as a "managed resource", which represents an infrastructure object managed by OpenTofu. - [Resource Blocks](../../language/resources/syntax.mdx) documents the syntax for declaring resources. - [Resource Behavior](../../language/resources/behavior.mdx) explains in more detail how OpenTofu handles resource declarations when applying a configuration. - The Meta-Arguments section documents special arguments that can be used with any managed resource type, including [`depends_on`](../../language/meta-arguments/depends_on.mdx), [`count`](../../language/meta-arguments/count.mdx), [`for_each`](../../language/meta-arguments/for_each.mdx), [`provider`](../../language/meta-arguments/resource-provider.mdx), and [`lifecycle`](behavior.mdx#lifecycle-customizations). - [Provisioners](provisioners/syntax.mdx) are post-creation actions for a resource using the `provisioner` and `connection` blocks. Since provisioners are non-declarative and potentially unpredictable, we strongly recommend that you treat them as a last resort. There are two other kinds of resources that play different roles within an OpenTofu configuration: - [Data resources](../../language/data-sources/index.mdx) declare that a configuration depends on information read from a data source outside of the configuration. - [Ephemeral resources](../../language/ephemerality/ephemeral-resources.mdx) declare transient objects that are opened only for the duration of a single OpenTofu phase, such as temporary session credentials.