This is an automated email from the ASF dual-hosted git repository.

bhliva pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/develop by this push:
     new f085fd6  DLAB-000 moved API description to assets folder
f085fd6 is described below

commit f085fd6260fb27eac3498a7c9c7a279c273fc78b
Author: bhliva <[email protected]>
AuthorDate: Tue Nov 5 17:46:24 2019 +0200

    DLAB-000 moved API description to assets folder
---
 services/self-service/pom.xml                      |   4 +-
 .../src/main/resources/endpoint-api.yml            | 635 -------------
 .../resources/webapp/src/assets/endpoint-api.json  | 980 +++++++++++++++++++++
 3 files changed, 982 insertions(+), 637 deletions(-)

diff --git a/services/self-service/pom.xml b/services/self-service/pom.xml
index 5539d12..25dbf42 100644
--- a/services/self-service/pom.xml
+++ b/services/self-service/pom.xml
@@ -249,8 +249,8 @@
                 <artifactId>swagger-maven-plugin</artifactId>
                 <version>2.0.10</version>
                 <configuration>
-                    <outputFileName>openapi</outputFileName>
-                    
<outputPath>${project.build.directory}/classes/webapp/dist</outputPath>
+                    <outputFileName>dlab-api</outputFileName>
+                    
<outputPath>${project.build.directory}/classes/webapp/dist/assets</outputPath>
                     <outputFormat>JSONANDYAML</outputFormat>
                     <resourcePackages>
                         <package>com.epam.dlab.backendapi.resources</package>
diff --git a/services/self-service/src/main/resources/endpoint-api.yml 
b/services/self-service/src/main/resources/endpoint-api.yml
deleted file mode 100644
index 89ee222..0000000
--- a/services/self-service/src/main/resources/endpoint-api.yml
+++ /dev/null
@@ -1,635 +0,0 @@
-openapi: 3.0.0
-servers:
-  - description: SwaggerHub API Auto Mocking
-    url: https://virtserver.swaggerhub.com/bhliva/DLabEndpointAPI/0.0.1
-info:
-  description: DLab cloud endpoint API
-  version: "0.0.1"
-  title: DLab cloud endpoint API
-  contact:
-    email: [email protected]
-  license:
-    name: Apache 2.0
-    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
-tags:
-  - name: notebooks
-    description: API connected with notebook actions
-  - name: templates
-    description: API that describes available templates
-  - name: projects
-    description: API for managing projects
-
-paths:
-  /notebook:
-    post:
-      tags:
-        - notebooks
-      summary: Creates new notebook
-      operationId: createNotebook
-      requestBody:
-        description: Notebook object
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/CreateNotebookDTO'
-      responses:
-        '202':
-          description: Request for notebook creation was accepted
-          headers:
-            Location:
-              description: URI for checking notebook status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '400':
-          description: bad input parameter
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/Error"
-
-  /notebook/{project}/{name}/status:
-    get:
-      tags:
-        - notebooks
-      summary: Get notebook status
-      operationId: getStatus
-      parameters:
-        - name: project
-          in: path
-          description: Project associated with the notebook
-          required: true
-          schema:
-            type: string
-        - name: name
-          in: path
-          description: Notebook name
-          required: true
-          schema:
-            type: string
-      responses:
-        '200':
-          description: Actual notebook status
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Status'
-
-  /notebook/{project}/{name}/start:
-    put:
-      tags:
-        - notebooks
-      summary: Start stopped notebook instance
-      operationId: startNotebook
-      parameters:
-        - name: project
-          in: path
-          description: Project associated with the notebook
-          required: true
-          schema:
-            type: string
-        - name: name
-          in: path
-          description: Notebook name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Request for starting notebook was accepted
-          headers:
-            Location:
-              description: URI for checking notebook status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '400':
-          description: bad input parameter
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/Error"
-        '404':
-          description: There is no instance stopped instance with provided name
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/Error"
-  /notebook/{project}/{name}/stop:
-    put:
-      tags:
-        - notebooks
-      summary: Stop stopped notebook instance
-      operationId: stopNotebook
-      parameters:
-        - name: project
-          in: path
-          description: Project associated with the notebook
-          required: true
-          schema:
-            type: string
-        - name: name
-          in: path
-          description: Notebook name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Request for stopping notebook was accepted
-          headers:
-            Location:
-              description: URI for checking notebook status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '400':
-          description: bad input parameter
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/Error"
-        '404':
-          description: There is no instance started instance with provided name
-          content:
-            application/json:
-              schema:
-                $ref: "#/components/schemas/Error"
-  /notebook/{project}/{name}:
-    delete:
-      tags:
-        - notebooks
-      summary: Terminates notebook
-      operationId: removeNotebook
-      parameters:
-        - name: project
-          in: path
-          description: Project associated with the notebook
-          required: true
-          schema:
-            type: string
-        - name: name
-          in: path
-          description: Notebook name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Request for notebook deletion was accepted
-          headers:
-            Location:
-              description: URI for checking notebook status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '404':
-          description: Notebook with passed name not found
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Error'
-
-  /notebook/{project}/{name}/lib:
-    parameters:
-      - name: project
-        in: path
-        description: Project associated with the notebook
-        required: true
-        schema:
-          type: string
-      - name: name
-        in: path
-        description: Notebook name
-        required: true
-        schema:
-          type: string
-    get:
-      tags:
-        - notebooks
-      summary: Get installed libraries for notebook
-      operationId: getIntalledLibs
-      responses:
-        '200':
-          description: List of installed libraries
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/LibList'
-    post:
-      tags:
-        - notebooks
-      summary: Install new libs on notebook
-      operationId: installLibs
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/LibList'
-      responses:
-        '202':
-          description: Lib installation in progress
-          headers:
-            Location:
-              description: URI for getting status of library installation
-              required: true
-              style: simple
-              schema:
-                type: string
-
-  /notebook/{type}/lib:
-    get:
-      summary: Get available libraries
-      operationId: getAvailableLibs
-      tags:
-        - notebooks
-      parameters:
-        - name: type
-          in: path
-          description: Project associated with the notebook
-          required: true
-          schema:
-            type: string
-            enum: [jupyter, rstudio, tensor, zeppelin, jupyter_tensor, 
rstudio_tensor, deep_learning]
-      responses:
-        '200':
-          description: Return information about available libaries
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/LibList'
-
-  /template/{type}:
-    get:
-      tags:
-        - templates
-      summary: Get available templates
-      operationId: getTemplates
-      parameters:
-        - name: type
-          in: path
-          description: Template type
-          required: true
-          schema:
-            type: string
-            enum: [exploratory, computational]
-      responses:
-        '200':
-          description: Return information about available templates
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/TemplateList'
-  /project:
-    post:
-      tags:
-        - projects
-      summary: Creates new project
-      operationId: createProject
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/CreateProjectDTO'
-      responses:
-        '202':
-          description: Project creation in progress
-          headers:
-            Location:
-              description: URI of status project resource
-              required: true
-              style: simple
-              schema:
-                type: string
-
-  /project/{name}/status:
-    get:
-      tags:
-        - projects
-      summary: Get project status
-      operationId: getProjectStatus
-      parameters:
-        - name: name
-          in: path
-          description: Project name
-          required: true
-          schema:
-            type: string
-      responses:
-        '200':
-          description: Actual project status
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Status'
-  /project/{name}:
-    delete:
-      summary: Remove existing project
-      operationId: removeProject
-      tags:
-        - projects
-      parameters:
-        - name: name
-          in: path
-          description: Project name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Project remove in progress
-          headers:
-            Location:
-              description: URI for checking resource status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '404':
-          description: Project with passed name not found
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Error'
-
-  /project/{name}/start:
-    put:
-      summary: Start existing project
-      operationId: startProject
-      tags:
-        - projects
-      parameters:
-        - name: name
-          in: path
-          description: Project name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Start existing project
-          headers:
-            Location:
-              description: URI for checking resource status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '404':
-          description: Project with passed name not found
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Error'
-
-  /project/{name}/stop:
-    put:
-      summary: Stop existing project
-      operationId: stopProject
-      tags:
-        - projects
-      parameters:
-        - name: name
-          in: path
-          description: Project name
-          required: true
-          schema:
-            type: string
-      responses:
-        '202':
-          description: Stop existing project
-          headers:
-            Location:
-              description: URI for checking resource status
-              required: true
-              style: simple
-              schema:
-                type: string
-        '404':
-          description: Project with passed name not found
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Error'
-
-
-components:
-  schemas:
-    Status:
-      type: object
-      required:
-        - status
-      properties:
-        status:
-          type: string
-          enum: ["running", "creating", "configuring", "failed", "starting", 
"stopping", "stopped", "installing"]
-        error_message:
-          type: string
-          description: in case of error should be filled
-    LibList:
-      type: array
-      items:
-        $ref: '#/components/schemas/Library'
-    LibraryGroup:
-      type: object
-      properties:
-        name:
-          type: string
-          description: Group name
-        desription:
-          type: string
-          description: Group description
-
-    Library:
-      type: object
-      properties:
-        group:
-          type: string
-        name:
-          type: string
-        version:
-          type: string
-
-    CreateProjectDTO:
-      type: object
-      properties:
-        project:
-          $ref: '#/components/schemas/ProjectDTO'
-        cloudProperties:
-          $ref: '#/components/schemas/CloudConfig'
-
-    ProjectDTO:
-      type: object
-      properties:
-        useSharedImages:
-          type: boolean
-        key:
-          type: string
-          description: Project public key
-        name:
-          type: string
-
-    TemplateList:
-      type: array
-      items:
-        $ref: '#/components/schemas/TemplateDTO'
-    TemplateDTO:
-      type: object
-      properties:
-        name:
-          type: string
-        description:
-          type: string
-        version:
-          type: string
-        vendor:
-          type: string
-        shapes:
-          $ref: "#/components/schemas/ShapeList"
-
-    ShapeList:
-      type: array
-      items:
-        $ref: "#/components/schemas/ShapeDTO"
-    ShapeDTO:
-      type: object
-      properties:
-        type:
-          type: string
-        ram:
-          type: string
-        cpu:
-          type: string
-        description:
-          type: string
-        purpose:
-          type: string
-          enum: ["For testing", "Compute optimized", "GPU optimized", "Memory 
optimized"]
-
-    CloudConfig:
-      type: object
-      required:
-        - os
-      properties:
-        os:
-          type: string
-          description: Operation system
-        sbn:
-          type: string
-          example: dlab-sbn
-          description: service base name
-        subnetId:
-          type: string
-          description: subnet id/name
-        vpcId:
-          type: string
-          description: vpc id/name
-        region:
-          type: string
-        zone:
-          type: string
-        securityGroupIds:
-          type: string
-        confTagResourceId:
-          type: string
-
-    CreateNotebookDTO:
-      type: object
-      properties:
-        notebook:
-          $ref: "#/components/schemas/Notebook"
-        cloudConfig:
-          $ref: "#/components/schemas/CloudConfig"
-    Notebook:
-      type: object
-      required:
-        - type
-        - notebook_name
-        - git_creds
-        - spark_config
-        - project
-      properties:
-        type:
-          type: string
-          enum: [jupyter, rstudio, tensor, zeppelin, jupyter_tensor, 
rstudio_tensor, deep_learning]
-        notebook_name:
-          type: string
-          example: Jup
-        spark_config:
-          $ref: '#/components/schemas/ClusterConfig'
-        git_creds:
-          $ref: '#/components/schemas/GitCredentials'
-        project:
-          type: string
-        tags:
-          type: array
-          items:
-            $ref: '#/components/schemas/Tag'
-
-    Tag:
-      type: object
-      required:
-        - name
-        - value
-      properties:
-        name:
-          type: string
-        value:
-          type: string
-
-    GitCredentials:
-      type: array
-      items:
-        $ref: "#/components/schemas/GitCredential"
-    GitCredential:
-      type: object
-      required:
-        - name
-        - hostname
-        - email
-        - login
-        - password
-      properties:
-        name:
-          type: string
-        hostname:
-          type: string
-          format: url
-        email:
-          type: string
-          format: email
-        login:
-          type: string
-        password:
-          type: string
-          format: password
-    Error:
-      type: object
-      required:
-        - code
-        - message
-      properties:
-        code:
-          type: integer
-        message:
-          type: string
-    ClusterConfig:
-      required:
-        - Properties
-      type: object
-      properties:
-        Classification:
-          type: string
-          example: test
-        Properties:
-          type: object
-          additionalProperties:
-            type: object
-        Configurations:
-          type: array
-          items:
-            $ref: '#/components/schemas/ClusterConfig'
\ No newline at end of file
diff --git 
a/services/self-service/src/main/resources/webapp/src/assets/endpoint-api.json 
b/services/self-service/src/main/resources/webapp/src/assets/endpoint-api.json
new file mode 100644
index 0000000..73d6eb5
--- /dev/null
+++ 
b/services/self-service/src/main/resources/webapp/src/assets/endpoint-api.json
@@ -0,0 +1,980 @@
+{
+  "openapi": "3.0.0",
+  "servers": [
+  {
+    "description": "SwaggerHub API Auto Mocking",
+    "url": "https://virtserver.swaggerhub.com/bhliva/DLabEndpointAPI/0.0.1";
+  }
+  ],
+  "info": {
+    "description": "DLab cloud endpoint API",
+    "version": "0.0.1",
+    "title": "DLab cloud endpoint API",
+    "contact": {
+      "email": "[email protected]"
+    },
+    "license": {
+      "name": "Apache 2.0",
+      "url": "http://www.apache.org/licenses/LICENSE-2.0.html";
+    }
+  },
+  "tags": [
+  {
+    "name": "notebooks",
+    "description": "API connected with notebook actions"
+  },
+  {
+    "name": "templates",
+    "description": "API that describes available templates"
+  },
+  {
+    "name": "projects",
+    "description": "API for managing projects"
+  }
+  ],
+  "paths": {
+    "/notebook": {
+      "post": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Creates new notebook",
+        "operationId": "createNotebook",
+        "requestBody": {
+          "description": "Notebook object",
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/CreateNotebookDTO"
+              }
+            }
+          }
+        },
+        "responses": {
+          "202": {
+            "description": "Request for notebook creation was accepted",
+            "headers": {
+              "Location": {
+                "description": "URI for checking notebook status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "bad input parameter",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{project}/{name}/status": {
+      "get": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Get notebook status",
+        "operationId": "getStatus",
+        "parameters": [
+        {
+          "name": "project",
+          "in": "path",
+          "description": "Project associated with the notebook",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        },
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Notebook name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "200": {
+            "description": "Actual notebook status",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Status"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{project}/{name}/start": {
+      "put": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Start stopped notebook instance",
+        "operationId": "startNotebook",
+        "parameters": [
+        {
+          "name": "project",
+          "in": "path",
+          "description": "Project associated with the notebook",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        },
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Notebook name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Request for starting notebook was accepted",
+            "headers": {
+              "Location": {
+                "description": "URI for checking notebook status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "bad input parameter",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "There is no instance stopped instance with 
provided name",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{project}/{name}/stop": {
+      "put": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Stop stopped notebook instance",
+        "operationId": "stopNotebook",
+        "parameters": [
+        {
+          "name": "project",
+          "in": "path",
+          "description": "Project associated with the notebook",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        },
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Notebook name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Request for stopping notebook was accepted",
+            "headers": {
+              "Location": {
+                "description": "URI for checking notebook status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "bad input parameter",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "There is no instance started instance with 
provided name",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{project}/{name}": {
+      "delete": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Terminates notebook",
+        "operationId": "removeNotebook",
+        "parameters": [
+        {
+          "name": "project",
+          "in": "path",
+          "description": "Project associated with the notebook",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        },
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Notebook name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Request for notebook deletion was accepted",
+            "headers": {
+              "Location": {
+                "description": "URI for checking notebook status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Notebook with passed name not found",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{project}/{name}/lib": {
+      "parameters": [
+      {
+        "name": "project",
+        "in": "path",
+        "description": "Project associated with the notebook",
+        "required": true,
+        "schema": {
+          "type": "string"
+        }
+      },
+      {
+        "name": "name",
+        "in": "path",
+        "description": "Notebook name",
+        "required": true,
+        "schema": {
+          "type": "string"
+        }
+      }
+      ],
+      "get": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Get installed libraries for notebook",
+        "operationId": "getIntalledLibs",
+        "responses": {
+          "200": {
+            "description": "List of installed libraries",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/LibList"
+                }
+              }
+            }
+          }
+        }
+      },
+      "post": {
+        "tags": [
+          "notebooks"
+        ],
+        "summary": "Install new libs on notebook",
+        "operationId": "installLibs",
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/LibList"
+              }
+            }
+          }
+        },
+        "responses": {
+          "202": {
+            "description": "Lib installation in progress",
+            "headers": {
+              "Location": {
+                "description": "URI for getting status of library 
installation",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notebook/{type}/lib": {
+      "get": {
+        "summary": "Get available libraries",
+        "operationId": "getAvailableLibs",
+        "tags": [
+          "notebooks"
+        ],
+        "parameters": [
+        {
+          "name": "type",
+          "in": "path",
+          "description": "Project associated with the notebook",
+          "required": true,
+          "schema": {
+            "type": "string",
+            "enum": [
+              "jupyter",
+              "rstudio",
+              "tensor",
+              "zeppelin",
+              "jupyter_tensor",
+              "rstudio_tensor",
+              "deep_learning"
+            ]
+          }
+        }
+        ],
+        "responses": {
+          "200": {
+            "description": "Return information about available libaries",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/LibList"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/template/{type}": {
+      "get": {
+        "tags": [
+          "templates"
+        ],
+        "summary": "Get available templates",
+        "operationId": "getTemplates",
+        "parameters": [
+        {
+          "name": "type",
+          "in": "path",
+          "description": "Template type",
+          "required": true,
+          "schema": {
+            "type": "string",
+            "enum": [
+              "exploratory",
+              "computational"
+            ]
+          }
+        }
+        ],
+        "responses": {
+          "200": {
+            "description": "Return information about available templates",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/TemplateList"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/project": {
+      "post": {
+        "tags": [
+          "projects"
+        ],
+        "summary": "Creates new project",
+        "operationId": "createProject",
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/CreateProjectDTO"
+              }
+            }
+          }
+        },
+        "responses": {
+          "202": {
+            "description": "Project creation in progress",
+            "headers": {
+              "Location": {
+                "description": "URI of status project resource",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/project/{name}/status": {
+      "get": {
+        "tags": [
+          "projects"
+        ],
+        "summary": "Get project status",
+        "operationId": "getProjectStatus",
+        "parameters": [
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Project name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "200": {
+            "description": "Actual project status",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Status"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/project/{name}": {
+      "delete": {
+        "summary": "Remove existing project",
+        "operationId": "removeProject",
+        "tags": [
+          "projects"
+        ],
+        "parameters": [
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Project name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Project remove in progress",
+            "headers": {
+              "Location": {
+                "description": "URI for checking resource status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Project with passed name not found",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/project/{name}/start": {
+      "put": {
+        "summary": "Start existing project",
+        "operationId": "startProject",
+        "tags": [
+          "projects"
+        ],
+        "parameters": [
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Project name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Start existing project",
+            "headers": {
+              "Location": {
+                "description": "URI for checking resource status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Project with passed name not found",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/project/{name}/stop": {
+      "put": {
+        "summary": "Stop existing project",
+        "operationId": "stopProject",
+        "tags": [
+          "projects"
+        ],
+        "parameters": [
+        {
+          "name": "name",
+          "in": "path",
+          "description": "Project name",
+          "required": true,
+          "schema": {
+            "type": "string"
+          }
+        }
+        ],
+        "responses": {
+          "202": {
+            "description": "Stop existing project",
+            "headers": {
+              "Location": {
+                "description": "URI for checking resource status",
+                "required": true,
+                "style": "simple",
+                "schema": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Project with passed name not found",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  },
+  "components": {
+    "schemas": {
+      "Status": {
+        "type": "object",
+        "required": [
+          "status"
+        ],
+        "properties": {
+          "status": {
+            "type": "string",
+            "enum": [
+              "running",
+              "creating",
+              "configuring",
+              "failed",
+              "starting",
+              "stopping",
+              "stopped",
+              "installing"
+            ]
+          },
+          "error_message": {
+            "type": "string",
+            "description": "in case of error should be filled"
+          }
+        }
+      },
+      "LibList": {
+        "type": "array",
+        "items": {
+          "$ref": "#/components/schemas/Library"
+        }
+      },
+      "LibraryGroup": {
+        "type": "object",
+        "properties": {
+          "name": {
+            "type": "string",
+            "description": "Group name"
+          },
+          "desription": {
+            "type": "string",
+            "description": "Group description"
+          }
+        }
+      },
+      "Library": {
+        "type": "object",
+        "properties": {
+          "group": {
+            "type": "string"
+          },
+          "name": {
+            "type": "string"
+          },
+          "version": {
+            "type": "string"
+          }
+        }
+      },
+      "CreateProjectDTO": {
+        "type": "object",
+        "properties": {
+          "project": {
+            "$ref": "#/components/schemas/ProjectDTO"
+          },
+          "cloudProperties": {
+            "$ref": "#/components/schemas/CloudConfig"
+          }
+        }
+      },
+      "ProjectDTO": {
+        "type": "object",
+        "properties": {
+          "useSharedImages": {
+            "type": "boolean"
+          },
+          "key": {
+            "type": "string",
+            "description": "Project public key"
+          },
+          "name": {
+            "type": "string"
+          }
+        }
+      },
+      "TemplateList": {
+        "type": "array",
+        "items": {
+          "$ref": "#/components/schemas/TemplateDTO"
+        }
+      },
+      "TemplateDTO": {
+        "type": "object",
+        "properties": {
+          "name": {
+            "type": "string"
+          },
+          "description": {
+            "type": "string"
+          },
+          "version": {
+            "type": "string"
+          },
+          "vendor": {
+            "type": "string"
+          },
+          "shapes": {
+            "$ref": "#/components/schemas/ShapeList"
+          }
+        }
+      },
+      "ShapeList": {
+        "type": "array",
+        "items": {
+          "$ref": "#/components/schemas/ShapeDTO"
+        }
+      },
+      "ShapeDTO": {
+        "type": "object",
+        "properties": {
+          "type": {
+            "type": "string"
+          },
+          "ram": {
+            "type": "string"
+          },
+          "cpu": {
+            "type": "string"
+          },
+          "description": {
+            "type": "string"
+          },
+          "purpose": {
+            "type": "string",
+            "enum": [
+              "For testing",
+              "Compute optimized",
+              "GPU optimized",
+              "Memory optimized"
+            ]
+          }
+        }
+      },
+      "CloudConfig": {
+        "type": "object",
+        "required": [
+          "os"
+        ],
+        "properties": {
+          "os": {
+            "type": "string",
+            "description": "Operation system"
+          },
+          "sbn": {
+            "type": "string",
+            "example": "dlab-sbn",
+            "description": "service base name"
+          },
+          "subnetId": {
+            "type": "string",
+            "description": "subnet id/name"
+          },
+          "vpcId": {
+            "type": "string",
+            "description": "vpc id/name"
+          },
+          "region": {
+            "type": "string"
+          },
+          "zone": {
+            "type": "string"
+          },
+          "securityGroupIds": {
+            "type": "string"
+          },
+          "confTagResourceId": {
+            "type": "string"
+          }
+        }
+      },
+      "CreateNotebookDTO": {
+        "type": "object",
+        "properties": {
+          "notebook": {
+            "$ref": "#/components/schemas/Notebook"
+          },
+          "cloudConfig": {
+            "$ref": "#/components/schemas/CloudConfig"
+          }
+        }
+      },
+      "Notebook": {
+        "type": "object",
+        "required": [
+          "type",
+          "notebook_name",
+          "git_creds",
+          "spark_config",
+          "project"
+        ],
+        "properties": {
+          "type": {
+            "type": "string",
+            "enum": [
+              "jupyter",
+              "rstudio",
+              "tensor",
+              "zeppelin",
+              "jupyter_tensor",
+              "rstudio_tensor",
+              "deep_learning"
+            ]
+          },
+          "notebook_name": {
+            "type": "string",
+            "example": "Jup"
+          },
+          "spark_config": {
+            "$ref": "#/components/schemas/ClusterConfig"
+          },
+          "git_creds": {
+            "$ref": "#/components/schemas/GitCredentials"
+          },
+          "project": {
+            "type": "string"
+          },
+          "tags": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/Tag"
+            }
+          }
+        }
+      },
+      "Tag": {
+        "type": "object",
+        "required": [
+          "name",
+          "value"
+        ],
+        "properties": {
+          "name": {
+            "type": "string"
+          },
+          "value": {
+            "type": "string"
+          }
+        }
+      },
+      "GitCredentials": {
+        "type": "array",
+        "items": {
+          "$ref": "#/components/schemas/GitCredential"
+        }
+      },
+      "GitCredential": {
+        "type": "object",
+        "required": [
+          "name",
+          "hostname",
+          "email",
+          "login",
+          "password"
+        ],
+        "properties": {
+          "name": {
+            "type": "string"
+          },
+          "hostname": {
+            "type": "string",
+            "format": "url"
+          },
+          "email": {
+            "type": "string",
+            "format": "email"
+          },
+          "login": {
+            "type": "string"
+          },
+          "password": {
+            "type": "string",
+            "format": "password"
+          }
+        }
+      },
+      "Error": {
+        "type": "object",
+        "required": [
+          "code",
+          "message"
+        ],
+        "properties": {
+          "code": {
+            "type": "integer"
+          },
+          "message": {
+            "type": "string"
+          }
+        }
+      },
+      "ClusterConfig": {
+        "required": [
+          "Properties"
+        ],
+        "type": "object",
+        "properties": {
+          "Classification": {
+            "type": "string",
+            "example": "test"
+          },
+          "Properties": {
+            "type": "object",
+            "additionalProperties": {
+              "type": "object"
+            }
+          },
+          "Configurations": {
+            "type": "array",
+            "items": {
+              "$ref": "#/components/schemas/ClusterConfig"
+            }
+          }
+        }
+      }
+    }
+  }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to