# `Foundation.Retry.Config`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L1)

User-facing retry configuration with sensible defaults.

# `t`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L17)

```elixir
@type t() :: %Foundation.Retry.Config{
  base_delay_ms: pos_integer(),
  enable_retry_logic: boolean(),
  jitter_pct: float(),
  max_connections: pos_integer(),
  max_delay_ms: pos_integer(),
  max_retries: non_neg_integer() | :infinity,
  progress_timeout_ms: pos_integer()
}
```

# `default`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L56)

```elixir
@spec default() :: t()
```

Return the default retry configuration.

# `new`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L39)

```elixir
@spec new(keyword()) :: t()
```

Build a retry configuration.

# `to_handler_opts`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L77)

```elixir
@spec to_handler_opts(t()) :: keyword()
```

Convert to Retry.Handler options.

# `validate!`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/retry/config.ex#L62)

```elixir
@spec validate!(t()) :: t()
```

Validate a retry configuration, raising on invalid values.

---

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