#%RAML 0.8 title: HPC Community Cloud API baseUri: 127.0.0.1:4000/api/1.0 version: 1.0 securitySchemes: - basic: type: Basic Authentication traits: - internal: displayName: FOR INTERNAL USE usage: Mark method for testing purpose description: This method used for testing purposes - Unauthorized: responses: 401: description: Unauthorized body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "code": { "required": true, "type": "integer" }, "errorType": { "required": true, "type": "string" }, "errorMessage": { "required": true, "type": "string" } } } example: | { "code": 401, "errorType": "Unauthorized", "errorMessage": "The supplied authentication is invalid" } - BadRequest: responses: 400: description: Bad Request body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "code": { "required": true, "type": "integer" }, "errorType": { "required": true, "type": "string" }, "errorMessage": { "required": true, "type": "string" } } } example: | { "code": 400, "errorType": "Bad Request", "errorMessage": "The form field 'status' was malformed:\nUnknown status value 'aosed'. Possible status values: [opened, closed]" } - NotFound: responses: 404: description: Not Found body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "code": { "required": true, "type": "integer" }, "errorType": { "required": true, "type": "string" }, "errorMessage": { "required": true, "type": "string" } } } example: | { "code": 404, "errorType": "Not Found", "errorMessage": "Selected resource not found" } - InternalServerError: responses: 500: description: Internal Server Error body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "code": { "required": true, "type": "integer" }, "errorType": { "required": true, "type": "string" }, "errorMessage": { "required": true, "type": "string" } } } example: | { "code": 500, "errorType": "Internal Server Error", "errorMessage": "There was an internal server error." } - paged: queryParameters: offset: description: Offset of getting items required: false example: 0 default: 0 type: number limit: description: Limit of getting items required: false example: 20 default: 20 type: number - secured: usage: Apply this to any method that needs to be secured description: Some requests require authentication. queryParameters: access_token: description: Access Token type: string example: ACCESS_TOKEN required: true /users: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get list of users responses: 200: description: List of users. If you have lvl 2, you can see information about all users here, else you can see body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "users": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "lvl": { "type": "integer", "required": false }, "login": { "type": "string", "required": true }, "firstname": { "type": "string", "required": false }, "lastname": { "type": "string", "required": false }, "e_mail": { "type": "string", "required": false }, "phone": { "type": "string", "required": false } } } } } } example: | { "users": [ { "id": 123, "lvl": 0, "login": "arnolg", "firstname": "Arnold", "lastname": "Schwarzneger", "e_mail": "arni_god@sscc.ru", "phone": "+1 888999333" } ] } post: is: [ Unauthorized, BadRequest, InternalServerError ] securedBy: [ basic ] description: Create new user body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "lvl": { "type": "integer", "required": false }, "firstname": { "type": "string", "required": false }, "lastname": { "type": "string", "required": false }, "e_mail": { "type": "string", "required": false }, "phone": { "type": "string", "required": false }, "access_code": { "type": "string", "required": false } } } example: | { "lvl": 0, "firstname": "Arnold", "lastname": "Schwarzneger", "e_mail": "arni_god@sscc.ru", "phone": "+1 888999333", "access_code": "Promo_Code" } responses: 201: description: User was created 409: description: The login name is already taken /{user}: uriParameters: user: description: Login of the user. required: true type: string get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get information about _user_ responses: 200: description: Returns info about _user_ body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "lvl": { "type": "integer", "required": false }, "login": { "type": "string", "required": true }, "firstname": { "type": "string", "required": false }, "lastname": { "type": "string", "required": false }, "e_mail": { "type": "string", "required": false }, "phone": { "type": "string", "required": false } } } example: | { "id": 1353345, "lvl": 0, "login": "arnolg", "firstname": "Arnold", "lastname": "Schwarzneger", "e_mail": "arni_god@sscc.ru", "phone": "+1 888999333" } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update _user_ information body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "lvl": { "type": "integer", "required": false }, "login": { "type": "string", "required": false }, "firstname": { "type": "string", "required": false }, "lastname": { "type": "string", "required": false }, "e_mail": { "type": "string", "required": false }, "phone": { "type": "string", "required": false } } } example: | { "lvl": 0, "login": "arnolg", "firstname": "Arnold", "lastname": "Schwarzneger", "e_mail": "arni_god@sscc.ru", "phone": "+1 888999333" } responses: 204: description: Information was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete all information about _user_ responses: 204: description: | Information and all relations of this user was successfully deleted /tokens: get: is: [ paged, Unauthorized, BadRequest, InternalServerError ] securedBy: [ basic ] description: Get all pairs (user, token) responses: 200: description: List of tokens body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "tokens": { "required": true, "type": "array", "items": { "user_id": { "type": "integer", "required": true }, "token": { "type": "string", "required": true } } } } } example: | { "tokens": [ { "user_id": 123415, "token": "13r1iitn2uo4tHFHi3tnio" } ] } /{token}: uriParameters: token: description: Token required: true type: string delete: is: [ Unauthorized, BadRequest, InternalServerError ] description: Delete token responses: 204: description: Token was successfully deleted /clusters: /interfaces: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get list of a _cluster_ _interfaces_ responses: 200: description: List of cluster interfaces body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "cluster_interfaces": { "required": true, "type": "array", "items": { "type": "object", "properties":{ "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "comment": { "type": "string", "required": true } } } } } } example: | { "cluster_interfaces" : [ { "id": 1, "name": "OpenPBS", "comment": "Interacts with OpenPBS task queue" } ] } /{cluster_interface_id}: uriParameters: cluster_interface_id: description: Cluster interface ID type: integer get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get information about cluster interface responses: 200: description: Cluster interface info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "comment": { "type": "string", "required": true } } } example: | { "id": 1, "name": "OpenPBS", "comment": "Interacts with OpenPBS task queue" } /profiles: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get information about all your _cluster_ _profiles_ responses: 200: description: List of user _cluster_ _profiles_ body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "cluster_profiles": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "user_id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "interface_id": { "type": "integer", "required": true }, "url": { "type": "string", "required": true }, "login": { "type": "string", "required": true }, "password": { "type": "string", "required": true } } } } } } example: | { "cluster_profiles": [ { "id": 1, "user_id": 25, "name": "ssdproj-nks-g6", "interface_id": 1, "url": "nks-g6.sscc.ru", "login": "root", "password": "" } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create new cluster profile body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": true }, "interface_id": { "type": "integer", "required": true }, "url": { "type": "string", "required": true }, "login": { "type": "string", "required": true }, "password": { "type": "string", "required": true }, "key": { "required": true, "type": "array", "items": { "type": "string", "required": true } } } } example: | { "name": "myFirstClusterProfile", "interface_id": 1, "url": "nks-g6.sscc.ru", "login": "root", "password": "", "key": [ "-----BEGIN RSA PRIVATE KEY-----", "key line 0", "key line 1", "and so on", "-----END RSA PRIVATE KEY-----" ] } responses: 201: description: Cluster profile was successfully created /{cluster_profile_id}: uriParameters: cluster_profile_id: description: Cluster profile ID type: integer get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get cluster profile responses: 200: description: Cluster profile information body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "user_id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "interface_id": { "type": "integer", "required": true }, "url": { "type": "string", "required": true }, "login": { "type": "string", "required": true }, "password": { "type": "string", "required": true } } } example: | { "id": 1, "user_id": 25, "interface_id": 1, "name": "ssdproj-nks-g6", "url": "nks-g6.sscc.ru", "login": "root", "password": "" } 204: description: Request for information returned empty result put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update cluster profile body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": false }, "interface_id": { "type": "integer", "required": false }, "url": { "type": "string", "required": false }, "login": { "type": "string", "required": false }, "password": { "type": "string", "required": false }, "key": { "type": "string", "required": false } } } example: | { "interface_id": 1, "url": "nks-g6.sscc.ru", "login": "root", "password": "", "key": "RSA KEY" } responses: 204: description: Cluster profile was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete cluster profile responses: 204: description: Cluster profile was successfully deleted 404: description: Cluster profile does not exist or does not belong to the owner of the presented token /fs: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create file or directory body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "path": { "type": "string", "required": true }, "type": { "type": "string", "enum": [ "file", "catalog" ], "required": true }, "body": { "type": "string", "required": false } } } example: | { "path": "/jobs/job1/bin/exec.exe", "type": "file", "body": "echo 'Hello world'" } responses: 201: description: File or directory was successfully created /{path}: get: is: [ secured, Unauthorized, NotFound, BadRequest, InternalServerError ] queryParameters: format: description: | File format. He can change the content type of response. If format is png, jpeg or gif, server has returned base64 data. example: html enum: [html, json, byte, text, gif, png, jpeg, jpg] required: false type: string description: Get file or directory responses: 200: description: | if (_path_ is path to directory) List of files in this directory else JSON with file body body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "directory": { "type": "object", "required": false, "properties": { "dirs": { "required": true, "type": "array", "items": { "name": { "type": "string", "required": true } } }, "files": { "required": true, "type": "array", "items": { "name": { "type": "string", "required": true }, "size": { "type": "string", "required": false } } } } }, "file": { "required": false, "type": "object", "properties": { "path": { "type": "string", "required": true }, "body": { "type": "string", "required": true } } } } } example: | { "file": { "path": "/jobs/job1/bin/exec.exe", "body": "echo 'Hello world'" } } put: is: [ secured, Unauthorized, NotFound, BadRequest, InternalServerError ] description: Update file or directory body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "path": { "type": "string", "required": false }, "body": { "type": "string", "required": false } } } example: | { "path": "/jobs/job1/bin/exec.exe", "body": "echo 'Hello world'" } responses: 204: description: File or directory was successfully updated delete: is: [ secured, Unauthorized, NotFound, BadRequest, InternalServerError ] description: Delete file or directory responses: 204: description: File or directory was successfully deleted /duplicate: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Duplicate file or directory with path from JSON to file or directory with path from URL body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "path": { "type": "string", "required": true } } } example: | { "path": "/jobs/job1/newfile" } responses: 204: description: _duplicate_ command successfully queued /projects: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get project list responses: 200: description: List of projects body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "projects": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "type": { "type": "string", "required": true }, "name": { "type": "string", "required": true }, "last-modify-time": { "type": "string", "required": false } } } } } } example: | { "projects": [ { "id": 1, "type": "framework", "name": "VisualSeismics" } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create new project body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "type": { "type": "string", "enum": ["app", "framework", "model"], "required": true }, "name": { "type": "string", "required": true }, "template": { "type": "string", "required": false }, "cluster_name": { "type": "string", "required": false }, "make_configuration": { "type": "string", "required": false } } } example: | { "type": "app", "name": "pic_test", "template": "mpicxx", "cluster_profile": "ssdproj-nks-g6", "make_configuration": "release" } responses: 201: description: Project was successfully created body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "project_id": { "type": "integer", "required": true }, "make_configuration_id": { "type": "integer", "required": true } } } example: | { "project_id": 23, "make_configuration_id": 15 } /{project_id}: uriParameters: project_id: description: ID of a project example: "256" get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get project information responses: 200: description: Project info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "type": { "type": "string", "required": true }, "name": { "type": "string", "required": true }, "last-modify-time": { "type": "string", "required": false } } } example: | { "id": 1, "type": "framework", "name": "VisualSeismics" } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update project's info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": true } } } example: | { "name": "VisualSeismics" } responses: 204: description: Project was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete project responses: 204: description: Project was successfully deleted /builds: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Start building activity using make_configuration_id if given or with current active makeconf of this project body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "make_configuraton_id": { "type": "string", "required": false } } } example: | { "make_configuration_id": 26 } responses: 202: description: Build started. URL of the build is returned. Use GET on URL to check the current state. headers: Location: example: projects/123/builds/321 /{build_id}: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get state of the build responses: 200: description: State of the build body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "state": { "type": "string", "required": true }, "message": { "type": "string", "required": true } } } example: | { "state": "make/failed/success", "message": "OK/Compilation failed/Please wait" } delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete responses: 204: description: Build request was successfully deleted /make_configurations: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get responses: 200: description: List of make configuration body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "make_configurations": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "project_id": { "type": "integer", "required": true }, "cluster_profile_id": { "type": "integer", "required": true }, "comment": { "type": "string", "required": false }, "last_compile_time": { "type": "string", "required": false } } } } } } example: | { "make_configurations": [ { "id": 13, "name": "debug", "project_id": 1, "cluster_profile_id": 35 } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": true }, "project_id": { "type": "integer", "required": true }, "cluster_profile_id": { "type": "integer", "required": true }, "comment": { "type": "string", "required": false } } } example: | { "name": "debug", "project_id": 1, "cluster_profile_id": 35 } responses: 201: description: Configuration info was successfully created /{make_configuration_id}: uriParameters: make_configuration_id: description: Name of a make configuration example: "debug" get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get info about make configuration responses: 200: description: Configuration info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "project_id": { "type": "integer", "required": true }, "cluster_profile_id": { "type": "integer", "required": true }, "comment": { "type": "string", "required": false }, "last_compile_time": { "type": "string", "required": false } } } example: | { "id": 13, "name": "debug", "project_id": 1, "cluster_profile_id": 35 } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update make configuration body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": false }, "cluster_profile_id": { "type": "integer", "required": false }, "comment": { "type": "string", "required": false } } } example: | { "name": "debug", "cluster_profile_id": 35 } responses: 204: description: Make configuration was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete responses: 204: description: Make configuration was successfully deleted #TODO: remove make /make: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Make project responses: 204: description: _make_ command successfully queued #TODO: remove stop make /stop_make: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Stop making project responses: 204: description: _stop_make_ command successfully queued. /jobs: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get list of a jobs responses: 200: description: List of a jobs body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "jobs": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "user_id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "last_modify_time": { "type": "string", "required": false }, "type": { "type": "string", "required": true }, "state": { "type": "string", "required": true }, "chunks": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "job-id": { "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "value": { "type": "string", "required": true } } } } } } }, "place": { "type": "string", "required": false }, "walltime": { "type": "string", "required": true }, "env_vars": { "type": "string", "required": false }, "parent_make_configuration_id": { "type": "integer", "required": true }, "args": { "type": "string", "required": false }, "queue_name": { "type": "string", "required": false }, "queue_id": { "type": "string", "required": true } } } } } } example: | { "jobs": [ { "id": 15, "user_id": 255, "name": "Job15", "type": "OpenPBS", "state": "edited", "chunks": [ { "id": 1, "job-id": 1, "resources": [ { "id": 1, "name": "mpiprocs", "value": "1" } ] } ], "walltime": "00:10:00", "parent_make_configuration_id": 13, "queue_name": "q7", "queue_id": "hcc15" } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create job body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "cluster_profile_id": { "type": "integer", "required": true }, "state": { "type": "string", "required": true, "enum": [ "edited", "queued", "run" ] }, "chunks": { "type": "array", "required": true, "items": { "count": { "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "id": { "type": "integer", "required": true }, "value": { "type": "string", "required": true } } } } }, "place": { "type": "string", "required": false }, "walltime": { "type": "string", "required": true }, "env_vars": { "type": "string", "required": false }, "args": { "type": "string", "required": false }, "queue_name": { "type": "string", "required": true } } } example: | { "name": "jobname", "type": "OpenPBS", "cluster_profile_id" : 1, "state": "run", "chunks": [ { "count": 1, "resources": [ { "name": "ncpus", "value": "4" }, { "name": "mpiprocs", "value": "4" } ] } ], "walltime": "00:10:00", "executable_path": "apps/testapp/builds/nks-g6.sscc.ru/release/", "args": "--normal-run", "env_vars": "VAR1=value1;VAR2=value2", "queue_name": "G7_q" } responses: 201: description: Job was successfully created headers: Location: example: "jobs/123" /{job_id}: uriParameters: job_id: description: Job ID example: 674 get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get info about job responses: 200: description: Job info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "user_id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "last_modify_time": { "type": "string", "required": false }, "type": { "type": "string", "required": true }, "state": { "type": "string", "required": true }, "chunks": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "job-id": { "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "value": { "type": "string", "required": true } } } } } } }, "place": { "type": "string", "required": false }, "walltime": { "type": "string", "required": true }, "env_vars": { "type": "string", "required": false }, "parent_make_configuration_id": { "type": "integer", "required": true }, "args": { "type": "string", "required": false }, "queue_name": { "type": "string", "required": true }, "queue_id": { "type": "string", "required": true } } } example: | { "id": 15, "user_id": 255, "name": "Job15", "type": "OpenPBS", "state": "edited", "chunks": [ { "id": 1, "job-id": 1, "resources": [ { "id": 1, "name": "mpiprocs", "value": "1" } ] } ], "walltime": "00:10:00", "parent_make_configuration_id": 13, "queue_name": "q7", "queue_id": "hcc15" } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update job info body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "type": "string", "required": false }, "state": { "type": "string", "required": false }, "chunks": { "type": "array", "required": false, "items": { "resources": { "type": "array", "required": true, "items": { "id": { "type": "integer", "required": true }, "value": { "type": "string", "required": true } } } } }, "place": { "type": "string", "required": false }, "walltime": { "type": "string", "required": false }, "env_vars": { "type": "string", "required": false }, "args": { "type": "string", "required": false }, "queue_name": { "type": "string", "required": false } } } example: | { "name": "Job15", "state": "edited", "chunks": [ { "resources": [ { "id": 1, "value": "1" } ] } ], "walltime": "00:10:00", "queue_name": "q7" } responses: 201: description: Job was successfully created delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete job responses: 204: description: Job was successfully deleted /run: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Run Job responses: 204: description: _run_ command successfully queued /kill: post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Kill job responses: 204: description: _kill_ command successfully queued /chunks: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get all chunks responses: 200: description: List of a chunks body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "chunks": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "job-id": { "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "value": { "type": "string", "required": true } } } } } } } } } example: | { "chunks": [ { "id": 1, "job-id": 1, "resources": [ { "id": 1, "name": "mpiprocs", "value": "1" } ] } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create new chunk body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "properties": { "job-id": { "description": "ID of a job, which used this chunk", "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "name": { "type": "string", "required": true }, "value": { "type": "string", "required": true } } } } } example: | { "job-id": 1, "resources": [ { "name": "select", "value": "2" } ] } responses: 201: description: Chunk was successfully created /{chunk_id}: uriParameters: chunk_id: description: Chunk ID type: integer required: true get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get information about chunk responses: 200: description: List of a chunks body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "job-id": { "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "default-value": { "type": "string", "required": false } } } } } } example: | { "id": 1, "job-id": 1, "resources": [ { "id": 1, "name": "mpiprocs", "default-value": "1" } ] } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update chunk body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "properties": { "job-id": { "description": "ID of a job, which used this chunk", "type": "integer", "required": true }, "resources": { "type": "array", "required": true, "items": { "name": { "type": "string", "required": true }, "value": { "type": "string", "required": true } } } } } example: | { "job-id": 1, "resources": [ { "name": "select", "value": "2" } ] } responses: 204: description: Chunk was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete chunk responses: 204: description: Chunk was successfully deleted /job-types: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get job types responses: 200: description: List of a job types body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "job-types": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "cluster_interface_id": { "type": "integer", "required": true }, "comment": { "type": "string", "required": false } } } } } } example: | { "job-types": [ { "id": 1, "name": "OpenPBS", "cluster_interface_id": 1, "comment": "This is standart for MPI programs for run on a OpenPBS clusters" } ] } /{type_id}: uriParameters: type_id: description: Job type ID example: 15 get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get job type info responses: 200: description: List of a job types body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "cluster_interface_id": { "type": "integer", "required": true }, "comment": { "type": "string", "required": false } } } example: | { "id": 1, "name": "OpenPBS", "cluster_interface_id": 1, "comment": "This is standart for MPI programs for run on a OpenPBS clusters" } /resources: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get info about resources responses: 200: description: List of resources body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "resources": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "default-value": { "type": "string", "required": false } } } } } } example: | { "resources": [ { "id": 1, "name": "mpiprocs", "default-value": "1" } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create resource body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "name": { "description": "Name of resource", "type": "string", "required": true }, "default_value": { "type": "string", "required": false } } } example: | { "name": "mpiprocs", "default_value": "1" } responses: 201: description: Resource was successfully created /{resource_id}: uriParameters: resource_id: description: Document identificator required: true type: integer get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get info about resource responses: 200: description: Resource information body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "name": { "type": "string", "required": true }, "default_value": { "type": "string", "required": false } } } example: | { "id": 1, "name": "mpiprocs", "default-value": "1" } delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete resource responses: 204: description: Resource was successfully deleted /docs: get: is: [ paged, secured, Unauthorized, BadRequest, InternalServerError ] description: Get metadata about all availables documents responses: 200: description: List of documents body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "documents": { "required": true, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "required": true }, "owner": { "type": "string", "required": false }, "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "author": { "type": "string", "required": false }, "imprint_date": { "type": "string", "required": false }, "publisher": { "type": "string", "required": false }, "description": { "type": "string", "required": false } } } } } } example: | { "documents": [ { "id": 125, "owner": "public", "name": "mpich2.2 documentation", "type": "pdf", "description": "readme file" } ] } post: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Create document body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "owner": { "type": "string", "required": false }, "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "author": { "type": "string", "required": false }, "imprint_date": { "type": "string", "required": false }, "publisher": { "type": "string", "required": false }, "description": { "type": "string", "required": false } } } example: | { "name": "MyDoc", "type": "txt", "body": "Text in file" } responses: 201: description: Document was successfully created /{doc_id}: uriParameters: doc_id: description: Document identificator required: true type: integer get: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Get document body responses: 200: description: Document body body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "id": { "type": "integer", "required": true }, "owner": { "type": "string", "required": false }, "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "author": { "type": "string", "required": false }, "imprint_date": { "type": "string", "required": false }, "publisher": { "type": "string", "required": false }, "description": { "type": "string", "required": false }, "body": { "type": "string", "required": true } } } example: | { "id": 14, "owner": "public", "name": "MyDoc", "type": "txt", "body": "Text in file" } put: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Update document body: application/json: schema: | { "$schema": "http://json-schema.org/draft-03/schema", "type": "object", "required": true, "properties": { "owner": { "type": "string", "required": false }, "name": { "type": "string", "required": true }, "author": { "type": "string", "required": false }, "imprint_date": { "type": "string", "required": false }, "publisher": { "type": "string", "required": false }, "description": { "type": "string", "required": false }, "body": { "type": "string", "required": true } } } example: | { "name": "MyDoc", "body": "Text in file" } responses: 204: description: Document was successfully updated delete: is: [ secured, Unauthorized, BadRequest, InternalServerError ] description: Delete document responses: 204: description: Document was successfully deleted /raml: get: description: This RAML file