Merge "Part 1: Refactor CPS Delta code to utility class"
[cps.git] / cps-ncmp-rest / docs / openapi / components.yaml
index be51643..25b6575 100644 (file)
@@ -1,5 +1,5 @@
 #  ============LICENSE_START=======================================================
-#  Copyright (C) 2021-2023 Nordix Foundation
+#  Copyright (C) 2021-2025 OpenInfra Foundation Europe. All rights reserved.
 #  Modifications Copyright (C) 2021 Pantheon.tech
 #  Modifications Copyright (C) 2022 Bell Canada
 #  ================================================================================
@@ -87,6 +87,8 @@ components:
           items:
             type: string
           example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
+        upgradedCmHandles:
+          $ref: '#/components/schemas/UpgradedCmHandles'
     DmiPluginRegistrationErrorResponse:
       type: object
       properties:
@@ -102,6 +104,10 @@ components:
           type: array
           items:
             $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
+        failedUpgradeCmHandles:
+          type: array
+          items:
+            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
     CmHandlerRegistrationErrorResponse:
       type: object
       properties:
@@ -124,17 +130,43 @@ components:
           type: string
           example: my-cm-handle
         cmHandleProperties:
-          $ref: '#/components/schemas/RestCmHandleProperties'
+          type: object
+          additionalProperties:
+            type: string
+            example: my-property
         publicCmHandleProperties:
-          $ref: '#/components/schemas/RestCmHandleProperties'
+          type: object
+          additionalProperties:
+            type: string
+            example: my-property
         moduleSetTag:
           type: string
           example: "my-module-set-tag"
-    RestCmHandleProperties:
+        trustLevel:
+            type: string
+            enum: [COMPLETE, NONE]
+            example: "COMPLETE"
+        alternateId:
+          type: string
+          example: "Subnetwork=Europe,ManagedElement=X123"
+        dataProducerIdentifier:
+          type: string
+          example: "my-data-producer-identifier"
+    #Module upgrade schema
+    UpgradedCmHandles:
+      required:
+        - cmHandles
       type: object
-      additionalProperties:
-        type: string
-        example: my-property
+      properties:
+        cmHandles:
+          type: array
+          items:
+            type: string
+          example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
+        moduleSetTag:
+          type: string
+          default: ""
+          example: 'my-module-set-tag'
 
     #Response Schemas
     RestModuleReference:
@@ -161,13 +193,16 @@ components:
         content:
           type: string
           example: |
-            module stores {
+            module _3gpp-nr-nrm-gnbdufunction {
               yang-version 1.1;
-              namespace 'org:onap:ccsdk:sample';
-              prefix book-store;
+              namespace 'urn:3gpp:sa5:_3gpp-nr-nrm-gnbdufunction';
+              prefix gnbdu3gpp;
               revision '2020-09-15' {
                 description
-                'Sample Model';
+                'Defines the YANG mapping of the GNBDUFunction Information 
+                 Object Class (IOC) that is part of the NR Network Resource Model (NRM). 
+                 Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
+                 TTA, TTC). All rights reserved.';
               }
             }
 
@@ -219,16 +254,31 @@ components:
           type: string
           example: my-cm-handle1
         publicCmHandleProperties:
-          $ref: '#/components/schemas/CmHandlePublicProperties'
-        state:
-          $ref: '#/components/schemas/CmHandleCompositeState'
-    CmHandlePublicProperties:
-      type: object
-      items:
+          type: object
+          nullable: true
+          items:
+            type: object
+            additionalProperties:
+              type: string
+              example: '3gpp Type'
+        cmHandleProperties:
           type: object
           additionalProperties:
             type: string
-            example: 'Book Type'
+            example: '3gpp Type'
+        state:
+          $ref: '#/components/schemas/CmHandleCompositeState'
+        trustLevel:
+          $ref: '#/components/schemas/CmHandleTrustLevel'
+        moduleSetTag:
+          type: string
+          example: my-module-set-tag
+        alternateId:
+          type: string
+          example: "Subnetwork=Europe,ManagedElement=X123"
+        dataProducerIdentifier:
+          type: string
+          example: my-data-producer-identifier
     CmHandleCompositeState:
       type: object
       properties:
@@ -245,6 +295,10 @@ components:
           example: false
         dataSyncState:
           $ref: '#/components/schemas/dataStores'
+    CmHandleTrustLevel:
+      type: string
+      description: Current trust level of the relevant CM handle ID.
+      example: COMPLETE
 
     lock-reason:
       type: object
@@ -274,12 +328,16 @@ components:
           type: string
           example: 2022-12-31T20:30:40.000+0000
 
-    RestOutputCmHandlePublicProperties:
+    RestOutputPublicCmHandleProperties:
       type: object
       properties:
         publicCmHandleProperties:
-          $ref: '#/components/schemas/CmHandlePublicProperties'
-
+          type: object
+          items:
+            type: object
+            additionalProperties:
+              type: string
+              example: '3gpp Type'
     RestOutputCmHandleCompositeState:
       type: object
       properties:
@@ -312,97 +370,98 @@ components:
           example: 'ncmp-datastore:passthrough-operational'
         options:
           type: string
-          example: '(fields=schemas/schema)'
+          example: '(fields=NRCellDU/attributes/cellLocalId)'
         resourceIdentifier:
           type: string
-          example: 'parent/child'
+          example: '/ManagedElement=NRNode1/GNBDUFunction=1'
         targetIds:
           type: array
           items:
             type: string
+            description: targeted cm handle references, maximum of 200 supported. If this limit is exceeded the request will be refused.
             example: [ "da310eecdb8d44c2acc0ddaae01174b1","c748c58f8e0b438f9fd1f28370b17d47" ]
 
   examples:
     dataSampleRequest:
       summary: Sample request
-      description: Sample request body
+      description: Sample request body for GNBDUFunction configuration
       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:
-                - authors:
-                    - Philip Pullman
+        gnbdu3gpp:GNBDUFunction:
+          id: 12345
+          attributes:
+            gNBId: 5
+            gNBIdLength: 32
+            gNBDUId: 67890
+            gNBDUName: "DU-1"
+          rimRSReportConf:
+            reportIndicator: "enabled"
+            reportInterval: 1000
+            nrofRIMRSReportInfo: 5
+            maxPropagationDelay: 32767
+            RimRSReportInfoList:
+              - detectedSetID: 1
+                propagationDelay: 20
+                functionalityOfRIMRS: "RS1"
+              - detectedSetID: 2
+                propagationDelay: 15
+                functionalityOfRIMRS: "RS2"
 
     dataSamplePatchRequest:
       summary: Sample patch request
-      description: Sample patch request body
+      description: Sample patch request to modify GNBDUFunction
       value:
         ietf-restconf:yang-patch:
           patch-id: patch-1
           edit:
             - edit-id: edit1
-              operation: merge
-              target: /
+              operation: replace
+              target: /gnbdu3gpp:GNBDUFunction
               value:
-                test:bookstore:
-                  bookstore-name: Chapters
-                  categories:
-                    - code: '01'
-                      name: Science
-                      books:
-                        - authors:
-                            - Author1
-                            - Author2
-                    - code: '02'
-                      name: Arts
-                      books:
-                        - authors:
-                            - Author3
+                gnbdu3gpp:GNBDUFunction:
+                  id: 54321
+                  attributes:
+                    gNBId: 5
+                    gNBIdLength: 32
+                    gNBDUId: 98765
+                    gNBDUName: "DU-2"
+                  rimRSReportConf:
+                    reportIndicator: "disabled"
+                    reportInterval: 2000
+                    nrofRIMRSReportInfo: 3
+                    maxPropagationDelay: 20000
             - edit-id: edit2
               operation: merge
-              target: /
+              target: /gnbdu3gpp:GNBDUFunction
               value:
-                test:bookstore:
-                  bookstore-name: Novels
-                  categories:
-                    - code: '03'
-                      name: History
-                      books:
-                        - authors:
-                            - Iain M. Banks
-                            - Ursula K. Le Guin
-                    - code: '04'
-                      name: Fiction
-                      books:
-                        - authors:
-                            - Philip Pullman
+                gnbdu3gpp:GNBDUFunction:
+                  configurable5QISetRef: "/5QISet-001"
+                  dynamic5QISetRef: "/Dynamic5QISet-001"
 
     dataSampleResponse:
       summary: Sample response
-      description: Sample response for selecting 'sample 1'.
+      description: Sample response with GNBDUFunction configuration
       value:
-        bookstore:
-          categories:
-            - code: '01'
-              books:
-                - authors:
-                    - Iain M. Banks
-                    - Ursula K. Le Guin
-              name: SciFi
-            - code: '02'
-              books:
-                - authors:
-                    - Philip Pullman
-              name: kids
+        gnbdu3gpp:GNBDUFunction:
+          id: 12345
+          attributes:
+            gNBId: 5
+            gNBIdLength: 32
+            gNBDUId: 67890
+            gNBDUName: "DU-1"
+          rimRSReportConf:
+            reportIndicator: "enabled"
+            reportInterval: 1000
+            nrofRIMRSReportInfo: 5
+            maxPropagationDelay: 32767
+            RimRSReportInfoList:
+             - detectedSetID: 1
+               propagationDelay: 20
+               functionalityOfRIMRS: "RS1"
+             - detectedSetID: 2
+               propagationDelay: 15
+               functionalityOfRIMRS: "RS2"
+          configurable5QISetRef: "/5QISet-001"
+          dynamic5QISetRef: "/Dynamic5QISet-001"
 
     allCmHandleQueryParameters:
       value:
@@ -458,6 +517,38 @@ components:
       schema:
         type: string
         example: my-cm-handle
+    cmHandleReferenceInPath:
+      name: cm-handle
+      in: path
+      description: The identifier (cmHandle or alternate) 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-reference
+    outputAlternateIdOptionInQuery:
+      name: outputAlternateId
+      in: query
+      description: Boolean parameter to determine if returned value(s) will be cm handle ids or alternate ids for a given query
+      required: false
+      schema:
+        type: boolean
+        default: false
+    moduleNameInQuery:
+      name: module-name
+      in: query
+      description: Filter for a module name.This is an optional parameter
+      required: false
+      schema:
+        type: string
+        example: my-module
+    revisionInQuery:
+      name: revision
+      in: query
+      description: Filter for a module revision.This is an optional parameter and ignored when no module name is supplied
+      required: false
+      schema:
+        type: string
+        example: 2024-01-22
     dataSyncEnabled:
       name: dataSyncEnabled
       in: query
@@ -499,9 +590,9 @@ components:
         default: /
       examples:
         container cps path:
-          value: //bookstore
+          value: '//GNBDUFunction'
         list attributes cps path:
-          value: //categories[@code=1]
+          value: "//GNBDUFunction[@id='1001']"
     dmiPluginIdentifierInQuery:
       name: dmi-plugin-identifier
       in: query
@@ -513,39 +604,39 @@ components:
     resourceIdentifierInQuery:
       name: resourceIdentifier
       in: query
-      description: The format of resource identifier depend on the associated DMI Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but it can really be anything.
+      description: |
+        The `resourceIdentifier` parameter specifies the target resource in the GNBDUFunctionConfig model.
+           For ONAP DMI Plugin, the format will follow RESTConf paths. Examples:
+             - All GNBDUFunctions: `/ManagedElement=node1/GNBDUFunction=1`
       required: true
-      allowReserved: true
       schema:
         type: string
       examples:
         sample 1:
           value:
-            resourceIdentifier: \shops\bookstore
-        sample 2:
-          value:
-            resourceIdentifier: \shops\bookstore\categories[@code=1]
-        sample 3:
-          value:
-            resourceIdentifier: parent=shops,child=bookstore
+            resourceIdentifier: '/ManagedElement=node1/GNBDUFunction=1'
     optionsParamInQuery:
       name: options
       in: query
-      description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. The format of options parameter depend on the associated DMI Plugin implementation.
+      description: |
+        The `options` parameter specifies additional query options. It is mandatory to wrap key(s)=value(s) in parentheses `()`.
+        Examples for GNBDUFunctionConfig queries:
+          - Limit depth of returned sub-tree: `(depth=2)`
+          - Select specific fields: `(fields=attributes(gNBId;gNBDUName))`
+          - Combine options: `(depth=3,fields=attributes(gNBId;gNBDUName))`
       required: false
       schema:
         type: string
-      allowReserved: true
       examples:
-        sample 1:
+        Limit Depth:
           value:
-            options: (depth=3)
-        sample 2:
+            options: (depth=2)
+        Select Specific Fields:
           value:
-            options: (fields=book)
-        sample 3:
+            options: (fields=attributes(gNBId;gNBDUName))
+        Combine Depth and Fields:
           value:
-            options: (depth=2,fields=book/authors)
+            options: (depth=3,fields=attributes(gNBId;gNBDUName))
     topicParamInQuery:
       name: topic
       in: query
@@ -553,7 +644,6 @@ components:
       required: false
       schema:
         type: string
-      allowReserved: true
       examples:
         sample 1:
           value:
@@ -565,7 +655,6 @@ components:
       required: true
       schema:
         type: string
-      allowReserved: true
       examples:
         sample 1:
           value:
@@ -579,6 +668,13 @@ components:
         type: string
         default: application/json
         example: application/yang-data+json
+    authorizationParamInHeader:
+      name: Authorization
+      in: header
+      required: false
+      description: Authorization parameter for request.
+      schema:
+        type: string
     datastoreName:
       name: datastore-name
       in: path
@@ -626,7 +722,7 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-            status: 400 BAD_REQUEST
+            status: 400
             message: Bad request error message
             details: Bad request error details
     Conflict:
@@ -636,9 +732,19 @@ components:
           schema:
             $ref: '#/components/schemas/ErrorMessage'
           example:
-            status: 409 CONFLICT
+            status: 409
             message: Conflict error message
             details: Conflict error details
+    PayloadTooLarge:
+      description: The request is larger than the server is willing or able to process
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+          example:
+            status: 413
+            message: Payload Too Large error message
+            details: Payload Too Large error details
     NotImplemented:
       description: The given path has not been implemented
       content: