deprecated-oc-catalog/selfapi/api/swagger.yaml
2023-03-03 14:43:11 +01:00

1997 lines
50 KiB
YAML

---
swagger: "2.0"
info:
description: "Backend of the oc-search project"
version: "1.0.0"
title: "oc-catalog API"
contact:
email: "opencloud@irt-saintexupery.com"
host: "localhost:49618"
basePath: "/v1"
tags:
- name: "data"
description: "All operations related to the rType data\n"
- name: "computing"
description: "All operations related to the rType computing\n"
- name: "datacenter"
description: "DatacenterController operations about datacenters\n"
- name: "storage"
description: "StorageController operations about storage\n"
paths:
/computing/:
post:
tags:
- "computing"
description: "Submit a computing object"
operationId: "ComputingController.Add computing"
parameters:
- in: "body"
name: "body"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.ComputingNEWModel"
x-exportParamName: "Body"
responses:
"200":
description: "{string} ID"
"403":
description: "Missing body or fields"
/computing/multi/{IDs}:
get:
tags:
- "computing"
description: "Return Computing objects if found in the DB. Not found IDs will\
\ be ignored"
operationId: "ComputingController.Get multiple computing by IDs"
parameters:
- name: "IDs"
in: "path"
description: "List of computing IDs"
required: true
type: "array"
items:
type: "string"
x-exportParamName: "IDs"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.ComputingModel"
"403":
description: "IDs are empty"
/computing/{ID}:
get:
tags:
- "computing"
description: "Find a computing resource based on ID"
operationId: "ComputingController.Get computing by ID"
parameters:
- name: "ID"
in: "path"
description: "The ID of the resource"
required: true
type: "string"
x-exportParamName: "ID"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.ComputingModel"
"403":
description: "ID is empty"
/data/:
post:
tags:
- "data"
description: "Submit data object"
operationId: "DataController.Create Data"
parameters:
- in: "body"
name: "body"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.DataNEWModel"
x-exportParamName: "Body"
responses:
"200":
description: "{string} ID"
"403":
description: "Missing body or fields"
/data/multi/{IDs}:
get:
tags:
- "data"
description: "Return Data object if found in the DB. Not found IDs will be ignored"
operationId: "DataController.Get multiple data by IDs"
parameters:
- name: "IDs"
in: "path"
description: "List of data IDs"
required: true
type: "array"
items:
type: "string"
x-exportParamName: "IDs"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.DataModel"
"403":
description: "IDs are empty"
/data/{ID}:
get:
tags:
- "data"
description: "Find rType data based on ID"
operationId: "DataController.Get data by ID"
parameters:
- name: "ID"
in: "path"
description: "The ID of the data resource"
required: true
type: "string"
x-exportParamName: "ID"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.DataModel"
"403":
description: "ID is empty"
/datacenter/:
post:
tags:
- "datacenter"
description: "submit Datacenter object"
operationId: "DatacenterController.Create Datacenter"
parameters:
- in: "body"
name: "body"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.DatacenterNEWModel"
x-exportParamName: "Body"
responses:
"200":
description: "{string} models.DatacenterModel"
"403":
description: "Missing body or fields"
/datacenter/multi/{IDs}:
get:
tags:
- "datacenter"
description: "Return Datacenter objects if found in the DB. Not found IDs will\
\ be ignored"
operationId: "DatacenterController.Get multiple datacenters by IDs"
parameters:
- name: "IDs"
in: "path"
description: "List of datacenter IDs"
required: true
type: "array"
items:
type: "string"
x-exportParamName: "IDs"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.ComputingModel"
"403":
description: "IDs are empty"
/datacenter/{ID}:
get:
tags:
- "datacenter"
description: "find datacenter by ID"
operationId: "DatacenterController.GetOneDatacenter"
parameters:
- name: "ID"
in: "path"
description: "the ID you want to get"
required: true
type: "string"
x-exportParamName: "ID"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.DatacenterModel"
"403":
description: "ID is empty"
/schedule/:
get:
tags:
- "schedule"
description: "Get a list of next startDates schedules (inclusive). If timezone\
\ is not specified, will assume UTC"
operationId: "ScheduleController.Get schedules"
parameters:
- name: "startDate"
in: "query"
description: "Start date"
required: true
x-exportParamName: "StartDate"
- name: "stopDate"
in: "query"
description: "End date"
required: true
x-exportParamName: "StopDate"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.ScheduleDB"
"201":
description: "Too much elements within the range of dates"
"400":
description: "Other error. Check the output"
"403":
description: "Authentication issue"
/schedule/book:
post:
tags:
- "schedule"
description: "Create schedule for a workflow. It will return some future executions\
\ just as information"
operationId: "ScheduleController.Create schedule"
parameters:
- name: "dcName"
in: "query"
description: "Name of the node (oc-catalog) from where the workflow comes."
required: true
type: "string"
x-exportParamName: "DcName"
- name: "workflowName"
in: "query"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
- name: "cron"
in: "query"
description: "Cron syntax with year. If no year is specified, will use the\
\ current"
required: true
type: "string"
x-exportParamName: "Cron"
- name: "duration"
in: "query"
description: "Duration in seconds"
required: true
type: "integer"
format: "int32"
x-exportParamName: "Duration"
- name: "startDate"
in: "query"
description: "RFC3339 time for startDate"
required: true
x-exportParamName: "StartDate"
- name: "stopDate"
in: "query"
description: "RFC3339 time for stopDate"
required: true
x-exportParamName: "StopDate"
- in: "body"
name: "requirements"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.ExecutionRequirementsModel"
x-exportParamName: "Requirements"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.ScheduleInfo"
"400":
description: "workflowName not found or empty"
"403":
description: "Authentication issue"
/schedule/check:
post:
tags:
- "schedule"
description: "Check for availability of this DC"
operationId: "ScheduleController.Check if schedule can be created in this DC"
parameters:
- name: "cron"
in: "query"
description: "Cron syntax"
required: true
type: "string"
x-exportParamName: "Cron"
- name: "duration"
in: "query"
description: "Duration in seconds"
required: true
type: "integer"
format: "int32"
x-exportParamName: "Duration"
- name: "startDate"
in: "query"
description: "RFC3339 time for startDate"
required: true
x-exportParamName: "StartDate"
- name: "stopDate"
in: "query"
description: "RFC3339 time for stopDate"
required: true
x-exportParamName: "StopDate"
- in: "body"
name: "requirements"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.ExecutionRequirementsModel"
x-exportParamName: "Requirements"
responses:
"200":
description: "The schedule can be created"
"400":
description: "Other error. Check the output"
"403":
description: "Authentication issue"
/schedule/next:
get:
tags:
- "schedule"
description: "Give a date, get the next date where there are at least on schedule.\
\ If no hours specified, will assume 00:00"
operationId: "ScheduleController.Get next schedule"
parameters:
- name: "baseDate"
in: "query"
description: "Base date"
required: true
x-exportParamName: "BaseDate"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/*time.Time"
"400":
description: "Other error. Check the output"
"403":
description: "Authentication issue"
/schedule/previous:
get:
tags:
- "schedule"
description: "Give a date, get the previous date where there are at least on\
\ schedule. If no hours specified, will assume 00:00"
operationId: "ScheduleController.Get previous schedule"
parameters:
- name: "baseDate"
in: "query"
description: "Base date"
required: true
x-exportParamName: "BaseDate"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/*time.Time"
"400":
description: "Other error. Check the output"
"403":
description: "Authentication issue"
/search/byWord:
get:
tags:
- "search"
description: "find resources by word"
operationId: "SearchController.Search by word"
parameters:
- name: "word"
in: "query"
description: "Word to search across all resources"
required: true
type: "string"
x-exportParamName: "Word"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.SearchResult"
"503":
description: "Internal error"
/storage/:
post:
tags:
- "storage"
description: "submit storage object"
operationId: "StorageController.Create Storage"
parameters:
- in: "body"
name: "body"
description: "The object content"
required: true
schema:
$ref: "#/definitions/models.StorageNEWModel"
x-exportParamName: "Body"
responses:
"200":
description: "{string} models.StorageModel"
"403":
description: "Missing body or fields"
/storage/multi/{IDs}:
get:
tags:
- "storage"
description: "Return Storage objects if found in the DB. Not found IDs will\
\ be ignored"
operationId: "StorageController.Get multiple storages by IDs"
parameters:
- name: "IDs"
in: "path"
description: "List of storage IDs"
required: true
type: "array"
items:
type: "string"
x-exportParamName: "IDs"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.ComputingModel"
"403":
description: "IDs are empty"
/storage/{ID}:
get:
tags:
- "storage"
description: "find storage by ID"
operationId: "StorageController.Get"
parameters:
- name: "ID"
in: "path"
description: "the ID you want to get"
required: true
type: "string"
x-exportParamName: "ID"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.StorageModel"
"403":
description: "ID is empty"
/user/login:
get:
tags:
- "user"
description: "Logs user into the system"
operationId: "UserController.Login"
parameters:
- name: "username"
in: "query"
description: "The username for login"
required: true
type: "string"
x-exportParamName: "Username"
- name: "password"
in: "query"
description: "The password for login"
required: true
type: "string"
x-exportParamName: "Password"
responses:
"200":
description: "{string} login success"
"403":
description: "user not exist"
/user/logout:
get:
tags:
- "user"
description: "Logs out current logged in user session"
operationId: "UserController.logout"
parameters: []
responses:
"200":
description: "{string} logout success"
/workflow/:
get:
tags:
- "workflow"
description: "List available workflows"
operationId: "WorkflowController.List workflows"
parameters: []
responses:
"200":
description: "[]string List of workflows"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
post:
tags:
- "workflow"
description: "Create a name for the new workflow"
operationId: "WorkflowController.Create a new workflow"
parameters:
- name: "workflowName"
in: "query"
description: "Name of the workflow"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: "{string} Workflow created succeful"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workflow/{workflowName}:
get:
tags:
- "workflow"
description: "Get a workflow by name"
operationId: "WorkflowController.Get Workflow"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.Workflow"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workflow/{workflowName}/add:
post:
tags:
- "workflow"
description: "Create a Rtype object from already added resources to the workspace"
operationId: "WorkflowController.Add new object to a Workflow"
parameters:
- name: "workflowName"
in: "path"
description: "workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
- name: "rID"
in: "query"
description: "rID of already existing item in Workspace"
required: true
type: "string"
x-exportParamName: "RID"
responses:
"200":
description: "{string} ID of the new object (rObjID)"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workflow/{workflowName}/link:
post:
tags:
- "workflow"
description: "Create a Rtype object from already added resources to the workspace"
operationId: "WorkflowController.Create a realtionship between two Robjects"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
- name: "rObjIDsource"
in: "query"
description: "Robject source. Usually Data"
required: true
type: "string"
x-exportParamName: "RObjIDsource"
- name: "isInput"
in: "query"
description: "If the operation is for input (true) linkage or output (false)"
required: true
type: "boolean"
x-exportParamName: "IsInput"
- name: "rObjIDtarger"
in: "query"
description: "Robject where will be written the association"
required: true
type: "string"
x-exportParamName: "RObjIDtarger"
responses:
"200":
description: "{string} ID of the new object (rObjID)"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workflow/{workflowName}/mxGraphParser:
get:
tags:
- "workflow"
description: "Obtain the last mxgraph XML status from the workflow"
operationId: "WorkflowController.Get mxGraph last status"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: "The xmlgraph"
"201":
description: "Empty workflow"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
post:
tags:
- "workflow"
description: "If we use this aproach to transofrm mxgraph representation in\
\ our representation, we should not use other API calls for modify the project\
\ structure or we'll have inconsistencies."
operationId: "WorkflowController.Parse mxGraph"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
- in: "body"
name: "xmlData"
description: "Xml representation of the workflow"
required: true
schema:
type: "string"
x-exportParamName: "XmlData"
responses:
"200":
description: "The xmlgraph consumed correctly"
"201":
description: "The xmlgraph consumed with issues"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workflow/{workflowName}/schedule:
get:
tags:
- "workflow"
description: "Obtain the desired schedule of this workflow"
operationId: "WorkflowController.Get Schedule"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.ScheduleTime"
"400":
description: "Workflow doesn't exist"
"401":
description: "Other error"
"403":
description: "Authentication issue"
put:
tags:
- "workflow"
description: "Set desired schedule by the user. No other effects a part of saving\
\ the user input"
operationId: "WorkflowController.Set Schedule"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
- name: "isService"
in: "query"
description: "True: Service, False: Task"
required: true
type: "boolean"
x-exportParamName: "IsService"
- name: "startDate"
in: "query"
description: "RFC3339 time for startDate"
required: true
x-exportParamName: "StartDate"
- name: "stopDate"
in: "query"
description: "RFC3339 time for stopDate"
required: true
x-exportParamName: "StopDate"
- name: "events"
in: "query"
description: "List of events separated by comma"
required: false
type: "string"
x-exportParamName: "Events"
x-optionalDataType: "String"
- name: "cronString"
in: "query"
description: "Cron string"
required: false
type: "string"
x-exportParamName: "CronString"
x-optionalDataType: "String"
- name: "duration"
in: "query"
description: "Duration in seconds"
required: false
type: "integer"
format: "int32"
x-exportParamName: "Duration"
x-optionalDataType: "Int32"
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.ScheduleInfo"
"400":
description: "Workflow doesn't exist"
"401":
description: "Other error"
"402":
description: "Bad user input"
"403":
description: "Authentication issue"
/workflow/{workflowName}/schedule/book:
post:
tags:
- "workflow"
description: "Book a schedule in all DCs of the workflow. Must set a desired\
\ schedule first!"
operationId: "WorkflowController.Book Schedule"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.DCstatus"
"401":
description: "Other error. Check output"
"403":
description: "Authentication issue"
/workflow/{workflowName}/schedule/check:
get:
tags:
- "workflow"
description: "Check if we can schedule the project in other DCs. Must set a\
\ desired schedule first!"
operationId: "WorkflowController.Check Schedule"
parameters:
- name: "workflowName"
in: "path"
description: "Workflow Name"
required: true
type: "string"
x-exportParamName: "WorkflowName"
responses:
"200":
description: ""
schema:
type: "array"
items:
$ref: "#/definitions/models.DCstatus"
"401":
description: "Other error"
"403":
description: "Authentication issue"
/workspace/:
post:
tags:
- "workspace"
description: "Insert a resource in the workspace"
operationId: "WorkspaceController.Add model to workspace"
parameters:
- name: "id"
in: "query"
description: "ID of a resource"
required: true
type: "string"
x-exportParamName: "Id"
- name: "rtype"
in: "query"
description: "Type of resource"
required: true
type: "string"
x-exportParamName: "Rtype"
responses:
"200":
description: "{string} login success"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
delete:
tags:
- "workspace"
description: "Remove a resource from the workspace"
operationId: "WorkspaceController.Delete element from user workspace"
parameters:
- name: "id"
in: "query"
description: "ID of a resource"
required: true
type: "string"
x-exportParamName: "Id"
- name: "rtype"
in: "query"
description: "Type of resource"
required: true
type: "string"
x-exportParamName: "Rtype"
responses:
"200":
description: "{string} Removed succeful"
"400":
description: "{string} Other error"
"403":
description: "Authentication issue"
/workspace/list:
get:
tags:
- "workspace"
description: "Get workspace elements based on user_id token"
operationId: "WorkspaceController.Get workspace"
parameters: []
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.Workspace"
"403":
description: "Authentication issue"
/workspace/list_model:
get:
tags:
- "workspace"
description: "Get full workspace elements based on user_id token"
operationId: "WorkspaceController.Get full workspace"
parameters: []
responses:
"200":
description: ""
schema:
$ref: "#/definitions/models.WorkspaceModel"
"403":
description: "Authentication issue"
definitions:
'*time.Time':
type: "object"
title: "Time"
models.ComputingModel:
type: "object"
required:
- "ID"
properties:
ID:
type: "string"
example: "5099803df3f4948bd2f98391"
description:
type: "string"
execution_requirements:
$ref: "#/definitions/models.ExecutionRequirementsModel"
license:
type: "string"
logo:
type: "string"
name:
type: "string"
description: "Name of the computing"
owner:
type: "string"
price:
type: "integer"
format: "int32"
repository:
$ref: "#/definitions/models.RepositoryModel"
short_description:
type: "string"
type:
type: "string"
title: "ComputingModel"
example:
owner: "owner"
license: "license"
short_description: "short_description"
price: 5
name: "name"
description: "description"
logo: "logo"
execution_requirements:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
ID: "5099803df3f4948bd2f98391"
repository:
credentials: "credentials"
url: "url"
type: "type"
models.ComputingNEWModel:
type: "object"
required:
- "description"
- "logo"
- "name"
- "short_description"
- "type"
properties:
description:
type: "string"
execution_requirements:
$ref: "#/definitions/models.ExecutionRequirementsModel"
license:
type: "string"
logo:
type: "string"
name:
type: "string"
description: "Name of the computing"
owner:
type: "string"
price:
type: "integer"
format: "int32"
repository:
$ref: "#/definitions/models.RepositoryModel"
short_description:
type: "string"
type:
type: "string"
title: "ComputingNEWModel"
models.ComputingObject:
type: "object"
properties:
datacenterID:
type: "string"
description: "Datacenter where the computing will be executed"
inputs:
type: "array"
items:
type: "string"
outputs:
type: "array"
items:
type: "string"
referenceID:
description: "Computing model ID"
$ref: "#/definitions/primitive.ObjectID"
title: "ComputingObject"
example:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
datacenterID: "datacenterID"
referenceID: {}
models.DCstatus:
type: "object"
properties:
Booked:
$ref: "#/definitions/models.ScheduleInfo"
DCname:
type: "string"
DCobjID:
type: "string"
ErrorMessage:
type: "string"
IsAvailable:
type: "boolean"
IsReachable:
type: "boolean"
title: "DCstatus"
example:
DCobjID: "DCobjID"
DCname: "DCname"
IsAvailable: true
Booked:
Total: 0
NextExecutions:
- "NextExecutions"
- "NextExecutions"
IsReachable: true
ErrorMessage: "ErrorMessage"
models.DataModel:
type: "object"
required:
- "ID"
properties:
ID:
type: "string"
description:
type: "string"
example:
type: "string"
description: "base64 encoded data"
ftype:
type: "string"
location:
type: "string"
logo:
type: "string"
name:
type: "string"
description: "Name of the data"
protocol:
type: "array"
items:
type: "string"
short_description:
type: "string"
type:
type: "string"
example: "file"
description: "Define type of data"
title: "DataModel"
example:
short_description: "short_description"
protocol:
- "protocol"
- "protocol"
ftype: "ftype"
name: "name"
description: "description"
logo: "logo"
location: "location"
ID: "ID"
type: "file"
example: "example"
models.DataNEWModel:
type: "object"
required:
- "description"
- "example"
- "location"
- "logo"
- "name"
- "short_description"
- "type"
properties:
description:
type: "string"
example:
type: "string"
description: "base64 encoded data"
ftype:
type: "string"
location:
type: "string"
logo:
type: "string"
name:
type: "string"
description: "Name of the data"
protocol:
type: "array"
items:
type: "string"
short_description:
type: "string"
type:
type: "string"
example: "file"
description: "Define type of data"
title: "DataNEWModel"
models.DataObject:
type: "object"
properties:
referenceID:
description: "Data model ID"
$ref: "#/definitions/primitive.ObjectID"
title: "DataObject"
example: {}
models.DatacenterCpuModel:
type: "object"
required:
- "cores"
properties:
architecture:
type: "string"
cores:
type: "integer"
format: "int32"
minimum_memory:
type: "integer"
format: "int32"
platform:
type: "string"
shared:
type: "boolean"
title: "DatacenterCpuModel"
example:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
models.DatacenterGpuModel:
type: "object"
properties:
cuda_cores:
type: "integer"
format: "int32"
memory:
type: "integer"
format: "int32"
description: "Units in MB"
model:
type: "string"
tensor_cores:
type: "integer"
format: "int32"
title: "DatacenterGpuModel"
example:
memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
models.DatacenterMemoryModel:
type: "object"
properties:
ecc:
type: "boolean"
size:
type: "integer"
format: "int32"
description: "Units in MB"
title: "DatacenterMemoryModel"
example:
ecc: true
size: 7
models.DatacenterModel:
type: "object"
required:
- "ID"
properties:
ID:
type: "string"
acronym:
type: "string"
description: "id of the DC"
bookingPrice:
type: "integer"
format: "int64"
cpu:
$ref: "#/definitions/models.DatacenterCpuModel"
description:
type: "string"
gpu:
type: "array"
items:
$ref: "#/definitions/models.DatacenterGpuModel"
hosts:
type: "array"
description: "list of host:port"
items:
type: "string"
logo:
type: "string"
name:
type: "string"
owner:
type: "string"
ram:
$ref: "#/definitions/models.DatacenterMemoryModel"
short_description:
type: "string"
type:
type: "string"
title: "DatacenterModel"
example:
owner: "owner"
short_description: "short_description"
acronym: "acronym"
hosts:
- "hosts"
- "hosts"
cpu:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
description: "description"
type: "type"
gpu:
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
bookingPrice: 0
name: "name"
logo: "logo"
ID: "ID"
ram:
ecc: true
size: 7
models.DatacenterNEWModel:
type: "object"
required:
- "acronym"
- "cpu"
- "description"
- "gpu"
- "hosts"
- "logo"
- "name"
- "ram"
- "short_description"
- "type"
properties:
acronym:
type: "string"
description: "id of the DC"
bookingPrice:
type: "integer"
format: "int64"
cpu:
$ref: "#/definitions/models.DatacenterCpuModel"
description:
type: "string"
gpu:
type: "array"
items:
$ref: "#/definitions/models.DatacenterGpuModel"
hosts:
type: "array"
description: "list of host:port"
items:
type: "string"
logo:
type: "string"
name:
type: "string"
owner:
type: "string"
ram:
$ref: "#/definitions/models.DatacenterMemoryModel"
short_description:
type: "string"
type:
type: "string"
title: "DatacenterNEWModel"
models.DatacenterObject:
type: "object"
properties:
referenceID:
description: "Data model ID"
$ref: "#/definitions/primitive.ObjectID"
title: "DatacenterObject"
example: {}
models.ExecutionRequirementsModel:
type: "object"
required:
- "cpus"
- "ram"
properties:
cpus:
type: "integer"
format: "int32"
disk_io:
type: "string"
gpus:
type: "integer"
format: "int32"
description: "Amount of GPUs needed"
parallel:
type: "boolean"
ram:
type: "integer"
format: "int32"
description: "Units in MB"
scaling_model:
type: "integer"
format: "int32"
title: "ExecutionRequirementsModel"
example:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
models.RepositoryModel:
type: "object"
properties:
credentials:
type: "string"
url:
type: "string"
title: "RepositoryModel"
example:
credentials: "credentials"
url: "url"
models.ScheduleDB:
type: "object"
properties:
ResourceQty:
$ref: "#/definitions/models.ExecutionRequirementsModel"
StartDate:
type: "string"
format: "datetime"
StopDate:
type: "string"
format: "datetime"
Workflow:
type: "string"
title: "ScheduleDB"
example:
StartDate: "StartDate"
ResourceQty:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
StopDate: "StopDate"
Workflow: "Workflow"
models.ScheduleInfo:
type: "object"
properties:
NextExecutions:
type: "array"
items:
type: "string"
Total:
type: "integer"
format: "int64"
title: "ScheduleInfo"
example:
Total: 0
NextExecutions:
- "NextExecutions"
- "NextExecutions"
models.ScheduleTime:
type: "object"
title: "ScheduleTime"
models.SearchResult:
type: "object"
required:
- "computing"
properties:
computing:
type: "array"
items:
$ref: "#/definitions/models.ComputingModel"
data:
type: "array"
items:
$ref: "#/definitions/models.DataModel"
datacenter:
type: "array"
items:
$ref: "#/definitions/models.DatacenterModel"
storage:
type: "array"
items:
$ref: "#/definitions/models.StorageModel"
title: "SearchResult"
example:
computing:
- owner: "owner"
license: "license"
short_description: "short_description"
price: 5
name: "name"
description: "description"
logo: "logo"
execution_requirements:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
ID: "5099803df3f4948bd2f98391"
repository:
credentials: "credentials"
url: "url"
type: "type"
- owner: "owner"
license: "license"
short_description: "short_description"
price: 5
name: "name"
description: "description"
logo: "logo"
execution_requirements:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
ID: "5099803df3f4948bd2f98391"
repository:
credentials: "credentials"
url: "url"
type: "type"
data:
- short_description: "short_description"
protocol:
- "protocol"
- "protocol"
ftype: "ftype"
name: "name"
description: "description"
logo: "logo"
location: "location"
ID: "ID"
type: "file"
example: "example"
- short_description: "short_description"
protocol:
- "protocol"
- "protocol"
ftype: "ftype"
name: "name"
description: "description"
logo: "logo"
location: "location"
ID: "ID"
type: "file"
example: "example"
datacenter:
- owner: "owner"
short_description: "short_description"
acronym: "acronym"
hosts:
- "hosts"
- "hosts"
cpu:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
description: "description"
type: "type"
gpu:
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
bookingPrice: 0
name: "name"
logo: "logo"
ID: "ID"
ram:
ecc: true
size: 7
- owner: "owner"
short_description: "short_description"
acronym: "acronym"
hosts:
- "hosts"
- "hosts"
cpu:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
description: "description"
type: "type"
gpu:
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
bookingPrice: 0
name: "name"
logo: "logo"
ID: "ID"
ram:
ecc: true
size: 7
storage:
- short_description: "short_description"
encryption: true
size: 6
bookingPrice: 0
DCacronym: "DCacronym"
name: "name"
description: "description"
logo: "logo"
ID: "ID"
redundancy: "redundancy"
throughput: "throughput"
type: "type"
- short_description: "short_description"
encryption: true
size: 6
bookingPrice: 0
DCacronym: "DCacronym"
name: "name"
description: "description"
logo: "logo"
ID: "ID"
redundancy: "redundancy"
throughput: "throughput"
type: "type"
models.StorageModel:
type: "object"
required:
- "ID"
properties:
DCacronym:
type: "string"
description: "Unique ID of the DC where it is the storage"
ID:
type: "string"
bookingPrice:
type: "integer"
format: "int32"
description:
type: "string"
encryption:
type: "boolean"
logo:
type: "string"
name:
type: "string"
redundancy:
type: "string"
short_description:
type: "string"
size:
type: "integer"
format: "int32"
throughput:
type: "string"
type:
type: "string"
title: "StorageModel"
example:
short_description: "short_description"
encryption: true
size: 6
bookingPrice: 0
DCacronym: "DCacronym"
name: "name"
description: "description"
logo: "logo"
ID: "ID"
redundancy: "redundancy"
throughput: "throughput"
type: "type"
models.StorageNEWModel:
type: "object"
required:
- "DCacronym"
- "description"
- "logo"
- "name"
- "short_description"
- "size"
- "type"
properties:
DCacronym:
type: "string"
description: "Unique ID of the DC where it is the storage"
bookingPrice:
type: "integer"
format: "int32"
description:
type: "string"
encryption:
type: "boolean"
logo:
type: "string"
name:
type: "string"
redundancy:
type: "string"
short_description:
type: "string"
size:
type: "integer"
format: "int32"
throughput:
type: "string"
type:
type: "string"
title: "StorageNEWModel"
models.StorageObject:
type: "object"
properties:
inputs:
type: "array"
items:
type: "string"
outputs:
type: "array"
items:
type: "string"
referenceID:
description: "Storage model ID"
$ref: "#/definitions/primitive.ObjectID"
title: "StorageObject"
example:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
models.Workflow:
type: "object"
properties:
MxgraphXML:
type: "string"
description: "State of the mxgraph"
computing:
$ref: "#/definitions/models.ComputingObject"
data:
$ref: "#/definitions/models.DataObject"
datacenter:
$ref: "#/definitions/models.DatacenterObject"
schedules:
$ref: "#/definitions/models.WorkflowSchedule"
storage:
$ref: "#/definitions/models.StorageObject"
title: "Workflow"
example:
computing:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
datacenterID: "datacenterID"
referenceID: {}
data: {}
schedules:
StartDate: "StartDate"
cron: "cron"
duration: 7200
StopDate: "StopDate"
isBooked: true
IsService: true
events: "events"
datacenter: {}
storage:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
MxgraphXML: "MxgraphXML"
models.WorkflowSchedule:
type: "object"
properties:
IsService:
type: "boolean"
description: "Service: true, Task: false"
StartDate:
type: "string"
format: "datetime"
StopDate:
type: "string"
format: "datetime"
cron:
type: "string"
duration:
type: "integer"
format: "int32"
example: 7200
description: "Durantion in seconds"
events:
type: "string"
isBooked:
type: "boolean"
title: "WorkflowSchedule"
example:
StartDate: "StartDate"
cron: "cron"
duration: 7200
StopDate: "StopDate"
isBooked: true
IsService: true
events: "events"
models.Workspace:
type: "object"
properties:
Workflows:
$ref: "#/definitions/models.Workflow"
computing:
type: "array"
items:
type: "string"
data:
type: "array"
items:
type: "string"
datacenter:
type: "array"
items:
type: "string"
storage:
type: "array"
items:
type: "string"
user_id:
type: "string"
title: "Workspace"
example:
computing:
- "computing"
- "computing"
data:
- "data"
- "data"
Workflows:
computing:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
datacenterID: "datacenterID"
referenceID: {}
data: {}
schedules:
StartDate: "StartDate"
cron: "cron"
duration: 7200
StopDate: "StopDate"
isBooked: true
IsService: true
events: "events"
datacenter: {}
storage:
outputs:
- "outputs"
- "outputs"
inputs:
- "inputs"
- "inputs"
MxgraphXML: "MxgraphXML"
user_id: "user_id"
datacenter:
- "datacenter"
- "datacenter"
storage:
- "storage"
- "storage"
models.WorkspaceModel:
type: "object"
properties:
computing:
type: "array"
items:
$ref: "#/definitions/models.ComputingModel"
data:
type: "array"
items:
$ref: "#/definitions/models.DataModel"
datacenter:
type: "array"
items:
$ref: "#/definitions/models.DatacenterModel"
storage:
type: "array"
items:
$ref: "#/definitions/models.StorageModel"
user_id:
type: "string"
title: "WorkspaceModel"
example:
computing:
- owner: "owner"
license: "license"
short_description: "short_description"
price: 5
name: "name"
description: "description"
logo: "logo"
execution_requirements:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
ID: "5099803df3f4948bd2f98391"
repository:
credentials: "credentials"
url: "url"
type: "type"
- owner: "owner"
license: "license"
short_description: "short_description"
price: 5
name: "name"
description: "description"
logo: "logo"
execution_requirements:
cpus: 0
parallel: true
scaling_model: 5
gpus: 6
disk_io: "disk_io"
ram: 1
ID: "5099803df3f4948bd2f98391"
repository:
credentials: "credentials"
url: "url"
type: "type"
data:
- short_description: "short_description"
protocol:
- "protocol"
- "protocol"
ftype: "ftype"
name: "name"
description: "description"
logo: "logo"
location: "location"
ID: "ID"
type: "file"
example: "example"
- short_description: "short_description"
protocol:
- "protocol"
- "protocol"
ftype: "ftype"
name: "name"
description: "description"
logo: "logo"
location: "location"
ID: "ID"
type: "file"
example: "example"
user_id: "user_id"
datacenter:
- owner: "owner"
short_description: "short_description"
acronym: "acronym"
hosts:
- "hosts"
- "hosts"
cpu:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
description: "description"
type: "type"
gpu:
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
bookingPrice: 0
name: "name"
logo: "logo"
ID: "ID"
ram:
ecc: true
size: 7
- owner: "owner"
short_description: "short_description"
acronym: "acronym"
hosts:
- "hosts"
- "hosts"
cpu:
shared: true
cores: 6
platform: "platform"
architecture: "architecture"
minimum_memory: 1
description: "description"
type: "type"
gpu:
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
- memory: 5
cuda_cores: 5
model: "model"
tensor_cores: 2
bookingPrice: 0
name: "name"
logo: "logo"
ID: "ID"
ram:
ecc: true
size: 7
storage:
- short_description: "short_description"
encryption: true
size: 6
bookingPrice: 0
DCacronym: "DCacronym"
name: "name"
description: "description"
logo: "logo"
ID: "ID"
redundancy: "redundancy"
throughput: "throughput"
type: "type"
- short_description: "short_description"
encryption: true
size: 6
bookingPrice: 0
DCacronym: "DCacronym"
name: "name"
description: "description"
logo: "logo"
ID: "ID"
redundancy: "redundancy"
throughput: "throughput"
type: "type"
primitive.ObjectID:
type: "object"
title: "ObjectID"
time.Time:
type: "object"
title: "Time"