aaf0d6a1abb3d31d4665a09a6c9db01047093403
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
1 #  ============LICENSE_START=======================================================
2 #  Copyright (C) 2021-2022 Nordix Foundation
3 #  Modifications Copyright (C) 2021 Pantheon.tech
4 #  Modifications Copyright (C) 2021-2022 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 getResourceDataForPassthroughOperational:
21   get:
22     tags:
23       - network-cm-proxy
24     summary: Get resource data from pass-through operational for cm handle
25     description: Get resource data from pass-through operational for given cm handle
26     operationId: getResourceDataOperationalForCmHandle
27     parameters:
28       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
29       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
30       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
31       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
32     responses:
33       200:
34         description: OK
35         content:
36           application/json:
37             schema:
38               type: object
39             examples:
40               dataSampleResponse:
41                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
42       400:
43         $ref: 'components.yaml#/components/responses/BadRequest'
44       401:
45         $ref: 'components.yaml#/components/responses/Unauthorized'
46       403:
47         $ref: 'components.yaml#/components/responses/Forbidden'
48       500:
49         $ref: 'components.yaml#/components/responses/InternalServerError'
50       502:
51         $ref: 'components.yaml#/components/responses/BadGateway'
52
53 resourceDataForPassthroughRunning:
54   get:
55     tags:
56       - network-cm-proxy
57     summary: Get resource data from pass-through running for cm handle
58     description: Get resource data from pass-through running for given cm handle
59     operationId: getResourceDataRunningForCmHandle
60     parameters:
61       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
62       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
63       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
64       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
65     responses:
66       200:
67         description: OK
68         content:
69           application/json:
70             schema:
71               type: object
72             examples:
73               dataSampleResponse:
74                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
75       400:
76         $ref: 'components.yaml#/components/responses/BadRequest'
77       401:
78         $ref: 'components.yaml#/components/responses/Unauthorized'
79       403:
80         $ref: 'components.yaml#/components/responses/Forbidden'
81       500:
82         $ref: 'components.yaml#/components/responses/InternalServerError'
83       502:
84         $ref: 'components.yaml#/components/responses/BadGateway'
85   post:
86     tags:
87       - network-cm-proxy
88     summary: create resource data from pass-through running for cm handle
89     description: create resource data from pass-through running for given cm handle
90     operationId: createResourceDataRunningForCmHandle
91     parameters:
92       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
93       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
94       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
95     requestBody:
96       required: true
97       content:
98         application/json:
99           schema:
100             type: object
101           examples:
102             dataSampleRequest:
103               $ref: 'components.yaml#/components/examples/dataSampleRequest'
104         application/yang-data+json:
105           schema:
106             type: object
107           examples:
108             dataSampleRequest:
109               $ref: 'components.yaml#/components/examples/dataSampleRequest'
110     responses:
111       201:
112         $ref: 'components.yaml#/components/responses/Created'
113       400:
114         $ref: 'components.yaml#/components/responses/BadRequest'
115       401:
116         $ref: 'components.yaml#/components/responses/Unauthorized'
117       403:
118         $ref: 'components.yaml#/components/responses/Forbidden'
119       500:
120         $ref: 'components.yaml#/components/responses/InternalServerError'
121       502:
122         $ref: 'components.yaml#/components/responses/BadGateway'
123
124   put:
125     tags:
126       - network-cm-proxy
127     summary: Update resource data from pass-through running for a cm handle
128     description: Update resource data from pass-through running for the given cm handle
129     operationId: updateResourceDataRunningForCmHandle
130     parameters:
131       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
132       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
133       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
134     requestBody:
135       required: true
136       content:
137         application/json:
138           schema:
139             type: object
140           examples:
141             dataSampleRequest:
142               $ref: 'components.yaml#/components/examples/dataSampleRequest'
143         application/yang-data+json:
144           schema:
145             type: object
146           examples:
147             dataSampleRequest:
148               $ref: 'components.yaml#/components/examples/dataSampleRequest'
149     responses:
150       200:
151         $ref: 'components.yaml#/components/responses/Ok'
152       400:
153         $ref: 'components.yaml#/components/responses/BadRequest'
154       401:
155         $ref: 'components.yaml#/components/responses/Unauthorized'
156       403:
157         $ref: 'components.yaml#/components/responses/Forbidden'
158       500:
159         $ref: 'components.yaml#/components/responses/InternalServerError'
160       502:
161         $ref: 'components.yaml#/components/responses/BadGateway'
162
163   patch:
164     tags:
165       - network-cm-proxy
166     summary: Patch resource data from pass-through running
167     description: Patch resource data from pass-through running for the given cm handle
168     operationId: patchResourceDataRunningForCmHandle
169     parameters:
170       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
171       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
172       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
173     requestBody:
174       required: true
175       content:
176         '*/*':
177           schema:
178             type: object
179           examples:
180             dataSampleRequest:
181               $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
182     responses:
183       200:
184         $ref: 'components.yaml#/components/responses/Ok'
185       400:
186         $ref: 'components.yaml#/components/responses/BadRequest'
187       401:
188         $ref: 'components.yaml#/components/responses/Unauthorized'
189       403:
190         $ref: 'components.yaml#/components/responses/Forbidden'
191       500:
192         $ref: 'components.yaml#/components/responses/InternalServerError'
193       502:
194         $ref: 'components.yaml#/components/responses/BadGateway'
195
196   delete:
197     tags:
198       - network-cm-proxy
199     summary: Delete resource data
200     description: Delete resource data from pass-through running for a given cm handle
201     operationId: deleteResourceDataRunningForCmHandle
202     parameters:
203       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
204       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
205       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
206     responses:
207       204:
208         $ref: 'components.yaml#/components/responses/NoContent'
209       400:
210         $ref: 'components.yaml#/components/responses/BadRequest'
211       401:
212         $ref: 'components.yaml#/components/responses/Unauthorized'
213       403:
214         $ref: 'components.yaml#/components/responses/Forbidden'
215       404:
216         $ref: 'components.yaml#/components/responses/NotFound'
217       500:
218         $ref: 'components.yaml#/components/responses/InternalServerError'
219       502:
220         $ref: 'components.yaml#/components/responses/BadGateway'
221
222 fetchModuleReferencesByCmHandle:
223   get:
224     description: fetch all module references (name and revision) for a given cm handle
225     tags:
226       - network-cm-proxy
227     summary: Fetch all module references (name and revision) for a given cm handle
228     operationId: getModuleReferencesByCmHandle
229     parameters:
230       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
231     responses:
232       200:
233         description: OK
234         content:
235           application/json:
236             schema:
237               type: array
238               items:
239                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
240       400:
241         $ref: 'components.yaml#/components/responses/BadRequest'
242       401:
243         $ref: 'components.yaml#/components/responses/Unauthorized'
244       403:
245         $ref: 'components.yaml#/components/responses/Forbidden'
246       500:
247         $ref: 'components.yaml#/components/responses/InternalServerError'
248
249 fetchModuleDefinitionsByCmHandle:
250   get:
251     description: Fetch all module definitions (name, revision, yang resource) for a given cm handle
252     tags:
253       - network-cm-proxy
254     summary: Fetch all module definitions (name, revision, yang resource) for a given cm handle
255     operationId: getModuleDefinitionsByCmHandleId
256     parameters:
257       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
258     responses:
259       200:
260         description: OK
261         content:
262           application/json:
263             schema:
264               type: array
265               items:
266                 $ref: 'components.yaml#/components/schemas/RestModuleDefinition'
267       401:
268         $ref: 'components.yaml#/components/responses/Unauthorized'
269       403:
270         $ref: 'components.yaml#/components/responses/Forbidden'
271       500:
272         $ref: 'components.yaml#/components/responses/InternalServerError'
273
274 searchCmHandles:
275   post:
276     description: Execute cm handle query search, to be included in the result a cm-handle must fulfill ALL the conditions listed here, if one of the given module names does not exists, return with an empty collection.
277     tags:
278       - network-cm-proxy
279     summary: Execute cm handle search using the available conditions
280     operationId: searchCmHandles
281     requestBody:
282       required: true
283       content:
284         application/json:
285           schema:
286             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
287     responses:
288       200:
289         description: OK
290         content:
291           application/json:
292             schema:
293               type: array
294               items:
295                 $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
296       400:
297         $ref: 'components.yaml#/components/responses/BadRequest'
298       401:
299         $ref: 'components.yaml#/components/responses/Unauthorized'
300       403:
301         $ref: 'components.yaml#/components/responses/Forbidden'
302       500:
303         $ref: 'components.yaml#/components/responses/InternalServerError'
304
305 retrieveCmHandleDetailsById:
306   get:
307     description: Retrieve CM handle details and properties by cm handle id
308     tags:
309       - network-cm-proxy
310     summary: Retrieve CM handle details
311     operationId: retrieveCmHandleDetailsById
312     parameters:
313       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
314     responses:
315       200:
316         description: OK
317         content:
318           application/json:
319             schema:
320               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
321       400:
322         $ref: 'components.yaml#/components/responses/BadRequest'
323       401:
324         $ref: 'components.yaml#/components/responses/Unauthorized'
325       404:
326         $ref: 'components.yaml#/components/responses/NotFound'
327       500:
328         $ref: 'components.yaml#/components/responses/InternalServerError'
329
330 getCmHandlePropertiesById:
331   get:
332     description: Get CM handle properties by cm handle id
333     tags:
334       - network-cm-proxy
335     summary: Get CM handle properties
336     operationId: getCmHandlePublicPropertiesByCmHandleId
337     parameters:
338       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
339     responses:
340       200:
341         description: OK
342         content:
343           application/json:
344             schema:
345               $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
346       400:
347         $ref: 'components.yaml#/components/responses/BadRequest'
348       401:
349         $ref: 'components.yaml#/components/responses/Unauthorized'
350       404:
351         $ref: 'components.yaml#/components/responses/NotFound'
352       500:
353         $ref: 'components.yaml#/components/responses/InternalServerError'
354
355 getCmHandleStateById:
356   get:
357     description: Get CM handle state by cm handle id
358     tags:
359       - network-cm-proxy
360     summary: Get CM handle state
361     operationId: getCmHandleStateByCmHandleId
362     parameters:
363       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
364     responses:
365       200:
366         description: OK
367         content:
368           application/json:
369             schema:
370               $ref: 'components.yaml#/components/schemas/RestOutputCmHandleCompositeState'
371       400:
372         $ref: 'components.yaml#/components/responses/BadRequest'
373       401:
374         $ref: 'components.yaml#/components/responses/Unauthorized'
375       404:
376         $ref: 'components.yaml#/components/responses/NotFound'
377       500:
378         $ref: 'components.yaml#/components/responses/InternalServerError'
379
380 searchCmHandleIds:
381   post:
382     description: Execute cm handle query search, to be included in the result a cm-handle must fulfill ALL the conditions listed here, if one of the given module names does not exists, return with an empty collection.
383     tags:
384       - network-cm-proxy
385     summary: Execute cm handle query upon a given set of query parameters
386     operationId: searchCmHandleIds
387     requestBody:
388       required: true
389       content:
390         application/json:
391           schema:
392             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
393     responses:
394       200:
395         description: OK
396         content:
397           application/json:
398             schema:
399               type: array
400               items:
401                 type: string
402       400:
403         $ref: 'components.yaml#/components/responses/BadRequest'
404       401:
405         $ref: 'components.yaml#/components/responses/Unauthorized'
406       403:
407         $ref: 'components.yaml#/components/responses/Forbidden'
408       404:
409         $ref: 'components.yaml#/components/responses/NotFound'
410       500:
411         $ref: 'components.yaml#/components/responses/InternalServerError'