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

dataspaces:
  delete:
    description: Delete a dataspace
    tags:
      - cps-admin
    summary: Delete a dataspace
    operationId: deleteDataspace
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInQuery'
    responses:
      '204':
        $ref: 'components.yml#/components/responses/NoContent'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '409':
        $ref: 'components.yml#/components/responses/Conflict'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'

schemaSet:
  get:
    description: Read all schema sets, given a dataspace
    tags:
      - cps-admin
    summary: Get schema sets
    operationId: getSchemaSets
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: 'components.yml#/components/schemas/SchemaSetDetails'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'

schemaSetBySchemaSetName:
  get:
    description: Read a schema set given a schema set name and a dataspace
    tags:
      - cps-admin
    summary: Get a schema set
    operationId: getSchemaSet
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/schemaSetNameInPath'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/SchemaSetDetails'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'
  delete:
    description: Delete a schema set given a schema set name and a dataspace
    tags:
      - cps-admin
    summary: Delete a schema set
    operationId: deleteSchemaSet
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/schemaSetNameInPath'
    responses:
      '204':
        $ref: 'components.yml#/components/responses/NoContent'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '409':
        $ref: 'components.yml#/components/responses/Conflict'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'

anchorsByDataspace:
  get:
    description: Read all anchors, given a dataspace
    tags:
      - cps-admin
    summary: Get anchors
    operationId: getAnchors
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: 'components.yml#/components/schemas/AnchorDetails'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'

anchorByDataspaceAndAnchorName:
  get:
    description: Read an anchor given an anchor name and a dataspace
    tags:
      - cps-admin
    summary: Get an anchor
    operationId: getAnchor
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
    responses:
      '200':
        description: OK
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/AnchorDetails'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'
  delete:
    description: Delete an anchor given an anchor name and a dataspace
    tags:
      - cps-admin
    summary: Delete an anchor
    operationId: deleteAnchor
    parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
    responses:
      '204':
        $ref: 'components.yml#/components/responses/NoContent'
      '400':
        $ref: 'components.yml#/components/responses/BadRequest'
      '403':
        $ref: 'components.yml#/components/responses/Forbidden'
      '500':
        $ref: 'components.yml#/components/responses/InternalServerError'

adminDataspaces:
 get:
   description: Read all dataspaces
   tags:
     - cps-admin
   summary: Get all dataspaces
   operationId: getAllDataspaces
   parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
   responses:
     '200':
       description: OK
       content:
         application/json:
           schema:
             type: array
             items:
               $ref: 'components.yml#/components/schemas/DataspaceDetails'
     '400':
       $ref: 'components.yml#/components/responses/BadRequest'
     '403':
       $ref: 'components.yml#/components/responses/Forbidden'
     '500':
       $ref: 'components.yml#/components/responses/InternalServerError'

adminDataspace:
 get:
   description: Read a dataspace given a dataspace name
   tags:
     - cps-admin
   summary: Get a dataspace
   operationId: getDataspace
   parameters:
      - $ref: 'components.yml#/components/parameters/apiVersionInPath'
      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
   responses:
     '200':
       description: OK
       content:
         application/json:
           schema:
             $ref: 'components.yml#/components/schemas/DataspaceDetails'
     '400':
       $ref: 'components.yml#/components/responses/BadRequest'
     '403':
       $ref: 'components.yml#/components/responses/Forbidden'
     '500':
       $ref: 'components.yml#/components/responses/InternalServerError'
