| #================================================================================== |
| # Copyright (c) 2019 AT&T Intellectual Property. |
| # Copyright (c) 2019 Nokia |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| #================================================================================== |
| swagger: '2.0' |
| info: |
| description: This is a draft API for RIC appmgr |
| version: 0.3.3 |
| 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: XappDescriptor |
| in: body |
| description: xApp deployment info |
| schema: |
| $ref: '#/definitions/XappDescriptor' |
| 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: |
| 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/ConfigValidationErrors' |
| '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 |
| /config/{element}: |
| get: |
| summary: Returns the given element of the configuration |
| tags: |
| - xapp |
| operationId: GetConfigElement |
| produces: |
| - application/json |
| parameters: |
| - name: element |
| in: path |
| description: Name of configuration element |
| required: true |
| type: string |
| responses: |
| '200': |
| description: successful query of config elements |
| schema: |
| $ref: '#/definitions/AllXappConfig' |
| '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 |
| /register: |
| post: |
| summary: Register a new xApp |
| tags: |
| - xapp |
| - registration |
| operationId: registerXapp |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| parameters: |
| - name: registerRequest |
| in: body |
| description: New xApp registration |
| required: true |
| schema: |
| $ref: '#/definitions/registerRequest' |
| responses: |
| '201': |
| description: Registration successful |
| '400': |
| description: Invalid input |
| /deregister: |
| post: |
| summary: Deregister an existing xApp |
| tags: |
| - xapp |
| - registration |
| operationId: deregisterXapp |
| consumes: |
| - application/json |
| parameters: |
| - name: deregisterRequest |
| in: body |
| description: Xapp to be unregistered |
| required: true |
| schema: |
| $ref: '#/definitions/deregisterRequest' |
| responses: |
| '204': |
| description: Successful deregistration of xApp |
| '400': |
| description: Invalid xApp name supplied |
| '500': |
| description: Internal error |
| definitions: |
| AllDeployableXapps: |
| type: array |
| items: |
| type: string |
| AllDeployedXapps: |
| type: array |
| items: |
| $ref: '#/definitions/Xapp' |
| Xapp: |
| type: object |
| required: |
| - name |
| properties: |
| name: |
| type: string |
| status: |
| type: string |
| description: xapp status in the RIC |
| enum: |
| - unknown |
| - deployed |
| - deleted |
| - superseded |
| - failed |
| - deleting |
| version: |
| type: string |
| instances: |
| type: array |
| items: |
| $ref: '#/definitions/XappInstance' |
| XappInstance: |
| type: object |
| required: |
| - name |
| properties: |
| name: |
| type: string |
| status: |
| type: string |
| description: xapp instance status |
| enum: |
| - pending |
| - running |
| - succeeded |
| - failed |
| - unknown |
| - completed |
| - crashLoopBackOff |
| ip: |
| type: string |
| port: |
| type: integer |
| txMessages: |
| type: array |
| items: |
| type: string |
| rxMessages: |
| type: array |
| items: |
| type: string |
| policies: |
| type: array |
| items: |
| type: integer |
| XappDescriptor: |
| type: object |
| required: |
| - xappName |
| properties: |
| xappName: |
| type: string |
| description: Name of the xApp in helm chart |
| helmVersion: |
| type: string |
| description: The exact xapp helm chart version to install |
| releaseName: |
| type: string |
| description: Name of the xapp to be visible in Kubernetes |
| namespace: |
| type: string |
| description: Name of the namespace to which xApp is deployed. Overrides the value given in Helm chart value file. |
| overrideFile: |
| type: object |
| description: JSON string of override file for 'helm install' command |
| XappDescriptorList: |
| type: array |
| items: |
| $ref: '#/definitions/XappDescriptor' |
| ConfigMetadata: |
| type: object |
| required: |
| - xappName |
| - namespace |
| properties: |
| xappName: |
| type: string |
| description: Name of the xApp |
| namespace: |
| type: string |
| description: Name of the namespace |
| ConfigValidationError: |
| type: object |
| required: |
| - field |
| - error |
| properties: |
| field: |
| type: string |
| description: Name of the parameter |
| error: |
| type: string |
| description: Description of validation error |
| ConfigValidationErrors: |
| type: array |
| items: |
| $ref: '#/definitions/ConfigValidationError' |
| XAppConfig: |
| type: object |
| required: |
| - metadata |
| - config |
| properties: |
| metadata: |
| $ref: '#/definitions/ConfigMetadata' |
| config: |
| type: object |
| description: Configuration in JSON format |
| AllXappConfig: |
| type: array |
| items: |
| $ref: '#/definitions/XAppConfig' |
| EventType: |
| type: string |
| description: Event which is subscribed |
| enum: |
| - deployed |
| - undeployed |
| - created |
| - modified |
| - deleted |
| - restarted |
| - all |
| SubscriptionData: |
| type: object |
| required: |
| - targetUrl |
| - eventType |
| - maxRetries |
| - retryTimer |
| properties: |
| targetUrl: |
| type: string |
| example: 'http://localhost:11111/apps/webhook/' |
| eventType: |
| $ref: '#/definitions/EventType' |
| maxRetries: |
| type: integer |
| description: Maximum number of retries |
| retryTimer: |
| type: integer |
| description: Time in seconds to wait before next retry |
| subscriptionRequest: |
| type: object |
| required: |
| - data |
| properties: |
| data: |
| $ref: '#/definitions/SubscriptionData' |
| subscriptionResponse: |
| type: object |
| properties: |
| id: |
| type: string |
| version: |
| type: integer |
| eventType: |
| $ref: '#/definitions/EventType' |
| allSubscriptions: |
| type: array |
| items: |
| $ref: '#/definitions/subscription' |
| subscription: |
| type: object |
| properties: |
| id: |
| type: string |
| data: |
| $ref: '#/definitions/SubscriptionData' |
| subscriptionNotification: |
| type: object |
| properties: |
| id: |
| type: string |
| version: |
| type: integer |
| eventType: |
| $ref: '#/definitions/EventType' |
| xApps: |
| $ref: '#/definitions/AllDeployedXapps' |
| registerRequest: |
| type: object |
| required: |
| - appName |
| - appInstanceName |
| - httpEndpoint |
| - rmrEndpoint |
| properties: |
| appName: |
| type: string |
| appVersion: |
| type: string |
| configPath: |
| type: string |
| appInstanceName: |
| type: string |
| httpEndpoint: |
| type: string |
| rmrEndpoint: |
| type: string |
| config: |
| type: string |
| description: Configuration in JSON string format |
| deregisterRequest: |
| type: object |
| required: |
| - appName |
| - appInstanceName |
| properties: |
| appName: |
| type: string |
| appInstanceName: |
| type: string |