--- /dev/null
+# ==================================================================================
+# Copyright (c) 2020 AT&T Intellectual Property.
+#
+# 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.
+# ==================================================================================
+openapi: 3.0.1
+info:
+ title: RIC xApp onboarder API
+ description: APIs to manage the xApp helm charts
+ version: "1.0"
+servers:
+- url: /api/v1
+tags:
+- name: onboard
+ description: onboard xApps
+- name: health
+ description: health check
+- name: charts
+ description: Managing helm charts
+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 OK
+ 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_chart_name}:
+ get:
+ tags:
+ - charts
+ summary: Returns the helm chart for the specified xApp
+ operationId: get_version_list
+ parameters:
+ - name: xapp_chart_name
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Get helm chart OK
+ content:
+ application/json:
+ schema:
+ type: object
+ 500:
+ description: Get helm chart failed
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_message'
+
+ /charts/xapp/{xapp_chart_name}/ver/{version}:
+ get:
+ tags:
+ - charts
+ summary: Returns the helm chart for the specified xApp and version
+ operationId: get_charts_fetcher
+ parameters:
+ - name: xapp_chart_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'
+
+ /charts/xapp/{xapp_chart_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_chart_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/x-yaml:
+ schema:
+ $ref: '#/components/schemas/error_message'
+
+ /health:
+ get:
+ tags:
+ - health
+ summary: Returns the health condition of the xApp onboarder
+ operationId: get_health_check
+ 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'
+
+ /onboard:
+ post:
+ tags:
+ - onboard
+ summary: Onboard xApp using the xApp descriptor and schema in the request body
+ 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
+
+ /onboard/download:
+ post:
+ tags:
+ - onboard
+ summary: Onboard xApp after downloading the xApp descriptor and schema from
+ the URLs
+ operationId: post_onboardx_apps_download
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/descriptor_remote'
+ 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
+
+components:
+ schemas:
+ descriptor:
+ required:
+ - config-file.json
+ type: object
+ properties:
+ config-file.json:
+ $ref: '#/components/schemas/config'
+ controls-schema.json:
+ type: object
+ properties: {}
+ description: Controls schema file body
+ config:
+ required:
+ - version
+ - name
+ - containers
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the xApp chart
+ version:
+ pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
+ type: string
+ description: Version of the xApp chart
+ containers:
+ type: object
+ properties: {}
+ description: list of containers that the xApp will run
+ controls:
+ type: object
+ properties: {}
+ description: internal configuration of the xApp
+ metrics:
+ type: object
+ properties: {}
+ description: metrics provided by the xApp
+ messaging:
+ type: object
+ properties: {}
+ description: communication ports for each containers
+ livenessProbe:
+ type: object
+ properties: {}
+ description: liveness probe
+ readinessProbe:
+ type: object
+ properties: {}
+ description: readiness probe
+ rmr:
+ type: object
+ properties: {}
+ description: rmr info
+ 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
+ descriptor_remote:
+ required:
+ - config-file.json_url
+ type: object
+ properties:
+ config-file.json_url:
+ type: string
+ description: URL to download the config-file.json file
+ controls-schema.json_url:
+ type: string
+ description: URL to download the controls schema.json file
+ responses:
+ MaskError:
+ description: When any error occurs on mask
+ content:
+ application/json:
+ schema:
+ type: object
+ ParseError:
+ description: When a mask can't be parsed
+ content:
+ application/json:
+ schema:
+ type: object