Models: A
AccessPathDirect
Section titled “AccessPathDirect”kind: Literal['direct']role: Union[Literal['owner', 'admin', 'editor', 'viewer'], str]since: AwareDatetime | None(optional)
AccessPathOrgAdmin
Section titled “AccessPathOrgAdmin”An admin of the org the project sits in: admin on the project.
kind: Literal['org-admin']org_id: str(orgIdon the wire)org_name: str(orgNameon the wire)
AccessPathTeam
Section titled “AccessPathTeam”kind: Literal['team']team_id: str(teamIdon the wire)team_name: str(teamNameon the wire)role: Union[Literal['owner', 'admin', 'editor', 'viewer'], str]since: AwareDatetime | None(optional)
AccessPathTenantAdmin
Section titled “AccessPathTenantAdmin”A tenant admin: admin on every project.
kind: Literal['tenant-admin']
AccessPathUnrecognized
Section titled “AccessPathUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
AccessPrincipal
Section titled “AccessPrincipal”Whom access is held by: a person, or a service account.
kind: Union[Literal['user', 'service-account'], str]id: str
Account
Section titled “Account”The mailbox's account at its last poll: the connection's account id and its label (the address). Absent before its first poll, and after a take-over of a person's mailbox until the next poll. On a person's mailbox (config.mailbox.as: person), only the trigger's owner and a tenant admin read it; anyone else reads the trigger without it.
id: strlabel: str
kind: Optional[Annotated[Union[Literal['user', 'agent', 'system', 'admin', 'external'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](optional)id: str | None(optional)ip_address: str | None(ipAddresson the wire) (optional)user_agent: str | None(userAgenton the wire) (optional)
Adapter
Section titled “Adapter”adapter_id: str(adapterIdon the wire)kind: Union[Literal['model', 'model-provider', 'embedding', 'blob', 'sandbox', 'eval-judge'], str]name: strversion: strcapabilities: list[str]config: dict[str, Any] | None(optional)status: Union[Literal['active', 'degraded', 'error'], str]status_reason: str | None(statusReasonon the wire) (optional)
AdapterCollectionPage
Section titled “AdapterCollectionPage”data: list[kindgi.client.Adapter]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
AdapterConfigProblem
Section titled “AdapterConfigProblem”path: strmessage: str
AdapterTestOutcome
Section titled “AdapterTestOutcome”ok: boollatency_ms: float(latencyMson the wire)probe: dict[str, Any]
AdaptersPrepareBody
Section titled “AdaptersPrepareBody”AdaptersPrepareResponse
Section titled “AdaptersPrepareResponse”root: str
AddProjectMembershipBody
Section titled “AddProjectMembershipBody”Exactly one of userId and email names the person.
user_id: str | None(userIdon the wire) (optional)email: str | None(optional)role: Literal['viewer', 'editor', 'owner', 'admin']
AddProjectMembershipResult
Section titled “AddProjectMembershipResult”project_id: str(projectIdon the wire)user_id: str(userIdon the wire)role: Union[Literal['viewer', 'editor', 'owner', 'admin', 'member'], str]
AddTeamMembershipBody
Section titled “AddTeamMembershipBody”user_id: str(userIdon the wire)role: Union[Literal['admin', 'member'], str]
AddTeamMembershipResult
Section titled “AddTeamMembershipResult”team_id: str(teamIdon the wire)user_id: str(userIdon the wire)role: Union[Literal['admin', 'member'], str]
AddTeamProjectGrantBody
Section titled “AddTeamProjectGrantBody”team_id: str(teamIdon the wire)role: Union[Literal['viewer', 'editor', 'admin'], str]
AddTestCaseBody
Section titled “AddTestCaseBody”A correction's body on one of the agent's runs. At least one of decisions, answer and items. decisions: "wrong" needs an entry in shouldCall or mustNotCall; answer: "wrong" needs shouldSay or why.
run_id: str(runIdon the wire)decisions: Optional[Literal['right', 'wrong']](optional)should_call: list[kindgi.client.ShouldCallItem] | None(shouldCallon the wire) (optional)must_not_call: list[kindgi.client.MustNotCallItem] | None(mustNotCallon the wire) (optional)answer: Optional[Literal['right', 'wrong']](optional)should_say: str | None(shouldSayon the wire) (optional)why: str | None(optional)items: list[kindgi.client.CorrectedAnswerItemInput] | None(optional)
AddedAsLatest
Section titled “AddedAsLatest”Once added-as-latest: its version, who added it as its project's Latest, when, and why when given.
version: strby: kindgi.client.PinActorat: AwareDatetimereason: str | None(optional)
AdminKey
Section titled “AdminKey”The tenant's first admin key, without firstAdmin: shown once.
token_id: str(tokenIdon the wire)token: str
id: strversion: strproject_id: uuid.UUID | None(projectIdon the wire) (optional)name: strdescription: str | None(optional)instructions: kindgi.client.Instructions | kindgi.client.PromptRefparameters: list[kindgi.client.PromptParameter] | None(optional)settings: list[kindgi.client.BlockRef] | None(optional)model_settings: kindgi.client.BlockRef | None(modelSettingson the wire) (optional)capabilities: list[kindgi.client.Capability4]tools: list[kindgi.client.ToolRef]retrieval: list[kindgi.client.RetrievalIntent]memory: kindgi.client.AgentMemoryPolicy | None(optional)guardrails: list[str]preferred_provider: str | None(preferredProvideron the wire) (optional)preferred_model: str | None(preferredModelon the wire) (optional)conversation_policy: kindgi.client.ConversationPolicy | None(conversationPolicyon the wire) (optional)budget: kindgi.client.TurnBudget | None(optional)tags: list[str] | None(optional)output: kindgi.client.AgentOutputSpec | None(optional)tool_errors: kindgi.client.ToolErrorsSpec | None(toolErrorson the wire) (optional)parallel_tool_calls: bool | None(parallelToolCallson the wire) (optional)pins: kindgi.client.AgentPins | None(optional)derived_from: kindgi.client.VersionDerivation | None(derivedFromon the wire) (optional)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)pins_digest: str | None(pinsDigeston the wire) (optional)owner: kindgi.client.AgentOwner | None(optional)
AgentCollectionPage
Section titled “AgentCollectionPage”data: list[kindgi.client.Agent]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
AgentHighestVersion
Section titled “AgentHighestVersion”The agent's highest active version, which numbers the next one. It isn't what a project runs: that's each project's runs. Absent when the caller can't see it, or when the server doesn't pin versions.
version: str
AgentMemoryPolicy
Section titled “AgentMemoryPolicy”How the agent uses what it retrieves.
instruction_types: list[kindgi.client.InstructionType] | None(instructionTypeson the wire) (optional)remember: kindgi.client.Remember | None(optional)
AgentOutputSpec
Section titled “AgentOutputSpec”schema_: dict[str, Any](schemaon the wire)name: str | None(optional)max_repairs: int | None(maxRepairson the wire) (optional)
AgentOwner
Section titled “AgentOwner”The person the agent's corrections go to when they need its owner. Until one is set, those go to everyone who may publish the agent.
user_id: str(userIdon the wire)name: str | None(optional)
AgentPinBody
Section titled “AgentPinBody”version: strscope: kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeSegment | kindgi.client.AgentPinScopeUnrecognizedreason: str | None(optional)test_run_id: str | None(testRunIdon the wire) (optional)stop_following_latest: bool | None(stopFollowingLateston the wire) (optional)
AgentPinScopeUnrecognized
Section titled “AgentPinScopeUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
AgentPinnedVersion
Section titled “AgentPinnedVersion”agent_id: str(agentIdon the wire)scope: kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeSegment | kindgi.client.AgentPinScopeUnrecognizedversion: strchange_id: uuid.UUID(changeIdon the wire)set_at: AwareDatetime(setAton the wire)
AgentPinnedVersionList
Section titled “AgentPinnedVersionList”data: list[kindgi.client.AgentPinnedVersion]
AgentPinnedVersionResolution
Section titled “AgentPinnedVersionResolution”agent_id: str(agentIdon the wire)version: strvia: Union[Literal['pinned', 'latest'], str]pinned_scope: Optional[Annotated[kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeSegment | kindgi.client.AgentPinScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x107e85690>]](pinnedScopeon the wire) (optional)
AgentPins
Section titled “AgentPins”The exact block versions an agent version runs: its lockfile. Set by the runtime when the version is published, never in the publish body: each tool range resolves once to the version every run of that agent version uses, so a new tool version reaches the agent only through a new agent version. Absent on a version published before pins existed (its ranges resolve per run).
tools: dict[str, str]prompts: dict[str, str]settings: dict[str, str]
AgentProject
Section titled “AgentProject”project_id: uuid.UUID(projectIdon the wire)follows: Optional[Annotated[Union[Literal['pin', 'latest'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](optional)runs: kindgi.client.AgentProjectRuns | None(optional)segments: list[kindgi.client.AgentProjectSegmentPin] | None(optional)
AgentProjectList
Section titled “AgentProjectList”data: list[kindgi.client.AgentProject]highest: kindgi.client.AgentHighestVersion | None(optional)
AgentProjectRuns
Section titled “AgentProjectRuns”The version a run in the project that names none gets (and isn't a follow-up turn of a conversation).
version: strsince: AwareDatetime | None(optional)by: kindgi.client.PinActor | None(optional)deployment_id: str | None(deploymentIdon the wire) (optional)pinned_scope: Optional[Annotated[kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeSegment | kindgi.client.AgentPinScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x107e92810>]](pinnedScopeon the wire) (optional)pin_change_id: str | None(pinChangeIdon the wire) (optional)
AgentProjectSegmentPin
Section titled “AgentProjectSegmentPin”path: list[kindgi.client.ScopeSegment]version: str
AgentTestSet
Section titled “AgentTestSet”agent_id: str(agentIdon the wire)project_id: uuid.UUID(projectIdon the wire)cases: kindgi.client.TestSetCaseCountslast_added_at: AwareDatetime | None(lastAddedAton the wire) (optional)frozen_version: kindgi.client.TestSetFrozenVersion | None(frozenVersionon the wire) (optional)
AgentUnpinBody
Section titled “AgentUnpinBody”scope: kindgi.client.PinScopeTenant | kindgi.client.PinScopeOrg | kindgi.client.PinScopeProject | kindgi.client.PinScopeSegment | kindgi.client.AgentPinScopeUnrecognizedreason: str | None(optional)
AllowedRole
Section titled “AllowedRole”root: str
ApiKeyPrincipal
Section titled “ApiKeyPrincipal”Whom an API key acts for: a person, or a service account.
kind: Union[Literal['user', 'service-account'], str]id: str
ApiToken
Section titled “ApiToken”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)
ApiTokenPage
Section titled “ApiTokenPage”data: list[kindgi.client.Datum4]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
Approval
Section titled “Approval”id: uuid.UUIDtenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)subject_kind: str(subjectKindon the wire)subject_ref: dict[str, Any](subjectRefon the wire)required_role: Union[Literal['standard', 'senior', 'admin'], str](requiredRoleon the wire)status: Union[Literal['pending', 'assigned', 'in_review', 'approved', 'rejected', 'escalated', 'expired', 'withdrawn'], str]assigned_to: uuid.UUID | None(assignedToon the wire) (optional)batch_key: str | None(batchKeyon the wire) (optional)title: str | None(optional)description: str | None(optional)context: dict[str, Any] | None(optional)provenance_ref: kindgi.client.ProvenanceRef | None(provenanceRefon the wire) (optional)wait_token_id: str | None(waitTokenIdon the wire) (optional)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)decided_at: AwareDatetime | None(decidedAton the wire) (optional)expires_at: AwareDatetime | None(expiresAton the wire) (optional)decision: kindgi.client.ApprovalDecisionRecord | None(optional)requested_by: str | None(requestedByon the wire) (optional)separate_approver: bool | None(separateApproveron the wire) (optional)withdrawn_because: Optional[Annotated[Union[Literal['run-cancelled', 'run-ended'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](withdrawnBecauseon the wire) (optional)escalated_from: uuid.UUID | None(escalatedFromon the wire) (optional)escalated_to: uuid.UUID | None(escalatedToon the wire) (optional)approver: kindgi.client.ApprovalApprover | None(optional)connection: kindgi.client.ApprovalConnection | None(optional)
ApprovalApprover
Section titled “ApprovalApprover”The one member who may decide it.
kind: Union[Literal['member'], str]user_id: str(userIdon the wire)
ApprovalCollectionPage
Section titled “ApprovalCollectionPage”data: list[kindgi.client.Approval]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)order: Optional[Annotated[Union[Literal['asc', 'desc'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](optional)decided_by: Optional[Annotated[Union[Literal['me'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](decidedByon the wire) (optional)
ApprovalConnection
Section titled “ApprovalConnection”The connection the call would use: the person's own, or else the company's connection the call was gated on, which it then runs with or doesn't run (connection-changed). A person's account isn't named: show "this person's <appName> account".
app: strapp_name: str(appNameon the wire)as_: Optional[Annotated[Union[Literal['person', 'company'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](ason the wire) (optional)account: str | None(optional)name: str | None(optional)
ApprovalDecisionRecord
Section titled “ApprovalDecisionRecord”decision: Union[Literal['approve', 'reject', 'escalate', 'withdraw'], str]decided_by: str | None(decidedByon the wire) (optional)reviewer_id: uuid.UUID(reviewerIdon the wire)reviewer_role_at_decision: Union[Literal['standard', 'senior', 'admin'], str](reviewerRoleAtDecisionon the wire)decided_at: AwareDatetime(decidedAton the wire)rationale: str | None(optional)session_provider: str | None(sessionProvideron the wire) (optional)decider_name: str | None(deciderNameon the wire) (optional)fact_text: str | None(factTexton the wire) (optional)
ApprovalRequestedEvent
Section titled “ApprovalRequestedEvent”An approval was asked for: a reviewer's decision is waiting. Sent once per approval (an escalation is a new approval). projectId in the endpoint's filter narrows it to the approval's project.
id: strtype: Literal['approval.requested']created_at: AwareDatetime(createdAton the wire)data: kindgi.client.ApprovalRequestedEventData
ApprovalRequestedEventData
Section titled “ApprovalRequestedEventData”approval: kindgi.client.RequestedApproval
ApprovalStatus
Section titled “ApprovalStatus”root: Literal['pending', 'assigned', 'in_review', 'approved', 'rejected', 'escalated', 'expired', 'withdrawn']
Approvals
Section titled “Approvals”A passing pin waits for a reviewer.
role: Optional[Annotated[Union[Literal['standard', 'senior', 'admin'], str], <kindgi.client._open.OpenEnum object at 0x1073beed0>]](optional)separate_approver: bool | None(separateApproveron the wire) (optional)
ArtifactCollectionPage
Section titled “ArtifactCollectionPage”data: list[kindgi.client.Datum5]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
AttributeMapping
Section titled “AttributeMapping”Assertion attribute names. Defaults: userId = the NameID, email = email.
user_id: str | None(userIdon the wire) (optional)email: str | None(optional)display_name: str | None(displayNameon the wire) (optional)
AttributeMapping1
Section titled “AttributeMapping1”user_id: str | None(userIdon the wire) (optional)email: str | None(optional)display_name: str | None(displayNameon the wire) (optional)
AuditAuthzListResponse
Section titled “AuditAuthzListResponse”data: list[kindgi.client.Datum6]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
AuditSignInsListResponse
Section titled “AuditSignInsListResponse”data: list[kindgi.client.SignInEvent]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
AuthSettings
Section titled “AuthSettings”The workspace's sign-in settings.
second_factor: kindgi.client.SecondFactor(secondFactoron the wire)
AuthSettingsPatch
Section titled “AuthSettingsPatch”Require a second factor at sign-in, or stop requiring one.
second_factor: kindgi.client.SecondFactor1(secondFactoron the wire)