blob: a15448f19156fc237e3d5945d40c89ed7307c059 [file] [log] [blame]
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'