38db26f4708809929fb46753bb7141cbb118cdd2
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
1 #  ============LICENSE_START=======================================================
2 #  Copyright (C) 2021-2022 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 fetchModuleReferencesByCmHandle:
198   get:
199     description: fetch all module references (name and revision) for a given cm handle
200     tags:
201       - network-cm-proxy
202     summary: Fetch all module references (name and revision) for a given cm handle
203     operationId: getModuleReferencesByCmHandle
204     parameters:
205       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
206     responses:
207       200:
208         description: OK
209         content:
210           application/json:
211             schema:
212               type: array
213               items:
214                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
215       400:
216         $ref: 'components.yaml#/components/responses/BadRequest'
217       401:
218         $ref: 'components.yaml#/components/responses/Unauthorized'
219       403:
220         $ref: 'components.yaml#/components/responses/Forbidden'
221       500:
222         $ref: 'components.yaml#/components/responses/InternalServerError'
223
224 fetchModuleDefinitionsByCmHandle:
225   get:
226     description: Fetch all module definitions (name, revision, yang resource) for a given cm handle
227     tags:
228       - network-cm-proxy
229     summary: Fetch all module definitions (name, revision, yang resource) for a given cm handle
230     operationId: getModuleDefinitionsByCmHandleId
231     parameters:
232       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
233     responses:
234       200:
235         description: OK
236         content:
237           application/json:
238             schema:
239               type: array
240               items:
241                 $ref: 'components.yaml#/components/schemas/RestModuleDefinition'
242       401:
243         $ref: 'components.yaml#/components/responses/Unauthorized'
244       403:
245         $ref: 'components.yaml#/components/responses/Forbidden'
246       500:
247         $ref: 'components.yaml#/components/responses/InternalServerError'
248
249 searchCmHandles:
250   post:
251     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.
252     tags:
253       - network-cm-proxy
254     summary: Execute cm handle search using the available conditions
255     operationId: searchCmHandles
256     requestBody:
257       required: true
258       content:
259         application/json:
260           schema:
261             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
262           examples:
263             Cm handle properties query:
264               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
265             Cm handle modules query:
266               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
267             All cm handle query parameters:
268               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
269             Cm handle with CPS path state query:
270               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
271             Cm handle with data sync flag query:
272               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
273     responses:
274       200:
275         description: OK
276         content:
277           application/json:
278             schema:
279               type: array
280               items:
281                 $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
282       400:
283         $ref: 'components.yaml#/components/responses/BadRequest'
284       401:
285         $ref: 'components.yaml#/components/responses/Unauthorized'
286       403:
287         $ref: 'components.yaml#/components/responses/Forbidden'
288       500:
289         $ref: 'components.yaml#/components/responses/InternalServerError'
290
291 retrieveCmHandleDetailsById:
292   get:
293     description: Retrieve CM handle details and properties by cm handle id
294     tags:
295       - network-cm-proxy
296     summary: Retrieve CM handle details
297     operationId: retrieveCmHandleDetailsById
298     parameters:
299       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
300     responses:
301       200:
302         description: OK
303         content:
304           application/json:
305             schema:
306               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
307       400:
308         $ref: 'components.yaml#/components/responses/BadRequest'
309       401:
310         $ref: 'components.yaml#/components/responses/Unauthorized'
311       404:
312         $ref: 'components.yaml#/components/responses/NotFound'
313       500:
314         $ref: 'components.yaml#/components/responses/InternalServerError'
315
316 getCmHandlePropertiesById:
317   get:
318     description: Get CM handle properties by cm handle id
319     tags:
320       - network-cm-proxy
321     summary: Get CM handle properties
322     operationId: getCmHandlePublicPropertiesByCmHandleId
323     parameters:
324       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
325     responses:
326       200:
327         description: OK
328         content:
329           application/json:
330             schema:
331               $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
332       400:
333         $ref: 'components.yaml#/components/responses/BadRequest'
334       401:
335         $ref: 'components.yaml#/components/responses/Unauthorized'
336       404:
337         $ref: 'components.yaml#/components/responses/NotFound'
338       500:
339         $ref: 'components.yaml#/components/responses/InternalServerError'
340
341 getCmHandleStateById:
342   get:
343     description: Get CM handle state by cm handle id
344     tags:
345       - network-cm-proxy
346     summary: Get CM handle state
347     operationId: getCmHandleStateByCmHandleId
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/RestOutputCmHandleCompositeState'
357       400:
358         $ref: 'components.yaml#/components/responses/BadRequest'
359       401:
360         $ref: 'components.yaml#/components/responses/Unauthorized'
361       404:
362         $ref: 'components.yaml#/components/responses/NotFound'
363       500:
364         $ref: 'components.yaml#/components/responses/InternalServerError'
365
366 searchCmHandleIds:
367   post:
368     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.
369     tags:
370       - network-cm-proxy
371     summary: Execute cm handle query upon a given set of query parameters
372     operationId: searchCmHandleIds
373     requestBody:
374       required: true
375       content:
376         application/json:
377           schema:
378             $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
379           examples:
380             Cm handle properties query:
381               $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
382             Cm handle modules query:
383               $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
384             All cm handle query parameters:
385               $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
386             Cm handle with CPS path state query:
387               $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
388             Cm handle with data sync flag query:
389               $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
390     responses:
391       200:
392         description: OK
393         content:
394           application/json:
395             schema:
396               type: array
397               items:
398                 type: string
399       400:
400         $ref: 'components.yaml#/components/responses/BadRequest'
401       401:
402         $ref: 'components.yaml#/components/responses/Unauthorized'
403       403:
404         $ref: 'components.yaml#/components/responses/Forbidden'
405       404:
406         $ref: 'components.yaml#/components/responses/NotFound'
407       500:
408         $ref: 'components.yaml#/components/responses/InternalServerError'
409
410 setDataSyncEnabledFlag:
411   put:
412     tags:
413       - network-cm-proxy
414     summary: Set the Data Sync Enabled Flag
415     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.
416     operationId: setDataSyncEnabledFlagForCmHandle
417     parameters:
418       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
419       - $ref: 'components.yaml#/components/parameters/dataSyncEnabled'
420     responses:
421       200:
422         $ref: 'components.yaml#/components/responses/Ok'
423       400:
424         $ref: 'components.yaml#/components/responses/BadRequest'
425       401:
426         $ref: 'components.yaml#/components/responses/Unauthorized'
427       403:
428         $ref: 'components.yaml#/components/responses/Forbidden'
429       500:
430         $ref: 'components.yaml#/components/responses/InternalServerError'
431       502:
432         $ref: 'components.yaml#/components/responses/BadGateway'