Merge "Remove Http Status 401 for cps core and NCMP(CPS-2126 #3)"
[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     responses:
36       200:
37         description: OK
38         content:
39           application/json:
40             schema:
41               type: object
42             examples:
43               dataSampleResponse:
44                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
45       400:
46         $ref: 'components.yaml#/components/responses/BadRequest'
47       403:
48         $ref: 'components.yaml#/components/responses/Forbidden'
49       500:
50         $ref: 'components.yaml#/components/responses/InternalServerError'
51       502:
52         $ref: 'components.yaml#/components/responses/BadGateway'
53
54   post:
55     tags:
56       - network-cm-proxy
57     summary: create resource data from pass-through running for cm handle
58     description: create resource data from pass-through running for given cm handle
59     operationId: createResourceDataRunningForCmHandle
60     parameters:
61       - $ref: 'components.yaml#/components/parameters/datastoreName'
62       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
63       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
64       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
65     requestBody:
66       required: true
67       content:
68         application/json:
69           schema:
70             type: object
71           examples:
72             dataSampleRequest:
73               $ref: 'components.yaml#/components/examples/dataSampleRequest'
74         application/yang-data+json:
75           schema:
76             type: object
77           examples:
78             dataSampleRequest:
79               $ref: 'components.yaml#/components/examples/dataSampleRequest'
80     responses:
81       201:
82         $ref: 'components.yaml#/components/responses/Created'
83       400:
84         $ref: 'components.yaml#/components/responses/BadRequest'
85       403:
86         $ref: 'components.yaml#/components/responses/Forbidden'
87       500:
88         $ref: 'components.yaml#/components/responses/InternalServerError'
89       502:
90         $ref: 'components.yaml#/components/responses/BadGateway'
91
92   put:
93     tags:
94       - network-cm-proxy
95     summary: Update resource data from pass-through running for a cm handle
96     description: Update resource data from pass-through running for the given cm handle
97     operationId: updateResourceDataRunningForCmHandle
98     parameters:
99       - $ref: 'components.yaml#/components/parameters/datastoreName'
100       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
101       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
102       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
103     requestBody:
104       required: true
105       content:
106         application/json:
107           schema:
108             type: object
109           examples:
110             dataSampleRequest:
111               $ref: 'components.yaml#/components/examples/dataSampleRequest'
112         application/yang-data+json:
113           schema:
114             type: object
115           examples:
116             dataSampleRequest:
117               $ref: 'components.yaml#/components/examples/dataSampleRequest'
118     responses:
119       200:
120         $ref: 'components.yaml#/components/responses/Ok'
121       400:
122         $ref: 'components.yaml#/components/responses/BadRequest'
123       403:
124         $ref: 'components.yaml#/components/responses/Forbidden'
125       500:
126         $ref: 'components.yaml#/components/responses/InternalServerError'
127       502:
128         $ref: 'components.yaml#/components/responses/BadGateway'
129
130   patch:
131     tags:
132       - network-cm-proxy
133     summary: Patch resource data from pass-through running
134     description: Patch resource data from pass-through running for the given cm handle
135     operationId: patchResourceDataRunningForCmHandle
136     parameters:
137       - $ref: 'components.yaml#/components/parameters/datastoreName'
138       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
139       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
140       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
141     requestBody:
142       required: true
143       content:
144         '*/*':
145           schema:
146             type: object
147           examples:
148             dataSampleRequest:
149               $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
150     responses:
151       200:
152         $ref: 'components.yaml#/components/responses/Ok'
153       400:
154         $ref: 'components.yaml#/components/responses/BadRequest'
155       403:
156         $ref: 'components.yaml#/components/responses/Forbidden'
157       500:
158         $ref: 'components.yaml#/components/responses/InternalServerError'
159       502:
160         $ref: 'components.yaml#/components/responses/BadGateway'
161
162   delete:
163     tags:
164       - network-cm-proxy
165     summary: Delete resource data
166     description: Delete resource data from pass-through running for a given cm handle
167     operationId: deleteResourceDataRunningForCmHandle
168     parameters:
169       - $ref: 'components.yaml#/components/parameters/datastoreName'
170       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
171       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
172       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
173     responses:
174       204:
175         $ref: 'components.yaml#/components/responses/NoContent'
176       400:
177         $ref: 'components.yaml#/components/responses/BadRequest'
178       403:
179         $ref: 'components.yaml#/components/responses/Forbidden'
180       404:
181         $ref: 'components.yaml#/components/responses/NotFound'
182       500:
183         $ref: 'components.yaml#/components/responses/InternalServerError'
184       502:
185         $ref: 'components.yaml#/components/responses/BadGateway'
186
187 dataOperationForCmHandle:
188   post:
189     tags:
190       - network-cm-proxy
191     summary: Execute a data operation for group of cm handle ids
192     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.
193     operationId: executeDataOperationForCmHandles
194     parameters:
195       - $ref: 'components.yaml#/components/parameters/requiredTopicParamInQuery'
196     requestBody:
197       required: true
198       content:
199         application/json:
200           schema:
201             $ref: 'components.yaml#/components/schemas/DataOperationRequest'
202     responses:
203       200:
204         description: OK
205         content:
206           application/json:
207             schema:
208               type: object
209       400:
210         $ref: 'components.yaml#/components/responses/BadRequest'
211       403:
212         $ref: 'components.yaml#/components/responses/Forbidden'
213       500:
214         $ref: 'components.yaml#/components/responses/InternalServerError'
215       502:
216         $ref: 'components.yaml#/components/responses/BadGateway'
217
218 queryResourceDataForCmHandle:
219   get:
220     tags:
221       - network-cm-proxy
222     summary: Query resource data for a given cm handle
223     description: Query resource data for a given cm handle
224     operationId: queryResourceDataForCmHandle
225     parameters:
226       - $ref: 'components.yaml#/components/parameters/datastoreName'
227       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
228       - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
229       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
230       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
231       - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
232     responses:
233       200:
234         description: OK
235         content:
236           application/json:
237             schema:
238               type: object
239             examples:
240               dataSampleResponse:
241                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
242       400:
243         $ref: 'components.yaml#/components/responses/BadRequest'
244       403:
245         $ref: 'components.yaml#/components/responses/Forbidden'
246       500:
247         $ref: 'components.yaml#/components/responses/InternalServerError'
248       502:
249         $ref: 'components.yaml#/components/responses/BadGateway'
250
251 fetchModuleReferencesByCmHandle:
252   get:
253     description: fetch all module references (name and revision) for a given cm handle
254     tags:
255       - network-cm-proxy
256     summary: Fetch all module references (name and revision) for a given cm handle
257     operationId: getModuleReferencesByCmHandle
258     parameters:
259       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
260     responses:
261       200:
262         description: OK
263         content:
264           application/json:
265             schema:
266               type: array
267               items:
268                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
269       400:
270         $ref: 'components.yaml#/components/responses/BadRequest'
271       403:
272         $ref: 'components.yaml#/components/responses/Forbidden'
273       500:
274         $ref: 'components.yaml#/components/responses/InternalServerError'
275
276 getModuleDefinitions:
277   get:
278     tags:
279       - network-cm-proxy
280     summary: Get module definitions
281     description: Get module definitions (module name, revision, yang resource) with options to filter on module name and revision
282     operationId: getModuleDefinitions
283     parameters:
284       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
285       - $ref: 'components.yaml#/components/parameters/moduleNameInQuery'
286       - $ref: 'components.yaml#/components/parameters/revisionInQuery'
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/RestModuleDefinition'
296       403:
297         $ref: 'components.yaml#/components/responses/Forbidden'
298       500:
299         $ref: 'components.yaml#/components/responses/InternalServerError'
300
301 searchCmHandles:
302   post:
303     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.
304     tags:
305       - network-cm-proxy
306     summary: Execute cm handle search using the available conditions
307     operationId: searchCmHandles
308     requestBody:
309       required: true
310       content:
311         application/json:
312           schema:
313             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
314           examples:
315             Cm handle properties query:
316               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
317             Cm handle modules query:
318               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
319             All cm handle query parameters:
320               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
321             Cm handle with CPS path state query:
322               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
323             Cm handle with data sync flag query:
324               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
325     responses:
326       200:
327         description: OK
328         content:
329           application/json:
330             schema:
331               type: array
332               items:
333                 $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
334       400:
335         $ref: 'components.yaml#/components/responses/BadRequest'
336       403:
337         $ref: 'components.yaml#/components/responses/Forbidden'
338       500:
339         $ref: 'components.yaml#/components/responses/InternalServerError'
340
341 retrieveCmHandleDetailsById:
342   get:
343     description: Retrieve CM handle details and properties by cm handle id
344     tags:
345       - network-cm-proxy
346     summary: Retrieve CM handle details
347     operationId: retrieveCmHandleDetailsById
348     parameters:
349       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
350     responses:
351       200:
352         description: OK
353         content:
354           application/json:
355             schema:
356               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
357       400:
358         $ref: 'components.yaml#/components/responses/BadRequest'
359       404:
360         $ref: 'components.yaml#/components/responses/NotFound'
361       500:
362         $ref: 'components.yaml#/components/responses/InternalServerError'
363
364 getCmHandlePropertiesById:
365   get:
366     description: Get CM handle properties by cm handle id
367     tags:
368       - network-cm-proxy
369     summary: Get CM handle properties
370     operationId: getCmHandlePublicPropertiesByCmHandleId
371     parameters:
372       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
373     responses:
374       200:
375         description: OK
376         content:
377           application/json:
378             schema:
379               $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
380       400:
381         $ref: 'components.yaml#/components/responses/BadRequest'
382       404:
383         $ref: 'components.yaml#/components/responses/NotFound'
384       500:
385         $ref: 'components.yaml#/components/responses/InternalServerError'
386
387 getCmHandleStateById:
388   get:
389     description: Get CM handle state by cm handle id
390     tags:
391       - network-cm-proxy
392     summary: Get CM handle state
393     operationId: getCmHandleStateByCmHandleId
394     parameters:
395       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
396     responses:
397       200:
398         description: OK
399         content:
400           application/json:
401             schema:
402               $ref: 'components.yaml#/components/schemas/RestOutputCmHandleCompositeState'
403       400:
404         $ref: 'components.yaml#/components/responses/BadRequest'
405       404:
406         $ref: 'components.yaml#/components/responses/NotFound'
407       500:
408         $ref: 'components.yaml#/components/responses/InternalServerError'
409
410 searchCmHandleIds:
411   post:
412     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.
413     tags:
414       - network-cm-proxy
415     summary: Execute cm handle query upon a given set of query parameters
416     operationId: searchCmHandleIds
417     requestBody:
418       required: true
419       content:
420         application/json:
421           schema:
422             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
423           examples:
424             Cm handle properties query:
425               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
426             Cm handle modules query:
427               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
428             All cm handle query parameters:
429               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
430             Cm handle with CPS path state query:
431               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
432             Cm handle with data sync flag query:
433               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
434     responses:
435       200:
436         description: OK
437         content:
438           application/json:
439             schema:
440               type: array
441               items:
442                 type: string
443       400:
444         $ref: 'components.yaml#/components/responses/BadRequest'
445       403:
446         $ref: 'components.yaml#/components/responses/Forbidden'
447       404:
448         $ref: 'components.yaml#/components/responses/NotFound'
449       500:
450         $ref: 'components.yaml#/components/responses/InternalServerError'
451
452 setDataSyncEnabledFlag:
453   put:
454     tags:
455       - network-cm-proxy
456     summary: Set the Data Sync Enabled Flag
457     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.
458     operationId: setDataSyncEnabledFlagForCmHandle
459     parameters:
460       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
461       - $ref: 'components.yaml#/components/parameters/dataSyncEnabled'
462     responses:
463       200:
464         $ref: 'components.yaml#/components/responses/Ok'
465       400:
466         $ref: 'components.yaml#/components/responses/BadRequest'
467       403:
468         $ref: 'components.yaml#/components/responses/Forbidden'
469       500:
470         $ref: 'components.yaml#/components/responses/InternalServerError'
471       502:
472         $ref: 'components.yaml#/components/responses/BadGateway'