Skip to content

client.gate_policies

client.gate_policies — the gatePolicies operations.

On AsyncKindgi every method is the same, awaited.

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,
timeout: float | None = None,
) -> GatePolicyPage

List gate policies. GET /v1/gate-policies

Each gate policy's latest active version. agentId narrows it to one agent's; scopeKind (with scopeId and segment) to one scope's.

publish(
body: PublishGatePolicyBody | Mapping[str, Any] | None = None,
/,
*,
idempotency_key: str | None = None,
timeout: float | None = None,
**fields: Any,
) -> GatePolicy

Publish a gate policy. POST /v1/gate-policies

Registers a gate policy, or a new version of one: what a promotion of agentId for scope must show. One policy per agent and scope: another policy id for a scope that has one is refused with 409 gate-policy-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 gate-policy-scope-changed). The spec is checked strictly: an unknown key is refused (400 validation-failed, details.issues). Needs admin on the tenant: whoever may promote can't loosen their own gate.

get(policy_id: str | UUID, /, *, timeout: float | None = None) -> GatePolicy

Get a gate policy. GET /v1/gate-policies/{policyId}

The policy's latest active version.