# ============LICENSE_START=======================================================
-# Copyright (c) 2021 Bell Canada.
+# Copyright (c) 2021-2022 Bell Canada.
+# Modifications Copyright (C) 2021-2022 Nordix Foundation
+# Modifications Copyright (C) 2022-2023 TechMahindra Ltd.
+# Modifications Copyright (C) 2022 Deutsche Telekom AG
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-nodeByDataspaceAndAnchor:
- get:
- description: Get a node with an option to retrieve all the children for a given anchor and dataspace
- tags:
- - cps-data
- summary: Get a node
- operationId: getNodeByDataspaceAndAnchor
- parameters:
- - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- - $ref: 'components.yml#/components/parameters/anchorNameInPath'
- - $ref: 'components.yml#/components/parameters/xpathInQuery'
- - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery'
- responses:
- '200':
- $ref: 'components.yml#/components/responses/Ok'
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
- '404':
- $ref: 'components.yml#/components/responses/NotFound'
- x-codegen-request-body-name: xpath
-
-listNodeByDataspaceAndAnchor:
+listElementByDataspaceAndAnchor:
post:
- description: Add list-node child elements to existing node for a given anchor and dataspace
+ description: Add list element(s) to a list for a given anchor and dataspace
tags:
- cps-data
- summary: Add list-node child element(s) under existing parent node
- operationId: addListNodeElements
+ summary: Add list element(s)
+ operationId: addListElements
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- $ref: 'components.yml#/components/parameters/anchorNameInPath'
- $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
requestBody:
required: true
content:
application/json:
schema:
- type: string
+ type: object
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSample'
responses:
'201':
$ref: 'components.yml#/components/responses/Created'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
-
- patch:
- description: Replace list-node child elements under existing node for a given anchor and dataspace
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'
+ put:
+ description: Replace list content under a given parent, anchor and dataspace
tags:
- cps-data
- summary: Replace list-node child element(s) under existing parent node
- operationId: replaceListNodeElements
+ summary: Replace list content
+ operationId: replaceListContent
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- $ref: 'components.yml#/components/parameters/anchorNameInPath'
- $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
requestBody:
required: true
content:
application/json:
schema:
- type: string
+ type: object
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSample'
responses:
'200':
- $ref: 'components.yml#/components/responses/Created'
+ $ref: 'components.yml#/components/responses/Ok'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'
nodesByDataspaceAndAnchor:
post:
summary: Create a node
operationId: createNode
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- $ref: 'components.yml#/components/parameters/anchorNameInPath'
- $ref: 'components.yml#/components/parameters/xpathInQuery'
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
+ - $ref: 'components.yml#/components/parameters/contentTypeHeader'
requestBody:
required: true
content:
application/json:
schema:
type: string
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSample'
+ application/xml:
+ schema:
+ type: object # Workaround to show example
+ xml:
+ name: stores
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSampleXml'
+
responses:
'201':
$ref: 'components.yml#/components/responses/Created'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
-
+ '409':
+ $ref: 'components.yml#/components/responses/Conflict'
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'
patch:
- description: Update a data node leaves for a given dataspace and anchor and a parent node xpath
+ description: Update a data node leaves for a given dataspace and anchor and a parent node xpath. This operation
+ is currently supported for one top level data node only.
tags:
- cps-data
summary: Update node leaves
operationId: updateNodeLeaves
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- $ref: 'components.yml#/components/parameters/anchorNameInPath'
- $ref: 'components.yml#/components/parameters/xpathInQuery'
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
requestBody:
required: true
content:
application/json:
schema:
- type: string
+ type: object
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSample'
responses:
'200':
$ref: 'components.yml#/components/responses/Ok'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
-
- put:
- description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'
+ delete:
+ description: Delete a datanode for a given dataspace and anchor given a node xpath.
tags:
- cps-data
- summary: Replace a node with descendants
- operationId: replaceNode
+ summary: Delete a data node
+ operationId: deleteDataNode
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- $ref: 'components.yml#/components/parameters/anchorNameInPath'
- $ref: 'components.yml#/components/parameters/xpathInQuery'
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: string
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
responses:
- '200':
- $ref: 'components.yml#/components/responses/Ok'
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
-
-
-nodesByDataspace:
- get:
- description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'
+ put:
+ description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
tags:
- cps-data
- summary: Get nodes
- operationId: getNodesByDataspace
+ summary: Replace a node with descendants
+ operationId: replaceNode
parameters:
+ - $ref: 'components.yml#/components/parameters/apiVersionInPath'
- $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/xpathInQuery'
+ - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ examples:
+ dataSample:
+ $ref: 'components.yml#/components/examples/dataSample'
responses:
'200':
$ref: 'components.yml#/components/responses/Ok'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
'403':
$ref: 'components.yml#/components/responses/Forbidden'
- '404':
- $ref: 'components.yml#/components/responses/NotFound'
- x-codegen-request-body-name: requestBody
+ '500':
+ $ref: 'components.yml#/components/responses/InternalServerError'