Provide complete openapi.yml in read the docs
- Seperate openapi.yml for code gen and read the docs
- Added few env varaibles in docker-compose.yml
Issue-ID: CPS-733
Signed-off-by: Renu Kumari <renu.kumari@bell.ca>
Change-Id: Ibda007c40396436a5adce137d9f69806100253dc
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index a9229e9..bec9bfe 100755
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -37,4 +37,7 @@
SDNC_PORT: ${SDNC_PORT:-8181}
SDNC_USERNAME: ${SDNC_USERNAME:-admin}
SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
+ DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783}
+ DMI_USERNAME: "cpsuser"
+ DMI_PASSWORD: "cpsr0cks!"
restart: unless-stopped
diff --git a/docs/api/swagger/openapi.yaml b/docs/api/swagger/openapi.yaml
new file mode 100644
index 0000000..750091b
--- /dev/null
+++ b/docs/api/swagger/openapi.yaml
@@ -0,0 +1,464 @@
+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
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleReferencesRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleSet'
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ /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)
+ operationId: registerCmHandles
+ requestBody:
+ description: list of cm handles
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CmHandles'
+ required: true
+ responses:
+ "201":
+ description: Created
+ content:
+ text/plain:
+ schema:
+ type: string
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ x-api-audience: component-internal
+ /v1/ch/{cmHandle}/moduleResources:
+ post:
+ tags:
+ - 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
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/YangResources'
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ /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:
+ - 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])
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DataAccessReadRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: object
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ /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:
+ - 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])
+ requestBody:
+ description: Operational body
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DataAccessReadRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: object
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ post:
+ tags:
+ - dmi-plugin
+ summary: Write data for a cmHandle
+ description: Write data for a cmHandle using passthrough-running
+ operationId: writeDataByPassthroughRunningForCmHandle
+ 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
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DataAccessWriteRequest'
+ required: true
+ responses:
+ "201":
+ description: Created
+ content:
+ text/plain:
+ schema:
+ type: string
+ "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
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+components:
+ schemas:
+ ModuleReferencesRequest:
+ type: object
+ properties:
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+ cmHandleProperties:
+ type: object
+ additionalProperties:
+ type: string
+ example: '{"prop1":"value1","prop2":"value2"}'
+ ModuleSet:
+ type: object
+ properties:
+ schemas:
+ type: array
+ items:
+ $ref: '#/components/schemas/ModuleSet_schemas'
+ revision:
+ type: string
+ example: someRevision
+ ErrorMessage:
+ title: Error
+ type: object
+ properties:
+ status:
+ type: string
+ message:
+ type: string
+ details:
+ type: string
+ CmHandles:
+ type: object
+ properties:
+ cmHandles:
+ type: array
+ items:
+ type: string
+ ModuleResourcesReadRequest:
+ type: object
+ properties:
+ data:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest_data'
+ cmHandleProperties:
+ $ref: '#/components/schemas/cmHandleProperties'
+ name:
+ type: string
+ example: someName
+ YangResources:
+ type: array
+ items:
+ $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'
+ ModuleSet_schemas:
+ type: object
+ properties:
+ moduleName:
+ type: string
+ revision:
+ $ref: '#/components/schemas/revision'
+ namespace:
+ type: string
+ ModuleResourcesReadRequest_data_modules:
+ type: object
+ properties:
+ name:
+ $ref: '#/components/schemas/name'
+ revision:
+ $ref: '#/components/schemas/revision'
+ ModuleResourcesReadRequest_data:
+ type: object
+ properties:
+ modules:
+ type: array
+ items:
+ $ref: '#/components/schemas/ModuleResourcesReadRequest_data_modules'
diff --git a/docs/design.rst b/docs/design.rst
index d0d4b87..9326fd3 100644
--- a/docs/design.rst
+++ b/docs/design.rst
@@ -17,7 +17,7 @@
The DMI-Plugin supports the public APIs listed in the link below:
-:download:`DMI Rest OpenApi Specification <openapi/openapi.yaml>`
+:download:`DMI Rest OpenApi Specification <api/swagger/openapi.yaml>`
View Offered APIs
-----------------
diff --git a/docs/openapi/components.yml b/openapi/components.yml
similarity index 100%
rename from docs/openapi/components.yml
rename to openapi/components.yml
diff --git a/docs/openapi/openapi.yml b/openapi/openapi.yml
similarity index 99%
rename from docs/openapi/openapi.yml
rename to openapi/openapi.yml
index 83c05ab..0f43f9a 100644
--- a/docs/openapi/openapi.yml
+++ b/openapi/openapi.yml
@@ -22,7 +22,7 @@
description: Adds Data Model Inventory Registry capability for ONAP
version: "1.0.0"
servers:
- - url: //localhost:8088/
+ - url: /dmi
tags:
- name: dmi-plugin-internal
description: DMI plugin internal rest apis
diff --git a/pom.xml b/pom.xml
index 03344db..2ac674c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -164,7 +164,7 @@
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
+ <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
<language>spring</language>
<generateSupportingFiles>false</generateSupportingFiles>
<apiPackage>org.onap.cps.ncmp.dmi.rest.api</apiPackage>
@@ -184,7 +184,7 @@
</goals>
<phase>compile</phase>
<configuration>
- <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
+ <inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
<language>openapi-yaml</language>
</configuration>
</execution>