# Bunnyx v0.3.0 - Table of Contents

Elixir client for the bunny.net API.

## Pages

- [Bunnyx](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- CDN
  - [Bunnyx.PullZone](Bunnyx.PullZone.md): Pull zones are bunny.net's CDN distribution points. Each pull zone pulls content
from your origin server and caches it across their global edge network.
  - [Bunnyx.Purge](Bunnyx.Purge.md): Cache purging. When you update content at your origin, the CDN keeps serving the
old cached version until it expires. Purging forces edge servers to fetch the new
version immediately.
  - [Bunnyx.Statistics](Bunnyx.Statistics.md): Account-wide statistics — bandwidth, cache hit rates, requests, origin traffic,
and error breakdowns.

- DNS
  - [Bunnyx.DnsRecord](Bunnyx.DnsRecord.md): DNS records within a zone. Records are nested under a `Bunnyx.DnsZone` — all
operations require the parent zone's ID.
  - [Bunnyx.DnsZone](Bunnyx.DnsZone.md): DNS zones. bunny.net can host your domain's DNS alongside its CDN. A zone
represents a domain and contains DNS records managed through `Bunnyx.DnsRecord`.

- Storage
  - [Bunnyx.S3](Bunnyx.S3.md): S3-compatible storage client for bunny.net. Uses AWS Signature V4 signing
via Req's built-in `put_aws_sigv4` step — no additional dependencies.
  - [Bunnyx.Storage](Bunnyx.Storage.md): Edge storage lets you store and serve files directly from bunny.net's network,
without needing your own origin server.
  - [Bunnyx.StorageZone](Bunnyx.StorageZone.md): Storage zones are the containers that hold files served through bunny.net's edge
storage network. This module manages storage zones through the main API — creating,
configuring, and deleting them.

- Stream
  - [Bunnyx.Stream](Bunnyx.Stream.md): Stream video management. Upload, manage, and deliver videos through bunny.net's
Stream platform.
  - [Bunnyx.VideoLibrary](Bunnyx.VideoLibrary.md): Stream video libraries. A video library is a container for videos that handles
encoding, storage, and delivery through bunny.net's Stream platform.

- Security
  - [Bunnyx.Shield](Bunnyx.Shield.md): Bunny Shield — WAF, rate limiting, bot detection, and access control for
pull zones. A Shield zone wraps a pull zone with security configuration.

- Compute
  - [Bunnyx.EdgeScript](Bunnyx.EdgeScript.md): Edge scripting — deploy and manage JavaScript/TypeScript code at the edge.
  - [Bunnyx.MagicContainers](Bunnyx.MagicContainers.md): Magic Containers — deploy and manage containerized applications at bunny.net's edge.

- Account
  - [Bunnyx.Account](Bunnyx.Account.md): Account-level operations — affiliate details, audit logs, global search,
and account management.
  - [Bunnyx.ApiKey](Bunnyx.ApiKey.md): API key management. Lists the API keys associated with your account.
  - [Bunnyx.Billing](Bunnyx.Billing.md): Account billing details and per-zone usage summaries.
  - [Bunnyx.Logging](Bunnyx.Logging.md): CDN access logs and origin error logs.

- Reference
  - [Bunnyx.Country](Bunnyx.Country.md): Countries and their associated tax rates. Useful for configuring geo-blocking
on pull zones.
  - [Bunnyx.Region](Bunnyx.Region.md): Edge regions available on the bunny.net network. Useful for understanding
pricing and geographic distribution.

- Core
  - [Bunnyx](Bunnyx.md): Elixir client for the bunny.net API.
  - [Bunnyx.Error](Bunnyx.Error.md): Error struct returned by all Bunnyx API calls.
  - [Bunnyx.HTTP](Bunnyx.HTTP.md): Low-level HTTP layer. All API modules go through `request/4` — they never
call Req directly. You shouldn't need to use this module unless you're
extending Bunnyx with unsupported endpoints.
  - [Bunnyx.Params](Bunnyx.Params.md): Shared helpers for converting snake_case attrs to API-format maps.

- Structs
  - [Bunnyx.MagicContainers.App](Bunnyx.MagicContainers.App.md): A Magic Containers application. Maps camelCase API fields to snake_case.
  - [Bunnyx.Shield.Zone](Bunnyx.Shield.Zone.md): A Shield zone configuration. Maps camelCase API fields to snake_case Elixir fields.

  - [Bunnyx.Storage.Object](Bunnyx.Storage.Object.md): File or directory entry returned by `Bunnyx.Storage.list/2`.
  - [Bunnyx.Stream.Collection](Bunnyx.Stream.Collection.md): A collection in a Stream library. Collections organize videos into groups.

  - [Bunnyx.Stream.Video](Bunnyx.Stream.Video.md): A video in a Stream library. Maps camelCase API fields to snake_case Elixir fields.

