# client.release_gates

> client.release_gates — the releaseGates operations.

`client.release_gates` — the `releaseGates` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.release_gates.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    agent_id: str | UUID | None = None,
    scope_kind: Literal['tenant', 'org', 'project', 'segment'] | None = None,
    scope_id: str | UUID | None = None,
    segments: Sequence[ScopeSegment | Mapping[str, str]] | None = None,
    include_retired: bool | None = None,
    timeout: float | None = None,
) -> ReleaseGatePage
```

List release gates. `GET /v1/release-gates`

Each release gate's latest active version. `agentId` narrows it to one agent's; `scopeKind` (with `scopeId` and `segment`) to one scope's. A retired gate (every version unregistered) is listed only with `?includeRetired=true`, as its highest version with `unregisteredAt`, so it can be found and a version reinstated.

## `client.release_gates.publish()`

```python signature
publish(
    body: PublishReleaseGateBody | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> ReleaseGate
```

Publish a release gate. `POST /v1/release-gates`

Registers a release gate, or a new version of one: what a pin of `agentId` for `scope` must show. One gate per agent and scope: another gate id for a scope that has one is refused with `409 release-gate-scope-taken` (`details.heldBy` names it; publish a new version of that one instead), and a new version can't change the agent or scope (`409 release-gate-scope-changed`). The `spec` is checked strictly: an unknown key is refused (`400 validation-failed`, `details.issues`). Needs `admin` on the tenant: whoever may pin can't loosen their own gate.

## `client.release_gates.get()`

```python signature
get(release_gate_id: str | UUID, /, *, timeout: float | None = None) -> ReleaseGate
```

Get a release gate. `GET /v1/release-gates/{releaseGateId}`

The release gate's latest active version.
