---
page_title: Resources Landing Page - Configuration Language
---

# Resources Landing Page

To improve navigation, we've split the old Resources page into several smaller
pages.

<a id="resource-syntax"></a> <a id="resource-types"></a> <a id="providers"></a> <a id="resource-arguments"></a> <a id="documentation-for-resource-types"></a> <a id="meta-arguments"></a> <a id="timeouts"></a> <a id="operation-timeouts"></a>

## Syntax and Elements of Resource Blocks

This information has moved to
[Resource Blocks](/language/resources/syntax).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="resource-behavior"></a> <a id="accessing-resource-attributes"></a> <a id="resource-dependencies"></a> <a id="local-only-resources"></a>

## Details of Resource Behavior

This information has moved to
[Resource Behavior](/language/resources/behavior).

<div style={{height: '100vh', margin: 0, padding: 0}} />

## Resource Meta-Arguments

Each resource meta-argument has moved to its own page:

- [`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)
- [`lifecycle`](/language/meta-arguments/lifecycle)
- [Provisioners](/language/resources/provisioners)

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="depends_on-explicit-resource-dependencies"></a>

### `depends_on`

This information has moved to
[`depends_on`](/language/meta-arguments/depends_on).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="count-multiple-resource-instances-by-count"></a> <a id="count-multiple-resource-instances"></a> <a id="the-count-object"></a> <a id="count-index"></a> <a id="referring-to-instances"></a> <a id="using-expressions-in-count"></a> <a id="when-to-use-for_each-instead-of-count"></a>

### `count`

This information has moved to
[`count`](/language/meta-arguments/count).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="for_each-multiple-resource-instances-defined-by-a-map-or-set-of-strings"></a> <a id="the-each-object"></a> <a id="each-key"></a> <a id="each-value"></a> <a id="using-expressions-in-for_each"></a> <a id="referring-to-instances-1"></a> <a id="using-sets"></a>

### `for_each`

This information has moved to
[`for_each`](/language/meta-arguments/for_each).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="provider-selecting-a-non-default-provider-configuration"></a>

### `provider`

This information has moved to
[`provider`](/language/meta-arguments/resource-provider).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="lifecycle-lifecycle-customizations"></a> <a id="prevent_destroy"></a> <a id="create_before_destroy"></a> <a id="ignore_changes"></a>

### `lifecycle`

This information has moved to
[`lifecycle`](/language/meta-arguments/lifecycle).

<div style={{height: '100vh', margin: 0, padding: 0}} />

<a id="provisioner-and-connection-resource-provisioners"></a>

### Provisioners

This information has moved to
[Provisioners](/language/resources/provisioners).

<div style={{height: '100vh', margin: 0, padding: 0}} />
