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'