| # |
| #================================================================================== |
| # 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. |
| #================================================================================== |
| # |
| # |
| # Abstract: Routing Manager's RESTful API definition |
| # Date: 28 August 2019 |
| # |
| swagger: "2.0" |
| info: |
| title: Routing Manager |
| description: "This is the Swagger/OpenAPI 2.0 definition of Routing Manager's Northbound API." |
| version: "0.4.0" |
| license: |
| name: "Apache 2.0" |
| url: "http://www.apache.org/licenses/LICENSE-2.0.html" |
| host: "rtmgr" |
| basePath: "/ric/v1" |
| tags: |
| - name: "handle" |
| description: "Available handles" |
| # externalDocs: |
| # description: "Find out more" |
| # url: "http://127.0.0.1" |
| - name: "health" |
| description: "Health of the system" |
| schemes: |
| #- "https" |
| - "http" |
| paths: |
| /health: |
| get: |
| tags: |
| - "health" |
| summary: "Retrive the health of Routing Manager" |
| description: "By performing a GET method on the health resource, the API caller is able to retrieve the health of Routing Manager" |
| operationId: "get_health" |
| consumes: |
| - "application/json" |
| # - "application/yaml" |
| produces: |
| - "application/json" |
| # - "application/yaml" |
| responses: |
| 200: |
| description: "The health of the system" |
| schema: |
| "$ref": "#/definitions/health-status" |
| /handles: |
| get: |
| tags: |
| - "handle" |
| summary: "Placeholder for further usage" |
| description: "Placeholder for further usage." |
| operationId: "get_handles" |
| consumes: |
| - "application/json" |
| # - "application/yaml" |
| produces: |
| - "application/json" |
| # - "application/yaml" |
| responses: |
| 200: |
| description: "Dummy response" |
| /handles/xapp-handle: |
| post: |
| tags: |
| - "handle" |
| summary: "Provide callback" |
| description: "By performing a POST method on the xapp-handle resource, the API caller is able to perform a callback on Routing Manager." |
| operationId: "provide_xapp_handle" |
| consumes: |
| - "application/json" |
| # - "application/yaml" |
| produces: |
| - "application/json" |
| # - "application/yaml" |
| parameters: |
| - in: "body" |
| name: "xapp-callback-data" |
| description: "xApp related callback data" |
| required: true |
| schema: |
| $ref: "#/definitions/xapp-callback-data" |
| responses: |
| 400: |
| description: "Invalid data" |
| 201: |
| description: "Callback received" |
| /handles/xapp-subscription-handle: |
| post: |
| tags: |
| - "handle" |
| summary: "API for updating about new xapp subscription" |
| description: "By performing a POST method on the xapp-subscription-handle resource, the API caller is able to update the Routing manager about the creation of new subscription by an Xapp instance." |
| operationId: "provide_xapp_subscription_handle" |
| consumes: |
| - "application/json" |
| # - "application/yaml" |
| produces: |
| - "application/json" |
| # - "application/yaml" |
| parameters: |
| - in: "body" |
| name: "xapp-subscription-data" |
| description: "xApp related subscription data" |
| required: true |
| schema: |
| $ref: "#/definitions/xapp-subscription-data" |
| responses: |
| 400: |
| description: "Invalid data" |
| 201: |
| description: "Xapp Subscription data received" |
| delete: |
| tags: |
| - "handle" |
| summary: "API for deleting an xapp subscription" |
| description: "By performing the delete operation on xapp-subscription-handle resource, the API caller will be able to update routing manager about the deletion of an xapp's subscription" |
| operationId: "delete_xapp_subscription_handle" |
| consumes: |
| - "application/json" |
| parameters: |
| - in: "body" |
| name: "xapp-subscription-data" |
| description: "xApp related subscription data" |
| required: true |
| schema: |
| $ref: "#/definitions/xapp-subscription-data" |
| responses: |
| 204: |
| description: "Content not found" |
| 200: |
| description: "Xapp Subscription deleted" |
| /handles/xapp-subscription-handle/{subscription_id}: |
| put: |
| tags: |
| - "handle" |
| summary: "API for updating the subscriber xApp list" |
| description: "By performing a PUT method on a xapp-subscription-handle/{subscription_id} resource, the API caller is able to update the Routing manager about the list of subscriber xApps related to the subscription denoted by the {subsription_id}." |
| operationId: "update_xapp_subscription_handle" |
| consumes: |
| - "application/json" |
| # - "application/yaml" |
| produces: |
| - "application/json" |
| # - "application/yaml" |
| parameters: |
| - in: path |
| name: subscription_id |
| required: true |
| type: integer |
| format: "uint16" |
| description: "Subscription ID" |
| - in: body |
| name: xapp-list |
| description: "xApp list" |
| required: true |
| schema: |
| $ref: "#/definitions/xapp-list" |
| responses: |
| 400: |
| description: "Invalid data" |
| 201: |
| description: "Xapp list received" |
| |
| definitions: |
| health-status: |
| type: "object" |
| properties: |
| status: |
| type: string |
| enum: |
| - healthy |
| - unhealthy |
| xapp-callback-data: |
| type: "object" |
| properties: |
| id: |
| type: "string" |
| event: |
| type: "string" |
| version: |
| type: "integer" |
| format: "int64" |
| xApps: |
| type: "string" #This should be a JSON object, array of xapps |
| xapp-subscription-data: |
| type: "object" |
| required: |
| - "address" |
| - "port" |
| - "subscription_id" |
| properties: |
| address: |
| type: "string" #This is the xapp instance hostname or ip address |
| port: #xapp instance port address |
| type: "integer" |
| format: "uint16" |
| minimum: 0 |
| maximum: 65535 |
| subscription_id: #subscription sequence number |
| type: "integer" |
| format: "int32" |
| xapp-list: |
| type: "array" |
| items: |
| $ref: '#/definitions/xapp-element' |
| xapp-element: |
| type: "object" |
| required: |
| - "address" |
| - "port" |
| properties: |
| address: |
| type: "string" #This is the xapp instance hostname or ip address |
| port: #xapp instance port address |
| type: "integer" |
| format: "uint16" |
| minimum: 0 |
| maximum: 65535 |
| |
| externalDocs: |
| description: "Routing Manager" |
| url: "http://placeholder" |
| |
| |