Separate REST endpoints to individual read and write calls 94/137894/4
authoregernug <gerard.nugent@est.tech>
Tue, 14 May 2024 13:02:07 +0000 (14:02 +0100)
committeregernug <gerard.nugent@est.tech>
Thu, 16 May 2024 09:39:21 +0000 (10:39 +0100)
Issue-ID: CPS-2141

Change-Id: I5fe1a8e087084c35e51f24d8e8d1241194335725
Signed-off-by: egernug <gerard.nugent@est.tech>
docs/api/swagger/openapi-datajob.yaml
openapi/openapi-datajob.yml

index 04a5bf1..b3baa16 100644 (file)
@@ -5,40 +5,69 @@ info:
   title: NCMP Data Subjob API
   version: 1.0.0
 servers:
-  - url: /dmi
+- url: /dmi
 tags:
-  - description: DMI plugin rest apis
-    name: dmi-datajob
+- description: DMI plugin rest apis
+  name: dmi-datajob
 paths:
-  /v1/dataJob/{requestId}:
+  /dmi/v1/readJob/{requestId}:
     post:
       description: Create a read request
-      operationId: createReadRequest
+      operationId: readDataJob
       parameters:
-        - description: Identifier for the overall Datajob
-          explode: false
-          in: path
-          name: requestId
-          required: true
-          schema:
-            example: some-identifier
-            type: string
-          style: simple
+      - description: Identifier for the overall Datajob
+        explode: false
+        in: path
+        name: requestId
+        required: true
+        schema:
+          example: some-identifier
+          type: string
+        style: simple
       requestBody:
         content:
           application/3gpp-json-patch+json:
             schema:
-              $ref: '#/components/schemas/SubjobRequest'
+              $ref: '#/components/schemas/SubjobReadRequest'
         description: Operation body
       responses:
         "200":
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/createReadRequest_200_response'
+                $ref: '#/components/schemas/readDataJob_200_response'
           description: Response for subjob
       tags:
-        - dmi-datajob
+      - dmi-datajob
+  /dmi/v1/writeJob/{requestId}:
+    post:
+      description: Create a write request
+      operationId: writeDataJob
+      parameters:
+      - description: Identifier for the overall Datajob
+        explode: false
+        in: path
+        name: requestId
+        required: true
+        schema:
+          example: some-identifier
+          type: string
+        style: simple
+      requestBody:
+        content:
+          application/3gpp-json-patch+json:
+            schema:
+              $ref: '#/components/schemas/SubjobWriteRequest'
+        description: Operation body
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/readDataJob_200_response'
+          description: Response for subjob
+      tags:
+      - dmi-datajob
 components:
   parameters:
     requestIdInPath:
@@ -52,7 +81,7 @@ components:
         type: string
       style: simple
   schemas:
-    SubjobRequest:
+    SubjobReadRequest:
       properties:
         dataAcceptType:
           description: Defines the data response accept type
@@ -68,33 +97,50 @@ components:
           example: my-data-producer-identifier
           type: string
         data:
-          $ref: '#/components/schemas/SubjobRequest_data'
+          example:
+            op: read
+            operationId: 1
+            path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
+            attributes: userLabel
+            scope:
+              scopeTyp: BASE_ONLY
+          items:
+            $ref: '#/components/schemas/SubjobReadRequest_data_inner'
+          type: array
       required:
-        - data
-        - dataProducerId
+      - data
+      - dataProducerId
+      type: object
+    SubjobWriteRequest:
+      properties:
+        dataAcceptType:
+          description: Defines the data response accept type
+          example: application/vnd.3gpp.object-tree-hierarchical+json
+          type: string
+        dataContentType:
+          description: Defines the data request content type
+          example: application/3gpp-json-patch+json
+          type: string
+        dataProducerId:
+          description: ID of the producer registered by DMI for the paths in the operations
+            in this request
+          example: my-data-producer-identifier
+          type: string
+        data:
+          example:
+            op: add
+            path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
+            value:
+              id: 12
+              attributes:
+                userLabel: label12
+          items:
+            $ref: '#/components/schemas/SubjobWriteRequest_data_inner'
+          type: array
+      required:
+      - data
+      - dataProducerId
       type: object
-    ReadOperation:
-      example:
-        op: read
-        operationId: 1
-        path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
-        attributes: userLabel
-        scope:
-          scopeTyp: BASE_ONLY
-      items:
-        $ref: '#/components/schemas/ReadOperation_inner'
-      type: array
-    WriteOperation:
-      example:
-        op: add
-        path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
-        value:
-          id: 12
-          attributes:
-            userLabel: label12
-      items:
-        $ref: '#/components/schemas/WriteOperation_inner'
-      type: array
     CmHandleProperties:
       description: Private properties of the cm handle for the given path
       type: object
@@ -119,7 +165,7 @@ components:
       type: object
     Object:
       type: object
-    createReadRequest_200_response:
+    readDataJob_200_response:
       example:
         dataProducerJobId: dataProducerJobId
       properties:
@@ -127,11 +173,7 @@ components:
           description: The data job ID.
           type: string
       type: object
-    SubjobRequest_data:
-      oneOf:
-        - $ref: '#/components/schemas/ReadOperation'
-        - $ref: '#/components/schemas/WriteOperation'
-    ReadOperation_inner:
+    SubjobReadRequest_data_inner:
       properties:
         path:
           description: Defines the resource on which operation is executed
@@ -181,18 +223,18 @@ components:
           description: Private properties of the cm handle for the given path
           type: object
       required:
-        - op
-        - path
+      - op
+      - path
       type: object
-    WriteOperation_inner_value:
+    SubjobWriteRequest_data_inner_value:
       description: Value dependent on the op specified. Resource for an add. Object
         for a replace. ActionParameters for an action.
       oneOf:
-        - $ref: '#/components/schemas/Resource'
-        - $ref: '#/components/schemas/ActionParameters'
-        - $ref: '#/components/schemas/Object'
+      - $ref: '#/components/schemas/Resource'
+      - $ref: '#/components/schemas/ActionParameters'
+      - $ref: '#/components/schemas/Object'
       type: object
-    WriteOperation_inner:
+    SubjobWriteRequest_data_inner:
       properties:
         path:
           description: Defines the resource on which operation is executed
@@ -206,9 +248,16 @@ components:
           description: Unique identifier for the operation within the request
           example: "1"
           type: string
+        moduleSetTag:
+          description: Module set identifier
+          example: my-module-set-tag
+          type: string
+        cmHandleProperties:
+          description: Private properties of the cm handle for the given path
+          type: object
         value:
-          $ref: '#/components/schemas/WriteOperation_inner_value'
+          $ref: '#/components/schemas/SubjobWriteRequest_data_inner_value'
       required:
-        - op
-        - path
+      - op
+      - path
       type: object
index b572ff3..8a0f315 100644 (file)
@@ -27,10 +27,10 @@ tags:
   - description: DMI plugin rest apis
     name: dmi-datajob
 paths:
-  /v1/dataJob/{requestId}:
+  /dmi/v1/readJob/{requestId}:
     post:
       description: Create a read request
-      operationId: createReadRequest
+      operationId: readDataJob
       parameters:
         - $ref: '#/components/parameters/requestIdInPath'
       requestBody:
@@ -38,7 +38,32 @@ paths:
         content:
           application/3gpp-json-patch+json:
             schema:
-              $ref: '#/components/schemas/SubjobRequest'
+              $ref: '#/components/schemas/SubjobReadRequest'
+      tags:
+        - dmi-datajob
+      responses:
+        "200":
+          description: Response for subjob
+          content:
+            application/json:
+              schema:
+                type: object
+                properties:
+                  dataProducerJobId:
+                    type: string
+                    description: The data job ID.
+  /dmi/v1/writeJob/{requestId}:
+    post:
+      description: Create a write request
+      operationId: writeDataJob
+      parameters:
+        - $ref: '#/components/parameters/requestIdInPath'
+      requestBody:
+        description: Operation body
+        content:
+          application/3gpp-json-patch+json:
+            schema:
+              $ref: '#/components/schemas/SubjobWriteRequest'
       tags:
         - dmi-datajob
       responses:
@@ -63,7 +88,7 @@ components:
         example: some-identifier
         type: string
   schemas:
-    SubjobRequest:
+    SubjobReadRequest:
       type: object
       required:
         - dataProducerId
@@ -82,100 +107,121 @@ components:
           example: my-data-producer-identifier
           type: string
         data:
-          oneOf:
-            - $ref: '#/components/schemas/ReadOperation'
-            - $ref: '#/components/schemas/WriteOperation'
-    ReadOperation:
-      example:
-        op: read
-        operationId: 1
-        path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
-        attributes: userLabel
-        scope:
-          scopeTyp: BASE_ONLY
-      type: array
-      items:
-        type: object
-        required:
-          - path
-          - op
-        properties:
-          path:
-            description: Defines the resource on which operation is executed
-            example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
-            type: string
-          op:
-            description: Describes the operation to execute
-            example: read
-            type: string
-          operationId:
-            description: Unique identifier for the operation within the request
-            example: 1
-            type: string
-          attributes:
-            description: This parameter specifies the attributes of the scoped resources that are returned
-            type: array
-            items:
-              example: cellId
-              type: string
-          fields:
-            description: This parameter specifies the attribute fields of the scoped resources that are returned
-            type: array
-            items:
-              type: string
-          filter:
-            description: This parameter is used to filter the scoped Managed Objects. Only Managed Objects passing the filter criteria will be fetched
-            example: NRCellDU/attributes/administrativeState==LOCKED
-            type: string
-          scopeType:
-            description: ScopeType selects MOs depending on relationships with Base Managed Object
-            example: BASE_ONLY
-            type: string
-          scopeLevel:
-            description: Only used when the scope type is BASE_NTH_LEVEL to specify amount of levels to search
-            example: 0
-            type: integer
-          moduleSetTag:
-            description: Module set identifier
-            example: my-module-set-tag
-            type: string
-          cmHandleProperties:
-            description: Private properties of the cm handle for the given path
-            $ref: '#/components/schemas/CmHandleProperties'
-    WriteOperation:
-      example:
-        op: add
-        path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
-        value:
-          id: 12
-          attributes:
-            userLabel: label12
-      type: array
-      items:
-        type: object
-        required:
-          - path
-          - op
-        properties:
-          path:
-            description: Defines the resource on which operation is executed
-            example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
-            type: string
-          op:
-            description: Describes the operation to execute
-            example: add
-            type: string
-          operationId:
-            description: Unique identifier for the operation within the request
-            example: 1
-            type: string
-          value:
-            description: Value dependent on the op specified. Resource for an add. Object for a replace. ActionParameters for an action.
+          example:
+            op: read
+            operationId: 1
+            path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
+            attributes: userLabel
+            scope:
+              scopeTyp: BASE_ONLY
+          type: array
+          items:
             type: object
-            oneOf:
-              - $ref: '#/components/schemas/Resource'
-              - $ref: '#/components/schemas/ActionParameters'
-              - $ref: '#/components/schemas/Object'
+            required:
+              - path
+              - op
+            properties:
+              path:
+                description: Defines the resource on which operation is executed
+                example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
+                type: string
+              op:
+                description: Describes the operation to execute
+                example: read
+                type: string
+              operationId:
+                description: Unique identifier for the operation within the request
+                example: 1
+                type: string
+              attributes:
+                description: This parameter specifies the attributes of the scoped resources that are returned
+                type: array
+                items:
+                  example: cellId
+                  type: string
+              fields:
+                description: This parameter specifies the attribute fields of the scoped resources that are returned
+                type: array
+                items:
+                  type: string
+              filter:
+                description: This parameter is used to filter the scoped Managed Objects. Only Managed Objects passing the filter criteria will be fetched
+                example: NRCellDU/attributes/administrativeState==LOCKED
+                type: string
+              scopeType:
+                description: ScopeType selects MOs depending on relationships with Base Managed Object
+                example: BASE_ONLY
+                type: string
+              scopeLevel:
+                description: Only used when the scope type is BASE_NTH_LEVEL to specify amount of levels to search
+                example: 0
+                type: integer
+              moduleSetTag:
+                description: Module set identifier
+                example: my-module-set-tag
+                type: string
+              cmHandleProperties:
+                description: Private properties of the cm handle for the given path
+                $ref: '#/components/schemas/CmHandleProperties'
+    SubjobWriteRequest:
+      type: object
+      required:
+        - dataProducerId
+        - data
+      properties:
+        dataAcceptType:
+          description: Defines the data response accept type
+          example: application/vnd.3gpp.object-tree-hierarchical+json
+          type: string
+        dataContentType:
+          description: Defines the data request content type
+          example: application/3gpp-json-patch+json
+          type: string
+        dataProducerId:
+          description: ID of the producer registered by DMI for the paths in the operations in this request
+          example: my-data-producer-identifier
+          type: string
+        data:
+          example:
+            op: add
+            path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
+            value:
+              id: 12
+              attributes:
+                userLabel: label12
+          type: array
+          items:
+            type: object
+            required:
+              - path
+              - op
+            properties:
+              path:
+                description: Defines the resource on which operation is executed
+                example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
+                type: string
+              op:
+                description: Describes the operation to execute
+                example: add
+                type: string
+              operationId:
+                description: Unique identifier for the operation within the request
+                example: 1
+                type: string
+              moduleSetTag:
+                description: Module set identifier
+                example: my-module-set-tag
+                type: string
+              cmHandleProperties:
+                description: Private properties of the cm handle for the given path
+                $ref: '#/components/schemas/CmHandleProperties'
+              value:
+                description: Value dependent on the op specified. Resource for an add. Object for a replace. ActionParameters for an action.
+                type: object
+                oneOf:
+                  - $ref: '#/components/schemas/Resource'
+                  - $ref: '#/components/schemas/ActionParameters'
+                  - $ref: '#/components/schemas/Object'
     CmHandleProperties:
       description: Private properties of the cm handle for the given path
       type: object