Project queue
/projects/v1/{id}/roots/{rootId}Owners. Without confirm, a repository with anything open answers 409 root_has_work with the counts. With it, the repository's open tasks are closed as cancelled, claims are released (reason root_removed), the repository leaves every delegates list and its live plans are abandoned. Its boards and map stay readable for 30 days.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
The repository.
Query Parameters
Send 1 (or true) to remove the repository although work is open on it.
Value in
- "1"
- "true"
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/projects/v1/string/roots/string"{ "root": "string", "rootName": "string", "cancelled": 0, "released": 0, "plans": 0, "keptUntil": "2019-08-24T14:15:22Z"}/projects/v1/{id}/roots/{rootId}Owners, as a person. Names which node holds the canonical clone, and (from 0.34.0) a repository's name, in words for people. A body of only name renames the repository on every clone and touches nothing else. A repository removed in the last 30 days, put again, comes back at once. An archived project is read-only.
Authorization
cloudSession Mojo Up AI Cloud: a person's access token from /auth/v1/token. Name the organisation with the X-Aioe-Organisation header where a request acts for one.
In: header
Path Parameters
The project.
The repository (letters, digits and _ . : -).
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/projects/v1/string/roots/string" \ -H "Content-Type: application/json" \ -d '{}'{ "rootId": "string", "nodeId": "string", "name": "string", "remote": "string", "remoteKey": "string", "branch": "string", "canonical": false, "deviceId": "string", "lastSeenAt": "string", "hostState": "ready", "distro": "string", "targetState": "available", "classification": "public"}/projects/v1/{id}/roots/{rootId}/classificationA project's owners, as a person (AIOE 0.40.0). Sets the repository's classification, never weaker than its project's; null goes back to inheriting the project's. An archived project is read-only.
Authorization
cloudSession Mojo Up AI Cloud: a person's access token from /auth/v1/token. Name the organisation with the X-Aioe-Organisation header where a request acts for one.
In: header
Path Parameters
The project.
The repository.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/projects/v1/string/roots/string/classification" \ -H "Content-Type: application/json" \ -d '{ "classification": "string" }'{ "rootId": "string", "rootName": "string", "classification": "string", "effective": "string"}/projects/v1/{id}/agent-filesFor members of the project (AIOE 0.40.0): each repository's instructions, hooks, skills, agents and MCP servers as its freshest reporting machine saw them, and whether the organisation has approved each server. A read; nothing is audited.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/projects/v1/string/agent-files"{ "roots": [ {} ], "summary": {}}/projects/v1/{id}/assuranceFor members of the project (AIOE 0.40.0): the lowest assurance rating its classification allows, and for each provider and tier its rating, whether it is allowed and why.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/projects/v1/string/assurance"{ "classification": "string", "effective": { "minimumRating": "string", "providers": [ {} ] }}/projects/v1/{id}/partsNewest first. A viewer or better. A part still waiting carries waitingFor, for example "waiting for a machine with api".
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
Query Parameters
Only the parts of this project task (its uid).
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/projects/v1/string/parts"{ "parts": [ { "partId": "string", "projectTask": "string", "rootId": "string", "rootName": "string", "title": "string", "state": "placing", "requestedBy": "string", "requestedAt": "2019-08-24T14:15:22Z", "placedAt": "2019-08-24T14:15:22Z", "deviceName": "string", "waitingFor": "string" } ]}/projects/v1/{id}/partsA contributor or better. Sends the part to an online device that holds the repository. When nobody holding it is online the part is kept at the home and placed on the holder's next registration or heartbeat (waiting_for_device). Audited as part.place.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/projects/v1/string/parts" \ -H "Content-Type: application/json" \ -d '{ "projectTask": "string", "rootId": "string", "title": "string" }'{ "partId": "string", "state": "placed", "rootName": "string"}/projects/v1/{id}/queue/leases/renewOne call renews many leases and names the ones the caller has lost, with the reason: taken_over, released, lapsed, revoked, done or not_found. A contributor or better.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/projects/v1/string/queue/leases/renew" \ -H "Content-Type: application/json" \ -d '{ "leases": [ { "rootId": "string", "board": "string", "taskId": "string", "epoch": 0 } ] }'{ "leaseSeconds": 0, "renewed": [ { "rootId": "string", "board": "string", "taskId": "string", "epoch": 0, "leaseUntil": "2019-08-24T14:15:22Z" } ], "lost": [ { "rootId": "string", "board": "string", "taskId": "string", "reason": "taken_over", "by": "string", "byName": "string", "byDeviceName": "string", "at": "2019-08-24T14:15:22Z" } ]}/projects/v1/{id}/queue/claim/{taskId}/takeoverThe claim's own person from any device, the task's assignee, or an owner may take it; an agent for the operations manager only once the claim is stale. The task goes back to the queue, or, with deviceId, to that device (the caller's own, or one that reaches the project) at the next epoch. ifEpoch fences the call: a claim that has moved on is refused.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
The claimed task.
Query Parameters
The board's root.
The board.
Header Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/projects/v1/string/queue/claim/string/takeover?rootId=string&board=string" \ -H "Content-Type: application/json" \ -d '{ "ifEpoch": 0 }'{ "task": {}, "claimedBy": {}, "previous": {}}/projects/v1/{id}/queue/claim/{taskId}A device names the claim's epoch and releases it. A person releases without one: the person working on the task, or an owner. The task goes back to the queue.
A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.
In: header
Path Parameters
The project.
The claimed task.
Query Parameters
The board's root.
The board.
The claim's whole-number epoch. A device must send it; a claim that has moved on is refused.
0 <= valueHeader Parameters
Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/projects/v1/string/queue/claim/string?rootId=string&board=string"{}