Skip to content

Instantly share code, notes, and snippets.

@dtkav
Created August 7, 2020 04:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dtkav/62072c66eeb268dadded85fba7ad18b0 to your computer and use it in GitHub Desktop.
Save dtkav/62072c66eeb268dadded85fba7ad18b0 to your computer and use it in GitHub Desktop.
{
"openapi": "3.0.1",
"info": {
"title": "Benchling API",
"version": "2.0.0",
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"externalDocs": {
"description": "Additional API Documentation",
"url": "https://docs.benchling.com"
},
"servers": [
{
"url": "/api/v2"
}
],
"paths": {
"/requests": {
"get": {
"tags": [
"requests"
],
"description": "List requests",
"operationId": "listRequests",
"parameters": [
{
"name": "schemaId",
"in": "query",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "requestStatus",
"in": "query",
"schema": {
"type": "string",
"enum": [
"REQUESTED",
"SCHEDULED",
"IN_PROGRESS",
"COMPLETED",
"CANCELLED"
]
}
},
{
"name": "minCreatedTime",
"description": "minimum create time (unix seconds)",
"in": "query",
"schema": {
"type": "integer"
}
},
{
"name": "maxCreatedTime",
"description": "maximum create time (unix seconds)",
"in": "query",
"schema": {
"type": "integer"
}
},
{
"name": "nextToken",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "pageSize",
"in": "query",
"schema": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 0
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequestsResponseBody"
}
}
}
}
}
}
},
"/requests/{request_id}": {
"get": {
"tags": [
"requests"
],
"description": "Get a request by ID",
"operationId": "getRequest",
"parameters": [
{
"name": "request_id",
"in": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Request"
}
}
}
}
}
}
},
"/containers/{container_id}": {
"get": {
"tags": [
"containers"
],
"description": "get a container by id",
"operationId": "getContainer",
"parameters": [
{
"in": "path",
"name": "container_id",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Container"
}
}
}
}
}
}
},
"/location-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get a location schema by ID",
"operationId": "getLocationSchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/box-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get a box schema by ID",
"operationId": "getBoxSchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoxSchema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/plate-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get a plate schema by ID",
"operationId": "getPlateSchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlateSchema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/container-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get a container schema by ID",
"operationId": "getContainerSchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/batch-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get a batch schema by ID",
"operationId": "getBatchSchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BatchSchema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
},
"/entity-schemas/{schema_id}": {
"get": {
"tags": [
"schemas"
],
"summary": "Get an entity schema by ID",
"operationId": "getEntitySchema",
"parameters": [
{
"name": "schema_id",
"in": "path",
"description": "ID of schema to get",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagSchema"
}
}
}
},
"400": {
"description": "Bad Request"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"fieldDefinitions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SchemaField"
}
},
"type": {
"type": "string"
},
"prefix": {
"type": "string"
},
"registryId": {
"type": "string"
}
}
},
"SchemaField": {
"type": "object",
"properties": {
"isRequired": {
"type": "boolean"
},
"name": {
"type": "string"
}
}
},
"BoxSchema": {
"allOf": [
{
"$ref": "#/components/schemas/Schema"
},
{
"type": "object",
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
},
"containerSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
}
]
},
"PlateSchema": {
"allOf": [
{
"$ref": "#/components/schemas/BoxSchema"
},
{
"type": "object",
"properties": {
"plateType": {
"type": "string"
}
}
}
]
},
"BatchSchema": {
"allOf": [
{
"$ref": "#/components/schemas/Schema"
},
{
"type": "object",
"properties": {
"entitySchemaId": {
"type": "string"
}
}
}
]
},
"TagSchema": {
"allOf": [
{
"$ref": "#/components/schemas/Schema"
},
{
"type": "object",
"properties": {
"constraint": {
"type": "object",
"properties": {
"fieldDefinitionNames": {
"type": "array",
"items": {
"type": "string"
}
},
"hasUniqueResidues": {
"type": "boolean"
}
}
},
"containableType": {
"type": "string"
}
}
}
]
},
"NotFoundError": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"invalidId": {
"type": "string"
},
"message": {
"type": "string"
},
"type": {
"type": "string"
},
"userMessage": {
"type": "string"
}
}
}
}
},
"Batch": {
"type": "object"
},
"Sequence": {
"type": "object"
},
"Protein": {
"type": "object"
},
"CustomEntity": {
"type": "object"
},
"Fields": {
"type": "array",
"items": {
"type": "object"
}
},
"UserSummary": {
"type": "object"
},
"TeamSummary": {
"type": "object"
},
"Measurement": {
"type": "object",
"properties": {
"value": {
"type": "number",
"nullable": true
},
"units": {
"type": "string",
"nullable": true
}
},
"required": [
"value",
"units"
]
},
"ArchiveRecord": {
"type": "object",
"properties": {
"reason": {
"type": "string"
}
},
"required": [
"reason"
]
},
"CheckoutRecord": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"AVAILABLE",
"RESERVED",
"CHECKED_OUT"
]
},
"assignee": {
"oneOf": [
{
"$ref": "#/components/schemas/UserSummary"
},
{
"$ref": "#/components/schemas/TeamSummary"
}
],
"nullable": true
},
"comment": {
"type": "string"
},
"modifiedAt": {
"type": "string"
}
},
"required": [
"status",
"assignee",
"comment",
"modifiedAt"
]
},
"ContainerContent": {
"type": "object",
"properties": {
"batch": {
"allOf": [
{
"$ref": "#/components/schemas/Batch"
}
],
"nullable": true
},
"entity": {
"oneOf": [
{
"$ref": "#/components/schemas/Sequence"
},
{
"$ref": "#/components/schemas/Protein"
},
{
"$ref": "#/components/schemas/CustomEntity"
}
],
"nullable": true
},
"concentration": {
"$ref": "#/components/schemas/Measurement"
}
},
"required": [
"batch",
"entity",
"concentration"
]
},
"Container": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"archiveRecord": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/ArchiveRecord"
}
]
},
"barcode": {
"type": "string"
},
"checkoutRecord": {
"$ref": "#/components/schemas/CheckoutRecord"
},
"contents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ContainerContent"
}
},
"createdAt": {
"type": "string"
},
"creator": {
"$ref": "#/components/schemas/UserSummary"
},
"fields": {
"$ref": "#/components/schemas/Fields"
},
"modifiedAt": {
"type": "string"
},
"name": {
"type": "string"
},
"parentStorageId": {
"type": "string"
},
"parentStorageSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"projectId": {
"type": "string",
"nullable": true
}
},
"required": [
"id",
"name",
"projectId"
]
},
"projectId": {
"type": "string",
"nullable": true
},
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
]
},
"volume": {
"$ref": "#/components/schemas/Measurement"
},
"webURL": {
"type": "string"
}
},
"required": [
"id",
"archiveRecord",
"barcode",
"checkoutRecord",
"createdAt",
"creator",
"fields",
"modifiedAt",
"name",
"parentStorageId",
"parentStorageSchema",
"projectId",
"schema",
"volume"
]
},
"Request": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"assignees": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/UserSummary"
},
{
"$ref": "#/components/schemas/TeamSummary"
}
],
"nullable": true
}
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"creator": {
"$ref": "#/components/schemas/UserSummary"
},
"displayId": {
"type": "string"
},
"fields": {
"type": "object"
},
"needBy": {
"type": "string",
"format": "date"
},
"projectId": {
"type": "string"
},
"requestStatus": {
"type": "string",
"enum": [
"REQUESTED",
"SCHEDULED",
"IN_PROGRESS",
"COMPLETED",
"CANCELLED"
]
},
"requestor": {
"$ref": "#/components/schemas/UserSummary"
},
"samples": {
"$ref": "#/components/schemas/Samples"
},
"sampleGroups": {
"$ref": "#/components/schemas/SampleGroups"
},
"schema": {
"$ref": "#/components/schemas/SchemaSummary"
},
"webURL": {
"type": "string",
"format": "uri"
}
}
},
"RequestsResponseBody": {
"type": "object",
"properties": {
"nextToken": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Request"
}
}
}
},
"SchemaSummary": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"Samples": {
"type": "array",
"items": {
"type": "object"
}
},
"SampleGroups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SampleGroup"
}
},
"SampleGroup": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"samples": {
"type": "object"
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment