# Models: D

> API models starting with D.

## `Dag`

- `nodes: list[kindgi.client.Node]`
- `edges: list[kindgi.client.Edge]`

## `Data`

- `run: kindgi.client.FinishedRun`

## `Data1`

- `pass_: kindgi.client.ImprovementPass` (`pass` on the wire)

## `Data2`

- `endpoint_id: str` (`endpointId` on the wire)

## `Datum`

- `id: uuid.UUID`
- `tenant_id: uuid.UUID` (`tenantId` on the wire)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)
- `flow_id: str` (`flowId` on the wire)
- `flow_version: str` (`flowVersion` on the wire)
- `status: Union[Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled'], str]`
- `dry_run: bool` (`dryRun` on the wire)
- `created_at: AwareDatetime` (`createdAt` on the wire)
- `updated_at: AwareDatetime` (`updatedAt` on the wire)
- `completed_at: AwareDatetime | None` (`completedAt` on the wire) (optional)
- `failure_message: str | None` (`failureMessage` on the wire) (optional)
- `failure: kindgi.client.RunFailure | None` (optional)
- `output: Any | None` (optional)
- `content_erased_at: AwareDatetime | None` (`contentErasedAt` on the wire) (optional)
- `parent_run_id: uuid.UUID | None` (`parentRunId` on the wire) (optional)
- `parent_node_id: str | None` (`parentNodeId` on the wire) (optional)
- `agent: kindgi.client.RunAgent | None` (optional)
- `waiting_for: kindgi.client.RunWaitingFor | None` (`waitingFor` on the wire) (optional)
- `trigger: kindgi.client.RunTrigger | None` (optional)
- `started_by: Optional[Annotated[Union[Literal['person', 'key', 'schedule', 'webhook', 'event'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]` (`startedBy` on the wire) (optional)
- `replay_of: uuid.UUID | None` (`replayOf` on the wire) (optional)
- `eval_run_id: str | None` (`evalRunId` on the wire) (optional)
- `versions: kindgi.client.FlowVersionOverrides | None` (optional)
- `segments: list[kindgi.client.ScopeSegment] | None` (optional)
- `trace_id: str | None` (`traceId` on the wire) (optional)
- `public_access_token: str | None` (`publicAccessToken` on the wire) (optional)
- `public_access_token_expires_at: AwareDatetime | None` (`publicAccessTokenExpiresAt` on the wire) (optional)

## `Datum1`

- `sequence: int`
- `kind: str`
- `node_id: str | None` (`nodeId` on the wire) (optional)
- `payload: Any | None` (optional)
- `timestamp: AwareDatetime | str`

## `Datum2`

A system key (`kgi_sy_…`): the operator's, acting in no tenant. Never its secret.

- `id: str`
- `label: str | None` (optional)
- `scopes: list[Annotated[Union[Literal['system:tenants', 'system:tenants:create', 'system:tenants:image-prefix', 'system:tenants:production', 'system:tenants:limits', 'system:tenants:contacts', 'system:tenants:purge', 'system:suspend', 'system:deployments', 'system:pack-env', 'system:usage:read', 'system:license', 'kindgi:system'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]`
- `created_at: AwareDatetime` (`createdAt` on the wire)
- `expires_at: AwareDatetime | None` (`expiresAt` on the wire) (optional)
- `revoked_at: AwareDatetime | None` (`revokedAt` on the wire) (optional)
- `minted_by: str` (`mintedBy` on the wire)

## `Datum3`

- `user_id: str` (`userId` on the wire)
- `email: str`
- `display_name: str | None` (`displayName` on the wire) (optional)

## `Datum4`

An API key. Never includes the secret. `principal` is whom it acts for; absent on a key that is a service account of its own (`service_account:<tokenId>`), as keys minted before principals are.

- `token_id: uuid.UUID` (`tokenId` on the wire)
- `principal: kindgi.client.ApiKeyPrincipal | None` (optional)
- `role: Union[Literal['admin', 'member'], str]`
- `capabilities: list[kindgi.client.Capability]`
- `label: str | None` (optional)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)
- `created_by: str | None` (`createdBy` on the wire) (optional)
- `created_at: AwareDatetime` (`createdAt` on the wire)
- `expires_at: AwareDatetime | None` (`expiresAt` on the wire) (optional)
- `revoked_at: AwareDatetime | None` (`revokedAt` on the wire) (optional)
- `last_used_at: AwareDatetime | None` (`lastUsedAt` on the wire) (optional)

## `Datum5`

- `blob_id: str` (`blobId` on the wire)
- `tenant_id: uuid.UUID` (`tenantId` on the wire)
- `name: str`
- `content_type: str` (`contentType` on the wire)
- `size: int`
- `hash: str`
- `tags: dict[str, str]`
- `owner_run_id: uuid.UUID | None` (`ownerRunId` on the wire) (optional)
- `project_id: str | None` (`projectId` on the wire) (optional)
- `created_by: str | None` (`createdBy` on the wire) (optional)
- `created_at: AwareDatetime` (`createdAt` on the wire)
- `bucket: str | None` (optional)
- `key: str | None` (optional)

## `Datum6`

- `id: str`
- `tenant_id: str` (`tenantId` on the wire)
- `timestamp: AwareDatetime`
- `actor_subject: str` (`actorSubject` on the wire)
- `on_behalf_subject: str | None` (`onBehalfSubject` on the wire) (optional)
- `action: str`
- `resource: str`
- `outcome: Union[Literal['allowed', 'denied'], str]`
- `reason: str`
- `failing: str | None` (optional)
- `evidence: dict[str, Any] | None` (optional)
- `correlation_id: str | None` (`correlationId` on the wire) (optional)
- `run_id: str | None` (`runId` on the wire) (optional)
- `latency_ms: float | None` (`latencyMs` on the wire) (optional)

## `DeleteArtifactResult`

- `blob_id: str` (`blobId` on the wire)
- `deleted: bool`

## `DeploymentCollectionPage`

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

## `DeploymentContents`

- `tools: list[kindgi.client.DeploymentContentsTool]`
- `guardrails: list[kindgi.client.DeploymentContentsGuardrail]`
- `agents: list[kindgi.client.DeploymentContentsAgent]`
- `flows: list[kindgi.client.DeploymentContentsFlow]`

## `DeploymentContentsAgent`

- `id: str`
- `version: str`
- `authored_version: str | None` (`authoredVersion` on the wire) (optional)
- `reason: Optional[Annotated[Union[Literal['pins-changed', 'unpinned', 'version-taken'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]` (optional)
- `new_version: bool | None` (`newVersion` on the wire) (optional)
- `pin_changes: list[kindgi.client.PinChange] | None` (`pinChanges` on the wire) (optional)

## `DeploymentContentsFlow`

- `id: str`
- `version: str`
- `authored_version: str | None` (`authoredVersion` on the wire) (optional)
- `reason: Optional[Annotated[Union[Literal['pins-changed', 'unpinned', 'version-taken'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]` (optional)
- `new_version: bool | None` (`newVersion` on the wire) (optional)
- `pin_changes: list[kindgi.client.PinChange] | None` (`pinChanges` on the wire) (optional)

## `DeploymentContentsGuardrail`

- `id: str`
- `version: str | None` (optional)

## `DeploymentContentsTool`

- `id: str`
- `version: str | None` (optional)

## `DeploymentEndpoint`

Its pack service's status, when the server routes each pack call to the deployment that shipped the tool (`KINDGI_PACK_ROUTING=per-deployment`). Absent otherwise. `pending`: no pack service yet, and calls to its tools fail (`pack-endpoint-pending`) rather than go to another deployment. `ready`: calls go to its own pack service. `cleared`: its pack service was taken down, and calls fail (`pack-endpoint-cleared`); it carries `waiting` or `retired` to say whether it comes back. Carries no URL and no token.

- `status: Union[Literal['pending', 'ready', 'cleared'], str]`
- `since: AwareDatetime`
- `problem: kindgi.client.DeploymentEndpointProblem | None` (optional)
- `waiting: Optional[Literal[True]]` (optional)
- `retired: str | None` (optional)
- `pack_env_problem: kindgi.client.PackEnvProblem | None` (`packEnvProblem` on the wire) (optional)

## `DeploymentEndpointProblem`

While the deployment waits for a pack service (`pending`, or `cleared` and `waiting`): the last reason recorded while it waited. A `ready` endpoint has none, nor a `retired` one. A fixed code, never free text.

- `code: str`
- `since: AwareDatetime`

## `DeploymentLivePin`

- `id: str`
- `version: str`
- `pinned: bool`
- `gate: kindgi.client.DeploymentLivePinGate | None` (optional)

## `DeploymentLivePinGate`

- `status: Union[Literal['promoted', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired'], str]`
- `promotion_id: uuid.UUID` (`promotionId` on the wire)
- `policy: kindgi.client.GatePolicyRef | None` (optional)
- `approval_id: str | None` (`approvalId` on the wire) (optional)
- `checks: list[kindgi.client.GateCheck] | None` (optional)

## `DeploymentPrimitiveCounts`

- `tools: int`
- `guardrails: int`
- `agents: int`
- `flows: int`

## `DeploymentPromotion`

- `deployment: kindgi.client.DeploymentRecord`
- `created: bool`
- `moved: kindgi.client.PromotionMoves`
- `left_behind: list[kindgi.client.LeftBehindVersion] | None` (`leftBehind` on the wire) (optional)
- `live: list[kindgi.client.DeploymentLivePin] | None` (optional)

## `DeploymentPromotionBody`

- `to_project_id: str` (`toProjectId` on the wire)
- `reason: str | None` (optional)
- `make_live: bool | None` (`makeLive` on the wire) (optional)

## `DeploymentPromotionCheck`

- `moves: kindgi.client.PromotionMoves`
- `values: list[kindgi.client.DeploymentValue]`
- `next_environment: kindgi.client.PromotionNextEnvironment` (`nextEnvironment` on the wire)
- `env_name: str | None` (`envName` on the wire) (optional)
- `left_behind: list[kindgi.client.LeftBehindVersion] | None` (`leftBehind` on the wire) (optional)

## `DeploymentPromotionCheckBody`

- `to_project_id: str` (`toProjectId` on the wire)

## `DeploymentRecord`

- `deployment_id: str` (`deploymentId` on the wire)
- `tenant_id: uuid.UUID` (`tenantId` on the wire)
- `image_ref: str` (`imageRef` on the wire)
- `image_digest: str` (`imageDigest` on the wire)
- `artifact_version: str` (`artifactVersion` on the wire)
- `index_hash: str` (`indexHash` on the wire)
- `signer_key_id: str` (`signerKeyId` on the wire)
- `signer_public_key: str` (`signerPublicKey` on the wire)
- `signature: str`
- `published_at: AwareDatetime` (`publishedAt` on the wire)
- `activated_at: AwareDatetime` (`activatedAt` on the wire)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)
- `pack_env: kindgi.client.PackEnvDeclaration | None` (`packEnv` on the wire) (optional)
- `promoted_from_deployment_id: str | None` (`promotedFromDeploymentId` on the wire) (optional)
- `pack_id: str | None` (`packId` on the wire) (optional)
- `endpoint: kindgi.client.DeploymentEndpoint | None` (optional)
- `primitives: kindgi.client.DeploymentPrimitiveCounts`
- `contents: kindgi.client.DeploymentContents`

## `DeploymentRegistrationBody`

- `image_ref: str` (`imageRef` on the wire)
- `artifact_version: str` (`artifactVersion` on the wire)
- `index_hash: str` (`indexHash` on the wire)
- `signer_key_id: str` (`signerKeyId` on the wire)
- `signer_public_key: str` (`signerPublicKey` on the wire)
- `signature: str`
- `published_at: AwareDatetime` (`publishedAt` on the wire)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)

## `DeploymentSecretsSyncRequest`

- `env_name: str` (`envName` on the wire)
- `secrets: list[kindgi.client.Secrets | kindgi.client.Secrets1]`

## `DeploymentSecretsSyncResponse`

- `resolved: int`
- `added: int`
- `references: list[kindgi.client.Reference]`

## `DeploymentValidationDetails`

- `primitive: Literal['tool', 'guardrail', 'agent', 'flow']`
- `index: int`
- `id: str | None` (optional)
- `path: str`
- `message: str`

## `DeploymentValue`

- `name: str`
- `kind: str`
- `needed_by: kindgi.client.DeploymentValueNeededBy` (`neededBy` on the wire)
- `found_at: Optional[Annotated[Union[Literal['project', 'org', 'tenant'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]]` (`foundAt` on the wire) (optional)
- `problem: str | None` (optional)

## `DeploymentValueList`

- `data: list[kindgi.client.DeploymentValue]`

## `DeploymentValueNeededBy`

- `type: str`
- `id: str`
- `version: str | None` (optional)

## `DeriveAgentVersionBody`

Derive a new agent version from a pinned one with some data-block pins swapped: an expert's edit reaching an agent with no code change.

- `from_: str` (`from` on the wire)
- `pins: kindgi.client.AgentPinSwaps`
- `label: str | None` (optional)
- `project_id: uuid.UUID | None` (`projectId` on the wire) (optional)

## `Domain`

- `root: str`

## `DroppedItem`

- `key: str`
- `rank_before: int | None` (`rankBefore` on the wire) (optional)
