From: sourabh_sourabh Date: Fri, 13 Jun 2025 13:11:39 +0000 (+0100) Subject: Download DMI API from the newly moved OpenAPI files CPS X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F63%2F141263%2F1;p=cps%2Fncmp-dmi-plugin.git Download DMI API from the newly moved OpenAPI files CPS - Delete docs from docs folder in DMI - Download files from CPS in pom.xml to perform code generation - Stop copying files in pom.xml to the DMI doc folder - Add downloaded OpenAPI files to .gitignore - Change RTD to download files from CPS repo Issue-ID: CPS-2815 Change-Id: I17bddd5235b0e333587730a38d9ed0d6e0cfcba7 Signed-off-by: sourabh_sourabh --- diff --git a/.gitignore b/.gitignore index 4170cafe..19fe1adb 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,4 @@ tmp/ /__pycache__/* /docs/docs/ -/docs/.vscode/ \ No newline at end of file +/docs/.vscode/ diff --git a/dmi-service/openapi/components.yml b/dmi-service/openapi/components.yml deleted file mode 100644 index ba9fc45b..00000000 --- a/dmi-service/openapi/components.yml +++ /dev/null @@ -1,318 +0,0 @@ -# ============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========================================================= - -components: - securitySchemes: - basicAuth: - type: http - scheme: basic - schemas: - ErrorMessage: - type: object - title: Error - properties: - status: - type: string - message: - type: string - details: - type: string - - CmHandles: - type: object - properties: - cmHandles: - type: array - example: ["cmHandleId1","cmHandleId2","cmHandleId3"] - items: - type: string - - ModuleReferencesRequest: - type: object - properties: - moduleSetTag: - type: string - cmHandleProperties: - $ref: '#/components/schemas/cmHandleProperties' - - ResourceDataOperationRequests: - type: array - items: - type: object - title: 'DataOperationRequest' - properties: - operation: - type: string - example: 'read' - operationId: - description: 'it is recommended that the operationId is unique within the scope of the request' - type: string - example: '12' - datastore: - type: string - example: 'ncmp-datastore:passthrough-operational' - options: - type: string - example: '(fields=NRCellDU/attributes/cellLocalId)' - resourceIdentifier: - type: string - example: '/ManagedElement=NRNode1/GNBDUFunction=1' - cmHandles: - type: array - items: - $ref: '#/components/schemas/dmiOperationCmHandle' - required: - - operation - - operationId - - datastore - - cmHandles - - dmiOperationCmHandle: - type: object - title: 'CmHandle with properties for DMI' - properties: - id: - type: string - cmHandleProperties: - additionalProperties: - type: string - moduleSetTag: - type: string - example: module-set-tag1 - example: - id: cmHandle123 - cmHandleProperties: - myProp: some value - otherProp: other value - moduleSetTag: module-set-tag1 - - ModuleResourcesReadRequest: - type: object - properties: - moduleSetTag: - type: string - description: Module set tag of the given cm handle - example: Module-set-tag-1 - required: false - data: - type: object - properties: - modules: - type: array - items: - type: object - properties: - name: - type: string - example: my-name - revision: - type: string - example: my-revision - cmHandleProperties: - $ref: '#/components/schemas/cmHandleProperties' - - ModuleSet: - type: object - properties: - schemas: - type: array - items: - type: object - properties: - moduleName: - type: string - example: my-module-name - revision: - type: string - example: my-revision - namespace: - type: string - example: my-namespace - - YangResources: - type: array - items: - $ref: '#/components/schemas/YangResource' - - YangResource: - properties: - yangSource: - type: string - example: my-yang-source - moduleName: - type: string - example: my-module-name - revision: - type: string - example: my-revision - - DataAccessRequest: - type: object - properties: - operation: - type: string - enum: [ read, create, update, patch, delete ] - example: read - dataType: - type: string - example: my-data-type - data: - type: string - example: my-data - cmHandleProperties: - $ref: '#/components/schemas/cmHandleProperties' - requestId: - type: string - example: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7 - moduleSetTag: - type: string - example: module-set-tag1 - - cmHandleProperties: - type: object - nullable: true - additionalProperties: - type: string - example: {"prop1":"value1","prop2":"value2"} - - responses: - NoContent: - description: No Content - content: {} - - BadRequest: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - example: - status: 400 - message: Bad Request - details: The provided request is not valid - - NotFound: - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - example: - status: 404 - message: Resource Not Found - details: The requested resource is not found - - ServerError: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - example: - status: 500 - message: Internal Server Error - details: Internal Server Error occured - - NotImplemented: - description: Not Implemented - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - example: - status: 501 - message: Not Implemented - details: Method Not Implemented - - parameters: - cmHandleInPath: - name: cmHandle - in: path - description: The CM handle or alternate identifier for a network function, network element, subnetwork, or any other CM object managed by Network CM Proxy - required: true - schema: - type: string - example: my-cm-handle - - resourceIdentifierInQuery: - name: resourceIdentifier - in: query - description: Resource identifier to get/set the resource data - required: true - schema: - type: string - example: '/ManagedElement=NRNode1/GNBDUFunction=1' - - 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 - examples: - sample1: - value: - options: (fields=NRCellDU/attributes/cellLocalId) - - topicParamInQuery: - name: topic - in: query - description: topic name passed from client(NCMP). - required: false - schema: - type: string - examples: - sample1: - value: my-topic-name - - requiredTopicParamInQuery: - name: topic - in: query - description: mandatory topic name passed from client(NCMP). - required: true - schema: - type: string - examples: - sample1: - value: - topic: my-topic-name - - requiredRequestIdParamInQuery: - name: requestId - in: query - description: request ID generated by NCMP and is sent here and sent as an acknowledgement for the client request. - required: true - schema: - type: string - examples: - sample1: - value: 4753fc1f-7de2-449a-b306-a6204b5370b3 - - datastoreName: - name: datastore-name - in: path - description: The type of the requested data - required: true - schema: - type: string - example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running - -security: - - basicAuth: [] diff --git a/dmi-service/openapi/openapi-datajob.yml b/dmi-service/openapi/openapi-datajob.yml deleted file mode 100644 index 3b657165..00000000 --- a/dmi-service/openapi/openapi-datajob.yml +++ /dev/null @@ -1,310 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. -# ================================================================================ -# 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.3 -info: - title: NCMP Data Subjob API - description: Support datajobs through one or more subjob for each DMI and Data Producer Identifier combination - version: "1.7.0" -servers: - - url: /dmi -tags: - - description: DMI plugin rest apis - name: dmi-datajob -paths: - /v1/cmreadJob: - post: - description: Create a read request - operationId: readDataJob - parameters: - - $ref: '#/components/parameters/destinationInQuery' - requestBody: - description: Operation body - content: - application/3gpp-json-patch+json: - schema: - $ref: '#/components/schemas/SubjobReadRequest' - tags: - - dmi-datajob - responses: - "501": - $ref: '#/components/responses/NotImplemented' - /v1/cmwriteJob: - post: - description: Create a write request - operationId: writeDataJob - parameters: - - $ref: '#/components/parameters/destinationInQuery' - requestBody: - description: Operation body - content: - application/3gpp-json-patch+json: - schema: - $ref: '#/components/schemas/SubjobWriteRequest' - tags: - - dmi-datajob - responses: - "501": - $ref: '#/components/responses/NotImplemented' - /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/status: - get: - description: Retrieve the status of a specific data job. - operationId: getDataJobStatus - parameters: - - $ref: '#/components/parameters/dataProducerIdInPath' - - $ref: '#/components/parameters/dataProducerJobIdInPath' - tags: - - dmi-datajob - responses: - "501": - $ref: '#/components/responses/NotImplemented' - /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/result: - get: - description: Retrieve the result of a data job. - operationId: getDataJobResult - parameters: - - $ref: '#/components/parameters/dataProducerIdInPath' - - $ref: '#/components/parameters/dataProducerJobIdInPath' - - $ref: '#/components/parameters/destinationInQuery' - tags: - - dmi-datajob - responses: - "501": - $ref: '#/components/responses/NotImplemented' - -components: - parameters: - requestIdInPath: - description: Identifier for the overall Datajob - in: path - name: requestId - required: true - schema: - example: some-identifier - type: string - dataProducerJobIdInPath: - description: Identifier for the data producer job - in: path - name: dataProducerJobId - required: true - schema: - example: some-producer-job-identifier - type: string - dataProducerIdInPath: - name: dataProducerId - in: path - description: Identifier for the data producer - required: true - schema: - type: string - example: some-data-producer-identifier - dataProducerIdInQuery: - name: dataProducerId - in: query - description: Identifier for the data producer - required: true - schema: - type: string - example: some-data-producer-identifier - destinationInQuery: - name: destination - in: query - description: The destination of the results (Kafka topic name or s3 bucket name) - required: true - schema: - type: string - example: some-destination - schemas: - ErrorMessage: - type: object - title: Error - properties: - status: - type: string - message: - type: string - details: - type: string - SubjobReadRequest: - type: object - required: - - dataProducerId - - data - properties: - dataAcceptType: - description: Defines the data response accept type - example: application/vnd.3gpp.object-tree-hierarchical+json - type: string - dataContentType: - description: Defines the data request content type - example: application/3gpp-json-patch+json - type: string - dataProducerId: - description: ID of the producer registered by DMI for the paths in the operations in this request - example: my-data-producer-identifier - type: string - data: - example: - op: read - operationId: 1 - path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2 - attributes: userLabel - scope: - scopeTyp: BASE_ONLY - type: array - items: - type: object - required: - - path - - op - properties: - path: - description: Defines the resource on which operation is executed - example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003 - type: string - op: - description: Describes the operation to execute - example: read - type: string - operationId: - description: Unique identifier for the operation within the request - example: 1 - type: string - attributes: - description: This parameter specifies the attributes of the scoped resources that are returned - type: array - items: - example: cellId - type: string - fields: - description: This parameter specifies the attribute fields of the scoped resources that are returned - type: array - items: - type: string - filter: - description: This parameter is used to filter the scoped Managed Objects. Only Managed Objects passing the filter criteria will be fetched - example: NRCellDU/attributes/administrativeState==LOCKED - type: string - scopeType: - description: ScopeType selects MOs depending on relationships with Base Managed Object - example: BASE_ONLY - type: string - scopeLevel: - description: Only used when the scope type is BASE_NTH_LEVEL to specify amount of levels to search - example: 0 - type: integer - moduleSetTag: - description: Module set identifier - example: my-module-set-tag - type: string - cmHandleProperties: - description: Private properties of the cm handle for the given path - $ref: '#/components/schemas/CmHandleProperties' - SubjobWriteRequest: - type: object - required: - - dataProducerId - - data - properties: - dataAcceptType: - description: Defines the data response accept type - example: application/vnd.3gpp.object-tree-hierarchical+json - type: string - dataContentType: - description: Defines the data request content type - example: application/3gpp-json-patch+json - type: string - dataProducerId: - description: ID of the producer registered by DMI for the paths in the operations in this request - example: my-data-producer-identifier - type: string - dataJobId: - description: Identifier for the overall Data Job - example: my-data-producer-identifier - type: string - data: - example: - op: add - path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12 - value: - id: 12 - attributes: - userLabel: label12 - type: array - items: - type: object - required: - - path - - op - properties: - path: - description: Defines the resource on which operation is executed - example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003 - type: string - op: - description: Describes the operation to execute - example: add - type: string - operationId: - description: Unique identifier for the operation within the request - example: 1 - type: string - moduleSetTag: - description: Module set identifier - example: my-module-set-tag - type: string - cmHandleProperties: - description: Private properties of the cm handle for the given path - $ref: '#/components/schemas/CmHandleProperties' - value: - description: Value dependent on the op specified. Resource for an add. Object for a replace. ActionParameters for an action. - type: object - additionalProperties: true - CmHandleProperties: - description: Private properties of the cm handle for the given path - type: object - SubjobWriteResponse: - type: object - required: - - subJobId - - dmiServiceName - - dataProducerId - properties: - subJobId: - description: Unique identifier for the sub-job - example: my-sub-job-id - type: string - dmiServiceName: - description: Name of the relevant DMI Service - example: my-dmi-service - type: string - dataProducerId: - description: ID of the producer registered by DMI for the paths in the operations in this request - example: my-data-producer-identifier - type: string - responses: - NotImplemented: - description: Not Implemented - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - example: - status: 501 - message: Not Implemented - details: Method Not Implemented diff --git a/dmi-service/openapi/openapi.yml b/dmi-service/openapi/openapi.yml deleted file mode 100644 index 7bb381b8..00000000 --- a/dmi-service/openapi/openapi.yml +++ /dev/null @@ -1,177 +0,0 @@ -# ============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.7.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' \ No newline at end of file diff --git a/dmi-service/pom.xml b/dmi-service/pom.xml index a0bd9543..487e958c 100644 --- a/dmi-service/pom.xml +++ b/dmi-service/pom.xml @@ -1,7 +1,7 @@