# `ExOxvif.Device`
[🔗](https://github.com/cortfritz/ex_oxvif/blob/v0.1.0/lib/ex_oxvif/device.ex#L1)

Device management service.

# `info`

```elixir
@spec info(ExOxvif.Session.t(), ExOxvif.call_opts()) ::
  {:ok, ExOxvif.DeviceInfo.t()} | {:error, ExOxvif.Error.t()}
```

Manufacturer, model, firmware version, serial number and hardware id.

# `scopes`

```elixir
@spec scopes(ExOxvif.Session.t(), ExOxvif.call_opts()) ::
  {:ok, [String.t()]} | {:error, ExOxvif.Error.t()}
```

The device's ONVIF scopes (name, location, hardware, profiles).

# `services`

```elixir
@spec services(ExOxvif.Session.t(), ExOxvif.call_opts()) ::
  {:ok, [ExOxvif.Service.t()]} | {:error, ExOxvif.Error.t()}
```

Every service endpoint the device advertises.

# `system_date_and_time`

```elixir
@spec system_date_and_time(ExOxvif.Session.t(), ExOxvif.call_opts()) ::
  {:ok, ExOxvif.SystemDateTime.t()} | {:error, ExOxvif.Error.t()}
```

The device clock.

---

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