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

openapi: 3.0.1
info:
  title: ONAP Open API v3 Configuration Persistence Service
  description: Configuration Persistence Service is a Model Driven Generic Database
  version: "1.0.0"
  contact:
     name: ONAP
     url: "https://onap.readthedocs.io"
     email: "onap-discuss@lists.onap.org"
  license:
      name: "Apache 2.0"
      url: "http://www.apache.org/licenses/LICENSE-2.0"
  x-planned-retirement-date: "202212"
  x-component: "Modeling"
  x-logo:
      url: "cps_logo.png"

servers:
  - url: /cps/api
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
tags:
  - name: cps-admin
    description: cps Admin
  - name: cps-data
    description: cps Data
paths:

  /v1/dataspaces:
    $ref: 'cpsAdminV1Deprecated.yml#/dataspaces'

  /{apiVersion}/dataspaces:
    $ref: 'cpsAdmin.yml#/dataspaces'

  /v2/dataspaces:
    $ref: 'cpsAdminV2.yml#/dataspaces'

  /{apiVersion}/admin/dataspaces:
    $ref: 'cpsAdmin.yml#/adminDataspaces'

  /{apiVersion}/admin/dataspaces/{dataspace-name}:
    $ref: 'cpsAdmin.yml#/adminDataspace'

  /v1/dataspaces/{dataspace-name}/anchors:
    $ref: 'cpsAdminV1Deprecated.yml#/anchorsByDataspace'

  /v2/dataspaces/{dataspace-name}/anchors:
    $ref: 'cpsAdminV2.yml#/anchorsByDataspace'

  /{apiVersion}/dataspaces/{dataspace-name}/anchors:
    $ref: 'cpsAdmin.yml#/anchorsByDataspace'

  /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}:
    $ref: 'cpsAdmin.yml#/anchorByDataspaceAndAnchorName'

  /v1/dataspaces/{dataspace-name}/schema-sets:
    $ref: 'cpsAdminV1Deprecated.yml#/schemaSet'

  /v2/dataspaces/{dataspace-name}/schema-sets:
    $ref: 'cpsAdminV2.yml#/schemaSet'

  /{apiVersion}/dataspaces/{dataspace-name}/schema-sets:
    $ref: 'cpsAdmin.yml#/schemaSet'

  /{apiVersion}/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}:
    $ref: 'cpsAdmin.yml#/schemaSetBySchemaSetName'

  /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node:
    $ref: 'cpsDataV1Deprecated.yml#/nodeByDataspaceAndAnchor'

  /v2/dataspaces/{dataspace-name}/anchors/{anchor-name}/node:
    $ref: 'cpsDataV2.yml#/nodeByDataspaceAndAnchor'

  /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes:
    $ref: 'cpsData.yml#/nodesByDataspaceAndAnchor'

  /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes:
    $ref: 'cpsDataV1Deprecated.yml#/listElementByDataspaceAndAnchor'

  /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes:
    $ref: 'cpsData.yml#/listElementByDataspaceAndAnchor'

  /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query:
    $ref: 'cpsQueryV1Deprecated.yml#/nodesByDataspaceAndAnchorAndCpsPath'

  /v2/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query:
    $ref: 'cpsQueryV2.yml#/nodesByDataspaceAndAnchorAndCpsPath'

  /v2/dataspaces/{dataspace-name}/nodes/query:
    $ref: 'cpsQueryV2.yml#/nodesByDataspaceAndCpsPath'

security:
  - basicAuth: []
