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

CDN configuration struct.

## Fields

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `endpoint` | `String.t()` | Yes | CDN domain URL |
| `provider` | `:cloudfront` | `:qiniu` | Yes | CDN provider |
| `module` | `module()` | Yes | Resolved CDN adapter module |
| `aws_key_id` | `String.t()` | CloudFront | Key pair ID |
| `aws_private_key` | `String.t()` | CloudFront | RSA private key (PEM) |

## Example

    cdn: [
      provider: :cloudfront,
      endpoint: "https://d123456789.cloudfront.net",
      aws_key_id: "K2XXXXXXXXXXXXX",
      aws_private_key: "-----BEGIN RSA PRIVATE KEY-----\n..."
    ]

# `t`

```elixir
@type t() :: %ExOss.Client.CDN{
  aws_key_id: String.t() | nil,
  aws_private_key: String.t() | nil,
  endpoint: String.t(),
  module: module() | nil,
  provider: :cloudfront | :qiniu
}
```

---

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