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

Extends `Parapet.SLO.StarterPack.WebSaaS` with Mailglass and Chimeway delivery SLO slices.

Register in one line:

    config :parapet, providers: [Parapet.SLO.StarterPack.DeliverySaaS]

This pack composes the three WebSaaS slices (HTTP availability, login journey, Oban job
success) with the full Mailglass and Chimeway delivery catalogs, giving delivery-sending
teams a coherent first set of SLOs without any hand-written PromQL.

## Conditional Registration

Delivery slices are registered **only when the corresponding host library is loaded**.
If Mailglass is not installed in the host application, Mailglass slices are omitted
cleanly — no error, no dead alert rules. Same for Chimeway. Each guard is independent:
a team using only Mailglass (without Chimeway) gets WebSaaS + Mailglass slices only.

The module itself is always loadable and fully documented regardless of which host
libraries are present, so `mix verify.public_api` always passes.

> #### Stable {: .info}
>
> This module is **stable** as of v1.0.0. Its public API will not change without a
> major-version bump and a full deprecation cycle. See
> [Stability & Deprecation Policy](stability.html) for details.

## Slices (when all host libs present)

- 3 slices from `Parapet.SLO.StarterPack.WebSaaS` (HTTP availability, login journey,
  Oban job success)
- 4 slices from `Parapet.SLO.MailglassDelivery` (submit acceptance, confirmed delivery,
  webhook freshness, suppression drift)
- 3 slices from `Parapet.SLO.ChimewayDelivery` (provider acceptance, callback
  confirmation, callback freshness)

Total: 10 slices when both Mailglass and Chimeway host libraries are loaded.

# `slos`
*since 1.0.0* 

Returns the composite SLO slice list: WebSaaS slices plus any loaded delivery slices.

In production, delivery slices are included only when the corresponding host library
(`Mailglass` or `Chimeway`) is loaded. When a host library is absent, its slices are
omitted cleanly with no error. Register this provider via
`config :parapet, providers: [Parapet.SLO.StarterPack.DeliverySaaS]`.

---

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