2b65ae4400f0f5bca0ae76bcf70c313a45d5ecbb
[cps.git] / cps-rest / docs / openapi / cpsData.yml
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2021 Bell Canada.
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 # SPDX-License-Identifier: Apache-2.0
17 # ============LICENSE_END=========================================================
18
19 nodeByDataspaceAndAnchor:
20   get:
21     description: Get a node with an option to retrieve all the children for a given anchor and dataspace
22     tags:
23       - cps-data
24     summary: Get a node
25     operationId: getNodeByDataspaceAndAnchor
26     parameters:
27       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
28       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
29       - $ref: 'components.yml#/components/parameters/xpathInQuery'
30       - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery'
31     responses:
32       '200':
33         description: OK
34         content:
35           application/json:
36             schema:
37               type: object
38             example: { "child": my_child,"leafList": "leafListElement1, leafListElement2", "leaf": my_leaf }
39       '400':
40         $ref: 'components.yml#/components/responses/BadRequest'
41       '401':
42         $ref: 'components.yml#/components/responses/Unauthorized'
43       '403':
44         $ref: 'components.yml#/components/responses/Forbidden'
45       '404':
46         $ref: 'components.yml#/components/responses/NotFound'
47     x-codegen-request-body-name: xpath
48
49 listElementByDataspaceAndAnchor:
50   post:
51     description: Add list element(s) to a list for a given anchor and dataspace
52     tags:
53       - cps-data
54     summary: Add list element(s)
55     operationId: addListElements
56     parameters:
57       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
58       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
59       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
60       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
61     requestBody:
62       required: true
63       content:
64         application/json:
65           schema:
66             type: string
67     responses:
68       '201':
69         $ref: 'components.yml#/components/responses/Created'
70       '400':
71         $ref: 'components.yml#/components/responses/BadRequest'
72       '401':
73         $ref: 'components.yml#/components/responses/Unauthorized'
74       '403':
75         $ref: 'components.yml#/components/responses/Forbidden'
76
77   put:
78     description: Replace list content under a given parent, anchor and dataspace
79     tags:
80       - cps-data
81     summary: Replace list content
82     operationId: replaceListContent
83     parameters:
84       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
85       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
86       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
87       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
88     requestBody:
89       required: true
90       content:
91         application/json:
92           schema:
93             type: string
94     responses:
95       '200':
96         $ref: 'components.yml#/components/responses/Created'
97       '400':
98         $ref: 'components.yml#/components/responses/BadRequest'
99       '401':
100         $ref: 'components.yml#/components/responses/Unauthorized'
101       '403':
102         $ref: 'components.yml#/components/responses/Forbidden'
103
104   delete:
105     description: Delete one or all list element(s) for a given anchor and dataspace
106     deprecated: true
107     tags:
108       - cps-data
109     summary: Delete one or all list element(s)
110     operationId: deleteListOrListElement
111     parameters:
112       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
113       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
114       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
115       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
116     responses:
117       '204':
118         $ref: 'components.yml#/components/responses/NoContent'
119       '400':
120         $ref: 'components.yml#/components/responses/BadRequest'
121       '401':
122         $ref: 'components.yml#/components/responses/Unauthorized'
123       '403':
124         $ref: 'components.yml#/components/responses/Forbidden'
125
126 nodesByDataspaceAndAnchor:
127   post:
128     description: Create a node for a given anchor and dataspace
129     tags:
130       - cps-data
131     summary: Create a node
132     operationId: createNode
133     parameters:
134       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
135       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
136       - $ref: 'components.yml#/components/parameters/xpathInQuery'
137       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
138     requestBody:
139       required: true
140       content:
141         application/json:
142           schema:
143             type: string
144     responses:
145       '201':
146         $ref: 'components.yml#/components/responses/Created'
147       '400':
148         $ref: 'components.yml#/components/responses/BadRequest'
149       '401':
150         $ref: 'components.yml#/components/responses/Unauthorized'
151       '403':
152         $ref: 'components.yml#/components/responses/Forbidden'
153
154   patch:
155     description: Update a data node leaves for a given dataspace and anchor and a parent node xpath
156     tags:
157       - cps-data
158     summary: Update node leaves
159     operationId: updateNodeLeaves
160     parameters:
161       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
162       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
163       - $ref: 'components.yml#/components/parameters/xpathInQuery'
164       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
165     requestBody:
166       required: true
167       content:
168         application/json:
169           schema:
170             type: string
171     responses:
172       '200':
173         $ref: 'components.yml#/components/responses/Ok'
174       '400':
175         $ref: 'components.yml#/components/responses/BadRequest'
176       '401':
177         $ref: 'components.yml#/components/responses/Unauthorized'
178       '403':
179         $ref: 'components.yml#/components/responses/Forbidden'
180
181   delete:
182     description: Delete a datanode for a given dataspace and anchor given a node xpath.
183     tags:
184       - cps-data
185     summary: Delete a data node
186     operationId: deleteDataNode
187     parameters:
188       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
189       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
190       - $ref: 'components.yml#/components/parameters/xpathInQuery'
191       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
192     responses:
193       '204':
194         $ref: 'components.yml#/components/responses/NoContent'
195       '400':
196         $ref: 'components.yml#/components/responses/BadRequest'
197       '401':
198         $ref: 'components.yml#/components/responses/Unauthorized'
199       '403':
200         $ref: 'components.yml#/components/responses/Forbidden'
201
202
203   put:
204     description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
205     tags:
206       - cps-data
207     summary: Replace a node with descendants
208     operationId: replaceNode
209     parameters:
210       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
211       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
212       - $ref: 'components.yml#/components/parameters/xpathInQuery'
213       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
214     requestBody:
215       required: true
216       content:
217         application/json:
218           schema:
219             type: string
220     responses:
221       '200':
222         $ref: 'components.yml#/components/responses/Ok'
223       '400':
224         $ref: 'components.yml#/components/responses/BadRequest'
225       '401':
226         $ref: 'components.yml#/components/responses/Unauthorized'
227       '403':
228         $ref: 'components.yml#/components/responses/Forbidden'