RunJobCreateResult run.job-create-result@1
Generated at from
openvibe-contracts v0.97.0 and
openvibe-sdk v0.26.0.
- Version
- 1.0.0
- Owner
- run
- Visibility
- public
- Status
- planned
- Compatibility
- backward
- Decision
- ADR-034
- Schema
https://openvibe.network/contracts/run/job-create-result.v1.json
run.job-create-result@1 (PLANNED; plan T14 R1, ADR-034): the answer of POST /api/v1/jobs on OpenVibe.Run (capability run.job.submit). 201 with created true and the new job, queued; 200 with created false and the job first created under the same idempotency_key (in whatever state it has reached). Refusals are application/problem+json: 400 (body invalid), 413 (args over 512 KiB), 422 run.limits.exceeded or a duplicate input name, 409 run.idempotency.conflict, 429 (quota).
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
created | boolean | yes | false when the idempotency_key matched an earlier job. | |
job | run.job-read-result | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: created
{
"created": true,
"job": {
"id": "job_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"project_id": "prj_01JAB2C3D4E5F6G7H8J9K0MNPR",
"requester": {
"type": "app",
"id": "app_01JAB2C3D4E5F6G7H8J9K0MNPV"
},
"class": "function",
"artifact": {
"name": "thumbnail",
"version": "1.2.0"
},
"inputs": [
{
"name": "photo.jpg",
"media_id": "med_01JAB2C3D4E5F6G7H8J9K0MNPS",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size_bytes": 482113
}
],
"limits": {
"wall_ms": 30000,
"cpu_ms": 30000,
"mem_bytes": 268435456
},
"ttl_ms": 630000,
"egress": "none",
"requirements": {
"kind": "run.function",
"mobility": "job",
"latency_class": "background",
"objective": "balanced"
},
"idempotency_key": "thumb:photo-7",
"state": "queued",
"placement": null,
"timings": {
"created_at": "2026-10-04T10:00:00.000Z",
"placed_at": null,
"started_at": null,
"finished_at": null
},
"exit": null,
"result": null,
"usage": {
"seconds": 0,
"wall_ms": 0,
"cpu_ms": null,
"mem_peak_bytes": null
},
"error": null
}
}Valid: idempotent-repeat
{
"created": false,
"job": {
"id": "job_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"project_id": "prj_01JAB2C3D4E5F6G7H8J9K0MNPR",
"requester": {
"type": "app",
"id": "app_01JAB2C3D4E5F6G7H8J9K0MNPV"
},
"class": "function",
"artifact": {
"name": "thumbnail",
"version": "1.2.0"
},
"inputs": [
{
"name": "photo.jpg",
"media_id": "med_01JAB2C3D4E5F6G7H8J9K0MNPS",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size_bytes": 482113
}
],
"limits": {
"wall_ms": 30000,
"cpu_ms": 30000,
"mem_bytes": 268435456
},
"ttl_ms": 630000,
"egress": "none",
"requirements": {
"kind": "run.function",
"mobility": "job",
"latency_class": "background",
"objective": "balanced"
},
"idempotency_key": "thumb:photo-7",
"state": "running",
"placement": {
"node": "dev_01JAB2C3D4E5F6G7H8J9K0MNPT",
"provider": null,
"region": "us-west"
},
"timings": {
"created_at": "2026-10-04T10:00:00.000Z",
"placed_at": "2026-10-04T10:00:00.400Z",
"started_at": "2026-10-04T10:00:00.650Z",
"finished_at": null
},
"exit": null,
"result": null,
"usage": {
"seconds": 0,
"wall_ms": 0,
"cpu_ms": null,
"mem_peak_bytes": null
},
"error": null
}
}Rejected: without-created
{
"job": {
"id": "job_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"project_id": "prj_01JAB2C3D4E5F6G7H8J9K0MNPR",
"requester": {
"type": "app",
"id": "app_01JAB2C3D4E5F6G7H8J9K0MNPV"
},
"class": "function",
"artifact": {
"name": "thumbnail",
"version": "1.2.0"
},
"inputs": [
{
"name": "photo.jpg",
"media_id": "med_01JAB2C3D4E5F6G7H8J9K0MNPS",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size_bytes": 482113
}
],
"limits": {
"wall_ms": 30000,
"cpu_ms": 30000,
"mem_bytes": 268435456
},
"ttl_ms": 630000,
"egress": "none",
"requirements": {
"kind": "run.function",
"mobility": "job",
"latency_class": "background",
"objective": "balanced"
},
"idempotency_key": "thumb:photo-7",
"state": "queued",
"placement": null,
"timings": {
"created_at": "2026-10-04T10:00:00.000Z",
"placed_at": null,
"started_at": null,
"finished_at": null
},
"exit": null,
"result": null,
"usage": {
"seconds": 0,
"wall_ms": 0,
"cpu_ms": null,
"mem_peak_bytes": null
},
"error": null
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('run.job-create-result@1', value); // { valid, errors: [{ path, message }] }