# `ReqManagedAgents.Evidence.Capture`
[🔗](https://github.com/cash-mckeeman/req_managed_agents/blob/v0.13.0/req_managed_agents/lib/req_managed_agents/evidence/capture.ex#L1)

Versioned private evidence, validated as one capture before serialization.

# `t`

```elixir
@type t() :: %ReqManagedAgents.Evidence.Capture{
  capture_id: String.t(),
  correlations: [ReqManagedAgents.Evidence.Correlation.t()],
  diagnostics: [ReqManagedAgents.Evidence.Diagnostic.t()],
  ended_at: DateTime.t(),
  provider: :managed | :agentcore,
  records: [ReqManagedAgents.Evidence.Record.t()],
  session_id: String.t() | nil,
  sources: [ReqManagedAgents.Evidence.Source.t()],
  started_at: DateTime.t(),
  version: 1
}
```

# `new`

```elixir
@spec new(map(), keyword() | ReqManagedAgents.Evidence.Options.t()) ::
  {:ok, t()} | {:error, ReqManagedAgents.Evidence.Error.t()}
```

Validates identities and references, then applies retention and aggregate bounds.

---

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