# ============LICENSE_START=======================================================
# Copyright (c) 2022-2024 TechMahindra Ltd.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# 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: getNodeByDataspaceAndAnchorV2
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
      - $ref: 'components.yml#/components/parameters/xpathInQuery'
      - $ref: 'components.yml#/components/parameters/descendantsInQuery'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSample:
                $ref: 'components.yml#/components/examples/dataSample'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'
    x-codegen-request-body-name: xpath

delta:
  get:
    description: Get delta between two anchors within a given dataspace
    tags:
      - cps-data
    summary: Get delta between anchors in the same dataspace
    operationId: getDeltaByDataspaceAndAnchors
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/sourceAnchorNameInPath'
      - $ref: 'components.yml#/components/parameters/targetAnchorNameInQuery'
      - $ref: 'components.yml#/components/parameters/xpathInQuery'
      - $ref: 'components.yml#/components/parameters/descendantsInQuery'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSample:
                $ref: 'components.yml#/components/examples/deltaReportSample'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'
    x-codegen-request-body-name: xpath
  post:
    description: Get delta between an anchor in a dataspace and JSON payload
    tags:
      - cps-data
    summary: Get delta between an anchor and JSON payload
    operationId: getDeltaByDataspaceAnchorAndPayload
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/sourceAnchorNameInPath'
      - $ref: 'components.yml#/components/parameters/xpathInQuery'
    requestBody:
      content:
        multipart/form-data:
          schema:
            type: object
            properties:
              json:
                type: object
                example:
                  test:bookstore:
                    bookstore-name: Chapters
                    categories:
                      - code: 01
                        name: SciFi
                      - code: 02
                        name: kids
              file:
                type: string
                format: binary
            required:
              - json
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSample:
                $ref: 'components.yml#/components/examples/deltaReportSample'
      '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'