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

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:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
      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'
        '404':
          $ref: 'components.yml#/components/responses/NotFound'
        '500':
          $ref: 'components.yml#/components/responses/ServerError'


  /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'
        '404':
          $ref: 'components.yml#/components/responses/NotFound'
        '500':
          $ref: 'components.yml#/components/responses/ServerError'

  /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':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                example: cm-handle registered successfully
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '500':
          $ref: 'components.yml#/components/responses/ServerError'

  /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational:
    post:
      tags:
        - dmi-plugin
      summary: Get resource data from passthrough-operational for cm handle
      description: Get resource data from passthrough-operational for cm handle. Will support read operations only.
      operationId: dataAccessPassthroughOperational
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
        - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
        - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
        - $ref: 'components.yml#/components/parameters/topicParamInQuery'
      requestBody:
        description: Operational body
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/DataAccessRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                example:
                  - yangSource: my-yang-source
                    moduleName: my-module-name
                    revision: my-revision
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '500':
          $ref: 'components.yml#/components/responses/ServerError'

  /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running:
    post:
      tags:
        - dmi-plugin
      summary: Get, Create or Update request for data passthrough-running for a cm-handle
      description: Post request to Get, Create or to Update resource data for a cm-handle. Since all requests need to include additional information in a request body HTTP Post is used for all use cases and the actual operation is defined in the request body instead.
      operationId: dataAccessPassthroughRunning
      parameters:
        - $ref: 'components.yml#/components/parameters/cmHandleInPath'
        - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
        - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
        - $ref: 'components.yml#/components/parameters/topicParamInQuery'
      requestBody:
        content:
          application/json:
            schema:
              $ref: 'components.yml#/components/schemas/DataAccessRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                example:
                  - yangSource: my-yang-source
                    moduleName: my-module-name
                    revision: my-revision
        '201':
          description: Created
          content:
            text/plain:
              schema:
                type: string
                example: my-resource
        '204':
          $ref: 'components.yml#/components/responses/NoContent'
        '400':
          $ref: 'components.yml#/components/responses/BadRequest'
        '500':
          $ref: 'components.yml#/components/responses/ServerError'
