Models: D
nodes: list[kindgi.client.Node]edges: list[kindgi.client.Edge]
run: kindgi.client.FinishedRun
improve_run: kindgi.client.ImproveRun(improveRunon the wire)
endpoint_id: str(endpointIdon the wire)
id: uuid.UUIDtenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)flow_id: str(flowIdon the wire)flow_version: str(flowVersionon the wire)flow_version_via: Optional[Annotated[Union[Literal['explicit', 'pinned', 'latest'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]](flowVersionViaon the wire) (optional)flow_pinned_scope: Optional[Annotated[kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x108bb6710>]](flowPinnedScopeon the wire) (optional)status: Union[Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled'], str]dry_run: bool(dryRunon the wire)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)completed_at: AwareDatetime | None(completedAton the wire) (optional)failure_message: str | None(failureMessageon the wire) (optional)failure: kindgi.client.RunFailure | None(optional)output: Any | None(optional)content_erased_at: AwareDatetime | None(contentErasedAton the wire) (optional)parent_run_id: uuid.UUID | None(parentRunIdon the wire) (optional)parent_node_id: str | None(parentNodeIdon the wire) (optional)agent: kindgi.client.RunAgent | None(optional)waiting_for: kindgi.client.RunWaitingFor | None(waitingForon the wire) (optional)trigger: kindgi.client.RunTrigger | None(optional)started_by: Optional[Annotated[Union[Literal['person', 'key', 'schedule', 'webhook', 'event', 'mail'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]](startedByon the wire) (optional)acts_for: str | None(actsForon the wire) (optional)tools_allowed_unattended: list[str] | None(toolsAllowedUnattendedon the wire) (optional)replay_of: uuid.UUID | None(replayOfon the wire) (optional)test_run_id: str | None(testRunIdon the wire) (optional)versions: kindgi.client.FlowVersionOverrides | None(optional)segments: list[kindgi.client.ScopeSegment] | None(optional)trace_id: str | None(traceIdon the wire) (optional)public_access_token: str | None(publicAccessTokenon the wire) (optional)public_access_token_expires_at: AwareDatetime | None(publicAccessTokenExpiresAton the wire) (optional)
Datum1
Section titled “Datum1”sequence: intkind: strnode_id: str | None(nodeIdon the wire) (optional)payload: Any | None(optional)timestamp: AwareDatetime | str
Datum2
Section titled “Datum2”A system key (kgi_sy_…): the operator's, acting in no tenant. Never its secret.
id: strlabel: 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:env-refs', 'system:usage:read', 'system:license', 'kindgi:system'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]]created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)minted_by: str(mintedByon the wire)
Datum3
Section titled “Datum3”user_id: str(userIdon the wire)email: strdisplay_name: str | None(displayNameon the wire) (optional)
Datum4
Section titled “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(tokenIdon 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(projectIdon the wire) (optional)created_by: str | None(createdByon the wire) (optional)created_at: AwareDatetime(createdAton the wire)expires_at: AwareDatetime | None(expiresAton the wire) (optional)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)last_used_at: AwareDatetime | None(lastUsedAton the wire) (optional)
Datum5
Section titled “Datum5”blob_id: str(blobIdon the wire)tenant_id: uuid.UUID(tenantIdon the wire)name: strcontent_type: str(contentTypeon the wire)size: inthash: strtags: dict[str, str]owner_run_id: uuid.UUID | None(ownerRunIdon the wire) (optional)project_id: str | None(projectIdon the wire) (optional)created_by: str | None(createdByon the wire) (optional)created_at: AwareDatetime(createdAton the wire)bucket: str | None(optional)key: str | None(optional)
Datum6
Section titled “Datum6”id: strtenant_id: str(tenantIdon the wire)timestamp: AwareDatetimeactor_subject: str(actorSubjecton the wire)on_behalf_subject: str | None(onBehalfSubjecton the wire) (optional)action: strresource: stroutcome: Union[Literal['allowed', 'denied'], str]reason: strfailing: str | None(optional)evidence: dict[str, Any] | None(optional)correlation_id: str | None(correlationIdon the wire) (optional)run_id: str | None(runIdon the wire) (optional)latency_ms: float | None(latencyMson the wire) (optional)
DeleteArtifactResult
Section titled “DeleteArtifactResult”blob_id: str(blobIdon the wire)deleted: bool
DeployCheckAgentId
Section titled “DeployCheckAgentId”root: str
DeployCheckBody
Section titled “DeployCheckBody”project_id: uuid.UUID | None(projectIdon the wire) (optional)agents: list[kindgi.client.DeployCheckAgentId]blocks: list[kindgi.client.DeployCheckBodyBlock]replace: list[kindgi.client.DeployReplaceBlock] | None(optional)
DeployCheckBodyBlock
Section titled “DeployCheckBodyBlock”id: strversion: str
DeployCheckResult
Section titled “DeployCheckResult”replaced: list[kindgi.client.ReplacedItem]not_needed: list[str](notNeededon the wire)
DeployCheckStop
Section titled “DeployCheckStop”block_id: str(blockIdon the wire)in_files: str(inFileson the wire)runs: kindgi.client.Runspr: kindgi.client.Pr1 | None(optional)
DeployReplaceBlock
Section titled “DeployReplaceBlock”block_id: str(blockIdon the wire)reason: str
DeploymentCollectionPage
Section titled “DeploymentCollectionPage”data: list[kindgi.client.DeploymentRecord]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)project_id: str | None(projectIdon the wire) (optional)pack_id: str | None(packIdon the wire) (optional)kept_builds: int | None(keptBuildson the wire) (optional)
DeploymentContents
Section titled “DeploymentContents”tools: list[kindgi.client.DeploymentContentsTool]guardrails: list[kindgi.client.DeploymentContentsGuardrail]agents: list[kindgi.client.DeploymentContentsAgent]flows: list[kindgi.client.DeploymentContentsFlow]blocks: list[kindgi.client.DeploymentContentsBlock] | None(optional)
DeploymentContentsAgent
Section titled “DeploymentContentsAgent”id: strversion: strauthored_version: str | None(authoredVersionon the wire) (optional)reason: Optional[Annotated[Union[Literal['pins-changed', 'unpinned', 'version-taken'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]](optional)new_version: bool | None(newVersionon the wire) (optional)pin_changes: list[kindgi.client.PinChange] | None(pinChangeson the wire) (optional)
DeploymentContentsBlock
Section titled “DeploymentContentsBlock”id: strversion: str | None(optional)
DeploymentContentsFlow
Section titled “DeploymentContentsFlow”id: strversion: strauthored_version: str | None(authoredVersionon the wire) (optional)reason: Optional[Annotated[Union[Literal['pins-changed', 'unpinned', 'version-taken'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]](optional)new_version: bool | None(newVersionon the wire) (optional)pin_changes: list[kindgi.client.PinChange] | None(pinChangeson the wire) (optional)
DeploymentContentsGuardrail
Section titled “DeploymentContentsGuardrail”id: strversion: str | None(optional)
DeploymentContentsTool
Section titled “DeploymentContentsTool”id: strversion: str | None(optional)
DeploymentEndpoint
Section titled “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, and for a deployment that ships nothing a pack service serves (no tool, and no guardrail check but built-in ones: a pack of agents and flows only), which needs none. 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: AwareDatetimeproblem: kindgi.client.DeploymentEndpointProblem | None(optional)waiting: Optional[Literal[True]](optional)retired: str | None(optional)pack_env_problem: kindgi.client.PackEnvProblem | None(packEnvProblemon the wire) (optional)kept_for: list[kindgi.client.DeploymentKeptFor] | None(keptForon the wire) (optional)kept_for_total: int | None(keptForTotalon the wire) (optional)
DeploymentEndpointProblem
Section titled “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: strsince: AwareDatetime
DeploymentKeptFor
Section titled “DeploymentKeptFor”One thing a build's pack service is kept for. To let the build go, unregister it: kindgi tools|agents|flows unregister <id> <version>, kindgi guardrails unregister <id>.
kind: strid: strversion: str | None(optional)registered: Optional[Literal[True]](optional)held: Optional[Literal[True]](optional)
DeploymentPinGate
Section titled “DeploymentPinGate”status: Union[Literal['pinned', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired'], str]change_id: uuid.UUID(changeIdon the wire)release_gate: kindgi.client.ReleaseGateRef | None(releaseGateon the wire) (optional)approval_id: str | None(approvalIdon the wire) (optional)checks: list[kindgi.client.GateCheck] | None(optional)
DeploymentPinnedAgent
Section titled “DeploymentPinnedAgent”id: strversion: strpinned: boolgate: kindgi.client.DeploymentPinGate | None(optional)
DeploymentPinnedFlow
Section titled “DeploymentPinnedFlow”id: strversion: str
DeploymentPrimitiveCounts
Section titled “DeploymentPrimitiveCounts”tools: intguardrails: intagents: intflows: int
DeploymentPromotion
Section titled “DeploymentPromotion”deployment: kindgi.client.DeploymentRecordcreated: boolmoved: kindgi.client.PromotionMovesleft_behind: list[kindgi.client.LeftBehindVersion] | None(leftBehindon the wire) (optional)pinned: list[kindgi.client.DeploymentPinnedAgent] | None(optional)pinned_flows: list[kindgi.client.DeploymentPinnedFlow] | None(pinnedFlowson the wire) (optional)block_check: kindgi.client.PromotionBlockCheck | None(blockCheckon the wire) (optional)
DeploymentPromotionBody
Section titled “DeploymentPromotionBody”to_project_id: str(toProjectIdon the wire)reason: str | None(optional)pin: bool | None(optional)replace: list[kindgi.client.DeployReplaceBlock] | None(optional)
DeploymentPromotionCheck
Section titled “DeploymentPromotionCheck”moves: kindgi.client.PromotionMovesvalues: list[kindgi.client.DeploymentValue]next_environment: kindgi.client.PromotionNextEnvironment(nextEnvironmenton the wire)env_name: str | None(envNameon the wire) (optional)left_behind: list[kindgi.client.LeftBehindVersion] | None(leftBehindon the wire) (optional)
DeploymentPromotionCheckBody
Section titled “DeploymentPromotionCheckBody”to_project_id: str(toProjectIdon the wire)
DeploymentRecord
Section titled “DeploymentRecord”deployment_id: str(deploymentIdon the wire)tenant_id: uuid.UUID(tenantIdon the wire)image_ref: str(imageRefon the wire)image_digest: str(imageDigeston the wire)artifact_version: str(artifactVersionon the wire)index_hash: str(indexHashon the wire)signer_key_id: str(signerKeyIdon the wire)signer_public_key: str(signerPublicKeyon the wire)signature: strpublished_at: AwareDatetime(publishedAton the wire)activated_at: AwareDatetime(activatedAton the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)pack_env: kindgi.client.PackEnvDeclaration | None(packEnvon the wire) (optional)promoted_from_deployment_id: str | None(promotedFromDeploymentIdon the wire) (optional)pack_id: str | None(packIdon the wire) (optional)endpoint: kindgi.client.DeploymentEndpoint | None(optional)primitives: kindgi.client.DeploymentPrimitiveCountscontents: kindgi.client.DeploymentContentssource: kindgi.client.DeploymentSource | None(optional)replaced: list[kindgi.client.DeploymentReplacedBlock] | None(optional)
DeploymentRegistrationBody
Section titled “DeploymentRegistrationBody”image_ref: str(imageRefon the wire)artifact_version: str(artifactVersionon the wire)index_hash: str(indexHashon the wire)signer_key_id: str(signerKeyIdon the wire)signer_public_key: str(signerPublicKeyon the wire)signature: strpublished_at: AwareDatetime(publishedAton the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)source: kindgi.client.DeploymentSourceBody | None(optional)replace: list[kindgi.client.DeployReplaceBlock] | None(optional)
DeploymentReplacedBlock
Section titled “DeploymentReplacedBlock”block_id: str(blockIdon the wire)from_: str(fromon the wire)to: strreason: strby: kindgi.client.PinActor
DeploymentSecretsSyncRequest
Section titled “DeploymentSecretsSyncRequest”env_name: str(envNameon the wire)secrets: list[kindgi.client.Secrets | kindgi.client.Secrets1]
DeploymentSecretsSyncResponse
Section titled “DeploymentSecretsSyncResponse”resolved: intadded: intreferences: list[kindgi.client.Reference]
DeploymentSource
Section titled “DeploymentSource”Where a deployment's pack lives in git, as kindgi deploy read it from the work tree it ran in. Absent for a deploy made outside git, one made before deploys said, and from a runtime that doesn't keep it.
repo: str | None(optional)path: strcommit: strbranch: str | None(optional)dirty: boolblock_files: dict[str, str](blockFileson the wire)
DeploymentSourceBody
Section titled “DeploymentSourceBody”Where the pack lives in git, when the deploy runs inside a work tree. The deployment keeps it with each block's file from the image's index. A field it doesn't know is ignored. Not covered by the signature.
repo: str | None(optional)path: strcommit: strbranch: str | None(optional)dirty: bool
DeploymentValidationDetails
Section titled “DeploymentValidationDetails”primitive: Literal['tool', 'guardrail', 'agent', 'flow', 'block']index: intid: str | None(optional)path: strmessage: str
DeploymentValue
Section titled “DeploymentValue”name: strkind: strneeded_by: kindgi.client.DeploymentValueNeededBy(neededByon the wire)found_at: Optional[Annotated[Union[Literal['project', 'org', 'tenant'], str], <kindgi.client._open.OpenEnum object at 0x107dd6b90>]](foundAton the wire) (optional)problem: str | None(optional)
DeploymentValueList
Section titled “DeploymentValueList”data: list[kindgi.client.DeploymentValue]
DeploymentValueNeededBy
Section titled “DeploymentValueNeededBy”type: strid: strversion: str | None(optional)
Domain
Section titled “Domain”root: str
DroppedItem
Section titled “DroppedItem”key: strrank_before: int | None(rankBeforeon the wire) (optional)