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

openapi: 3.0.1
info:
  title: NCMP to CPS Proxy API
  description: NCMP to CPS Proxy API
  version: "1.0"
servers:
  - url: /ncmp
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
paths:
  /v1/ch/{cm-handle}/data/ds/{datastore-name}:
    $ref: 'ncmp.yml#/resourceDataForCmHandle'

  /v1/ch/{cm-handle}/data/ds/{datastore-name}/query:
    $ref: 'ncmp.yml#/queryResourceDataForCmHandle'

  /v1/ch/{cm-handle}/modules:
    $ref: 'ncmp.yml#/fetchModuleReferencesByCmHandle'

  /v1/ch/{cm-handle}/modules/definitions:
    $ref: 'ncmp.yml#/fetchModuleDefinitionsByCmHandle'

  /v1/ch/searches:
    $ref: 'ncmp.yml#/searchCmHandles'

  /v1/ch/{cm-handle}:
    $ref: 'ncmp.yml#/retrieveCmHandleDetailsById'

  /v1/ch/{cm-handle}/properties:
    $ref: 'ncmp.yml#/getCmHandlePropertiesById'

  /v1/ch/id-searches:
    $ref: 'ncmp.yml#/searchCmHandleIds'

  /v1/ch/{cm-handle}/state:
    $ref: 'ncmp.yml#/getCmHandleStateById'

  /v1/ch/{cm-handle}/data-sync:
    $ref: 'ncmp.yml#/setDataSyncEnabledFlag'
security:
  - basicAuth: []