+++ /dev/null
-{
- "swagger": "2.0",
- "info": {
- "description": "This is a draft API for RIC appmgr",
- "version": "0.1.7",
- "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/search": {
- "get": {
- "summary": "Returns the list of all deployable xapps",
- "tags": [
- "xapp"
- ],
- "operationId": "listAllDeployableXapps",
- "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 config"
- },
- "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": {
- "201": {
- "description": "Subscription successfully created",
- "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"
- }
- }
- }
- }
-}