stackql-deploy 2.0.6

Infrastructure-as-code framework for declarative cloud resource management using StackQL
import File from '@site/src/components/File';
import LeftAlignedTable from '@site/src/components/LeftAlignedTable';

<LeftAlignedTable type="string" required={true} />

The name of the resource. This value is automatically exposed as the built-in variable `resource_name` during processing, making it available in property values and query templates for the current resource.

<File name='stackql_manifest.yml'>

```yaml {2}
resources:
- name: network
...
```

</File>

:::tip

You can reference the current resource's name using `{{ resource_name }}` in property values or query templates. See [Built-in variables](../../../manifest-file#name) for more details.

:::

:::warning Resource names must be unique

Every resource name in a stack must be **unique**.  Duplicate names are rejected at load time before any command (`build`, `plan`, `teardown`, `test`) is executed.

This requirement exists because resource names are used as a namespace prefix for exports.  When a resource named `my_role` exports `role_name`, the fully-qualified key `my_role.role_name` is written once and never overwritten.  A second resource with the name `my_role` would conflict with those immutable scoped export keys.

See [resource.exports](./exports#export-scoping) for more details on export scoping.

:::