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.
:::