# `MailglassInbound.InboundRecords.ReplayRun`
[🔗](https://github.com/szTheory/mailglass/blob/v0.1.0/lib/mailglass_inbound/inbound_records/replay_run.ex#L1)

Append-only replay execution history row.

Replay runs always point back to the original canonical inbound record and the
stored evidence row they reprocessed, so they cannot be mistaken for a fresh
provider receive.

# `outcome`

```elixir
@type outcome() :: :accept | :ignore | :reject | :bounce | :failed
```

# `t`

```elixir
@type t() :: %MailglassInbound.InboundRecords.ReplayRun{
  __meta__: term(),
  executed_at: DateTime.t() | nil,
  failure: map(),
  id: Ecto.UUID.t() | nil,
  inbound_evidence: term(),
  inbound_evidence_id: Ecto.UUID.t() | nil,
  inbound_record: term(),
  inbound_record_id: Ecto.UUID.t() | nil,
  inserted_at: DateTime.t() | nil,
  mailbox: String.t() | nil,
  metadata: map(),
  outcome: outcome() | nil,
  outcome_reason: String.t() | nil,
  replay_id: String.t() | nil,
  tenant_id: String.t() | nil,
  updated_at: DateTime.t() | nil
}
```

# `changeset`

```elixir
@spec changeset(map()) :: Ecto.Changeset.t()
```

---

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