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