From 3aea57e78651eabe954a2cfb9b2c85289295806f Mon Sep 17 00:00:00 2001 From: Renu Kumari Date: Tue, 12 Oct 2021 13:41:01 -0400 Subject: Provide complete openapi.yml in read the docs - Seperate openapi.yml for code gen and read the docs - Added few env varaibles in docker-compose.yml Issue-ID: CPS-733 Signed-off-by: Renu Kumari Change-Id: Ibda007c40396436a5adce137d9f69806100253dc --- docker-compose/docker-compose.yml | 3 + docs/api/swagger/openapi.yaml | 464 ++++++++++++++++++++++++++++++++++++++ docs/design.rst | 2 +- docs/openapi/components.yml | 202 ----------------- docs/openapi/openapi.yml | 211 ----------------- openapi/components.yml | 202 +++++++++++++++++ openapi/openapi.yml | 211 +++++++++++++++++ pom.xml | 4 +- 8 files changed, 883 insertions(+), 416 deletions(-) create mode 100644 docs/api/swagger/openapi.yaml delete mode 100644 docs/openapi/components.yml delete mode 100644 docs/openapi/openapi.yml create mode 100644 openapi/components.yml create mode 100644 openapi/openapi.yml diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index a9229e98..bec9bfec 100755 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -37,4 +37,7 @@ services: SDNC_PORT: ${SDNC_PORT:-8181} SDNC_USERNAME: ${SDNC_USERNAME:-admin} SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} + DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783} + DMI_USERNAME: "cpsuser" + DMI_PASSWORD: "cpsr0cks!" restart: unless-stopped diff --git a/docs/api/swagger/openapi.yaml b/docs/api/swagger/openapi.yaml new file mode 100644 index 00000000..750091b4 --- /dev/null +++ b/docs/api/swagger/openapi.yaml @@ -0,0 +1,464 @@ +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 + style: simple + explode: false + schema: + type: string + requestBody: + description: Operational body + content: + application/json: + schema: + $ref: '#/components/schemas/ModuleReferencesRequest' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ModuleSet' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /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) + operationId: registerCmHandles + requestBody: + description: list of cm handles + content: + application/json: + schema: + $ref: '#/components/schemas/CmHandles' + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + x-api-audience: component-internal + /v1/ch/{cmHandle}/moduleResources: + post: + tags: + - dmi-plugin + summary: Retrieve module resources + description: Retrieve module resources for one or more modules + operationId: retrieveModuleResources + parameters: + - 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 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModuleResourcesReadRequest' + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/YangResources' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /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: + - 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 + - name: resourceIdentifier + in: query + description: Resource identifier to get/set the resource data + required: true + allowReserved: true + schema: + type: string + - 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 + - name: options + in: query + description: options parameter in query, it is mandatory to wrap key(s)=value(s) + in parenthesis'()'. + required: false + allowReserved: true + schema: + type: string + 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]) + requestBody: + description: Operational body + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessReadRequest' + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /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: + - 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 + - name: resourceIdentifier + in: query + description: Resource identifier to get/set the resource data + required: true + allowReserved: true + schema: + type: string + - 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 + - name: options + in: query + description: options parameter in query, it is mandatory to wrap key(s)=value(s) + in parenthesis'()'. + required: false + allowReserved: true + schema: + type: string + 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]) + requestBody: + description: Operational body + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessReadRequest' + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - dmi-plugin + summary: Write data for a cmHandle + description: Write data for a cmHandle using passthrough-running + operationId: writeDataByPassthroughRunningForCmHandle + parameters: + - 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 + - name: resourceIdentifier + in: query + description: Resource identifier to get/set the resource data + required: true + allowReserved: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessWriteRequest' + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' +components: + schemas: + ModuleReferencesRequest: + type: object + properties: + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + cmHandleProperties: + type: object + additionalProperties: + type: string + example: '{"prop1":"value1","prop2":"value2"}' + ModuleSet: + type: object + properties: + schemas: + type: array + items: + $ref: '#/components/schemas/ModuleSet_schemas' + revision: + type: string + example: someRevision + ErrorMessage: + title: Error + type: object + properties: + status: + type: string + message: + type: string + details: + type: string + CmHandles: + type: object + properties: + cmHandles: + type: array + items: + type: string + ModuleResourcesReadRequest: + type: object + properties: + data: + $ref: '#/components/schemas/ModuleResourcesReadRequest_data' + cmHandleProperties: + $ref: '#/components/schemas/cmHandleProperties' + name: + type: string + example: someName + YangResources: + type: array + items: + $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' + ModuleSet_schemas: + type: object + properties: + moduleName: + type: string + revision: + $ref: '#/components/schemas/revision' + namespace: + type: string + ModuleResourcesReadRequest_data_modules: + type: object + properties: + name: + $ref: '#/components/schemas/name' + revision: + $ref: '#/components/schemas/revision' + ModuleResourcesReadRequest_data: + type: object + properties: + modules: + type: array + items: + $ref: '#/components/schemas/ModuleResourcesReadRequest_data_modules' diff --git a/docs/design.rst b/docs/design.rst index d0d4b87f..9326fd3d 100644 --- a/docs/design.rst +++ b/docs/design.rst @@ -17,7 +17,7 @@ Offered APIs The DMI-Plugin supports the public APIs listed in the link below: -:download:`DMI Rest OpenApi Specification ` +:download:`DMI Rest OpenApi Specification ` View Offered APIs ----------------- diff --git a/docs/openapi/components.yml b/docs/openapi/components.yml deleted file mode 100644 index 30e5987f..00000000 --- a/docs/openapi/components.yml +++ /dev/null @@ -1,202 +0,0 @@ -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/docs/openapi/openapi.yml b/docs/openapi/openapi.yml deleted file mode 100644 index 83c05abb..00000000 --- a/docs/openapi/openapi.yml +++ /dev/null @@ -1,211 +0,0 @@ -# ============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: //localhost:8088/ -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' - 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' + diff --git a/pom.xml b/pom.xml index 03344dbc..2ac674c3 100644 --- a/pom.xml +++ b/pom.xml @@ -164,7 +164,7 @@ generate - ${project.basedir}/docs/openapi/openapi.yml + ${project.basedir}/openapi/openapi.yml spring false org.onap.cps.ncmp.dmi.rest.api @@ -184,7 +184,7 @@ compile - ${project.basedir}/docs/openapi/openapi.yml + ${project.basedir}/openapi/openapi.yml openapi-yaml -- cgit 1.2.3-korg