53f51f3f8bdcd6f13b11fce38b3a49cec139ad8e
[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           alternateId: my-alternate-id
265           publicCmHandleProperties:
266             key: my-property
267           cmHandleProperties:
268             key: my-property
269           moduleSetTag: my-module-set-tag
270           trustLevel: COMPLETE
271         - cmHandle: my-cm-handle
272           alternateId: my-alternate-id
273           publicCmHandleProperties:
274             key: my-property
275           cmHandleProperties:
276             key: my-property
277           moduleSetTag: my-module-set-tag
278           trustLevel: COMPLETE
279         createdCmHandles:
280         - cmHandle: my-cm-handle
281           alternateId: my-alternate-id
282           publicCmHandleProperties:
283             key: my-property
284           cmHandleProperties:
285             key: my-property
286           moduleSetTag: my-module-set-tag
287           trustLevel: COMPLETE
288         - cmHandle: my-cm-handle
289           alternateId: my-alternate-id
290           publicCmHandleProperties:
291             key: my-property
292           cmHandleProperties:
293             key: my-property
294           moduleSetTag: my-module-set-tag
295           trustLevel: COMPLETE
296         dmiPlugin: my-dmi-plugin
297         dmiModelPlugin: my-dmi-model-plugin
298         upgradedCmHandles:
299           cmHandles:
300           - my-cm-handle1
301           - my-cm-handle2
302           - my-cm-handle3
303           moduleSetTag: my-module-set-tag
304         dmiDataPlugin: my-dmi-data-plugin
305         removedCmHandles:
306         - my-cm-handle1
307         - my-cm-handle2
308         - my-cm-handle3
309       properties:
310         dmiPlugin:
311           default: ""
312           example: my-dmi-plugin
313           type: string
314         dmiDataPlugin:
315           default: ""
316           example: my-dmi-data-plugin
317           type: string
318         dmiModelPlugin:
319           default: ""
320           example: my-dmi-model-plugin
321           type: string
322         createdCmHandles:
323           items:
324             $ref: '#/components/schemas/RestInputCmHandle'
325           type: array
326         updatedCmHandles:
327           items:
328             $ref: '#/components/schemas/RestInputCmHandle'
329           type: array
330         removedCmHandles:
331           example:
332           - my-cm-handle1
333           - my-cm-handle2
334           - my-cm-handle3
335           items:
336             type: string
337           type: array
338         upgradedCmHandles:
339           $ref: '#/components/schemas/UpgradedCmHandles'
340       type: object
341     RestInputCmHandle:
342       example:
343         cmHandle: my-cm-handle
344         alternateId: my-alternate-id
345         publicCmHandleProperties:
346           key: my-property
347         cmHandleProperties:
348           key: my-property
349         moduleSetTag: my-module-set-tag
350         trustLevel: COMPLETE
351       properties:
352         cmHandle:
353           example: my-cm-handle
354           type: string
355         cmHandleProperties:
356           additionalProperties:
357             example: my-property
358             type: string
359           type: object
360         publicCmHandleProperties:
361           additionalProperties:
362             example: my-property
363             type: string
364           type: object
365         moduleSetTag:
366           example: my-module-set-tag
367           type: string
368         trustLevel:
369           enum:
370           - COMPLETE
371           - NONE
372           example: COMPLETE
373           type: string
374         alternateId:
375           example: my-alternate-id
376           type: string
377       required:
378       - cmHandle
379       type: object
380     RestCmHandleProperties:
381       additionalProperties:
382         example: my-property
383         type: string
384       type: object
385     UpgradedCmHandles:
386       example:
387         cmHandles:
388         - my-cm-handle1
389         - my-cm-handle2
390         - my-cm-handle3
391         moduleSetTag: my-module-set-tag
392       properties:
393         cmHandles:
394           example:
395           - my-cm-handle1
396           - my-cm-handle2
397           - my-cm-handle3
398           items:
399             type: string
400           type: array
401         moduleSetTag:
402           default: ""
403           example: my-module-set-tag
404           type: string
405       required:
406       - cmHandles
407       type: object
408     ErrorMessage:
409       properties:
410         status:
411           type: string
412         message:
413           type: string
414         details:
415           type: string
416       title: Error
417       type: object
418     DmiPluginRegistrationErrorResponse:
419       properties:
420         failedCreatedCmHandles:
421           items:
422             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
423           type: array
424         failedUpdatedCmHandles:
425           items:
426             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
427           type: array
428         failedRemovedCmHandles:
429           items:
430             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
431           type: array
432         failedUpgradeCmHandles:
433           items:
434             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
435           type: array
436       type: object
437     CmHandlerRegistrationErrorResponse:
438       properties:
439         cmHandle:
440           example: my-cm-handle
441           type: string
442         errorCode:
443           example: "00"
444           type: string
445         errorText:
446           example: Unknown error. <error-details>
447           type: string
448       type: object
449     CmHandleQueryParameters:
450       example:
451         cmHandleQueryParameters:
452         - conditionParameters:
453           - key: conditionParameters
454           - key: conditionParameters
455           conditionName: conditionName
456         - conditionParameters:
457           - key: conditionParameters
458           - key: conditionParameters
459           conditionName: conditionName
460         conditions:
461         - name: name
462           conditionParameters:
463           - moduleName: my-module
464           - moduleName: my-module
465         - name: name
466           conditionParameters:
467           - moduleName: my-module
468           - moduleName: my-module
469       properties:
470         cmHandleQueryParameters:
471           items:
472             $ref: '#/components/schemas/ConditionProperties'
473           type: array
474         conditions:
475           deprecated: true
476           description: "not necessary, it is just for backward compatibility"
477           items:
478             $ref: '#/components/schemas/OldConditionProperties'
479           type: array
480       title: Cm Handle query parameters for executing cm handle search
481       type: object
482     ConditionProperties:
483       example:
484         conditionParameters:
485         - key: conditionParameters
486         - key: conditionParameters
487         conditionName: conditionName
488       properties:
489         conditionName:
490           type: string
491         conditionParameters:
492           items:
493             additionalProperties:
494               type: string
495             type: object
496           type: array
497     OldConditionProperties:
498       deprecated: true
499       example:
500         name: name
501         conditionParameters:
502         - moduleName: my-module
503         - moduleName: my-module
504       properties:
505         name:
506           type: string
507         conditionParameters:
508           items:
509             $ref: '#/components/schemas/ModuleNameAsJsonObject'
510           type: array
511     ModuleNameAsJsonObject:
512       example:
513         moduleName: my-module
514       properties:
515         moduleName:
516           example: my-module
517           type: string
518   securitySchemes:
519     basicAuth:
520       scheme: basic
521       type: http