--- 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"