OVE Asset Manager REST APIΒΆ
This API is designed to allow you to perform the majority of necessary file operations using a REST API
- /api/list:
GET: Lists available file stores- Response:
- Success:
HTTP Code: 200
Content:['store1', 'store2', '...']
- Success:
- /api/{store_id}/list
GET: Lists available projects in a file store- Query params:
filterByTag=<tag_name>- optional, filter all projects tagged by tag_namemetadata=true | false- optional, if true the project list include some metadata
- Response:
- Success:
HTTP Code: 200
Content:[{name: "project1", "creationDate": "date"}, "..."] - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."}
- Success:
/api/{store_id}/create
POST: Create project- Data Params:
Requires JSON body
{ "id":"project_id", "name":"project_name" "groups":["group1", "group2"] }- Response:
- Success:
HTTP Code: 200
Content:{'Project': project_id} - Error: Store not found
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Error: Project already exists
HTTP Code: 409 Conflict
Content:{title="Project already in use", description="..."}
- Success:
- Notes: With S3 storage, the project name must conform to s3 bucket name conventions
- /api/{store_id}/{project_id}/list
GET: Lists available assets in a file store with meta data- Query params:
includeEmpty=(True|False)- optional, if true all folders are included regardless of whether they are ove assets`filterByTag=<tag_name>- optional, filter all assets tagged by tag_name
- Response:
- Success:
HTTP Code: 200
Content:{ "Assets" : ["Asset1"] } - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."}
- Success:
/api/{store_id}/{project_id}/create
POST: Create asset- Data Params:
Requires JSON body
{ "name":"asset_id" }- Response:
- Success:
HTTP Code: 200
Content:{'Asset': asset_id} - Error: Store not found
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Error: Asset already exists
HTTP Code: 409 Conflict
Content:{title="Asset already in use", description="..."}
- Success:
- Notes: _With S3 storage, asset name is not allowed to contain / or any restricted asset names (e.g. new, .ovemeta, list, create)
- /api/{store_id}/{project_id}/object/{object_id}
HEAD: Check if an object exists- Response:
- Success: HTTP Code 200
- Not found: HTTP Code 404
GET: Get an object in JSON format- Response:
- Success:
HTTP Code: 200
Content:{ ... } - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Object not found:
HTTP Code: 400 Bad Request
Content:{title="Object not found", description="..."}
- Success:
POST: Create an object in JSON format- Data Params:
{ ... } - Response:
- Success:
HTTP Code: 200
Content:{ ... } - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Object not found:
HTTP Code: 400 Bad Request
Content:{title="Object not found", description="..."} - Object already in use:
HTTP Code: 400 Bad Request
Content:{title="Object already in use", description="..."}
- Success:
PUT: Update an object in JSON format- Data Params:
{ ... } - Response:
- Success:
HTTP Code: 200
Content:{ ... } - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Object not found:
HTTP Code: 400 Bad Request
Content:{title="Object not found", description="..."}
- Success:
- /api/{store_id}/{project_id}/object/{object_id}/info
GET: Get the object metadata- Response:
- Success:
HTTP Code: 200
Content:{ name="...", index_file="..."} - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Object not found:
HTTP Code: 400 Bad Request
Content:{title="Object not found", description="..."}
- Success:
- /api/{store_id}/{project_id}/meta/{asset_id}
HEAD: Check if an asset exists- Response:
- Success: HTTP Code 200
- Not found: HTTP Code 404
GET: Get an asset metadata- Response:
- Success:
HTTP Code: 200
Content:{ "name": "...", "project": "...", "description": "...", "index_file": "...", "version": "...", "history": "...", "tags": "...", "worker": "...", "processing_status": "...", "processing_error": "..." } - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Asset not found:
HTTP Code: 400 Bad Request
Content:{title="Asset not found", description="..."}
- Success:
POST: Update a project metadata- Data Params:
{"description": "...", "tags": "..."} - Response:
- Success:
HTTP Code: 200
Content:{"Status": "OK"} - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Asset not found:
HTTP Code: 400 Bad Request
Content:{title="Asset not found", description="..."}
- Success:
- /api/{store_id}/{project_id}/files/{asset_id}
GET: list of files under the current version of the asset- Response:
- Success:
HTTP Code: 200
Content:[{name: "...", url: "..."}] - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Asset not found:
HTTP Code: 400 Bad Request
Content:{title="Asset not found", description="..."}
- Success:
- /api/{store_id}/{project_id}/upload/{asset_id}
POST: Upload an asset- Query params:
filename= urlencoded string- required, the filename to upload into the assetcreate=true | false- optional, if true the asset will be created on upload (default: false)update=true | false- optional, if true the asset will be updated on upload (default: false)
- Headers:
content-disposition: filename="<file_name>" - Body:
the file octet stream - Response:
- Success:
HTTP Code: 200
Content:{"Status": "OK"} - Store not found:
HTTP Code: 400 Bad Request
Content:{title="Store not found", description="..."} - Project not found:
HTTP Code: 400 Bad Request
Content:{title="Project not found", description="..."} - Asset not found:
HTTP Code: 400 Bad Request
Content:{title="Asset not found", description="..."} - Asset exists:
HTTP Code: 409 Conflict
Content:{title="Asset exists", description="..."}
- Success:
- /api/workers
GET: Worker list- Response:
- Success:
HTTP Code: 200
Content:['worker1', ...]
- Success:
DELETE: Unregister a worker- Data Params:
{ name: "..." } - Response:
- Success:
HTTP Code: 200
Content:{ 'Status': 'OK' } - Worker not found:
HTTP Code: 400 Bad Request
Content:{title="Worker not found", description="..."}
- Success:
- /api/workers/queue
GET: Get current worker queue- Response:
- Success:
HTTP Code: 200
Content:[{task metadata}]
- Success:
POST: Schedule worker task- Data Params:
{ "worker_type": "...", "store_id": "...", "project_id": "...", "asset_id": "...", } - Response:
- Success:
HTTP Code: 200
Content:{ 'Status': 'OK' }
- Success:
DELETE: Cancel task- Data Params:
{ task_id: "..." } - Response:
- Success:
HTTP Code: 200
Content:{ 'Status': 'OK' }
- Success:
PATCH: Reset task status- Data Params:
{ task_id: "..." } - Response:
- Success:
HTTP Code: 200
Content:{ 'Status': 'OK' }
- Success: