# ProcessRetentionLease

A retention lease: it keeps a run (and every run it started) from being deleted when its retention period ends, until it is released. Returned on a run summary's `retentionLease` and a retention status's `lease`.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `appliedAtUtc` | `datetime` | When the lease was taken, in UTC (for an inherited lease: when the ancestor's lease was taken). |
| `appliedByUserId` | `uuid` | The id of the user who took it. |
| `appliedByUserName` | `string \| null` | Their display name when they took it (a snapshot); null when it was not known. |
| `note` | `string \| null` | Why the run is retained, as written by whoever retained it (at most 500 characters), or null. |
| `inheritedFromProcessId` | `uuid \| null` | Null for the run's own lease. Otherwise the run is kept because this ANCESTOR run is retained (a lease on a run keeps every run it started, at any depth); release that run instead — releasing it releases this one too. |
| `inheritedFromProcessType` | [`ProcessType`](https://docs.maitento.com/reference/types/process-type.md)`\| null` | The kind of run `inheritedFromProcessId` is (an app run: only app runs start other runs). |

## Example

```json
{
  "appliedAtUtc": "2026-10-26T12:00:00.0000000Z",
  "appliedByUserId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "appliedByUserName": "...",
  "note": "...",
  "inheritedFromProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "inheritedFromProcessType": "App"
}
```

## Where it's used

- Inside [`ProcessRetentionStatus`](https://docs.maitento.com/reference/types/process-retention-status.md)
- Inside [`ProcessSummary`](https://docs.maitento.com/reference/types/process-summary.md)
- Inside [`UsageRunRow`](https://docs.maitento.com/reference/types/usage-run-row.md)
