154a4411da7bdddade5fe34d155c2764c996cefd
[cps.git] / docs / api / swagger / ncmp / openapi-inventory.yaml
1 openapi: 3.0.1
2 info:
3   title: NCMP Inventory API
4   description: NCMP Inventory API
5   version: "1.0"
6 servers:
7 - url: /ncmpInventory
8 paths:
9   /v1/ch:
10     post:
11       tags:
12       - network-cm-proxy-inventory
13       summary: DMI notifies NCMP of new CM Handles
14       description: "Register a DMI Plugin with any new, updated or removed CM Handles."
15       operationId: updateDmiPluginRegistration
16       requestBody:
17         content:
18           application/json:
19             schema:
20               $ref: '#/components/schemas/RestDmiPluginRegistration'
21         required: true
22       responses:
23         "204":
24           description: No Content
25           content: {}
26         "400":
27           description: Bad Request
28           content:
29             application/json:
30               schema:
31                 $ref: '#/components/schemas/ErrorMessage'
32               example:
33                 status: 400 BAD_REQUEST
34                 message: Bad request error message
35                 details: Bad request error details
36         "401":
37           description: Unauthorized
38           content:
39             application/json:
40               schema:
41                 $ref: '#/components/schemas/ErrorMessage'
42               example:
43                 status: 401
44                 message: Unauthorized error message
45                 details: Unauthorized error details
46         "403":
47           description: Forbidden
48           content:
49             application/json:
50               schema:
51                 $ref: '#/components/schemas/ErrorMessage'
52               example:
53                 status: 403
54                 message: Forbidden error message
55                 details: Forbidden error details
56         "500":
57           description: Internal Server Error
58           content:
59             application/json:
60               schema:
61                 $ref: '#/components/schemas/ErrorMessage'
62               example:
63                 status: 500
64                 message: Internal Server Error
65                 details: Internal Server Error occurred
66 components:
67   schemas:
68     RestDmiPluginRegistration:
69       type: object
70       properties:
71         dmiPlugin:
72           type: string
73           example: my-dmi-plugin
74           default: ""
75         dmiDataPlugin:
76           type: string
77           example: my-dmi-data-plugin
78           default: ""
79         dmiModelPlugin:
80           type: string
81           example: my-dmi-model-plugin
82           default: ""
83         createdCmHandles:
84           type: array
85           items:
86             $ref: '#/components/schemas/RestInputCmHandle'
87         updatedCmHandles:
88           type: array
89           example:
90             cmHandle: my-cm-handle
91             cmHandleProperties:
92               add-my-property: add-property
93               update-my-property: updated-property
94               delete-my-property: ~
95             publicCmHandleProperties:
96               add-my-property: add-property
97               update-my-property: updated-property
98               delete-my-property: ~
99           items:
100             $ref: '#/components/schemas/RestInputCmHandle'
101         removedCmHandles:
102           type: array
103           items:
104             type: string
105             example: "[\"my-cm-handle1\",\"my-cm-handle2\",\"my-cm-handle3\"]"
106     RestInputCmHandle:
107       required:
108       - cmHandle
109       type: object
110       properties:
111         cmHandle:
112           type: string
113           example: my-cm-handle
114         cmHandleProperties:
115           $ref: '#/components/schemas/RestCmHandleProperties'
116         publicCmHandleProperties:
117           $ref: '#/components/schemas/RestCmHandleProperties'
118     RestCmHandleProperties:
119       type: object
120       additionalProperties:
121         type: string
122         example: my-property
123     ErrorMessage:
124       title: Error
125       type: object
126       properties:
127         status:
128           type: string
129         message:
130           type: string
131         details:
132           type: string