Merge "CM Data Subscriptions PoC/Performance test fixes"
[cps.git] / cps-ncmp-rest / docs / openapi / components.yaml
index a717921..9bae794 100644 (file)
@@ -1,5 +1,5 @@
 #  ============LICENSE_START=======================================================
-#  Copyright (C) 2021-2022 Nordix Foundation
+#  Copyright (C) 2021-2023 Nordix Foundation
 #  Modifications Copyright (C) 2021 Pantheon.tech
 #  Modifications Copyright (C) 2022 Bell Canada
 #  ================================================================================
@@ -38,7 +38,7 @@ components:
       properties:
         message:
           type: string
-          example: "Bad Gateway Error Message NCMP"
+          example: 'Bad Gateway Error Message NCMP'
         dmi-response:
           type: object
           properties:
@@ -86,7 +86,7 @@ components:
           type: array
           items:
             type: string
-          example: [my-cm-handle1, my-cm-handle2, my-cm-handle3]
+          example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
     DmiPluginRegistrationErrorResponse:
       type: object
       properties:
@@ -124,14 +124,17 @@ components:
           type: string
           example: my-cm-handle
         cmHandleProperties:
-            $ref: '#/components/schemas/RestCmHandleProperties'
+          $ref: '#/components/schemas/RestCmHandleProperties'
         publicCmHandleProperties:
-            $ref: '#/components/schemas/RestCmHandleProperties'
+          $ref: '#/components/schemas/RestCmHandleProperties'
+        moduleSetTag:
+          type: string
+          example: "my-module-set-tag"
     RestCmHandleProperties:
-        type: object
-        additionalProperties:
-            type: string
-            example: my-property
+      type: object
+      additionalProperties:
+        type: string
+        example: my-property
 
     #Response Schemas
     RestModuleReference:
@@ -160,15 +163,14 @@ components:
           example: |
             module stores {
               yang-version 1.1;
-              namespace "org:onap:ccsdk:sample";
+              namespace 'org:onap:ccsdk:sample';
               prefix book-store;
-              revision "2020-09-15" {
+              revision '2020-09-15' {
                 description
-                "Sample Model";
+                'Sample Model';
               }
             }
 
-
     CmHandleQueryParameters:
       type: object
       title: Cm Handle query parameters for executing cm handle search
@@ -176,27 +178,14 @@ components:
         cmHandleQueryParameters:
           type: array
           items:
-            type: object
             $ref: '#/components/schemas/ConditionProperties'
         conditions:
           deprecated: true
           type: array
           items:
-            type: object
             $ref: '#/components/schemas/OldConditionProperties'
           description: not necessary, it is just for backward compatibility
-      example:
-        cmHandleQueryParameters:
-          - conditionName: hasAllModules
-            conditionParameters:
-              - { "moduleName": "my-module-1" }
-              - { "moduleName": "my-module-2" }
-              - { "moduleName": "my-module-3" }
-          - conditionName: hasAllProperties
-            conditionParameters:
-              - { "Color": "yellow" }
-              - { "Shape": "circle" }
-              - { "Size": "small" }
+
     ConditionProperties:
       properties:
         conditionName:
@@ -215,7 +204,6 @@ components:
         conditionParameters:
           type: array
           items:
-            type: object
             $ref: '#/components/schemas/ModuleNameAsJsonObject'
     ModuleNameAsJsonObject:
       properties:
@@ -235,12 +223,12 @@ components:
         state:
           $ref: '#/components/schemas/CmHandleCompositeState'
     CmHandlePublicProperties:
-      type: array
+      type: object
       items:
         type: object
         additionalProperties:
           type: string
-          example: Book Type
+          example: 'Book Type'
     CmHandleCompositeState:
       type: object
       properties:
@@ -279,7 +267,7 @@ components:
     sync-state:
       type: object
       properties:
-        state:
+        syncState:
           type: string
           example: NONE_REQUESTED
         lastSyncTime:
@@ -297,24 +285,60 @@ components:
       properties:
         state:
           $ref: '#/components/schemas/CmHandleCompositeState'
+    # Data Operation Request Schemas
+    DataOperationRequest:
+      type: object
+      title: execute data operation for given array of operations
+      properties:
+        operations:
+          type: array
+          items:
+            $ref: '#/components/schemas/DataOperationDefinition'
+          description: contains group of data operation requests
+    DataOperationDefinition:
+      required:
+        - operation
+        - datastore
+        - operationId
+      properties:
+        operation:
+          type: string
+          example: 'read'
+        operationId:
+          type: string
+          example: '12'
+        datastore:
+          type: string
+          example: 'ncmp-datastore:passthrough-operational'
+        options:
+          type: string
+          example: '(fields=schemas/schema)'
+        resourceIdentifier:
+          type: string
+          example: 'parent/child'
+        targetIds:
+          type: array
+          items:
+            type: string
+            example: [ "da310eecdb8d44c2acc0ddaae01174b1","c748c58f8e0b438f9fd1f28370b17d47" ]
 
   examples:
     dataSampleRequest:
-        summary: Sample request
-        description: Sample request body
-        value:
-          test:bookstore:
-            bookstore-name: Chapters
-            categories:
-              - code: '01'
-                name: SciFi
-                books:
+      summary: Sample request
+      description: Sample request body
+      value:
+        test:bookstore:
+          bookstore-name: Chapters
+          categories:
+            - code: '01'
+              name: SciFi
+              books:
                 - authors:
                     - Iain M. Banks
                     - Ursula K. Le Guin
-              - code: '02'
-                name: kids
-                books:
+            - code: '02'
+              name: kids
+              books:
                 - authors:
                     - Philip Pullman
 
@@ -363,22 +387,67 @@ components:
                             - Philip Pullman
 
     dataSampleResponse:
-        summary: Sample response
-        description: Sample response for selecting 'sample 1'.
-        value:
-          bookstore:
-            categories:
-              - code: '01'
-                books:
-                  - authors:
-                      - Iain M. Banks
-                      - Ursula K. Le Guin
-                name: SciFi
-              - code: '02'
-                books:
-                  - authors:
-                      - Philip Pullman
-                name: kids
+      summary: Sample response
+      description: Sample response for selecting 'sample 1'.
+      value:
+        bookstore:
+          categories:
+            - code: '01'
+              books:
+                - authors:
+                    - Iain M. Banks
+                    - Ursula K. Le Guin
+              name: SciFi
+            - code: '02'
+              books:
+                - authors:
+                    - Philip Pullman
+              name: kids
+
+    allCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+          - conditionName: hasAllModules
+            conditionParameters:
+              - { "moduleName": "my-module-1" }
+              - { "moduleName": "my-module-2" }
+              - { "moduleName": "my-module-3" }
+          - conditionName: hasAllProperties
+            conditionParameters:
+              - { "Color": "yellow" }
+              - { "Shape": "circle" }
+              - { "Size": "small" }
+          - conditionName: cmHandleWithCpsPath
+            conditionParameters:
+              - { "cpsPath": "//state[@cm-handle-state='ADVISED']" }
+    pubPropCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+          - conditionName: hasAllProperties
+            conditionParameters:
+              - { "Color": "yellow" }
+              - { "Shape": "circle" }
+              - { "Size": "small" }
+    modulesCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+          - conditionName: hasAllModules
+            conditionParameters:
+              - { "moduleName": "my-module-1" }
+              - { "moduleName": "my-module-2" }
+              - { "moduleName": "my-module-3" }
+    cpsPathCmHandleStateQueryParameters:
+      value:
+        cmHandleQueryParameters:
+          - conditionName: cmHandleWithCpsPath
+            conditionParameters:
+              - { "cpsPath": "//state[@cm-handle-state='LOCKED']" }
+    cpsPathCmHandleDataSyncQueryParameters:
+      value:
+        cmHandleQueryParameters:
+          - conditionName: cmHandleWithCpsPath
+            conditionParameters:
+              - { "cpsPath": "//state[@data-sync-enabled='true']" }
 
   parameters:
     cmHandleInPath:
@@ -415,7 +484,7 @@ components:
     includeDescendantsOptionInQuery:
       name: include-descendants
       in: query
-      description: include-descendants
+      description: Determines if descendants are included in response
       required: false
       schema:
         type: boolean
@@ -423,11 +492,24 @@ components:
     cpsPathInQuery:
       name: cps-path
       in: query
-      description: cps-path
+      description: For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html
       required: false
       schema:
         type: string
         default: /
+      examples:
+        container cps path:
+          value: //bookstore
+        list attributes cps path:
+          value: //categories[@code=1]
+    dmiPluginIdentifierInQuery:
+      name: dmi-plugin-identifier
+      in: query
+      description: dmi-plugin-identifier
+      required: true
+      schema:
+        type: string
+        example: my-dmi-plugin
     resourceIdentifierInQuery:
       name: resourceIdentifier
       in: query
@@ -476,6 +558,18 @@ components:
         sample 1:
           value:
             topic: my-topic-name
+    requiredTopicParamInQuery:
+      name: topic
+      in: query
+      description: mandatory topic parameter in query.
+      required: true
+      schema:
+        type: string
+      allowReserved: true
+      examples:
+        sample 1:
+          value:
+            topic: my-topic-name
     contentParamInHeader:
       name: Content-Type
       in: header
@@ -485,6 +579,14 @@ components:
         type: string
         default: application/json
         example: application/yang-data+json
+    datastoreName:
+      name: datastore-name
+      in: path
+      description: The type of the requested data
+      required: true
+      schema:
+        type: string
+        example: ncmp-datastore:running
 
   responses:
     NotFound:
@@ -514,9 +616,9 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-           status: 403
-           message: Forbidden error message
-           details: Forbidden error details
+            status: 403
+            message: Forbidden error message
+            details: Forbidden error details
     BadRequest:
       description: Bad Request
       content:
@@ -524,9 +626,9 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-           status: 400 BAD_REQUEST
-           message: Bad request error message
-           details: Bad request error details
+            status: 400 BAD_REQUEST
+            message: Bad request error message
+            details: Bad request error details
     Conflict:
       description: Conflict
       content:
@@ -534,9 +636,9 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-           status: 409 CONFLICT
-           message: Conflict error message
-           details: Conflict error details
+            status: 409 CONFLICT
+            message: Conflict error message
+            details: Conflict error details
     NotImplemented:
       description: The given path has not been implemented
       content:
@@ -544,9 +646,9 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-           status: 501
-           message: Not implemented error message
-           details: Not implemented error details
+            status: 501
+            message: Not implemented error message
+            details: Not implemented error details
     Ok:
       description: OK
       content:
@@ -555,10 +657,10 @@ components:
             type: object
     Created:
       description: Created
-      content: {}
+      content: { }
     NoContent:
       description: No Content
-      content: {}
+      content: { }
     InternalServerError:
       description: Internal Server Error
       content: