summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorputhuparambil.aditya <aditya.puthuparambil@bell.ca>2022-01-20 15:26:52 +0000
committerputhuparambil.aditya <aditya.puthuparambil@bell.ca>2022-01-20 16:56:40 +0000
commitbdcccb58d65b6d8ee0f07304e635b415041fe36f (patch)
tree2e004832dfbdfae526aa7bca497a1282bab4934a
parent527a90df79174fcbceee0e4f0d17fae200de6a2e (diff)
Align DMI Plugin REST API Specification and Implementation
Issue-ID: CPS-824 Signed-off-by: puthuparambil.aditya <aditya.puthuparambil@bell.ca> Change-Id: If4478f6afd6a36570dc2d800484cffdb40c256c9
-rw-r--r--docs/api/swagger/openapi.yaml373
-rw-r--r--openapi/components.yml31
-rw-r--r--openapi/openapi.yml61
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java2
4 files changed, 242 insertions, 225 deletions
diff --git a/docs/api/swagger/openapi.yaml b/docs/api/swagger/openapi.yaml
index 54676fe5..300557bd 100644
--- a/docs/api/swagger/openapi.yaml
+++ b/docs/api/swagger/openapi.yaml
@@ -4,29 +4,29 @@ info:
description: Adds Data Model Inventory Registry capability for ONAP
version: 1.0.0
servers:
-- url: /dmi
+ - url: /dmi
tags:
-- name: dmi-plugin-internal
- description: DMI plugin internal rest apis
-- name: dmi-plugin
- description: DMI plugin rest apis
+ - 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
+ - dmi-plugin
summary: Get all modules for cm handle
description: Get all modules for given cm handle
operationId: getModuleReferences
parameters:
- - name: cmHandle
- in: path
- description: The cm handle to fetch all the modules
- required: true
- style: simple
- explode: false
- schema:
- type: string
+ - 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
requestBody:
description: Operational body
content:
@@ -40,39 +40,42 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ModuleSet'
- "400":
- description: Bad Request
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- "401":
- description: Unauthorized
+ "404":
+ description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- "403":
- description: Forbidden
+ example:
+ status: 404
+ message: Resource Not Found
+ details: The requested resource is not found
+ "500":
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
/v1/ch/{cmHandle}/moduleResources:
post:
tags:
- - dmi-plugin
+ - dmi-plugin
summary: Retrieve module resources
description: Retrieve module resources for one or more modules
operationId: retrieveModuleResources
parameters:
- - name: cmHandle
- in: path
- description: The identifier for a network function, network element, subnetwork,
- or any other cm object by managed Network CM Proxy
- required: true
- schema:
- type: string
+ - 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
requestBody:
content:
application/json:
@@ -86,28 +89,30 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/YangResources'
- "400":
- description: Bad Request
+ "404":
+ description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- "401":
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- "403":
- description: Forbidden
+ example:
+ status: 404
+ message: Resource Not Found
+ details: The requested resource is not found
+ "500":
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
/v1/inventory/cmHandles:
post:
tags:
- - dmi-plugin-internal
+ - dmi-plugin-internal
summary: register given list of cm handles (internal use only)
description: register given list of cm handles (internal use only)
operationId: registerCmHandles
@@ -125,75 +130,80 @@ paths:
text/plain:
schema:
type: string
+ example: cm-handle registered successfully
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- "401":
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- "403":
- description: Forbidden
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ "500":
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
x-api-audience: component-internal
/v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational:
post:
tags:
- - dmi-plugin
+ - dmi-plugin
summary: Get resource data from passthrough-operational for cm handle
description: Get resource data from passthrough-operational for cm handle. Will
support read operations only.
operationId: dataAccessPassthroughOperational
parameters:
- - name: cmHandle
- in: path
- description: The identifier for a network function, network element, subnetwork,
- or any other cm object by managed Network CM Proxy
- required: true
- schema:
- type: string
- - name: resourceIdentifier
- in: query
- description: Resource identifier to get/set the resource data
- required: true
- allowReserved: true
- schema:
- type: string
- - name: accept
- in: header
- description: Accept parameter for response, if accept parameter is null, that
- means client can accept any format.
- schema:
- type: string
- enum:
- - application/json
- - application/yang-data+json
- - name: options
- in: query
- description: options parameter in query, it is mandatory to wrap key(s)=value(s)
- in parenthesis'()'.
- required: false
- allowReserved: true
- schema:
- type: string
- examples:
- sample1:
- value:
- options: (key1=value1,key2=value2)
- sample2:
- value:
- options: (key1=value1,key2=value1/value2)
- sample3:
- value:
- options: (key1=10,key2=value2,key3=[val31,val32])
+ - 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
+ - name: resourceIdentifier
+ in: query
+ description: Resource identifier to get/set the resource data
+ required: true
+ allowReserved: true
+ schema:
+ type: string
+ example: my-schema:my-node
+ - name: accept
+ in: header
+ description: Accept parameter for response, if accept parameter is null, that
+ means client can accept any format.
+ schema:
+ type: string
+ enum:
+ - application/json
+ - application/yang-data+json
+ - name: options
+ in: query
+ description: options parameter in query, it is mandatory to wrap key(s)=value(s)
+ in parenthesis'()'.
+ required: false
+ allowReserved: true
+ schema:
+ type: string
+ examples:
+ sample1:
+ value:
+ options: (key1=value1,key2=value2)
+ sample2:
+ value:
+ options: (key1=value1,key2=value1/value2)
+ sample3:
+ value:
+ options: (key1=10,key2=value2,key3=val31,val32)
requestBody:
description: Operational body
content:
@@ -207,28 +217,34 @@ paths:
application/json:
schema:
type: object
+ example:
+ - yangSource: my-yang-source
+ moduleName: my-module-name
+ revision: my-revision
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- "401":
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- "403":
- description: Forbidden
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ "500":
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
/v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running:
post:
tags:
- - dmi-plugin
+ - dmi-plugin
summary: Get, Create or Update request for data passthrough-running for a cm-handle
description: Post request to Get, Create or to Update resource data for a cm-handle.
Since all requests need to include additional information in a request body
@@ -236,77 +252,95 @@ paths:
the request body instead.
operationId: dataAccessPassthroughRunning
parameters:
- - name: cmHandle
- in: path
- description: The identifier for a network function, network element, subnetwork,
- or any other cm object by managed Network CM Proxy
- required: true
- schema:
- type: string
- - name: resourceIdentifier
- in: query
- description: Resource identifier to get/set the resource data
- required: true
- allowReserved: true
- schema:
- type: string
- - name: accept
- in: header
- description: Accept parameter for response, if accept parameter is null, that
- means client can accept any format.
- schema:
- type: string
- enum:
- - application/json
- - application/yang-data+json
- - name: options
- in: query
- description: options parameter in query, it is mandatory to wrap key(s)=value(s)
- in parenthesis'()'.
- required: false
- allowReserved: true
- schema:
- type: string
- examples:
- sample1:
- value:
- options: (key1=value1,key2=value2)
- sample2:
- value:
- options: (key1=value1,key2=value1/value2)
- sample3:
- value:
- options: (key1=10,key2=value2,key3=[val31,val32])
+ - 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
+ - name: resourceIdentifier
+ in: query
+ description: Resource identifier to get/set the resource data
+ required: true
+ allowReserved: true
+ schema:
+ type: string
+ example: my-schema:my-node
+ - name: accept
+ in: header
+ description: Accept parameter for response, if accept parameter is null, that
+ means client can accept any format.
+ schema:
+ type: string
+ enum:
+ - application/json
+ - application/yang-data+json
+ - name: options
+ in: query
+ description: options parameter in query, it is mandatory to wrap key(s)=value(s)
+ in parenthesis'()'.
+ required: false
+ allowReserved: true
+ schema:
+ type: string
+ examples:
+ sample1:
+ value:
+ options: (key1=value1,key2=value2)
+ sample2:
+ value:
+ options: (key1=value1,key2=value1/value2)
+ sample3:
+ value:
+ options: (key1=10,key2=value2,key3=val31,val32)
requestBody:
content:
application/json:
schema:
$ref: '#/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
"201":
description: Created
content:
text/plain:
schema:
type: string
+ example: cm-handle registered successfully
+ "204":
+ description: No Content
+ content: {}
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- "401":
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- "403":
- description: Forbidden
+ example:
+ status: 400
+ message: Bad Request
+ details: The provided request is not valid
+ "500":
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
components:
schemas:
ModuleReferencesRequest:
@@ -326,9 +360,6 @@ components:
type: array
items:
$ref: '#/components/schemas/ModuleSet_schemas'
- revision:
- type: string
- example: someRevision
ErrorMessage:
title: Error
type: object
@@ -346,9 +377,6 @@ components:
$ref: '#/components/schemas/ModuleResourcesReadRequest_data'
cmHandleProperties:
$ref: '#/components/schemas/cmHandleProperties'
- name:
- type: string
- example: someName
YangResources:
type: array
items:
@@ -357,15 +385,22 @@ components:
properties:
yangSource:
type: string
+ example: my-yang-source
moduleName:
type: string
+ example: my-module-name
revision:
- $ref: '#/components/schemas/revision'
+ type: string
+ example: my-revision
CmHandles:
type: object
properties:
cmHandles:
type: array
+ example:
+ - cmHandleId1
+ - cmHandleId2
+ - cmHandleId3
items:
type: string
DataAccessRequest:
@@ -373,15 +408,18 @@ components:
properties:
operation:
type: string
+ example: read
enum:
- - read
- - create
- - update
- - delete
+ - read
+ - create
+ - update
+ - delete
dataType:
type: string
+ example: my-data-type
data:
type: string
+ example: my-data
cmHandleProperties:
$ref: '#/components/schemas/cmHandleProperties'
ModuleSet_schemas:
@@ -389,17 +427,22 @@ components:
properties:
moduleName:
type: string
+ example: my-module-name
revision:
- $ref: '#/components/schemas/revision'
+ type: string
+ example: my-revision
namespace:
type: string
+ example: my-namespace
ModuleResourcesReadRequest_data_modules:
type: object
properties:
name:
- $ref: '#/components/schemas/name'
+ type: string
+ example: my-name
revision:
- $ref: '#/components/schemas/revision'
+ type: string
+ example: my-revision
ModuleResourcesReadRequest_data:
type: object
properties:
diff --git a/openapi/components.yml b/openapi/components.yml
index aa0827a5..c3812669 100644
--- a/openapi/components.yml
+++ b/openapi/components.yml
@@ -118,26 +118,6 @@ components:
status: 400
message: Bad Request
details: The provided request is not valid
- Unauthorized:
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- example:
- status: 401
- message: Unauthorized request
- details: This request is unauthorized
- Forbidden:
- description: Forbidden
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ErrorMessage'
- example:
- status: 403
- message: Request Forbidden
- details: This request is forbidden
NotFound:
description: The specified resource was not found
content:
@@ -148,17 +128,16 @@ components:
status: 404
message: Resource Not Found
details: The requested resource is not found
- Conflict:
- description: Conflict
+ ServerError:
+ description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
- status: 409
- message: Conflicting request
- details: The request cannot be processed as the resource is in use.
-
+ status: 500
+ message: Internal Server Error
+ details: Internal Server Error occured
parameters:
cmHandleInPath:
name: cmHandle
diff --git a/openapi/openapi.yml b/openapi/openapi.yml
index 6605a2df..e9772620 100644
--- a/openapi/openapi.yml
+++ b/openapi/openapi.yml
@@ -53,12 +53,11 @@ paths:
application/json:
schema:
$ref: 'components.yml#/components/schemas/ModuleSet'
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
+
/v1/ch/{cmHandle}/moduleResources:
post:
@@ -82,12 +81,10 @@ paths:
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'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
/v1/inventory/cmHandles:
post:
@@ -114,10 +111,8 @@ paths:
example: cm-handle registered successfully
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
/v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational:
post:
@@ -150,10 +145,8 @@ paths:
revision: my-revision
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
/v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running:
post:
@@ -173,24 +166,26 @@ paths:
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
'201':
description: Created
content:
text/plain:
schema:
type: string
- examples:
- Read:
- value:
- - yangSource: my-yang-source
- moduleName: my-module-name
- revision: my-revision
- Write:
- value: "Created Resource Name"
-
+ example: my-resource
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
'400':
$ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
index 97848c3e..97ad0112 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
@@ -117,7 +117,7 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
}
@Override
- public ResponseEntity<String> dataAccessPassthroughRunning(final String resourceIdentifier,
+ public ResponseEntity<Object> dataAccessPassthroughRunning(final String resourceIdentifier,
final String cmHandle,
final @Valid DataAccessRequest
dataAccessRequest,