# 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