1 #==================================================================================
2 # Copyright (c) 2019 AT&T Intellectual Property.
3 # Copyright (c) 2019 Nokia
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #==================================================================================
19 # Abstract: Routing Manager's RESTful API definition
20 # Date: 28 August 2019
24 title: Routing Manager
25 description: "This is the Swagger/OpenAPI 2.0 definition of Routing Manager's Northbound API."
29 url: "http://www.apache.org/licenses/LICENSE-2.0.html"
34 description: "Available handles"
36 # description: "Find out more"
37 # url: "http://127.0.0.1"
39 description: "Health of the system"
41 description: "Debug Information"
50 summary: "Retrive the health of Routing Manager"
51 description: "By performing a GET method on the health resource, the API caller is able to retrieve the health of Routing Manager"
52 operationId: "get_health"
55 # - "application/yaml"
58 # - "application/yaml"
61 description: "The health of the system"
63 "$ref": "#/definitions/health-status"
68 summary: "Get Information for debugging"
69 description: "By performing a GET method, API caller is able to get the dump of routes tables, subcription list and E2T's"
70 operationId: "get_debuginfo"
77 description: "Debug Info from routing manager"
79 "$ref": "#/definitions/debuginfo"
81 description: "Error while fetching Debug data"
86 summary: "Placeholder for further usage"
87 description: "Placeholder for further usage."
88 operationId: "get_handles"
91 # - "application/yaml"
94 # - "application/yaml"
97 description: "Dummy response"
102 summary: "Provide callback"
103 description: "By performing a POST method on the xapp-handle resource, the API caller is able to perform a callback on Routing Manager."
104 operationId: "provide_xapp_handle"
107 # - "application/yaml"
110 # - "application/yaml"
113 name: "xapp-callback-data"
114 description: "xApp related callback data"
117 $ref: "#/definitions/xapp-callback-data"
120 description: "Invalid data"
122 description: "Callback received"
123 /handles/xapp-subscription-handle:
127 summary: "API for updating about new xapp subscription"
128 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."
129 operationId: "provide_xapp_subscription_handle"
132 # - "application/yaml"
135 # - "application/yaml"
138 name: "xapp-subscription-data"
139 description: "xApp related subscription data"
142 $ref: "#/definitions/xapp-subscription-data"
145 description: "Invalid data"
147 description: "Xapp Subscription data received"
151 summary: "API for deleting an xapp subscription"
152 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"
153 operationId: "delete_xapp_subscription_handle"
158 name: "xapp-subscription-data"
159 description: "xApp related subscription data"
162 $ref: "#/definitions/xapp-subscription-data"
165 description: "Content not found"
167 description: "Xapp Subscription deleted"
168 /handles/xapp-subscription-handle/{subscription_id}:
172 summary: "API for updating the subscriber xApp list"
173 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}."
174 operationId: "update_xapp_subscription_handle"
177 # - "application/yaml"
180 # - "application/yaml"
183 name: subscription_id
187 description: "Subscription ID"
190 description: "xApp list"
193 $ref: "#/definitions/xapp-list"
196 description: "Invalid data"
198 description: "Xapp list received"
203 summary: "API for establishing platform routes when a new e2t instance gets added to platform"
204 description: "E2T updates its FQDN to E2M during its initialisation, hence after E2M informs routing manager about new E2T instances FQDN. At this point Routing Mgr would establish platform routes"
205 operationId: "create_new_e2t_handle"
208 # - "application/yaml"
211 # - "application/yaml"
215 description: "FQDN of the newly joined E2T instance"
218 $ref: "#/definitions/e2t-data"
221 description: "Invalid data"
223 description: "new e2t instance is considered and platform routes are established"
227 summary: "API for clearing routes specific to a particular e2T instance"
228 description: "E2M would monitor E2T instances using its keep alive based mechanism during this time if an E2T instance is detected to be dead, E2M would distribute already associated ran's to other available/healthy E2T instances. Here E2M would share E2T instance address to be removed OR which is unhealthy and list of RAN instances to be dissociated and an association list which contains E2T FQDN and associated RAN names"
229 operationId: "delete_e2t_handle"
232 # - "application/yaml"
235 # - "application/yaml"
239 description: "FQDN of the newly joined E2T instance"
242 $ref: "#/definitions/e2t-delete-data"
245 description: "Invalid data"
247 description: "new e2t instance is considered and platform routes are established"
248 /handles/associate-ran-to-e2t:
252 summary: "API for associating a ran to e2t instance"
253 description: "By performing a POST method on rane2tmapping, the API caller is able to update the Routing manager about the ran to e2t mapping which would be finally used to distribute routes to corresponding xApp and E2T instance"
254 operationId: "associate_ran_to_e2t_handle"
257 # - "application/yaml"
260 # - "application/yaml"
264 description: "ran to e2t mapping"
267 $ref: "#/definitions/ran-e2t-map"
270 description: "Invalid data"
272 description: "e2t ran mapping recieved, platform routes"
273 /handles/dissociate-ran:
277 summary: "API to dissociate ran from e2t"
278 description: "By performing a POST method on rane2tmapping, routing manager will dissociate ran name from e2t instance by updating or clearing routes"
279 operationId: "dissociate_ran"
282 # - "application/yaml"
285 # - "application/yaml"
288 name: dissociate-list
289 description: "list of RAN to dissociate"
292 $ref: "#/definitions/ran-e2t-map"
295 description: "Invalid data"
297 description: "ran instances disociated"
298 /handles/addrmrroute:
302 summary: "API to add RMR routes"
303 description: "By performing a POST method to add RMR routes"
304 operationId: "add_rmr_route"
312 description: "list of routes to add"
315 $ref: "#/definitions/routelist"
318 description: "Invalid data"
320 description: "rmr routes added"
322 /handles/delrmrroute:
326 summary: "API to delete RMR routes"
327 description: "By performing a DELETE method to add RMR routes"
328 operationId: "del_rmr_route"
336 description: "list of routes to delete"
339 $ref: "#/definitions/routelist"
342 description: "Invalid data"
344 description: "rmr routes added"
365 type: "string" #This should be a JSON object, array of xapps
366 xapp-subscription-data:
374 type: "string" #This is the xapp instance hostname or ip address
375 port: #xapp instance port address
380 subscription_id: #subscription sequence number
386 $ref: '#/definitions/xapp-element'
394 type: "string" #This is the xapp instance hostname or ip address
395 port: #xapp instance port address
403 $ref: '#/definitions/ran-e2t-element'
410 type: "string" #This is the ideally E2T FQDN or IP:PORT
411 ranNamelist: #list of RAN Names
412 $ref: '#/definitions/ranNamelist'
416 type: "string" #This could be FQDN or this needs to be an object?
423 type: "string" #This is FQDN or IP of E2T instance
425 $ref: '#/definitions/ranNamelist'
432 type: "string" #This E2T instances FQDN or
433 ranNamelistTobeDissociated: #xapp instance port address
434 $ref: '#/definitions/ranNamelist'
436 $ref: "#/definitions/ran-e2t-map"
482 $ref: '#/definitions/add-rmr-route'
485 description: "Routing Manager"
486 url: "http://placeholder"