Merge "Add ncmp endpoints to swagger-ui"
[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 listNodeByDataspaceAndAnchor:
50   post:
51     description: Add list-node child elements to existing node for a given anchor and dataspace
52     tags:
53       - cps-data
54     summary: Add list-node child element(s) under existing parent node
55     operationId: addListNodeElements
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-node child elements under existing node for a given anchor and dataspace
79     tags:
80       - cps-data
81     summary: Replace list-node child element(s) under existing parent node
82     operationId: replaceListNodeElements
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 list-node child elements under existing node for a given anchor and dataspace
106     tags:
107       - cps-data
108     summary: Delete list-node child element(s) under existing parent node
109     operationId: deleteListNodeElements
110     parameters:
111       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
112       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
113       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
114       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
115     responses:
116       '204':
117         $ref: 'components.yml#/components/responses/NoContent'
118       '400':
119         $ref: 'components.yml#/components/responses/BadRequest'
120       '401':
121         $ref: 'components.yml#/components/responses/Unauthorized'
122       '403':
123         $ref: 'components.yml#/components/responses/Forbidden'
124
125 nodesByDataspaceAndAnchor:
126   post:
127     description: Create a node for a given anchor and dataspace
128     tags:
129       - cps-data
130     summary: Create a node
131     operationId: createNode
132     parameters:
133       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
134       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
135       - $ref: 'components.yml#/components/parameters/xpathInQuery'
136       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
137     requestBody:
138       required: true
139       content:
140         application/json:
141           schema:
142             type: string
143     responses:
144       '201':
145         $ref: 'components.yml#/components/responses/Created'
146       '400':
147         $ref: 'components.yml#/components/responses/BadRequest'
148       '401':
149         $ref: 'components.yml#/components/responses/Unauthorized'
150       '403':
151         $ref: 'components.yml#/components/responses/Forbidden'
152
153   patch:
154     description: Update a data node leaves for a given dataspace and anchor and a parent node xpath
155     tags:
156       - cps-data
157     summary: Update node leaves
158     operationId: updateNodeLeaves
159     parameters:
160       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
161       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
162       - $ref: 'components.yml#/components/parameters/xpathInQuery'
163       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
164     requestBody:
165       required: true
166       content:
167         application/json:
168           schema:
169             type: string
170     responses:
171       '200':
172         $ref: 'components.yml#/components/responses/Ok'
173       '400':
174         $ref: 'components.yml#/components/responses/BadRequest'
175       '401':
176         $ref: 'components.yml#/components/responses/Unauthorized'
177       '403':
178         $ref: 'components.yml#/components/responses/Forbidden'
179
180   put:
181     description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
182     tags:
183       - cps-data
184     summary: Replace a node with descendants
185     operationId: replaceNode
186     parameters:
187       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
188       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
189       - $ref: 'components.yml#/components/parameters/xpathInQuery'
190       - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
191     requestBody:
192       required: true
193       content:
194         application/json:
195           schema:
196             type: string
197     responses:
198       '200':
199         $ref: 'components.yml#/components/responses/Ok'
200       '400':
201         $ref: 'components.yml#/components/responses/BadRequest'
202       '401':
203         $ref: 'components.yml#/components/responses/Unauthorized'
204       '403':
205         $ref: 'components.yml#/components/responses/Forbidden'