0cb1cdffb1818a319073a6603334f2a87d408aac
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
1 #  ============LICENSE_START=======================================================
2 #  Copyright (C) 2021-2024 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
21 resourceDataForCmHandle:
22   get:
23     tags:
24       - network-cm-proxy
25     summary: Get resource data for cm handle
26     description: Get resource data for given cm handle
27     operationId: getResourceDataForCmHandle
28     parameters:
29       - $ref: 'components.yaml#/components/parameters/datastoreName'
30       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
31       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
32       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
33       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
34       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
35       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
36     responses:
37       200:
38         description: OK
39         content:
40           application/json:
41             schema:
42               type: object
43             examples:
44               dataSampleResponse:
45                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
46       400:
47         $ref: 'components.yaml#/components/responses/BadRequest'
48       403:
49         $ref: 'components.yaml#/components/responses/Forbidden'
50       500:
51         $ref: 'components.yaml#/components/responses/InternalServerError'
52       502:
53         $ref: 'components.yaml#/components/responses/BadGateway'
54
55   post:
56     tags:
57       - network-cm-proxy
58     summary: create resource data from pass-through running for cm handle
59     description: create resource data from pass-through running for given cm handle
60     operationId: createResourceDataRunningForCmHandle
61     parameters:
62       - $ref: 'components.yaml#/components/parameters/datastoreName'
63       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
64       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
65       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
66       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
67     requestBody:
68       required: true
69       content:
70         application/json:
71           schema:
72             type: object
73           examples:
74             dataSampleRequest:
75               $ref: 'components.yaml#/components/examples/dataSampleRequest'
76         application/yang-data+json:
77           schema:
78             type: object
79           examples:
80             dataSampleRequest:
81               $ref: 'components.yaml#/components/examples/dataSampleRequest'
82     responses:
83       201:
84         $ref: 'components.yaml#/components/responses/Created'
85       400:
86         $ref: 'components.yaml#/components/responses/BadRequest'
87       403:
88         $ref: 'components.yaml#/components/responses/Forbidden'
89       500:
90         $ref: 'components.yaml#/components/responses/InternalServerError'
91       502:
92         $ref: 'components.yaml#/components/responses/BadGateway'
93
94   put:
95     tags:
96       - network-cm-proxy
97     summary: Update resource data from pass-through running for a cm handle
98     description: Update resource data from pass-through running for the given cm handle
99     operationId: updateResourceDataRunningForCmHandle
100     parameters:
101       - $ref: 'components.yaml#/components/parameters/datastoreName'
102       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
103       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
104       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
105       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
106     requestBody:
107       required: true
108       content:
109         application/json:
110           schema:
111             type: object
112           examples:
113             dataSampleRequest:
114               $ref: 'components.yaml#/components/examples/dataSampleRequest'
115         application/yang-data+json:
116           schema:
117             type: object
118           examples:
119             dataSampleRequest:
120               $ref: 'components.yaml#/components/examples/dataSampleRequest'
121     responses:
122       200:
123         $ref: 'components.yaml#/components/responses/Ok'
124       400:
125         $ref: 'components.yaml#/components/responses/BadRequest'
126       403:
127         $ref: 'components.yaml#/components/responses/Forbidden'
128       500:
129         $ref: 'components.yaml#/components/responses/InternalServerError'
130       502:
131         $ref: 'components.yaml#/components/responses/BadGateway'
132
133   patch:
134     tags:
135       - network-cm-proxy
136     summary: Patch resource data from pass-through running
137     description: Patch resource data from pass-through running for the given cm handle
138     operationId: patchResourceDataRunningForCmHandle
139     parameters:
140       - $ref: 'components.yaml#/components/parameters/datastoreName'
141       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
142       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
143       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
144       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
145     requestBody:
146       required: true
147       content:
148         '*/*':
149           schema:
150             type: object
151           examples:
152             dataSampleRequest:
153               $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
154     responses:
155       200:
156         $ref: 'components.yaml#/components/responses/Ok'
157       400:
158         $ref: 'components.yaml#/components/responses/BadRequest'
159       403:
160         $ref: 'components.yaml#/components/responses/Forbidden'
161       500:
162         $ref: 'components.yaml#/components/responses/InternalServerError'
163       502:
164         $ref: 'components.yaml#/components/responses/BadGateway'
165
166   delete:
167     tags:
168       - network-cm-proxy
169     summary: Delete resource data
170     description: Delete resource data from pass-through running for a given cm handle
171     operationId: deleteResourceDataRunningForCmHandle
172     parameters:
173       - $ref: 'components.yaml#/components/parameters/datastoreName'
174       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
175       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
176       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
177       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
178     responses:
179       204:
180         $ref: 'components.yaml#/components/responses/NoContent'
181       400:
182         $ref: 'components.yaml#/components/responses/BadRequest'
183       403:
184         $ref: 'components.yaml#/components/responses/Forbidden'
185       404:
186         $ref: 'components.yaml#/components/responses/NotFound'
187       500:
188         $ref: 'components.yaml#/components/responses/InternalServerError'
189       502:
190         $ref: 'components.yaml#/components/responses/BadGateway'
191
192 dataOperationForCmHandle:
193   post:
194     tags:
195       - network-cm-proxy
196     summary: Execute a data operation for group of cm handle ids
197     description: This request will be handled asynchronously using messaging to the supplied topic. The rest response will be an acknowledge with a requestId to identify the relevant messages.
198     operationId: executeDataOperationForCmHandles
199     parameters:
200       - $ref: 'components.yaml#/components/parameters/requiredTopicParamInQuery'
201       - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
202     requestBody:
203       required: true
204       content:
205         application/json:
206           schema:
207             $ref: 'components.yaml#/components/schemas/DataOperationRequest'
208     responses:
209       200:
210         description: OK
211         content:
212           application/json:
213             schema:
214               type: object
215       400:
216         $ref: 'components.yaml#/components/responses/BadRequest'
217       403:
218         $ref: 'components.yaml#/components/responses/Forbidden'
219       500:
220         $ref: 'components.yaml#/components/responses/InternalServerError'
221       502:
222         $ref: 'components.yaml#/components/responses/BadGateway'
223
224 queryResourceDataForCmHandle:
225   get:
226     tags:
227       - network-cm-proxy
228     summary: Query resource data for a given cm handle
229     description: Query resource data for a given cm handle
230     operationId: queryResourceDataForCmHandle
231     parameters:
232       - $ref: 'components.yaml#/components/parameters/datastoreName'
233       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
234       - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
235       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
236       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
237       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
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       403:
251         $ref: 'components.yaml#/components/responses/Forbidden'
252       500:
253         $ref: 'components.yaml#/components/responses/InternalServerError'
254       502:
255         $ref: 'components.yaml#/components/responses/BadGateway'
256
257 fetchModuleReferencesByCmHandle:
258   get:
259     description: fetch all module references (name and revision) for a given cm handle
260     tags:
261       - network-cm-proxy
262     summary: Fetch all module references (name and revision) for a given cm handle
263     operationId: getModuleReferencesByCmHandle
264     parameters:
265       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
266     responses:
267       200:
268         description: OK
269         content:
270           application/json:
271             schema:
272               type: array
273               items:
274                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
275       400:
276         $ref: 'components.yaml#/components/responses/BadRequest'
277       403:
278         $ref: 'components.yaml#/components/responses/Forbidden'
279       500:
280         $ref: 'components.yaml#/components/responses/InternalServerError'
281
282 getModuleDefinitions:
283   get:
284     tags:
285       - network-cm-proxy
286     summary: Get module definitions
287     description: Get module definitions (module name, revision, yang resource) with options to filter on module name and revision
288     operationId: getModuleDefinitions
289     parameters:
290       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
291       - $ref: 'components.yaml#/components/parameters/moduleNameInQuery'
292       - $ref: 'components.yaml#/components/parameters/revisionInQuery'
293     responses:
294       200:
295         description: OK
296         content:
297           application/json:
298             schema:
299               type: array
300               items:
301                 $ref: 'components.yaml#/components/schemas/RestModuleDefinition'
302       403:
303         $ref: 'components.yaml#/components/responses/Forbidden'
304       500:
305         $ref: 'components.yaml#/components/responses/InternalServerError'
306
307 searchCmHandles:
308   post:
309     description: Execute cm handle query search and return a list of cm handle details. Any number of conditions can be applied. To be included in the result a cm-handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
310     tags:
311       - network-cm-proxy
312     summary: Execute cm handle search using the available conditions
313     operationId: searchCmHandles
314     requestBody:
315       required: true
316       content:
317         application/json:
318           schema:
319             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
320           examples:
321             Cm handle properties query:
322               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
323             Cm handle modules query:
324               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
325             All cm handle query parameters:
326               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
327             Cm handle with CPS path state query:
328               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
329             Cm handle with data sync flag query:
330               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
331     responses:
332       200:
333         description: OK
334         content:
335           application/json:
336             schema:
337               type: array
338               items:
339                 $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
340       400:
341         $ref: 'components.yaml#/components/responses/BadRequest'
342       403:
343         $ref: 'components.yaml#/components/responses/Forbidden'
344       500:
345         $ref: 'components.yaml#/components/responses/InternalServerError'
346
347 retrieveCmHandleDetailsById:
348   get:
349     description: Retrieve CM handle details and properties by cm handle id
350     tags:
351       - network-cm-proxy
352     summary: Retrieve CM handle details
353     operationId: retrieveCmHandleDetailsById
354     parameters:
355       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
356     responses:
357       200:
358         description: OK
359         content:
360           application/json:
361             schema:
362               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
363       400:
364         $ref: 'components.yaml#/components/responses/BadRequest'
365       404:
366         $ref: 'components.yaml#/components/responses/NotFound'
367       500:
368         $ref: 'components.yaml#/components/responses/InternalServerError'
369
370 getCmHandlePropertiesById:
371   get:
372     description: Get CM handle properties by cm handle id
373     tags:
374       - network-cm-proxy
375     summary: Get CM handle properties
376     operationId: getCmHandlePublicPropertiesByCmHandleId
377     parameters:
378       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
379     responses:
380       200:
381         description: OK
382         content:
383           application/json:
384             schema:
385               $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
386       400:
387         $ref: 'components.yaml#/components/responses/BadRequest'
388       404:
389         $ref: 'components.yaml#/components/responses/NotFound'
390       500:
391         $ref: 'components.yaml#/components/responses/InternalServerError'
392
393 getCmHandleStateById:
394   get:
395     description: Get CM handle state by cm handle id
396     tags:
397       - network-cm-proxy
398     summary: Get CM handle state
399     operationId: getCmHandleStateByCmHandleId
400     parameters:
401       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
402     responses:
403       200:
404         description: OK
405         content:
406           application/json:
407             schema:
408               $ref: 'components.yaml#/components/schemas/RestOutputCmHandleCompositeState'
409       400:
410         $ref: 'components.yaml#/components/responses/BadRequest'
411       404:
412         $ref: 'components.yaml#/components/responses/NotFound'
413       500:
414         $ref: 'components.yaml#/components/responses/InternalServerError'
415
416 searchCmHandleIds:
417   post:
418     description: Execute cm handle query search and return a list of cm handle ids. Any number of conditions can be applied. To be included in the result a cm-handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
419     tags:
420       - network-cm-proxy
421     summary: Execute cm handle query upon a given set of query parameters
422     operationId: searchCmHandleIds
423     requestBody:
424       required: true
425       content:
426         application/json:
427           schema:
428             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
429           examples:
430             Cm handle properties query:
431               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
432             Cm handle modules query:
433               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
434             All cm handle query parameters:
435               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
436             Cm handle with CPS path state query:
437               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
438             Cm handle with data sync flag query:
439               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
440     responses:
441       200:
442         description: OK
443         content:
444           application/json:
445             schema:
446               type: array
447               items:
448                 type: string
449       400:
450         $ref: 'components.yaml#/components/responses/BadRequest'
451       403:
452         $ref: 'components.yaml#/components/responses/Forbidden'
453       404:
454         $ref: 'components.yaml#/components/responses/NotFound'
455       500:
456         $ref: 'components.yaml#/components/responses/InternalServerError'
457
458 setDataSyncEnabledFlag:
459   put:
460     tags:
461       - network-cm-proxy
462     summary: Set the Data Sync Enabled Flag
463     description: Set the data sync enabled flag to true or false for a specified Cm-Handle. This will in turn set the data sync state to UNSYNCHRONIZED and NONE_REQUESTED respectfully.
464     operationId: setDataSyncEnabledFlagForCmHandle
465     parameters:
466       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
467       - $ref: 'components.yaml#/components/parameters/dataSyncEnabled'
468     responses:
469       200:
470         $ref: 'components.yaml#/components/responses/Ok'
471       400:
472         $ref: 'components.yaml#/components/responses/BadRequest'
473       403:
474         $ref: 'components.yaml#/components/responses/Forbidden'
475       500:
476         $ref: 'components.yaml#/components/responses/InternalServerError'
477       502:
478         $ref: 'components.yaml#/components/responses/BadGateway'