Models: T
id: strtenant_id: str(tenantIdon the wire)org_id: str | None(orgIdon the wire) (optional)name: strslug: strdescription: str | None(optional)created_at: str(createdAton the wire)updated_at: str(updatedAton the wire)
TeamCollectionPage
Section titled “TeamCollectionPage”data: list[kindgi.client.Team]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
TeamMembership
Section titled “TeamMembership”team_id: str(teamIdon the wire)user_id: str(userIdon the wire)role: Literal['member', 'admin']joined_at: str(joinedAton the wire)
TeamMembershipCollectionPage
Section titled “TeamMembershipCollectionPage”data: list[kindgi.client.TeamMembership]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
TeamPatch
Section titled “TeamPatch”name: str | None(optional)slug: str | None(optional)description: str | None(optional)org_id: str | None(orgIdon the wire) (optional)
TeamSpec
Section titled “TeamSpec”name: strslug: strdescription: str | None(optional)org_id: str | None(orgIdon the wire) (optional)
Tenant
Section titled “Tenant”id: uuid.UUIDname: strslug: strcreated_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)
TenantConfigCollectionPage
Section titled “TenantConfigCollectionPage”data: list[kindgi.client.TenantConfigEntry]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
TenantConfigEntry
Section titled “TenantConfigEntry”tenant_id: str(tenantIdon the wire)kind: Literal['env', 'config', 'secret']key: strvalue: strsensitive: boolrevision: intupdated_at: str(updatedAton the wire)
TestAdapterBody
Section titled “TestAdapterBody”TimeRange
Section titled “TimeRange”from_: AwareDatetime(fromon the wire)to: AwareDatetime
id: strdescription: strversion: str | None(optional)input: dict[str, Any]output: dict[str, Any]needs: list[kindgi.client.ToolNeed] | None(optional)effects: list[kindgi.client.ToolEffect] | None(optional)transport: Optional[Literal['auto', 'native', 'mcp']](optional)mcp_endpoint: str | None(mcpEndpointon the wire) (optional)metadata: dict[str, Any] | None(optional)mutating: bool | None(optional)sandbox: Optional[Literal['none', 'context-isolated', 'strict']](optional)limits: kindgi.client.RuntimeLimits | None(optional)network: kindgi.client.NetworkPolicy1 | kindgi.client.NetworkPolicy2 | None(optional)needs_spec: kindgi.client.TypedNeeds | None(needsSpecon the wire) (optional)code_artifact_ref: kindgi.client.CodeArtifactRef1 | kindgi.client.CodeArtifactRef2 | None(codeArtifactRefon the wire) (optional)spec: kindgi.client.ToolSpec | None(optional)
id: strversion: str | None(optional)
ToolCall
Section titled “ToolCall”tool_id: str(toolIdon the wire)invocation_id: str(invocationIdon the wire)
ToolCollectionPage
Section titled “ToolCollectionPage”data: list[kindgi.client.Tool]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ToolEffect
Section titled “ToolEffect”kind: Literal['reads', 'writes', 'deletes', 'network', 'spawns-run', 'emits-event', 'external-side-effect', 'sensitive-data-egress']resource: str | None(optional)notes: str | None(optional)
ToolErrorsSpec
Section titled “ToolErrorsSpec”max_retries: int | None(maxRetrieson the wire) (optional)retry_on: list[Literal['invalid-arguments', 'unknown-tool', 'tool-error']] | None(retryOnon the wire) (optional)
ToolNeed
Section titled “ToolNeed”name: stroptional: bool | None(optional)
ToolRef
Section titled “ToolRef”Typed tool reference. version is a semver range (npm-style: 1.2.3 exact pin, ^1.2.3 compatible-updates, ~1.2.3 patch-updates-only, >=1.0.0 <2.0.0 explicit range). Dispatch resolves the range to a concrete active version via semver.maxSatisfying at run start. No implicit "latest" — every tool ref names both id and range.
id: strversion: str
ToolSecretRef
Section titled “ToolSecretRef”env_name: str(envNameon the wire)name: str
ToolSpec
Section titled “ToolSpec”root: kindgi.client.HttpToolSpec
ToolVersionCollectionPage
Section titled “ToolVersionCollectionPage”data: list[kindgi.client.ToolVersionRow]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ToolVersionRow
Section titled “ToolVersionRow”id: strdescription: strversion: str | None(optional)input: dict[str, Any]output: dict[str, Any]needs: list[kindgi.client.ToolNeed] | None(optional)effects: list[kindgi.client.ToolEffect] | None(optional)transport: Optional[Literal['auto', 'native', 'mcp']](optional)mcp_endpoint: str | None(mcpEndpointon the wire) (optional)metadata: dict[str, Any] | None(optional)mutating: bool | None(optional)sandbox: Optional[Literal['none', 'context-isolated', 'strict']](optional)limits: kindgi.client.RuntimeLimits | None(optional)network: kindgi.client.NetworkPolicy1 | kindgi.client.NetworkPolicy2 | None(optional)needs_spec: kindgi.client.TypedNeeds | None(needsSpecon the wire) (optional)code_artifact_ref: kindgi.client.CodeArtifactRef1 | kindgi.client.CodeArtifactRef2 | None(codeArtifactRefon the wire) (optional)spec: kindgi.client.ToolSpec | None(optional)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)
TrustSigningKeyBody
Section titled “TrustSigningKeyBody”key_id: str(keyIdon the wire)algorithm: Optional[Literal['ed25519']](optional)public_key: str(publicKeyon the wire)label: str | None(optional)
TrustedSigningKey
Section titled “TrustedSigningKey”A public key the tenant trusts to sign deployments (POST /v1/deployments). A revoked key stays readable, with revokedAt, so the deployments it signed can be audited; it verifies no new ones.
key_id: str(keyIdon the wire)tenant_id: uuid.UUID(tenantIdon the wire)algorithm: Literal['ed25519']public_key: str(publicKeyon the wire)label: str | None(optional)created_at: AwareDatetime(createdAton the wire)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)revoked_reason: str | None(revokedReasonon the wire) (optional)
TrustedSigningKeyPage
Section titled “TrustedSigningKeyPage”data: list[kindgi.client.TrustedSigningKey]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
TurnBudget
Section titled “TurnBudget”max_steps: int | None(maxStepson the wire) (optional)max_cost_usd: float | None(maxCostUsdon the wire) (optional)max_wall_ms: int | None(maxWallMson the wire) (optional)
TypedNeeds
Section titled “TypedNeeds”Typed discriminated needs (env / secrets / config / capabilities / bindings). Optional additive field.
env: dict[str, dict[str, Any]] | None(optional)secrets: dict[str, dict[str, Any]] | None(optional)config: dict[str, dict[str, Any]] | None(optional)capabilities: list[kindgi.client.Capability5] | None(optional)bindings: list[kindgi.client.Binding] | None(optional)