summaryrefslogtreecommitdiffstats
path: root/openapi
diff options
context:
space:
mode:
authoregernug <gerard.nugent@est.tech>2024-06-21 12:53:06 +0100
committeregernug <gerard.nugent@est.tech>2024-06-24 16:14:08 +0100
commit5e4eb8c3bd9886e4c3ee2089b54236a01a99566b (patch)
tree1f0870f83ea9a79c90ae34deffad8618000d144c /openapi
parent92de0b14a9fca76ce2da53c9533c16d7c17eab5e (diff)
Create module structure in DMI Plugin
To push the stub in to DMI Plugin the Plugin will need to be modulized akin to CPS/NCMP. This involves creating a new module in the repo and porting the packages in src into this module Issue-ID: CPS-2284 Change-Id: Iffa4eded4e49c220891fe73c30ea3b2f12a9e66d Signed-off-by: egernug <gerard.nugent@est.tech>
Diffstat (limited to 'openapi')
-rw-r--r--openapi/components.yml324
-rw-r--r--openapi/openapi-datajob.yml254
-rw-r--r--openapi/openapi.yml177
3 files changed, 0 insertions, 755 deletions
diff --git a/openapi/components.yml b/openapi/components.yml
deleted file mode 100644
index 4a6d1729..00000000
--- a/openapi/components.yml
+++ /dev/null
@@ -1,324 +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: 'some option'
- resourceIdentifier:
- type: string
- example: 'some resource identifier'
- 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 identifier for a network function, network element, subnetwork, or any other cm object by managed 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: my-schema:my-node
-
- 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: (key1=value1,key2=value2)
- sample2:
- value:
- options: (key1=value1,key2=value1/value2)
- sample3:
- value:
- options: (key1=10,key2=value2,key3=val31,val32)
-
- 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 sent as an acknowledgement for the client request the same including here.
- 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/openapi/openapi-datajob.yml b/openapi/openapi-datajob.yml
deleted file mode 100644
index 989218d9..00000000
--- a/openapi/openapi-datajob.yml
+++ /dev/null
@@ -1,254 +0,0 @@
-# ============LICENSE_START=======================================================
-# 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.
-# 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.0.0
-servers:
- - url: /dmi
-tags:
- - description: DMI plugin rest apis
- name: dmi-datajob
-paths:
- /v1/readJob/{requestId}:
- post:
- description: Create a read request
- operationId: readDataJob
- parameters:
- - $ref: '#/components/parameters/requestIdInPath'
- 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/writeJob/{requestId}:
- post:
- description: Create a write request
- operationId: writeDataJob
- parameters:
- - $ref: '#/components/parameters/requestIdInPath'
- requestBody:
- description: Operation body
- content:
- application/3gpp-json-patch+json:
- schema:
- $ref: '#/components/schemas/SubjobWriteRequest'
- 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
- 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
- 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
- oneOf:
- - $ref: '#/components/schemas/Resource'
- - $ref: '#/components/schemas/ActionParameters'
- - $ref: '#/components/schemas/Object'
- CmHandleProperties:
- description: Private properties of the cm handle for the given path
- type: object
- Resource:
- type: object
- properties:
- id:
- description: Identifier of the resource object
- example: resource-identifier
- type: string
- attributes:
- description: Key value map representing the objects class attributes and values
- type: object
- additionalProperties:
- example: 'userLabel: label11'
- type: string
- ActionParameters:
- description: The input of the action in the form of key value pairs
- type: object
- additionalProperties:
- type: string
- Object:
- type: object
- 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/openapi/openapi.yml b/openapi/openapi.yml
deleted file mode 100644
index 6dbc19f3..00000000
--- a/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.0.0"
-servers:
- - url: /dmi
-tags:
- - name: dmi-plugin-internal
- description: DMI plugin internal rest apis
- - name: dmi-plugin
- description: DMI plugin rest apis
-
-
-paths:
- /v1/ch/{cmHandle}/modules:
- post:
- tags:
- - dmi-plugin
- summary: Get all modules for cm handle
- description: Get all modules for given cm handle
- operationId: getModuleReferences
- parameters:
- - $ref: 'components.yml#/components/parameters/cmHandleInPath'
- requestBody:
- description: Operational body
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/ModuleReferencesRequest'
- responses:
- '200':
- description: OK
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/ModuleSet'
- '404':
- $ref: 'components.yml#/components/responses/NotFound'
- '500':
- $ref: 'components.yml#/components/responses/ServerError'
-
-
- /v1/ch/{cmHandle}/moduleResources:
- post:
- description: Retrieve module resources for one or more modules
- tags:
- - dmi-plugin
- summary: Retrieve module resources
- operationId: retrieveModuleResources
- parameters:
- - $ref: 'components.yml#/components/parameters/cmHandleInPath'
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/ModuleResourcesReadRequest'
- responses:
- '200':
- description: OK
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/YangResources'
- '404':
- $ref: 'components.yml#/components/responses/NotFound'
- '500':
- $ref: 'components.yml#/components/responses/ServerError'
-
- /v1/inventory/cmHandles:
- post:
- tags:
- - dmi-plugin-internal
- summary: register given list of cm handles (internal use only)
- description: register given list of cm handles (internal use only)
- x-api-audience: component-internal
- operationId: registerCmHandles
- requestBody:
- description: list of cm handles
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/CmHandles'
- required: true
- responses:
- '201':
- description: Created
- content:
- text/plain:
- schema:
- type: string
- example: cm-handle registered successfully
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '500':
- $ref: 'components.yml#/components/responses/ServerError'
-
- /v1/ch/{cmHandle}/data/ds/{datastore-name}:
- post:
- tags:
- - dmi-plugin
- summary: Get resource data from passthrough operational or running for a cm handle
- description: Get resource data from passthrough operational or running for a cm handle
- operationId: dataAccessPassthrough
- parameters:
- - $ref: 'components.yml#/components/parameters/datastoreName'
- - $ref: 'components.yml#/components/parameters/cmHandleInPath'
- - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
- - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
- - $ref: 'components.yml#/components/parameters/topicParamInQuery'
- requestBody:
- description: Contains collection of cm handles with it's private properties and requestId
- content:
- application/json:
- schema:
- $ref: 'components.yml#/components/schemas/DataAccessRequest'
- responses:
- '200':
- description: OK
- content:
- application/json:
- schema:
- type: object
- example:
- - yangSource: my-yang-source
- moduleName: my-module-name
- revision: my-revision
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '500':
- $ref: 'components.yml#/components/responses/ServerError'
-
- /v1/data:
- post:
- tags:
- - dmi-plugin
- summary: Execute a data operation for group of cm handle ids.
- description: Execute a data operation for group of cm handle 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