# UnifiApi v0.4.0 - Table of Contents

> Elixir client for UniFi Dream Machine APIs (Network & Protect)

## Pages

- [UnifiApi](readme.md)
- [Changelog](changelog.md)
- [Upgrading](upgrading.md)
- [LICENSE](license.md)

## Modules

- [UnifiApi.Error](UnifiApi.Error.md): The error umbrella.
- [UnifiApi.Resource](UnifiApi.Resource.md): Shared plumbing for the endpoint modules.

- Core
  - [UnifiApi](UnifiApi.md): Elixir client for UniFi Dream Machine APIs (Network & Protect).
  - [UnifiApi.Client](UnifiApi.Client.md): HTTP client wrapper for UniFi API requests.

- Network DPI
  - [UnifiApi.DPI.Names](UnifiApi.DPI.Names.md): Pure helper for annotating UniFi DPI stats with human-readable
category and application names.

- Network API
  - [UnifiApi.Network.ACL](UnifiApi.Network.ACL.md): UniFi Network API — ACL rule management.
  - [UnifiApi.Network.Clients](UnifiApi.Network.Clients.md): UniFi Network API — connected clients.
  - [UnifiApi.Network.DNS](UnifiApi.Network.DNS.md): UniFi Network API — DNS policy management.
  - [UnifiApi.Network.Devices](UnifiApi.Network.Devices.md): UniFi Network API — device management.
  - [UnifiApi.Network.Firewall](UnifiApi.Network.Firewall.md): UniFi Network API — firewall zones and policies.
  - [UnifiApi.Network.Hotspot](UnifiApi.Network.Hotspot.md): UniFi Network API — hotspot voucher management.
  - [UnifiApi.Network.Info](UnifiApi.Network.Info.md): UniFi Network API — system information.
  - [UnifiApi.Network.Networks](UnifiApi.Network.Networks.md): UniFi Network API — network configuration.
  - [UnifiApi.Network.Resources](UnifiApi.Network.Resources.md): UniFi Network API — supporting resources.
  - [UnifiApi.Network.Sites](UnifiApi.Network.Sites.md): UniFi Network API — site management.
  - [UnifiApi.Network.TrafficMatching](UnifiApi.Network.TrafficMatching.md): UniFi Network API — traffic matching lists.
  - [UnifiApi.Network.Wifi](UnifiApi.Network.Wifi.md): UniFi Network API — WiFi broadcasts.

- Network API (Operational, v1)
  - [UnifiApi.Network.ActiveLeases](UnifiApi.Network.ActiveLeases.md): UniFi Network API (v2) — active DHCP leases.
  - [UnifiApi.Network.Alarms](UnifiApi.Network.Alarms.md): UniFi Network API (v1) — alarms.
  - [UnifiApi.Network.Anomalies](UnifiApi.Network.Anomalies.md): UniFi Network API (v1) — anomalies.
  - [UnifiApi.Network.ClientsHistory](UnifiApi.Network.ClientsHistory.md): UniFi Network API (v2) — client history.
  - [UnifiApi.Network.ClientsLive](UnifiApi.Network.ClientsLive.md): UniFi Network API (v1) — live wireless client statistics.
  - [UnifiApi.Network.DPI](UnifiApi.Network.DPI.md): UniFi Network API (v1) — deep packet inspection statistics.
  - [UnifiApi.Network.Dashboard](UnifiApi.Network.Dashboard.md): UniFi Network API (v2) — aggregated dashboard.
  - [UnifiApi.Network.Events](UnifiApi.Network.Events.md): UniFi Network API (v1) — site events.
  - [UnifiApi.Network.IDS](UnifiApi.Network.IDS.md): UniFi Network API (v1) — IDS / IPS detections.
  - [UnifiApi.Network.PortAnomalies](UnifiApi.Network.PortAnomalies.md): UniFi Network API (v2) — switch port anomalies.
  - [UnifiApi.Network.PortForward](UnifiApi.Network.PortForward.md): UniFi Network API (v1) — port-forward rules.
  - [UnifiApi.Network.RogueAP](UnifiApi.Network.RogueAP.md): UniFi Network API (v1) — neighbouring / rogue access points.
  - [UnifiApi.Network.SystemLog](UnifiApi.Network.SystemLog.md): UniFi Network API (v2) — system log.
  - [UnifiApi.Network.Topology](UnifiApi.Network.Topology.md): UniFi Network API (v2) — site topology graph.
  - [UnifiApi.Network.Traffic](UnifiApi.Network.Traffic.md): UniFi Network API (v2) — traffic time series.
  - [UnifiApi.Network.UPS](UnifiApi.Network.UPS.md): UniFi Network API (v1) — UPS devices.
  - [UnifiApi.Network.WAN](UnifiApi.Network.WAN.md): UniFi Network API (v2) — WAN / ISP health.

- Utilities
  - [UnifiApi.Formatter](UnifiApi.Formatter.md): Pretty-prints API responses as colored ANSI tables in iex.
  - [UnifiApi.Time](UnifiApi.Time.md): Tiny time helpers for the v1 / v2 endpoints that take unix-millisecond
timestamps (`UnifiApi.Protect.Events.list/2` `:start` / `:end`,
`UnifiApi.Network.Traffic.by_client/3` `:start` / `:end`, etc.).

- Errors
  - [UnifiApi.AuthError](UnifiApi.AuthError.md): Returned when the controller responds with HTTP 401 or 403.
  - [UnifiApi.RateLimitError](UnifiApi.RateLimitError.md): Returned when the controller responds with HTTP 429.
  - [UnifiApi.StreamError](UnifiApi.StreamError.md): Raised when `UnifiApi.Client.stream/3` (or `stream_v1/3`/`stream_paged/2`)
encounters an API error during pagination and the `:raise_errors` opt is
enabled (default behaviour through v0.4.0).

- Authentication
  - [UnifiApi.Auth.Cookie](UnifiApi.Auth.Cookie.md): Cookie + CSRF authentication for UniFi controllers.
  - [UnifiApi.Auth.Session](UnifiApi.Auth.Session.md): Supervised, auto-refreshing cookie + CSRF session.

- Protect API
  - [UnifiApi.Protect.Cameras](UnifiApi.Protect.Cameras.md): UniFi Protect API — camera management.
  - [UnifiApi.Protect.Chimes](UnifiApi.Protect.Chimes.md): UniFi Protect API — chime management.
  - [UnifiApi.Protect.Lights](UnifiApi.Protect.Lights.md): UniFi Protect API — light management.
  - [UnifiApi.Protect.Liveviews](UnifiApi.Protect.Liveviews.md): UniFi Protect API — liveview management.
  - [UnifiApi.Protect.NVR](UnifiApi.Protect.NVR.md): UniFi Protect API — NVR information.
  - [UnifiApi.Protect.Sensors](UnifiApi.Protect.Sensors.md): UniFi Protect API — sensor management.
  - [UnifiApi.Protect.Viewers](UnifiApi.Protect.Viewers.md): UniFi Protect API — viewer management.

- Protect API (v1)
  - [UnifiApi.Protect.Events](UnifiApi.Protect.Events.md): UniFi Protect API — event log.

- Exceptions
  - [UnifiApi.ApiError](UnifiApi.ApiError.md): Returned for a controller response that failed but is not an
authentication (401/403) or rate-limit (429) failure.
  - [UnifiApi.TransportError](UnifiApi.TransportError.md): Returned when the request never produced an HTTP response: connection
refused, DNS failure, TLS handshake failure, timeout, and so on.

