Skip to content

Promises endpoints

This page is generated from the OpenAPI document of the API (src/Vellum.Web/openapi.json) when the documentation is built.

Parameter In Type Required
projectId path string (uuid) yes
cursor query string no
limit query integer (int32) or string (int32) no
Status Meaning Body
200 OK PageOfPromiseSummaryDto
Parameter In Type Required
projectId path string (uuid) yes

Request body (application/json): PromiseRequest

Field Type Required Notes
title string yes
claim string yes
scope string or null yes
preconditions string or null yes
expectedOutcome string or null yes
forbiddenOutcome string or null yes
evidenceCriteria string or null yes
forbiddenEvents array of ForbiddenEvent or null yes
requiresPattern null or RequiredPattern yes
links null or PromiseLinks yes
origin string or null no
Status Meaning Body
201 Created PromiseDto
413 Payload Too Large ErrorResponse
429 Too Many Requests ErrorResponse

GET /api/projects/{projectId}/promises/prefix

Section titled “GET /api/projects/{projectId}/promises/prefix”
Parameter In Type Required
projectId path string (uuid) yes
Status Meaning Body
200 OK PrefixDto

PUT /api/projects/{projectId}/promises/prefix

Section titled “PUT /api/projects/{projectId}/promises/prefix”
Parameter In Type Required
projectId path string (uuid) yes

Request body (application/json): SetPrefixRequest

Field Type Required Notes
prefix string yes
startAt integer (int32) or string (int32) or null no pattern "^-?(?:0|[1-9]\\d*)$"
Status Meaning Body
200 OK PrefixDto
409 Conflict ErrorResponse

GET /api/projects/{projectId}/promises/{promiseId}

Section titled “GET /api/projects/{projectId}/promises/{promiseId}”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
Status Meaning Body
200 OK PromiseDto

PUT /api/projects/{projectId}/promises/{promiseId}

Section titled “PUT /api/projects/{projectId}/promises/{promiseId}”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes

Request body (application/json): PromiseRequest

Field Type Required Notes
title string yes
claim string yes
scope string or null yes
preconditions string or null yes
expectedOutcome string or null yes
forbiddenOutcome string or null yes
evidenceCriteria string or null yes
forbiddenEvents array of ForbiddenEvent or null yes
requiresPattern null or RequiredPattern yes
links null or PromiseLinks yes
origin string or null no
Status Meaning Body
200 OK PromiseDto
413 Payload Too Large ErrorResponse
429 Too Many Requests ErrorResponse

DELETE /api/projects/{projectId}/promises/{promiseId}

Section titled “DELETE /api/projects/{projectId}/promises/{promiseId}”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
Status Meaning Body
204 No Content none
403 Forbidden ErrorResponse

POST /api/projects/{projectId}/promises/{promiseId}/revise

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/revise”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes

Request body (application/json): ReviseRequest

Field Type Required Notes
retire boolean no default false
Status Meaning Body
200 OK PromiseDto

POST /api/projects/{projectId}/promises/{promiseId}/approve

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/approve”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes

Request body (application/json): ApproveRequest

Field Type Required Notes
revision integer (int32) or string (int32) yes pattern "^-?(?:0|[1-9]\\d*)$"
contentHash string yes
Status Meaning Body
200 OK PromiseDto
403 Forbidden ErrorResponse
409 Conflict RevisionChangedResponse

GET /api/projects/{projectId}/promises/{promiseId}/runs

Section titled “GET /api/projects/{projectId}/promises/{promiseId}/runs”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
cursor query string no
limit query integer (int32) or string (int32) no
obligation query string no
Status Meaning Body
200 OK PageOfVerificationRun

POST /api/projects/{projectId}/promises/{promiseId}/obligations

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/obligations”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes

Request body (application/json): ObligationRequest

Field Type Required Notes
kind string yes
title string yes
recipe ObligationRecipe yes
Status Meaning Body
201 Created PromiseDto
429 Too Many Requests ErrorResponse

POST /api/projects/{projectId}/promises/{promiseId}/obligations/generate

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/obligations/generate”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
Status Meaning Body
200 OK GenerateObligationsResponse
429 Too Many Requests ErrorResponse

PUT /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}

Section titled “PUT /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
obligationKey path string yes

Request body (application/json): ObligationRequest

Field Type Required Notes
kind string yes
title string yes
recipe ObligationRecipe yes
Status Meaning Body
200 OK PromiseDto
403 Forbidden ErrorResponse
429 Too Many Requests ErrorResponse

DELETE /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}

Section titled “DELETE /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
obligationKey path string yes
Status Meaning Body
200 OK PromiseDto
403 Forbidden ErrorResponse

POST /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}/run

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}/run”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
obligationKey path string yes

Request body (application/json): RunObligationRequest

Field Type Required Notes
modelRevisionId string (uuid) or null no
branchId string (uuid) or null no
scanId string (uuid) or null no
revision integer (int32) or string (int32) or null no pattern "^-?(?:0|[1-9]\\d*)$"
Status Meaning Body
200 OK VerificationRun
429 Too Many Requests ErrorResponse

POST /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}/evidence

Section titled “POST /api/projects/{projectId}/promises/{promiseId}/obligations/{obligationKey}/evidence”
Parameter In Type Required
projectId path string (uuid) yes
promiseId path string (uuid) yes
obligationKey path string yes

Request body (application/json): RecordEvidenceRequest

Field Type Required Notes
result string yes
source ExternalSourceRequest yes
artifactDigest string or null yes
revision integer (int32) or string (int32) or null no pattern "^-?(?:0|[1-9]\\d*)$"
Status Meaning Body
200 OK VerificationRun
429 Too Many Requests ErrorResponse