# `Opsmaru.Incus`
[🔗](https://github.com/upmaru/opsmaru-incus/blob/v0.1.0/lib/opsmaru/incus.ex#L1)

Explicit native Incus client, independent of application startup and SQL.

`connect/2` performs discovery; constructing Connection/Context does no I/O.
Every call checks the host binding/readiness. `raw_query/5` retains native
envelope metadata, error values and ETags; it is an explicit low-level call,
not evidence of typed method parity. No mutations are automatically retried.

# `t`

```elixir
@type t() :: %Opsmaru.Incus{connection: term(), context: term(), server: term()}
```

# `call`

Invoke an implemented native method by its reference name; missing methods fail explicitly.

# `connect`

# `connect`

# `disconnect`

No-op for an immutable client with per-request connections; close separately owned channels explicitly.

# `file_sftp`

Open a shared SFTP session matching the pinned `GetInstanceFileSFTP`.

# `has_extension?`

# `member`

# `methods`

List implemented native method names. This is not a full-parity claim.

# `nbd`

Open the native NBD byte connection after checking the native extension.

# `network_acl_log`

Download a native ACL log to a bounded acknowledged binary sink.

# `project`

# `raw_query`

# `raw_query`

# `raw_query`

# `require_extension`

# `sftp`

Open the native SFTP byte connection; the caller supplies its SFTP implementation.

# `volume_file_sftp`

Open a shared volume SFTP session after its native extension check, like `GetStoragePoolVolumeFileSFTP`.

# `volume_nbd`

Open a native volume NBD byte channel, optionally requesting writable access.

# `volume_sftp`

Open a native volume SFTP byte channel; protocol handling remains caller-owned.

# `with_context`

Return an independent client with an explicit local request context; no backend call or identity substitution.

---

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