CPS-2182 - #4 Add module Set tag to NCMPs DMI Batch Data interface
[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. A maximum of 50 cm handles per operation is supported.
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       413:
220         $ref: 'components.yaml#/components/responses/PayloadTooLarge'
221       500:
222         $ref: 'components.yaml#/components/responses/InternalServerError'
223       502:
224         $ref: 'components.yaml#/components/responses/BadGateway'
225
226 queryResourceDataForCmHandle:
227   get:
228     tags:
229       - network-cm-proxy
230     summary: Query resource data for a given cm handle
231     description: Query resource data for a given cm handle
232     operationId: queryResourceDataForCmHandle
233     parameters:
234       - $ref: 'components.yaml#/components/parameters/datastoreName'
235       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
236       - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
237       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
238       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
239       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
240     responses:
241       200:
242         description: OK
243         content:
244           application/json:
245             schema:
246               type: object
247             examples:
248               dataSampleResponse:
249                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
250       400:
251         $ref: 'components.yaml#/components/responses/BadRequest'
252       403:
253         $ref: 'components.yaml#/components/responses/Forbidden'
254       500:
255         $ref: 'components.yaml#/components/responses/InternalServerError'
256       502:
257         $ref: 'components.yaml#/components/responses/BadGateway'
258
259 fetchModuleReferencesByCmHandle:
260   get:
261     description: fetch all module references (name and revision) for a given cm handle
262     tags:
263       - network-cm-proxy
264     summary: Fetch all module references (name and revision) for a given cm handle
265     operationId: getModuleReferencesByCmHandle
266     parameters:
267       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
268     responses:
269       200:
270         description: OK
271         content:
272           application/json:
273             schema:
274               type: array
275               items:
276                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
277       400:
278         $ref: 'components.yaml#/components/responses/BadRequest'
279       403:
280         $ref: 'components.yaml#/components/responses/Forbidden'
281       500:
282         $ref: 'components.yaml#/components/responses/InternalServerError'
283
284 getModuleDefinitions:
285   get:
286     tags:
287       - network-cm-proxy
288     summary: Get module definitions
289     description: Get module definitions (module name, revision, yang resource) with options to filter on module name and revision
290     operationId: getModuleDefinitions
291     parameters:
292       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
293       - $ref: 'components.yaml#/components/parameters/moduleNameInQuery'
294       - $ref: 'components.yaml#/components/parameters/revisionInQuery'
295     responses:
296       200:
297         description: OK
298         content:
299           application/json:
300             schema:
301               type: array
302               items:
303                 $ref: 'components.yaml#/components/schemas/RestModuleDefinition'
304       403:
305         $ref: 'components.yaml#/components/responses/Forbidden'
306       500:
307         $ref: 'components.yaml#/components/responses/InternalServerError'
308
309 searchCmHandles:
310   post:
311     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.
312     tags:
313       - network-cm-proxy
314     summary: Execute cm handle search using the available conditions
315     operationId: searchCmHandles
316     requestBody:
317       required: true
318       content:
319         application/json:
320           schema:
321             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
322           examples:
323             Cm handle properties query:
324               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
325             Cm handle modules query:
326               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
327             All cm handle query parameters:
328               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
329             Cm handle with CPS path state query:
330               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
331             Cm handle with data sync flag query:
332               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
333     responses:
334       200:
335         description: OK
336         content:
337           application/json:
338             schema:
339               type: array
340               items:
341                 $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
342       400:
343         $ref: 'components.yaml#/components/responses/BadRequest'
344       403:
345         $ref: 'components.yaml#/components/responses/Forbidden'
346       500:
347         $ref: 'components.yaml#/components/responses/InternalServerError'
348
349 retrieveCmHandleDetailsById:
350   get:
351     description: Retrieve CM handle details and properties by cm handle id
352     tags:
353       - network-cm-proxy
354     summary: Retrieve CM handle details
355     operationId: retrieveCmHandleDetailsById
356     parameters:
357       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
358     responses:
359       200:
360         description: OK
361         content:
362           application/json:
363             schema:
364               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
365       400:
366         $ref: 'components.yaml#/components/responses/BadRequest'
367       404:
368         $ref: 'components.yaml#/components/responses/NotFound'
369       500:
370         $ref: 'components.yaml#/components/responses/InternalServerError'
371
372 getCmHandlePropertiesById:
373   get:
374     description: Get CM handle properties by cm handle id
375     tags:
376       - network-cm-proxy
377     summary: Get CM handle properties
378     operationId: getCmHandlePublicPropertiesByCmHandleId
379     parameters:
380       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
381     responses:
382       200:
383         description: OK
384         content:
385           application/json:
386             schema:
387               $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
388       400:
389         $ref: 'components.yaml#/components/responses/BadRequest'
390       404:
391         $ref: 'components.yaml#/components/responses/NotFound'
392       500:
393         $ref: 'components.yaml#/components/responses/InternalServerError'
394
395 getCmHandleStateById:
396   get:
397     description: Get CM handle state by cm handle id
398     tags:
399       - network-cm-proxy
400     summary: Get CM handle state
401     operationId: getCmHandleStateByCmHandleId
402     parameters:
403       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
404     responses:
405       200:
406         description: OK
407         content:
408           application/json:
409             schema:
410               $ref: 'components.yaml#/components/schemas/RestOutputCmHandleCompositeState'
411       400:
412         $ref: 'components.yaml#/components/responses/BadRequest'
413       404:
414         $ref: 'components.yaml#/components/responses/NotFound'
415       500:
416         $ref: 'components.yaml#/components/responses/InternalServerError'
417
418 searchCmHandleIds:
419   post:
420     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.
421     tags:
422       - network-cm-proxy
423     summary: Execute cm handle query upon a given set of query parameters
424     operationId: searchCmHandleIds
425     requestBody:
426       required: true
427       content:
428         application/json:
429           schema:
430             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
431           examples:
432             Cm handle properties query:
433               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
434             Cm handle modules query:
435               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
436             All cm handle query parameters:
437               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
438             Cm handle with CPS path state query:
439               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
440             Cm handle with data sync flag query:
441               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
442     responses:
443       200:
444         description: OK
445         content:
446           application/json:
447             schema:
448               type: array
449               items:
450                 type: string
451       400:
452         $ref: 'components.yaml#/components/responses/BadRequest'
453       403:
454         $ref: 'components.yaml#/components/responses/Forbidden'
455       404:
456         $ref: 'components.yaml#/components/responses/NotFound'
457       500:
458         $ref: 'components.yaml#/components/responses/InternalServerError'
459
460 setDataSyncEnabledFlag:
461   put:
462     tags:
463       - network-cm-proxy
464     summary: Set the Data Sync Enabled Flag
465     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.
466     operationId: setDataSyncEnabledFlagForCmHandle
467     parameters:
468       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
469       - $ref: 'components.yaml#/components/parameters/dataSyncEnabled'
470     responses:
471       200:
472         $ref: 'components.yaml#/components/responses/Ok'
473       400:
474         $ref: 'components.yaml#/components/responses/BadRequest'
475       403:
476         $ref: 'components.yaml#/components/responses/Forbidden'
477       500:
478         $ref: 'components.yaml#/components/responses/InternalServerError'
479       502:
480         $ref: 'components.yaml#/components/responses/BadGateway'