Merge "[BUG] Fix for Swagger UI generation"
[cps.git] / docs / api / swagger / ncmp / openapi-inventory.yaml
1 openapi: 3.0.3
2 info:
3   description: NCMP Inventory API
4   title: NCMP Inventory API
5   version: "1.0"
6 servers:
7 - url: /ncmpInventory
8 security:
9 - basicAuth: []
10 paths:
11   /v1/ch:
12     post:
13       description: "Register a DMI Plugin with any new, updated or removed CM Handles."
14       operationId: updateDmiPluginRegistration
15       requestBody:
16         content:
17           application/json:
18             schema:
19               $ref: '#/components/schemas/RestDmiPluginRegistration'
20         required: true
21       responses:
22         "200":
23           content: {}
24           description: No Content
25         "400":
26           content:
27             application/json:
28               example:
29                 status: 400 BAD_REQUEST
30                 message: Bad request error message
31                 details: Bad request error details
32               schema:
33                 $ref: '#/components/schemas/ErrorMessage'
34           description: Bad Request
35         "401":
36           content:
37             application/json:
38               example:
39                 status: 401
40                 message: Unauthorized error message
41                 details: Unauthorized error details
42               schema:
43                 $ref: '#/components/schemas/ErrorMessage'
44           description: Unauthorized
45         "403":
46           content:
47             application/json:
48               example:
49                 status: 403
50                 message: Forbidden error message
51                 details: Forbidden error details
52               schema:
53                 $ref: '#/components/schemas/ErrorMessage'
54           description: Forbidden
55         "500":
56           content:
57             application/json:
58               example:
59                 failedCreatedCmHandles:
60                 - cmHandle: my-cm-handle-01
61                   errorCode: "00"
62                   errorText: Unknown error. <error-details>
63                 - cmHandle: my-cm-handle-02
64                   errorCode: "01"
65                   errorText: cm-handle already exists
66                 - cmHandle: my-cm-handle-03
67                   errorCode: "03"
68                   errorText: cm-handle has an invalid character(s) in id
69                 failedUpdatedCmHandles:
70                 - cmHandle: my-cm-handle-01
71                   errorCode: "00"
72                   errorText: Unknown error. <error-details>
73                 - cmHandle: my-cm-handle-02
74                   errorCode: "02"
75                   errorText: cm-handle does not exist
76                 - cmHandle: my-cm-handle-03
77                   errorCode: "03"
78                   errorText: cm-handle has an invalid character(s) in id
79                 failedRemovedCmHandles:
80                 - cmHandle: my-cm-handle-01
81                   errorCode: "00"
82                   errorText: Unknown error. <error-details>
83                 - cmHandle: my-cm-handle-02
84                   errorCode: "02"
85                   errorText: cm-handle does not exists
86                 - cmHandle: my-cm-handle-03
87                   errorCode: "03"
88                   errorText: cm-handle has an invalid character(s) in id
89               schema:
90                 $ref: '#/components/schemas/DmiPluginRegistrationErrorResponse'
91           description: Partial or Complete failure. The error details are provided
92             in the response body and all supported error codes are documented in the
93             example.
94       summary: DMI notifies NCMP of new CM Handles
95       tags:
96       - network-cm-proxy-inventory
97   /v1/ch/cmHandles:
98     get:
99       description: Get all cm handle IDs for a registered DMI plugin
100       operationId: getAllCmHandleIdsForRegisteredDmi
101       parameters:
102       - description: dmi-plugin-identifier
103         in: query
104         name: dmi-plugin-identifier
105         required: true
106         schema:
107           example: my-dmi-plugin
108           type: string
109       responses:
110         "200":
111           content:
112             application/json:
113               schema:
114                 items:
115                   type: string
116                 type: array
117           description: OK
118         "401":
119           content:
120             application/json:
121               example:
122                 status: 401
123                 message: Unauthorized error message
124                 details: Unauthorized error details
125               schema:
126                 $ref: '#/components/schemas/ErrorMessage'
127           description: Unauthorized
128         "403":
129           content:
130             application/json:
131               example:
132                 status: 403
133                 message: Forbidden error message
134                 details: Forbidden error details
135               schema:
136                 $ref: '#/components/schemas/ErrorMessage'
137           description: Forbidden
138         "500":
139           content:
140             application/json:
141               example:
142                 status: 500
143                 message: Internal Server Error
144                 details: Internal Server Error occurred
145               schema:
146                 $ref: '#/components/schemas/ErrorMessage'
147           description: Internal Server Error
148       summary: "Get all cm handle IDs for a registered DMI plugin (DMI plugin, DMI\
149         \ data plugin, DMI model plugin)"
150       tags:
151       - network-cm-proxy-inventory
152   /v1/ch/searches:
153     post:
154       description: "Query and get CMHandleIds for additional properties, public properties\
155         \ and registered DMI plugin (DMI plugin, DMI data plugin, DMI model plugin)."
156       operationId: searchCmHandleIds
157       requestBody:
158         content:
159           application/json:
160             schema:
161               $ref: '#/components/schemas/CmHandleQueryParameters'
162         required: true
163       responses:
164         "200":
165           content:
166             application/json:
167               schema:
168                 items:
169                   type: string
170                 type: array
171           description: OK
172         "401":
173           content:
174             application/json:
175               example:
176                 status: 401
177                 message: Unauthorized error message
178                 details: Unauthorized error details
179               schema:
180                 $ref: '#/components/schemas/ErrorMessage'
181           description: Unauthorized
182         "403":
183           content:
184             application/json:
185               example:
186                 status: 403
187                 message: Forbidden error message
188                 details: Forbidden error details
189               schema:
190                 $ref: '#/components/schemas/ErrorMessage'
191           description: Forbidden
192         "500":
193           content:
194             application/json:
195               example:
196                 status: 500
197                 message: Internal Server Error
198                 details: Internal Server Error occurred
199               schema:
200                 $ref: '#/components/schemas/ErrorMessage'
201           description: Internal Server Error
202       summary: Query for CM Handle IDs
203       tags:
204       - network-cm-proxy-inventory
205 components:
206   parameters:
207     dmiPluginIdentifierInQuery:
208       description: dmi-plugin-identifier
209       in: query
210       name: dmi-plugin-identifier
211       required: true
212       schema:
213         example: my-dmi-plugin
214         type: string
215   responses:
216     NoContent:
217       content: {}
218       description: No Content
219     BadRequest:
220       content:
221         application/json:
222           example:
223             status: 400 BAD_REQUEST
224             message: Bad request error message
225             details: Bad request error details
226           schema:
227             $ref: '#/components/schemas/ErrorMessage'
228       description: Bad Request
229     Unauthorized:
230       content:
231         application/json:
232           example:
233             status: 401
234             message: Unauthorized error message
235             details: Unauthorized error details
236           schema:
237             $ref: '#/components/schemas/ErrorMessage'
238       description: Unauthorized
239     Forbidden:
240       content:
241         application/json:
242           example:
243             status: 403
244             message: Forbidden error message
245             details: Forbidden error details
246           schema:
247             $ref: '#/components/schemas/ErrorMessage'
248       description: Forbidden
249     InternalServerError:
250       content:
251         application/json:
252           example:
253             status: 500
254             message: Internal Server Error
255             details: Internal Server Error occurred
256           schema:
257             $ref: '#/components/schemas/ErrorMessage'
258       description: Internal Server Error
259   schemas:
260     RestDmiPluginRegistration:
261       example:
262         updatedCmHandles:
263         - cmHandle: my-cm-handle
264           publicCmHandleProperties:
265             key: my-property
266           cmHandleProperties:
267             key: my-property
268           moduleSetTag: my-module-set-tag
269         - cmHandle: my-cm-handle
270           publicCmHandleProperties:
271             key: my-property
272           cmHandleProperties:
273             key: my-property
274           moduleSetTag: my-module-set-tag
275         createdCmHandles:
276         - cmHandle: my-cm-handle
277           publicCmHandleProperties:
278             key: my-property
279           cmHandleProperties:
280             key: my-property
281           moduleSetTag: my-module-set-tag
282         - cmHandle: my-cm-handle
283           publicCmHandleProperties:
284             key: my-property
285           cmHandleProperties:
286             key: my-property
287           moduleSetTag: my-module-set-tag
288         dmiPlugin: my-dmi-plugin
289         dmiModelPlugin: my-dmi-model-plugin
290         upgradedCmHandles:
291           cmHandles:
292           - my-cm-handle1
293           - my-cm-handle2
294           - my-cm-handle3
295           moduleSetTag: my-module-set-tag
296         dmiDataPlugin: my-dmi-data-plugin
297         removedCmHandles:
298         - my-cm-handle1
299         - my-cm-handle2
300         - my-cm-handle3
301       properties:
302         dmiPlugin:
303           default: ""
304           example: my-dmi-plugin
305           type: string
306         dmiDataPlugin:
307           default: ""
308           example: my-dmi-data-plugin
309           type: string
310         dmiModelPlugin:
311           default: ""
312           example: my-dmi-model-plugin
313           type: string
314         createdCmHandles:
315           items:
316             $ref: '#/components/schemas/RestInputCmHandle'
317           type: array
318         updatedCmHandles:
319           items:
320             $ref: '#/components/schemas/RestInputCmHandle'
321           type: array
322         removedCmHandles:
323           example:
324           - my-cm-handle1
325           - my-cm-handle2
326           - my-cm-handle3
327           items:
328             type: string
329           type: array
330         upgradedCmHandles:
331           $ref: '#/components/schemas/UpgradedCmHandles'
332       type: object
333     RestInputCmHandle:
334       example:
335         cmHandle: my-cm-handle
336         publicCmHandleProperties:
337           key: my-property
338         cmHandleProperties:
339           key: my-property
340         moduleSetTag: my-module-set-tag
341       properties:
342         cmHandle:
343           example: my-cm-handle
344           type: string
345         cmHandleProperties:
346           additionalProperties:
347             example: my-property
348             type: string
349           type: object
350         publicCmHandleProperties:
351           additionalProperties:
352             example: my-property
353             type: string
354           type: object
355         moduleSetTag:
356           example: my-module-set-tag
357           type: string
358       required:
359       - cmHandle
360       type: object
361     RestCmHandleProperties:
362       additionalProperties:
363         example: my-property
364         type: string
365       type: object
366     UpgradedCmHandles:
367       example:
368         cmHandles:
369         - my-cm-handle1
370         - my-cm-handle2
371         - my-cm-handle3
372         moduleSetTag: my-module-set-tag
373       properties:
374         cmHandles:
375           example:
376           - my-cm-handle1
377           - my-cm-handle2
378           - my-cm-handle3
379           items:
380             type: string
381           type: array
382         moduleSetTag:
383           example: my-module-set-tag
384           type: string
385       required:
386       - cmHandles
387       type: object
388     ErrorMessage:
389       properties:
390         status:
391           type: string
392         message:
393           type: string
394         details:
395           type: string
396       title: Error
397       type: object
398     DmiPluginRegistrationErrorResponse:
399       properties:
400         failedCreatedCmHandles:
401           items:
402             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
403           type: array
404         failedUpdatedCmHandles:
405           items:
406             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
407           type: array
408         failedRemovedCmHandles:
409           items:
410             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
411           type: array
412         failedUpgradeCmHandles:
413           items:
414             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
415           type: array
416       type: object
417     CmHandlerRegistrationErrorResponse:
418       properties:
419         cmHandle:
420           example: my-cm-handle
421           type: string
422         errorCode:
423           example: "00"
424           type: string
425         errorText:
426           example: Unknown error. <error-details>
427           type: string
428       type: object
429     CmHandleQueryParameters:
430       example:
431         cmHandleQueryParameters:
432         - conditionParameters:
433           - key: conditionParameters
434           - key: conditionParameters
435           conditionName: conditionName
436         - conditionParameters:
437           - key: conditionParameters
438           - key: conditionParameters
439           conditionName: conditionName
440         conditions:
441         - name: name
442           conditionParameters:
443           - moduleName: my-module
444           - moduleName: my-module
445         - name: name
446           conditionParameters:
447           - moduleName: my-module
448           - moduleName: my-module
449       properties:
450         cmHandleQueryParameters:
451           items:
452             $ref: '#/components/schemas/ConditionProperties'
453           type: array
454         conditions:
455           deprecated: true
456           description: "not necessary, it is just for backward compatibility"
457           items:
458             $ref: '#/components/schemas/OldConditionProperties'
459           type: array
460       title: Cm Handle query parameters for executing cm handle search
461       type: object
462     ConditionProperties:
463       example:
464         conditionParameters:
465         - key: conditionParameters
466         - key: conditionParameters
467         conditionName: conditionName
468       properties:
469         conditionName:
470           type: string
471         conditionParameters:
472           items:
473             additionalProperties:
474               type: string
475             type: object
476           type: array
477     OldConditionProperties:
478       deprecated: true
479       example:
480         name: name
481         conditionParameters:
482         - moduleName: my-module
483         - moduleName: my-module
484       properties:
485         name:
486           type: string
487         conditionParameters:
488           items:
489             $ref: '#/components/schemas/ModuleNameAsJsonObject'
490           type: array
491     ModuleNameAsJsonObject:
492       example:
493         moduleName: my-module
494       properties:
495         moduleName:
496           example: my-module
497           type: string
498   securitySchemes:
499     basicAuth:
500       scheme: basic
501       type: http