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

Behaviour for incident notification adapters.

> #### 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.

# `deliver`
*since 1.0.0* 

```elixir
@callback deliver(incident :: struct(), opts :: keyword()) ::
  {:ok, term()} | {:error, term()}
```

Delivers a notification for the given incident to one adapter.
Implemented by concrete notification adapters (e.g., Slack, Teams).

# `broadcast`
*since 1.0.0* 

Dispatches a notification for the given incident to all configured notifiers.
Uses Oban for async delivery when available; falls back to `Task.start/1`.

# `dispatch`
*since 1.0.0* 

Dispatches a single notification to the given adapter with the provided opts.
Enqueues via Oban when available; otherwise executes in a supervised Task.

---

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