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

resourceDataForCmHandle:
  get:
    tags:
      - network-cm-proxy
    summary: Get resource data for cm handle
    description: Get resource data for given cm handle
    operationId: getResourceDataForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
      - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    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'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

  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/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    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'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

  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/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    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'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

  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/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    requestBody:
      required: true
      content:
        '*/*':
          schema:
            type: object
          examples:
            dataSampleRequest:
              $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

  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/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    responses:
      204:
        $ref: 'components.yaml#/components/responses/NoContent'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

dataOperationForCmHandle:
  post:
    tags:
      - network-cm-proxy
    summary: Execute a data operation for group of cm handle ids
    description: This request will be handled asynchronously using messaging to the supplied topic. The rest response will be an acknowledge with a requestId to identify the relevant messages. A maximum of 200 cm handles per operation is supported.
    operationId: executeDataOperationForCmHandles
    parameters:
      - $ref: 'components.yaml#/components/parameters/requiredTopicParamInQuery'
      - $ref: 'components.yaml#/components/parameters/authorizationParamInHeader'
    requestBody:
      required: true
      content:
        application/json:
          schema:
            $ref: 'components.yaml#/components/schemas/DataOperationRequest'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: object
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      413:
        $ref: 'components.yaml#/components/responses/PayloadTooLarge'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

queryResourceDataForCmHandle:
  get:
    tags:
      - network-cm-proxy
    summary: Query resource data for a given cm handle
    description: Query resource data for a given cm handle
    operationId: queryResourceDataForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/datastoreName'
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
      - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
    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'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'

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/RestModuleReference'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

getModuleDefinitions:
  get:
    tags:
      - network-cm-proxy
    summary: Get module definitions
    description: Get module definitions (module name, revision, yang resource) with options to filter on module name and revision
    operationId: getModuleDefinitions
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/moduleNameInQuery'
      - $ref: 'components.yaml#/components/parameters/revisionInQuery'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: 'components.yaml#/components/schemas/RestModuleDefinition'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

searchCmHandles:
  post:
    description: Execute cm handle query search and return a list of cm handle details. Any number of conditions can be applied. To be included in the result a cm-handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
    tags:
      - network-cm-proxy
    summary: Execute cm handle search using the available conditions
    operationId: searchCmHandles
    requestBody:
      required: true
      content:
        application/json:
          schema:
            $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
          examples:
            Cm handle properties query:
              $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
            Cm handle modules query:
              $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
            All cm handle query parameters:
              $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
            Cm handle with CPS path state query:
              $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
            Cm handle with data sync flag query:
              $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

retrieveCmHandleDetailsById:
  get:
    description: Retrieve CM handle details and properties by cm handle id
    tags:
      - network-cm-proxy
    summary: Retrieve CM handle details
    operationId: retrieveCmHandleDetailsById
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

getCmHandlePropertiesById:
  get:
    description: Get CM handle properties by cm handle id
    tags:
      - network-cm-proxy
    summary: Get CM handle properties
    operationId: getCmHandlePublicPropertiesByCmHandleId
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yaml#/components/schemas/RestOutputCmHandlePublicProperties'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

getCmHandleStateById:
  get:
    description: Get CM handle state by cm handle id
    tags:
      - network-cm-proxy
    summary: Get CM handle state
    operationId: getCmHandleStateByCmHandleId
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yaml#/components/schemas/RestOutputCmHandleCompositeState'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

searchCmHandleIds:
  post:
    description: Execute cm handle query search and return a list of cm handle ids. Any number of conditions can be applied. To be included in the result a cm-handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
    tags:
      - network-cm-proxy
    summary: Execute cm handle query upon a given set of query parameters
    operationId: searchCmHandleIds
    requestBody:
      required: true
      content:
        application/json:
          schema:
            $ref: 'components.yaml#/components/schemas/CmHandleQueryParameters'
          examples:
            Cm handle properties query:
              $ref: 'components.yaml#/components/examples/pubPropCmHandleQueryParameters'
            Cm handle modules query:
              $ref: 'components.yaml#/components/examples/modulesCmHandleQueryParameters'
            All cm handle query parameters:
              $ref: 'components.yaml#/components/examples/allCmHandleQueryParameters'
            Cm handle with CPS path state query:
              $ref: 'components.yaml#/components/examples/cpsPathCmHandleStateQueryParameters'
            Cm handle with data sync flag query:
              $ref: 'components.yaml#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
    responses:
      200:
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      404:
        $ref: 'components.yaml#/components/responses/NotFound'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'

setDataSyncEnabledFlag:
  put:
    tags:
      - network-cm-proxy
    summary: Set the Data Sync Enabled Flag
    description: Set the data sync enabled flag to true or false for a specified Cm-Handle. This will in turn set the data sync state to UNSYNCHRONIZED and NONE_REQUESTED respectfully.
    operationId: setDataSyncEnabledFlagForCmHandle
    parameters:
      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
      - $ref: 'components.yaml#/components/parameters/dataSyncEnabled'
    responses:
      200:
        $ref: 'components.yaml#/components/responses/Ok'
      400:
        $ref: 'components.yaml#/components/responses/BadRequest'
      403:
        $ref: 'components.yaml#/components/responses/Forbidden'
      500:
        $ref: 'components.yaml#/components/responses/InternalServerError'
      502:
        $ref: 'components.yaml#/components/responses/BadGateway'
