# `Parapet.SLO`
[🔗](https://github.com/szTheory/parapet/blob/v1.0.0/lib/parapet/slo.ex#L1)

Defines a Service-Level Objective (SLO) within Parapet.

> #### Experimental {: .warning}
>
> This module is **experimental** in v1.x. Its API may change in a minor release with a
> single-version notice in CHANGELOG.md. See
> [Stability & Deprecation Policy](stability.html) for details.

# `t`

```elixir
@type t() :: %Parapet.SLO{
  good_events: String.t(),
  name: atom(),
  objective: float(),
  runbook: String.t(),
  total_events: String.t()
}
```

# `all`

Returns all registered SLOs.

# `define`

> This function is deprecated. Use a Parapet.SLO.Provider module instead.

Defines a new SLO and stores it in the application registry.

## Options

  * `:objective` - The target objective percentage (e.g., 99.9).
  * `:good_events` - PromQL string for good events.
  * `:total_events` - PromQL string for total events.
  * `:runbook` - URL to the runbook for this SLO.

Raises `ArgumentError` if required fields are missing.

# `legacy`

# `provider_catalog`

# `provider_slos`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
