Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageyml
openapi: 3.0.3
info:
  title: NCMP Data Subjob API
  description: Support datajobs through one or more subjob for each DMI and Data Producer Identifier combination
  version: 1.0.0
servers:
  - url: /dmi
tags:
  - description: DMI plugin rest apis
    name: dmi-datajob
paths:
  /v1/readJob/{requestId}:
    post:

      description: Create a read request
      operationId: readDataJob
      parameters:
        - $ref: '#/components/parameters/requestIdInPath'
      requestBody:
        description: Operation body
        content:
          application/3gpp-json-patch+json:
            schema:
              $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.
  /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:
        "200":
          description: Response for subjob
          content:
            application/json:
              schema:
                type: object
                properties:
                  dataProducerJobId:
                    type: string
                    description: The data job ID.
components:
  parameters:
    requestIdInPath:
      description: Identifier for the overall Datajob
      in: path
      name: requestId
      required: true
      schema:
        example: some-identifier
        type: string
  schemas:
    SubjobReadRequest:
      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: 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'
    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
    Resource:
      type: object
      properties:
        id:
          description: Identifier of the resource object
          example: resource-identifier
          type: string
        attributes:
          description: Key value map representing the objects class attributes and values
          type: object
          additionalProperties:
            example: 'userLabel: label11'
            type: string
    ActionParameters:
      description: The input of the action in the form of key value pairs
      type: object
      additionalProperties:
        type: string
    Object:
      type: object



...

Name

Description

Location

Type

Mandatory

dataProducerJobIdThe ID of the created job by the data producer.response bodyStringY
dmiPluginNameThe target DMI that the job was performed onresponse bodyStringY
subjobIdID of the specific subjobresponse bodyStringY


Data subjob status check (NCMP → DMI)

Request:

Method: GET

Path: /dmi/v1/dataJob/{requestId}/dataProducerJob/{dataProducerJobId}/status

NameDescriptionLocationTypeMandatory

dataProducerId

ID of the producer registered by DMI for the alernateIDs in the operations in this request.

Query

String

Y

requestId

Identifier for the overall Datajob

Path

String

Y

dataProducerJobId

Identifier of the job created by the data producer.

Path

String

Y

Response:

Status code: 200 - OK

NameDescriptionLocationTypeMandatory

status

enum that represents the status of the subjob.
Possible values:
response bodyenum:
[ NOT_STARTED, RUNNING, FINSHED, FAILED, PARTIALLY_FAILED, CANCELLING, CANCELLED ]

Y


Data subjob retrieve result (NCMP → DMI)

Request:

Method: GET

Path: /dmi/v1/dataJob/{requestId}/dataProducerJob/{dataProducerJobId}/result

Parameters:

NameDescriptionLocationTypeMandatory

dataProducerId

ID of the producer registered by DMI for the alernateIDs in the operations in this request.

Query

String

Y

requestId

Identifier for the overall Datajob

Path

String

Y

dataProducerJobId

Identifier of the job created by the data producer.

Path

String

Y

destination

The destination of the results: Kafka topic name or s3 bucket name. This shall be put into the Kafka message headers returned to NCMP

Query

String

Y

Response:

WRITE

Status Code: 200 - Ok

Data part of the message

READ

Status Code: 200 - Ok

NameDescriptionLocationTypeMandatory

resulturi

internal ncmp topic name

response body

String

Y