blob: 5fe47e4b0f876b986b01d014e64ed571b83d4246 [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 Conditions:
137 type: object
138 properties:
139 conditions:
140 $ref: '#/components/schemas/ConditionsData'
141 ConditionsData:
142 type: array
143 items:
144 type: object
145 $ref: '#/components/schemas/ConditionProperties'
146 ConditionProperties:
147 properties:
148 name:
149 type: string
150 example: hasAllModules
151 conditionParameters:
niamhcoreb0d93072021-10-28 13:39:24 +0100152 $ref: '#/components/schemas/ModuleNamesAsJsonArray'
153 ModuleNamesAsJsonArray:
niamhcore66017b42021-10-19 11:07:02 +0100154 type: array
155 items:
156 type: object
niamhcoreb0d93072021-10-28 13:39:24 +0100157 $ref: '#/components/schemas/ModuleNameAsJsonObject'
emaclee844cab32021-12-01 09:42:37 +0000158 example: [my-module-1, my-module-2, my-module-3]
niamhcoreb0d93072021-10-28 13:39:24 +0100159 ModuleNameAsJsonObject:
niamhcore66017b42021-10-19 11:07:02 +0100160 properties:
161 moduleName:
162 type: string
emaclee844cab32021-12-01 09:42:37 +0000163 example: my-module
niamhcore66017b42021-10-19 11:07:02 +0100164
165 #Response Schemas
166 CmHandles:
167 type: object
168 properties:
169 cmHandles:
170 $ref: '#/components/schemas/CmHandleProperties'
171 CmHandleProperties:
172 type: array
173 items:
174 type: object
175 $ref: '#/components/schemas/CmHandleProperty'
176 CmHandleProperty:
177 properties:
178 cmHandleId:
179 type: string
emaclee844cab32021-12-01 09:42:37 +0000180 example: my-cm-handle-id
181
lukegleesond5bda882022-03-02 14:32:47 +0000182 RestModuleReference:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000183 type: object
184 title: Module reference details
185 properties:
186 moduleName:
187 type: string
188 example: my-module-name
189 revision:
190 type: string
191 example: my-module-revision
192
JosephKeenandeac4772022-03-28 12:26:07 +0100193 CmHandleQueryRestParameters:
194 type: object
195 title: Cm Handle query parameters for executing cm handle search
196 properties:
197 publicCmHandleProperties:
198 type: object
199 additionalProperties:
200 type: string
201 example: Book Type
202
DylanB95ESTe5573382022-01-27 17:12:52 +0000203 RestOutputCmHandle:
204 type: object
205 title: CM handle Details
206 properties:
207 cmHandle:
208 type: string
209 example: my-cm-handle1
210 publicCmHandleProperties:
211 $ref: '#/components/schemas/CmHandlePublicProperties'
mpriyank4cf49622022-05-20 15:25:15 +0100212 state:
213 $ref: '#/components/schemas/RestOutputCmHandleState'
DylanB95ESTe5573382022-01-27 17:12:52 +0000214 CmHandlePublicProperties:
215 type: array
216 items:
217 type: object
218 additionalProperties:
219 type: string
220 example: Book Type
mpriyank4cf49622022-05-20 15:25:15 +0100221 RestOutputCmHandleState:
222 type: object
223 properties:
224 cmHandleState:
225 type: string
226 example: ADVISED
227 lockReason:
228 $ref: '#/components/schemas/lock-reason'
229 lastUpdateTime:
230 type: string
231 example: 2022-12-31T20:30:40.000+0000
232 dataSyncEnabled:
233 type: boolean
234 example: false
235 dataSyncState:
236 $ref: '#/components/schemas/dataStores'
237
238 lock-reason:
239 type: object
240 properties:
241 reason:
242 type: string
243 example: LOCKED_OTHER
244 details:
245 type: string
246 example: locked due to module sync
247
248 dataStores:
249 type: object
250 properties:
251 operational:
252 $ref: '#/components/schemas/sync-state'
253 running:
254 $ref: '#/components/schemas/sync-state'
255
256 sync-state:
257 type: object
258 properties:
259 state:
260 type: string
261 example: NONE_REQUESTED
262 lastSyncTime:
263 type: string
264 example: 2022-12-31T20:30:40.000+0000
DylanB95ESTe5573382022-01-27 17:12:52 +0000265
lukegleesonbed18fd2022-05-06 12:02:42 +0100266 RestOutputCmHandlePublicProperties:
267 type: object
268 properties:
269 publicCmHandleProperties:
270 $ref: '#/components/schemas/CmHandlePublicProperties'
271
emaclee844cab32021-12-01 09:42:37 +0000272 examples:
273 dataSampleRequest:
274 summary: Sample request
275 description: Sample request body
276 value:
277 test:bookstore:
278 bookstore-name: Chapters
279 categories:
280 - code: '01'
281 name: SciFi
282 books:
283 - authors:
284 - Iain M. Banks
emaclee844cab32021-12-01 09:42:37 +0000285 - Ursula K. Le Guin
286 - code: '02'
287 name: kids
288 books:
289 - authors:
290 - Philip Pullman
291
tragaitecd7f5e2022-01-13 13:15:14 +0000292 dataSamplePatchRequest:
293 summary: Sample patch request
294 description: Sample patch request body
295 value:
296 ietf-restconf:yang-patch:
297 patch-id: patch-1
298 edit:
299 - edit-id: edit1
300 operation: merge
301 target: /
302 value:
303 test:bookstore:
304 bookstore-name: Chapters
305 categories:
306 - code: '01'
307 name: Science
308 books:
309 - authors:
310 - Author1
311 - Author2
312 - code: '02'
313 name: Arts
314 books:
315 - authors:
316 - Author3
317 - edit-id: edit2
318 operation: merge
319 target: /
320 value:
321 test:bookstore:
322 bookstore-name: Novels
323 categories:
324 - code: '03'
325 name: History
326 books:
327 - authors:
328 - Iain M. Banks
329 - Ursula K. Le Guin
330 - code: '04'
331 name: Fiction
332 books:
333 - authors:
334 - Philip Pullman
335
emaclee844cab32021-12-01 09:42:37 +0000336 dataSampleResponse:
337 summary: Sample response
338 description: Sample response for selecting 'sample 1'.
339 value:
340 bookstore:
341 categories:
342 - code: '01'
343 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000344 - authors:
345 - Iain M. Banks
346 - Ursula K. Le Guin
emaclee844cab32021-12-01 09:42:37 +0000347 name: SciFi
348 - code: '02'
349 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000350 - authors:
351 - Philip Pullman
emaclee844cab32021-12-01 09:42:37 +0000352 name: kids
niamhcore66017b42021-10-19 11:07:02 +0100353
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200354 parameters:
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100355 cmHandleInPath:
356 name: cm-handle
357 in: path
tragait34a94b92021-03-30 12:02:27 +0100358 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 +0100359 required: true
360 schema:
361 type: string
emaclee844cab32021-12-01 09:42:37 +0000362 example: my-cm-handle
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100363 xpathInQuery:
364 name: xpath
365 in: query
366 description: xpath
367 required: false
368 schema:
369 type: string
370 default: /
Ruslan Kashapov1baf48d2021-05-07 10:46:27 +0300371 requiredXpathInQuery:
372 name: xpath
373 in: query
374 description: xpath
375 required: true
376 schema:
377 type: string
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100378 includeDescendantsOptionInQuery:
379 name: include-descendants
380 in: query
381 description: include-descendants
382 required: false
383 schema:
384 type: boolean
385 default: false
niamhcoreb5d573b2021-02-26 10:13:48 +0000386 cpsPathInQuery:
387 name: cps-path
388 in: query
389 description: cps-path
390 required: false
391 schema:
392 type: string
393 default: /
niamhcorefd2e6dd2021-09-29 16:43:35 +0100394 resourceIdentifierInQuery:
tragaitc3285512021-08-16 15:12:36 +0100395 name: resourceIdentifier
niamhcorefd2e6dd2021-09-29 16:43:35 +0100396 in: query
397 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 +0100398 required: true
niamhcorefd2e6dd2021-09-29 16:43:35 +0100399 allowReserved: true
tragaitc3285512021-08-16 15:12:36 +0100400 schema:
401 type: string
niamhcorefd2e6dd2021-09-29 16:43:35 +0100402 examples:
emaclee844cab32021-12-01 09:42:37 +0000403 sample 1:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100404 value:
emaclee844cab32021-12-01 09:42:37 +0000405 resourceIdentifier: \shops\bookstore
406 sample 2:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100407 value:
emaclee844cab32021-12-01 09:42:37 +0000408 resourceIdentifier: \shops\bookstore\categories[@code=1]
409 sample 3:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100410 value:
emaclee844cab32021-12-01 09:42:37 +0000411 resourceIdentifier: parent=shops,child=bookstore
tragaitabdff1b2021-10-06 11:04:18 +0100412 optionsParamInQuery:
413 name: options
tragaitc3285512021-08-16 15:12:36 +0100414 in: query
emaclee844cab32021-12-01 09:42:37 +0000415 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 +0100416 required: false
417 schema:
418 type: string
tragaitabdff1b2021-10-06 11:04:18 +0100419 allowReserved: true
420 examples:
emaclee844cab32021-12-01 09:42:37 +0000421 sample 1:
tragaitabdff1b2021-10-06 11:04:18 +0100422 value:
emaclee844cab32021-12-01 09:42:37 +0000423 options: (depth=3)
424 sample 2:
tragaitabdff1b2021-10-06 11:04:18 +0100425 value:
emaclee844cab32021-12-01 09:42:37 +0000426 options: (fields=book)
427 sample 3:
tragaitabdff1b2021-10-06 11:04:18 +0100428 value:
emaclee844cab32021-12-01 09:42:37 +0000429 options: (depth=2,fields=book/authors)
sourabh_sourabh1f2e66e2022-02-16 21:53:41 +0530430 topicParamInQuery:
431 name: topic
432 in: query
433 description: topic parameter in query.
434 required: false
435 schema:
436 type: string
437 allowReserved: true
438 examples:
439 sample 1:
440 value:
441 topic: my-topic-name
tragaitc584bf22021-08-20 15:45:58 +0100442 contentParamInHeader:
443 name: Content-Type
444 in: header
445 required: false
446 description: Content parameter for request, if content parameter is null, default value is application/json.
447 schema:
448 type: string
449 default: application/json
emaclee844cab32021-12-01 09:42:37 +0000450 example: application/yang-data+json
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200451
452 responses:
453 NotFound:
454 description: The specified resource was not found
455 content:
456 application/json:
457 schema:
458 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000459 example:
460 status: 400
461 message: Not found error message
462 details: Not found error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200463 Unauthorized:
464 description: Unauthorized
465 content:
466 application/json:
467 schema:
468 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000469 example:
470 status: 401
471 message: Unauthorized error message
472 details: Unauthorized error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200473 Forbidden:
474 description: Forbidden
475 content:
476 application/json:
477 schema:
478 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000479 example:
480 status: 403
481 message: Forbidden error message
482 details: Forbidden error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200483 BadRequest:
484 description: Bad Request
485 content:
486 application/json:
487 schema:
488 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000489 example:
490 status: 400 BAD_REQUEST
491 message: Bad request error message
492 details: Bad request error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200493 Conflict:
494 description: Conflict
495 content:
496 application/json:
497 schema:
498 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000499 example:
500 status: 409 CONFLICT
501 message: Conflict error message
502 details: Conflict error details
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100503 NotImplemented:
504 description: The given path has not been implemented
505 content:
506 application/json:
507 schema:
508 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000509 example:
510 status: 501
511 message: Not implemented error message
512 details: Not implemented error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200513 Ok:
514 description: OK
515 content:
516 application/json:
517 schema:
518 type: object
519 Created:
520 description: Created
DylanB95EST4f4178c2021-07-02 13:30:42 +0100521 content: {}
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200522 NoContent:
523 description: No Content
524 content: {}
JosephKeenane0873dd2022-01-28 11:22:22 +0000525 InternalServerError:
526 description: Internal Server Error
527 content:
528 application/json:
529 schema:
530 $ref: "#/components/schemas/ErrorMessage"
531 example:
532 status: 500
533 message: Internal Server Error
534 details: Internal Server Error occurred
mpriyank93afc1e2022-03-28 15:47:47 +0530535 BadGateway:
536 description: Bad Gateway
537 content:
538 application/json:
539 schema:
540 $ref: "#/components/schemas/DmiErrorMessage"
541 example:
542 message: "Bad Gateway Error Message NCMP"
543 dmi-response:
544 http-code: 400
545 body: "Bad Request"