# `Raxol.AgentClientProtocol.Schema.ClientTypes.RequestPermissionOutcome`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/schema/client_types.ex#L391)

The outcome of a permission request: either the prompt turn was cancelled
before the user responded, or the user selected one of the offered
options. Tagged by the `outcome` discriminator field on the wire (not a
struct in its own right -- see `SelectedPermissionOutcome` for the
`_meta`-carrying payload of the `:selected` variant).

Ported from the MIT `f1729/agent_client_protocol` (c) 2025 f1729; see NOTICE.md.

# `t`

```elixir
@type t() ::
  :cancelled
  | {:selected,
     Raxol.AgentClientProtocol.Schema.ClientTypes.SelectedPermissionOutcome.t()}
```

# `from_json`

```elixir
@spec from_json(term()) :: {:ok, t()} | {:error, term()}
```

Total: never raises. Missing/unrecognized `outcome` discriminator is the only failure mode.

# `to_json`

```elixir
@spec to_json(t()) :: map()
```

---

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