# `Parrhesia.Storage.ACL`

Storage callbacks for persisted ACL rules.

# `context`

```elixir
@type context() :: map()
```

# `opts`

```elixir
@type opts() :: keyword()
```

# `reason`

```elixir
@type reason() :: term()
```

# `rule`

```elixir
@type rule() :: map()
```

# `delete_rule`

```elixir
@callback delete_rule(context(), map()) :: :ok | {:error, reason()}
```

# `list_rules`

```elixir
@callback list_rules(context(), opts()) :: {:ok, [rule()]} | {:error, reason()}
```

# `put_rule`

```elixir
@callback put_rule(context(), rule()) :: {:ok, rule()} | {:error, reason()}
```

---

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