--- /dev/null
+# ========================LICENSE_START=================================
+# O-RAN-SC
+#
+# Copyright (C) 2019 AT&T Intellectual Property and Nokia
+#
+# 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.
+# ========================LICENSE_END===================================
+swagger: '2.0'
+info:
+ description: This is a draft API for RIC appmgr
+ version: 0.1.5
+ title: RIC appmgr
+ license:
+ name: Apache 2.0
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+host: hostname
+basePath: /ric/v1
+schemes:
+ - http
+paths:
+ /health/alive :
+ get :
+ summary : Health check of xApp Manager - Liveness probe
+ tags :
+ - health
+ operationId : getHealthAlive
+ responses :
+ '200' :
+ description : Status of xApp Manager is ok
+ /health/ready :
+ get :
+ summary : Readiness check of xApp Manager - Readiness probe
+ tags :
+ - health
+ operationId : getHealthReady
+ responses :
+ '200':
+ description : xApp Manager is ready for service
+ '503':
+ description: xApp Manager is not ready for service
+ /xapps:
+ post:
+ summary: Deploy a xapp
+ tags:
+ - xapp
+ operationId: deployXapp
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: xAppInfo
+ in: body
+ description: xApp information
+ schema:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ description: Name of the xApp.
+ example: xapp-dummy
+ configName:
+ type: string
+ description: Name of the xApp configmap. Overrides the value given in Helm chart value file.
+ example: xapp-dummy-configmap
+ namespace:
+ type: string
+ description: Name of the namespace to which xApp is deployed. Overrides the value given in Helm chart value file.
+ example: ricxapps
+ serviceName:
+ type: string
+ description: Name of the service xApp is providing. Overrides the value given in Helm chart value file.
+ example: xapp-dummy-service
+ imageRepo:
+ type: string
+ description: Name of the docker repository xApp is located. Overrides the value given in Helm chart value file.
+ example: xapprepo
+ hostname:
+ type: string
+ description: Hostname for the pod. Used by messaging library. Overrides the value given in Helm chart value file.
+ example: xapp-dummy
+ responses:
+ '201':
+ description: xApp successfully created
+ schema:
+ $ref: '#/definitions/Xapp'
+ '400':
+ description: Invalid input
+ '500':
+ description: Internal error
+ get:
+ summary: Returns the status of all xapps
+ tags:
+ - xapp
+ operationId: getAllXapps
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful query of xApps
+ schema:
+ $ref: '#/definitions/AllDeployedXapps'
+ '500':
+ description: Internal error
+ '/xapps/list':
+ get:
+ summary: Returns the list of all deployable xapps
+ tags:
+ - xapp
+ operationId: listAllXapps
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful list of deployable xApps
+ schema:
+ $ref: '#/definitions/AllDeployableXapps'
+ '500':
+ description: Internal error
+ '/xapps/{xAppName}':
+ get:
+ summary: Returns the status of a given xapp
+ tags:
+ - xapp
+ operationId: getXappByName
+ produces:
+ - application/json
+ parameters:
+ - name: xAppName
+ in: path
+ description: Name of xApp
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Xapp'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Xapp not found
+ '500':
+ description: Internal error
+ delete:
+ summary: Undeploy an existing xapp
+ tags:
+ - xapp
+ operationId: undeployXapp
+ parameters:
+ - name: xAppName
+ in: path
+ description: Xapp to be undeployed
+ required: true
+ type: string
+ responses:
+ '204':
+ description: Successful deletion of xApp
+ '400':
+ description: Invalid xApp name supplied
+ '500':
+ description: Internal error
+ '/xapps/{xAppName}/instances/{xAppInstanceName}':
+ get:
+ summary: Returns the status of a given xapp
+ tags:
+ - xapp
+ operationId: getXappInstanceByName
+ produces:
+ - application/json
+ parameters:
+ - name: xAppName
+ in: path
+ description: Name of xApp
+ required: true
+ type: string
+ - name: xAppInstanceName
+ in: path
+ description: Name of xApp instance to get information
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/XappInstance'
+ '400':
+ description: Invalid name supplied
+ '404':
+ description: Xapp not found
+ '500':
+ description: Internal error
+ /config:
+ post:
+ summary: Create xApp config
+ tags:
+ - xapp
+ operationId: createXappConfig
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: XAppConfig
+ in: body
+ description: xApp config
+ schema:
+ $ref: '#/definitions/XAppConfig'
+ responses:
+ '201':
+ description: xApp config successfully created
+ schema:
+ $ref: '#/definitions/XAppConfig'
+ '400':
+ description: Invalid input
+ '422':
+ description: Validation of configuration failed
+ '500':
+ description: Internal error
+ put:
+ summary: Modify xApp config
+ tags:
+ - xapp
+ operationId: ModifyXappConfig
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: XAppConfig
+ in: body
+ description: xApp config
+ schema:
+ $ref: '#/definitions/XAppConfig'
+ responses:
+ '200':
+ description: xApp config successfully modified
+ schema:
+ $ref: '#/definitions/XAppConfig'
+ '400':
+ description: Invalid input
+ '422':
+ description: Validation of configuration failed
+ '500':
+ description: Internal error
+ get:
+ summary: Returns the configuration of all xapps
+ tags:
+ - xapp
+ operationId: getAllXappConfig
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful query of xApp config
+ schema:
+ $ref: '#/definitions/AllXappConfig'
+ '500':
+ description: Internal error
+ delete:
+ summary: Delete xApp configuration
+ tags:
+ - xapp
+ operationId: deleteXappConfig
+ parameters:
+ - name: ConfigMetadata
+ in: body
+ description: xApp configuration information
+ schema:
+ $ref: '#/definitions/ConfigMetadata'
+ responses:
+ '204':
+ description: Successful deletion of xApp
+ '400':
+ description: Invalid parameters supplied
+ '500':
+ description: Internal error
+ /subscriptions:
+ post:
+ summary: Subscribe event
+ tags:
+ - xapp
+ - subscriptions
+ operationId: addSubscription
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: subscriptionRequest
+ in: body
+ description: New subscription
+ required: true
+ schema:
+ $ref: '#/definitions/subscriptionRequest'
+ responses:
+ '200':
+ description: Subscription successful
+ schema:
+ $ref: '#/definitions/subscriptionResponse'
+ '400':
+ description: Invalid input
+ get:
+ summary: Returns all subscriptions
+ tags:
+ - xapp
+ - subscriptions
+ operationId: getSubscriptions
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful query of subscriptions
+ schema:
+ $ref: '#/definitions/allSubscriptions'
+ '/subscriptions/{subscriptionId}':
+ get:
+ summary: Returns the information of subscription
+ tags:
+ - xapp
+ - subscriptions
+ operationId: getSubscriptionById
+ produces:
+ - application/json
+ parameters:
+ - name: subscriptionId
+ in: path
+ description: ID of subscription
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/subscription'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Subscription not found
+ put:
+ summary: Modify event subscription
+ tags:
+ - xapp
+ - subscriptions
+ operationId: modifySubscription
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: subscriptionId
+ in: path
+ description: ID of subscription
+ required: true
+ type: string
+ - in: body
+ name: subscriptionRequest
+ description: Modified subscription
+ required: true
+ schema:
+ $ref: '#/definitions/subscriptionRequest'
+ responses:
+ '200':
+ description: Subscription modification successful
+ schema:
+ $ref: '#/definitions/subscriptionResponse'
+ '400':
+ description: Invalid input
+ delete:
+ summary: Unsubscribe event
+ tags:
+ - xapp
+ - subscriptions
+ description: ''
+ operationId: deleteSubscription
+ parameters:
+ - name: subscriptionId
+ in: path
+ description: ID of subscription
+ required: true
+ type: string
+ responses:
+ '204':
+ description: Successful deletion of subscription
+ '400':
+ description: Invalid subscription supplied
+definitions:
+ AllDeployableXapps:
+ type: array
+ items:
+ type: string
+ example: "xapp-dummy"
+ AllDeployedXapps:
+ type: array
+ items:
+ $ref: '#/definitions/Xapp'
+ Xapp:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ example: xapp-dummy
+ status:
+ type: string
+ description: xapp status in the RIC
+ enum:
+ - unknown
+ - deployed
+ - deleted
+ - superseded
+ - failed
+ - deleting
+ version:
+ type: string
+ example: 1.2.3
+ instances:
+ type: array
+ items:
+ $ref: '#/definitions/XappInstance'
+ XappInstance:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ example: xapp-dummy-6cd577d9-4v255
+ status:
+ type: string
+ description: xapp instance status
+ enum:
+ - pending
+ - running
+ - succeeded
+ - failed
+ - unknown
+ - completed
+ - crashLoopBackOff
+ ip:
+ type: string
+ example: 192.168.0.1
+ port:
+ type: integer
+ example: 32300
+ txMessages:
+ type: array
+ items:
+ type: string
+ example: ControlIndication
+ rxMessages:
+ type: array
+ items:
+ type: string
+ example: LoadIndication
+ ConfigMetadata:
+ type: object
+ required:
+ - name
+ - configName
+ - namespace
+ properties:
+ name:
+ type: string
+ description: Name of the xApp
+ example: xapp-dummy
+ configName:
+ type: string
+ description: Name of the config map
+ example: xapp-dummy-config-map
+ namespace:
+ type: string
+ description: Name of the namespace
+ example: ricxapp
+ XAppConfig:
+ type: object
+ required:
+ - metadata
+ - descriptor
+ - config
+ properties:
+ metadata:
+ $ref: '#/definitions/ConfigMetadata'
+ descriptor:
+ type: object
+ description: Schema of configuration in JSON format
+ config:
+ type: object
+ description: Configuration in JSON format
+ AllXappConfig:
+ type: array
+ items:
+ $ref: '#/definitions/XAppConfig'
+ subscriptionRequest:
+ type: object
+ required:
+ - targetUrl
+ - eventType
+ - maxRetries
+ - retryTimer
+ properties:
+ targetUrl:
+ type: string
+ example: 'http://localhost:11111/apps/webhook/'
+ eventType:
+ type: string
+ description: Event which is subscribed
+ enum:
+ - created
+ - deleted
+ - all
+ maxRetries:
+ type: integer
+ description: Maximum number of retries
+ example: 11
+ retryTimer:
+ type: integer
+ description: Time in seconds to wait before next retry
+ example: 22
+ subscriptionResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+ version:
+ type: integer
+ example: 2
+ eventType:
+ type: string
+ description: Event which is subscribed
+ enum:
+ - created
+ - deleted
+ - updated
+ - all
+ allSubscriptions:
+ type: array
+ items:
+ $ref: '#/definitions/subscription'
+ subscription:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+ targetUrl:
+ type: string
+ example: 'http://localhost:11111/apps/webhook/'
+ eventType:
+ type: string
+ description: Event which is subscribed
+ enum:
+ - created
+ - deleted
+ - updated
+ - all
+ maxRetries:
+ type: integer
+ description: Maximum number of retries
+ example: 11
+ retryTimer:
+ type: integer
+ description: Time in seconds to wait before next retry
+ example: 22
+ subscriptionNotification:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+ version:
+ type: integer
+ example: 2
+ eventType:
+ type: string
+ description: Event to be notified
+ enum:
+ - created
+ - deleted
+ - updated
+ xApps:
+ $ref: '#/definitions/AllDeployedXapps'