blob: 9e8f0764dfaaaa64c45358d7e573b1d2141feec0 [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"
}
}
}
}
}