{ "openapi": "3.0.0", "servers": [ { "url": "https://SERVER_URI/api" } ], "info": { "description": "REST API webservice for lazar. \n\n*lazar* (lazy structure–activity relationships) is a modular framework for\npredictive toxicology.", "version": "1.4.0", "title": "Lazar REST Service", "contact": { "name": "in silico toxicology gmbh", "email": "info@in-silico.ch", "url": "https://in-silico.ch" }, "license": { "name": "GNU GENERAL PUBLIC LICENSE", "url": "https://github.com/opentox/lazar-rest/blob/master/LICENSE" } }, "externalDocs": { "description": "See also documentation\n", "url": "https://github.com/OpenRiskNet/home/blob/master/openshift/deployments/lazar/README.md" }, "paths": { "/api.json": { "get": { "tags": [ "api" ], "description": "Get swagger api in JSON", "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "500": { "$ref": "#/components/responses/500" } } } }, "/compound/descriptor": { "get": { "tags": [ "compound", "descriptor" ], "description": "Get a list of all descriptors", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } }, "post": { "tags": [ "compound", "descriptor" ], "summary": "Descriptor calculation", "description": "Calculate descriptors for a single compound as SMILES string", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "202": { "$ref": "#/components/responses/202" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } }, "requestBody": { "description": "identifier and descriptor/s", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/postdescriptor" } } } } } }, "/compound/descriptor/{descriptor}": { "get": { "tags": [ "compound", "descriptor" ], "description": "Get informations about a single descriptor", "parameters": [ { "name": "descriptor", "in": "path", "description": "descriptor name or ID", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/compound/{InChI}": { "get": { "tags": [ "compound" ], "description": "Get compound representation", "parameters": [ { "$ref": "#/components/parameters/InChI" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "chemical/x-daylight-smiles": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "chemical/x-inchi": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "chemical/x-mdl-sdfile": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "image/png": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "image/svg+xml": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } }, "text/plain": { "schema": { "type": "string", "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" } } } }, "400": { "$ref": "#/components/responses/400" }, "500": { "$ref": "#/components/responses/500" } } } }, "/dataset": { "get": { "tags": [ "dataset" ], "description": "Get a list of all datasets", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/dataset/{id}": { "get": { "tags": [ "dataset" ], "description": "Get dataset representation", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "description": "OK", "content": { "text/csv": { }, "application/csv": { } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/dataset/{id}/{attribute}": { "get": { "tags": [ "dataset" ], "description": "Get dataset representation", "parameters": [ { "name": "attribute", "in": "path", "description": "requested attribute", "required": true, "schema": { "type": "string", "enum": [ "compounds", "substances", "features" ] } }, { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/endpoint": { "get": { "tags": [ "endpoint" ], "description": "Get a list of all available endpoints", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/endpoint/{endpoint}": { "get": { "tags": [ "endpoint" ], "description": "Get a list of all available models for an endpoint", "parameters": [ { "$ref": "#/components/parameters/endpoint" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/feature": { "get": { "tags": [ "feature" ], "description": "Get a list of ids for all features", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/feature/{id}": { "get": { "tags": [ "feature" ], "description": "Get feature representation", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/model": { "get": { "tags": [ "model" ], "description": "Get a list of all prediction models", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/model/{id}": { "get": { "tags": [ "model" ], "description": "Get model representation", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" } } }, "post": { "tags": [ "model" ], "description": "Predict a compound.", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "202": { "$ref": "#/components/responses/202" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" } }, "requestBody": { "description": "SMILES identifier.\n", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/postmodel" } } } } } }, "/report": { "get": { "tags": [ "report" ], "description": "Get a list of QMRF reports", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/report/{id}": { "get": { "tags": [ "report" ], "description": "Get QMRF for prediction model", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "description": "OK", "content": { "application/xml": { "schema": { "type": "object" } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" } } } }, "/substance": { "get": { "tags": [ "substance" ], "description": "Get a list of all substances", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/substance/{id}": { "get": { "tags": [ "substance" ], "description": "Get substance representation by ID", "parameters": [ { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/validation": { "get": { "tags": [ "validation" ], "description": "Get a list of all validation types", "parameters": [ { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/validation/{validationtype}": { "get": { "tags": [ "validation" ], "description": "Get all validations of a validation type", "parameters": [ { "$ref": "#/components/parameters/valtype" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } }, "/validation/{validationtype}/{id}": { "get": { "tags": [ "validation" ], "description": "Get validation representation", "parameters": [ { "$ref": "#/components/parameters/valtype" }, { "$ref": "#/components/parameters/id" }, { "$ref": "#/components/parameters/subjectid" } ], "responses": { "200": { "$ref": "#/components/responses/200" }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "500": { "$ref": "#/components/responses/500" } } } } }, "tags": [ { "name": "api", "description": "Swagger API representation in JSON" }, { "name": "compound", "description": "Compound" }, { "name": "dataset", "description": "Dataset" }, { "name": "descriptor", "description": "Descriptor" }, { "name": "endpoint", "description": "Endpoint" }, { "name": "feature", "description": "Feature" }, { "name": "model", "description": "Lazar Model Service" }, { "name": "report", "description": "QMRF Reporting" }, { "name": "substance", "description": "Substance" }, { "name": "validation", "description": "Validation" } ], "components": { "schemas": { "postmodel": { "type": "object", "properties": { "identifier": { "type": "string", "example": "O=C1NC(=O)NC=C1" } } }, "postdescriptor": { "type": "object", "properties": { "identifier": { "type": "string", "example": "O=C1NC(=O)NC=C1" }, "descriptor": { "type": "string", "example": "Openbabel.MW,Openbabel.atoms" } } } }, "parameters": { "id": { "name": "id", "in": "path", "description": "id", "required": true, "schema": { "type": "string" } }, "endpoint": { "name": "endpoint", "in": "path", "description": "type", "required": true, "schema": { "type": "string" } }, "InChI": { "name": "InChI", "in": "path", "description": "InChI String", "required": true, "schema": { "type": "string" } }, "valtype": { "name": "validationtype", "in": "path", "description": "validation type", "required": true, "schema": { "type": "string", "enum": [ "crossvalidation", "leaveoneout", "repeatedcrossvalidation", "regressioncrossvalidation" ] } }, "subjectid": { "in": "header", "name": "subjectid", "description": "authorization token", "required": false, "schema": { "type": "string" } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object" } } } }, "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object" } }, "text/plain": { "schema": { "type": "object" } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Resource Not Found" }, "500": { "description": "Server Error" } } } }