diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..0425900
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,44 @@
+FROM golang as builder
+
+LABEL maintainer="Valentin KIVACHUK BURDA"
+
+ENV DOCKER_ENVIRONMENT=true
+ENV CGO_ENABLED=0
+ENV GOOS=linux
+ENV GO111MODULE=on
+
+EXPOSE 49618
+
+WORKDIR /go/src/oc-search
+
+#######################################################
+RUN go get github.com/beego/bee/v2
+
+COPY go.mod .
+COPY go.sum .
+RUN go mod download -x
+
+# COPY . .
+COPY main.go go.mod go.sum ./
+
+COPY controllers controllers
+COPY models models
+COPY routers routers
+COPY api-client api-client
+COPY conf conf
+COPY static static
+COPY views views
+COPY scripts scripts
+
+# FROM golang
+
+# WORKDIR /go/src/oc-catalog
+
+# COPY --from=builder /go/src/oc-catalog .
+
+ENV DOCKER_ENVIRONMENT=true
+
+RUN go build .
+
+
+CMD [ "bee", "run" ]
diff --git a/README.md b/README.md
index 2c4c5d2..75c1b9f 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
-# oc-search
+# OC Search
+Regenerate Swagger client with:
+
+`./scripts/generate_client.sh`
\ No newline at end of file
diff --git a/api-client/oc-catalog/.gitignore b/api-client/oc-catalog/.gitignore
new file mode 100644
index 0000000..daf913b
--- /dev/null
+++ b/api-client/oc-catalog/.gitignore
@@ -0,0 +1,24 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
diff --git a/api-client/oc-catalog/.swagger-codegen-ignore b/api-client/oc-catalog/.swagger-codegen-ignore
new file mode 100644
index 0000000..c5fa491
--- /dev/null
+++ b/api-client/oc-catalog/.swagger-codegen-ignore
@@ -0,0 +1,23 @@
+# Swagger Codegen Ignore
+# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/api-client/oc-catalog/.swagger-codegen/VERSION b/api-client/oc-catalog/.swagger-codegen/VERSION
new file mode 100644
index 0000000..6381ae0
--- /dev/null
+++ b/api-client/oc-catalog/.swagger-codegen/VERSION
@@ -0,0 +1 @@
+2.4.18
\ No newline at end of file
diff --git a/api-client/oc-catalog/.travis.yml b/api-client/oc-catalog/.travis.yml
new file mode 100644
index 0000000..f5cb2ce
--- /dev/null
+++ b/api-client/oc-catalog/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+
+install:
+ - go get -d -v .
+
+script:
+ - go build -v ./
+
diff --git a/api-client/oc-catalog/README.md b/api-client/oc-catalog/README.md
new file mode 100644
index 0000000..04c9497
--- /dev/null
+++ b/api-client/oc-catalog/README.md
@@ -0,0 +1,100 @@
+# Go API client for swagger
+
+Backend of the oc-search project
+
+## Overview
+This API client was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the [swagger-spec](https://github.com/swagger-api/swagger-spec) from a remote server, you can easily generate an API client.
+
+- API version: 1.0.0
+- Package version: 1.0.0
+- Build package: io.swagger.codegen.languages.GoClientCodegen
+
+## Installation
+Put the package under your project folder and add the following in import:
+```golang
+import "./swagger"
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *https://localhost/v1*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*ComputingApi* | [**ComputingControllerAddComputing**](docs/ComputingApi.md#computingcontrolleraddcomputing) | **Post** /computing/ |
+*ComputingApi* | [**ComputingControllerGetComputingByID**](docs/ComputingApi.md#computingcontrollergetcomputingbyid) | **Get** /computing/{ID} |
+*ComputingApi* | [**ComputingControllerGetMultipleComputingByIDs**](docs/ComputingApi.md#computingcontrollergetmultiplecomputingbyids) | **Get** /computing/multi/{IDs} |
+*DataApi* | [**DataControllerCreateData**](docs/DataApi.md#datacontrollercreatedata) | **Post** /data/ |
+*DataApi* | [**DataControllerGetDataByID**](docs/DataApi.md#datacontrollergetdatabyid) | **Get** /data/{ID} |
+*DataApi* | [**DataControllerGetMultipleDataByIDs**](docs/DataApi.md#datacontrollergetmultipledatabyids) | **Get** /data/multi/{IDs} |
+*DatacenterApi* | [**DatacenterControllerCreateDatacenter**](docs/DatacenterApi.md#datacentercontrollercreatedatacenter) | **Post** /datacenter/ |
+*DatacenterApi* | [**DatacenterControllerGetMultipleDatacentersByIDs**](docs/DatacenterApi.md#datacentercontrollergetmultipledatacentersbyids) | **Get** /datacenter/multi/{IDs} |
+*DatacenterApi* | [**DatacenterControllerGetOneDatacenter**](docs/DatacenterApi.md#datacentercontrollergetonedatacenter) | **Get** /datacenter/{ID} |
+*ScheduleApi* | [**ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC**](docs/ScheduleApi.md#schedulecontrollercheckifschedulecanbecreatedinthisdc) | **Post** /schedule/check |
+*ScheduleApi* | [**ScheduleControllerCreateSchedule**](docs/ScheduleApi.md#schedulecontrollercreateschedule) | **Post** /schedule/book |
+*ScheduleApi* | [**ScheduleControllerGetNextSchedule**](docs/ScheduleApi.md#schedulecontrollergetnextschedule) | **Get** /schedule/next |
+*ScheduleApi* | [**ScheduleControllerGetPreviousSchedule**](docs/ScheduleApi.md#schedulecontrollergetpreviousschedule) | **Get** /schedule/previous |
+*ScheduleApi* | [**ScheduleControllerGetSchedules**](docs/ScheduleApi.md#schedulecontrollergetschedules) | **Get** /schedule/ |
+*SearchApi* | [**SearchControllerSearchByWord**](docs/SearchApi.md#searchcontrollersearchbyword) | **Get** /search/byWord |
+*StorageApi* | [**StorageControllerCreateStorage**](docs/StorageApi.md#storagecontrollercreatestorage) | **Post** /storage/ |
+*StorageApi* | [**StorageControllerGet**](docs/StorageApi.md#storagecontrollerget) | **Get** /storage/{ID} |
+*StorageApi* | [**StorageControllerGetMultipleStoragesByIDs**](docs/StorageApi.md#storagecontrollergetmultiplestoragesbyids) | **Get** /storage/multi/{IDs} |
+*UserApi* | [**UserControllerLogin**](docs/UserApi.md#usercontrollerlogin) | **Get** /user/login |
+*UserApi* | [**UserControllerLogout**](docs/UserApi.md#usercontrollerlogout) | **Get** /user/logout |
+*WorkflowApi* | [**WorkflowControllerAddNewObjectToAWorkflow**](docs/WorkflowApi.md#workflowcontrolleraddnewobjecttoaworkflow) | **Post** /workflow/{workflowName}/add |
+*WorkflowApi* | [**WorkflowControllerBookSchedule**](docs/WorkflowApi.md#workflowcontrollerbookschedule) | **Post** /workflow/{workflowName}/schedule/book |
+*WorkflowApi* | [**WorkflowControllerCheckSchedule**](docs/WorkflowApi.md#workflowcontrollercheckschedule) | **Get** /workflow/{workflowName}/schedule/check |
+*WorkflowApi* | [**WorkflowControllerCreateANewWorkflow**](docs/WorkflowApi.md#workflowcontrollercreateanewworkflow) | **Post** /workflow/ |
+*WorkflowApi* | [**WorkflowControllerCreateARealtionshipBetweenTwoRobjects**](docs/WorkflowApi.md#workflowcontrollercreatearealtionshipbetweentworobjects) | **Post** /workflow/{workflowName}/link |
+*WorkflowApi* | [**WorkflowControllerGetMxGraphLastStatus**](docs/WorkflowApi.md#workflowcontrollergetmxgraphlaststatus) | **Get** /workflow/{workflowName}/mxGraphParser |
+*WorkflowApi* | [**WorkflowControllerGetSchedule**](docs/WorkflowApi.md#workflowcontrollergetschedule) | **Get** /workflow/{workflowName}/schedule |
+*WorkflowApi* | [**WorkflowControllerGetWorkflow**](docs/WorkflowApi.md#workflowcontrollergetworkflow) | **Get** /workflow/{workflowName} |
+*WorkflowApi* | [**WorkflowControllerListWorkflows**](docs/WorkflowApi.md#workflowcontrollerlistworkflows) | **Get** /workflow/ |
+*WorkflowApi* | [**WorkflowControllerParseMxGraph**](docs/WorkflowApi.md#workflowcontrollerparsemxgraph) | **Post** /workflow/{workflowName}/mxGraphParser |
+*WorkflowApi* | [**WorkflowControllerSetSchedule**](docs/WorkflowApi.md#workflowcontrollersetschedule) | **Put** /workflow/{workflowName}/schedule |
+*WorkspaceApi* | [**WorkspaceControllerAddModelToWorkspace**](docs/WorkspaceApi.md#workspacecontrolleraddmodeltoworkspace) | **Post** /workspace/ |
+*WorkspaceApi* | [**WorkspaceControllerDeleteElementFromUserWorkspace**](docs/WorkspaceApi.md#workspacecontrollerdeleteelementfromuserworkspace) | **Delete** /workspace/ |
+*WorkspaceApi* | [**WorkspaceControllerGetFullWorkspace**](docs/WorkspaceApi.md#workspacecontrollergetfullworkspace) | **Get** /workspace/list_model |
+*WorkspaceApi* | [**WorkspaceControllerGetWorkspace**](docs/WorkspaceApi.md#workspacecontrollergetworkspace) | **Get** /workspace/list |
+
+
+## Documentation For Models
+
+ - [ModelsComputingModel](docs/ModelsComputingModel.md)
+ - [ModelsComputingNewModel](docs/ModelsComputingNewModel.md)
+ - [ModelsComputingObject](docs/ModelsComputingObject.md)
+ - [ModelsDCstatus](docs/ModelsDCstatus.md)
+ - [ModelsDataModel](docs/ModelsDataModel.md)
+ - [ModelsDataNewModel](docs/ModelsDataNewModel.md)
+ - [ModelsDataObject](docs/ModelsDataObject.md)
+ - [ModelsDatacenterCpuModel](docs/ModelsDatacenterCpuModel.md)
+ - [ModelsDatacenterGpuModel](docs/ModelsDatacenterGpuModel.md)
+ - [ModelsDatacenterMemoryModel](docs/ModelsDatacenterMemoryModel.md)
+ - [ModelsDatacenterModel](docs/ModelsDatacenterModel.md)
+ - [ModelsDatacenterNewModel](docs/ModelsDatacenterNewModel.md)
+ - [ModelsDatacenterObject](docs/ModelsDatacenterObject.md)
+ - [ModelsExecutionRequirementsModel](docs/ModelsExecutionRequirementsModel.md)
+ - [ModelsRepositoryModel](docs/ModelsRepositoryModel.md)
+ - [ModelsScheduleDb](docs/ModelsScheduleDb.md)
+ - [ModelsScheduleInfo](docs/ModelsScheduleInfo.md)
+ - [ModelsScheduleTime](docs/ModelsScheduleTime.md)
+ - [ModelsSearchResult](docs/ModelsSearchResult.md)
+ - [ModelsStorageModel](docs/ModelsStorageModel.md)
+ - [ModelsStorageNewModel](docs/ModelsStorageNewModel.md)
+ - [ModelsStorageObject](docs/ModelsStorageObject.md)
+ - [ModelsWorkflow](docs/ModelsWorkflow.md)
+ - [ModelsWorkflowSchedule](docs/ModelsWorkflowSchedule.md)
+ - [ModelsWorkspace](docs/ModelsWorkspace.md)
+ - [ModelsWorkspaceModel](docs/ModelsWorkspaceModel.md)
+ - [PrimitiveObjectId](docs/PrimitiveObjectId.md)
+ - [TimeTime](docs/TimeTime.md)
+
+
+## Documentation For Authorization
+ Endpoints do not require authorization.
+
+
+## Author
+
+valentin.kivachuk@irt-saintexupery.com
+
diff --git a/api-client/oc-catalog/api/swagger.yaml b/api-client/oc-catalog/api/swagger.yaml
new file mode 100644
index 0000000..d98f6df
--- /dev/null
+++ b/api-client/oc-catalog/api/swagger.yaml
@@ -0,0 +1,2041 @@
+---
+swagger: "2.0"
+info:
+ description: "Backend of the oc-search project"
+ version: "1.0.0"
+ title: "oc-catalog API"
+ contact:
+ email: "valentin.kivachuk@irt-saintexupery.com"
+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:
+ Dinputs:
+ type: "array"
+ items:
+ type: "string"
+ Doutputs:
+ type: "array"
+ items:
+ type: "string"
+ 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"
+ short_description: "short_description"
+ description: "description"
+ repository:
+ credentials: "credentials"
+ url: "url"
+ type: "type"
+ Doutputs:
+ - "Doutputs"
+ - "Doutputs"
+ license: "license"
+ price: 5
+ name: "name"
+ logo: "logo"
+ Dinputs:
+ - "Dinputs"
+ - "Dinputs"
+ execution_requirements:
+ cpus: 0
+ parallel: true
+ scaling_model: 5
+ gpus: 6
+ disk_io: "disk_io"
+ ram: 1
+ ID: "5099803df3f4948bd2f98391"
+ models.ComputingNEWModel:
+ type: "object"
+ required:
+ - "description"
+ - "logo"
+ - "name"
+ - "short_description"
+ - "type"
+ properties:
+ Dinputs:
+ type: "array"
+ items:
+ type: "string"
+ Doutputs:
+ type: "array"
+ items:
+ type: "string"
+ 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"
+ dtype:
+ type: "string"
+ example:
+ type: "string"
+ description: "base64 encoded data"
+ 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"
+ name: "name"
+ description: "description"
+ dtype: "dtype"
+ 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"
+ dtype:
+ type: "string"
+ example:
+ type: "string"
+ description: "base64 encoded data"
+ 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"
+ short_description: "short_description"
+ description: "description"
+ repository:
+ credentials: "credentials"
+ url: "url"
+ type: "type"
+ Doutputs:
+ - "Doutputs"
+ - "Doutputs"
+ license: "license"
+ price: 5
+ name: "name"
+ logo: "logo"
+ Dinputs:
+ - "Dinputs"
+ - "Dinputs"
+ execution_requirements:
+ cpus: 0
+ parallel: true
+ scaling_model: 5
+ gpus: 6
+ disk_io: "disk_io"
+ ram: 1
+ ID: "5099803df3f4948bd2f98391"
+ - owner: "owner"
+ short_description: "short_description"
+ description: "description"
+ repository:
+ credentials: "credentials"
+ url: "url"
+ type: "type"
+ Doutputs:
+ - "Doutputs"
+ - "Doutputs"
+ license: "license"
+ price: 5
+ name: "name"
+ logo: "logo"
+ Dinputs:
+ - "Dinputs"
+ - "Dinputs"
+ execution_requirements:
+ cpus: 0
+ parallel: true
+ scaling_model: 5
+ gpus: 6
+ disk_io: "disk_io"
+ ram: 1
+ ID: "5099803df3f4948bd2f98391"
+ data:
+ - short_description: "short_description"
+ protocol:
+ - "protocol"
+ - "protocol"
+ name: "name"
+ description: "description"
+ dtype: "dtype"
+ logo: "logo"
+ location: "location"
+ ID: "ID"
+ type: "file"
+ example: "example"
+ - short_description: "short_description"
+ protocol:
+ - "protocol"
+ - "protocol"
+ name: "name"
+ description: "description"
+ dtype: "dtype"
+ 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"
+ short_description: "short_description"
+ description: "description"
+ repository:
+ credentials: "credentials"
+ url: "url"
+ type: "type"
+ Doutputs:
+ - "Doutputs"
+ - "Doutputs"
+ license: "license"
+ price: 5
+ name: "name"
+ logo: "logo"
+ Dinputs:
+ - "Dinputs"
+ - "Dinputs"
+ execution_requirements:
+ cpus: 0
+ parallel: true
+ scaling_model: 5
+ gpus: 6
+ disk_io: "disk_io"
+ ram: 1
+ ID: "5099803df3f4948bd2f98391"
+ - owner: "owner"
+ short_description: "short_description"
+ description: "description"
+ repository:
+ credentials: "credentials"
+ url: "url"
+ type: "type"
+ Doutputs:
+ - "Doutputs"
+ - "Doutputs"
+ license: "license"
+ price: 5
+ name: "name"
+ logo: "logo"
+ Dinputs:
+ - "Dinputs"
+ - "Dinputs"
+ execution_requirements:
+ cpus: 0
+ parallel: true
+ scaling_model: 5
+ gpus: 6
+ disk_io: "disk_io"
+ ram: 1
+ ID: "5099803df3f4948bd2f98391"
+ data:
+ - short_description: "short_description"
+ protocol:
+ - "protocol"
+ - "protocol"
+ name: "name"
+ description: "description"
+ dtype: "dtype"
+ logo: "logo"
+ location: "location"
+ ID: "ID"
+ type: "file"
+ example: "example"
+ - short_description: "short_description"
+ protocol:
+ - "protocol"
+ - "protocol"
+ name: "name"
+ description: "description"
+ dtype: "dtype"
+ 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"
diff --git a/api-client/oc-catalog/api_computing.go b/api-client/oc-catalog/api_computing.go
new file mode 100644
index 0000000..1d0bab0
--- /dev/null
+++ b/api-client/oc-catalog/api_computing.go
@@ -0,0 +1,275 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+ "fmt"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type ComputingApiService service
+
+/*
+ComputingApiService
+Submit a computing object
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body The object content
+
+
+*/
+func (a *ComputingApiService) ComputingControllerAddComputing(ctx context.Context, body ModelsComputingNewModel) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/computing/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+ComputingApiService
+Find a computing resource based on ID
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iD The ID of the resource
+
+@return ModelsComputingModel
+*/
+func (a *ComputingApiService) ComputingControllerGetComputingByID(ctx context.Context, iD string) (ModelsComputingModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsComputingModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/computing/{ID}"
+ localVarPath = strings.Replace(localVarPath, "{"+"ID"+"}", fmt.Sprintf("%v", iD), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsComputingModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+ComputingApiService
+Return Computing objects if found in the DB. Not found IDs will be ignored
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iDs List of computing IDs
+
+@return []ModelsComputingModel
+*/
+func (a *ComputingApiService) ComputingControllerGetMultipleComputingByIDs(ctx context.Context, iDs []string) ([]ModelsComputingModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsComputingModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/computing/multi/{IDs}"
+ localVarPath = strings.Replace(localVarPath, "{"+"IDs"+"}", fmt.Sprintf("%v", iDs), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsComputingModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_data.go b/api-client/oc-catalog/api_data.go
new file mode 100644
index 0000000..9b1f176
--- /dev/null
+++ b/api-client/oc-catalog/api_data.go
@@ -0,0 +1,275 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+ "fmt"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type DataApiService service
+
+/*
+DataApiService
+Submit data object
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body The object content
+
+
+*/
+func (a *DataApiService) DataControllerCreateData(ctx context.Context, body ModelsDataNewModel) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/data/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+DataApiService
+Find rType data based on ID
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iD The ID of the data resource
+
+@return ModelsDataModel
+*/
+func (a *DataApiService) DataControllerGetDataByID(ctx context.Context, iD string) (ModelsDataModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsDataModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/data/{ID}"
+ localVarPath = strings.Replace(localVarPath, "{"+"ID"+"}", fmt.Sprintf("%v", iD), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsDataModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+DataApiService
+Return Data object if found in the DB. Not found IDs will be ignored
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iDs List of data IDs
+
+@return []ModelsDataModel
+*/
+func (a *DataApiService) DataControllerGetMultipleDataByIDs(ctx context.Context, iDs []string) ([]ModelsDataModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsDataModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/data/multi/{IDs}"
+ localVarPath = strings.Replace(localVarPath, "{"+"IDs"+"}", fmt.Sprintf("%v", iDs), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsDataModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_datacenter.go b/api-client/oc-catalog/api_datacenter.go
new file mode 100644
index 0000000..6242588
--- /dev/null
+++ b/api-client/oc-catalog/api_datacenter.go
@@ -0,0 +1,275 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+ "fmt"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type DatacenterApiService service
+
+/*
+DatacenterApiService
+submit Datacenter object
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body The object content
+
+
+*/
+func (a *DatacenterApiService) DatacenterControllerCreateDatacenter(ctx context.Context, body ModelsDatacenterNewModel) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/datacenter/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+DatacenterApiService
+Return Datacenter objects if found in the DB. Not found IDs will be ignored
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iDs List of datacenter IDs
+
+@return []ModelsComputingModel
+*/
+func (a *DatacenterApiService) DatacenterControllerGetMultipleDatacentersByIDs(ctx context.Context, iDs []string) ([]ModelsComputingModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsComputingModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/datacenter/multi/{IDs}"
+ localVarPath = strings.Replace(localVarPath, "{"+"IDs"+"}", fmt.Sprintf("%v", iDs), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsComputingModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+DatacenterApiService
+find datacenter by ID
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iD the ID you want to get
+
+@return ModelsDatacenterModel
+*/
+func (a *DatacenterApiService) DatacenterControllerGetOneDatacenter(ctx context.Context, iD string) (ModelsDatacenterModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsDatacenterModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/datacenter/{ID}"
+ localVarPath = strings.Replace(localVarPath, "{"+"ID"+"}", fmt.Sprintf("%v", iD), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsDatacenterModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_schedule.go b/api-client/oc-catalog/api_schedule.go
new file mode 100644
index 0000000..d639d90
--- /dev/null
+++ b/api-client/oc-catalog/api_schedule.go
@@ -0,0 +1,471 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type ScheduleApiService service
+
+/*
+ScheduleApiService
+Check for availability of this DC
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param cron Cron syntax
+ * @param duration Duration in seconds
+ * @param startDate RFC3339 time for startDate
+ * @param stopDate RFC3339 time for stopDate
+ * @param requirements The object content
+
+
+*/
+func (a *ScheduleApiService) ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC(ctx context.Context, cron string, duration int32, startDate interface{}, stopDate interface{}, requirements ModelsExecutionRequirementsModel) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/schedule/check"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("cron", parameterToString(cron, ""))
+ localVarQueryParams.Add("duration", parameterToString(duration, ""))
+ localVarQueryParams.Add("startDate", parameterToString(startDate, ""))
+ localVarQueryParams.Add("stopDate", parameterToString(stopDate, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &requirements
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+ScheduleApiService
+Create schedule for a workflow. It will return some future executions just as information
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param dcName Name of the node (oc-catalog) from where the workflow comes.
+ * @param workflowName Workflow Name
+ * @param cron Cron syntax with year. If no year is specified, will use the current
+ * @param duration Duration in seconds
+ * @param startDate RFC3339 time for startDate
+ * @param stopDate RFC3339 time for stopDate
+ * @param requirements The object content
+
+@return ModelsScheduleInfo
+*/
+func (a *ScheduleApiService) ScheduleControllerCreateSchedule(ctx context.Context, dcName string, workflowName string, cron string, duration int32, startDate interface{}, stopDate interface{}, requirements ModelsExecutionRequirementsModel) (ModelsScheduleInfo, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsScheduleInfo
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/schedule/book"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("dcName", parameterToString(dcName, ""))
+ localVarQueryParams.Add("workflowName", parameterToString(workflowName, ""))
+ localVarQueryParams.Add("cron", parameterToString(cron, ""))
+ localVarQueryParams.Add("duration", parameterToString(duration, ""))
+ localVarQueryParams.Add("startDate", parameterToString(startDate, ""))
+ localVarQueryParams.Add("stopDate", parameterToString(stopDate, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &requirements
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsScheduleInfo
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+ScheduleApiService
+Give a date, get the next date where there are at least on schedule. If no hours specified, will assume 00:00
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param baseDate Base date
+
+@return TimeTime
+*/
+func (a *ScheduleApiService) ScheduleControllerGetNextSchedule(ctx context.Context, baseDate interface{}) (TimeTime, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue TimeTime
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/schedule/next"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("baseDate", parameterToString(baseDate, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v TimeTime
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+ScheduleApiService
+Give a date, get the previous date where there are at least on schedule. If no hours specified, will assume 00:00
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param baseDate Base date
+
+@return TimeTime
+*/
+func (a *ScheduleApiService) ScheduleControllerGetPreviousSchedule(ctx context.Context, baseDate interface{}) (TimeTime, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue TimeTime
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/schedule/previous"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("baseDate", parameterToString(baseDate, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v TimeTime
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+ScheduleApiService
+Get a list of next startDates schedules (inclusive). If timezone is not specified, will assume UTC
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param startDate Start date
+ * @param stopDate End date
+
+@return []ModelsScheduleDb
+*/
+func (a *ScheduleApiService) ScheduleControllerGetSchedules(ctx context.Context, startDate interface{}, stopDate interface{}) ([]ModelsScheduleDb, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsScheduleDb
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/schedule/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("startDate", parameterToString(startDate, ""))
+ localVarQueryParams.Add("stopDate", parameterToString(stopDate, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsScheduleDb
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_search.go b/api-client/oc-catalog/api_search.go
new file mode 100644
index 0000000..cf74fa2
--- /dev/null
+++ b/api-client/oc-catalog/api_search.go
@@ -0,0 +1,115 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type SearchApiService service
+
+/*
+SearchApiService
+find resources by word
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param word Word to search across all resources
+
+@return ModelsSearchResult
+*/
+func (a *SearchApiService) SearchControllerSearchByWord(ctx context.Context, word string) (ModelsSearchResult, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsSearchResult
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/search/byWord"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("word", parameterToString(word, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsSearchResult
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_storage.go b/api-client/oc-catalog/api_storage.go
new file mode 100644
index 0000000..a34b776
--- /dev/null
+++ b/api-client/oc-catalog/api_storage.go
@@ -0,0 +1,275 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+ "fmt"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type StorageApiService service
+
+/*
+StorageApiService
+submit storage object
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body The object content
+
+
+*/
+func (a *StorageApiService) StorageControllerCreateStorage(ctx context.Context, body ModelsStorageNewModel) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/storage/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+StorageApiService
+find storage by ID
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iD the ID you want to get
+
+@return ModelsStorageModel
+*/
+func (a *StorageApiService) StorageControllerGet(ctx context.Context, iD string) (ModelsStorageModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsStorageModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/storage/{ID}"
+ localVarPath = strings.Replace(localVarPath, "{"+"ID"+"}", fmt.Sprintf("%v", iD), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsStorageModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+StorageApiService
+Return Storage objects if found in the DB. Not found IDs will be ignored
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param iDs List of storage IDs
+
+@return []ModelsComputingModel
+*/
+func (a *StorageApiService) StorageControllerGetMultipleStoragesByIDs(ctx context.Context, iDs []string) ([]ModelsComputingModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsComputingModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/storage/multi/{IDs}"
+ localVarPath = strings.Replace(localVarPath, "{"+"IDs"+"}", fmt.Sprintf("%v", iDs), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsComputingModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_user.go b/api-client/oc-catalog/api_user.go
new file mode 100644
index 0000000..10e1f52
--- /dev/null
+++ b/api-client/oc-catalog/api_user.go
@@ -0,0 +1,170 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type UserApiService service
+
+/*
+UserApiService
+Logs user into the system
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param username The username for login
+ * @param password The password for login
+
+
+*/
+func (a *UserApiService) UserControllerLogin(ctx context.Context, username string, password string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/login"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("username", parameterToString(username, ""))
+ localVarQueryParams.Add("password", parameterToString(password, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService
+Logs out current logged in user session
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+
+
+*/
+func (a *UserApiService) UserControllerLogout(ctx context.Context) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/logout"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_workflow.go b/api-client/oc-catalog/api_workflow.go
new file mode 100644
index 0000000..cbbe997
--- /dev/null
+++ b/api-client/oc-catalog/api_workflow.go
@@ -0,0 +1,926 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+ "fmt"
+ "github.com/antihax/optional"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type WorkflowApiService service
+
+/*
+WorkflowApiService
+Create a Rtype object from already added resources to the workspace
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName workflow Name
+ * @param rID rID of already existing item in Workspace
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerAddNewObjectToAWorkflow(ctx context.Context, workflowName string, rID string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/add"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("rID", parameterToString(rID, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Book a schedule in all DCs of the workflow. Must set a desired schedule first!
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+
+@return []ModelsDCstatus
+*/
+func (a *WorkflowApiService) WorkflowControllerBookSchedule(ctx context.Context, workflowName string) ([]ModelsDCstatus, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsDCstatus
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/schedule/book"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsDCstatus
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Check if we can schedule the project in other DCs. Must set a desired schedule first!
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+
+@return []ModelsDCstatus
+*/
+func (a *WorkflowApiService) WorkflowControllerCheckSchedule(ctx context.Context, workflowName string) ([]ModelsDCstatus, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []ModelsDCstatus
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/schedule/check"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []ModelsDCstatus
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Create a name for the new workflow
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Name of the workflow
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerCreateANewWorkflow(ctx context.Context, workflowName string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("workflowName", parameterToString(workflowName, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Create a Rtype object from already added resources to the workspace
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+ * @param rObjIDsource Robject source. Usually Data
+ * @param isInput If the operation is for input (true) linkage or output (false)
+ * @param rObjIDtarger Robject where will be written the association
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerCreateARealtionshipBetweenTwoRobjects(ctx context.Context, workflowName string, rObjIDsource string, isInput bool, rObjIDtarger string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/link"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("rObjIDsource", parameterToString(rObjIDsource, ""))
+ localVarQueryParams.Add("isInput", parameterToString(isInput, ""))
+ localVarQueryParams.Add("rObjIDtarger", parameterToString(rObjIDtarger, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Obtain the last mxgraph XML status from the workflow
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerGetMxGraphLastStatus(ctx context.Context, workflowName string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/mxGraphParser"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Obtain the desired schedule of this workflow
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+
+@return ModelsScheduleTime
+*/
+func (a *WorkflowApiService) WorkflowControllerGetSchedule(ctx context.Context, workflowName string) (ModelsScheduleTime, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsScheduleTime
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/schedule"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsScheduleTime
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Get a workflow by name
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+
+@return ModelsWorkflow
+*/
+func (a *WorkflowApiService) WorkflowControllerGetWorkflow(ctx context.Context, workflowName string) (ModelsWorkflow, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsWorkflow
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsWorkflow
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+List available workflows
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerListWorkflows(ctx context.Context) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+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.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+ * @param xmlData Xml representation of the workflow
+
+
+*/
+func (a *WorkflowApiService) WorkflowControllerParseMxGraph(ctx context.Context, workflowName string, xmlData string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/mxGraphParser"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &xmlData
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkflowApiService
+Set desired schedule by the user. No other effects a part of saving the user input
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param workflowName Workflow Name
+ * @param isService True: Service, False: Task
+ * @param startDate RFC3339 time for startDate
+ * @param stopDate RFC3339 time for stopDate
+ * @param optional nil or *WorkflowApiWorkflowControllerSetScheduleOpts - Optional Parameters:
+ * @param "Events" (optional.String) - List of events separated by comma
+ * @param "CronString" (optional.String) - Cron string
+ * @param "Duration" (optional.Int32) - Duration in seconds
+
+@return ModelsScheduleInfo
+*/
+
+type WorkflowApiWorkflowControllerSetScheduleOpts struct {
+ Events optional.String
+ CronString optional.String
+ Duration optional.Int32
+}
+
+func (a *WorkflowApiService) WorkflowControllerSetSchedule(ctx context.Context, workflowName string, isService bool, startDate interface{}, stopDate interface{}, localVarOptionals *WorkflowApiWorkflowControllerSetScheduleOpts) (ModelsScheduleInfo, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Put")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsScheduleInfo
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workflow/{workflowName}/schedule"
+ localVarPath = strings.Replace(localVarPath, "{"+"workflowName"+"}", fmt.Sprintf("%v", workflowName), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("isService", parameterToString(isService, ""))
+ localVarQueryParams.Add("startDate", parameterToString(startDate, ""))
+ localVarQueryParams.Add("stopDate", parameterToString(stopDate, ""))
+ if localVarOptionals != nil && localVarOptionals.Events.IsSet() {
+ localVarQueryParams.Add("events", parameterToString(localVarOptionals.Events.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.CronString.IsSet() {
+ localVarQueryParams.Add("cronString", parameterToString(localVarOptionals.CronString.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Duration.IsSet() {
+ localVarQueryParams.Add("duration", parameterToString(localVarOptionals.Duration.Value(), ""))
+ }
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsScheduleInfo
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/api_workspace.go b/api-client/oc-catalog/api_workspace.go
new file mode 100644
index 0000000..2628331
--- /dev/null
+++ b/api-client/oc-catalog/api_workspace.go
@@ -0,0 +1,344 @@
+
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type WorkspaceApiService service
+
+/*
+WorkspaceApiService
+Insert a resource in the workspace
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param id ID of a resource
+ * @param rtype Type of resource
+
+
+*/
+func (a *WorkspaceApiService) WorkspaceControllerAddModelToWorkspace(ctx context.Context, id string, rtype string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Post")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workspace/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("id", parameterToString(id, ""))
+ localVarQueryParams.Add("rtype", parameterToString(rtype, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkspaceApiService
+Remove a resource from the workspace
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param id ID of a resource
+ * @param rtype Type of resource
+
+
+*/
+func (a *WorkspaceApiService) WorkspaceControllerDeleteElementFromUserWorkspace(ctx context.Context, id string, rtype string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Delete")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workspace/"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("id", parameterToString(id, ""))
+ localVarQueryParams.Add("rtype", parameterToString(rtype, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+WorkspaceApiService
+Get full workspace elements based on user_id token
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+
+@return ModelsWorkspaceModel
+*/
+func (a *WorkspaceApiService) WorkspaceControllerGetFullWorkspace(ctx context.Context) (ModelsWorkspaceModel, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsWorkspaceModel
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workspace/list_model"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsWorkspaceModel
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+WorkspaceApiService
+Get workspace elements based on user_id token
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+
+@return ModelsWorkspace
+*/
+func (a *WorkspaceApiService) WorkspaceControllerGetWorkspace(ctx context.Context) (ModelsWorkspace, *http.Response, error) {
+ var (
+ localVarHttpMethod = strings.ToUpper("Get")
+ localVarPostBody interface{}
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ModelsWorkspace
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/workspace/list"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode < 300 {
+ // If we succeed, return the data, otherwise pass on to decode error.
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericSwaggerError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ModelsWorkspace
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
diff --git a/api-client/oc-catalog/client.go b/api-client/oc-catalog/client.go
new file mode 100644
index 0000000..ff916aa
--- /dev/null
+++ b/api-client/oc-catalog/client.go
@@ -0,0 +1,499 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "encoding/xml"
+ "errors"
+ "fmt"
+ "io"
+ "mime/multipart"
+ "net/http"
+ "net/url"
+ "os"
+ "path/filepath"
+ "reflect"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+
+ "golang.org/x/oauth2"
+)
+
+var (
+ jsonCheck = regexp.MustCompile("(?i:(?:application|text)/json)")
+ xmlCheck = regexp.MustCompile("(?i:(?:application|text)/xml)")
+)
+
+// APIClient manages communication with the oc-catalog API API v1.0.0
+// In most cases there should be only one, shared, APIClient.
+type APIClient struct {
+ cfg *Configuration
+ common service // Reuse a single struct instead of allocating one for each service on the heap.
+
+ // API Services
+
+ ComputingApi *ComputingApiService
+
+ DataApi *DataApiService
+
+ DatacenterApi *DatacenterApiService
+
+ ScheduleApi *ScheduleApiService
+
+ SearchApi *SearchApiService
+
+ StorageApi *StorageApiService
+
+ UserApi *UserApiService
+
+ WorkflowApi *WorkflowApiService
+
+ WorkspaceApi *WorkspaceApiService
+}
+
+type service struct {
+ client *APIClient
+}
+
+// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
+// optionally a custom http.Client to allow for advanced features such as caching.
+func NewAPIClient(cfg *Configuration) *APIClient {
+ if cfg.HTTPClient == nil {
+ cfg.HTTPClient = http.DefaultClient
+ }
+
+ c := &APIClient{}
+ c.cfg = cfg
+ c.common.client = c
+
+ // API Services
+ c.ComputingApi = (*ComputingApiService)(&c.common)
+ c.DataApi = (*DataApiService)(&c.common)
+ c.DatacenterApi = (*DatacenterApiService)(&c.common)
+ c.ScheduleApi = (*ScheduleApiService)(&c.common)
+ c.SearchApi = (*SearchApiService)(&c.common)
+ c.StorageApi = (*StorageApiService)(&c.common)
+ c.UserApi = (*UserApiService)(&c.common)
+ c.WorkflowApi = (*WorkflowApiService)(&c.common)
+ c.WorkspaceApi = (*WorkspaceApiService)(&c.common)
+
+ return c
+}
+
+func atoi(in string) (int, error) {
+ return strconv.Atoi(in)
+}
+
+// selectHeaderContentType select a content type from the available list.
+func selectHeaderContentType(contentTypes []string) string {
+ if len(contentTypes) == 0 {
+ return ""
+ }
+ if contains(contentTypes, "application/json") {
+ return "application/json"
+ }
+ return contentTypes[0] // use the first content type specified in 'consumes'
+}
+
+// selectHeaderAccept join all accept types and return
+func selectHeaderAccept(accepts []string) string {
+ if len(accepts) == 0 {
+ return ""
+ }
+
+ if contains(accepts, "application/json") {
+ return "application/json"
+ }
+
+ return strings.Join(accepts, ",")
+}
+
+// contains is a case insenstive match, finding needle in a haystack
+func contains(haystack []string, needle string) bool {
+ for _, a := range haystack {
+ if strings.ToLower(a) == strings.ToLower(needle) {
+ return true
+ }
+ }
+ return false
+}
+
+// Verify optional parameters are of the correct type.
+func typeCheckParameter(obj interface{}, expected string, name string) error {
+ // Make sure there is an object.
+ if obj == nil {
+ return nil
+ }
+
+ // Check the type is as expected.
+ if reflect.TypeOf(obj).String() != expected {
+ return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
+ }
+ return nil
+}
+
+// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
+func parameterToString(obj interface{}, collectionFormat string) string {
+ var delimiter string
+
+ switch collectionFormat {
+ case "pipes":
+ delimiter = "|"
+ case "ssv":
+ delimiter = " "
+ case "tsv":
+ delimiter = "\t"
+ case "csv":
+ delimiter = ","
+ }
+
+ if reflect.TypeOf(obj).Kind() == reflect.Slice {
+ return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
+ }
+
+ return fmt.Sprintf("%v", obj)
+}
+
+// callAPI do the request.
+func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
+ return c.cfg.HTTPClient.Do(request)
+}
+
+// Change base path to allow switching to mocks
+func (c *APIClient) ChangeBasePath(path string) {
+ c.cfg.BasePath = path
+}
+
+// prepareRequest build the request
+func (c *APIClient) prepareRequest(
+ ctx context.Context,
+ path string, method string,
+ postBody interface{},
+ headerParams map[string]string,
+ queryParams url.Values,
+ formParams url.Values,
+ fileName string,
+ fileBytes []byte) (localVarRequest *http.Request, err error) {
+
+ var body *bytes.Buffer
+
+ // Detect postBody type and post.
+ if postBody != nil {
+ contentType := headerParams["Content-Type"]
+ if contentType == "" {
+ contentType = detectContentType(postBody)
+ headerParams["Content-Type"] = contentType
+ }
+
+ body, err = setBody(postBody, contentType)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ // add form parameters and file if available.
+ if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ w := multipart.NewWriter(body)
+
+ for k, v := range formParams {
+ for _, iv := range v {
+ if strings.HasPrefix(k, "@") { // file
+ err = addFile(w, k[1:], iv)
+ if err != nil {
+ return nil, err
+ }
+ } else { // form value
+ w.WriteField(k, iv)
+ }
+ }
+ }
+ if len(fileBytes) > 0 && fileName != "" {
+ w.Boundary()
+ //_, fileNm := filepath.Split(fileName)
+ part, err := w.CreateFormFile("file", filepath.Base(fileName))
+ if err != nil {
+ return nil, err
+ }
+ _, err = part.Write(fileBytes)
+ if err != nil {
+ return nil, err
+ }
+ // Set the Boundary in the Content-Type
+ headerParams["Content-Type"] = w.FormDataContentType()
+ }
+
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ w.Close()
+ }
+
+ if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ body.WriteString(formParams.Encode())
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ }
+
+ // Setup path and query parameters
+ url, err := url.Parse(path)
+ if err != nil {
+ return nil, err
+ }
+
+ // Adding Query Param
+ query := url.Query()
+ for k, v := range queryParams {
+ for _, iv := range v {
+ query.Add(k, iv)
+ }
+ }
+
+ // Encode the parameters.
+ url.RawQuery = query.Encode()
+
+ // Generate a new request
+ if body != nil {
+ localVarRequest, err = http.NewRequest(method, url.String(), body)
+ } else {
+ localVarRequest, err = http.NewRequest(method, url.String(), nil)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ // add header parameters, if any
+ if len(headerParams) > 0 {
+ headers := http.Header{}
+ for h, v := range headerParams {
+ headers.Set(h, v)
+ }
+ localVarRequest.Header = headers
+ }
+
+ // Override request host, if applicable
+ if c.cfg.Host != "" {
+ localVarRequest.Host = c.cfg.Host
+ }
+
+ // Add the user agent to the request.
+ localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
+
+ if ctx != nil {
+ // add context to the request
+ localVarRequest = localVarRequest.WithContext(ctx)
+
+ // Walk through any authentication.
+
+ // OAuth2 authentication
+ if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
+ // We were able to grab an oauth2 token from the context
+ var latestToken *oauth2.Token
+ if latestToken, err = tok.Token(); err != nil {
+ return nil, err
+ }
+
+ latestToken.SetAuthHeader(localVarRequest)
+ }
+
+ // Basic HTTP Authentication
+ if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok {
+ localVarRequest.SetBasicAuth(auth.UserName, auth.Password)
+ }
+
+ // AccessToken Authentication
+ if auth, ok := ctx.Value(ContextAccessToken).(string); ok {
+ localVarRequest.Header.Add("Authorization", "Bearer "+auth)
+ }
+ }
+
+ for header, value := range c.cfg.DefaultHeader {
+ localVarRequest.Header.Add(header, value)
+ }
+
+ return localVarRequest, nil
+}
+
+func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
+ if strings.Contains(contentType, "application/xml") {
+ if err = xml.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ } else if strings.Contains(contentType, "application/json") {
+ if err = json.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ }
+ return errors.New("undefined response type")
+}
+
+// Add a file to the multipart request
+func addFile(w *multipart.Writer, fieldName, path string) error {
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ part, err := w.CreateFormFile(fieldName, filepath.Base(path))
+ if err != nil {
+ return err
+ }
+ _, err = io.Copy(part, file)
+
+ return err
+}
+
+// Prevent trying to import "fmt"
+func reportError(format string, a ...interface{}) error {
+ return fmt.Errorf(format, a...)
+}
+
+// Set request body from an interface{}
+func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
+ if bodyBuf == nil {
+ bodyBuf = &bytes.Buffer{}
+ }
+
+ if reader, ok := body.(io.Reader); ok {
+ _, err = bodyBuf.ReadFrom(reader)
+ } else if b, ok := body.([]byte); ok {
+ _, err = bodyBuf.Write(b)
+ } else if s, ok := body.(string); ok {
+ _, err = bodyBuf.WriteString(s)
+ } else if s, ok := body.(*string); ok {
+ _, err = bodyBuf.WriteString(*s)
+ } else if jsonCheck.MatchString(contentType) {
+ err = json.NewEncoder(bodyBuf).Encode(body)
+ } else if xmlCheck.MatchString(contentType) {
+ xml.NewEncoder(bodyBuf).Encode(body)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+
+ if bodyBuf.Len() == 0 {
+ err = fmt.Errorf("Invalid body type %s\n", contentType)
+ return nil, err
+ }
+ return bodyBuf, nil
+}
+
+// detectContentType method is used to figure out `Request.Body` content type for request header
+func detectContentType(body interface{}) string {
+ contentType := "text/plain; charset=utf-8"
+ kind := reflect.TypeOf(body).Kind()
+
+ switch kind {
+ case reflect.Struct, reflect.Map, reflect.Ptr:
+ contentType = "application/json; charset=utf-8"
+ case reflect.String:
+ contentType = "text/plain; charset=utf-8"
+ default:
+ if b, ok := body.([]byte); ok {
+ contentType = http.DetectContentType(b)
+ } else if kind == reflect.Slice {
+ contentType = "application/json; charset=utf-8"
+ }
+ }
+
+ return contentType
+}
+
+// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
+type cacheControl map[string]string
+
+func parseCacheControl(headers http.Header) cacheControl {
+ cc := cacheControl{}
+ ccHeader := headers.Get("Cache-Control")
+ for _, part := range strings.Split(ccHeader, ",") {
+ part = strings.Trim(part, " ")
+ if part == "" {
+ continue
+ }
+ if strings.ContainsRune(part, '=') {
+ keyval := strings.Split(part, "=")
+ cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
+ } else {
+ cc[part] = ""
+ }
+ }
+ return cc
+}
+
+// CacheExpires helper function to determine remaining time before repeating a request.
+func CacheExpires(r *http.Response) time.Time {
+ // Figure out when the cache expires.
+ var expires time.Time
+ now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
+ if err != nil {
+ return time.Now()
+ }
+ respCacheControl := parseCacheControl(r.Header)
+
+ if maxAge, ok := respCacheControl["max-age"]; ok {
+ lifetime, err := time.ParseDuration(maxAge + "s")
+ if err != nil {
+ expires = now
+ }
+ expires = now.Add(lifetime)
+ } else {
+ expiresHeader := r.Header.Get("Expires")
+ if expiresHeader != "" {
+ expires, err = time.Parse(time.RFC1123, expiresHeader)
+ if err != nil {
+ expires = now
+ }
+ }
+ }
+ return expires
+}
+
+func strlen(s string) int {
+ return utf8.RuneCountInString(s)
+}
+
+// GenericSwaggerError Provides access to the body, error and model on returned errors.
+type GenericSwaggerError struct {
+ body []byte
+ error string
+ model interface{}
+}
+
+// Error returns non-empty string if there was an error.
+func (e GenericSwaggerError) Error() string {
+ return e.error
+}
+
+// Body returns the raw bytes of the response
+func (e GenericSwaggerError) Body() []byte {
+ return e.body
+}
+
+// Model returns the unpacked model of the error
+func (e GenericSwaggerError) Model() interface{} {
+ return e.model
+}
diff --git a/api-client/oc-catalog/configuration.go b/api-client/oc-catalog/configuration.go
new file mode 100644
index 0000000..2379c54
--- /dev/null
+++ b/api-client/oc-catalog/configuration.go
@@ -0,0 +1,73 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "net/http"
+)
+
+// contextKeys are used to identify the type of value in the context.
+// Since these are string, it is possible to get a short description of the
+// context key for logging and debugging using key.String().
+
+type contextKey string
+
+func (c contextKey) String() string {
+ return "auth " + string(c)
+}
+
+var (
+ // ContextOAuth2 takes a oauth2.TokenSource as authentication for the request.
+ ContextOAuth2 = contextKey("token")
+
+ // ContextBasicAuth takes BasicAuth as authentication for the request.
+ ContextBasicAuth = contextKey("basic")
+
+ // ContextAccessToken takes a string oauth2 access token as authentication for the request.
+ ContextAccessToken = contextKey("accesstoken")
+
+ // ContextAPIKey takes an APIKey as authentication for the request
+ ContextAPIKey = contextKey("apikey")
+)
+
+// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
+type BasicAuth struct {
+ UserName string `json:"userName,omitempty"`
+ Password string `json:"password,omitempty"`
+}
+
+// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
+type APIKey struct {
+ Key string
+ Prefix string
+}
+
+type Configuration struct {
+ BasePath string `json:"basePath,omitempty"`
+ Host string `json:"host,omitempty"`
+ Scheme string `json:"scheme,omitempty"`
+ DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
+ UserAgent string `json:"userAgent,omitempty"`
+ HTTPClient *http.Client
+}
+
+func NewConfiguration() *Configuration {
+ cfg := &Configuration{
+ BasePath: "https://localhost/v1",
+ DefaultHeader: make(map[string]string),
+ UserAgent: "Swagger-Codegen/1.0.0/go",
+ }
+ return cfg
+}
+
+func (c *Configuration) AddDefaultHeader(key string, value string) {
+ c.DefaultHeader[key] = value
+}
diff --git a/api-client/oc-catalog/docs/ComputingApi.md b/api-client/oc-catalog/docs/ComputingApi.md
new file mode 100644
index 0000000..f5c7461
--- /dev/null
+++ b/api-client/oc-catalog/docs/ComputingApi.md
@@ -0,0 +1,95 @@
+# \ComputingApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**ComputingControllerAddComputing**](ComputingApi.md#ComputingControllerAddComputing) | **Post** /computing/ |
+[**ComputingControllerGetComputingByID**](ComputingApi.md#ComputingControllerGetComputingByID) | **Get** /computing/{ID} |
+[**ComputingControllerGetMultipleComputingByIDs**](ComputingApi.md#ComputingControllerGetMultipleComputingByIDs) | **Get** /computing/multi/{IDs} |
+
+
+# **ComputingControllerAddComputing**
+> ComputingControllerAddComputing(ctx, body)
+
+
+Submit a computing object
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **body** | [**ModelsComputingNewModel**](ModelsComputingNewModel.md)| The object content |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ComputingControllerGetComputingByID**
+> ModelsComputingModel ComputingControllerGetComputingByID(ctx, iD)
+
+
+Find a computing resource based on ID
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iD** | **string**| The ID of the resource |
+
+### Return type
+
+[**ModelsComputingModel**](models.ComputingModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ComputingControllerGetMultipleComputingByIDs**
+> []ModelsComputingModel ComputingControllerGetMultipleComputingByIDs(ctx, iDs)
+
+
+Return Computing objects if found in the DB. Not found IDs will be ignored
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iDs** | [**[]string**](string.md)| List of computing IDs |
+
+### Return type
+
+[**[]ModelsComputingModel**](models.ComputingModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/DataApi.md b/api-client/oc-catalog/docs/DataApi.md
new file mode 100644
index 0000000..c968907
--- /dev/null
+++ b/api-client/oc-catalog/docs/DataApi.md
@@ -0,0 +1,95 @@
+# \DataApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**DataControllerCreateData**](DataApi.md#DataControllerCreateData) | **Post** /data/ |
+[**DataControllerGetDataByID**](DataApi.md#DataControllerGetDataByID) | **Get** /data/{ID} |
+[**DataControllerGetMultipleDataByIDs**](DataApi.md#DataControllerGetMultipleDataByIDs) | **Get** /data/multi/{IDs} |
+
+
+# **DataControllerCreateData**
+> DataControllerCreateData(ctx, body)
+
+
+Submit data object
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **body** | [**ModelsDataNewModel**](ModelsDataNewModel.md)| The object content |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **DataControllerGetDataByID**
+> ModelsDataModel DataControllerGetDataByID(ctx, iD)
+
+
+Find rType data based on ID
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iD** | **string**| The ID of the data resource |
+
+### Return type
+
+[**ModelsDataModel**](models.DataModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **DataControllerGetMultipleDataByIDs**
+> []ModelsDataModel DataControllerGetMultipleDataByIDs(ctx, iDs)
+
+
+Return Data object if found in the DB. Not found IDs will be ignored
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iDs** | [**[]string**](string.md)| List of data IDs |
+
+### Return type
+
+[**[]ModelsDataModel**](models.DataModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/DatacenterApi.md b/api-client/oc-catalog/docs/DatacenterApi.md
new file mode 100644
index 0000000..9ad47e1
--- /dev/null
+++ b/api-client/oc-catalog/docs/DatacenterApi.md
@@ -0,0 +1,95 @@
+# \DatacenterApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**DatacenterControllerCreateDatacenter**](DatacenterApi.md#DatacenterControllerCreateDatacenter) | **Post** /datacenter/ |
+[**DatacenterControllerGetMultipleDatacentersByIDs**](DatacenterApi.md#DatacenterControllerGetMultipleDatacentersByIDs) | **Get** /datacenter/multi/{IDs} |
+[**DatacenterControllerGetOneDatacenter**](DatacenterApi.md#DatacenterControllerGetOneDatacenter) | **Get** /datacenter/{ID} |
+
+
+# **DatacenterControllerCreateDatacenter**
+> DatacenterControllerCreateDatacenter(ctx, body)
+
+
+submit Datacenter object
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **body** | [**ModelsDatacenterNewModel**](ModelsDatacenterNewModel.md)| The object content |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **DatacenterControllerGetMultipleDatacentersByIDs**
+> []ModelsComputingModel DatacenterControllerGetMultipleDatacentersByIDs(ctx, iDs)
+
+
+Return Datacenter objects if found in the DB. Not found IDs will be ignored
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iDs** | [**[]string**](string.md)| List of datacenter IDs |
+
+### Return type
+
+[**[]ModelsComputingModel**](models.ComputingModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **DatacenterControllerGetOneDatacenter**
+> ModelsDatacenterModel DatacenterControllerGetOneDatacenter(ctx, iD)
+
+
+find datacenter by ID
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iD** | **string**| the ID you want to get |
+
+### Return type
+
+[**ModelsDatacenterModel**](models.DatacenterModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/ModelsComputingModel.md b/api-client/oc-catalog/docs/ModelsComputingModel.md
new file mode 100644
index 0000000..10a7186
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsComputingModel.md
@@ -0,0 +1,22 @@
+# ModelsComputingModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Dinputs** | **[]string** | | [optional] [default to null]
+**Doutputs** | **[]string** | | [optional] [default to null]
+**ID** | **string** | | [default to null]
+**Description** | **string** | | [optional] [default to null]
+**ExecutionRequirements** | [***ModelsExecutionRequirementsModel**](models.ExecutionRequirementsModel.md) | | [optional] [default to null]
+**License** | **string** | | [optional] [default to null]
+**Logo** | **string** | | [optional] [default to null]
+**Name** | **string** | Name of the computing | [optional] [default to null]
+**Owner** | **string** | | [optional] [default to null]
+**Price** | **int32** | | [optional] [default to null]
+**Repository** | [***ModelsRepositoryModel**](models.RepositoryModel.md) | | [optional] [default to null]
+**ShortDescription** | **string** | | [optional] [default to null]
+**Type_** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsComputingNewModel.md b/api-client/oc-catalog/docs/ModelsComputingNewModel.md
new file mode 100644
index 0000000..e4ccc13
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsComputingNewModel.md
@@ -0,0 +1,21 @@
+# ModelsComputingNewModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Dinputs** | **[]string** | | [optional] [default to null]
+**Doutputs** | **[]string** | | [optional] [default to null]
+**Description** | **string** | | [default to null]
+**ExecutionRequirements** | [***ModelsExecutionRequirementsModel**](models.ExecutionRequirementsModel.md) | | [optional] [default to null]
+**License** | **string** | | [optional] [default to null]
+**Logo** | **string** | | [default to null]
+**Name** | **string** | Name of the computing | [default to null]
+**Owner** | **string** | | [optional] [default to null]
+**Price** | **int32** | | [optional] [default to null]
+**Repository** | [***ModelsRepositoryModel**](models.RepositoryModel.md) | | [optional] [default to null]
+**ShortDescription** | **string** | | [default to null]
+**Type_** | **string** | | [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsComputingObject.md b/api-client/oc-catalog/docs/ModelsComputingObject.md
new file mode 100644
index 0000000..6b90469
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsComputingObject.md
@@ -0,0 +1,13 @@
+# ModelsComputingObject
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**DatacenterID** | **string** | Datacenter where the computing will be executed | [optional] [default to null]
+**Inputs** | **[]string** | | [optional] [default to null]
+**Outputs** | **[]string** | | [optional] [default to null]
+**ReferenceID** | [***PrimitiveObjectId**](primitive.ObjectID.md) | Computing model ID | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDCstatus.md b/api-client/oc-catalog/docs/ModelsDCstatus.md
new file mode 100644
index 0000000..fffee88
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDCstatus.md
@@ -0,0 +1,15 @@
+# ModelsDCstatus
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Booked** | [***ModelsScheduleInfo**](models.ScheduleInfo.md) | | [optional] [default to null]
+**DCname** | **string** | | [optional] [default to null]
+**DCobjID** | **string** | | [optional] [default to null]
+**ErrorMessage** | **string** | | [optional] [default to null]
+**IsAvailable** | **bool** | | [optional] [default to null]
+**IsReachable** | **bool** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDataModel.md b/api-client/oc-catalog/docs/ModelsDataModel.md
new file mode 100644
index 0000000..af5a174
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDataModel.md
@@ -0,0 +1,19 @@
+# ModelsDataModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ID** | **string** | | [default to null]
+**Description** | **string** | | [optional] [default to null]
+**Dtype** | **string** | | [optional] [default to null]
+**Example** | **string** | base64 encoded data | [optional] [default to null]
+**Location** | **string** | | [optional] [default to null]
+**Logo** | **string** | | [optional] [default to null]
+**Name** | **string** | Name of the data | [optional] [default to null]
+**Protocol** | **[]string** | | [optional] [default to null]
+**ShortDescription** | **string** | | [optional] [default to null]
+**Type_** | **string** | Define type of data | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDataNewModel.md b/api-client/oc-catalog/docs/ModelsDataNewModel.md
new file mode 100644
index 0000000..4ac2ff6
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDataNewModel.md
@@ -0,0 +1,18 @@
+# ModelsDataNewModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Description** | **string** | | [default to null]
+**Dtype** | **string** | | [optional] [default to null]
+**Example** | **string** | base64 encoded data | [default to null]
+**Location** | **string** | | [default to null]
+**Logo** | **string** | | [default to null]
+**Name** | **string** | Name of the data | [default to null]
+**Protocol** | **[]string** | | [optional] [default to null]
+**ShortDescription** | **string** | | [default to null]
+**Type_** | **string** | Define type of data | [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDataObject.md b/api-client/oc-catalog/docs/ModelsDataObject.md
new file mode 100644
index 0000000..895e7c9
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDataObject.md
@@ -0,0 +1,10 @@
+# ModelsDataObject
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ReferenceID** | [***PrimitiveObjectId**](primitive.ObjectID.md) | Data model ID | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterCpuModel.md b/api-client/oc-catalog/docs/ModelsDatacenterCpuModel.md
new file mode 100644
index 0000000..94b967c
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterCpuModel.md
@@ -0,0 +1,14 @@
+# ModelsDatacenterCpuModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Architecture** | **string** | | [optional] [default to null]
+**Cores** | **int32** | | [default to null]
+**MinimumMemory** | **int32** | | [optional] [default to null]
+**Platform** | **string** | | [optional] [default to null]
+**Shared** | **bool** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterGpuModel.md b/api-client/oc-catalog/docs/ModelsDatacenterGpuModel.md
new file mode 100644
index 0000000..e21255e
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterGpuModel.md
@@ -0,0 +1,13 @@
+# ModelsDatacenterGpuModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**CudaCores** | **int32** | | [optional] [default to null]
+**Memory** | **int32** | Units in MB | [optional] [default to null]
+**Model** | **string** | | [optional] [default to null]
+**TensorCores** | **int32** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterMemoryModel.md b/api-client/oc-catalog/docs/ModelsDatacenterMemoryModel.md
new file mode 100644
index 0000000..8332114
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterMemoryModel.md
@@ -0,0 +1,11 @@
+# ModelsDatacenterMemoryModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Ecc** | **bool** | | [optional] [default to null]
+**Size** | **int32** | Units in MB | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterModel.md b/api-client/oc-catalog/docs/ModelsDatacenterModel.md
new file mode 100644
index 0000000..0e7e65b
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterModel.md
@@ -0,0 +1,22 @@
+# ModelsDatacenterModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ID** | **string** | | [default to null]
+**Acronym** | **string** | id of the DC | [optional] [default to null]
+**BookingPrice** | **int64** | | [optional] [default to null]
+**Cpu** | [***ModelsDatacenterCpuModel**](models.DatacenterCpuModel.md) | | [optional] [default to null]
+**Description** | **string** | | [optional] [default to null]
+**Gpu** | [**[]ModelsDatacenterGpuModel**](models.DatacenterGpuModel.md) | | [optional] [default to null]
+**Hosts** | **[]string** | list of host:port | [optional] [default to null]
+**Logo** | **string** | | [optional] [default to null]
+**Name** | **string** | | [optional] [default to null]
+**Owner** | **string** | | [optional] [default to null]
+**Ram** | [***ModelsDatacenterMemoryModel**](models.DatacenterMemoryModel.md) | | [optional] [default to null]
+**ShortDescription** | **string** | | [optional] [default to null]
+**Type_** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterNewModel.md b/api-client/oc-catalog/docs/ModelsDatacenterNewModel.md
new file mode 100644
index 0000000..1ff92f9
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterNewModel.md
@@ -0,0 +1,21 @@
+# ModelsDatacenterNewModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Acronym** | **string** | id of the DC | [default to null]
+**BookingPrice** | **int64** | | [optional] [default to null]
+**Cpu** | [***ModelsDatacenterCpuModel**](models.DatacenterCpuModel.md) | | [default to null]
+**Description** | **string** | | [default to null]
+**Gpu** | [**[]ModelsDatacenterGpuModel**](models.DatacenterGpuModel.md) | | [default to null]
+**Hosts** | **[]string** | list of host:port | [default to null]
+**Logo** | **string** | | [default to null]
+**Name** | **string** | | [default to null]
+**Owner** | **string** | | [optional] [default to null]
+**Ram** | [***ModelsDatacenterMemoryModel**](models.DatacenterMemoryModel.md) | | [default to null]
+**ShortDescription** | **string** | | [default to null]
+**Type_** | **string** | | [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsDatacenterObject.md b/api-client/oc-catalog/docs/ModelsDatacenterObject.md
new file mode 100644
index 0000000..ca25aaa
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsDatacenterObject.md
@@ -0,0 +1,10 @@
+# ModelsDatacenterObject
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ReferenceID** | [***PrimitiveObjectId**](primitive.ObjectID.md) | Data model ID | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsExecutionRequirementsModel.md b/api-client/oc-catalog/docs/ModelsExecutionRequirementsModel.md
new file mode 100644
index 0000000..c2e2851
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsExecutionRequirementsModel.md
@@ -0,0 +1,15 @@
+# ModelsExecutionRequirementsModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Cpus** | **int32** | | [default to null]
+**DiskIo** | **string** | | [optional] [default to null]
+**Gpus** | **int32** | Amount of GPUs needed | [optional] [default to null]
+**Parallel** | **bool** | | [optional] [default to null]
+**Ram** | **int32** | Units in MB | [default to null]
+**ScalingModel** | **int32** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsRepositoryModel.md b/api-client/oc-catalog/docs/ModelsRepositoryModel.md
new file mode 100644
index 0000000..046f8f1
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsRepositoryModel.md
@@ -0,0 +1,11 @@
+# ModelsRepositoryModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Credentials** | **string** | | [optional] [default to null]
+**Url** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsScheduleDb.md b/api-client/oc-catalog/docs/ModelsScheduleDb.md
new file mode 100644
index 0000000..1a3cd78
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsScheduleDb.md
@@ -0,0 +1,13 @@
+# ModelsScheduleDb
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ResourceQty** | [***ModelsExecutionRequirementsModel**](models.ExecutionRequirementsModel.md) | | [optional] [default to null]
+**StartDate** | **string** | | [optional] [default to null]
+**StopDate** | **string** | | [optional] [default to null]
+**Workflow** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsScheduleInfo.md b/api-client/oc-catalog/docs/ModelsScheduleInfo.md
new file mode 100644
index 0000000..7df98b1
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsScheduleInfo.md
@@ -0,0 +1,11 @@
+# ModelsScheduleInfo
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**NextExecutions** | **[]string** | | [optional] [default to null]
+**Total** | **int64** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsScheduleTime.md b/api-client/oc-catalog/docs/ModelsScheduleTime.md
new file mode 100644
index 0000000..f6d5731
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsScheduleTime.md
@@ -0,0 +1,9 @@
+# ModelsScheduleTime
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsSearchResult.md b/api-client/oc-catalog/docs/ModelsSearchResult.md
new file mode 100644
index 0000000..e064143
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsSearchResult.md
@@ -0,0 +1,13 @@
+# ModelsSearchResult
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Computing** | [**[]ModelsComputingModel**](models.ComputingModel.md) | | [default to null]
+**Data** | [**[]ModelsDataModel**](models.DataModel.md) | | [optional] [default to null]
+**Datacenter** | [**[]ModelsDatacenterModel**](models.DatacenterModel.md) | | [optional] [default to null]
+**Storage** | [**[]ModelsStorageModel**](models.StorageModel.md) | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsStorageModel.md b/api-client/oc-catalog/docs/ModelsStorageModel.md
new file mode 100644
index 0000000..67da13e
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsStorageModel.md
@@ -0,0 +1,21 @@
+# ModelsStorageModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**DCacronym** | **string** | Unique ID of the DC where it is the storage | [optional] [default to null]
+**ID** | **string** | | [default to null]
+**BookingPrice** | **int32** | | [optional] [default to null]
+**Description** | **string** | | [optional] [default to null]
+**Encryption** | **bool** | | [optional] [default to null]
+**Logo** | **string** | | [optional] [default to null]
+**Name** | **string** | | [optional] [default to null]
+**Redundancy** | **string** | | [optional] [default to null]
+**ShortDescription** | **string** | | [optional] [default to null]
+**Size** | **int32** | | [optional] [default to null]
+**Throughput** | **string** | | [optional] [default to null]
+**Type_** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsStorageNewModel.md b/api-client/oc-catalog/docs/ModelsStorageNewModel.md
new file mode 100644
index 0000000..ee1d552
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsStorageNewModel.md
@@ -0,0 +1,20 @@
+# ModelsStorageNewModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**DCacronym** | **string** | Unique ID of the DC where it is the storage | [default to null]
+**BookingPrice** | **int32** | | [optional] [default to null]
+**Description** | **string** | | [default to null]
+**Encryption** | **bool** | | [optional] [default to null]
+**Logo** | **string** | | [default to null]
+**Name** | **string** | | [default to null]
+**Redundancy** | **string** | | [optional] [default to null]
+**ShortDescription** | **string** | | [default to null]
+**Size** | **int32** | | [default to null]
+**Throughput** | **string** | | [optional] [default to null]
+**Type_** | **string** | | [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsStorageObject.md b/api-client/oc-catalog/docs/ModelsStorageObject.md
new file mode 100644
index 0000000..244eab5
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsStorageObject.md
@@ -0,0 +1,12 @@
+# ModelsStorageObject
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Inputs** | **[]string** | | [optional] [default to null]
+**Outputs** | **[]string** | | [optional] [default to null]
+**ReferenceID** | [***PrimitiveObjectId**](primitive.ObjectID.md) | Storage model ID | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsWorkflow.md b/api-client/oc-catalog/docs/ModelsWorkflow.md
new file mode 100644
index 0000000..f023ba2
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsWorkflow.md
@@ -0,0 +1,15 @@
+# ModelsWorkflow
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**MxgraphXML** | **string** | State of the mxgraph | [optional] [default to null]
+**Computing** | [***ModelsComputingObject**](models.ComputingObject.md) | | [optional] [default to null]
+**Data** | [***ModelsDataObject**](models.DataObject.md) | | [optional] [default to null]
+**Datacenter** | [***ModelsDatacenterObject**](models.DatacenterObject.md) | | [optional] [default to null]
+**Schedules** | [***ModelsWorkflowSchedule**](models.WorkflowSchedule.md) | | [optional] [default to null]
+**Storage** | [***ModelsStorageObject**](models.StorageObject.md) | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsWorkflowSchedule.md b/api-client/oc-catalog/docs/ModelsWorkflowSchedule.md
new file mode 100644
index 0000000..516c913
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsWorkflowSchedule.md
@@ -0,0 +1,16 @@
+# ModelsWorkflowSchedule
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**IsService** | **bool** | Service: true, Task: false | [optional] [default to null]
+**StartDate** | **string** | | [optional] [default to null]
+**StopDate** | **string** | | [optional] [default to null]
+**Cron** | **string** | | [optional] [default to null]
+**Duration** | **int32** | Durantion in seconds | [optional] [default to null]
+**Events** | **string** | | [optional] [default to null]
+**IsBooked** | **bool** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsWorkspace.md b/api-client/oc-catalog/docs/ModelsWorkspace.md
new file mode 100644
index 0000000..d7f36b9
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsWorkspace.md
@@ -0,0 +1,15 @@
+# ModelsWorkspace
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Workflows** | [***ModelsWorkflow**](models.Workflow.md) | | [optional] [default to null]
+**Computing** | **[]string** | | [optional] [default to null]
+**Data** | **[]string** | | [optional] [default to null]
+**Datacenter** | **[]string** | | [optional] [default to null]
+**Storage** | **[]string** | | [optional] [default to null]
+**UserId** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ModelsWorkspaceModel.md b/api-client/oc-catalog/docs/ModelsWorkspaceModel.md
new file mode 100644
index 0000000..bf646a1
--- /dev/null
+++ b/api-client/oc-catalog/docs/ModelsWorkspaceModel.md
@@ -0,0 +1,14 @@
+# ModelsWorkspaceModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Computing** | [**[]ModelsComputingModel**](models.ComputingModel.md) | | [optional] [default to null]
+**Data** | [**[]ModelsDataModel**](models.DataModel.md) | | [optional] [default to null]
+**Datacenter** | [**[]ModelsDatacenterModel**](models.DatacenterModel.md) | | [optional] [default to null]
+**Storage** | [**[]ModelsStorageModel**](models.StorageModel.md) | | [optional] [default to null]
+**UserId** | **string** | | [optional] [default to null]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/PrimitiveObjectId.md b/api-client/oc-catalog/docs/PrimitiveObjectId.md
new file mode 100644
index 0000000..011ef59
--- /dev/null
+++ b/api-client/oc-catalog/docs/PrimitiveObjectId.md
@@ -0,0 +1,9 @@
+# PrimitiveObjectId
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/ScheduleApi.md b/api-client/oc-catalog/docs/ScheduleApi.md
new file mode 100644
index 0000000..b3d7dcd
--- /dev/null
+++ b/api-client/oc-catalog/docs/ScheduleApi.md
@@ -0,0 +1,164 @@
+# \ScheduleApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC**](ScheduleApi.md#ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC) | **Post** /schedule/check |
+[**ScheduleControllerCreateSchedule**](ScheduleApi.md#ScheduleControllerCreateSchedule) | **Post** /schedule/book |
+[**ScheduleControllerGetNextSchedule**](ScheduleApi.md#ScheduleControllerGetNextSchedule) | **Get** /schedule/next |
+[**ScheduleControllerGetPreviousSchedule**](ScheduleApi.md#ScheduleControllerGetPreviousSchedule) | **Get** /schedule/previous |
+[**ScheduleControllerGetSchedules**](ScheduleApi.md#ScheduleControllerGetSchedules) | **Get** /schedule/ |
+
+
+# **ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC**
+> ScheduleControllerCheckIfScheduleCanBeCreatedInThisDC(ctx, cron, duration, startDate, stopDate, requirements)
+
+
+Check for availability of this DC
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **cron** | **string**| Cron syntax |
+ **duration** | **int32**| Duration in seconds |
+ **startDate** | [**interface{}**](.md)| RFC3339 time for startDate |
+ **stopDate** | [**interface{}**](.md)| RFC3339 time for stopDate |
+ **requirements** | [**ModelsExecutionRequirementsModel**](ModelsExecutionRequirementsModel.md)| The object content |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ScheduleControllerCreateSchedule**
+> ModelsScheduleInfo ScheduleControllerCreateSchedule(ctx, dcName, workflowName, cron, duration, startDate, stopDate, requirements)
+
+
+Create schedule for a workflow. It will return some future executions just as information
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **dcName** | **string**| Name of the node (oc-catalog) from where the workflow comes. |
+ **workflowName** | **string**| Workflow Name |
+ **cron** | **string**| Cron syntax with year. If no year is specified, will use the current |
+ **duration** | **int32**| Duration in seconds |
+ **startDate** | [**interface{}**](.md)| RFC3339 time for startDate |
+ **stopDate** | [**interface{}**](.md)| RFC3339 time for stopDate |
+ **requirements** | [**ModelsExecutionRequirementsModel**](ModelsExecutionRequirementsModel.md)| The object content |
+
+### Return type
+
+[**ModelsScheduleInfo**](models.ScheduleInfo.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ScheduleControllerGetNextSchedule**
+> TimeTime ScheduleControllerGetNextSchedule(ctx, baseDate)
+
+
+Give a date, get the next date where there are at least on schedule. If no hours specified, will assume 00:00
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **baseDate** | [**interface{}**](.md)| Base date |
+
+### Return type
+
+[**TimeTime**](*time.Time.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ScheduleControllerGetPreviousSchedule**
+> TimeTime ScheduleControllerGetPreviousSchedule(ctx, baseDate)
+
+
+Give a date, get the previous date where there are at least on schedule. If no hours specified, will assume 00:00
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **baseDate** | [**interface{}**](.md)| Base date |
+
+### Return type
+
+[**TimeTime**](*time.Time.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ScheduleControllerGetSchedules**
+> []ModelsScheduleDb ScheduleControllerGetSchedules(ctx, startDate, stopDate)
+
+
+Get a list of next startDates schedules (inclusive). If timezone is not specified, will assume UTC
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **startDate** | [**interface{}**](.md)| Start date |
+ **stopDate** | [**interface{}**](.md)| End date |
+
+### Return type
+
+[**[]ModelsScheduleDb**](models.ScheduleDB.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/SearchApi.md b/api-client/oc-catalog/docs/SearchApi.md
new file mode 100644
index 0000000..a030b31
--- /dev/null
+++ b/api-client/oc-catalog/docs/SearchApi.md
@@ -0,0 +1,37 @@
+# \SearchApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**SearchControllerSearchByWord**](SearchApi.md#SearchControllerSearchByWord) | **Get** /search/byWord |
+
+
+# **SearchControllerSearchByWord**
+> ModelsSearchResult SearchControllerSearchByWord(ctx, word)
+
+
+find resources by word
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **word** | **string**| Word to search across all resources |
+
+### Return type
+
+[**ModelsSearchResult**](models.SearchResult.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/StorageApi.md b/api-client/oc-catalog/docs/StorageApi.md
new file mode 100644
index 0000000..ee30178
--- /dev/null
+++ b/api-client/oc-catalog/docs/StorageApi.md
@@ -0,0 +1,95 @@
+# \StorageApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**StorageControllerCreateStorage**](StorageApi.md#StorageControllerCreateStorage) | **Post** /storage/ |
+[**StorageControllerGet**](StorageApi.md#StorageControllerGet) | **Get** /storage/{ID} |
+[**StorageControllerGetMultipleStoragesByIDs**](StorageApi.md#StorageControllerGetMultipleStoragesByIDs) | **Get** /storage/multi/{IDs} |
+
+
+# **StorageControllerCreateStorage**
+> StorageControllerCreateStorage(ctx, body)
+
+
+submit storage object
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **body** | [**ModelsStorageNewModel**](ModelsStorageNewModel.md)| The object content |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **StorageControllerGet**
+> ModelsStorageModel StorageControllerGet(ctx, iD)
+
+
+find storage by ID
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iD** | **string**| the ID you want to get |
+
+### Return type
+
+[**ModelsStorageModel**](models.StorageModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **StorageControllerGetMultipleStoragesByIDs**
+> []ModelsComputingModel StorageControllerGetMultipleStoragesByIDs(ctx, iDs)
+
+
+Return Storage objects if found in the DB. Not found IDs will be ignored
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **iDs** | [**[]string**](string.md)| List of storage IDs |
+
+### Return type
+
+[**[]ModelsComputingModel**](models.ComputingModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/TimeTime.md b/api-client/oc-catalog/docs/TimeTime.md
new file mode 100644
index 0000000..f1b1d48
--- /dev/null
+++ b/api-client/oc-catalog/docs/TimeTime.md
@@ -0,0 +1,9 @@
+# TimeTime
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/api-client/oc-catalog/docs/UserApi.md b/api-client/oc-catalog/docs/UserApi.md
new file mode 100644
index 0000000..8c03310
--- /dev/null
+++ b/api-client/oc-catalog/docs/UserApi.md
@@ -0,0 +1,63 @@
+# \UserApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**UserControllerLogin**](UserApi.md#UserControllerLogin) | **Get** /user/login |
+[**UserControllerLogout**](UserApi.md#UserControllerLogout) | **Get** /user/logout |
+
+
+# **UserControllerLogin**
+> UserControllerLogin(ctx, username, password)
+
+
+Logs user into the system
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **username** | **string**| The username for login |
+ **password** | **string**| The password for login |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **UserControllerLogout**
+> UserControllerLogout(ctx, )
+
+
+Logs out current logged in user session
+
+### Required Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/WorkflowApi.md b/api-client/oc-catalog/docs/WorkflowApi.md
new file mode 100644
index 0000000..ad2177e
--- /dev/null
+++ b/api-client/oc-catalog/docs/WorkflowApi.md
@@ -0,0 +1,345 @@
+# \WorkflowApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**WorkflowControllerAddNewObjectToAWorkflow**](WorkflowApi.md#WorkflowControllerAddNewObjectToAWorkflow) | **Post** /workflow/{workflowName}/add |
+[**WorkflowControllerBookSchedule**](WorkflowApi.md#WorkflowControllerBookSchedule) | **Post** /workflow/{workflowName}/schedule/book |
+[**WorkflowControllerCheckSchedule**](WorkflowApi.md#WorkflowControllerCheckSchedule) | **Get** /workflow/{workflowName}/schedule/check |
+[**WorkflowControllerCreateANewWorkflow**](WorkflowApi.md#WorkflowControllerCreateANewWorkflow) | **Post** /workflow/ |
+[**WorkflowControllerCreateARealtionshipBetweenTwoRobjects**](WorkflowApi.md#WorkflowControllerCreateARealtionshipBetweenTwoRobjects) | **Post** /workflow/{workflowName}/link |
+[**WorkflowControllerGetMxGraphLastStatus**](WorkflowApi.md#WorkflowControllerGetMxGraphLastStatus) | **Get** /workflow/{workflowName}/mxGraphParser |
+[**WorkflowControllerGetSchedule**](WorkflowApi.md#WorkflowControllerGetSchedule) | **Get** /workflow/{workflowName}/schedule |
+[**WorkflowControllerGetWorkflow**](WorkflowApi.md#WorkflowControllerGetWorkflow) | **Get** /workflow/{workflowName} |
+[**WorkflowControllerListWorkflows**](WorkflowApi.md#WorkflowControllerListWorkflows) | **Get** /workflow/ |
+[**WorkflowControllerParseMxGraph**](WorkflowApi.md#WorkflowControllerParseMxGraph) | **Post** /workflow/{workflowName}/mxGraphParser |
+[**WorkflowControllerSetSchedule**](WorkflowApi.md#WorkflowControllerSetSchedule) | **Put** /workflow/{workflowName}/schedule |
+
+
+# **WorkflowControllerAddNewObjectToAWorkflow**
+> WorkflowControllerAddNewObjectToAWorkflow(ctx, workflowName, rID)
+
+
+Create a Rtype object from already added resources to the workspace
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| workflow Name |
+ **rID** | **string**| rID of already existing item in Workspace |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerBookSchedule**
+> []ModelsDCstatus WorkflowControllerBookSchedule(ctx, workflowName)
+
+
+Book a schedule in all DCs of the workflow. Must set a desired schedule first!
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+
+### Return type
+
+[**[]ModelsDCstatus**](models.DCstatus.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerCheckSchedule**
+> []ModelsDCstatus WorkflowControllerCheckSchedule(ctx, workflowName)
+
+
+Check if we can schedule the project in other DCs. Must set a desired schedule first!
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+
+### Return type
+
+[**[]ModelsDCstatus**](models.DCstatus.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerCreateANewWorkflow**
+> WorkflowControllerCreateANewWorkflow(ctx, workflowName)
+
+
+Create a name for the new workflow
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Name of the workflow |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerCreateARealtionshipBetweenTwoRobjects**
+> WorkflowControllerCreateARealtionshipBetweenTwoRobjects(ctx, workflowName, rObjIDsource, isInput, rObjIDtarger)
+
+
+Create a Rtype object from already added resources to the workspace
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+ **rObjIDsource** | **string**| Robject source. Usually Data |
+ **isInput** | **bool**| If the operation is for input (true) linkage or output (false) |
+ **rObjIDtarger** | **string**| Robject where will be written the association |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerGetMxGraphLastStatus**
+> WorkflowControllerGetMxGraphLastStatus(ctx, workflowName)
+
+
+Obtain the last mxgraph XML status from the workflow
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerGetSchedule**
+> ModelsScheduleTime WorkflowControllerGetSchedule(ctx, workflowName)
+
+
+Obtain the desired schedule of this workflow
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+
+### Return type
+
+[**ModelsScheduleTime**](models.ScheduleTime.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerGetWorkflow**
+> ModelsWorkflow WorkflowControllerGetWorkflow(ctx, workflowName)
+
+
+Get a workflow by name
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+
+### Return type
+
+[**ModelsWorkflow**](models.Workflow.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerListWorkflows**
+> WorkflowControllerListWorkflows(ctx, )
+
+
+List available workflows
+
+### Required Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerParseMxGraph**
+> WorkflowControllerParseMxGraph(ctx, workflowName, xmlData)
+
+
+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.
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+ **xmlData** | **string**| Xml representation of the workflow |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkflowControllerSetSchedule**
+> ModelsScheduleInfo WorkflowControllerSetSchedule(ctx, workflowName, isService, startDate, stopDate, optional)
+
+
+Set desired schedule by the user. No other effects a part of saving the user input
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **workflowName** | **string**| Workflow Name |
+ **isService** | **bool**| True: Service, False: Task |
+ **startDate** | [**interface{}**](.md)| RFC3339 time for startDate |
+ **stopDate** | [**interface{}**](.md)| RFC3339 time for stopDate |
+ **optional** | ***WorkflowApiWorkflowControllerSetScheduleOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+Optional parameters are passed through a pointer to a WorkflowApiWorkflowControllerSetScheduleOpts struct
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+
+ **events** | **optional.String**| List of events separated by comma |
+ **cronString** | **optional.String**| Cron string |
+ **duration** | **optional.Int32**| Duration in seconds |
+
+### Return type
+
+[**ModelsScheduleInfo**](models.ScheduleInfo.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/docs/WorkspaceApi.md b/api-client/oc-catalog/docs/WorkspaceApi.md
new file mode 100644
index 0000000..0bc2049
--- /dev/null
+++ b/api-client/oc-catalog/docs/WorkspaceApi.md
@@ -0,0 +1,118 @@
+# \WorkspaceApi
+
+All URIs are relative to *https://localhost/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**WorkspaceControllerAddModelToWorkspace**](WorkspaceApi.md#WorkspaceControllerAddModelToWorkspace) | **Post** /workspace/ |
+[**WorkspaceControllerDeleteElementFromUserWorkspace**](WorkspaceApi.md#WorkspaceControllerDeleteElementFromUserWorkspace) | **Delete** /workspace/ |
+[**WorkspaceControllerGetFullWorkspace**](WorkspaceApi.md#WorkspaceControllerGetFullWorkspace) | **Get** /workspace/list_model |
+[**WorkspaceControllerGetWorkspace**](WorkspaceApi.md#WorkspaceControllerGetWorkspace) | **Get** /workspace/list |
+
+
+# **WorkspaceControllerAddModelToWorkspace**
+> WorkspaceControllerAddModelToWorkspace(ctx, id, rtype)
+
+
+Insert a resource in the workspace
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **id** | **string**| ID of a resource |
+ **rtype** | **string**| Type of resource |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkspaceControllerDeleteElementFromUserWorkspace**
+> WorkspaceControllerDeleteElementFromUserWorkspace(ctx, id, rtype)
+
+
+Remove a resource from the workspace
+
+### Required Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **id** | **string**| ID of a resource |
+ **rtype** | **string**| Type of resource |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkspaceControllerGetFullWorkspace**
+> ModelsWorkspaceModel WorkspaceControllerGetFullWorkspace(ctx, )
+
+
+Get full workspace elements based on user_id token
+
+### Required Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ModelsWorkspaceModel**](models.WorkspaceModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **WorkspaceControllerGetWorkspace**
+> ModelsWorkspace WorkspaceControllerGetWorkspace(ctx, )
+
+
+Get workspace elements based on user_id token
+
+### Required Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ModelsWorkspace**](models.Workspace.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/api-client/oc-catalog/git_push.sh b/api-client/oc-catalog/git_push.sh
new file mode 100644
index 0000000..ae01b18
--- /dev/null
+++ b/api-client/oc-catalog/git_push.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
+#
+# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="GIT_USER_ID"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="GIT_REPO_ID"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="Minor update"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/api-client/oc-catalog/model_models_computing_model.go b/api-client/oc-catalog/model_models_computing_model.go
new file mode 100644
index 0000000..749c2ab
--- /dev/null
+++ b/api-client/oc-catalog/model_models_computing_model.go
@@ -0,0 +1,28 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsComputingModel struct {
+ Dinputs []string `json:"Dinputs,omitempty"`
+ Doutputs []string `json:"Doutputs,omitempty"`
+ ID string `json:"ID"`
+ Description string `json:"description,omitempty"`
+ ExecutionRequirements *ModelsExecutionRequirementsModel `json:"execution_requirements,omitempty"`
+ License string `json:"license,omitempty"`
+ Logo string `json:"logo,omitempty"`
+ // Name of the computing
+ Name string `json:"name,omitempty"`
+ Owner string `json:"owner,omitempty"`
+ Price int32 `json:"price,omitempty"`
+ Repository *ModelsRepositoryModel `json:"repository,omitempty"`
+ ShortDescription string `json:"short_description,omitempty"`
+ Type_ string `json:"type,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_computing_new_model.go b/api-client/oc-catalog/model_models_computing_new_model.go
new file mode 100644
index 0000000..06f41f2
--- /dev/null
+++ b/api-client/oc-catalog/model_models_computing_new_model.go
@@ -0,0 +1,27 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsComputingNewModel struct {
+ Dinputs []string `json:"Dinputs,omitempty"`
+ Doutputs []string `json:"Doutputs,omitempty"`
+ Description string `json:"description"`
+ ExecutionRequirements *ModelsExecutionRequirementsModel `json:"execution_requirements,omitempty"`
+ License string `json:"license,omitempty"`
+ Logo string `json:"logo"`
+ // Name of the computing
+ Name string `json:"name"`
+ Owner string `json:"owner,omitempty"`
+ Price int32 `json:"price,omitempty"`
+ Repository *ModelsRepositoryModel `json:"repository,omitempty"`
+ ShortDescription string `json:"short_description"`
+ Type_ string `json:"type"`
+}
diff --git a/api-client/oc-catalog/model_models_computing_object.go b/api-client/oc-catalog/model_models_computing_object.go
new file mode 100644
index 0000000..ba7415c
--- /dev/null
+++ b/api-client/oc-catalog/model_models_computing_object.go
@@ -0,0 +1,20 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsComputingObject struct {
+ // Datacenter where the computing will be executed
+ DatacenterID string `json:"datacenterID,omitempty"`
+ Inputs []string `json:"inputs,omitempty"`
+ Outputs []string `json:"outputs,omitempty"`
+ // Computing model ID
+ ReferenceID *PrimitiveObjectId `json:"referenceID,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_d_cstatus.go b/api-client/oc-catalog/model_models_d_cstatus.go
new file mode 100644
index 0000000..6d06e2a
--- /dev/null
+++ b/api-client/oc-catalog/model_models_d_cstatus.go
@@ -0,0 +1,20 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDCstatus struct {
+ Booked *ModelsScheduleInfo `json:"Booked,omitempty"`
+ DCname string `json:"DCname,omitempty"`
+ DCobjID string `json:"DCobjID,omitempty"`
+ ErrorMessage string `json:"ErrorMessage,omitempty"`
+ IsAvailable bool `json:"IsAvailable,omitempty"`
+ IsReachable bool `json:"IsReachable,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_data_model.go b/api-client/oc-catalog/model_models_data_model.go
new file mode 100644
index 0000000..d5c0866
--- /dev/null
+++ b/api-client/oc-catalog/model_models_data_model.go
@@ -0,0 +1,27 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDataModel struct {
+ ID string `json:"ID"`
+ Description string `json:"description,omitempty"`
+ Dtype string `json:"dtype,omitempty"`
+ // base64 encoded data
+ Example string `json:"example,omitempty"`
+ Location string `json:"location,omitempty"`
+ Logo string `json:"logo,omitempty"`
+ // Name of the data
+ Name string `json:"name,omitempty"`
+ Protocol []string `json:"protocol,omitempty"`
+ ShortDescription string `json:"short_description,omitempty"`
+ // Define type of data
+ Type_ string `json:"type,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_data_new_model.go b/api-client/oc-catalog/model_models_data_new_model.go
new file mode 100644
index 0000000..bd9922a
--- /dev/null
+++ b/api-client/oc-catalog/model_models_data_new_model.go
@@ -0,0 +1,26 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDataNewModel struct {
+ Description string `json:"description"`
+ Dtype string `json:"dtype,omitempty"`
+ // base64 encoded data
+ Example string `json:"example"`
+ Location string `json:"location"`
+ Logo string `json:"logo"`
+ // Name of the data
+ Name string `json:"name"`
+ Protocol []string `json:"protocol,omitempty"`
+ ShortDescription string `json:"short_description"`
+ // Define type of data
+ Type_ string `json:"type"`
+}
diff --git a/api-client/oc-catalog/model_models_data_object.go b/api-client/oc-catalog/model_models_data_object.go
new file mode 100644
index 0000000..8c15b71
--- /dev/null
+++ b/api-client/oc-catalog/model_models_data_object.go
@@ -0,0 +1,16 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDataObject struct {
+ // Data model ID
+ ReferenceID *PrimitiveObjectId `json:"referenceID,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_cpu_model.go b/api-client/oc-catalog/model_models_datacenter_cpu_model.go
new file mode 100644
index 0000000..70ba71d
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_cpu_model.go
@@ -0,0 +1,19 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterCpuModel struct {
+ Architecture string `json:"architecture,omitempty"`
+ Cores int32 `json:"cores"`
+ MinimumMemory int32 `json:"minimum_memory,omitempty"`
+ Platform string `json:"platform,omitempty"`
+ Shared bool `json:"shared,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_gpu_model.go b/api-client/oc-catalog/model_models_datacenter_gpu_model.go
new file mode 100644
index 0000000..2a7455b
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_gpu_model.go
@@ -0,0 +1,19 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterGpuModel struct {
+ CudaCores int32 `json:"cuda_cores,omitempty"`
+ // Units in MB
+ Memory int32 `json:"memory,omitempty"`
+ Model string `json:"model,omitempty"`
+ TensorCores int32 `json:"tensor_cores,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_memory_model.go b/api-client/oc-catalog/model_models_datacenter_memory_model.go
new file mode 100644
index 0000000..4d7d2e1
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_memory_model.go
@@ -0,0 +1,17 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterMemoryModel struct {
+ Ecc bool `json:"ecc,omitempty"`
+ // Units in MB
+ Size int32 `json:"size,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_model.go b/api-client/oc-catalog/model_models_datacenter_model.go
new file mode 100644
index 0000000..10d9c69
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_model.go
@@ -0,0 +1,29 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterModel struct {
+ ID string `json:"ID"`
+ // id of the DC
+ Acronym string `json:"acronym,omitempty"`
+ BookingPrice int64 `json:"bookingPrice,omitempty"`
+ Cpu *ModelsDatacenterCpuModel `json:"cpu,omitempty"`
+ Description string `json:"description,omitempty"`
+ Gpu []ModelsDatacenterGpuModel `json:"gpu,omitempty"`
+ // list of host:port
+ Hosts []string `json:"hosts,omitempty"`
+ Logo string `json:"logo,omitempty"`
+ Name string `json:"name,omitempty"`
+ Owner string `json:"owner,omitempty"`
+ Ram *ModelsDatacenterMemoryModel `json:"ram,omitempty"`
+ ShortDescription string `json:"short_description,omitempty"`
+ Type_ string `json:"type,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_new_model.go b/api-client/oc-catalog/model_models_datacenter_new_model.go
new file mode 100644
index 0000000..40c36e2
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_new_model.go
@@ -0,0 +1,28 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterNewModel struct {
+ // id of the DC
+ Acronym string `json:"acronym"`
+ BookingPrice int64 `json:"bookingPrice,omitempty"`
+ Cpu *ModelsDatacenterCpuModel `json:"cpu"`
+ Description string `json:"description"`
+ Gpu []ModelsDatacenterGpuModel `json:"gpu"`
+ // list of host:port
+ Hosts []string `json:"hosts"`
+ Logo string `json:"logo"`
+ Name string `json:"name"`
+ Owner string `json:"owner,omitempty"`
+ Ram *ModelsDatacenterMemoryModel `json:"ram"`
+ ShortDescription string `json:"short_description"`
+ Type_ string `json:"type"`
+}
diff --git a/api-client/oc-catalog/model_models_datacenter_object.go b/api-client/oc-catalog/model_models_datacenter_object.go
new file mode 100644
index 0000000..b8faa1d
--- /dev/null
+++ b/api-client/oc-catalog/model_models_datacenter_object.go
@@ -0,0 +1,16 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsDatacenterObject struct {
+ // Data model ID
+ ReferenceID *PrimitiveObjectId `json:"referenceID,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_execution_requirements_model.go b/api-client/oc-catalog/model_models_execution_requirements_model.go
new file mode 100644
index 0000000..80a2f32
--- /dev/null
+++ b/api-client/oc-catalog/model_models_execution_requirements_model.go
@@ -0,0 +1,22 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsExecutionRequirementsModel struct {
+ Cpus int32 `json:"cpus"`
+ DiskIo string `json:"disk_io,omitempty"`
+ // Amount of GPUs needed
+ Gpus int32 `json:"gpus,omitempty"`
+ Parallel bool `json:"parallel,omitempty"`
+ // Units in MB
+ Ram int32 `json:"ram"`
+ ScalingModel int32 `json:"scaling_model,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_repository_model.go b/api-client/oc-catalog/model_models_repository_model.go
new file mode 100644
index 0000000..74e2d30
--- /dev/null
+++ b/api-client/oc-catalog/model_models_repository_model.go
@@ -0,0 +1,16 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsRepositoryModel struct {
+ Credentials string `json:"credentials,omitempty"`
+ Url string `json:"url,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_schedule_db.go b/api-client/oc-catalog/model_models_schedule_db.go
new file mode 100644
index 0000000..3bc7c83
--- /dev/null
+++ b/api-client/oc-catalog/model_models_schedule_db.go
@@ -0,0 +1,18 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsScheduleDb struct {
+ ResourceQty *ModelsExecutionRequirementsModel `json:"ResourceQty,omitempty"`
+ StartDate string `json:"StartDate,omitempty"`
+ StopDate string `json:"StopDate,omitempty"`
+ Workflow string `json:"Workflow,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_schedule_info.go b/api-client/oc-catalog/model_models_schedule_info.go
new file mode 100644
index 0000000..d09b0d4
--- /dev/null
+++ b/api-client/oc-catalog/model_models_schedule_info.go
@@ -0,0 +1,16 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsScheduleInfo struct {
+ NextExecutions []string `json:"NextExecutions,omitempty"`
+ Total int64 `json:"Total,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_schedule_time.go b/api-client/oc-catalog/model_models_schedule_time.go
new file mode 100644
index 0000000..d478e5c
--- /dev/null
+++ b/api-client/oc-catalog/model_models_schedule_time.go
@@ -0,0 +1,14 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsScheduleTime struct {
+}
diff --git a/api-client/oc-catalog/model_models_search_result.go b/api-client/oc-catalog/model_models_search_result.go
new file mode 100644
index 0000000..3e7eb81
--- /dev/null
+++ b/api-client/oc-catalog/model_models_search_result.go
@@ -0,0 +1,18 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsSearchResult struct {
+ Computing []ModelsComputingModel `json:"computing"`
+ Data []ModelsDataModel `json:"data,omitempty"`
+ Datacenter []ModelsDatacenterModel `json:"datacenter,omitempty"`
+ Storage []ModelsStorageModel `json:"storage,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_storage_model.go b/api-client/oc-catalog/model_models_storage_model.go
new file mode 100644
index 0000000..ff86aa0
--- /dev/null
+++ b/api-client/oc-catalog/model_models_storage_model.go
@@ -0,0 +1,27 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsStorageModel struct {
+ // Unique ID of the DC where it is the storage
+ DCacronym string `json:"DCacronym,omitempty"`
+ ID string `json:"ID"`
+ BookingPrice int32 `json:"bookingPrice,omitempty"`
+ Description string `json:"description,omitempty"`
+ Encryption bool `json:"encryption,omitempty"`
+ Logo string `json:"logo,omitempty"`
+ Name string `json:"name,omitempty"`
+ Redundancy string `json:"redundancy,omitempty"`
+ ShortDescription string `json:"short_description,omitempty"`
+ Size int32 `json:"size,omitempty"`
+ Throughput string `json:"throughput,omitempty"`
+ Type_ string `json:"type,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_storage_new_model.go b/api-client/oc-catalog/model_models_storage_new_model.go
new file mode 100644
index 0000000..b7c5709
--- /dev/null
+++ b/api-client/oc-catalog/model_models_storage_new_model.go
@@ -0,0 +1,26 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsStorageNewModel struct {
+ // Unique ID of the DC where it is the storage
+ DCacronym string `json:"DCacronym"`
+ BookingPrice int32 `json:"bookingPrice,omitempty"`
+ Description string `json:"description"`
+ Encryption bool `json:"encryption,omitempty"`
+ Logo string `json:"logo"`
+ Name string `json:"name"`
+ Redundancy string `json:"redundancy,omitempty"`
+ ShortDescription string `json:"short_description"`
+ Size int32 `json:"size"`
+ Throughput string `json:"throughput,omitempty"`
+ Type_ string `json:"type"`
+}
diff --git a/api-client/oc-catalog/model_models_storage_object.go b/api-client/oc-catalog/model_models_storage_object.go
new file mode 100644
index 0000000..6996dda
--- /dev/null
+++ b/api-client/oc-catalog/model_models_storage_object.go
@@ -0,0 +1,18 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsStorageObject struct {
+ Inputs []string `json:"inputs,omitempty"`
+ Outputs []string `json:"outputs,omitempty"`
+ // Storage model ID
+ ReferenceID *PrimitiveObjectId `json:"referenceID,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_workflow.go b/api-client/oc-catalog/model_models_workflow.go
new file mode 100644
index 0000000..8758c96
--- /dev/null
+++ b/api-client/oc-catalog/model_models_workflow.go
@@ -0,0 +1,21 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsWorkflow struct {
+ // State of the mxgraph
+ MxgraphXML string `json:"MxgraphXML,omitempty"`
+ Computing *ModelsComputingObject `json:"computing,omitempty"`
+ Data *ModelsDataObject `json:"data,omitempty"`
+ Datacenter *ModelsDatacenterObject `json:"datacenter,omitempty"`
+ Schedules *ModelsWorkflowSchedule `json:"schedules,omitempty"`
+ Storage *ModelsStorageObject `json:"storage,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_workflow_schedule.go b/api-client/oc-catalog/model_models_workflow_schedule.go
new file mode 100644
index 0000000..e1eda14
--- /dev/null
+++ b/api-client/oc-catalog/model_models_workflow_schedule.go
@@ -0,0 +1,23 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsWorkflowSchedule struct {
+ // Service: true, Task: false
+ IsService bool `json:"IsService,omitempty"`
+ StartDate string `json:"StartDate,omitempty"`
+ StopDate string `json:"StopDate,omitempty"`
+ Cron string `json:"cron,omitempty"`
+ // Durantion in seconds
+ Duration int32 `json:"duration,omitempty"`
+ Events string `json:"events,omitempty"`
+ IsBooked bool `json:"isBooked,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_workspace.go b/api-client/oc-catalog/model_models_workspace.go
new file mode 100644
index 0000000..0be126d
--- /dev/null
+++ b/api-client/oc-catalog/model_models_workspace.go
@@ -0,0 +1,20 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsWorkspace struct {
+ Workflows *ModelsWorkflow `json:"Workflows,omitempty"`
+ Computing []string `json:"computing,omitempty"`
+ Data []string `json:"data,omitempty"`
+ Datacenter []string `json:"datacenter,omitempty"`
+ Storage []string `json:"storage,omitempty"`
+ UserId string `json:"user_id,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_models_workspace_model.go b/api-client/oc-catalog/model_models_workspace_model.go
new file mode 100644
index 0000000..f78c412
--- /dev/null
+++ b/api-client/oc-catalog/model_models_workspace_model.go
@@ -0,0 +1,19 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type ModelsWorkspaceModel struct {
+ Computing []ModelsComputingModel `json:"computing,omitempty"`
+ Data []ModelsDataModel `json:"data,omitempty"`
+ Datacenter []ModelsDatacenterModel `json:"datacenter,omitempty"`
+ Storage []ModelsStorageModel `json:"storage,omitempty"`
+ UserId string `json:"user_id,omitempty"`
+}
diff --git a/api-client/oc-catalog/model_primitive_object_id.go b/api-client/oc-catalog/model_primitive_object_id.go
new file mode 100644
index 0000000..f52a0cb
--- /dev/null
+++ b/api-client/oc-catalog/model_primitive_object_id.go
@@ -0,0 +1,14 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type PrimitiveObjectId struct {
+}
diff --git a/api-client/oc-catalog/model_time_time.go b/api-client/oc-catalog/model_time_time.go
new file mode 100644
index 0000000..572d650
--- /dev/null
+++ b/api-client/oc-catalog/model_time_time.go
@@ -0,0 +1,14 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+type TimeTime struct {
+}
diff --git a/api-client/oc-catalog/response.go b/api-client/oc-catalog/response.go
new file mode 100644
index 0000000..d8927be
--- /dev/null
+++ b/api-client/oc-catalog/response.go
@@ -0,0 +1,44 @@
+/*
+ * oc-catalog API
+ *
+ * Backend of the oc-search project
+ *
+ * API version: 1.0.0
+ * Contact: valentin.kivachuk@irt-saintexupery.com
+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
+ */
+
+package swagger
+
+import (
+ "net/http"
+)
+
+type APIResponse struct {
+ *http.Response `json:"-"`
+ Message string `json:"message,omitempty"`
+ // Operation is the name of the swagger operation.
+ Operation string `json:"operation,omitempty"`
+ // RequestURL is the request URL. This value is always available, even if the
+ // embedded *http.Response is nil.
+ RequestURL string `json:"url,omitempty"`
+ // Method is the HTTP method used for the request. This value is always
+ // available, even if the embedded *http.Response is nil.
+ Method string `json:"method,omitempty"`
+ // Payload holds the contents of the response body (which may be nil or empty).
+ // This is provided here as the raw response.Body() reader will have already
+ // been drained.
+ Payload []byte `json:"-"`
+}
+
+func NewAPIResponse(r *http.Response) *APIResponse {
+
+ response := &APIResponse{Response: r}
+ return response
+}
+
+func NewAPIResponseWithError(errorMessage string) *APIResponse {
+
+ response := &APIResponse{Message: errorMessage}
+ return response
+}
diff --git a/conf/app.conf b/conf/app.conf
new file mode 100644
index 0000000..d4e8a91
--- /dev/null
+++ b/conf/app.conf
@@ -0,0 +1,5 @@
+appname = search
+httpport = 8080
+runmode = dev
+
+EnableDocs = true
\ No newline at end of file
diff --git a/controllers/datacenter.go b/controllers/datacenter.go
new file mode 100644
index 0000000..cc90004
--- /dev/null
+++ b/controllers/datacenter.go
@@ -0,0 +1,21 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// DatacenterController is the controller in chrage of solr
+type DatacenterController struct {
+ beego.Controller
+}
+
+// Prepare checks for logged in Datacenter
+func (c *DatacenterController) Prepare() {
+
+}
+
+// Get implements simple solr Datacenter
+func (c *DatacenterController) Get() {
+
+ c.TplName = "datacenter.tpl"
+}
diff --git a/controllers/default.go b/controllers/default.go
new file mode 100644
index 0000000..afcca0c
--- /dev/null
+++ b/controllers/default.go
@@ -0,0 +1,31 @@
+package controllers
+
+import (
+ OCCatalog_cli "oc-search/api-client/oc-catalog"
+
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// MainController is in charge of the main page
+type MainController struct {
+ beego.Controller
+}
+
+var OCCatalogAPI *OCCatalog_cli.APIClient
+
+func init() {
+ // auth := context.WithValue(context.Background(), OCCatalog_cli.ContextAPIKey, OCCatalog_cli.APIKey{Key: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE2MTI1OTI3MDIsInVzZXJfaWQiOiJ4ZCJ9.kTLb1FtpdnaobUpe5u9Jw8S7Cc6gf7ExmU4U3XMcC2o"})
+ OCCatalogAPI = OCCatalog_cli.NewAPIClient(&OCCatalog_cli.Configuration{BasePath: "http://localhost:49618/v1",
+ DefaultHeader: map[string]string{
+ "authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE2MTMwMDI0NjAsInVzZXJfaWQiOiJhc2QifQ.TXT18aeulnCrtedKKFVaD0BapOTdVAFcJJdVS7zk0I8",
+ },
+ })
+ //TODO: Test API is reachable or throw exception
+}
+
+// Get provides the main page
+func (c *MainController) Get() {
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "index.tpl"
+}
diff --git a/controllers/details.go b/controllers/details.go
new file mode 100644
index 0000000..3083b3a
--- /dev/null
+++ b/controllers/details.go
@@ -0,0 +1,74 @@
+package controllers
+
+import (
+ "context"
+
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// DetailsController is the controller in chrage of solr
+type DetailsController struct {
+ beego.Controller
+}
+
+// @Title GetDetails
+// @Description Return details of a resource
+// @Success 200 {string} Cool
+// @router /data/:id [post]
+// @router /computing/:id [post]
+// @router /storage/:id [post]
+// @router /datacenter/:id [post]
+func (c *DetailsController) SubmitToWorkspace(id string) {
+ rType := c.Ctx.Input.Params()["1"]
+
+ var err error
+
+ switch rType {
+ case "data":
+ case "computing":
+ case "datacenter":
+ case "storage":
+ _, err = OCCatalogAPI.WorkspaceApi.WorkspaceControllerAddModelToWorkspace(context.Background(), id, rType)
+ default:
+ return
+ }
+
+ if err != nil {
+ return
+ }
+
+}
+
+// @Title GetDetails
+// @Description Return details of a resource
+// @Success 200 {string} Cool
+// @router /data/:id [get]
+// @router /computing/:id [get]
+// @router /storage/:id [get]
+// @router /datacenter/:id [get]
+func (c *DetailsController) GetElementInfo(id string) {
+ rType := c.Ctx.Input.Params()["1"]
+
+ var res interface{}
+ var err error
+
+ switch rType {
+ case "data":
+ res, _, err = OCCatalogAPI.DataApi.DataControllerGetDataByID(context.Background(), id)
+ case "computing":
+ res, _, err = OCCatalogAPI.ComputingApi.ComputingControllerGetComputingByID(context.Background(), id)
+ case "datacenter":
+ res, _, err = OCCatalogAPI.DatacenterApi.DatacenterControllerGetOneDatacenter(context.Background(), id)
+ case "storage":
+ res, _, err = OCCatalogAPI.StorageApi.StorageControllerGet(context.Background(), id)
+ default:
+ return
+ }
+
+ if err != nil {
+ return
+ }
+
+ c.Data["data"] = res
+ c.TplName = "details.tpl"
+}
diff --git a/controllers/item.go b/controllers/item.go
new file mode 100644
index 0000000..e8aed5e
--- /dev/null
+++ b/controllers/item.go
@@ -0,0 +1,28 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// ItemController shows partners on a map
+type ItemController struct {
+ beego.Controller
+}
+
+// Get items
+func (c *ItemController) Get() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "item.tpl"
+ c.EnableXSRF = false
+}
+
+// Add item
+func (c *ItemController) Add() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "item_add.tpl"
+ c.EnableXSRF = false
+}
diff --git a/controllers/login.go b/controllers/login.go
new file mode 100644
index 0000000..eda6992
--- /dev/null
+++ b/controllers/login.go
@@ -0,0 +1,17 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// LoginController is the controller in chrage of solr
+type LoginController struct {
+ beego.Controller
+}
+
+// Get implements simple solr Login
+func (c *LoginController) Get() {
+
+ c.TplName = "login.tpl"
+ //c.SetSession("login", "test")
+}
diff --git a/controllers/map.go b/controllers/map.go
new file mode 100644
index 0000000..ca300fc
--- /dev/null
+++ b/controllers/map.go
@@ -0,0 +1,19 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// MapController shows partners on a map
+type MapController struct {
+ beego.Controller
+}
+
+// Get i
+func (c *MapController) Get() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "map.tpl"
+ c.EnableXSRF = false
+}
diff --git a/controllers/networks.go b/controllers/networks.go
new file mode 100644
index 0000000..6489083
--- /dev/null
+++ b/controllers/networks.go
@@ -0,0 +1,21 @@
+package controllers
+
+import (
+ "fmt"
+
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// NetworksController is the controller in chrage of solr
+type NetworksController struct {
+ beego.Controller
+}
+
+// Get implements simple search
+func (c *NetworksController) Get() {
+ resources := loadSingleFile("data/test.json")
+ fmt.Println(len(resources))
+ fmt.Println(resources[0].Name)
+ c.Data["list"] = resources
+ c.TplName = "networks.tpl"
+}
diff --git a/controllers/oidc.go b/controllers/oidc.go
new file mode 100644
index 0000000..2527acc
--- /dev/null
+++ b/controllers/oidc.go
@@ -0,0 +1,96 @@
+package controllers
+
+import (
+ "fmt"
+ "net/http"
+
+ beego "github.com/beego/beego/v2/server/web"
+
+ oidc "github.com/coreos/go-oidc"
+ "golang.org/x/net/context"
+ "golang.org/x/oauth2"
+)
+
+// OidcController is the controller in oidc
+type OidcController struct {
+ beego.Controller
+}
+
+var oauth2Config oauth2.Config
+var idTokenVerifier *oidc.IDTokenVerifier
+var ctx context.Context
+
+// Connect implements open id connection to openid provider
+func (c *OidcController) Connect() {
+ ctx = context.Background()
+
+ // Initialize a provider by specifying dex's issuer URL.
+ provider, err := oidc.NewProvider(ctx, "http://127.0.0.1:5556/dex")
+ if err != nil {
+ fmt.Println(err.Error())
+ return
+ }
+
+ // Configure the OAuth2 config with the client values.
+ oauth2Config = oauth2.Config{
+ // client_id and client_secret of the client.
+ ClientID: "opencloud-search",
+ ClientSecret: "ZXhhbXBsZS1hcHAtc2VjcmV0",
+
+ // The redirectURL.
+ RedirectURL: "http://127.0.0.1:8080/oidc-callback",
+
+ // Discovery returns the OAuth2 endpoints.
+ Endpoint: provider.Endpoint(),
+
+ // "openid" is a required scope for OpenID Connect flows.
+ //
+ // Other scopes, such as "groups" can be requested.
+ Scopes: []string{oidc.ScopeOpenID, "profile", "email", "groups"},
+ }
+
+ // Create an ID token parser.
+ idTokenVerifier = provider.Verifier(&oidc.Config{ClientID: "opencloud-search"})
+
+ //state := newState()
+ c.Redirect(oauth2Config.AuthCodeURL("foobar"), http.StatusFound)
+
+}
+
+// Callback implements open id callback from openid provider
+func (c *OidcController) Callback() {
+
+ state := c.GetString("state")
+ code := c.GetString("code")
+ _ = state
+ // Verify state.
+
+ oauth2Token, err := oauth2Config.Exchange(ctx, code)
+ if err != nil {
+ fmt.Println(err.Error())
+ }
+
+ // Extract the ID Token from OAuth2 token.
+ rawIDToken, ok := oauth2Token.Extra("id_token").(string)
+ if !ok {
+ // handle missing token
+ }
+ fmt.Println(rawIDToken)
+ // Parse and verify ID Token payload.
+ idToken, err := idTokenVerifier.Verify(ctx, rawIDToken)
+ if err != nil {
+ // handle error
+ }
+
+ // Extract custom claims.
+ var claims struct {
+ Email string `json:"email"`
+ Verified bool `json:"email_verified"`
+ Groups []string `json:"groups"`
+ }
+ if err := idToken.Claims(&claims); err != nil {
+ // handle error
+ }
+ c.SetSession("login", claims.Email)
+ c.Redirect("/user", http.StatusFound)
+}
diff --git a/controllers/partner.go b/controllers/partner.go
new file mode 100644
index 0000000..bdd3f7d
--- /dev/null
+++ b/controllers/partner.go
@@ -0,0 +1,28 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// PartnerController shows partners on a map
+type PartnerController struct {
+ beego.Controller
+}
+
+// Get i
+func (c *PartnerController) Get() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "item.tpl"
+ c.EnableXSRF = false
+}
+
+// Add i
+func (c *PartnerController) Add() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "map.tpl"
+ c.EnableXSRF = false
+}
diff --git a/controllers/schedule.go b/controllers/schedule.go
new file mode 100644
index 0000000..10796fc
--- /dev/null
+++ b/controllers/schedule.go
@@ -0,0 +1,15 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// ScheduleController is the controller in chrage of solr
+type ScheduleController struct {
+ beego.Controller
+}
+
+// Get implements simple search
+func (c *ScheduleController) Get() {
+ c.TplName = "schedule.tpl"
+}
diff --git a/controllers/search.go b/controllers/search.go
new file mode 100644
index 0000000..2b8a5db
--- /dev/null
+++ b/controllers/search.go
@@ -0,0 +1,53 @@
+package controllers
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "os"
+
+ OCCatalog_cli "oc-search/api-client/oc-catalog"
+
+ "github.com/beego/beego/v2/core/logs"
+ beego "github.com/beego/beego/v2/server/web"
+
+ "oc-search/models"
+)
+
+// SearchController is the controller in chrage of solr
+type SearchController struct {
+ beego.Controller
+}
+
+func loadSingleFile(filename string) []models.Resource {
+ var list []models.Resource
+ jsonFile, err := os.Open(filename)
+ // if we os.Open returns an error then handle it
+ if err != nil {
+ fmt.Println(err)
+ }
+ defer jsonFile.Close()
+ byteValue, _ := ioutil.ReadAll(jsonFile)
+ json.Unmarshal(byteValue, &list)
+ return list
+}
+
+// Get implements simple search
+func (c *SearchController) Get() {
+ query := c.GetString("q")
+
+ var resources OCCatalog_cli.ModelsSearchResult
+
+ //FIXME: dashboard special case for x_dash.json ?????
+ resources, _, err := OCCatalogAPI.SearchApi.SearchControllerSearchByWord(context.Background(), query)
+ if err != nil {
+ logs.Warn(err.Error())
+ return
+ }
+
+ //TODO: Adapt the View and models to use the OCCatalog_cli models as much as possible
+
+ c.Data["list"] = resources
+ c.TplName = "search.tpl"
+}
diff --git a/controllers/user.go b/controllers/user.go
new file mode 100644
index 0000000..ea66b50
--- /dev/null
+++ b/controllers/user.go
@@ -0,0 +1,25 @@
+package controllers
+
+import (
+ beego "github.com/beego/beego/v2/server/web"
+)
+
+// UserController is the controller in chrage of solr
+type UserController struct {
+ beego.Controller
+}
+
+// Prepare checks for logged in User
+func (c *UserController) Prepare() {
+ login, _ := c.GetSession("login").(string)
+ if login == "" {
+ c.Ctx.Redirect(302, "/login")
+ }
+
+}
+
+// Get implements simple solr User
+func (c *UserController) Get() {
+ c.Data["login"], _ = c.GetSession("login").(string)
+ c.TplName = "user.tpl"
+}
diff --git a/controllers/workflow.go b/controllers/workflow.go
new file mode 100644
index 0000000..991e963
--- /dev/null
+++ b/controllers/workflow.go
@@ -0,0 +1,81 @@
+package controllers
+
+import (
+ "fmt"
+ "log"
+ "net/url"
+ "os"
+ "strings"
+
+ beego "github.com/beego/beego/v2/server/web"
+ "github.com/sbabiv/xml2map"
+)
+
+// WorkflowController allows to edit a tasks workflow
+type WorkflowController struct {
+ beego.Controller
+}
+
+// Get i
+func (c *WorkflowController) Get() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "workflow.tpl"
+}
+
+// Open i
+func (c *WorkflowController) Open() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "workflow.tpl"
+}
+
+// Save i
+func (c *WorkflowController) Save() {
+ xml := c.GetString("xml")
+ fmt.Println(xml)
+ decodedValue, err := url.QueryUnescape(xml)
+ if err != nil {
+ log.Fatal(err)
+ return
+ }
+ fmt.Println(decodedValue)
+ os.WriteFile("graph.xml", []byte(decodedValue), 0660)
+ decoder := xml2map.NewDecoder(strings.NewReader(decodedValue))
+ result, err := decoder.Decode()
+ if err != nil {
+
+ }
+
+ cells := result["mxGraphModel"].(map[string]interface{})["root"].(map[string]interface{})["mxCell"].([]map[string]interface{})
+
+ for _, element := range cells {
+ id := element["@id"].(string)
+ if _, ok := element["@style"]; ok {
+ if _, ok2 := element["@rID"]; ok2 {
+ fmt.Print(id + ": ")
+ fmt.Println(element["@rID"], element["@rType"])
+ }
+ }
+ if src, ok := element["@source"]; ok {
+ src = element["@source"].(string)
+ fmt.Println("Link: " + src.(string) + " " + element["@target"].(string))
+ }
+ }
+
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ c.StopRun()
+}
+
+// Export i
+func (c *WorkflowController) Export() {
+
+ c.Data["Website"] = "beego.me"
+ c.Data["Email"] = "astaxie@gmail.com"
+ c.TplName = "workflow.tpl"
+}
diff --git a/controllers/workspace.go b/controllers/workspace.go
new file mode 100644
index 0000000..87b3581
--- /dev/null
+++ b/controllers/workspace.go
@@ -0,0 +1,90 @@
+package controllers
+
+import (
+ "github.com/beego/beego/v2/core/logs"
+ beego "github.com/beego/beego/v2/server/web"
+ "golang.org/x/net/context"
+)
+
+// WorkspaceController is the controller in chrage of solr
+type WorkspaceController struct {
+ beego.Controller
+}
+
+// @Title GetWorkspace
+// @Description Return Workspace
+// @router / [get]
+func (c *WorkspaceController) GetWorkspace() {
+
+ //TODO: Use fullModel api call
+ workspaceObj, _, err := OCCatalogAPI.WorkspaceApi.WorkspaceControllerGetWorkspace(context.Background())
+ if err != nil {
+ logs.Warn(err.Error())
+ return
+ }
+
+ outputArray := []interface{}{}
+
+ if len(workspaceObj.Data) > 0 {
+ dataArr, _, err := OCCatalogAPI.DataApi.DataControllerGetMultipleDataByIDs(context.Background(), workspaceObj.Data)
+ if err != nil {
+ logs.Warn(err.Error())
+ }
+
+ //convert array of strings to interface{}
+ ArrInterface := make([]interface{}, len(dataArr))
+ for i := range dataArr {
+ ArrInterface[i] = dataArr[i]
+ }
+
+ outputArray = append(outputArray, ArrInterface...)
+ }
+
+ if len(workspaceObj.Computing) > 0 {
+ computingArr, _, err := OCCatalogAPI.ComputingApi.ComputingControllerGetMultipleComputingByIDs(context.Background(), workspaceObj.Computing)
+ if err != nil {
+ logs.Warn(err.Error())
+ }
+
+ //convert array of strings to interface{}
+ ArrInterface := make([]interface{}, len(computingArr))
+ for i := range computingArr {
+ ArrInterface[i] = computingArr[i]
+ }
+
+ outputArray = append(outputArray, ArrInterface...)
+ }
+
+ if len(workspaceObj.Datacenter) > 0 {
+ datacenterArr, _, err := OCCatalogAPI.DatacenterApi.DatacenterControllerGetMultipleDatacentersByIDs(context.Background(), workspaceObj.Datacenter)
+ if err != nil {
+ logs.Warn(err.Error())
+ }
+
+ //convert array of strings to interface{}
+ ArrInterface := make([]interface{}, len(datacenterArr))
+ for i := range datacenterArr {
+ ArrInterface[i] = datacenterArr[i]
+ }
+
+ outputArray = append(outputArray, ArrInterface...)
+ }
+
+ if len(workspaceObj.Storage) > 0 {
+ storageArr, _, err := OCCatalogAPI.StorageApi.StorageControllerGetMultipleStoragesByIDs(context.Background(), workspaceObj.Storage)
+ if err != nil {
+ logs.Warn(err.Error())
+ }
+
+ //convert array of strings to interface{}
+ ArrInterface := make([]interface{}, len(storageArr))
+ for i := range storageArr {
+ ArrInterface[i] = storageArr[i]
+ }
+
+ outputArray = append(outputArray, ArrInterface...)
+ }
+
+ c.Data["list"] = outputArray
+ c.TplName = "workspace.tpl"
+}
diff --git a/data/garbage/samplegraph.xml b/data/garbage/samplegraph.xml
new file mode 100644
index 0000000..eebbc13
--- /dev/null
+++ b/data/garbage/samplegraph.xml
@@ -0,0 +1,15 @@
+
+ Démonstrateur du cockpit de pilotage de cloud réparti +
++ Documentation et outil de test de l'API du cluster principal du cloud +
+ +Documentation et outil de test de l'API du cluster simulant le partenaire IRT +
+Documentation et outil de test de l'API du cluster simulant le partenaire exemple Meteo France +
+Forge sur Internet : Code source de la partie graphique du démonstrateur +
+Forge sur Internet : Code source des web services +
+