Define response objects(schemas) in cps-ncmp
[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: object
86           examples:
87             dataSampleRequest:
88               $ref: 'components.yaml#/components/examples/dataSampleRequest'
89     responses:
90       201:
91         $ref: 'components.yaml#/components/responses/Created'
92       400:
93         $ref: 'components.yaml#/components/responses/BadRequest'
94       401:
95         $ref: 'components.yaml#/components/responses/Unauthorized'
96       403:
97         $ref: 'components.yaml#/components/responses/Forbidden'
98       404:
99         $ref: 'components.yaml#/components/responses/NotFound'
100
101   patch:
102     description: Update node leaves for the given cps path and cm Handle
103     deprecated: true
104     tags:
105       - network-cm-proxy
106     summary: Update node leaves
107     operationId: updateNodeLeaves
108     parameters:
109       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
110       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
111     requestBody:
112       required: true
113       content:
114         application/json:
115           schema:
116             type: object
117           examples:
118             dataSampleRequest:
119               $ref: 'components.yaml#/components/examples/dataSampleRequest'
120     responses:
121       200:
122         $ref: 'components.yaml#/components/responses/Ok'
123       400:
124         $ref: 'components.yaml#/components/responses/BadRequest'
125       401:
126         $ref: 'components.yaml#/components/responses/Unauthorized'
127       403:
128         $ref: 'components.yaml#/components/responses/Forbidden'
129       404:
130         $ref: 'components.yaml#/components/responses/NotFound'
131
132   put:
133     description: Replace a node with descendants for the given cps path and cm Handle
134     deprecated: true
135     tags:
136       - network-cm-proxy
137     summary: Replace a node with descendants
138     operationId: replaceNode
139     parameters:
140       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
141       - $ref: 'components.yaml#/components/parameters/xpathInQuery'
142     requestBody:
143       required: true
144       content:
145         application/json:
146           schema:
147             type: object
148           examples:
149             dataSampleRequest:
150               $ref: 'components.yaml#/components/examples/dataSampleRequest'
151     responses:
152       200:
153         $ref: 'components.yaml#/components/responses/Ok'
154       400:
155         $ref: 'components.yaml#/components/responses/BadRequest'
156       401:
157         $ref: 'components.yaml#/components/responses/Unauthorized'
158       403:
159         $ref: 'components.yaml#/components/responses/Forbidden'
160       404:
161         $ref: 'components.yaml#/components/responses/NotFound'
162
163 listNodeByCmHandleAndXpath:
164   post:
165     description: Add one or more list-node child elements under existing node for the given CM Handle
166     deprecated: true
167     tags:
168       - network-cm-proxy
169     summary: Add list-node child element(s)
170     operationId: addListNodeElements
171     parameters:
172       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
173       - $ref: 'components.yaml#/components/parameters/requiredXpathInQuery'
174     requestBody:
175       required: true
176       content:
177         application/json:
178           schema:
179             type: object
180           examples:
181             dataSampleRequest:
182               $ref: 'components.yaml#/components/examples/dataSampleRequest'
183     responses:
184       201:
185         $ref: 'components.yaml#/components/responses/Created'
186       400:
187         $ref: 'components.yaml#/components/responses/BadRequest'
188       401:
189         $ref: 'components.yaml#/components/responses/Unauthorized'
190       403:
191         $ref: 'components.yaml#/components/responses/Forbidden'
192       404:
193         $ref: 'components.yaml#/components/responses/NotFound'
194
195 getResourceDataForPassthroughOperational:
196   get:
197     tags:
198       - network-cm-proxy
199     summary: Get resource data from pass-through operational for cm handle
200     description: Get resource data from pass-through operational for given cm handle
201     operationId: getResourceDataOperationalForCmHandle
202     parameters:
203       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
204       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
205       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
206       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
207     responses:
208       200:
209         description: OK
210         content:
211           application/json:
212             schema:
213               type: object
214             examples:
215               dataSampleResponse:
216                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
217       400:
218         $ref: 'components.yaml#/components/responses/BadRequest'
219       401:
220         $ref: 'components.yaml#/components/responses/Unauthorized'
221       403:
222         $ref: 'components.yaml#/components/responses/Forbidden'
223       404:
224         $ref: 'components.yaml#/components/responses/NotFound'
225
226 resourceDataForPassthroughRunning:
227   get:
228     tags:
229       - network-cm-proxy
230     summary: Get resource data from pass-through running for cm handle
231     description: Get resource data from pass-through running for given cm handle
232     operationId: getResourceDataRunningForCmHandle
233     parameters:
234       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
235       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
236       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
237       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
238     responses:
239       200:
240         description: OK
241         content:
242           application/json:
243             schema:
244               type: object
245             examples:
246               dataSampleResponse:
247                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
248       400:
249         $ref: 'components.yaml#/components/responses/BadRequest'
250       401:
251         $ref: 'components.yaml#/components/responses/Unauthorized'
252       403:
253         $ref: 'components.yaml#/components/responses/Forbidden'
254       404:
255         $ref: 'components.yaml#/components/responses/NotFound'
256   post:
257     tags:
258       - network-cm-proxy
259     summary: create resource data from pass-through running for cm handle
260     description: create resource data from pass-through running for given cm handle
261     operationId: createResourceDataRunningForCmHandle
262     parameters:
263       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
264       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
265       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
266     requestBody:
267       required: true
268       content:
269         application/json:
270           schema:
271             type: object
272           examples:
273             dataSampleRequest:
274               $ref: 'components.yaml#/components/examples/dataSampleRequest'
275         application/yang-data+json:
276           schema:
277             type: object
278           examples:
279             dataSampleRequest:
280               $ref: 'components.yaml#/components/examples/dataSampleRequest'
281     responses:
282       201:
283         $ref: 'components.yaml#/components/responses/Created'
284       400:
285         $ref: 'components.yaml#/components/responses/BadRequest'
286       401:
287         $ref: 'components.yaml#/components/responses/Unauthorized'
288       403:
289         $ref: 'components.yaml#/components/responses/Forbidden'
290       404:
291         $ref: 'components.yaml#/components/responses/NotFound'
292
293   put:
294     tags:
295       - network-cm-proxy
296     summary: Update resource data from pass-through running for a cm handle
297     description: Update resource data from pass-through running for the given cm handle
298     operationId: updateResourceDataRunningForCmHandle
299     parameters:
300       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
301       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
302       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
303     requestBody:
304       required: true
305       content:
306         application/json:
307           schema:
308             type: object
309           examples:
310             dataSampleRequest:
311               $ref: 'components.yaml#/components/examples/dataSampleRequest'
312         application/yang-data+json:
313           schema:
314             type: object
315           examples:
316             dataSampleRequest:
317               $ref: 'components.yaml#/components/examples/dataSampleRequest'
318     responses:
319       200:
320         $ref: 'components.yaml#/components/responses/Ok'
321       400:
322         $ref: 'components.yaml#/components/responses/BadRequest'
323       401:
324         $ref: 'components.yaml#/components/responses/Unauthorized'
325       403:
326         $ref: 'components.yaml#/components/responses/Forbidden'
327       404:
328         $ref: 'components.yaml#/components/responses/NotFound'
329
330   patch:
331     tags:
332       - network-cm-proxy
333     summary: Patch resource data from pass-through running
334     description: Patch resource data from pass-through running for the given cm handle
335     operationId: patchResourceDataRunningForCmHandle
336     parameters:
337       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
338       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
339       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
340     requestBody:
341       required: true
342       content:
343         application/json:
344           schema:
345             type: object
346           examples:
347             dataSampleRequest:
348               $ref: 'components.yaml#/components/examples/dataSampleRequest'
349     responses:
350       200:
351         $ref: 'components.yaml#/components/responses/Ok'
352       400:
353         $ref: 'components.yaml#/components/responses/BadRequest'
354       401:
355         $ref: 'components.yaml#/components/responses/Unauthorized'
356       403:
357         $ref: 'components.yaml#/components/responses/Forbidden'
358       404:
359         $ref: 'components.yaml#/components/responses/NotFound'
360
361   delete:
362     tags:
363       - network-cm-proxy
364     summary: Delete resource data
365     description: Delete resource data from pass-through running for a given cm handle
366     operationId: deleteResourceDataRunningForCmHandle
367     parameters:
368       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
369       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
370       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
371     requestBody:
372       required: true
373       content:
374         application/json:
375           schema:
376             type: object
377           examples:
378             dataSampleRequest:
379               $ref: 'components.yaml#/components/examples/dataSampleRequest'
380     responses:
381       204:
382         $ref: 'components.yaml#/components/responses/NoContent'
383       400:
384         $ref: 'components.yaml#/components/responses/BadRequest'
385       401:
386         $ref: 'components.yaml#/components/responses/Unauthorized'
387       403:
388         $ref: 'components.yaml#/components/responses/Forbidden'
389       404:
390         $ref: 'components.yaml#/components/responses/NotFound'
391
392
393 fetchModuleReferencesByCmHandle:
394   get:
395     description: fetch all module references (name and revision) for a given cm handle
396     tags:
397       - network-cm-proxy
398     summary: Fetch all module references (name and revision) for a given cm handle
399     operationId: getModuleReferencesByCmHandle
400     parameters:
401       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
402     responses:
403       200:
404         description: OK
405         content:
406           application/json:
407             schema:
408               type: array
409               items:
410                 $ref: 'components.yaml#/components/schemas/ModuleReference'
411       400:
412         $ref: 'components.yaml#/components/responses/BadRequest'
413       401:
414         $ref: 'components.yaml#/components/responses/Unauthorized'
415       403:
416         $ref: 'components.yaml#/components/responses/Forbidden'
417       404:
418         $ref: 'components.yaml#/components/responses/NotFound'
419
420 executeCmHandleSearch:
421   post:
422     description: Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names
423     tags:
424       - network-cm-proxy
425     summary: Execute cm handle search using the available conditions
426     operationId: executeCmHandleSearch
427     requestBody:
428       required: true
429       content:
430         application/json:
431           schema:
432             $ref: 'components.yaml#/components/schemas/Conditions'
433     responses:
434       200:
435         description: OK
436         content:
437           application/json:
438             schema:
439               $ref: 'components.yaml#/components/schemas/CmHandles'
440       400:
441         $ref: 'components.yaml#/components/responses/BadRequest'
442       401:
443         $ref: 'components.yaml#/components/responses/Unauthorized'
444       403:
445         $ref: 'components.yaml#/components/responses/Forbidden'