# `LLMProxy.Providers.Attempt`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy/providers/attempt.ex#L1)

Normalized provider deployment attempt used by routing, fallback, cache keys, and circuit breakers.

# `t`

```elixir
@type t() :: %LLMProxy.Providers.Attempt{
  cooldown_ms: pos_integer(),
  failure_threshold: pos_integer(),
  metadata: map(),
  model: String.t(),
  provider: module(),
  provider_name: String.t(),
  timeout_ms: pos_integer() | nil,
  token_pool: String.t() | nil
}
```

# `key`

```elixir
@spec key(t()) :: {String.t(), String.t()}
```

# `new`

```elixir
@spec new(LLMProxy.Catalog.Deployment.t() | {module(), String.t()} | t()) :: t()
```

---

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