Add API yaml for ricdms 64/6964/1
authorsubhash kumar singh <subh.singh@samsung.com>
Thu, 28 Oct 2021 21:55:02 +0000 (03:25 +0530)
committersubhash kumar singh <subh.singh@samsung.com>
Thu, 28 Oct 2021 21:55:02 +0000 (03:25 +0530)
Add API yaml for ricdms.

Issue-ID: RIC-714
Signed-off-by: subhash kumar singh <subh.singh@samsung.com>
Change-Id: Ie0dd330a147c0b06d71ae0d6c1a292093d8cc640

api/ric-dms-api.yaml [new file with mode: 0644]

diff --git a/api/ric-dms-api.yaml b/api/ric-dms-api.yaml
new file mode 100644 (file)
index 0000000..3f67705
--- /dev/null
@@ -0,0 +1,503 @@
+# ==================================================================================
+#   Copyright (c) 2021 Samsung.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#   This source code is part of the near-RT RIC (RAN Intelligent Controller)
+#   platform project (RICP).
+# ==================================================================================
+
+openapi: 3.0.1
+info:
+  title: RIC DMS API
+  description: APIs for RIC-DMS
+  version: "1.0"
+servers:
+- url: /api/v1
+tags:
+- name: onboard
+  description: onboard xApps
+- name: health
+  description: health check
+- name: charts
+  description: Managing helm charts
+- name: deploy
+  description: Managing deployment
+paths:
+  /charts:
+    get:
+      tags:
+      - charts
+      summary: Returns the list of xApp helm charts that have been onboarded
+      operationId: get_charts_list
+      responses:
+        200:
+          description: Get helm chart list
+          content:
+            application/json:
+              schema:
+                type: object
+        500:
+          description: Get helm chart list failed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /charts/xApp/{xApp_name}:
+    get:
+      tags:
+      - charts
+      summary: Returns the helm chart for the specified xApp
+      operationId: get_chart
+      parameters:
+      - name: xApp_name
+        in: path
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Get helm chart
+          content:
+            application/json:
+              schema:
+                type: object
+        500:
+          description: Get helm chart failed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /charts/xApp/{xApp_name}/ver/{version}:
+    get:
+      tags:
+      - charts
+      summary: get the helm chart for the specified xApp and version
+      operationId: get_charts_fetcher
+      parameters:
+      - name: xApp_name
+        in: path
+        required: true
+        schema:
+          type: string
+      - name: version
+        in: path
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Get helm chart package OK
+          content:
+            application/json:
+              schema:
+                type: object
+        500:
+          description: Get helm chart package failed
+          content:
+            application/gzip:
+              schema:
+                $ref: '#/components/schemas/error_message'
+    delete:
+      tags:
+      - charts
+      summary: Delete helm chart for the specified xApp and version
+      operationId: delete_chart
+      parameters:
+      - name: xApp_name
+        in: path
+        required: true
+        schema:
+          type: string
+      - name: version
+        in: path
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Deleted specified helm chart
+          content:
+            application/json:
+              schema:
+                type: object
+        500:
+          description: Delete helm chart failed
+          content:
+            application/gzip:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /charts/xApp/download/{xApp_name}/ver/{version}:
+    get:
+      tags:
+      - charts
+      summary: Download helm chart
+      description: Download helm chart.
+      operationId: download_helm_chart
+      parameters:
+      - name: xApp_name
+        in: path
+        required: true
+        schema:
+          type: string
+      - name: version
+        in: path
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Download helm chart OK
+          content:
+            application/zip:
+              schema:
+                type: string
+                format: binary
+        500:
+          description: Get helm chart values.yaml failed
+          content:
+            text/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /charts/xApp/{xApp_name}/ver/{version}/values.yaml:
+    get:
+      tags:
+      - charts
+      summary: Returns the helm values
+      description: yaml file of the specified xApp and version.
+      operationId: get_values_yaml_fetcher
+      parameters:
+      - name: xApp_name
+        in: path
+        required: true
+        schema:
+          type: string
+      - name: version
+        in: path
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Get helm chart values.yaml OK
+          content:
+            application/json:
+              schema:
+                type: object
+        500:
+          description: Get helm chart values.yaml failed
+          content:
+            text/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /health:
+    get:
+      tags:
+      - health
+      summary: Returns the health condition of ric dms
+      operationId: get_health_check
+      responses:
+        200:
+          description: Health check OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/status'
+        500:
+          description: ric-dms is not ready
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /healthcheck/xApp/{xApp_name}/namespace/{namespace}:
+    get:
+      tags:
+      - health
+      summary: Return status of xApp deployment
+      parameters:
+        - name: xApp_name
+          in: path
+          required: true
+          schema:
+            type: string
+        - name: namespace
+          in: path
+          required: true
+          schema:
+            type: string
+      responses:
+        200:
+          description: Health check OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/status'
+        500:
+          description: xApp onboarder is not ready
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+  /onboarder:
+    post:
+      tags:
+      - onboard
+      summary: Onboard xApp using the xApp descriptor and schema or URL of descriptor and schema.
+      operationId: post_onboardx_apps
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/descriptor'
+        required: true
+      responses:
+        201:
+          description: xApp onboard successfully.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/status'
+        400:
+          description: xApp descriptor format error
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+        500:
+          description: xApp onboarder is not ready
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+      x-codegen-request-body-name: payload
+    delete:
+      tags:
+      - onboard
+      summary: offload xApp using the xApp name and version
+      operationId: delete_onboardx_apps
+      requestBody:
+        content:
+          application/json:
+            schema:
+              type: object
+              required:
+                - appname
+              properties:
+                appname:
+                  type: string
+                version:
+                  type: string
+      responses:
+        201:
+          description: xApp onboard successfully.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/status'
+        400:
+          description: xApp descriptor format error
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+        500:
+          description: xApp onboarder is not ready
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+      x-codegen-request-body-name: payload
+
+  /deploy:
+    post:
+      tags:
+      - deploy
+      summary: deploy xApp
+      requestBody:
+        description: Input for the xApp deployment
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/deploymentDesc'
+      responses:
+        201:
+          description: successful deployment of xApp
+          content:
+            application/json:
+              schema:
+                type: object
+        501:
+          description: deployment failed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+    put:
+      tags:
+      - deploy
+      summary: update xApp
+      requestBody:
+        description: Input for the xApp deploy
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/updateDeploymentDesc'
+
+      responses:
+        201:
+          description: successful updated xApp
+          content:
+            application/json:
+              schema:
+                type: object
+        501:
+          description: un-deployment failed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+    delete:
+      tags:
+      - deploy
+      summary: Undeploy xApp
+      requestBody:
+        description: Input for the xApp deploy
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/deleteDeploymentDesc'
+      responses:
+        201:
+          description: successful un-deploy xApp
+          content:
+            application/json:
+              schema:
+                type: object
+        501:
+          description: un-deployment failed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error_message'
+
+
+
+components:
+  schemas:
+    name:
+      type: object
+      properties:
+        property:
+          type: integer
+    descriptor:
+      type: object
+      properties:
+        config:
+          type: string
+          description: represents content of config file for xApp onboarding.
+        schema:
+          type: string
+          description: represents conent of schema file for xApp onboarding.
+        config-file_url:
+          type: string
+          description: specify url of config-file.
+        schema-file_url:
+          type: string
+          description: specify url of schema-file.
+
+    deploymentDesc:
+      required:
+      - namespace
+      type: object
+      properties:
+        xAppname:
+          type: string
+        version:
+           type: string
+        namespace:
+          type: string
+          description: namespace to deploy xApp
+        overridefile:
+          type: string
+          description: override file
+
+    updateDeploymentDesc:
+      required:
+      - namespace
+      type: object
+      properties:
+        xAppname:
+          type: string
+        oldVersion:
+          type: string
+        newVersion:
+          type: string
+        namespace:
+          type: string
+          description: namespace to deploy xApp
+        operation:
+          type: string
+          enum:
+          - rollback
+          - upgrade
+
+    deleteDeploymentDesc:
+      required:
+      - xAppname
+      - version
+      type: object
+      properties:
+        xAppname:
+          type: string
+        version:
+          type: string
+        namespace:
+          type: string
+          description: namespace to deploy xApp
+
+    error_message:
+      required:
+      - error_message
+      - error_source
+      - status
+      type: object
+      properties:
+        error_source:
+          type: string
+          description: source of the error
+        error_message:
+          type: string
+          description: source of the error
+        status:
+          type: string
+          description: http response message
+    status:
+      required:
+      - status
+      type: object
+      properties:
+        status:
+          type: string
+          description: status of the service
+