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