# Resources

> How ZopNight discovers, organises, and shows your cloud resources across AWS, GCP, and Azure.

Source: https://zop.dev/docs/zopnight/concepts/resources

---

Every other feature in ZopNight (schedules, recommendations, reports, autoscaling) reads from one shared resource inventory. This page covers what gets discovered, how to find a resource, and what you can do with it.

![Resources inventory table with name, type, region, tags, month-to-date cost, purchase type (On-Demand / Spot), and running status with per-row start/stop toggles, plus account, schedulable, status, type, and region filters](https://storage.googleapis.com/zopdev-blog-resources/1/files/originals/20260707/0a5a2a06-e0b6-4321-a991-f5e2fbf5eacb-resources.png)

*The Resources inventory; every resource with type, region, cost, purchase type, and status, with cascade filters and per-row start/stop.*

## What gets discovered

When you connect a cloud account, ZopNight sweeps every region and pulls back the full resource list.

| Provider | Method | Coverage |
|---|---|---|
| **AWS** | Resource Explorer 2 + per-service providers | 190+ resource types |
| **GCP** | Cloud Asset Inventory | 80+ resource types |
| **Azure** | Resource Graph | 100+ resource types |

Discovery runs on a periodic cron and picks up new or deleted resources automatically. You can also trigger a manual refresh from **Settings → Cloud accounts → Refresh**.

**Note**

For storage and registry resources (S3, GCS, Artifact Registry), ZopNight enriches each row with size in GB and object/image count after the initial sweep. The first refresh after connecting a bucket may take a minute to populate these fields.

## Parent-child hierarchy

A lot of cloud resources are not flat; a Kubernetes cluster has node groups, an ECS cluster has services, an S3 bucket has objects, a Databricks workspace has clusters and SQL warehouses. ZopNight discovers these as parent-child trees up to three levels deep.

The default Resources view shows **parent resources only** with a child count badge. Click the badge to drill into the children. Breadcrumbs at the top of the page let you navigate back up.

**Tip**

Search overrides the parent view. Type a name in the search box and ZopNight searches every resource at every level, not just parents.

## Filters

Filters are scoped to the current view. If you're in the children view of an EKS cluster, the **Type** filter only shows resource types relevant to that cluster's children (Deployments, StatefulSets, CronJobs, etc.).

**Cloud account**

    Grouped by provider with checkboxes. Tick multiple accounts to filter across them. Selecting every account under a provider sends a provider-wide filter; partial selections send per-account IDs.

**Type**

    Resource types are grouped into nine categories: Compute, Kubernetes, Serverless, Database, Storage, Networking, Data & Analytics, ML & AI, Messaging. Tick a category to select all types under it.

**Status**

    Running, Stopped, or Transitioning.

**Region**

    Narrowed automatically to regions the selected accounts actually use.

Filters cascade. Selecting an account narrows the available types, statuses, and regions to what that account actually has. This keeps the dropdowns clean and stops you from filtering yourself into a no-results state.

## Manual start and stop

Every resource that supports start/stop has direct controls in the row menu. Use this for one-off changes outside of any schedule.

**Find the resource**

  Search by name or UID, or filter down to it.

**Open the row menu**

  Click the ⋯ menu on the right of the row.

**Pick Start or Stop**

  ZopNight asks you to confirm before running the action. The triggered action shows up in the action status drawer so you can watch it process and complete.

**Warning**

Manual start/stop bypasses any attached schedule for that one action only. The schedule continues to fire at the next cron trigger. If you want to *prevent* the schedule from changing state, use an **Override** instead; see [Overrides](https://zop.dev/docs/zopnight/concepts/overrides).

## Bulk actions

Tick the checkbox on multiple rows to bring up the bulk action banner. Bulk start/stop runs through a worker pool (four workers at a time) so a large batch doesn't hammer the cloud APIs.

## Resource details

Click any resource row to open the detail drawer. It shows:

- **Metadata**: name, type, region, status, cloud account, instance type, size, tags
- **Recent activity**: control-plane events ZopNight pulled from CloudTrail / Cloud Logging / Azure Activity Log
- **Ownership**: who created the resource and who last modified it, with an active/departed badge resolved from your cloud identity directory
- **Schedule**: which schedule (if any) is attached
- **Recommendations**: open recommendations targeting this resource
- **Cost**: current and historical cost, reconciled to your billing data; until a resource's billing line has landed, the rack-rate calculator provides a pre-bill estimate that is then reconciled to the actual line item

## Refreshing after infrastructure changes

If you just added a new cloud account, provisioned new infrastructure, or expect a resource to be there that isn't, force a discovery refresh from the cloud account card. The action status drawer shows when discovery completes so you don't act on stale data.

**Note**

Discovery failures don't block the rest of the UI. If a single provider returns a permission error in one region, ZopNight records it against the cloud account and continues with the rest. See the per-account **Permissions** drawer on the cloud accounts page to see exactly which resource types succeeded and which failed.
