> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formae.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Resources

> The infrastructure formae manages, and the difference between managed and unmanaged resources.

A resource is an infrastructure component: a bucket, a compute instance, a
database, or any other cloud service. Resources are what formae ultimately
creates, updates, and deletes on your behalf.

Every resource formae knows about is either **managed** or **unmanaged**. The
distinction is simply whether formae controls the resource or only observes it.

## Managed resources

A resource is **managed** once formae controls it. When you
[apply](/documentation/reference/cli) a forma, formae reconciles each
declared resource so its actual state matches what the forma says it should be.

A resource becomes managed in one of two ways:

* You declare it in a forma and apply it.
* An existing resource is [discovered](/documentation/concepts/discovery) and you
  bring it under management.

Managed resources can reference one another with `.res`, which declares a
dependency: formae waits for the referenced value to exist before applying the
resource that needs it, so you never order resources by hand. See
[Resolvable](/documentation/concepts/resolvable) for how this works.

## Unmanaged resources

An **unmanaged** resource exists in your cloud but was not created through formae.
formae tracks it so you have visibility, but does not modify it. Unmanaged
resources are **read-only**: formae will not update or delete them until you
choose to manage them.

Unmanaged resources are surfaced by [Discovery](/documentation/concepts/discovery),
which periodically scans your cloud accounts for resources that are not yet in
formae's inventory. You can then decide which ones to bring under management.

## Why the distinction exists

Keeping unmanaged resources visible without touching them lets formae fit into an
environment you already run:

* Adopt formae gradually in an existing account.
* Operate alongside Terraform, Pulumi, or other tools.
* Keep visibility across everything, including resources you have not chosen to
  manage.
* Transition resources to managed selectively, on your own timeline.

Discovery identifies resources; you decide which ones to manage.

## See also

* [Discovery](/documentation/concepts/discovery): how formae finds resources that
  were not created through it.
* [Resolvable](/documentation/concepts/resolvable): the `.res` mechanism behind
  resource references.
* [Stack](/documentation/concepts/stack): how resources are grouped for lifecycle
  management.
