openapi: 3.0.0
info:
title: WebFaceSimulator API scheme
version: 0.0.0
servers:
- url: /api
description: main server endpoint
variables: {}
paths:
/cron:
get:
description: "Advances the task queue. Executes any runnable processes and updates their state. Should be called periodically, e.g., every minute."
operationId: Background_cron
responses:
'204':
description: >-
There is no content to send for this request, but the headers may be
useful.
/image:
get:
description: "Lists docker images that can be specified as a job runner. FaceSimulator is one of them."
operationId: Images_list
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
type: string
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
/job:
get:
description: "Returns a list of jobs."
operationId: Jobs_list
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Job'
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
post:
description: "Starts a new job.\n\t- filedata (required): List of files required for execution, to be uploaded. Can be empty if not needed.\n\t- filepath (required): Paths for filedata, extracted according to these paths.\n\t- image (required): Docker image to execute the job.\n\t- config: JSON file for configuration. If not specified, inferred from file (top-level file with .json extension)."
operationId: Jobs_push
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
filedata:
type: array
items:
type: string
format: binary
filepath:
type: array
items:
type: string
image:
type: string
config:
type: string
required:
- filedata
- filepath
- image
encoding:
filedata:
contentType: '*/*'
filepath:
contentType: text/plain
required: true
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'/job/{id}':
delete:
description: "Deletes a job."
operationId: Jobs_delete
parameters:
- in: path
name: id
required: true
schema:
$ref: '#/components/schemas/UUID'
style: simple
responses:
'204':
description: >-
There is no content to send for this request, but the headers may be
useful.
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'404':
description: The server cannot find the requested resource.
content:
text/plain:
schema:
type: string
'/job/{id}/files':
get:
description: "Returns a list of files for the job."
operationId: Jobs_filelist
parameters:
- in: path
name: id
required: true
schema:
$ref: '#/components/schemas/UUID'
style: simple
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
type: string
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'404':
description: The server cannot find the requested resource.
content:
text/plain:
schema:
type: string
'/job/{id}/files/{path_file}':
get:
description: "Delivers a file for the job. path_file can include / (slashes)."
operationId: Jobs_file
parameters:
- in: path
name: id
required: true
schema:
$ref: '#/components/schemas/UUID'
style: simple
- in: path
name: path_file
required: true
schema:
type: string
style: simple
responses:
'200':
description: The request has succeeded.
content:
application/octet-stream:
schema:
type: string
format: binary
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'404':
description: The server cannot find the requested resource.
content:
text/plain:
schema:
type: string
'/job/{id}/tasks':
get:
description: "Returns a list of tasks for the job."
operationId: Jobs_tasklist
parameters:
- in: path
name: id
required: true
schema:
$ref: '#/components/schemas/UUID'
style: simple
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'404':
description: The server cannot find the requested resource.
content:
text/plain:
schema:
type: string
/status:
get:
description: "Retrieves system information (GPU usage status) and running tasks."
operationId: StatusInterface_status
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
/task:
get:
operationId: Tasks_list
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'/task/{id}':
delete:
operationId: Tasks_stop
parameters:
- in: path
name: id
required: true
schema:
$ref: '#/components/schemas/UUID'
style: simple
responses:
'204':
description: >-
There is no content to send for this request, but the headers may be
useful.
'400':
description: The server could not understand the request due to invalid syntax.
content:
text/plain:
schema:
type: string
'404':
description: The server cannot find the requested resource.
content:
text/plain:
schema:
type: string
components:
schemas:
Device:
type: object
properties:
name:
type: string
memory_used_megabytes:
type: integer
format: int32
memory_size_megabytes:
type: integer
format: int32
required:
- name
- memory_used_megabytes
- memory_size_megabytes
Job:
type: object
properties:
id:
$ref: '#/components/schemas/UUID'
id_owner:
$ref: '#/components/schemas/UUID'
id_point:
$ref: '#/components/schemas/UUID'
string_name:
type: string
string_main:
type: string
string_kind:
type: string
string_tags:
type: array
items:
type: string
file_path:
type: string
file_name:
type: string
format: byte
file_main:
type: string
format: byte
time_generate:
type: string
format: date-time
time_deploy:
type: string
format: date-time
time_update:
type: string
format: date-time
count_watch:
type: integer
format: int32
count_comment:
type: integer
format: int32
count_bookmark:
type: integer
format: int32
float_progress_generate:
type: number
format: float
float_progress_deploy:
type: number
format: float
json_conf:
type: string
json_logs:
type: string
required:
- id
- id_owner
- id_point
- string_name
- string_main
- string_kind
- string_tags
- file_path
- file_name
- file_main
- time_generate
- time_deploy
- time_update
- count_watch
- count_comment
- count_bookmark
- float_progress_generate
- float_progress_deploy
- json_conf
- json_logs
Status:
type: object
properties:
device:
type: array
items:
$ref: '#/components/schemas/Device'
required:
- device
Task:
type: object
properties:
job:
$ref: '#/components/schemas/UUID'
target:
type: string
code:
type: integer
format: int32
is_running:
type: boolean
is_completed:
type: boolean
required:
- job
- target
- code
- is_running
- is_completed
UUID:
type: string
format: uuid