# monitor.component-state
The state a status page shows for one component (the API, the website, the
database), from the latest status of each check behind it, in the vocabulary
of Atlassian Statuspage, the de facto standard for public status pages:
| `ComponentState` | Statuspage label | Statuspage API value |
| --- | --- | --- |
| `operational` | Operational | `operational` |
| `degraded` | Degraded performance | `degraded_performance` |
| `partial-outage` | Partial outage | `partial_outage` |
| `major-outage` | Major outage | `major_outage` |
| `maintenance` | Under maintenance | `under_maintenance` |
The values here are kebab-case like the rest of the registry's enums; map
them to Statuspage's snake_case when calling its API.
## The rule, in order
1. `underMaintenance` is true: **maintenance**. Planned work is announced as
such, not reported as an outage.
2. Every check down: **major-outage**. So a component with one check that is
down is a major outage, not a partial one.
3. Some checks down: **partial-outage**.
4. Any check degraded: **degraded**. Degraded checks never add up to an
outage.
5. Otherwise **operational**.
The statuses are validated even under maintenance, so a broken feed fails
loudly instead of hiding behind a maintenance window. To decide whether a
maintenance window is active, see `monitor.maintenance-window`; to combine one
target's probe locations into a single status first, `monitor.check-status`.
## Errors
- `statuses must not be empty`: a component with no checks has no state.
- `unknown check status: X`
- `underMaintenance must be true or false`
## Sources
- Atlassian Support, "Show service status with components":
https://support.atlassian.com/statuspage/docs/show-service-status-with-components/
(the five component statuses: Operational, Degraded performance, Partial
outage, Major outage, Under maintenance).
- Statuspage Status API (component `status` values `operational`,
`degraded_performance`, `partial_outage`, `major_outage`):
https://metastatuspage.com/api