blob: 30c55506822f9229901a94fcb265f86bbfaa2d22 [file] [log] [blame]
Mohamed Abukarb175b942019-05-09 16:30:58 +03001swagger: '2.0'
2info:
3 description: This is a draft API for RIC appmgr
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +02004 version: 0.3.3
Mohamed Abukarb175b942019-05-09 16:30:58 +03005 title: RIC appmgr
6 license:
7 name: Apache 2.0
8 url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
9host: hostname
10basePath: /ric/v1
11schemes:
Mohamed Abukarb175b942019-05-09 16:30:58 +030012 - http
13paths:
Abukar Mohamed059775c2019-05-22 14:48:10 +000014 /health/alive :
15 get :
16 summary : Health check of xApp Manager - Liveness probe
17 tags :
Mohamed Abukarb175b942019-05-09 16:30:58 +030018 - health
Abukar Mohamed059775c2019-05-22 14:48:10 +000019 operationId : getHealthAlive
20 responses :
21 '200' :
22 description : Status of xApp Manager is ok
23 /health/ready :
24 get :
25 summary : Readiness check of xApp Manager - Readiness probe
26 tags :
27 - health
28 operationId : getHealthReady
29 responses :
Mohamed Abukarb175b942019-05-09 16:30:58 +030030 '200':
Abukar Mohamed059775c2019-05-22 14:48:10 +000031 description : xApp Manager is ready for service
32 '503':
33 description: xApp Manager is not ready for service
Mohamed Abukarb175b942019-05-09 16:30:58 +030034 /xapps:
35 post:
36 summary: Deploy a xapp
37 tags:
38 - xapp
39 operationId: deployXapp
40 consumes:
41 - application/json
42 produces:
43 - application/json
44 parameters:
Mohamed Abukar34e43832019-11-13 17:57:15 +020045 - name: XappDescriptor
Mohamed Abukarb175b942019-05-09 16:30:58 +030046 in: body
Mohamed Abukar34e43832019-11-13 17:57:15 +020047 description: xApp deployment info
Mohamed Abukarb175b942019-05-09 16:30:58 +030048 schema:
Mohamed Abukar34e43832019-11-13 17:57:15 +020049 $ref: '#/definitions/XappDescriptor'
Mohamed Abukarb175b942019-05-09 16:30:58 +030050 responses:
51 '201':
52 description: xApp successfully created
53 schema:
54 $ref: '#/definitions/Xapp'
55 '400':
56 description: Invalid input
57 '500':
58 description: Internal error
59 get:
60 summary: Returns the status of all xapps
61 tags:
62 - xapp
63 operationId: getAllXapps
64 produces:
65 - application/json
66 responses:
67 '200':
68 description: successful query of xApps
69 schema:
Mohamed Abukar91357512019-06-20 06:37:13 +030070 $ref: '#/definitions/AllDeployedXapps'
71 '500':
72 description: Internal error
Mohamed Abukar34e43832019-11-13 17:57:15 +020073 /xapps/list:
Mohamed Abukar91357512019-06-20 06:37:13 +030074 get:
75 summary: Returns the list of all deployable xapps
76 tags:
77 - xapp
Mohamed Abukar34e43832019-11-13 17:57:15 +020078 operationId: listAllXapps
Mohamed Abukar91357512019-06-20 06:37:13 +030079 produces:
80 - application/json
81 responses:
82 '200':
83 description: successful list of deployable xApps
84 schema:
85 $ref: '#/definitions/AllDeployableXapps'
Mohamed Abukarb175b942019-05-09 16:30:58 +030086 '500':
87 description: Internal error
Mohamed Abukar34e43832019-11-13 17:57:15 +020088 /xapps/{xAppName}:
Mohamed Abukarb175b942019-05-09 16:30:58 +030089 get:
90 summary: Returns the status of a given xapp
91 tags:
92 - xapp
93 operationId: getXappByName
94 produces:
95 - application/json
96 parameters:
97 - name: xAppName
98 in: path
99 description: Name of xApp
100 required: true
101 type: string
102 responses:
103 '200':
104 description: successful operation
105 schema:
106 $ref: '#/definitions/Xapp'
107 '400':
108 description: Invalid ID supplied
109 '404':
110 description: Xapp not found
111 '500':
112 description: Internal error
113 delete:
114 summary: Undeploy an existing xapp
115 tags:
116 - xapp
117 operationId: undeployXapp
118 parameters:
119 - name: xAppName
120 in: path
121 description: Xapp to be undeployed
122 required: true
123 type: string
124 responses:
125 '204':
126 description: Successful deletion of xApp
127 '400':
128 description: Invalid xApp name supplied
129 '500':
130 description: Internal error
Mohamed Abukar34e43832019-11-13 17:57:15 +0200131 /xapps/{xAppName}/instances/{xAppInstanceName}:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300132 get:
133 summary: Returns the status of a given xapp
134 tags:
135 - xapp
136 operationId: getXappInstanceByName
137 produces:
138 - application/json
139 parameters:
140 - name: xAppName
141 in: path
142 description: Name of xApp
143 required: true
144 type: string
145 - name: xAppInstanceName
146 in: path
147 description: Name of xApp instance to get information
148 required: true
149 type: string
150 responses:
151 '200':
152 description: successful operation
153 schema:
154 $ref: '#/definitions/XappInstance'
155 '400':
156 description: Invalid name supplied
157 '404':
158 description: Xapp not found
159 '500':
160 description: Internal error
161 /config:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300162 put:
163 summary: Modify xApp config
164 tags:
165 - xapp
166 operationId: ModifyXappConfig
167 consumes:
168 - application/json
169 produces:
170 - application/json
171 parameters:
Abukar Mohamed059775c2019-05-22 14:48:10 +0000172 - name: XAppConfig
Mohamed Abukarb175b942019-05-09 16:30:58 +0300173 in: body
174 description: xApp config
175 schema:
Abukar Mohamed059775c2019-05-22 14:48:10 +0000176 $ref: '#/definitions/XAppConfig'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300177 responses:
178 '200':
179 description: xApp config successfully modified
180 schema:
Mohamed Abukar34e43832019-11-13 17:57:15 +0200181 $ref: '#/definitions/ConfigValidationErrors'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300182 '400':
183 description: Invalid input
184 '422':
185 description: Validation of configuration failed
186 '500':
187 description: Internal error
188 get:
189 summary: Returns the configuration of all xapps
190 tags:
191 - xapp
192 operationId: getAllXappConfig
193 produces:
194 - application/json
195 responses:
196 '200':
197 description: successful query of xApp config
198 schema:
199 $ref: '#/definitions/AllXappConfig'
200 '500':
201 description: Internal error
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200202 /config/{element}:
Mohamed Abukar34e43832019-11-13 17:57:15 +0200203 get:
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200204 summary: Returns the given element of the configuration
Mohamed Abukar34e43832019-11-13 17:57:15 +0200205 tags:
206 - xapp
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200207 operationId: GetConfigElement
Mohamed Abukar34e43832019-11-13 17:57:15 +0200208 produces:
209 - application/json
210 parameters:
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200211 - name: element
Mohamed Abukar34e43832019-11-13 17:57:15 +0200212 in: path
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200213 description: Name of configuration element
Mohamed Abukar34e43832019-11-13 17:57:15 +0200214 required: true
215 type: string
216 responses:
217 '200':
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200218 description: successful query of config elements
Mohamed Abukar34e43832019-11-13 17:57:15 +0200219 schema:
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200220 $ref: '#/definitions/AllXappConfig'
Mohamed Abukar34e43832019-11-13 17:57:15 +0200221 '500':
222 description: Internal error
Mohamed Abukarb175b942019-05-09 16:30:58 +0300223 /subscriptions:
224 post:
225 summary: Subscribe event
226 tags:
227 - xapp
228 - subscriptions
229 operationId: addSubscription
230 consumes:
231 - application/json
232 produces:
233 - application/json
234 parameters:
235 - name: subscriptionRequest
236 in: body
237 description: New subscription
238 required: true
239 schema:
240 $ref: '#/definitions/subscriptionRequest'
241 responses:
Mohamed Abukar7959da32019-07-05 16:21:18 +0300242 '201':
243 description: Subscription successfully created
Mohamed Abukarb175b942019-05-09 16:30:58 +0300244 schema:
245 $ref: '#/definitions/subscriptionResponse'
246 '400':
247 description: Invalid input
248 get:
249 summary: Returns all subscriptions
250 tags:
251 - xapp
252 - subscriptions
253 operationId: getSubscriptions
254 produces:
255 - application/json
256 responses:
257 '200':
258 description: successful query of subscriptions
259 schema:
260 $ref: '#/definitions/allSubscriptions'
Mohamed Abukar34e43832019-11-13 17:57:15 +0200261 /subscriptions/{subscriptionId}:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300262 get:
263 summary: Returns the information of subscription
264 tags:
265 - xapp
266 - subscriptions
267 operationId: getSubscriptionById
268 produces:
269 - application/json
270 parameters:
271 - name: subscriptionId
272 in: path
273 description: ID of subscription
274 required: true
Abukar Mohamed059775c2019-05-22 14:48:10 +0000275 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300276 responses:
277 '200':
278 description: successful operation
279 schema:
280 $ref: '#/definitions/subscription'
281 '400':
282 description: Invalid ID supplied
283 '404':
284 description: Subscription not found
285 put:
286 summary: Modify event subscription
287 tags:
288 - xapp
289 - subscriptions
290 operationId: modifySubscription
291 consumes:
292 - application/json
293 produces:
294 - application/json
295 parameters:
296 - name: subscriptionId
297 in: path
298 description: ID of subscription
299 required: true
Abukar Mohamed059775c2019-05-22 14:48:10 +0000300 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300301 - in: body
302 name: subscriptionRequest
303 description: Modified subscription
304 required: true
305 schema:
306 $ref: '#/definitions/subscriptionRequest'
307 responses:
308 '200':
309 description: Subscription modification successful
310 schema:
311 $ref: '#/definitions/subscriptionResponse'
312 '400':
313 description: Invalid input
314 delete:
315 summary: Unsubscribe event
316 tags:
317 - xapp
318 - subscriptions
319 description: ''
320 operationId: deleteSubscription
321 parameters:
322 - name: subscriptionId
323 in: path
324 description: ID of subscription
325 required: true
Abukar Mohamed059775c2019-05-22 14:48:10 +0000326 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300327 responses:
328 '204':
329 description: Successful deletion of subscription
330 '400':
331 description: Invalid subscription supplied
Mohamed Abukard684c872020-12-06 13:08:38 +0200332 /register:
333 post:
334 summary: Register a new xApp
335 tags:
336 - xapp
337 - registration
338 operationId: registerXapp
339 consumes:
340 - application/json
341 produces:
342 - application/json
343 parameters:
344 - name: registerRequest
345 in: body
346 description: New xApp registration
347 required: true
348 schema:
349 $ref: '#/definitions/registerRequest'
350 responses:
351 '201':
352 description: Registration successful
353 '400':
354 description: Invalid input
355 /register/{xAppName}:
356 delete:
357 summary: Deregister an existing xApp
358 tags:
359 - xapp
360 - registration
361 operationId: deregisterXapp
362 parameters:
363 - name: xAppName
364 in: path
365 description: Xapp to be unregistered
366 required: true
367 type: string
368 responses:
369 '204':
370 description: Successful deregistration of xApp
371 '400':
372 description: Invalid xApp name supplied
373 '500':
374 description: Internal error
Mohamed Abukarb175b942019-05-09 16:30:58 +0300375definitions:
Mohamed Abukar91357512019-06-20 06:37:13 +0300376 AllDeployableXapps:
377 type: array
378 items:
379 type: string
Mohamed Abukar91357512019-06-20 06:37:13 +0300380 AllDeployedXapps:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300381 type: array
382 items:
383 $ref: '#/definitions/Xapp'
384 Xapp:
385 type: object
386 required:
387 - name
388 properties:
389 name:
390 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300391 status:
392 type: string
393 description: xapp status in the RIC
394 enum:
395 - unknown
396 - deployed
397 - deleted
398 - superseded
399 - failed
400 - deleting
401 version:
402 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300403 instances:
404 type: array
405 items:
406 $ref: '#/definitions/XappInstance'
407 XappInstance:
408 type: object
409 required:
410 - name
411 properties:
412 name:
413 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300414 status:
415 type: string
416 description: xapp instance status
417 enum:
418 - pending
419 - running
420 - succeeded
421 - failed
422 - unknown
423 - completed
424 - crashLoopBackOff
425 ip:
426 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300427 port:
428 type: integer
Mohamed Abukarb175b942019-05-09 16:30:58 +0300429 txMessages:
430 type: array
431 items:
432 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300433 rxMessages:
434 type: array
435 items:
436 type: string
Mohamed Abukare71a5a52019-12-05 08:26:30 +0200437 policies:
438 type: array
439 items:
440 type: integer
Mohamed Abukar34e43832019-11-13 17:57:15 +0200441 XappDescriptor:
442 type: object
443 required:
444 - xappName
445 properties:
446 xappName:
447 type: string
448 description: Name of the xApp in helm chart
449 helmVersion:
450 type: string
451 description: The exact xapp helm chart version to install
452 releaseName:
453 type: string
454 description: Name of the xapp to be visible in Kubernetes
455 namespace:
456 type: string
457 description: Name of the namespace to which xApp is deployed. Overrides the value given in Helm chart value file.
458 overrideFile:
459 type: object
460 description: JSON string of override file for 'helm install' command
461 XappDescriptorList:
462 type: array
463 items:
464 $ref: '#/definitions/XappDescriptor'
Abukar Mohamed059775c2019-05-22 14:48:10 +0000465 ConfigMetadata:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300466 type: object
467 required:
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200468 - xappName
469 - namespace
Mohamed Abukarb175b942019-05-09 16:30:58 +0300470 properties:
Mohamed Abukaraca8f3c2020-01-14 11:10:16 +0200471 xappName:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300472 type: string
473 description: Name of the xApp
Mohamed Abukarb175b942019-05-09 16:30:58 +0300474 namespace:
475 type: string
476 description: Name of the namespace
Mohamed Abukar34e43832019-11-13 17:57:15 +0200477 ConfigValidationError:
478 type: object
479 required:
480 - field
481 - error
482 properties:
483 field:
484 type: string
485 description: Name of the parameter
486 error:
487 type: string
488 description: Description of validation error
489 ConfigValidationErrors:
490 type: array
491 items:
492 $ref: '#/definitions/ConfigValidationError'
Abukar Mohamed059775c2019-05-22 14:48:10 +0000493 XAppConfig:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300494 type: object
495 required:
Abukar Mohamed059775c2019-05-22 14:48:10 +0000496 - metadata
Abukar Mohamed059775c2019-05-22 14:48:10 +0000497 - config
Mohamed Abukarb175b942019-05-09 16:30:58 +0300498 properties:
Abukar Mohamed059775c2019-05-22 14:48:10 +0000499 metadata:
500 $ref: '#/definitions/ConfigMetadata'
Abukar Mohamed059775c2019-05-22 14:48:10 +0000501 config:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300502 type: object
503 description: Configuration in JSON format
504 AllXappConfig:
505 type: array
506 items:
Abukar Mohamed059775c2019-05-22 14:48:10 +0000507 $ref: '#/definitions/XAppConfig'
Mohamed Abukar34e43832019-11-13 17:57:15 +0200508 EventType:
509 type: string
510 description: Event which is subscribed
511 enum:
512 - deployed
513 - undeployed
514 - created
515 - modified
516 - deleted
517 - restarted
518 - all
519 SubscriptionData:
Mohamed Abukarb175b942019-05-09 16:30:58 +0300520 type: object
521 required:
522 - targetUrl
523 - eventType
524 - maxRetries
525 - retryTimer
526 properties:
527 targetUrl:
528 type: string
529 example: 'http://localhost:11111/apps/webhook/'
530 eventType:
Mohamed Abukar34e43832019-11-13 17:57:15 +0200531 $ref: '#/definitions/EventType'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300532 maxRetries:
533 type: integer
534 description: Maximum number of retries
Mohamed Abukarb175b942019-05-09 16:30:58 +0300535 retryTimer:
536 type: integer
537 description: Time in seconds to wait before next retry
Mohamed Abukar34e43832019-11-13 17:57:15 +0200538 subscriptionRequest:
539 type: object
540 required:
541 - data
542 properties:
543 data:
544 $ref: '#/definitions/SubscriptionData'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300545 subscriptionResponse:
546 type: object
547 properties:
548 id:
549 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300550 version:
551 type: integer
Mohamed Abukarb175b942019-05-09 16:30:58 +0300552 eventType:
Mohamed Abukar34e43832019-11-13 17:57:15 +0200553 $ref: '#/definitions/EventType'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300554 allSubscriptions:
555 type: array
556 items:
557 $ref: '#/definitions/subscription'
558 subscription:
559 type: object
560 properties:
561 id:
562 type: string
Mohamed Abukar34e43832019-11-13 17:57:15 +0200563 data:
564 $ref: '#/definitions/SubscriptionData'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300565 subscriptionNotification:
566 type: object
567 properties:
568 id:
569 type: string
Mohamed Abukarb175b942019-05-09 16:30:58 +0300570 version:
571 type: integer
Mohamed Abukarb175b942019-05-09 16:30:58 +0300572 eventType:
Mohamed Abukar34e43832019-11-13 17:57:15 +0200573 $ref: '#/definitions/EventType'
Mohamed Abukarb175b942019-05-09 16:30:58 +0300574 xApps:
Mohamed Abukar91357512019-06-20 06:37:13 +0300575 $ref: '#/definitions/AllDeployedXapps'
Mohamed Abukard684c872020-12-06 13:08:38 +0200576 registerRequest:
577 type: object
578 required:
579 - appName
580 - appInstanceName
581 - httpEndpoint
582 - rmrEndpoint
583 properties:
584 appName:
585 type: string
586 appVersion:
587 type: string
588 appInstanceName:
589 type: string
590 httpEndpoint:
591 type: string
592 rmrEndpoint:
593 type: string