Support Delete operation for ds Passtrough-Running in NCMP 1/3
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
1 #  ============LICENSE_START=======================================================
2 #  Copyright (C) 2021 Nordix Foundation
3 #  Modifications Copyright (C) 2021 Pantheon.tech
4 #  Modifications Copyright (C) 2021 Bell Canada
5 #  ================================================================================
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
11 #
12 #  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
21 nodeByCmHandleAndXpath:
22   get:
23     description: Get a node with an option to retrieve all the children for a given cm Handle
24     deprecated: true
25     tags:
26       - network-cm-proxy
27     summary: Get a node given a cm Handle and xpath
28     operationId: getNodeByCmHandleAndXpath
29     parameters:
30       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
31       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
32       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
33     responses:
34       200:
35         $ref: 'components.yaml#/components/responses/Ok'
36       400:
37         $ref: 'components.yaml#/components/responses/BadRequest'
38       401:
39         $ref: 'components.yaml#/components/responses/Unauthorized'
40       403:
41         $ref: 'components.yaml#/components/responses/Forbidden'
42       404:
43         $ref: 'components.yaml#/components/responses/NotFound'
44
45 nodesByCmHandleAndCpsPath:
46   get:
47     description: Query nodes for the given cps path and cm Handle
48     deprecated: true
49     tags:
50       - network-cm-proxy
51     summary: Query data nodes
52     operationId: queryNodesByCmHandleAndCpsPath
53     parameters:
54       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
55       - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
56       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
57     responses:
58       200:
59         $ref: 'components.yaml#/components/responses/Ok'
60       400:
61         $ref: 'components.yaml#/components/responses/BadRequest'
62       401:
63         $ref: 'components.yaml#/components/responses/Unauthorized'
64       403:
65         $ref: 'components.yaml#/components/responses/Forbidden'
66       404:
67         $ref: 'components.yaml#/components/responses/NotFound'
68
69 nodesByCmHandleAndXpath:
70   post:
71     description: Create a node with descendants for the given CM Handle; top level or under existing node (requires xpath)
72     deprecated: true
73     tags:
74       - network-cm-proxy
75     summary: Create a node with descendants
76     operationId: createNode
77     parameters:
78       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
79       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
80     requestBody:
81       required: true
82       content:
83         application/json:
84           schema:
85             type: string
86     responses:
87       201:
88         $ref: 'components.yaml#/components/responses/Created'
89       400:
90         $ref: 'components.yaml#/components/responses/BadRequest'
91       401:
92         $ref: 'components.yaml#/components/responses/Unauthorized'
93       403:
94         $ref: 'components.yaml#/components/responses/Forbidden'
95       404:
96         $ref: 'components.yaml#/components/responses/NotFound'
97
98   patch:
99     description: Update node leaves for the given cps path and cm Handle
100     deprecated: true
101     tags:
102       - network-cm-proxy
103     summary: Update node leaves
104     operationId: updateNodeLeaves
105     parameters:
106       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
107       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
108     requestBody:
109       required: true
110       content:
111         application/json:
112           schema:
113             type: string
114     responses:
115       200:
116         $ref: 'components.yaml#/components/responses/Ok'
117       400:
118         $ref: 'components.yaml#/components/responses/BadRequest'
119       401:
120         $ref: 'components.yaml#/components/responses/Unauthorized'
121       403:
122         $ref: 'components.yaml#/components/responses/Forbidden'
123       404:
124         $ref: 'components.yaml#/components/responses/NotFound'
125
126   put:
127     description: Replace a node with descendants for the given cps path and cm Handle
128     deprecated: true
129     tags:
130       - network-cm-proxy
131     summary: Replace a node with descendants
132     operationId: replaceNode
133     parameters:
134       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
135       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
136     requestBody:
137       required: true
138       content:
139         application/json:
140           schema:
141             type: string
142     responses:
143       200:
144         $ref: 'components.yaml#/components/responses/Ok'
145       400:
146         $ref: 'components.yaml#/components/responses/BadRequest'
147       401:
148         $ref: 'components.yaml#/components/responses/Unauthorized'
149       403:
150         $ref: 'components.yaml#/components/responses/Forbidden'
151       404:
152         $ref: 'components.yaml#/components/responses/NotFound'
153
154 listNodeByCmHandleAndXpath:
155   post:
156     description: Add one or more list-node child elements under existing node for the given CM Handle
157     deprecated: true
158     tags:
159       - network-cm-proxy
160     summary: Add list-node child element(s)
161     operationId: addListNodeElements
162     parameters:
163       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
164       - $ref: 'components.yaml#/components/parameters/requiredXpathInQuery'
165     requestBody:
166       required: true
167       content:
168         application/json:
169           schema:
170             type: string
171     responses:
172       201:
173         $ref: 'components.yaml#/components/responses/Created'
174       400:
175         $ref: 'components.yaml#/components/responses/BadRequest'
176       401:
177         $ref: 'components.yaml#/components/responses/Unauthorized'
178       403:
179         $ref: 'components.yaml#/components/responses/Forbidden'
180       404:
181         $ref: 'components.yaml#/components/responses/NotFound'
182
183 getResourceDataForPassthroughOperational:
184   get:
185     tags:
186       - network-cm-proxy
187     summary: Get resource data from pass-through operational for cm handle
188     description: Get resource data from pass-through operational for given cm handle
189     operationId: getResourceDataOperationalForCmHandle
190     parameters:
191       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
192       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
193       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
194       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
195     responses:
196       200:
197         description: OK
198         content:
199           application/json:
200             schema:
201               type: object
202             examples:
203               dataSampleResponse:
204                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
205       400:
206         $ref: 'components.yaml#/components/responses/BadRequest'
207       401:
208         $ref: 'components.yaml#/components/responses/Unauthorized'
209       403:
210         $ref: 'components.yaml#/components/responses/Forbidden'
211       404:
212         $ref: 'components.yaml#/components/responses/NotFound'
213
214 resourceDataForPassthroughRunning:
215   get:
216     tags:
217       - network-cm-proxy
218     summary: Get resource data from pass-through running for cm handle
219     description: Get resource data from pass-through running for given cm handle
220     operationId: getResourceDataRunningForCmHandle
221     parameters:
222       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
223       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
224       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
225       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
226     responses:
227       200:
228         description: OK
229         content:
230           application/json:
231             schema:
232               type: object
233             examples:
234               dataSampleResponse:
235                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
236       400:
237         $ref: 'components.yaml#/components/responses/BadRequest'
238       401:
239         $ref: 'components.yaml#/components/responses/Unauthorized'
240       403:
241         $ref: 'components.yaml#/components/responses/Forbidden'
242       404:
243         $ref: 'components.yaml#/components/responses/NotFound'
244   post:
245     tags:
246       - network-cm-proxy
247     summary: create resource data from pass-through running for cm handle
248     description: create resource data from pass-through running for given cm handle
249     operationId: createResourceDataRunningForCmHandle
250     parameters:
251       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
252       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
253       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
254     requestBody:
255       required: true
256       content:
257         application/json:
258           schema:
259             type: string
260           examples:
261             dataSampleRequest:
262               $ref: 'components.yaml#/components/examples/dataSampleRequest'
263         application/yang-data+json:
264           schema:
265             type: string
266     responses:
267       201:
268         $ref: 'components.yaml#/components/responses/Created'
269       400:
270         $ref: 'components.yaml#/components/responses/BadRequest'
271       401:
272         $ref: 'components.yaml#/components/responses/Unauthorized'
273       403:
274         $ref: 'components.yaml#/components/responses/Forbidden'
275       404:
276         $ref: 'components.yaml#/components/responses/NotFound'
277
278   put:
279     tags:
280       - network-cm-proxy
281     summary: Update resource data from pass-through running for a cm handle
282     description: Update resource data from pass-through running for the given cm handle
283     operationId: updateResourceDataRunningForCmHandle
284     parameters:
285       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
286       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
287       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
288     requestBody:
289       required: true
290       content:
291         application/json:
292           schema:
293             type: string
294           examples:
295             dataSampleRequest:
296               $ref: 'components.yaml#/components/examples/dataSampleRequest'
297         application/yang-data+json:
298           schema:
299             type: string
300     responses:
301       200:
302         $ref: 'components.yaml#/components/responses/Ok'
303       400:
304         $ref: 'components.yaml#/components/responses/BadRequest'
305       401:
306         $ref: 'components.yaml#/components/responses/Unauthorized'
307       403:
308         $ref: 'components.yaml#/components/responses/Forbidden'
309       404:
310         $ref: 'components.yaml#/components/responses/NotFound'
311
312   patch:
313     tags:
314       - network-cm-proxy
315     summary: Patch resource data from pass-through running
316     description: Patch resource data from pass-through running for the given cm handle
317     operationId: patchResourceDataRunningForCmHandle
318     parameters:
319       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
320       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
321       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
322     requestBody:
323       required: true
324       content:
325         application/json:
326           schema:
327             type: object
328     responses:
329       200:
330         $ref: 'components.yaml#/components/responses/Ok'
331       400:
332         $ref: 'components.yaml#/components/responses/BadRequest'
333       401:
334         $ref: 'components.yaml#/components/responses/Unauthorized'
335       403:
336         $ref: 'components.yaml#/components/responses/Forbidden'
337       404:
338         $ref: 'components.yaml#/components/responses/NotFound'
339
340   delete:
341     tags:
342       - network-cm-proxy
343     summary: Delete resource data
344     description: Delete resource data from pass-through running for a given cm handle
345     operationId: deleteResourceDataRunningForCmHandle
346     parameters:
347       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
348       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
349       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
350     requestBody:
351       required: true
352       content:
353         application/json:
354           schema:
355             type: string
356     responses:
357       204:
358         $ref: 'components.yaml#/components/responses/NoContent'
359       400:
360         $ref: 'components.yaml#/components/responses/BadRequest'
361       401:
362         $ref: 'components.yaml#/components/responses/Unauthorized'
363       403:
364         $ref: 'components.yaml#/components/responses/Forbidden'
365       404:
366         $ref: 'components.yaml#/components/responses/NotFound'
367
368
369 fetchModuleReferencesByCmHandle:
370   get:
371     description: fetch all module references (name and revision) for a given cm handle
372     tags:
373       - network-cm-proxy
374     summary: Fetch all module references (name and revision) for a given cm handle
375     operationId: getModuleReferencesByCmHandle
376     parameters:
377       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
378     responses:
379       200:
380         description: OK
381         content:
382           application/json:
383             schema:
384               type: object
385             examples:
386               moduleReferencesResponse:
387                 summary: Sample response
388                 value:
389                   - moduleName: my-module-name
390                     revision: yyyy-mm-dd
391                   - moduleName: my-module-name-2
392                     revision: yyyy-mm-dd
393       400:
394         $ref: 'components.yaml#/components/responses/BadRequest'
395       401:
396         $ref: 'components.yaml#/components/responses/Unauthorized'
397       403:
398         $ref: 'components.yaml#/components/responses/Forbidden'
399       404:
400         $ref: 'components.yaml#/components/responses/NotFound'
401
402 executeCmHandleSearch:
403   post:
404     description: Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names
405     tags:
406       - network-cm-proxy
407     summary: Execute cm handle search using the available conditions
408     operationId: executeCmHandleSearch
409     requestBody:
410       required: true
411       content:
412         application/json:
413           schema:
414             $ref: 'components.yaml#/components/schemas/Conditions'
415     responses:
416       200:
417         description: OK
418         content:
419           application/json:
420             schema:
421               $ref: 'components.yaml#/components/schemas/CmHandles'
422       400:
423         $ref: 'components.yaml#/components/responses/BadRequest'
424       401:
425         $ref: 'components.yaml#/components/responses/Unauthorized'
426       403:
427         $ref: 'components.yaml#/components/responses/Forbidden'