> ## Documentation Index
> Fetch the complete documentation index at: https://ctrlrun.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# PendingApproval

> What the framework's interrupt is handed, and the only thing it is (SPEC-v0.5 §2.3).

`ctrlrun.PendingApproval` — class, defined at `src/ctrlrun/adapter.py:92`

```python theme={null}
from ctrlrun import PendingApproval
```

```python theme={null}
class PendingApproval
    def __init__(request_id: str, action_id: str, action: str, action_hash: str, arguments: Mapping[str, Any], resource: str | None, environment: str, agent: str, user: str | None, created_at: datetime, expires_at: datetime)
```

What the framework's interrupt is handed, and the only thing it is (SPEC-v0.5 §2.3).

A value: the action's name, its canonical arguments, its resource, its environment, the
principal's `agent` and `user`, the `action_hash` and the request's expiry. It does **not**
carry the `Action`, the `Control`, the store or the executor -- nothing an adapter could act
on rather than display.

`agent` and `user` are outputs. They are here so a human sees who is asking, and there is
no constructor, keyword or callback anywhere on this surface that puts one back in (§4.2).

## Next

* [Python API index](/reference/api/index).
* [Get started](/get-started/quickstart) · [Why](/why).


## Related topics

- [ApprovalAnswer](/reference/api/ApprovalAnswer.md)
- [Architecture](/ARCHITECTURE.md)
- [Python API](/reference/api/index.md)
- [ApprovalRequest](/reference/api/ApprovalRequest.md)
- [ApprovalMismatch](/reference/api/ApprovalMismatch.md)
