Models: S
SamlIdentityProviderConfig
Section titled “SamlIdentityProviderConfig”A SAML 2.0 identity provider people sign in with: its metadata XML, or its entity ID, single sign-on URL and signing certificates. Keys are given as references, never as keys.
provider_id: str(providerIdon the wire)display_name: str | None(displayNameon the wire) (optional)domains: list[kindgi.client.Domain] | None(optional)join: Optional[Annotated[Union[Literal['invite', 'domain'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)sign_in: kindgi.client.IdentityProviderSignIn1 | kindgi.client.IdentityProviderSignIn2 | None(signInon the wire) (optional)metadata: dict[str, Any] | None(optional)kind: Literal['saml']idp_metadata_xml: str | None(idpMetadataXmlon the wire) (optional)idp_entity_id: str | None(idpEntityIdon the wire) (optional)idp_sso_url: AnyUrl | None(idpSsoUrlon the wire) (optional)idp_certificates: list[kindgi.client.IdpCertificate] | None(idpCertificateson the wire) (optional)sp_signing_key_ref: str | None(spSigningKeyRefon the wire) (optional)sp_decryption_key_ref: str | None(spDecryptionKeyRefon the wire) (optional)want_assertions_signed: bool | None(wantAssertionsSignedon the wire) (optional)attribute_mapping: kindgi.client.AttributeMapping | None(attributeMappingon the wire) (optional)
Sampling
Section titled “Sampling”models: list[kindgi.client.Model3]
ScheduleCollectionPage
Section titled “ScheduleCollectionPage”data: list[kindgi.client.ScheduleRecord]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ScheduleFire
Section titled “ScheduleFire”One fire of a schedule (an occurrence, or a run-now) and what came of it. pending while its run is being started.
fire_id: str(fireIdon the wire)schedule_id: str(scheduleIdon the wire)trigger_id: str(triggerIdon the wire)scheduled_for: AwareDatetime | None(scheduledForon the wire) (optional)fired_at: AwareDatetime(firedAton the wire)outcome: Union[Literal['pending', 'started', 'skipped-overlap', 'skipped-erasure', 'skipped', 'refused', 'failed'], str]run_id: uuid.UUID | None(runIdon the wire) (optional)pass_id: uuid.UUID | None(passIdon the wire) (optional)detail: str | None(optional)counts_toward_pause: bool | None(countsTowardPauseon the wire) (optional)missed_count: int | None(missedCounton the wire) (optional)manual: bool | None(optional)
ScheduleFirePage
Section titled “ScheduleFirePage”data: list[kindgi.client.ScheduleFire]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
ScheduleRecord
Section titled “ScheduleRecord”A schedule: what it runs (a flow at a version, or an agent), when (a cron expression in a timezone), as whom (its owner), and what it does after a gap or while a run is still going.
schedule_id: str(scheduleIdon the wire)trigger_id: str(triggerIdon the wire)flow_id: str | None(flowIdon the wire) (optional)flow_version: str | None(flowVersionon the wire) (optional)agent_id: str | None(agentIdon the wire) (optional)agent_version: str | None(agentVersionon the wire) (optional)improve: kindgi.client.ImproveScheduleTarget | None(optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)owner: kindgi.client.TriggerOwner | None(optional)cron_expression: str(cronExpressionon the wire)timezone: str | None(optional)input: Any | None(optional)catch_up: Optional[Annotated[Union[Literal['latest', 'skip'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](catchUpon the wire) (optional)overlap: Optional[Annotated[Union[Literal['skip', 'allow'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)starting_deadline_seconds: int | None(startingDeadlineSecondson the wire) (optional)label: str | Nonestatus: Union[Literal['active', 'paused'], str]status_reason: str | None(statusReasonon the wire) (optional)next_fire_at: AwareDatetime | None(nextFireAton the wire)upcoming: list[AwareDatetime] | None(optional)last_fired_at: AwareDatetime | None(lastFiredAton the wire)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)
ScheduleUnregisterResult
Section titled “ScheduleUnregisterResult”schedule_id: str(scheduleIdon the wire)unregistered: bool
ScopeOrg
Section titled “ScopeOrg”Discriminated Scope primitive (Tenant / Org / Project). Source of truth: Scope in @kindgi/platform.
kind: Literal['org']tenant_id: str(tenantIdon the wire)org_id: str(orgIdon the wire)
ScopeProject
Section titled “ScopeProject”Discriminated Scope primitive (Tenant / Org / Project). Source of truth: Scope in @kindgi/platform.
kind: Literal['project']tenant_id: str(tenantIdon the wire)project_id: str(projectIdon the wire)
ScopeSegment
Section titled “ScopeSegment”key: strvalue: str
ScopeTenant
Section titled “ScopeTenant”Discriminated Scope primitive (Tenant / Org / Project). Source of truth: Scope in @kindgi/platform.
kind: Literal['tenant']tenant_id: str(tenantIdon the wire)
ScopeUnrecognized
Section titled “ScopeUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
SecondFactor
Section titled “SecondFactor”required: boolon_previous_secret: int(onPreviousSecreton the wire)unusable: int
SecondFactor1
Section titled “SecondFactor1”required: bool
SecondFactorConfirmBody
Section titled “SecondFactorConfirmBody”A code from the new key, as the authenticator app shows it.
code: str
SecondFactorKey
Section titled “SecondFactorKey”A new key to set up, shown this once: uri for an authenticator app (as a QR code), key to type in. Nothing changes until it is confirmed.
key: struri: str
SecondFactorProof
Section titled “SecondFactorProof”Exactly one: a code from the authenticator app, or one of the recovery codes (used up by this).
code: str | None(optional)recovery_code: str | None(recoveryCodeon the wire) (optional)
SecondFactorRecoveryCodes
Section titled “SecondFactorRecoveryCodes”The 10 recovery codes, shown this once. Each signs in once in place of a code from the app; any earlier ones stop working.
recovery_codes: list[str](recoveryCodeson the wire)
SecondFactorRemoved
Section titled “SecondFactorRemoved”false when there was none to remove.
removed: bool
SecondFactorStatus
Section titled “SecondFactorStatus”A person's second factor, and whether their workspace requires one. With setUp, since, recoveryCodesLeft and usable are given; without it, started. Never a key or a code.
set_up: bool(setUpon the wire)started: bool | None(optional)since: AwareDatetime | None(optional)recovery_codes_left: int | None(recoveryCodesLefton the wire) (optional)usable: bool | None(optional)required: bool
SecretCollectionPage
Section titled “SecretCollectionPage”data: list[kindgi.client.SecretRecord]has_more: bool | None(hasMoreon the wire) (optional)next_cursor: str | None(nextCursoron the wire) (optional)
SecretListPage
Section titled “SecretListPage”data: list[kindgi.client.SecretRecord]next_cursor: str | None(nextCursoron the wire) (optional)
SecretRecord
Section titled “SecretRecord”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strcurrent_version: int(currentVersionon the wire)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)revoke_reason: str | None(revokeReasonon the wire) (optional)tags: dict[str, str] | None(optional)rotation_due_at: AwareDatetime | None(rotationDueAton the wire) (optional)
SecretRef
Section titled “SecretRef”The tenant secret holding the adapter's credential (an API key, a service-account key). Absent when the adapter needs none or finds its own (a cloud's default credentials).
env_name: str(envNameon the wire)name: str
SecretRef1
Section titled “SecretRef1”The secret the provider's key resolves from, by name only, never its value. Present when the registration has one. Only a caller allowed to check the provider sees it. kindgi dev uses it to keep a provider's key out of the pack service's environment. A runtime before 0.1.6 leaves it out.
env_name: str(envNameon the wire)name: str
SecretResolveOutcome
Section titled “SecretResolveOutcome”name: strversion_id: int(versionIdon the wire)value: strscope: Optional[Annotated[kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x108759490>]](optional)
SecretRevokeOutcome
Section titled “SecretRevokeOutcome”revoked: boolhard: bool
SecretRevokeResult
Section titled “SecretRevokeResult”revoked: boolhard: bool
SecretRotateOutcome
Section titled “SecretRotateOutcome”root: kindgi.client.SecretRotateOutcomeOk | kindgi.client.SecretRotateOutcomeRotationPending
SecretRotateOutcomeOk
Section titled “SecretRotateOutcomeOk”kind: Literal['ok']new_version_id: int(newVersionIdon the wire)old_version_id: int(oldVersionIdon the wire)old_version_revoked_at: AwareDatetime | None(oldVersionRevokedAton the wire) (optional)
SecretRotateOutcomeRotationPending
Section titled “SecretRotateOutcomeRotationPending”kind: Literal['rotation-pending']resume_token: str(resumeTokenon the wire)provider: str
SecretRotateRequest
Section titled “SecretRotateRequest”scope: Optional[Annotated[kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x10876e7d0>]](optional)env_name: str | None(envNameon the wire) (optional)new_value: str | None(newValueon the wire) (optional)revoke_old_after_ms: int | None(revokeOldAfterMson the wire) (optional)
SecretRotateResponseAsync
Section titled “SecretRotateResponseAsync”kind: Literal['async']rotation_id: uuid.UUID(rotationIdon the wire)status_url: str(statusUrlon the wire)events_url: str(eventsUrlon the wire)
SecretRotateResponseSync
Section titled “SecretRotateResponseSync”kind: Literal['sync']new_version_id: int(newVersionIdon the wire)old_version_id: int(oldVersionIdon the wire)old_version_revoked_at: AwareDatetime | None(oldVersionRevokedAton the wire) (optional)
SecretSetInput
Section titled “SecretSetInput”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strvalue: strwrite_mode: Literal['create-new', 'add-version'](writeModeon the wire)tags: dict[str, str] | None(optional)rotation_due_at: AwareDatetime | None(rotationDueAton the wire) (optional)if_version: int | None(ifVersionon the wire) (optional)
SecretSetOutcome
Section titled “SecretSetOutcome”root: kindgi.client.SecretSetOutcomeOk | kindgi.client.SecretSetOutcomeAlreadyExists | kindgi.client.SecretSetOutcomeVersionConflict | kindgi.client.SecretSetOutcomeError
SecretSetOutcomeAlreadyExists
Section titled “SecretSetOutcomeAlreadyExists”kind: Literal['already-exists']record: kindgi.client.SecretRecord
SecretSetOutcomeError
Section titled “SecretSetOutcomeError”kind: Literal['error']code: strmessage: str
SecretSetOutcomeOk
Section titled “SecretSetOutcomeOk”kind: Literal['ok']record: kindgi.client.SecretRecordversion_id: int(versionIdon the wire)
SecretSetOutcomeVersionConflict
Section titled “SecretSetOutcomeVersionConflict”kind: Literal['version-conflict']current_version: int(currentVersionon the wire)
SecretSetRequest
Section titled “SecretSetRequest”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strvalue: strwrite_mode: Literal['create-new', 'add-version'](writeModeon the wire)tags: dict[str, str] | None(optional)rotation_due_at: AwareDatetime | None(rotationDueAton the wire) (optional)if_version: int | None(ifVersionon the wire) (optional)app_env_file: bool | None(appEnvFileon the wire) (optional)
SecretSetResponse
Section titled “SecretSetResponse”record: kindgi.client.SecretRecordversion_id: int(versionIdon the wire)
SecretVersionCollectionPage
Section titled “SecretVersionCollectionPage”data: list[kindgi.client.SecretVersionRecord]has_more: bool | None(hasMoreon the wire) (optional)next_cursor: str | None(nextCursoron the wire) (optional)
SecretVersionRecord
Section titled “SecretVersionRecord”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strversion_id: int(versionIdon the wire)created_at: AwareDatetime(createdAton the wire)value: str | None(optional)revoked_at: AwareDatetime | None(revokedAton the wire) (optional)
Secrets
Section titled “Secrets”name: strref: str
Secrets1
Section titled “Secrets1”name: strvalue: str
ServedEnv
Section titled “ServedEnv”The env this runtime serves (KINDGI_ENV): where the values its tools read are kept. With refusesOtherEnvs, it's the only one: a secret, env value or secret reference under another env is refused (409 env-not-served), so a client defaults to envName. Absent when the runtime serves no env, and from older servers.
env_name: str(envNameon the wire)refuses_other_envs: bool(refusesOtherEnvson the wire)
ServiceAccount
Section titled “ServiceAccount”A named, non-human principal (service_account:<id>) for an app, a pipeline or a schedule. It acts through API keys minted for it.
service_account_id: str(serviceAccountIdon the wire)name: strdescription: str | None(optional)grants: list[Annotated[kindgi.client.ServiceAccountGrantTenantAdmin | kindgi.client.ServiceAccountGrantTenantMember | kindgi.client.ServiceAccountGrantProject | kindgi.client.ServiceAccountGrantUnrecognized, <kindgi.client._open.OpenUnion object at 0x1085c8e50>]]created_by: str | None(createdByon the wire) (optional)created_at: AwareDatetime(createdAton the wire)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)
ServiceAccountGrantBody
Section titled “ServiceAccountGrantBody”root: kindgi.client.ServiceAccountGrantTenantAdmin | kindgi.client.ServiceAccountGrantTenantMember | kindgi.client.ServiceAccountGrantProjectBody
ServiceAccountGrantProject
Section titled “ServiceAccountGrantProject”A role on one project; it replaces the account's role there.
kind: Literal['project']project_id: uuid.UUID(projectIdon the wire)role: Union[Literal['viewer', 'editor', 'owner', 'admin', 'member'], str]
ServiceAccountGrantProjectBody
Section titled “ServiceAccountGrantProjectBody”A role to give on one project; it replaces the account's role there.
kind: Literal['project']project_id: uuid.UUID(projectIdon the wire)role: Literal['viewer', 'editor', 'owner', 'admin']
ServiceAccountGrantTenantAdmin
Section titled “ServiceAccountGrantTenantAdmin”Tenant admin.
kind: Literal['tenant-admin']
ServiceAccountGrantTenantMember
Section titled “ServiceAccountGrantTenantMember”Tenant member: read the tenant's settings (providers, policies, adapters, signing keys, deployments), not its projects. A service account has it only when granted; a person has it from being added.
kind: Literal['tenant-member']
ServiceAccountGrantUnrecognized
Section titled “ServiceAccountGrantUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
ServiceAccountPage
Section titled “ServiceAccountPage”data: list[kindgi.client.ServiceAccount]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
ServiceAccountUngrantBody
Section titled “ServiceAccountUngrantBody”root: kindgi.client.ServiceAccountGrantTenantAdmin | kindgi.client.ServiceAccountGrantTenantMember | kindgi.client.ServiceAccountUngrantProject
ServiceAccountUngrantProject
Section titled “ServiceAccountUngrantProject”Whatever role the account has on one project.
kind: Literal['project']project_id: uuid.UUID(projectIdon the wire)
SessionApproval
Section titled “SessionApproval”The reviewer's decision at the turn's session approval gate, when the turn waited on one. A replay of the turn follows it.
approved: boolrationale: str | None(optional)
SetPackEndpointBody
Section titled “SetPackEndpointBody”url: strauth: Literal['google-id-token', 'token']token: strpack_env_revision: str | None(packEnvRevisionon the wire) (optional)
SetPackSuspendedBody
Section titled “SetPackSuspendedBody”suspended: boolreason: str | None(optional)
SetTenantImagePrefixBody
Section titled “SetTenantImagePrefixBody”prefix: str
SetTenantSuspendedBody
Section titled “SetTenantSuspendedBody”suspended: boolreason: str | None(optional)
SettingsBlockContent
Section titled “SettingsBlockContent”values: dict[str, Any]schema_: dict[str, Any] | None(schemaon the wire) (optional)
SignInEvent
Section titled “SignInEvent”One sign-in audit event, flattened: who signed in or out, how, from where, and what was refused.
id: strtimestamp: AwareDatetimekind: Union[Literal['signed-in', 'signed-out', 'sign-in-refused', 'sign-in-link-sent', 'sign-in-link-capped', 'sessions-revoked', 'sessions-ended', 'second-factor-set-up', 'second-factor-removed', 'recovery-codes-replaced'], str]outcome: struser_id: str | None(userIdon the wire) (optional)method: str | None(optional)client_address: str | None(clientAddresson the wire) (optional)reason: str | None(optional)session_id: str | None(sessionIdon the wire) (optional)by_user_id: str | None(byUserIdon the wire) (optional)
SignInOption
Section titled “SignInOption”One way to sign in, as a sign-in page shows it.
provider_id: str(providerIdon the wire)display_name: str(displayNameon the wire)sign_in_url: str(signInUrlon the wire)owner: Optional[Annotated[Union[Literal['tenant', 'deployment'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)
SignInOptions
Section titled “SignInOptions”data: list[kindgi.client.SignInOption]methods: kindgi.client.Methods | None(optional)legal: kindgi.client.Legal | None(optional)
Signature
Section titled “Signature”Runtime-side signature attached at emission time (if the deployment signs on write). Independent of the export-time signature returned by the export route.
algorithm: Literal['ed25519']key_id: str(keyIdon the wire)value: strsigned_at: AwareDatetime(signedAton the wire)
Signature1
Section titled “Signature1”algorithm: Literal['ed25519']key_id: str(keyIdon the wire)value: strsigned_at: AwareDatetime(signedAton the wire)
SignedComplianceEvidenceBundle
Section titled “SignedComplianceEvidenceBundle”Signed compliance evidence. Body: { bundleSchemaVersion, tenantId, filter, records, recordCount, exportedAt }.
tenant_id: uuid.UUID(tenantIdon the wire)kind: Optional[Literal['compliance']](optional)bundle: strbundle_schema_version: str(bundleSchemaVersionon the wire)algorithm: Union[Literal['ed25519', 'ecdsa-p256-sha256'], str]signing_key_id: str(signingKeyIdon the wire)signature: strpublic_key: str(publicKeyon the wire)canonicalization: Literal['sorted-key-json']exported_at: AwareDatetime(exportedAton the wire)
A site that signs its own people in to one project: it vouches for whoever is signed in there, so they ask the project's agents and decide its approvals as themselves. Each person it signs in is a person of the tenant, shown as "<name>, via <displayName>".
site_id: uuid.UUID(siteIdon the wire)project_id: uuid.UUID(projectIdon the wire)display_name: str(displayNameon the wire)origin: strapprovals_url: str(approvalsUrlon the wire)allowed_roles: list[kindgi.client.AllowedRole](allowedRoleson the wire)role_map: dict[str, kindgi.client.SiteRoleGrant](roleMapon the wire)reviewer_ceiling: Union[Literal['standard', 'senior'], str](reviewerCeilingon the wire)vouching: boolpeople_cap: int(peopleCapon the wire)new_people_per_day: int(newPeoplePerDayon the wire)keys: list[kindgi.client.SiteKey]audience: str | None(optional)created_at: AwareDatetime(createdAton the wire)created_by: str | None(createdByon the wire) (optional)paused_at: AwareDatetime | None(pausedAton the wire) (optional)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)
SiteCollectionPage
Section titled “SiteCollectionPage”data: list[kindgi.client.Site]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
SiteEnrollmentCode
Section titled “SiteEnrollmentCode”A one-time code the site posts with its public key (POST /v1/auth/sites/enroll). Shown once. Using it replaces the site's keys and ends its live sessions.
code: strexpires_at: AwareDatetime(expiresAton the wire)
SiteKey
Section titled “SiteKey”One of the site's live public keys. Kindgi never has a private half.
kid: strthumbprint: stradded_at: AwareDatetime(addedAton the wire)
SiteRoleGrant
Section titled “SiteRoleGrant”What a person with one of the site's roles gets in the site's project. Reading the project comes with every role; nothing above it ever does.
ask: boolreviewer: Optional[Annotated[Union[Literal['standard', 'senior'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)
SiteSignInBody
Section titled “SiteSignInBody”statement: str
SiteSignInResult
Section titled “SiteSignInResult”token: strexpires_at: AwareDatetime(expiresAton the wire)user_id: str(userIdon the wire)actor: strproject_id: uuid.UUID(projectIdon the wire)
SourceFreshness
Section titled “SourceFreshness”ttl_seconds: int | None(ttlSecondson the wire) (optional)last_verified_at: AwareDatetime | None(lastVerifiedAton the wire) (optional)etag: str | None(optional)source_version: str | None(sourceVersionon the wire) (optional)
SourceRefresh
Section titled “SourceRefresh”strategy: Union[Literal['on-read', 'background', 'manual'], str]handler: str | None(optional)priority: int | None(optional)
StartEvalRunBody
Section titled “StartEvalRunBody”Exactly one of agentRef or flowRef MUST be supplied. dryRun: true returns a plan preview without invoking the subject. For a judged suite (a test set), the run is a comparison: agentRef or flowRef with its version is the candidate, replayed on each case without doing anything the past run didn't (a flow stops at a write the replay refuses); baseline (default 'recorded'), reads (default recorded), repetitions (default 1) and k (default 10) set how. With flowRef, versions runs the flow with some of its agents or tools at other versions; an id the flow doesn't use, or a version that isn't published, is refused (400 validation-failed, each under details.issues).
project_id: uuid.UUID(projectIdon the wire)agent_ref: kindgi.client.EvalRunAgentRef | None(agentRefon the wire) (optional)flow_ref: kindgi.client.EvalRunFlowRef | None(flowRefon the wire) (optional)dry_run: bool | None(dryRunon the wire) (optional)correlation_id: str | None(correlationIdon the wire) (optional)baseline: Union[Annotated[Union[Literal['recorded'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>], kindgi.client.EvalBaseline1, kindgi.client.EvalBaseline2, NoneType](optional)reads: Optional[Literal['recorded', 'live']](optional)repetitions: int | None(optional)k: int | None(optional)versions: kindgi.client.FlowVersionOverrides | None(optional)class_weights: Optional[Literal['as-recorded', 'restricted-only']](classWeightson the wire) (optional)overrides: kindgi.client.EvalOverrides | None(optional)sample: kindgi.client.EvalSample | None(optional)
StartEvalRunResult
Section titled “StartEvalRunResult”run_id: uuid.UUID(runIdon the wire)dry_run_preview: dict[str, Any] | None(dryRunPreviewon the wire) (optional)
StartRunBody
Section titled “StartRunBody”root: kindgi.client.StartRunBody1 | kindgi.client.StartRunBody2
StartRunBody1
Section titled “StartRunBody1”Start a run. Exactly one of agent or flow MUST be supplied (single Run primitive).
agent: stragent_version: str | None(agentVersionon the wire) (optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)segments: list[kindgi.client.ScopeSegment] | None(optional)input: Anyoptions: kindgi.client.Options | None(optional)
StartRunBody2
Section titled “StartRunBody2”Start a run. Exactly one of agent or flow MUST be supplied (single Run primitive).
flow: strflow_version: str | None(flowVersionon the wire) (optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)segments: list[kindgi.client.ScopeSegment] | None(optional)input: Anyoptions: kindgi.client.Options | None(optional)
StartRunOptions
Section titled “StartRunOptions”dry_run: bool | None(dryRunon the wire) (optional)wait: bool | None(optional)
run_id: str(runIdon the wire)node_id: str | None(nodeIdon the wire) (optional)scope: str | None(optional)agent_id: str(agentIdon the wire)agent_version: str(agentVersionon the wire)retrieved: Any | None(optional)recalled: Any | None(optional)
Stopped
Section titled “Stopped”Set when the replay stopped at a refused write: what it would have done.
tool_id: str(toolIdon the wire)arguments: Anyreason: str | None(optional)
Subject
Section titled “Subject”kind: Union[Literal['participant', 'external'], str]id: str
Subject1
Section titled “Subject1”kind: str | None(optional)id: str | None(optional)
SuccessStatus
Section titled “SuccessStatus”min: intmax: int
id: strversion: str | None(optional)
Suite1
Section titled “Suite1”id: strversion: str
SupersedeFactBody
Section titled “SupersedeFactBody”The fact's next revision: new content, and optionally new retention, subjects and times (absent ones keep their current values). Its scope and type stay. expectVersion: only if the current revision is still this one.
content: Anyexpect_version: int | None(expectVersionon the wire) (optional)retention: kindgi.client.Retention | None(optional)subjects: list[kindgi.client.FactSubject] | None(optional)valid_from: AwareDatetime | None(validFromon the wire) (optional)valid_until: AwareDatetime | None(validUntilon the wire) (optional)observed_at: AwareDatetime | None(observedAton the wire) (optional)
SuppressedRefusals
Section titled “SuppressedRefusals”Refusals and skipped deliveries this minute past the 20 recorded in its history, which only counted.
since: AwareDatetimecount: int
SystemDeploymentEntry
Section titled “SystemDeploymentEntry”A deployment as whatever runs its pack service needs it: ids and the image, nothing of the tenant beyond its id. Name the service packServiceName(tenantId, deploymentId) (@kindgi/api). In the retire list, reason says why the service should go.
tenant_id: uuid.UUID(tenantIdon the wire)deployment_id: str(deploymentIdon the wire)pack_id: str(packIdon the wire)project_id: str | None(projectIdon the wire) (optional)image_ref: str(imageRefon the wire)image_digest: str(imageDigeston the wire)artifact_version: str(artifactVersionon the wire)activated_at: AwareDatetime(activatedAton the wire)reason: Optional[Annotated[Union[Literal['superseded', 'tenant-closing', 'tenant-suspended', 'project-suspended', 'pack-suspended'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)
SystemDeploymentPage
Section titled “SystemDeploymentPage”data: list[kindgi.client.SystemDeploymentEntry]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
SystemKey
Section titled “SystemKey”A system key (kgi_sy_…): the operator's, acting in no tenant. Never its secret.
id: strlabel: str | None(optional)scopes: list[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:license', 'kindgi:system']]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)
SystemKeyList
Section titled “SystemKeyList”data: list[kindgi.client.Datum2]
SystemOpenapiResponse
Section titled “SystemOpenapiResponse”SystemPackEnv
Section titled “SystemPackEnv”What the deployment's pack service is to be given: where each declared name is set, and the values when nothing stands in the way, plain ones in env and, when asked for (secrets=values), secrets in secrets. Each value given out is on the audit record: env-resolved as the deployment's system read, and secret-resolved (caller pack-env, with the request id as its correlationId and the system key's id), written before the answer.
revision: strnames: list[kindgi.client.PackEnvNameStatus]problem: Optional[Annotated[Union[Literal['pack-env-ambiguous', 'pack-env-secret-not-yet', 'pack-env-missing', 'pack-env-secret-unreadable'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]](optional)env: dict[str, str] | None(optional)secrets: dict[str, kindgi.client.PackEnvSecretValue] | None(optional)
SystemPackEnvEntry
Section titled “SystemPackEnvEntry”A deployment whose pack service runs on declared env values that changed since: ids, the image, and the revision it runs. Never a value. Name the service packServiceName(tenantId, deploymentId) (@kindgi/api).
tenant_id: uuid.UUID(tenantIdon the wire)deployment_id: str(deploymentIdon the wire)pack_id: str(packIdon the wire)project_id: str | None(projectIdon the wire) (optional)image_ref: str(imageRefon the wire)image_digest: str(imageDigeston the wire)artifact_version: str(artifactVersionon the wire)activated_at: AwareDatetime(activatedAton the wire)applied_revision: str | None(appliedRevisionon the wire) (optional)held: kindgi.client.SystemPackEnvHold | None(optional)
SystemPackEnvHold
Section titled “SystemPackEnvHold”Only when it's held at its current revision for a cause the platform fixes, not the owner: it's listed every time, as the revision doesn't move when that's fixed. Read its values again when your back-off says. Absent otherwise.
code: Union[Literal['pack-env-secret-unreadable', 'pack-env-secrets-unaudited'], str]since: AwareDatetime
SystemPackEnvPage
Section titled “SystemPackEnvPage”data: list[kindgi.client.SystemPackEnvEntry]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
SystemTenant
Section titled “SystemTenant”A tenant, as the operator sees it: never its content.
id: uuid.UUIDname: strslug: strstate: Union[Literal['active', 'suspended', 'closing'], str]created_at: AwareDatetime(createdAton the wire)test: boolproduction_allowed: bool(productionAllowedon the wire)image_prefix: str | None(imagePrefixon the wire) (optional)closing_at: AwareDatetime | None(closingAton the wire) (optional)suspended_at: AwareDatetime | None(suspendedAton the wire) (optional)suspended_reason: str | None(suspendedReasonon the wire) (optional)
SystemTenantList
Section titled “SystemTenantList”data: list[kindgi.client.SystemTenant]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
SystemWhoami
Section titled “SystemWhoami”key_id: str(keyIdon the wire)scopes: list[str]expires_at: AwareDatetime | None(expiresAton the wire) (optional)