| # ============LICENSE_START======================================================= |
| # Copyright (C) 2021-2023 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/{datastore-name}: |
| post: |
| tags: |
| - dmi-plugin |
| summary: Get resource data from passthrough operational or running for a cm handle |
| description: Get resource data from passthrough operational or running for a cm handle |
| operationId: dataAccessPassthrough |
| parameters: |
| - $ref: 'components.yml#/components/parameters/datastoreName' |
| - $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: Contains collection of cm handles with it's private properties and requestId |
| 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/data: |
| post: |
| tags: |
| - dmi-plugin |
| summary: Execute a data operation for group of CM handle references. |
| description: Execute a data operation for group of CM handle (IDs or alternate IDs) by supplied operation details |
| operationId: getResourceDataForCmHandleDataOperation |
| parameters: |
| - $ref: 'components.yml#/components/parameters/requiredTopicParamInQuery' |
| - $ref: 'components.yml#/components/parameters/requiredRequestIdParamInQuery' |
| requestBody: |
| description: list of operation details |
| content: |
| application/json: |
| schema: |
| $ref: 'components.yml#/components/schemas/ResourceDataOperationRequests' |
| responses: |
| '202': |
| description: Accepted |
| '400': |
| $ref: 'components.yml#/components/responses/BadRequest' |
| '500': |
| $ref: 'components.yml#/components/responses/ServerError' |
| '501': |
| $ref: 'components.yml#/components/responses/NotImplemented' |