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

One shared Incus operation: its public contract and how it runs.

`name`, `input_schema`, `output_schema`, `scope`, `destructive`,
`confirmation` and `bounds` are public contract. `requires` names the client
evidence it depends on (see `Opsmaru.Incus.Operations.Evidence`). The
functions are internal: `confirm` returns the resource the confirmation must
repeat, `check` adds byte bounds the schema cannot express, `restricted`
lists restricted input for the host, `resolve` applies host-only lookups
before backend access and `run` executes through the public client.

# `t`

```elixir
@type t() :: %Opsmaru.Incus.Operations.Descriptor{
  bounds: term(),
  check: term(),
  confirm: term(),
  confirmation: term(),
  description: term(),
  destructive: term(),
  input_schema: term(),
  name: term(),
  output_schema: term(),
  requires: term(),
  resolve: term(),
  restricted: term(),
  run: term(),
  scope: term(),
  title: term()
}
```

---

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