RTD change to document migration to Spring Boot 3.0
[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         - cmHandle: my-cm-handle
269           publicCmHandleProperties:
270             key: my-property
271           cmHandleProperties:
272             key: my-property
273         createdCmHandles:
274         - cmHandle: my-cm-handle
275           publicCmHandleProperties:
276             key: my-property
277           cmHandleProperties:
278             key: my-property
279         - cmHandle: my-cm-handle
280           publicCmHandleProperties:
281             key: my-property
282           cmHandleProperties:
283             key: my-property
284         dmiPlugin: my-dmi-plugin
285         dmiModelPlugin: my-dmi-model-plugin
286         dmiDataPlugin: my-dmi-data-plugin
287         removedCmHandles:
288         - my-cm-handle1
289         - my-cm-handle2
290         - my-cm-handle3
291       properties:
292         dmiPlugin:
293           default: ""
294           example: my-dmi-plugin
295           type: string
296         dmiDataPlugin:
297           default: ""
298           example: my-dmi-data-plugin
299           type: string
300         dmiModelPlugin:
301           default: ""
302           example: my-dmi-model-plugin
303           type: string
304         createdCmHandles:
305           items:
306             $ref: '#/components/schemas/RestInputCmHandle'
307           type: array
308         updatedCmHandles:
309           items:
310             $ref: '#/components/schemas/RestInputCmHandle'
311           type: array
312         removedCmHandles:
313           example:
314           - my-cm-handle1
315           - my-cm-handle2
316           - my-cm-handle3
317           items:
318             type: string
319           type: array
320       type: object
321     RestInputCmHandle:
322       example:
323         cmHandle: my-cm-handle
324         publicCmHandleProperties:
325           key: my-property
326         cmHandleProperties:
327           key: my-property
328       properties:
329         cmHandle:
330           example: my-cm-handle
331           type: string
332         cmHandleProperties:
333           additionalProperties:
334             example: my-property
335             type: string
336           type: object
337         publicCmHandleProperties:
338           additionalProperties:
339             example: my-property
340             type: string
341           type: object
342       required:
343       - cmHandle
344       type: object
345     RestCmHandleProperties:
346       additionalProperties:
347         example: my-property
348         type: string
349       type: object
350     ErrorMessage:
351       properties:
352         status:
353           type: string
354         message:
355           type: string
356         details:
357           type: string
358       title: Error
359       type: object
360     DmiPluginRegistrationErrorResponse:
361       properties:
362         failedCreatedCmHandles:
363           items:
364             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
365           type: array
366         failedUpdatedCmHandles:
367           items:
368             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
369           type: array
370         failedRemovedCmHandles:
371           items:
372             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
373           type: array
374       type: object
375     CmHandlerRegistrationErrorResponse:
376       properties:
377         cmHandle:
378           example: my-cm-handle
379           type: string
380         errorCode:
381           example: "00"
382           type: string
383         errorText:
384           example: Unknown error. <error-details>
385           type: string
386       type: object
387     CmHandleQueryParameters:
388       example:
389         cmHandleQueryParameters:
390         - conditionParameters:
391           - key: conditionParameters
392           - key: conditionParameters
393           conditionName: conditionName
394         - conditionParameters:
395           - key: conditionParameters
396           - key: conditionParameters
397           conditionName: conditionName
398         conditions:
399         - name: name
400           conditionParameters:
401           - moduleName: my-module
402           - moduleName: my-module
403         - name: name
404           conditionParameters:
405           - moduleName: my-module
406           - moduleName: my-module
407       properties:
408         cmHandleQueryParameters:
409           items:
410             $ref: '#/components/schemas/ConditionProperties'
411           type: array
412         conditions:
413           deprecated: true
414           description: "not necessary, it is just for backward compatibility"
415           items:
416             $ref: '#/components/schemas/OldConditionProperties'
417           type: array
418       title: Cm Handle query parameters for executing cm handle search
419       type: object
420     ConditionProperties:
421       example:
422         conditionParameters:
423         - key: conditionParameters
424         - key: conditionParameters
425         conditionName: conditionName
426       properties:
427         conditionName:
428           type: string
429         conditionParameters:
430           items:
431             additionalProperties:
432               type: string
433             type: object
434           type: array
435     OldConditionProperties:
436       deprecated: true
437       example:
438         name: name
439         conditionParameters:
440         - moduleName: my-module
441         - moduleName: my-module
442       properties:
443         name:
444           type: string
445         conditionParameters:
446           items:
447             $ref: '#/components/schemas/ModuleNameAsJsonObject'
448           type: array
449     ModuleNameAsJsonObject:
450       example:
451         moduleName: my-module
452       properties:
453         moduleName:
454           example: my-module
455           type: string
456   securitySchemes:
457     basicAuth:
458       scheme: basic
459       type: http