# Models: O

> API models starting with O.

## `Observation`

- `id: uuid.UUID`
- `tenant_id: uuid.UUID` (`tenantId` on the wire)
- `supervisor_id: str` (`supervisorId` on the wire)
- `agent_id: str` (`agentId` on the wire)
- `agent_version: str` (`agentVersion` on the wire)
- `conversation_id: uuid.UUID` (`conversationId` on the wire)
- `turn_number: int` (`turnNumber` on the wire)
- `status: Union[Literal['succeeded', 'guardrail-violation', 'guardrail-warning', 'tool-error', 'model-error', 'budget-exceeded', 'aborted', 'other'], str]`
- `failure_code: str | None` (`failureCode` on the wire) (optional)
- `violations: list[dict[str, Any]]`
- `failure_detail: dict[str, Any] | None` (`failureDetail` on the wire) (optional)
- `duration_ms: int` (`durationMs` on the wire)
- `cost_usd: str` (`costUsd` on the wire)
- `provider: kindgi.client.Provider | None` (optional)
- `provenance_ref: kindgi.client.ProvenanceRef | None` (`provenanceRef` on the wire) (optional)
- `observed_at: AwareDatetime` (`observedAt` on the wire)

## `ObservationCollectionPage`

- `data: list[kindgi.client.Observation]`
- `next_cursor: str | None` (`nextCursor` on the wire) (optional)
- `has_more: bool` (`hasMore` on the wire)

## `ObservationStatus`

- `root: Literal['succeeded', 'guardrail-violation', 'guardrail-warning', 'tool-error', 'model-error', 'budget-exceeded', 'aborted', 'other']`

## `OidcIdentityProviderConfig`

An OpenID Connect identity provider people sign in with. The endpoints come from the issuer's discovery document when absent, and are returned once the deployment has them.

- `provider_id: str` (`providerId` on the wire)
- `display_name: str | None` (`displayName` on the wire) (optional)
- `domains: list[kindgi.client.Domain] | None` (optional)
- `join: Optional[Annotated[Union[Literal['invite', 'domain'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]` (optional)
- `sign_in: kindgi.client.IdentityProviderSignIn1 | kindgi.client.IdentityProviderSignIn2 | None` (`signIn` on the wire) (optional)
- `metadata: dict[str, Any] | None` (optional)
- `kind: Literal['oidc']`
- `issuer: AnyUrl`
- `client_id: str` (`clientId` on the wire)
- `client_secret_ref: str` (`clientSecretRef` on the wire)
- `scopes: list[str] | None` (optional)
- `authorization_endpoint: AnyUrl | None` (`authorizationEndpoint` on the wire) (optional)
- `token_endpoint: AnyUrl | None` (`tokenEndpoint` on the wire) (optional)
- `userinfo_endpoint: AnyUrl | None` (`userinfoEndpoint` on the wire) (optional)
- `jwks_endpoint: AnyUrl | None` (`jwksEndpoint` on the wire) (optional)
- `claim_mapping: kindgi.client.ClaimMappingSpec | None` (`claimMapping` on the wire) (optional)

## `OpenConversationBody`

- `agent_id: str` (`agentId` on the wire)
- `agent_version: str` (`agentVersion` on the wire)
- `title: str | None` (optional)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)
- `scope: dict[str, Any] | None` (optional)
- `participant_id: str | None` (`participantId` on the wire) (optional)
- `metadata: dict[str, Any] | None` (optional)

## `Options`

- `dry_run: bool | None` (`dryRun` on the wire) (optional)
- `wait: bool | None` (optional)

## `Org`

- `id: str`
- `tenant_id: str` (`tenantId` on the wire)
- `name: str`
- `slug: str`
- `created_at: str` (`createdAt` on the wire)
- `updated_at: str` (`updatedAt` on the wire)

## `OrgCollectionPage`

- `data: list[kindgi.client.Org]`
- `has_more: bool` (`hasMore` on the wire)
- `next_cursor: str | None` (`nextCursor` on the wire) (optional)

## `OrgPatch`

- `name: str | None` (optional)
- `slug: str | None` (optional)

## `OrgSpec`

- `name: str`
- `slug: str`

## `OtherItem`

`child-run` (`childRunId`, `childStatus`, `timesOutAt`): a child run must finish. `decided-approval` (`approvalId`, `approvalStatus`): decided, the runtime continues. `unattributed` (`tokenId`, `timesOutAt`): a wait no approval is linked to. `no-open-wait`: the journal shows none; the runtime picks the run up again.

- `what: Union[Literal['child-run', 'decided-approval', 'unattributed', 'no-open-wait'], str]`
- `child_run_id: uuid.UUID | None` (`childRunId` on the wire) (optional)
- `child_status: str | None` (`childStatus` on the wire) (optional)
- `approval_id: uuid.UUID | None` (`approvalId` on the wire) (optional)
- `approval_status: str | None` (`approvalStatus` on the wire) (optional)
- `token_id: str | None` (`tokenId` on the wire) (optional)
- `times_out_at: AwareDatetime | None` (`timesOutAt` on the wire) (optional)

## `Overrides`

The blocks whose content the replays replaced (`overrides`): no published version ran, so it can't gate a promotion. Absent otherwise.

- `settings: list[str] | None` (optional)
- `prompts: list[str] | None` (optional)
