[NCMP] Add Basic Auth to OpenAPI Definitions
[cps.git] / docs / api / swagger / ncmp / openapi-inventory.yaml
index c4b6f4b..9e84f3a 100644 (file)
@@ -4,12 +4,12 @@ info:
   description: NCMP Inventory API
   version: "1.0"
 servers:
-  - url: /ncmpInventory
+- url: /ncmpInventory
 paths:
   /v1/ch:
     post:
       tags:
-        - network-cm-proxy-inventory
+      - network-cm-proxy-inventory
       summary: DMI notifies NCMP of new CM Handles
       description: "Register a DMI Plugin with any new, updated or removed CM Handles."
       operationId: updateDmiPluginRegistration
@@ -20,8 +20,8 @@ paths:
               $ref: '#/components/schemas/RestDmiPluginRegistration'
         required: true
       responses:
-        "201":
-          description: Created
+        "200":
+          description: No Content
           content: {}
         "400":
           description: Bad Request
@@ -29,53 +29,178 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 400 BAD_REQUEST
+                message: Bad request error message
+                details: Bad request error details
         "401":
           description: Unauthorized
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 401
+                message: Unauthorized error message
+                details: Unauthorized error details
         "403":
           description: Forbidden
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
+        "500":
+          description: Partial or Complete failure. The error details are provided
+            in the response body and all supported error codes are documented in the
+            example.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DmiPluginRegistrationErrorResponse'
+              example:
+                failedCreatedCmHandles:
+                - cmHandle: my-cm-handle-01
+                  errorCode: "00"
+                  errorText: Unknown error. <error-details>
+                - cmHandle: my-cm-handle-02
+                  errorCode: "01"
+                  errorText: cm-handle already exists
+                - cmHandle: my-cm-handle-03
+                  errorCode: "03"
+                  errorText: cm-handle has an invalid character(s) in id
+                failedUpdatedCmHandles:
+                - cmHandle: my-cm-handle-01
+                  errorCode: "00"
+                  errorText: Unknown error. <error-details>
+                - cmHandle: my-cm-handle-02
+                  errorCode: "02"
+                  errorText: cm-handle does not exist
+                - cmHandle: my-cm-handle-03
+                  errorCode: "03"
+                  errorText: cm-handle has an invalid character(s) in id
+                failedRemovedCmHandles:
+                - cmHandle: my-cm-handle-01
+                  errorCode: "00"
+                  errorText: Unknown error. <error-details>
+                - cmHandle: my-cm-handle-02
+                  errorCode: "02"
+                  errorText: cm-handle does not exists
+                - cmHandle: my-cm-handle-03
+                  errorCode: "03"
+                  errorText: cm-handle has an invalid character(s) in id
+  /v1/ch/cmHandles:
+    get:
+      tags:
+      - network-cm-proxy-inventory
+      summary: "Get all cm handle IDs for a registered DMI plugin (DMI plugin, DMI\
+        \ data plugin, DMI model plugin)"
+      description: Get all cm handle IDs for a registered DMI plugin
+      operationId: getAllCmHandleIdsForRegisteredDmi
+      parameters:
+      - name: dmi-plugin-identifier
+        in: query
+        description: dmi-plugin-identifier
+        required: true
+        schema:
+          type: string
+          example: my-dmi-plugin
+      responses:
+        "200":
+          description: OK
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+        "401":
+          description: Unauthorized
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 401
+                message: Unauthorized error message
+                details: Unauthorized error details
+        "403":
+          description: Forbidden
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
+        "500":
+          description: Internal Server Error
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
 components:
+  securitySchemes:
+    basicAuth:
+      type: http
+      scheme: basic
   schemas:
     RestDmiPluginRegistration:
       type: object
       properties:
         dmiPlugin:
           type: string
-          example: onap-dmi-plugin
+          example: my-dmi-plugin
+          default: ""
+        dmiDataPlugin:
+          type: string
+          example: my-dmi-data-plugin
+          default: ""
+        dmiModelPlugin:
+          type: string
+          example: my-dmi-model-plugin
+          default: ""
         createdCmHandles:
           type: array
           items:
-            $ref: '#/components/schemas/RestCmHandle'
+            $ref: '#/components/schemas/RestInputCmHandle'
         updatedCmHandles:
           type: array
           items:
-            $ref: '#/components/schemas/RestCmHandle'
+            $ref: '#/components/schemas/RestInputCmHandle'
         removedCmHandles:
           type: array
+          example:
+          - my-cm-handle1
+          - my-cm-handle2
+          - my-cm-handle3
           items:
             type: string
-    RestCmHandle:
+    RestInputCmHandle:
       required:
-        - cmHandle
+      - cmHandle
       type: object
       properties:
         cmHandle:
           type: string
-          example: cmHandle123
+          example: my-cm-handle
         cmHandleProperties:
-          $ref: '#/components/schemas/RestCmHandleAdditionalProperties'
-    RestCmHandleAdditionalProperties:
+          $ref: '#/components/schemas/RestCmHandleProperties'
+        publicCmHandleProperties:
+          $ref: '#/components/schemas/RestCmHandleProperties'
+    RestCmHandleProperties:
       type: object
       additionalProperties:
         type: string
-        example: system-001
+        example: my-property
     ErrorMessage:
       title: Error
       type: object
@@ -86,3 +211,33 @@ components:
           type: string
         details:
           type: string
+    DmiPluginRegistrationErrorResponse:
+      type: object
+      properties:
+        failedCreatedCmHandles:
+          type: array
+          items:
+            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
+        failedUpdatedCmHandles:
+          type: array
+          items:
+            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
+        failedRemovedCmHandles:
+          type: array
+          items:
+            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
+    CmHandlerRegistrationErrorResponse:
+      type: object
+      properties:
+        cmHandle:
+          type: string
+          example: my-cm-handle
+        errorCode:
+          type: string
+          example: "00"
+        errorText:
+          type: string
+          example: Unknown error. <error-details>
+
+security:
+  - basicAuth: []
\ No newline at end of file