| { |
| "swagger": "2.0", |
| "info": { |
| "description": "This is a draft API for RIC appmgr", |
| "version": "0.0.11", |
| "title": "RIC appmgr", |
| "license": { |
| "name": "Apache 2.0", |
| "url": "http://www.apache.org/licenses/LICENSE-2.0.html" |
| } |
| }, |
| "host": "hostname", |
| "basePath": "/ric/v1", |
| "schemes": [ |
| "https", |
| "http" |
| ], |
| "paths": { |
| "/health": { |
| "get": { |
| "summary": "Health check of xApp Manager", |
| "operationId": "getHealth", |
| "responses": { |
| "200": { |
| "description": "Status of xApp Manager is ok" |
| } |
| } |
| } |
| }, |
| "/xapps": { |
| "post": { |
| "summary": "Deploy a xapp", |
| "operationId": "deployXapp", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "xAppInfo", |
| "in": "body", |
| "description": "xApp information", |
| "schema": { |
| "type": "object", |
| "required": [ |
| "xAppName" |
| ], |
| "properties": { |
| "xAppName": { |
| "type":"string", |
| "description":"Name of the xApp", |
| "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", |
| "operationId": "getAllXapps", |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "successful query of xApps", |
| "schema": { |
| "$ref": "#/definitions/AllXapps" |
| } |
| }, |
| "500": { |
| "description": "Internal error" |
| } |
| } |
| } |
| }, |
| "/xapps/{xAppName}": { |
| "get": { |
| "summary": "Returns the status of a given 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", |
| "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", |
| "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" |
| } |
| } |
| } |
| }, |
| "/subscriptions": { |
| "post": { |
| "summary": "Subscribe event", |
| "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", |
| "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", |
| "operationId": "getSubscriptionById", |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "subscriptionId", |
| "in": "path", |
| "description": "ID of subscription", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation", |
| "schema": { |
| "$ref": "#/definitions/subscription" |
| } |
| }, |
| "400": { |
| "description": "Invalid ID supplied" |
| }, |
| "404": { |
| "description": "Subscription not found" |
| } |
| } |
| }, |
| "put": { |
| "summary": "Modify event subscription", |
| "operationId": "modifySubscription", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "subscriptionId", |
| "in": "path", |
| "description": "ID of subscription", |
| "required": true, |
| "type": "integer" |
| }, |
| { |
| "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", |
| "description": "", |
| "operationId": "deleteSubscription", |
| "parameters": [ |
| { |
| "name": "subscriptionId", |
| "in": "path", |
| "description": "ID of subscription", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "responses": { |
| "204": { |
| "description": "Successful deletion of subscription" |
| }, |
| "400": { |
| "description": "Invalid subscription supplied" |
| } |
| } |
| } |
| } |
| }, |
| "definitions": { |
| "AllXapps": { |
| "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" |
| } |
| } |
| } |
| }, |
| "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/AllXapps" |
| } |
| } |
| } |
| } |
| } |