# `ImagePipe.Source.Origin`
[🔗](https://github.com/hlindset/image_pipe/blob/v0.2.0/image_pipe/lib/image_pipe/source/origin.ex#L1)

Origin cache evidence, kept separately from the source's byte identity.

Validators are used only for upstream conditional requests. A weak origin
ETag never becomes a strong representation ETag. Request header values and
the effective resource URL are digested; raw credentials are not retained.

# `t`

```elixir
@type t() :: %ImagePipe.Source.Origin{
  headers: %{required(String.t()) =&gt; [String.t()]},
  received_at: integer(),
  requested_at: integer(),
  resource: binary(),
  status: integer(),
  vary: %{required(String.t()) =&gt; binary()}
}
```

# `cache_state`

Evaluates current host policy against retained origin evidence.

# `matches?`

Checks origin Vary against effective outbound request headers.

# `validator_headers`

Returns origin validators, preferring ETag to Last-Modified.

---

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