blob: 8249a7a3d78b62738bc69023c3cb72bed3feafae [file] [log] [blame]
tragait34a94b92021-03-30 12:02:27 +01001# ============LICENSE_START=======================================================
DylanB95EST63132ce2021-12-14 16:34:38 +00002# Copyright (C) 2021-2022 Nordix Foundation
Ruslan Kashapov1baf48d2021-05-07 10:46:27 +03003# Modifications Copyright (C) 2021 Pantheon.tech
puthuparambil.adityad69742c2022-03-29 11:03:52 +01004# Modifications Copyright (C) 2022 Bell Canada
tragait34a94b92021-03-30 12:02:27 +01005# ================================================================================
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
lukegleeson15b93e72021-07-07 15:25:30 +010011#
tragait34a94b92021-03-30 12:02:27 +010012# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# SPDX-License-Identifier: Apache-2.0
19# ============LICENSE_END=========================================================
20
Ruslan Kashapov9f52f602021-01-22 12:53:01 +020021components:
22 schemas:
niamhcore66017b42021-10-19 11:07:02 +010023 # Common Schemas
Ruslan Kashapov9f52f602021-01-22 12:53:01 +020024 ErrorMessage:
25 type: object
26 title: Error
27 properties:
28 status:
29 type: string
30 message:
31 type: string
32 details:
33 type: string
mpriyank93afc1e2022-03-28 15:47:47 +053034 # DMI Server Exception Schema
35 DmiErrorMessage:
36 title: DMI Error Message
37 type: object
38 properties:
39 message:
40 type: string
41 example: "Bad Gateway Error Message NCMP"
42 dmi-response:
43 type: object
44 properties:
45 http-code:
46 type: integer
47 example: 400
48 body:
49 type: string
50 example: Bad Request
niamhcore66017b42021-10-19 11:07:02 +010051 # Request Schemas
DylanB95EST4f4178c2021-07-02 13:30:42 +010052 RestDmiPluginRegistration:
53 type: object
Ruslan Kashapov9f52f602021-01-22 12:53:01 +020054 properties:
DylanB95EST4f4178c2021-07-02 13:30:42 +010055 dmiPlugin:
Ruslan Kashapov9f52f602021-01-22 12:53:01 +020056 type: string
emaclee844cab32021-12-01 09:42:37 +000057 example: my-dmi-plugin
DylanB95ESTd042fcd2022-02-21 12:57:08 +000058 default: ""
JosephKeenan20b4f9c2021-11-23 12:18:28 +000059 dmiDataPlugin:
60 type: string
emaclee844cab32021-12-01 09:42:37 +000061 example: my-dmi-data-plugin
DylanB95ESTd042fcd2022-02-21 12:57:08 +000062 default: ""
JosephKeenan20b4f9c2021-11-23 12:18:28 +000063 dmiModelPlugin:
64 type: string
emaclee844cab32021-12-01 09:42:37 +000065 example: my-dmi-model-plugin
DylanB95ESTd042fcd2022-02-21 12:57:08 +000066 default: ""
DylanB95EST4f4178c2021-07-02 13:30:42 +010067 createdCmHandles:
68 type: array
69 items:
DylanB95ESTe5573382022-01-27 17:12:52 +000070 $ref: '#/components/schemas/RestInputCmHandle'
DylanB95EST31facc82021-08-18 17:12:25 +010071 updatedCmHandles:
72 type: array
73 items:
DylanB95ESTe5573382022-01-27 17:12:52 +000074 $ref: '#/components/schemas/RestInputCmHandle'
Renu Kumari2c963172022-03-10 16:02:55 -050075 example:
76 cmHandle: my-cm-handle
77 cmHandleProperties:
78 add-my-property: add-property
79 update-my-property: updated-property
80 delete-my-property: '~'
81 publicCmHandleProperties:
82 add-my-property: add-property
83 update-my-property: updated-property
84 delete-my-property: '~'
DylanB95ESTe999b022021-08-24 16:56:40 +010085 removedCmHandles:
86 type: array
87 items:
88 type: string
Renu Kumari2c963172022-03-10 16:02:55 -050089 example: [my-cm-handle1, my-cm-handle2, my-cm-handle3]
Renu Kumarib14f04b2022-03-28 10:22:41 -040090 DmiPluginRegistrationErrorResponse:
91 type: object
92 properties:
93 failedCreatedCmHandles:
94 type: array
95 items:
96 $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
Renu Kumarib14f04b2022-03-28 10:22:41 -040097 failedUpdatedCmHandles:
98 type: array
99 items:
100 $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
Renu Kumarib14f04b2022-03-28 10:22:41 -0400101 failedRemovedCmHandles:
102 type: array
103 items:
104 $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
Renu Kumarib14f04b2022-03-28 10:22:41 -0400105 CmHandlerRegistrationErrorResponse:
106 type: object
107 properties:
108 cmHandle:
109 type: string
110 example: my-cm-handle
111 errorCode:
112 type: string
Renu Kumari952603c2022-04-18 12:39:33 -0400113 example: '00'
Renu Kumarib14f04b2022-03-28 10:22:41 -0400114 errorText:
115 type: string
Renu Kumari952603c2022-04-18 12:39:33 -0400116 example: 'Unknown error. <error-details>'
DylanB95EST4f4178c2021-07-02 13:30:42 +0100117
DylanB95ESTe5573382022-01-27 17:12:52 +0000118 RestInputCmHandle:
DylanB95EST4f4178c2021-07-02 13:30:42 +0100119 required:
120 - cmHandle
121 type: object
122 properties:
123 cmHandle:
124 type: string
emaclee844cab32021-12-01 09:42:37 +0000125 example: my-cm-handle
DylanB95EST4f4178c2021-07-02 13:30:42 +0100126 cmHandleProperties:
DylanB95EST63132ce2021-12-14 16:34:38 +0000127 $ref: '#/components/schemas/RestCmHandleProperties'
128 publicCmHandleProperties:
129 $ref: '#/components/schemas/RestCmHandleProperties'
130 RestCmHandleProperties:
DylanB95EST4f4178c2021-07-02 13:30:42 +0100131 type: object
132 additionalProperties:
133 type: string
DylanB95EST63132ce2021-12-14 16:34:38 +0000134 example: my-property
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200135
niamhcore66017b42021-10-19 11:07:02 +0100136 #Response Schemas
lukegleesond5bda882022-03-02 14:32:47 +0000137 RestModuleReference:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000138 type: object
139 title: Module reference details
140 properties:
141 moduleName:
142 type: string
143 example: my-module-name
144 revision:
145 type: string
146 example: my-module-revision
147
emacleee1f73e22022-06-17 17:42:56 +0100148 RestModuleDefinition:
149 type: object
150 title: Module definitions
151 properties:
152 moduleName:
153 type: string
154 example: my-module-name
155 revision:
156 type: string
157 example: 2020-09-15
158 content:
159 type: string
160 example: |
161 module stores {
162 yang-version 1.1;
163 namespace "org:onap:ccsdk:sample";
164 prefix book-store;
165 revision "2020-09-15" {
166 description
167 "Sample Model";
168 }
169 }
170
171
kissande9ed5812022-05-12 15:59:18 +0200172 CmHandleQueryParameters:
JosephKeenandeac4772022-03-28 12:26:07 +0100173 type: object
174 title: Cm Handle query parameters for executing cm handle search
175 properties:
kissande9ed5812022-05-12 15:59:18 +0200176 cmHandleQueryParameters:
177 type: array
178 items:
179 type: object
180 $ref: '#/components/schemas/ConditionProperties'
181 conditions:
182 deprecated: true
183 type: array
184 items:
185 type: object
186 $ref: '#/components/schemas/OldConditionProperties'
187 description: not necessary, it is just for backward compatibility
188 example:
189 cmHandleQueryParameters:
190 - conditionName: hasAllModules
191 conditionParameters:
192 - { "moduleName": "my-module-1" }
193 - { "moduleName": "my-module-2" }
194 - { "moduleName": "my-module-3" }
195 - conditionName: hasAllProperties
196 conditionParameters:
197 - { "Color": "yellow" }
198 - { "Shape": "circle" }
199 - { "Size": "small" }
200 ConditionProperties:
201 properties:
202 conditionName:
203 type: string
204 conditionParameters:
205 type: array
206 items:
207 type: object
208 additionalProperties:
209 type: string
210 OldConditionProperties:
211 deprecated: true
212 properties:
213 name:
214 type: string
215 conditionParameters:
216 type: array
217 items:
218 type: object
219 $ref: '#/components/schemas/ModuleNameAsJsonObject'
220 ModuleNameAsJsonObject:
221 properties:
222 moduleName:
223 type: string
224 example: my-module
JosephKeenandeac4772022-03-28 12:26:07 +0100225
DylanB95ESTe5573382022-01-27 17:12:52 +0000226 RestOutputCmHandle:
227 type: object
228 title: CM handle Details
229 properties:
230 cmHandle:
231 type: string
232 example: my-cm-handle1
233 publicCmHandleProperties:
234 $ref: '#/components/schemas/CmHandlePublicProperties'
mpriyank4cf49622022-05-20 15:25:15 +0100235 state:
lukegleeson78062a12022-06-02 10:56:43 +0100236 $ref: '#/components/schemas/CmHandleCompositeState'
DylanB95ESTe5573382022-01-27 17:12:52 +0000237 CmHandlePublicProperties:
238 type: array
239 items:
240 type: object
241 additionalProperties:
242 type: string
243 example: Book Type
lukegleeson78062a12022-06-02 10:56:43 +0100244 CmHandleCompositeState:
mpriyank4cf49622022-05-20 15:25:15 +0100245 type: object
246 properties:
247 cmHandleState:
248 type: string
249 example: ADVISED
250 lockReason:
251 $ref: '#/components/schemas/lock-reason'
252 lastUpdateTime:
253 type: string
254 example: 2022-12-31T20:30:40.000+0000
255 dataSyncEnabled:
256 type: boolean
257 example: false
258 dataSyncState:
259 $ref: '#/components/schemas/dataStores'
260
261 lock-reason:
262 type: object
263 properties:
264 reason:
265 type: string
266 example: LOCKED_OTHER
267 details:
268 type: string
269 example: locked due to module sync
270
271 dataStores:
272 type: object
273 properties:
274 operational:
275 $ref: '#/components/schemas/sync-state'
276 running:
277 $ref: '#/components/schemas/sync-state'
278
279 sync-state:
280 type: object
281 properties:
282 state:
283 type: string
284 example: NONE_REQUESTED
285 lastSyncTime:
286 type: string
287 example: 2022-12-31T20:30:40.000+0000
DylanB95ESTe5573382022-01-27 17:12:52 +0000288
lukegleesonbed18fd2022-05-06 12:02:42 +0100289 RestOutputCmHandlePublicProperties:
290 type: object
291 properties:
292 publicCmHandleProperties:
293 $ref: '#/components/schemas/CmHandlePublicProperties'
294
lukegleeson78062a12022-06-02 10:56:43 +0100295 RestOutputCmHandleCompositeState:
296 type: object
297 properties:
298 state:
299 $ref: '#/components/schemas/CmHandleCompositeState'
300
emaclee844cab32021-12-01 09:42:37 +0000301 examples:
302 dataSampleRequest:
303 summary: Sample request
304 description: Sample request body
305 value:
306 test:bookstore:
307 bookstore-name: Chapters
308 categories:
309 - code: '01'
310 name: SciFi
311 books:
312 - authors:
313 - Iain M. Banks
emaclee844cab32021-12-01 09:42:37 +0000314 - Ursula K. Le Guin
315 - code: '02'
316 name: kids
317 books:
318 - authors:
319 - Philip Pullman
320
tragaitecd7f5e2022-01-13 13:15:14 +0000321 dataSamplePatchRequest:
322 summary: Sample patch request
323 description: Sample patch request body
324 value:
325 ietf-restconf:yang-patch:
326 patch-id: patch-1
327 edit:
328 - edit-id: edit1
329 operation: merge
330 target: /
331 value:
332 test:bookstore:
333 bookstore-name: Chapters
334 categories:
335 - code: '01'
336 name: Science
337 books:
338 - authors:
339 - Author1
340 - Author2
341 - code: '02'
342 name: Arts
343 books:
344 - authors:
345 - Author3
346 - edit-id: edit2
347 operation: merge
348 target: /
349 value:
350 test:bookstore:
351 bookstore-name: Novels
352 categories:
353 - code: '03'
354 name: History
355 books:
356 - authors:
357 - Iain M. Banks
358 - Ursula K. Le Guin
359 - code: '04'
360 name: Fiction
361 books:
362 - authors:
363 - Philip Pullman
364
emaclee844cab32021-12-01 09:42:37 +0000365 dataSampleResponse:
366 summary: Sample response
367 description: Sample response for selecting 'sample 1'.
368 value:
369 bookstore:
370 categories:
371 - code: '01'
372 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000373 - authors:
374 - Iain M. Banks
375 - Ursula K. Le Guin
emaclee844cab32021-12-01 09:42:37 +0000376 name: SciFi
377 - code: '02'
378 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000379 - authors:
380 - Philip Pullman
emaclee844cab32021-12-01 09:42:37 +0000381 name: kids
niamhcore66017b42021-10-19 11:07:02 +0100382
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200383 parameters:
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100384 cmHandleInPath:
385 name: cm-handle
386 in: path
tragait34a94b92021-03-30 12:02:27 +0100387 description: The identifier for a network function, network element, subnetwork or any other cm object by managed Network CM Proxy
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100388 required: true
389 schema:
390 type: string
emaclee844cab32021-12-01 09:42:37 +0000391 example: my-cm-handle
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100392 xpathInQuery:
393 name: xpath
394 in: query
395 description: xpath
396 required: false
397 schema:
398 type: string
399 default: /
Ruslan Kashapov1baf48d2021-05-07 10:46:27 +0300400 requiredXpathInQuery:
401 name: xpath
402 in: query
403 description: xpath
404 required: true
405 schema:
406 type: string
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100407 includeDescendantsOptionInQuery:
408 name: include-descendants
409 in: query
410 description: include-descendants
411 required: false
412 schema:
413 type: boolean
414 default: false
niamhcoreb5d573b2021-02-26 10:13:48 +0000415 cpsPathInQuery:
416 name: cps-path
417 in: query
418 description: cps-path
419 required: false
420 schema:
421 type: string
422 default: /
niamhcorefd2e6dd2021-09-29 16:43:35 +0100423 resourceIdentifierInQuery:
tragaitc3285512021-08-16 15:12:36 +0100424 name: resourceIdentifier
niamhcorefd2e6dd2021-09-29 16:43:35 +0100425 in: query
426 description: The format of resource identifier depend on the associated DMI Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but it can really be anything.
tragaitc3285512021-08-16 15:12:36 +0100427 required: true
niamhcorefd2e6dd2021-09-29 16:43:35 +0100428 allowReserved: true
tragaitc3285512021-08-16 15:12:36 +0100429 schema:
430 type: string
niamhcorefd2e6dd2021-09-29 16:43:35 +0100431 examples:
emaclee844cab32021-12-01 09:42:37 +0000432 sample 1:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100433 value:
emaclee844cab32021-12-01 09:42:37 +0000434 resourceIdentifier: \shops\bookstore
435 sample 2:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100436 value:
emaclee844cab32021-12-01 09:42:37 +0000437 resourceIdentifier: \shops\bookstore\categories[@code=1]
438 sample 3:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100439 value:
emaclee844cab32021-12-01 09:42:37 +0000440 resourceIdentifier: parent=shops,child=bookstore
tragaitabdff1b2021-10-06 11:04:18 +0100441 optionsParamInQuery:
442 name: options
tragaitc3285512021-08-16 15:12:36 +0100443 in: query
emaclee844cab32021-12-01 09:42:37 +0000444 description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. The format of options parameter depend on the associated DMI Plugin implementation.
tragaitc3285512021-08-16 15:12:36 +0100445 required: false
446 schema:
447 type: string
tragaitabdff1b2021-10-06 11:04:18 +0100448 allowReserved: true
449 examples:
emaclee844cab32021-12-01 09:42:37 +0000450 sample 1:
tragaitabdff1b2021-10-06 11:04:18 +0100451 value:
emaclee844cab32021-12-01 09:42:37 +0000452 options: (depth=3)
453 sample 2:
tragaitabdff1b2021-10-06 11:04:18 +0100454 value:
emaclee844cab32021-12-01 09:42:37 +0000455 options: (fields=book)
456 sample 3:
tragaitabdff1b2021-10-06 11:04:18 +0100457 value:
emaclee844cab32021-12-01 09:42:37 +0000458 options: (depth=2,fields=book/authors)
sourabh_sourabh1f2e66e2022-02-16 21:53:41 +0530459 topicParamInQuery:
460 name: topic
461 in: query
462 description: topic parameter in query.
463 required: false
464 schema:
465 type: string
466 allowReserved: true
467 examples:
468 sample 1:
469 value:
470 topic: my-topic-name
tragaitc584bf22021-08-20 15:45:58 +0100471 contentParamInHeader:
472 name: Content-Type
473 in: header
474 required: false
475 description: Content parameter for request, if content parameter is null, default value is application/json.
476 schema:
477 type: string
478 default: application/json
emaclee844cab32021-12-01 09:42:37 +0000479 example: application/yang-data+json
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200480
481 responses:
482 NotFound:
483 description: The specified resource was not found
484 content:
485 application/json:
486 schema:
487 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000488 example:
489 status: 400
490 message: Not found error message
491 details: Not found error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200492 Unauthorized:
493 description: Unauthorized
494 content:
495 application/json:
496 schema:
497 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000498 example:
499 status: 401
500 message: Unauthorized error message
501 details: Unauthorized error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200502 Forbidden:
503 description: Forbidden
504 content:
505 application/json:
506 schema:
507 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000508 example:
509 status: 403
510 message: Forbidden error message
511 details: Forbidden error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200512 BadRequest:
513 description: Bad Request
514 content:
515 application/json:
516 schema:
517 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000518 example:
519 status: 400 BAD_REQUEST
520 message: Bad request error message
521 details: Bad request error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200522 Conflict:
523 description: Conflict
524 content:
525 application/json:
526 schema:
527 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000528 example:
529 status: 409 CONFLICT
530 message: Conflict error message
531 details: Conflict error details
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100532 NotImplemented:
533 description: The given path has not been implemented
534 content:
535 application/json:
536 schema:
537 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000538 example:
539 status: 501
540 message: Not implemented error message
541 details: Not implemented error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200542 Ok:
543 description: OK
544 content:
545 application/json:
546 schema:
547 type: object
548 Created:
549 description: Created
DylanB95EST4f4178c2021-07-02 13:30:42 +0100550 content: {}
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200551 NoContent:
552 description: No Content
553 content: {}
JosephKeenane0873dd2022-01-28 11:22:22 +0000554 InternalServerError:
555 description: Internal Server Error
556 content:
557 application/json:
558 schema:
559 $ref: "#/components/schemas/ErrorMessage"
560 example:
561 status: 500
562 message: Internal Server Error
563 details: Internal Server Error occurred
mpriyank93afc1e2022-03-28 15:47:47 +0530564 BadGateway:
565 description: Bad Gateway
566 content:
567 application/json:
568 schema:
569 $ref: "#/components/schemas/DmiErrorMessage"
570 example:
571 message: "Bad Gateway Error Message NCMP"
572 dmi-response:
573 http-code: 400
574 body: "Bad Request"