Merge "Enable/Disable Data Sync for Cm Handle"
[cps.git] / cps-ncmp-rest / docs / openapi / components.yaml
index a7955c1..c1e0587 100644 (file)
@@ -94,35 +94,14 @@ components:
           type: array
           items:
             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
-          example: [
-            {
-              "cmHandle": "my-cm-handle-01",
-              "errorCode": "01",
-              "errorText": "cm-handle already exists"
-            }
-          ]
         failedUpdatedCmHandles:
           type: array
           items:
             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
-          example: [
-            {
-              "cmHandle": "my-cm-handle-02",
-              "errorCode": "02",
-              "errorText": "cm-handle does not exist"
-            }
-          ]
         failedRemovedCmHandles:
           type: array
           items:
             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
-          example: [
-            {
-              "cmHandle": "my-cm-handle-02",
-              "errorCode": "02",
-              "errorText": "cm-handle does not exist"
-            }
-          ]
     CmHandlerRegistrationErrorResponse:
       type: object
       properties:
@@ -131,10 +110,10 @@ components:
           example: my-cm-handle
         errorCode:
           type: string
-          example: '01'
+          example: '00'
         errorText:
           type: string
-          example: 'cm-handle already exists'
+          example: 'Unknown error. <error-details>'
 
     RestInputCmHandle:
       required:
@@ -154,72 +133,84 @@ components:
             type: string
             example: my-property
 
-    Conditions:
-      type: object
-      properties:
-        conditions:
-          $ref: '#/components/schemas/ConditionsData'
-    ConditionsData:
-      type: array
-      items:
-        type: object
-        $ref: '#/components/schemas/ConditionProperties'
-    ConditionProperties:
-      properties:
-        name:
-          type: string
-          example: hasAllModules
-        conditionParameters:
-          $ref: '#/components/schemas/ModuleNamesAsJsonArray'
-    ModuleNamesAsJsonArray:
-      type: array
-      items:
-        type: object
-        $ref: '#/components/schemas/ModuleNameAsJsonObject'
-        example: [my-module-1, my-module-2, my-module-3]
-    ModuleNameAsJsonObject:
-        properties:
-          moduleName:
-            type: string
-            example: my-module
-
     #Response Schemas
-    CmHandles:
+    RestModuleReference:
       type: object
+      title: Module reference details
       properties:
-        cmHandles:
-          $ref: '#/components/schemas/CmHandleProperties'
-    CmHandleProperties:
-      type: array
-      items:
-        type: object
-        $ref: '#/components/schemas/CmHandleProperty'
-    CmHandleProperty:
-      properties:
-        cmHandleId:
+        moduleName:
+          type: string
+          example: my-module-name
+        revision:
           type: string
-          example: my-cm-handle-id
+          example: my-module-revision
 
-    RestModuleReference:
+    RestModuleDefinition:
       type: object
-      title: Module reference details
+      title: Module definitions
       properties:
         moduleName:
           type: string
           example: my-module-name
         revision:
           type: string
-          example: my-module-revision
+          example: 2020-09-15
+        content:
+          type: string
+          example: |
+            module stores {
+              yang-version 1.1;
+              namespace "org:onap:ccsdk:sample";
+              prefix book-store;
+              revision "2020-09-15" {
+                description
+                "Sample Model";
+              }
+            }
 
-    CmHandleQueryRestParameters:
+
+    CmHandleQueryParameters:
       type: object
       title: Cm Handle query parameters for executing cm handle search
       properties:
-        publicCmHandleProperties:
-          type: object
-          additionalProperties:
-            type: string
-            example: Book Type
+        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
+
+    ConditionProperties:
+      properties:
+        conditionName:
+          type: string
+        conditionParameters:
+          type: array
+          items:
+            type: object
+            additionalProperties:
+              type: string
+    OldConditionProperties:
+      deprecated: true
+      properties:
+        name:
+          type: string
+        conditionParameters:
+          type: array
+          items:
+            type: object
+            $ref: '#/components/schemas/ModuleNameAsJsonObject'
+    ModuleNameAsJsonObject:
+      properties:
+        moduleName:
+          type: string
+          example: my-module
 
     RestOutputCmHandle:
       type: object
@@ -230,6 +221,8 @@ components:
           example: my-cm-handle1
         publicCmHandleProperties:
           $ref: '#/components/schemas/CmHandlePublicProperties'
+        state:
+          $ref: '#/components/schemas/CmHandleCompositeState'
     CmHandlePublicProperties:
       type: array
       items:
@@ -237,6 +230,62 @@ components:
         additionalProperties:
           type: string
           example: Book Type
+    CmHandleCompositeState:
+      type: object
+      properties:
+        cmHandleState:
+          type: string
+          example: ADVISED
+        lockReason:
+          $ref: '#/components/schemas/lock-reason'
+        lastUpdateTime:
+          type: string
+          example: 2022-12-31T20:30:40.000+0000
+        dataSyncEnabled:
+          type: boolean
+          example: false
+        dataSyncState:
+          $ref: '#/components/schemas/dataStores'
+
+    lock-reason:
+      type: object
+      properties:
+        reason:
+          type: string
+          example: LOCKED_MISBEHAVING
+        details:
+          type: string
+          example: locked due to failure in module sync
+
+    dataStores:
+      type: object
+      properties:
+        operational:
+          $ref: '#/components/schemas/sync-state'
+        running:
+          $ref: '#/components/schemas/sync-state'
+
+    sync-state:
+      type: object
+      properties:
+        syncState:
+          type: string
+          example: NONE_REQUESTED
+        lastSyncTime:
+          type: string
+          example: 2022-12-31T20:30:40.000+0000
+
+    RestOutputCmHandlePublicProperties:
+      type: object
+      properties:
+        publicCmHandleProperties:
+          $ref: '#/components/schemas/CmHandlePublicProperties'
+
+    RestOutputCmHandleCompositeState:
+      type: object
+      properties:
+        state:
+          $ref: '#/components/schemas/CmHandleCompositeState'
 
   examples:
     dataSampleRequest:
@@ -320,6 +369,51 @@ components:
                       - 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:
       name: cm-handle
@@ -329,6 +423,14 @@ components:
       schema:
         type: string
         example: my-cm-handle
+    dataSyncEnabled:
+      name: dataSyncEnabled
+      in: query
+      description: Is used to enable or disable the data synchronization flag
+      required: true
+      schema:
+        type: boolean
+        example: true
     xpathInQuery:
       name: xpath
       in: query