Merge "Replacing ModelMapper with MapStruct"
[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 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 getResourceDataForPassthroughOperational:
21   get:
22     tags:
23       - network-cm-proxy
24     summary: Get resource data from pass-through operational for cm handle
25     description: Get resource data from pass-through operational for given cm handle
26     operationId: getResourceDataOperationalForCmHandle
27     parameters:
28       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
29       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
30       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
31       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
32       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
33     responses:
34       200:
35         description: OK
36         content:
37           application/json:
38             schema:
39               type: object
40             examples:
41               dataSampleResponse:
42                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
43       400:
44         $ref: 'components.yaml#/components/responses/BadRequest'
45       401:
46         $ref: 'components.yaml#/components/responses/Unauthorized'
47       403:
48         $ref: 'components.yaml#/components/responses/Forbidden'
49       500:
50         $ref: 'components.yaml#/components/responses/InternalServerError'
51
52 resourceDataForPassthroughRunning:
53   get:
54     tags:
55       - network-cm-proxy
56     summary: Get resource data from pass-through running for cm handle
57     description: Get resource data from pass-through running for given cm handle
58     operationId: getResourceDataRunningForCmHandle
59     parameters:
60       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
61       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
62       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
63       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
64       - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
65     responses:
66       200:
67         description: OK
68         content:
69           application/json:
70             schema:
71               type: object
72             examples:
73               dataSampleResponse:
74                 $ref: 'components.yaml#/components/examples/dataSampleResponse'
75       400:
76         $ref: 'components.yaml#/components/responses/BadRequest'
77       401:
78         $ref: 'components.yaml#/components/responses/Unauthorized'
79       403:
80         $ref: 'components.yaml#/components/responses/Forbidden'
81       500:
82         $ref: 'components.yaml#/components/responses/InternalServerError'
83   post:
84     tags:
85       - network-cm-proxy
86     summary: create resource data from pass-through running for cm handle
87     description: create resource data from pass-through running for given cm handle
88     operationId: createResourceDataRunningForCmHandle
89     parameters:
90       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
91       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
92       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
93     requestBody:
94       required: true
95       content:
96         application/json:
97           schema:
98             type: object
99           examples:
100             dataSampleRequest:
101               $ref: 'components.yaml#/components/examples/dataSampleRequest'
102         application/yang-data+json:
103           schema:
104             type: object
105           examples:
106             dataSampleRequest:
107               $ref: 'components.yaml#/components/examples/dataSampleRequest'
108     responses:
109       201:
110         $ref: 'components.yaml#/components/responses/Created'
111       400:
112         $ref: 'components.yaml#/components/responses/BadRequest'
113       401:
114         $ref: 'components.yaml#/components/responses/Unauthorized'
115       403:
116         $ref: 'components.yaml#/components/responses/Forbidden'
117       500:
118         $ref: 'components.yaml#/components/responses/InternalServerError'
119
120   put:
121     tags:
122       - network-cm-proxy
123     summary: Update resource data from pass-through running for a cm handle
124     description: Update resource data from pass-through running for the given cm handle
125     operationId: updateResourceDataRunningForCmHandle
126     parameters:
127       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
128       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
129       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
130     requestBody:
131       required: true
132       content:
133         application/json:
134           schema:
135             type: object
136           examples:
137             dataSampleRequest:
138               $ref: 'components.yaml#/components/examples/dataSampleRequest'
139         application/yang-data+json:
140           schema:
141             type: object
142           examples:
143             dataSampleRequest:
144               $ref: 'components.yaml#/components/examples/dataSampleRequest'
145     responses:
146       200:
147         $ref: 'components.yaml#/components/responses/Ok'
148       400:
149         $ref: 'components.yaml#/components/responses/BadRequest'
150       401:
151         $ref: 'components.yaml#/components/responses/Unauthorized'
152       403:
153         $ref: 'components.yaml#/components/responses/Forbidden'
154       500:
155         $ref: 'components.yaml#/components/responses/InternalServerError'
156
157   patch:
158     tags:
159       - network-cm-proxy
160     summary: Patch resource data from pass-through running
161     description: Patch resource data from pass-through running for the given cm handle
162     operationId: patchResourceDataRunningForCmHandle
163     parameters:
164       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
165       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
166       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
167     requestBody:
168       required: true
169       content:
170         '*/*':
171           schema:
172             type: object
173           examples:
174             dataSampleRequest:
175               $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
176     responses:
177       200:
178         $ref: 'components.yaml#/components/responses/Ok'
179       400:
180         $ref: 'components.yaml#/components/responses/BadRequest'
181       401:
182         $ref: 'components.yaml#/components/responses/Unauthorized'
183       403:
184         $ref: 'components.yaml#/components/responses/Forbidden'
185       500:
186         $ref: 'components.yaml#/components/responses/InternalServerError'
187
188   delete:
189     tags:
190       - network-cm-proxy
191     summary: Delete resource data
192     description: Delete resource data from pass-through running for a given cm handle
193     operationId: deleteResourceDataRunningForCmHandle
194     parameters:
195       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
196       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
197       - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
198     responses:
199       204:
200         $ref: 'components.yaml#/components/responses/NoContent'
201       400:
202         $ref: 'components.yaml#/components/responses/BadRequest'
203       401:
204         $ref: 'components.yaml#/components/responses/Unauthorized'
205       403:
206         $ref: 'components.yaml#/components/responses/Forbidden'
207       404:
208         $ref: 'components.yaml#/components/responses/NotFound'
209       500:
210         $ref: 'components.yaml#/components/responses/InternalServerError'
211
212 fetchModuleReferencesByCmHandle:
213   get:
214     description: fetch all module references (name and revision) for a given cm handle
215     tags:
216       - network-cm-proxy
217     summary: Fetch all module references (name and revision) for a given cm handle
218     operationId: getModuleReferencesByCmHandle
219     parameters:
220       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
221     responses:
222       200:
223         description: OK
224         content:
225           application/json:
226             schema:
227               type: array
228               items:
229                 $ref: 'components.yaml#/components/schemas/RestModuleReference'
230       400:
231         $ref: 'components.yaml#/components/responses/BadRequest'
232       401:
233         $ref: 'components.yaml#/components/responses/Unauthorized'
234       403:
235         $ref: 'components.yaml#/components/responses/Forbidden'
236       500:
237         $ref: 'components.yaml#/components/responses/InternalServerError'
238
239 executeCmHandleSearch:
240   post:
241     description: Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names
242     tags:
243       - network-cm-proxy
244     summary: Execute cm handle search using the available conditions
245     operationId: executeCmHandleSearch
246     requestBody:
247       required: true
248       content:
249         application/json:
250           schema:
251             $ref: 'components.yaml#/components/schemas/Conditions'
252     responses:
253       200:
254         description: OK
255         content:
256           application/json:
257             schema:
258               $ref: 'components.yaml#/components/schemas/CmHandles'
259       400:
260         $ref: 'components.yaml#/components/responses/BadRequest'
261       401:
262         $ref: 'components.yaml#/components/responses/Unauthorized'
263       403:
264         $ref: 'components.yaml#/components/responses/Forbidden'
265       500:
266         $ref: 'components.yaml#/components/responses/InternalServerError'
267
268 retrieveCmHandleDetailsById:
269   get:
270     description: Retrieve CM handle details and properties by cm handle id
271     tags:
272       - network-cm-proxy
273     summary: Retrieve CM handle details
274     operationId: retrieveCmHandleDetailsById
275     parameters:
276       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
277     responses:
278       200:
279         description: OK
280         content:
281           application/json:
282             schema:
283               $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
284       400:
285         $ref: 'components.yaml#/components/responses/BadRequest'
286       401:
287         $ref: 'components.yaml#/components/responses/Unauthorized'
288       403:
289         $ref: 'components.yaml#/components/responses/Forbidden'
290       404:
291         $ref: 'components.yaml#/components/responses/NotFound'
292       500:
293         $ref: 'components.yaml#/components/responses/InternalServerError'