blob: 7ed2efe52a646dadc1a36d613112991d70cb1559 [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'
212 CmHandlePublicProperties:
213 type: array
214 items:
215 type: object
216 additionalProperties:
217 type: string
218 example: Book Type
219
emaclee844cab32021-12-01 09:42:37 +0000220 examples:
221 dataSampleRequest:
222 summary: Sample request
223 description: Sample request body
224 value:
225 test:bookstore:
226 bookstore-name: Chapters
227 categories:
228 - code: '01'
229 name: SciFi
230 books:
231 - authors:
232 - Iain M. Banks
emaclee844cab32021-12-01 09:42:37 +0000233 - Ursula K. Le Guin
234 - code: '02'
235 name: kids
236 books:
237 - authors:
238 - Philip Pullman
239
tragaitecd7f5e2022-01-13 13:15:14 +0000240 dataSamplePatchRequest:
241 summary: Sample patch request
242 description: Sample patch request body
243 value:
244 ietf-restconf:yang-patch:
245 patch-id: patch-1
246 edit:
247 - edit-id: edit1
248 operation: merge
249 target: /
250 value:
251 test:bookstore:
252 bookstore-name: Chapters
253 categories:
254 - code: '01'
255 name: Science
256 books:
257 - authors:
258 - Author1
259 - Author2
260 - code: '02'
261 name: Arts
262 books:
263 - authors:
264 - Author3
265 - edit-id: edit2
266 operation: merge
267 target: /
268 value:
269 test:bookstore:
270 bookstore-name: Novels
271 categories:
272 - code: '03'
273 name: History
274 books:
275 - authors:
276 - Iain M. Banks
277 - Ursula K. Le Guin
278 - code: '04'
279 name: Fiction
280 books:
281 - authors:
282 - Philip Pullman
283
emaclee844cab32021-12-01 09:42:37 +0000284 dataSampleResponse:
285 summary: Sample response
286 description: Sample response for selecting 'sample 1'.
287 value:
288 bookstore:
289 categories:
290 - code: '01'
291 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000292 - authors:
293 - Iain M. Banks
294 - Ursula K. Le Guin
emaclee844cab32021-12-01 09:42:37 +0000295 name: SciFi
296 - code: '02'
297 books:
puthuparambil.adityad0007332021-12-08 18:53:39 +0000298 - authors:
299 - Philip Pullman
emaclee844cab32021-12-01 09:42:37 +0000300 name: kids
niamhcore66017b42021-10-19 11:07:02 +0100301
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200302 parameters:
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100303 cmHandleInPath:
304 name: cm-handle
305 in: path
tragait34a94b92021-03-30 12:02:27 +0100306 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 +0100307 required: true
308 schema:
309 type: string
emaclee844cab32021-12-01 09:42:37 +0000310 example: my-cm-handle
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100311 xpathInQuery:
312 name: xpath
313 in: query
314 description: xpath
315 required: false
316 schema:
317 type: string
318 default: /
Ruslan Kashapov1baf48d2021-05-07 10:46:27 +0300319 requiredXpathInQuery:
320 name: xpath
321 in: query
322 description: xpath
323 required: true
324 schema:
325 type: string
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100326 includeDescendantsOptionInQuery:
327 name: include-descendants
328 in: query
329 description: include-descendants
330 required: false
331 schema:
332 type: boolean
333 default: false
niamhcoreb5d573b2021-02-26 10:13:48 +0000334 cpsPathInQuery:
335 name: cps-path
336 in: query
337 description: cps-path
338 required: false
339 schema:
340 type: string
341 default: /
niamhcorefd2e6dd2021-09-29 16:43:35 +0100342 resourceIdentifierInQuery:
tragaitc3285512021-08-16 15:12:36 +0100343 name: resourceIdentifier
niamhcorefd2e6dd2021-09-29 16:43:35 +0100344 in: query
345 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 +0100346 required: true
niamhcorefd2e6dd2021-09-29 16:43:35 +0100347 allowReserved: true
tragaitc3285512021-08-16 15:12:36 +0100348 schema:
349 type: string
niamhcorefd2e6dd2021-09-29 16:43:35 +0100350 examples:
emaclee844cab32021-12-01 09:42:37 +0000351 sample 1:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100352 value:
emaclee844cab32021-12-01 09:42:37 +0000353 resourceIdentifier: \shops\bookstore
354 sample 2:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100355 value:
emaclee844cab32021-12-01 09:42:37 +0000356 resourceIdentifier: \shops\bookstore\categories[@code=1]
357 sample 3:
niamhcorefd2e6dd2021-09-29 16:43:35 +0100358 value:
emaclee844cab32021-12-01 09:42:37 +0000359 resourceIdentifier: parent=shops,child=bookstore
tragaitabdff1b2021-10-06 11:04:18 +0100360 optionsParamInQuery:
361 name: options
tragaitc3285512021-08-16 15:12:36 +0100362 in: query
emaclee844cab32021-12-01 09:42:37 +0000363 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 +0100364 required: false
365 schema:
366 type: string
tragaitabdff1b2021-10-06 11:04:18 +0100367 allowReserved: true
368 examples:
emaclee844cab32021-12-01 09:42:37 +0000369 sample 1:
tragaitabdff1b2021-10-06 11:04:18 +0100370 value:
emaclee844cab32021-12-01 09:42:37 +0000371 options: (depth=3)
372 sample 2:
tragaitabdff1b2021-10-06 11:04:18 +0100373 value:
emaclee844cab32021-12-01 09:42:37 +0000374 options: (fields=book)
375 sample 3:
tragaitabdff1b2021-10-06 11:04:18 +0100376 value:
emaclee844cab32021-12-01 09:42:37 +0000377 options: (depth=2,fields=book/authors)
sourabh_sourabh1f2e66e2022-02-16 21:53:41 +0530378 topicParamInQuery:
379 name: topic
380 in: query
381 description: topic parameter in query.
382 required: false
383 schema:
384 type: string
385 allowReserved: true
386 examples:
387 sample 1:
388 value:
389 topic: my-topic-name
tragaitc584bf22021-08-20 15:45:58 +0100390 contentParamInHeader:
391 name: Content-Type
392 in: header
393 required: false
394 description: Content parameter for request, if content parameter is null, default value is application/json.
395 schema:
396 type: string
397 default: application/json
emaclee844cab32021-12-01 09:42:37 +0000398 example: application/yang-data+json
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200399
400 responses:
401 NotFound:
402 description: The specified resource was not found
403 content:
404 application/json:
405 schema:
406 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000407 example:
408 status: 400
409 message: Not found error message
410 details: Not found error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200411 Unauthorized:
412 description: Unauthorized
413 content:
414 application/json:
415 schema:
416 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000417 example:
418 status: 401
419 message: Unauthorized error message
420 details: Unauthorized error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200421 Forbidden:
422 description: Forbidden
423 content:
424 application/json:
425 schema:
426 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000427 example:
428 status: 403
429 message: Forbidden error message
430 details: Forbidden error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200431 BadRequest:
432 description: Bad Request
433 content:
434 application/json:
435 schema:
436 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000437 example:
438 status: 400 BAD_REQUEST
439 message: Bad request error message
440 details: Bad request error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200441 Conflict:
442 description: Conflict
443 content:
444 application/json:
445 schema:
446 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000447 example:
448 status: 409 CONFLICT
449 message: Conflict error message
450 details: Conflict error details
Hanif Kukkalli83e318f2021-02-23 12:26:39 +0100451 NotImplemented:
452 description: The given path has not been implemented
453 content:
454 application/json:
455 schema:
456 $ref: '#/components/schemas/ErrorMessage'
emaclee844cab32021-12-01 09:42:37 +0000457 example:
458 status: 501
459 message: Not implemented error message
460 details: Not implemented error details
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200461 Ok:
462 description: OK
463 content:
464 application/json:
465 schema:
466 type: object
467 Created:
468 description: Created
DylanB95EST4f4178c2021-07-02 13:30:42 +0100469 content: {}
Ruslan Kashapov9f52f602021-01-22 12:53:01 +0200470 NoContent:
471 description: No Content
472 content: {}
JosephKeenane0873dd2022-01-28 11:22:22 +0000473 InternalServerError:
474 description: Internal Server Error
475 content:
476 application/json:
477 schema:
478 $ref: "#/components/schemas/ErrorMessage"
479 example:
480 status: 500
481 message: Internal Server Error
482 details: Internal Server Error occurred
mpriyank93afc1e2022-03-28 15:47:47 +0530483 BadGateway:
484 description: Bad Gateway
485 content:
486 application/json:
487 schema:
488 $ref: "#/components/schemas/DmiErrorMessage"
489 example:
490 message: "Bad Gateway Error Message NCMP"
491 dmi-response:
492 http-code: 400
493 body: "Bad Request"