diff options
Diffstat (limited to 'openapi')
-rw-r--r-- | openapi/components.yml | 202 | ||||
-rw-r--r-- | openapi/openapi.yml | 211 |
2 files changed, 413 insertions, 0 deletions
diff --git a/openapi/components.yml b/openapi/components.yml new file mode 100644 index 00000000..30e5987f --- /dev/null +++ b/openapi/components.yml @@ -0,0 +1,202 @@ +components: + schemas: + ErrorMessage: + type: object + title: Error + properties: + status: + type: string + message: + type: string + details: + type: string + + CmHandles: + type: object + properties: + cmHandles: + type: array + items: + type: string + + ModuleReferencesRequest: + type: object + properties: + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + + ModuleResourcesReadRequest: + type: object + properties: + data: + type: object + properties: + modules: + type: array + items: + type: object + properties: + name: + $ref: '#/components/schemas/name' + revision: + $ref: '#/components/schemas/revision' + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + + ModuleSet: + type: object + properties: + schemas: + type: array + items: + type: object + properties: + moduleName: + type: string + revision: + $ref: '#/components/schemas/revision' + namespace: + type: string + + YangResources: + type: array + items: + type: object + $ref: '#/components/schemas/YangResource' + + YangResource: + properties: + yangSource: + type: string + moduleName: + type: string + revision: + $ref: '#/components/schemas/revision' + + DataAccessReadRequest: + type: object + properties: + operation: + type: string + enum: [ read ] + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + + DataAccessWriteRequest: + type: object + properties: + operation: + type: string + enum: [ create ] + dataType: + type: string + data: + type: string + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + + cmHandleProperties: + type: object + additionalProperties: + type: string + example: {"prop1":"value1","prop2":"value2"} + + name: + type: string + example: someName + + revision: + type: string + example: someRevision + + responses: + NotFound: + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Unauthorized: + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + BadRequest: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Conflict: + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Ok: + description: OK + content: + application/json: + schema: + type: object + Created: + description: Created + content: + text/plain: + schema: + type: string + NoContent: + description: No Content + content: {} + + parameters: + cmHandleInPath: + name: cmHandle + in: path + description: The identifier for a network function, network element, subnetwork, or any other cm object by managed Network CM Proxy + required: true + schema: + type: string + + resourceIdentifierInQuery: + name: resourceIdentifier + in: query + description: Resource identifier to get/set the resource data + required: true + allowReserved: true + schema: + type: string + + acceptParamInHeader: + name: accept + in: header + description: Accept parameter for response, if accept parameter is null, that means client can accept any format. + schema: + type: string + enum: [ application/json, application/yang-data+json ] + + optionsParamInQuery: + name: options + in: query + description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. + required: false + schema: + type: string + allowReserved: true + examples: + sample1: + value: + options: (key1=value1,key2=value2) + sample2: + value: + options: (key1=value1,key2=value1/value2) + sample3: + value: + options: (key1=10,key2=value2,key3=[val31,val32])
\ No newline at end of file diff --git a/openapi/openapi.yml b/openapi/openapi.yml new file mode 100644 index 00000000..0f43f9a5 --- /dev/null +++ b/openapi/openapi.yml @@ -0,0 +1,211 @@ +# ============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' + |