/__pycache__/*
/docs/docs/
-/docs/.vscode/
+/docs/.vscode/
\ No newline at end of file
--- /dev/null
+# ============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: []
--- /dev/null
+# ============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
--- /dev/null
+# ============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
<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
- Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved.
+ Copyright (C) 2024 Nordix Foundation
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
<gmavenplus.plugin.version>4.0.1</gmavenplus.plugin.version>
<maven.deploy.plugin.version>3.1.2</maven.deploy.plugin.version>
<maven.surefire.plugin.version>3.3.1</maven.surefire.plugin.version>
- <openapi.generator.maven.plugin.version>7.12.0</openapi.generator.maven.plugin.version>
+ <openapi.generator.maven.plugin.version>6.6.0</openapi.generator.maven.plugin.version>
<sonar.version>4.0.0.4121</sonar.version>
<spring.boot.maven.plugin.version>3.4.4</spring.boot.maven.plugin.version>
<spotbugs.maven.plugin.version>4.7.3.0</spotbugs.maven.plugin.version>
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docs/api/swagger/dmi/openapi.yml</inputSpec>
+ <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
<generatorName>spring</generatorName>
<generateSupportingFiles>false</generateSupportingFiles>
<invokerPackage>org.onap.cps.ncmp.dmi.rest.controller</invokerPackage>
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docs/api/swagger/dmi/openapi-datajob.yml</inputSpec>
+ <inputSpec>${project.basedir}/openapi/openapi-datajob.yml</inputSpec>
<generatorName>spring</generatorName>
<generateSupportingFiles>false</generateSupportingFiles>
<invokerPackage>org.onap.cps.ncmp.dmi.datajobs.rest.controller</invokerPackage>
</configOptions>
</configuration>
</execution>
+ <execution>
+ <id>openapi-yaml-gen</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
+ <generatorName>openapi-yaml</generatorName>
+ <configOptions>
+ <outputFile>openapi/openapi.yaml</outputFile>
+ </configOptions>
+ </configuration>
+ </execution>
+ <execution>
+ <id>openapi-datajob-yaml-gen</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <inputSpec>${project.basedir}/openapi/openapi-datajob.yml</inputSpec>
+ <generatorName>openapi-yaml</generatorName>
+ <configOptions>
+ <outputFile>openapi/openapi-datajob.yaml</outputFile>
+ </configOptions>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>${maven-resources-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>copy-to-doc-folder</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.basedir}/../docs/api/swagger</outputDirectory>
+ <overwrite>true</overwrite>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/target/generated-sources/openapi/openapi/</directory>
+ <includes>
+ <include>openapi.yaml</include>
+ <include>openapi-datajob.yaml</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
- <version>7.12.0</version>
+ <version>6.6.0</version>
<executions>
<execution>
<id>code-gen</id>
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docs/api/swagger/dmi/openapi-datajob.yml</inputSpec>
+ <inputSpec>${maven.multiModuleProjectDirectory}/dmi-service/openapi/openapi-datajob.yml</inputSpec>
<modelPackage>org.onap.cps.ncmp.dmi.datajobs.model</modelPackage>
<apiPackage>org.onap.cps.ncmp.dmi.datajobs.rest.api</apiPackage>
<generatorName>spring</generatorName>
</configOptions>
</configuration>
</execution>
+ <execution>
+ <id>openapi-yaml-gen</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <inputSpec>${maven.multiModuleProjectDirectory}/dmi-service/openapi/openapi-datajob.yml</inputSpec>
+ <generatorName>openapi-yaml</generatorName>
+ <configOptions>
+ <outputFile>openapi-datajob.yaml</outputFile>
+ </configOptions>
+ </configuration>
+ </execution>
</executions>
</plugin>
</plugins>
--- /dev/null
+openapi: 3.0.3
+info:
+ description: Support datajobs through one or more subjob for each DMI and Data Producer
+ Identifier combination
+ title: NCMP Data Subjob API
+ 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:
+ - description: The destination of the results (Kafka topic name or s3 bucket
+ name)
+ explode: true
+ in: query
+ name: destination
+ required: true
+ schema:
+ example: some-destination
+ type: string
+ style: form
+ requestBody:
+ content:
+ application/3gpp-json-patch+json:
+ schema:
+ $ref: '#/components/schemas/SubjobReadRequest'
+ description: Operation body
+ responses:
+ "501":
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ tags:
+ - dmi-datajob
+ /v1/cmwriteJob:
+ post:
+ description: Create a write request
+ operationId: writeDataJob
+ parameters:
+ - description: The destination of the results (Kafka topic name or s3 bucket
+ name)
+ explode: true
+ in: query
+ name: destination
+ required: true
+ schema:
+ example: some-destination
+ type: string
+ style: form
+ requestBody:
+ content:
+ application/3gpp-json-patch+json:
+ schema:
+ $ref: '#/components/schemas/SubjobWriteRequest'
+ description: Operation body
+ responses:
+ "501":
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ tags:
+ - dmi-datajob
+ /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/status:
+ get:
+ description: Retrieve the status of a specific data job.
+ operationId: getDataJobStatus
+ parameters:
+ - description: Identifier for the data producer
+ explode: false
+ in: path
+ name: dataProducerId
+ required: true
+ schema:
+ example: some-data-producer-identifier
+ type: string
+ style: simple
+ - description: Identifier for the data producer job
+ explode: false
+ in: path
+ name: dataProducerJobId
+ required: true
+ schema:
+ example: some-producer-job-identifier
+ type: string
+ style: simple
+ responses:
+ "501":
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ tags:
+ - dmi-datajob
+ /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/result:
+ get:
+ description: Retrieve the result of a data job.
+ operationId: getDataJobResult
+ parameters:
+ - description: Identifier for the data producer
+ explode: false
+ in: path
+ name: dataProducerId
+ required: true
+ schema:
+ example: some-data-producer-identifier
+ type: string
+ style: simple
+ - description: Identifier for the data producer job
+ explode: false
+ in: path
+ name: dataProducerJobId
+ required: true
+ schema:
+ example: some-producer-job-identifier
+ type: string
+ style: simple
+ - description: The destination of the results (Kafka topic name or s3 bucket
+ name)
+ explode: true
+ in: query
+ name: destination
+ required: true
+ schema:
+ example: some-destination
+ type: string
+ style: form
+ responses:
+ "501":
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ tags:
+ - dmi-datajob
+components:
+ parameters:
+ requestIdInPath:
+ description: Identifier for the overall Datajob
+ explode: false
+ in: path
+ name: requestId
+ required: true
+ schema:
+ example: some-identifier
+ type: string
+ style: simple
+ dataProducerJobIdInPath:
+ description: Identifier for the data producer job
+ explode: false
+ in: path
+ name: dataProducerJobId
+ required: true
+ schema:
+ example: some-producer-job-identifier
+ type: string
+ style: simple
+ dataProducerIdInPath:
+ description: Identifier for the data producer
+ explode: false
+ in: path
+ name: dataProducerId
+ required: true
+ schema:
+ example: some-data-producer-identifier
+ type: string
+ style: simple
+ dataProducerIdInQuery:
+ description: Identifier for the data producer
+ explode: true
+ in: query
+ name: dataProducerId
+ required: true
+ schema:
+ example: some-data-producer-identifier
+ type: string
+ style: form
+ destinationInQuery:
+ description: The destination of the results (Kafka topic name or s3 bucket name)
+ explode: true
+ in: query
+ name: destination
+ required: true
+ schema:
+ example: some-destination
+ type: string
+ style: form
+ responses:
+ NotImplemented:
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ schemas:
+ ErrorMessage:
+ properties:
+ status:
+ type: string
+ message:
+ type: string
+ details:
+ type: string
+ title: Error
+ type: object
+ SubjobReadRequest:
+ 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
+ items:
+ $ref: '#/components/schemas/SubjobReadRequest_data_inner'
+ type: array
+ required:
+ - data
+ - dataProducerId
+ type: object
+ SubjobWriteRequest:
+ 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
+ items:
+ $ref: '#/components/schemas/SubjobWriteRequest_data_inner'
+ type: array
+ required:
+ - data
+ - dataProducerId
+ type: object
+ CmHandleProperties:
+ description: Private properties of the cm handle for the given path
+ type: object
+ Resource:
+ properties:
+ id:
+ description: Identifier of the resource object
+ example: resource-identifier
+ type: string
+ attributes:
+ additionalProperties:
+ example: "userLabel: label11"
+ type: string
+ description: Key value map representing the objects class attributes and
+ values
+ type: object
+ type: object
+ ActionParameters:
+ additionalProperties:
+ type: string
+ description: The input of the action in the form of key value pairs
+ type: object
+ Object:
+ type: object
+ SubjobWriteResponse:
+ 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
+ required:
+ - dataProducerId
+ - dmiServiceName
+ - subJobId
+ type: object
+ SubjobReadRequest_data_inner:
+ 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
+ items:
+ example: cellId
+ type: string
+ type: array
+ fields:
+ description: This parameter specifies the attribute fields of the scoped
+ resources that are returned
+ items:
+ type: string
+ type: array
+ 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
+ type: object
+ required:
+ - op
+ - path
+ type: object
+ SubjobWriteRequest_data_inner_value:
+ description: Value dependent on the op specified. Resource for an add. Object
+ for a replace. ActionParameters for an action.
+ oneOf:
+ - $ref: '#/components/schemas/Resource'
+ - $ref: '#/components/schemas/ActionParameters'
+ - $ref: '#/components/schemas/Object'
+ type: object
+ SubjobWriteRequest_data_inner:
+ 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
+ type: object
+ value:
+ $ref: '#/components/schemas/SubjobWriteRequest_data_inner_value'
+ required:
+ - op
+ - path
+ type: object
--- /dev/null
+openapi: 3.0.1
+info:
+ description: Adds Data Model Inventory Registry capability for ONAP
+ title: NCMP DMI Plugin
+ version: 1.7.0
+servers:
+- url: /dmi
+tags:
+- description: DMI plugin internal rest apis
+ name: dmi-plugin-internal
+- description: DMI plugin rest apis
+ name: dmi-plugin
+paths:
+ /v1/ch/{cmHandle}/modules:
+ post:
+ description: Get all modules for given cm handle
+ operationId: getModuleReferences
+ parameters:
+ - description: "The CM handle or alternate identifier for a network function,\
+ \ network element, subnetwork, or any other CM object managed by Network\
+ \ CM Proxy"
+ in: path
+ name: cmHandle
+ required: true
+ schema:
+ example: my-cm-handle
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleReferencesRequest'
+ description: Operational body
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleSet'
+ description: OK
+ "404":
+ content:
+ application/json:
+ example:
+ status: 404
+ message: Resource Not Found
+ details: The requested resource is not found
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: The specified resource was not found
+ "500":
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ summary: Get all modules for cm handle
+ tags:
+ - dmi-plugin
+ /v1/ch/{cmHandle}/moduleResources:
+ post:
+ description: Retrieve module resources for one or more modules
+ operationId: retrieveModuleResources
+ parameters:
+ - description: "The CM handle or alternate identifier for a network function,\
+ \ network element, subnetwork, or any other CM object managed by Network\
+ \ CM Proxy"
+ in: path
+ name: cmHandle
+ required: true
+ schema:
+ example: my-cm-handle
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/YangResources'
+ description: OK
+ "404":
+ content:
+ application/json:
+ example:
+ status: 404
+ message: Resource Not Found
+ details: The requested resource is not found
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: The specified resource was not found
+ "500":
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ summary: Retrieve module resources
+ tags:
+ - dmi-plugin
+ /v1/inventory/cmHandles:
+ post:
+ description: register given list of cm handles (internal use only)
+ operationId: registerCmHandles
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CmHandles'
+ description: list of cm handles
+ required: true
+ responses:
+ "201":
+ content:
+ text/plain:
+ schema:
+ example: cm-handle registered successfully
+ type: string
+ description: Created
+ "400":
+ content:
+ application/json:
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Bad Request
+ "500":
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ summary: register given list of cm handles (internal use only)
+ tags:
+ - dmi-plugin-internal
+ x-api-audience: component-internal
+ /v1/ch/{cmHandle}/data/ds/{datastore-name}:
+ post:
+ description: Get resource data from passthrough operational or running for a
+ cm handle
+ operationId: dataAccessPassthrough
+ parameters:
+ - description: The type of the requested data
+ in: path
+ name: datastore-name
+ required: true
+ schema:
+ example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running
+ type: string
+ - description: "The CM handle or alternate identifier for a network function,\
+ \ network element, subnetwork, or any other CM object managed by Network\
+ \ CM Proxy"
+ in: path
+ name: cmHandle
+ required: true
+ schema:
+ example: my-cm-handle
+ type: string
+ - description: Resource identifier to get/set the resource data
+ in: query
+ name: resourceIdentifier
+ required: true
+ schema:
+ example: /ManagedElement=NRNode1/GNBDUFunction=1
+ type: string
+ - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
+ \ in parenthesis'()'."
+ examples:
+ sample1:
+ value:
+ options: (fields=NRCellDU/attributes/cellLocalId)
+ in: query
+ name: options
+ required: false
+ schema:
+ type: string
+ - description: topic name passed from client(NCMP).
+ examples:
+ sample1:
+ value: my-topic-name
+ in: query
+ name: topic
+ required: false
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DataAccessRequest'
+ description: Contains collection of cm handles with it's private properties
+ and requestId
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ example:
+ - yangSource: my-yang-source
+ moduleName: my-module-name
+ revision: my-revision
+ type: object
+ description: OK
+ "400":
+ content:
+ application/json:
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Bad Request
+ "500":
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ summary: Get resource data from passthrough operational or running for a cm
+ handle
+ tags:
+ - dmi-plugin
+ /v1/data:
+ post:
+ description: Execute a data operation for group of CM handle (IDs or alternate
+ IDs) by supplied operation details
+ operationId: getResourceDataForCmHandleDataOperation
+ parameters:
+ - description: mandatory topic name passed from client(NCMP).
+ examples:
+ sample1:
+ value:
+ topic: my-topic-name
+ in: query
+ name: topic
+ required: true
+ schema:
+ type: string
+ - description: request ID generated by NCMP and is sent here and sent as an
+ acknowledgement for the client request.
+ examples:
+ sample1:
+ value: 4753fc1f-7de2-449a-b306-a6204b5370b3
+ in: query
+ name: requestId
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ResourceDataOperationRequests'
+ description: list of operation details
+ responses:
+ "202":
+ description: Accepted
+ "400":
+ content:
+ application/json:
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Bad Request
+ "500":
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ "501":
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ summary: Execute a data operation for group of CM handle references.
+ tags:
+ - dmi-plugin
+components:
+ parameters:
+ cmHandleInPath:
+ description: "The CM handle or alternate identifier for a network function,\
+ \ network element, subnetwork, or any other CM object managed by Network CM\
+ \ Proxy"
+ in: path
+ name: cmHandle
+ required: true
+ schema:
+ example: my-cm-handle
+ type: string
+ datastoreName:
+ description: The type of the requested data
+ in: path
+ name: datastore-name
+ required: true
+ schema:
+ example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running
+ type: string
+ resourceIdentifierInQuery:
+ description: Resource identifier to get/set the resource data
+ in: query
+ name: resourceIdentifier
+ required: true
+ schema:
+ example: /ManagedElement=NRNode1/GNBDUFunction=1
+ type: string
+ optionsParamInQuery:
+ description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
+ \ in parenthesis'()'."
+ examples:
+ sample1:
+ value:
+ options: (fields=NRCellDU/attributes/cellLocalId)
+ in: query
+ name: options
+ required: false
+ schema:
+ type: string
+ topicParamInQuery:
+ description: topic name passed from client(NCMP).
+ examples:
+ sample1:
+ value: my-topic-name
+ in: query
+ name: topic
+ required: false
+ schema:
+ type: string
+ requiredTopicParamInQuery:
+ description: mandatory topic name passed from client(NCMP).
+ examples:
+ sample1:
+ value:
+ topic: my-topic-name
+ in: query
+ name: topic
+ required: true
+ schema:
+ type: string
+ requiredRequestIdParamInQuery:
+ description: request ID generated by NCMP and is sent here and sent as an acknowledgement
+ for the client request.
+ examples:
+ sample1:
+ value: 4753fc1f-7de2-449a-b306-a6204b5370b3
+ in: query
+ name: requestId
+ required: true
+ schema:
+ type: string
+ responses:
+ NotFound:
+ content:
+ application/json:
+ example:
+ status: 404
+ message: Resource Not Found
+ details: The requested resource is not found
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: The specified resource was not found
+ ServerError:
+ content:
+ application/json:
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Internal Server Error
+ BadRequest:
+ content:
+ application/json:
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Bad Request
+ NotImplemented:
+ content:
+ application/json:
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ description: Not Implemented
+ schemas:
+ ModuleReferencesRequest:
+ example:
+ moduleSetTag: moduleSetTag
+ cmHandleProperties:
+ key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ properties:
+ moduleSetTag:
+ type: string
+ cmHandleProperties:
+ additionalProperties:
+ example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ type: string
+ nullable: true
+ type: object
+ type: object
+ cmHandleProperties:
+ additionalProperties:
+ example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ type: string
+ nullable: true
+ type: object
+ ModuleSet:
+ example:
+ schemas:
+ - moduleName: my-module-name
+ namespace: my-namespace
+ revision: my-revision
+ - moduleName: my-module-name
+ namespace: my-namespace
+ revision: my-revision
+ properties:
+ schemas:
+ items:
+ $ref: '#/components/schemas/ModuleSet_schemas_inner'
+ type: array
+ type: object
+ ErrorMessage:
+ properties:
+ status:
+ type: string
+ message:
+ type: string
+ details:
+ type: string
+ title: Error
+ type: object
+ ModuleResourcesReadRequest:
+ example:
+ data:
+ modules:
+ - name: my-name
+ revision: my-revision
+ - name: my-name
+ revision: my-revision
+ moduleSetTag: Module-set-tag-1
+ cmHandleProperties:
+ key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ properties:
+ moduleSetTag:
+ description: Module set tag of the given cm handle
+ example: Module-set-tag-1
+ type: string
+ data:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest_data'
+ cmHandleProperties:
+ additionalProperties:
+ example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ type: string
+ nullable: true
+ type: object
+ type: object
+ YangResources:
+ items:
+ $ref: '#/components/schemas/YangResource'
+ type: array
+ YangResource:
+ example:
+ yangSource: my-yang-source
+ moduleName: my-module-name
+ revision: my-revision
+ properties:
+ yangSource:
+ example: my-yang-source
+ type: string
+ moduleName:
+ example: my-module-name
+ type: string
+ revision:
+ example: my-revision
+ type: string
+ CmHandles:
+ example:
+ cmHandles:
+ - cmHandleId1
+ - cmHandleId2
+ - cmHandleId3
+ properties:
+ cmHandles:
+ example:
+ - cmHandleId1
+ - cmHandleId2
+ - cmHandleId3
+ items:
+ type: string
+ type: array
+ type: object
+ DataAccessRequest:
+ example:
+ data: my-data
+ requestId: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7
+ dataType: my-data-type
+ cmHandleProperties:
+ key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ moduleSetTag: module-set-tag1
+ operation: read
+ properties:
+ operation:
+ enum:
+ - read
+ - create
+ - update
+ - patch
+ - delete
+ example: read
+ type: string
+ dataType:
+ example: my-data-type
+ type: string
+ data:
+ example: my-data
+ type: string
+ cmHandleProperties:
+ additionalProperties:
+ example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}"
+ type: string
+ nullable: true
+ type: object
+ requestId:
+ example: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7
+ type: string
+ moduleSetTag:
+ example: module-set-tag1
+ type: string
+ type: object
+ ResourceDataOperationRequests:
+ items:
+ $ref: '#/components/schemas/DataOperationRequest'
+ type: array
+ dmiOperationCmHandle:
+ example:
+ id: cmHandle123
+ cmHandleProperties:
+ myProp: some value
+ otherProp: other value
+ moduleSetTag: module-set-tag1
+ properties:
+ id:
+ type: string
+ cmHandleProperties:
+ additionalProperties:
+ type: string
+ type: object
+ moduleSetTag:
+ example: module-set-tag1
+ type: string
+ title: CmHandle with properties for DMI
+ type: object
+ ModuleSet_schemas_inner:
+ example:
+ moduleName: my-module-name
+ namespace: my-namespace
+ revision: my-revision
+ properties:
+ moduleName:
+ example: my-module-name
+ type: string
+ revision:
+ example: my-revision
+ type: string
+ namespace:
+ example: my-namespace
+ type: string
+ type: object
+ ModuleResourcesReadRequest_data_modules_inner:
+ example:
+ name: my-name
+ revision: my-revision
+ properties:
+ name:
+ example: my-name
+ type: string
+ revision:
+ example: my-revision
+ type: string
+ type: object
+ ModuleResourcesReadRequest_data:
+ example:
+ modules:
+ - name: my-name
+ revision: my-revision
+ - name: my-name
+ revision: my-revision
+ properties:
+ modules:
+ items:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest_data_modules_inner'
+ type: array
+ type: object
+ DataOperationRequest:
+ example:
+ resourceIdentifier: /ManagedElement=NRNode1/GNBDUFunction=1
+ datastore: ncmp-datastore:passthrough-operational
+ options: (fields=NRCellDU/attributes/cellLocalId)
+ operationId: "12"
+ cmHandles:
+ - id: cmHandle123
+ cmHandleProperties:
+ myProp: some value
+ otherProp: other value
+ moduleSetTag: module-set-tag1
+ - id: cmHandle123
+ cmHandleProperties:
+ myProp: some value
+ otherProp: other value
+ moduleSetTag: module-set-tag1
+ operation: read
+ properties:
+ operation:
+ example: read
+ type: string
+ operationId:
+ description: it is recommended that the operationId is unique within the
+ scope of the request
+ example: "12"
+ type: string
+ datastore:
+ example: ncmp-datastore:passthrough-operational
+ type: string
+ options:
+ example: (fields=NRCellDU/attributes/cellLocalId)
+ type: string
+ resourceIdentifier:
+ example: /ManagedElement=NRNode1/GNBDUFunction=1
+ type: string
+ cmHandles:
+ items:
+ $ref: '#/components/schemas/dmiOperationCmHandle'
+ type: array
+ required:
+ - cmHandles
+ - datastore
+ - operation
+ - operationId
+ title: DataOperationRequest
+ type: object
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
-.. Copyright (C) 2021-2025 OpenInfra Foundation Europe. All rights reserved.
+.. Copyright (C) 2021-2024 Nordix Foundation
.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING
.. _design:
The DMI-Plugin supports the public APIs listed in the link below:
-:download:`DMI Rest OpenApi Specification <https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docs/api/swagger/dmi/openapi.yml>`
+:download:`DMI Rest OpenApi Specification <api/swagger/openapi.yaml>`
-:download:`DMI Datajob OpenApi Specification <https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docs/api/swagger/dmi/openapi-datajob.yml>`
+:download:`DMI Datajob OpenApi Specification <api/swagger/openapi-datajob.yaml>`
View Offered APIs
-----------------