---
page_title: Resources Overview - Configuration Language
description: >-
  Resources describe infrastructure objects in Terraform configurations. Find
  documentation for resource syntax, behavior, and meta-arguments.
---

# Resources

> **Hands-on:** Try the [Terraform: Get Started](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.

_Resources_ are the most important element in the Terraform language.
Each resource block describes one or more infrastructure objects, such
as virtual networks, compute instances, or higher-level components such
as DNS records.

- [Resource Blocks](/language/resources/syntax) documents
  the syntax for declaring resources.

- [Resource Behavior](/language/resources/behavior) explains in
  more detail how Terraform handles resource declarations when applying a
  configuration.

- The Meta-Arguments section documents special arguments that can be used with
  every resource type, including
  [`depends_on`](/language/meta-arguments/depends_on),
  [`count`](/language/meta-arguments/count),
  [`for_each`](/language/meta-arguments/for_each),
  [`provider`](/language/meta-arguments/resource-provider),
  and [`lifecycle`](/language/meta-arguments/lifecycle).

- [Provisioners](/language/resources/provisioners/syntax)
  documents configuring 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.
