# `ExOss.Client`
[🔗](https://github.com/choice-form/ex_oss/blob/main/lib/ex_oss/client.ex#L1)

Client builder for runtime configuration.

Use `new/1` to create a client, or `new/2` to merge options into an existing client.

## Example

    client = ExOss.Client.new(
      provider: :aws,
      access_key_id: "...",
      secret_access_key: "...",
      bucket: "my-bucket"
    )

    # Merge options
    other = ExOss.Client.new(client, bucket: "other-bucket")

See `ExOss.Client.Client` for all available options.

# `t`

```elixir
@type t() :: ExOss.Client.Client.t()
```

# `new`

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

Creates a new client with the given options.

# `new`

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

Creates a new client by merging options into an existing client.

Note: `provider` cannot be overridden.

---

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