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:
  post:
    description: Add list-node child elements to existing node for a given anchor and dataspace
    tags:
      - cps-data
    summary: Add list-node child element(s) under existing parent node
    operationId: addListNodeElements
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
      - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: string
    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'

nodesByDataspaceAndAnchor:
  post:
    description: Create a node for a given anchor and dataspace
    tags:
      - cps-data
    summary: Create a node
    operationId: createNode
    parameters:
      - $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
    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: Update a data node leaves for a given dataspace and anchor and a parent node xpath
    tags:
      - cps-data
    summary: Update node leaves
    operationId: updateNodeLeaves
    parameters:
      - $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
    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
    tags:
      - cps-data
    summary: Replace a node with descendants
    operationId: replaceNode
    parameters:
      - $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
    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'


nodesByDataspace:
  get:
    description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
    tags:
      - cps-data
    summary: Get nodes
    operationId: getNodesByDataspace
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
    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