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