#  ============LICENSE_START=======================================================
#  Copyright (C) 2021 Nordix Foundation
#  Modifications Copyright (C) 2021 Pantheon.tech
#  Modifications Copyright (C) 2021 Bell Canada
#  ================================================================================
#  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=========================================================

nodeByCmHandleAndXpath:
  get:
    description: Get a node with an option to retrieve all the children for a given cm Handle
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Get a node given a cm Handle and xpath
    operationId: getNodeByCmHandleAndXpath
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

nodesByCmHandleAndCpsPath:
  get:
    description: Query nodes for the given cps path and cm Handle
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Query data nodes
    operationId: queryNodesByCmHandleAndCpsPath
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

nodesByCmHandleAndXpath:
  post:
    description: Create a node with descendants for the given CM Handle; top level or under existing node (requires xpath)
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Create a node with descendants
    operationId: createNode
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      201:
        $ref: 'components.yaml#/components/responses/Created'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

  patch:
    description: Update node leaves for the given cps path and cm Handle
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Update node leaves
    operationId: updateNodeLeaves
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

  put:
    description: Replace a node with descendants for the given cps path and cm Handle
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Replace a node with descendants
    operationId: replaceNode
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

listNodeByCmHandleAndXpath:
  post:
    description: Add one or more list-node child elements under existing node for the given CM Handle
    deprecated: true
    tags:
      - network-cm-proxy
    summary: Add list-node child element(s)
    operationId: addListNodeElements
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/requiredXpathInQuery'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      201:
        $ref: 'components.yaml#/components/responses/Created'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

getResourceDataForPassthroughOperational:
  get:
    tags:
      - network-cm-proxy
    summary: Get resource data from pass-through operational for cm handle
    description: Get resource data from pass-through operational for given cm handle
    operationId: getResourceDataOperationalForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSampleResponse:
                $ref: 'components.yaml#/components/examples/dataSampleResponse'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

resourceDataForPassthroughRunning:
  get:
    tags:
      - network-cm-proxy
    summary: Get resource data from pass-through running for cm handle
    description: Get resource data from pass-through running for given cm handle
    operationId: getResourceDataRunningForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: object
            examples:
              dataSampleResponse:
                $ref: 'components.yaml#/components/examples/dataSampleResponse'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
  post:
    tags:
      - network-cm-proxy
    summary: create resource data from pass-through running for cm handle
    description: create resource data from pass-through running for given cm handle
    operationId: createResourceDataRunningForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
        application/yang-data+json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      201:
        $ref: 'components.yaml#/components/responses/Created'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

  put:
    tags:
      - network-cm-proxy
    summary: Update resource data from pass-through running for a cm handle
    description: Update resource data from pass-through running for the given cm handle
    operationId: updateResourceDataRunningForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
        application/yang-data+json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

  patch:
    tags:
      - network-cm-proxy
    summary: Patch resource data from pass-through running
    description: Patch resource data from pass-through running for the given cm handle
    operationId: patchResourceDataRunningForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSampleRequest'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

  delete:
    tags:
      - network-cm-proxy
    summary: Delete resource data
    description: Delete resource data from pass-through running for a given cm handle
    operationId: deleteResourceDataRunningForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
    responses:
      204:
        $ref: 'components.yaml#/components/responses/NoContent'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'


fetchModuleReferencesByCmHandle:
  get:
    description: fetch all module references (name and revision) for a given cm handle
    tags:
      - network-cm-proxy
    summary: Fetch all module references (name and revision) for a given cm handle
    operationId: getModuleReferencesByCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: 'components.yaml#/components/schemas/ModuleReference'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'

executeCmHandleSearch:
  post:
    description: Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names
    tags:
      - network-cm-proxy
    summary: Execute cm handle search using the available conditions
    operationId: executeCmHandleSearch
    requestBody:
      required: true
      content:
        application/json:
          schema:
            $ref: 'components.yaml#/components/schemas/Conditions'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yaml#/components/schemas/CmHandles'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      401:
        $ref: 'components.yaml#/components/responses/Unauthorized'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
