#  ============LICENSE_START=======================================================
#  Copyright (C) 2021 Nordix Foundation
#  ================================================================================
#  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 DMI Plugin
  description: Adds Data Model Inventory Registry capability for ONAP
  version: "1.0.0"
servers:
  - url: /dmi
tags:
  - name: dmi-plugin-internal
    description: DMI plugin internal rest apis
  - name: dmi-plugin
    description: DMI plugin rest apis


paths:
  /v1/ch/{cmHandle}/modules:
    post:
      tags:
        - dmi-plugin
      summary: Get all modules for cm handle
      description: Get all modules for given cm handle
      operationId: getModuleReferences
      parameters:
        - name: cmHandle
          in: path
          description: The cm handle to fetch all the modules
          required: true
          schema:
            type: string
      requestBody:
        description: Operational body
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/ModuleReferencesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: 'components.yml#/components/schemas/ModuleSet'
                example: {
                  "schemas": [
                    {
                      "moduleName": "example-identifier",
                      "revision": "example-version",
                      "namespace": "example-namespace"
                    }
                  ]
                }
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

  /v1/inventory/cmHandles:
    post:
      tags:
        - dmi-plugin-internal
      summary: register given list of cm handles (internal use only)
      description: register given list of cm handles (internal use only)
      x-api-audience: component-internal
      operationId: registerCmHandles
      requestBody:
        description: list of cm handles
        content:
          application/json:
            schema:
                $ref: 'components.yml#/components/schemas/CmHandles'
        required: true
      responses:
        '201':
          $ref: 'components.yml#/components/responses/Created'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

  /v1/ch/{cmHandle}/moduleResources:
    post:
      description: Retrieve module resources for one or more modules
      tags:
        - dmi-plugin
      summary: Retrieve module resources
      operationId: retrieveModuleResources
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/ModuleResourcesReadRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: 'components.yml#/components/schemas/YangResources'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

  /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational:
    put:
      tags:
        - dmi-plugin
      summary: Get resource data from passthrough-operational for cm handle
      description: Get resource data from passthrough-operational for cm handle
      operationId: getResourceDataOperationalForCmHandle
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
        - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
        - $ref: 'components.yml#/components/parameters/acceptParamInHeader'
        - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
      requestBody:
        description: Operational body
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/DataAccessReadRequest'
      responses:
        '200':
          $ref: 'components.yml#/components/responses/Ok'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

  /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running:
    put:
      tags:
        - dmi-plugin
      summary: Get resource data from passthrough-running for cm handle
      description: Get resource data from passthrough-running for cm handle
      operationId: getResourceDataPassthroughRunningForCmHandle
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
        - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
        - $ref: 'components.yml#/components/parameters/acceptParamInHeader'
        - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
      requestBody:
        description: Operational body
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/DataAccessReadRequest'
      responses:
        '200':
          $ref: 'components.yml#/components/responses/Ok'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

    post:
      description: Write data for a cmHandle using passthrough-running
      tags:
        - dmi-plugin
      summary: Write data for a cmHandle
      operationId: writeDataByPassthroughRunningForCmHandle
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
        - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/DataAccessWriteRequest'
      responses:
        '201':
          $ref: 'components.yml#/components/responses/Created'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '401':
          $ref: 'components.yml#/components/responses/Unauthorized'
        '403':
          $ref: 'components.yml#/components/responses/Forbidden'

