Replacing ModelMapper with MapStruct
[cps.git] / cps-rest / docs / openapi / components.yml
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2021-2022 Bell Canada.
3 # Modifications Copyright (C) 2021-2022 Nordix Foundation
4 # ================================================================================
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17 # SPDX-License-Identifier: Apache-2.0
18 # ============LICENSE_END=========================================================
19
20 components:
21   schemas:
22
23     AnchorDetails:
24       type: object
25       title: Anchor details by anchor Name
26       properties:
27         name:
28           type: string
29           example: my-anchor
30         dataspaceName:
31           type: string
32           example: my-dataspace
33         schemaSetName:
34           type: string
35           example: my-schema-set
36
37     ErrorMessage:
38       type: object
39       title: Error
40       properties:
41         status:
42           type: string
43         message:
44           type: string
45         details:
46           type: string
47
48     MultipartFile:
49       type: object
50       required:
51         - file
52       properties:
53         file:
54           type: string
55           description: multipartFile
56           format: binary
57           example:  'https://github.com/onap/cps/blob/master/cps-service/src/test/resources/bookstore.yang'
58
59     ModuleReferences:
60       type: object
61       title: Module reference object
62       properties:
63         name:
64           type: string
65           example: my-module-reference-name
66         namespace:
67           type: string
68           example: my-module-reference-namespace
69         revision:
70           type: string
71           example: my-module-reference-revision
72
73     SchemaSetDetails:
74       type: object
75       title: Schema set details by dataspace and schemasetName
76       required:
77         - "moduleReferences"
78       properties:
79         dataspaceName:
80           type: string
81           example: my-dataspace
82         moduleReferences:
83           type: array
84           items:
85             $ref: '#/components/schemas/ModuleReferences'
86         name:
87           type: string
88           example: my-schema-set
89
90   examples:
91     dataSample:
92       value:
93         test:bookstore:
94           bookstore-name: Chapters
95           categories:
96             - code: 01
97               name: SciFi
98             - code: 02
99               name: kids
100
101   parameters:
102     dataspaceNameInQuery:
103       name: dataspace-name
104       in: query
105       description: dataspace-name
106       required: true
107       schema:
108         type: string
109         example: my-dataspace
110     dataspaceNameInPath:
111       name: dataspace-name
112       in: path
113       description: dataspace-name
114       required: true
115       schema:
116         type: string
117         example: my-dataspace
118     anchorNameInPath:
119       name: anchor-name
120       in: path
121       description: anchor-name
122       required: true
123       schema:
124         type: string
125         example: my-anchor
126     schemaSetNameInQuery:
127       name: schema-set-name
128       in: query
129       description: schema-set-name
130       required: true
131       schema:
132         type: string
133         example: my-schema-set
134     schemaSetNameInPath:
135       name: schema-set-name
136       in: path
137       description: schema-set-name
138       required: true
139       schema:
140         type: string
141         example: my-schema-set
142     anchorNameInQuery:
143       name: anchor-name
144       in: query
145       description: anchor-name
146       required: true
147       schema:
148         type: string
149         example: my-anchor
150     xpathInQuery:
151       name: xpath
152       in: query
153       description: For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html
154       required: false
155       schema:
156         type: string
157         default: /
158       examples:
159         container xpath:
160           value: /shops/bookstore
161         list attributes xpath:
162           value: /shops/bookstore/categories[@code=1]
163     requiredXpathInQuery:
164       name: xpath
165       in: query
166       description: For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html
167       required: true
168       schema:
169         type: string
170       examples:
171         container xpath:
172           value: /shops/bookstore
173         list attributes xpath:
174           value: /shops/bookstore/categories[@code=1]
175     cpsPathInQuery:
176       name: cps-path
177       in: query
178       description: For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html
179       required: false
180       schema:
181         type: string
182         default: /
183       examples:
184         container cps path:
185           value: //bookstore
186         list attributes cps path:
187           value: //categories[@code=1]
188     includeDescendantsOptionInQuery:
189       name: include-descendants
190       in: query
191       description: include-descendants
192       required: false
193       schema:
194         type: boolean
195         default: false
196         example: false
197     observedTimestampInQuery:
198       name: observed-timestamp
199       in: query
200       description: observed-timestamp
201       required: false
202       schema:
203         type: string
204         example: '2021-03-21T00:10:34.030-0100'
205
206   responses:
207     NotFound:
208       description: The specified resource was not found
209       content:
210         application/json:
211           schema:
212             $ref: '#/components/schemas/ErrorMessage'
213           example:
214             status: 404
215             message: Resource Not Found
216             details: The requested resource is not found
217     Unauthorized:
218       description: Unauthorized
219       content:
220         application/json:
221           schema:
222             $ref: '#/components/schemas/ErrorMessage'
223           example:
224             status: 401
225             message: Unauthorized request
226             details: This request is unauthorized
227     Forbidden:
228       description: Forbidden
229       content:
230         application/json:
231           schema:
232             $ref: '#/components/schemas/ErrorMessage'
233           example:
234             status: 403
235             message: Request Forbidden
236             details: This request is forbidden
237     BadRequest:
238       description: Bad Request
239       content:
240         application/json:
241           schema:
242             $ref: '#/components/schemas/ErrorMessage'
243           example:
244             status: 400
245             message: Bad Request
246             details: The provided request is not valid
247     Conflict:
248       description: Conflict
249       content:
250         application/json:
251           schema:
252             $ref: '#/components/schemas/ErrorMessage'
253           example:
254             status: 409
255             message: Conflicting request
256             details: The request cannot be processed as the resource is in use.
257     Ok:
258       description: OK
259       content:
260         application/json:
261           schema:
262             type: object
263           examples:
264             dataSample:
265               value: ""
266     Created:
267       description: Created
268       content:
269         text/plain:
270           schema:
271             type: string
272             example: my-resource
273     InternalServerError:
274       description: Internal Server Error
275       content:
276         application/json:
277           schema:
278             $ref: "#/components/schemas/ErrorMessage"
279           example:
280             status: 500
281             message: Internal Server Error
282             details: Internal Server Error occurred
283     NoContent:
284       description: No Content
285       content: {}