#  ============LICENSE_START=======================================================
#  Copyright (C) 2023 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=========================================================

nodesByDataspaceAndAnchorAndCpsPath:
  get:
    description: Query data nodes for the given dataspace and anchor using CPS path
    tags:
      - cps-query
    summary: Query data nodes
    operationId: getNodesByDataspaceAndAnchorAndCpsPathV2
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
      - $ref: 'components.yml#/components/parameters/cpsPathInQuery'
      - $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'
      '401':
        $ref: 'components.yml#/components/responses/Unauthorized'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'
    x-codegen-request-body-name: xpath

nodesByDataspaceAndCpsPath:
  get:
    description: Query data nodes for the given dataspace across anchors using CPS path
    tags:
      - cps-query
    summary: Query data nodes across anchors
    operationId: getNodesByDataspaceAndCpsPath
    parameters:
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/cpsPathInQuery'
      - $ref: 'components.yml#/components/parameters/descendantsInQuery'
      - $ref: 'components.yml#/components/parameters/pageIndexInQuery'
      - $ref: 'components.yml#/components/parameters/pageSizeInQuery'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSample:
                $ref: 'components.yml#/components/examples/dataSampleAcrossAnchors'
      '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'
    x-codegen-request-body-name: xpath
