summaryrefslogtreecommitdiffstats
path: root/openapi
diff options
context:
space:
mode:
Diffstat (limited to 'openapi')
-rw-r--r--openapi/components.yml202
-rw-r--r--openapi/openapi.yml211
2 files changed, 413 insertions, 0 deletions
diff --git a/openapi/components.yml b/openapi/components.yml
new file mode 100644
index 00000000..30e5987f
--- /dev/null
+++ b/openapi/components.yml
@@ -0,0 +1,202 @@
+components:
+ schemas:
+ ErrorMessage:
+ type: object
+ title: Error
+ properties:
+ status:
+ type: string
+ message:
+ type: string
+ details:
+ type: string
+
+ CmHandles:
+ type: object
+ properties:
+ cmHandles:
+ type: array
+ items:
+ type: string
+
+ ModuleReferencesRequest:
+ type: object
+ properties:
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+
+ ModuleResourcesReadRequest:
+ type: object
+ properties:
+ data:
+ type: object
+ properties:
+ modules:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ $ref: '#/components/schemas/name'
+ revision:
+ $ref: '#/components/schemas/revision'
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+
+ ModuleSet:
+ type: object
+ properties:
+ schemas:
+ type: array
+ items:
+ type: object
+ properties:
+ moduleName:
+ type: string
+ revision:
+ $ref: '#/components/schemas/revision'
+ namespace:
+ type: string
+
+ YangResources:
+ type: array
+ items:
+ type: object
+ $ref: '#/components/schemas/YangResource'
+
+ YangResource:
+ properties:
+ yangSource:
+ type: string
+ moduleName:
+ type: string
+ revision:
+ $ref: '#/components/schemas/revision'
+
+ DataAccessReadRequest:
+ type: object
+ properties:
+ operation:
+ type: string
+ enum: [ read ]
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+
+ DataAccessWriteRequest:
+ type: object
+ properties:
+ operation:
+ type: string
+ enum: [ create ]
+ dataType:
+ type: string
+ data:
+ type: string
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+
+ cmHandleProperties:
+ type: object
+ additionalProperties:
+ type: string
+ example: {"prop1":"value1","prop2":"value2"}
+
+ name:
+ type: string
+ example: someName
+
+ revision:
+ type: string
+ example: someRevision
+
+ responses:
+ NotFound:
+ description: The specified resource was not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Unauthorized:
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Forbidden:
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ BadRequest:
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Conflict:
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Ok:
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: object
+ Created:
+ description: Created
+ content:
+ text/plain:
+ schema:
+ type: string
+ NoContent:
+ description: No Content
+ content: {}
+
+ parameters:
+ cmHandleInPath:
+ name: cmHandle
+ in: path
+ description: The identifier for a network function, network element, subnetwork, or any other cm object by managed Network CM Proxy
+ required: true
+ schema:
+ type: string
+
+ resourceIdentifierInQuery:
+ name: resourceIdentifier
+ in: query
+ description: Resource identifier to get/set the resource data
+ required: true
+ allowReserved: true
+ schema:
+ type: string
+
+ acceptParamInHeader:
+ name: accept
+ in: header
+ description: Accept parameter for response, if accept parameter is null, that means client can accept any format.
+ schema:
+ type: string
+ enum: [ application/json, application/yang-data+json ]
+
+ optionsParamInQuery:
+ name: options
+ in: query
+ description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'.
+ required: false
+ schema:
+ type: string
+ allowReserved: true
+ examples:
+ sample1:
+ value:
+ options: (key1=value1,key2=value2)
+ sample2:
+ value:
+ options: (key1=value1,key2=value1/value2)
+ sample3:
+ value:
+ options: (key1=10,key2=value2,key3=[val31,val32]) \ No newline at end of file
diff --git a/openapi/openapi.yml b/openapi/openapi.yml
new file mode 100644
index 00000000..0f43f9a5
--- /dev/null
+++ b/openapi/openapi.yml
@@ -0,0 +1,211 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+openapi: 3.0.1
+info:
+ title: NCMP DMI Plugin
+ description: Adds Data Model Inventory Registry capability for ONAP
+ version: "1.0.0"
+servers:
+ - url: /dmi
+tags:
+ - name: dmi-plugin-internal
+ description: DMI plugin internal rest apis
+ - name: dmi-plugin
+ description: DMI plugin rest apis
+
+
+paths:
+ /v1/ch/{cmHandle}/modules:
+ post:
+ tags:
+ - dmi-plugin
+ summary: Get all modules for cm handle
+ description: Get all modules for given cm handle
+ operationId: getModuleReferences
+ parameters:
+ - name: cmHandle
+ in: path
+ description: The cm handle to fetch all the modules
+ required: true
+ schema:
+ type: string
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/ModuleReferencesRequest'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/ModuleSet'
+ example: {
+ "schemas": [
+ {
+ "moduleName": "example-identifier",
+ "revision": "example-version",
+ "namespace": "example-namespace"
+ }
+ ]
+ }
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ /v1/inventory/cmHandles:
+ post:
+ tags:
+ - dmi-plugin-internal
+ summary: register given list of cm handles (internal use only)
+ description: register given list of cm handles (internal use only)
+ x-api-audience: component-internal
+ operationId: registerCmHandles
+ requestBody:
+ description: list of cm handles
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/CmHandles'
+ required: true
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ /v1/ch/{cmHandle}/moduleResources:
+ post:
+ description: Retrieve module resources for one or more modules
+ tags:
+ - dmi-plugin
+ summary: Retrieve module resources
+ operationId: retrieveModuleResources
+ parameters:
+ - $ref: 'components.yml#/components/parameters/cmHandleInPath'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/ModuleResourcesReadRequest'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/YangResources'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational:
+ put:
+ tags:
+ - dmi-plugin
+ summary: Get resource data from passthrough-operational for cm handle
+ description: Get resource data from passthrough-operational for cm handle
+ operationId: getResourceDataOperationalForCmHandle
+ parameters:
+ - $ref: 'components.yml#/components/parameters/cmHandleInPath'
+ - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
+ - $ref: 'components.yml#/components/parameters/acceptParamInHeader'
+ - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/DataAccessReadRequest'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running:
+ put:
+ tags:
+ - dmi-plugin
+ summary: Get resource data from passthrough-running for cm handle
+ description: Get resource data from passthrough-running for cm handle
+ operationId: getResourceDataPassthroughRunningForCmHandle
+ parameters:
+ - $ref: 'components.yml#/components/parameters/cmHandleInPath'
+ - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
+ - $ref: 'components.yml#/components/parameters/acceptParamInHeader'
+ - $ref: 'components.yml#/components/parameters/optionsParamInQuery'
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/DataAccessReadRequest'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ post:
+ description: Write data for a cmHandle using passthrough-running
+ tags:
+ - dmi-plugin
+ summary: Write data for a cmHandle
+ operationId: writeDataByPassthroughRunningForCmHandle
+ parameters:
+ - $ref: 'components.yml#/components/parameters/cmHandleInPath'
+ - $ref: 'components.yml#/components/parameters/resourceIdentifierInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: 'components.yml#/components/schemas/DataAccessWriteRequest'
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+