Klineo/Docs
Open app ↗

API schemas

SavedCandidateReviewResult

All API schemas

object — Additional properties rejected

Field Required at this level Type Description and constraints
schemaVersion Yes Constant saved-candidate-review-result-v1 —
organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
resultVersion Yes string Pattern: ^0x[0-9a-f]{64}$
completedAt Yes string Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
report Yes object Additional properties rejected
report.schemaVersion Yes Constant agent-candidate-review-report-v1 —
report.organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
report.runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
report.reviewScope Yes Constant RESEARCH_CANDIDATE_EVIDENCE —
report.status Yes Constant PARTIAL —
report.captureHash Yes string Pattern: ^0x[0-9a-f]{64}$
report.sourceCutoff Yes string Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
report.reviewedAt Yes string Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
report.reviewedCandidate Yes object Additional properties rejected
report.reviewedCandidate.packId Yes string Pattern: ^decisionpack_[a-f0-9]{32}$
report.reviewedCandidate.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
report.reviewedCandidate.contentHash Yes string Pattern: ^0x[0-9a-f]{64}$
report.checks Yes Array of object Max items: 16
report.checks[].id Yes string Max length: 100
report.checks[].status Yes string Allowed: RECORDED_PASS, RECORDED_FAIL, UNAVAILABLE
report.checks[].detail Yes string Max length: 1200
report.findings Yes Array of object Max items: 24
report.findings[].id Yes string Pattern: ^finding-[a-z0-9-]+$
report.findings[].summary Yes string Max length: 1200
report.findings[].evidenceIds Yes Array of string Max items: 8
report.trialReferences Yes Array of object Min items: 1; Max items: 4
report.trialReferences[].kind Yes Constant RESEARCH_TRIAL —
report.trialReferences[].runId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
report.trialReferences[].protocolHash Yes string Pattern: ^0x[0-9a-f]{64}$
report.trialReferences[].trialKey Yes string Allowed: baseline, alternative-1, alternative-2, alternative-3
report.trialReferences[].inputHash Yes string Pattern: ^0x[0-9a-f]{64}$
report.trialReferences[].artifactHash Yes At least one of: string; null —
report.trialReferences[].state Yes string Allowed: QUEUED, RUNNING, COMPLETED, FAILED, CANCELLED
report.trialReferences[].recordedAt Yes At least one of: string; null —
report.trialReferences[].failureCode Yes At least one of: string; null —
report.costs Yes Array of object Min items: 6; Max items: 6
report.costs[].category Yes string Allowed: GAS, INCENTIVE, PLATFORM_FEE, CAPITAL_LOSS, VENUE_FEE, SLIPPAGE
report.costs[].status Yes Constant UNAVAILABLE —
report.costs[].amountAtomic Yes null —
report.costs[].reason Yes string Max length: 1200
report.gaps Yes Array of string Max items: 24
report.nextChecks Yes Array of string Max items: 5
report.approvalAuthorityGranted Yes Constant false —
report.executionAuthorityGranted Yes Constant false —
report.publicationAuthorityGranted Yes Constant false —
applicability Yes object Additional properties rejected
applicability.scope Yes Constant CANDIDATE_CONTENT_AND_REFERENCED_GENERATIONS —
applicability.status Yes string Allowed: SAME_CONTENT, LIFECYCLE_CHANGED, CONTENT_CHANGED, SUBJECT_UNAVAILABLE
applicability.checkedAt Yes string Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
applicability.currentPackResourceVersion Yes At least one of: string; null —
applicability.currentContentHash Yes At least one of: string; null —
applicability.currentIssuerIntentResourceVersion Yes At least one of: string; null —
applicability.currentProjectResourceVersion Yes At least one of: string; null —
applicability.issuerIntentChanged Yes boolean —
applicability.projectObservationChanged Yes boolean —

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: #/components/schemas/SavedCandidateReviewResult in the OpenAPI contract.