blob: ef435f54bbd6ecd938d818503923a15b0093dd35 [file] [log] [blame]
openapi: 3.0.3
info:
description: Support datajobs through one or more subjob for each DMI and Data Producer
Identifier combination
title: NCMP Data Subjob API
version: 1.0.0
servers:
- url: /dmi
tags:
- description: DMI plugin rest apis
name: dmi-datajob
paths:
/v1/cmreadJob:
post:
description: Create a read request
operationId: readDataJob
parameters:
- description: The destination of the results (Kafka topic name or s3 bucket
name)
in: query
name: destination
required: true
schema:
example: some-destination
type: string
style: form
requestBody:
content:
application/3gpp-json-patch+json:
schema:
$ref: '#/components/schemas/SubjobReadRequest'
description: Operation body
responses:
"501":
content:
application/json:
example:
status: 501
message: Not Implemented
details: Method Not Implemented
schema:
$ref: '#/components/schemas/ErrorMessage'
description: Not Implemented
tags:
- dmi-datajob
/v1/cmwriteJob:
post:
description: Create a write request
operationId: writeDataJob
parameters:
- description: The destination of the results (Kafka topic name or s3 bucket
name)
in: query
name: destination
required: true
schema:
example: some-destination
type: string
style: form
requestBody:
content:
application/3gpp-json-patch+json:
schema:
$ref: '#/components/schemas/SubjobWriteRequest'
description: Operation body
responses:
"501":
content:
application/json:
example:
status: 501
message: Not Implemented
details: Method Not Implemented
schema:
$ref: '#/components/schemas/ErrorMessage'
description: Not Implemented
tags:
- dmi-datajob
/v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/status:
get:
description: Retrieve the status of a specific data job.
operationId: getDataJobStatus
parameters:
- description: Identifier for the data producer
explode: false
in: path
name: dataProducerId
required: true
schema:
example: some-data-producer-identifier
type: string
style: simple
- description: Identifier for the data producer job
explode: false
in: path
name: dataProducerJobId
required: true
schema:
example: some-producer-job-identifier
type: string
style: simple
responses:
"501":
content:
application/json:
example:
status: 501
message: Not Implemented
details: Method Not Implemented
schema:
$ref: '#/components/schemas/ErrorMessage'
description: Not Implemented
tags:
- dmi-datajob
/v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/result:
get:
description: Retrieve the result of a data job.
operationId: getDataJobResult
parameters:
- description: Identifier for the data producer
explode: false
in: path
name: dataProducerId
required: true
schema:
example: some-data-producer-identifier
type: string
style: simple
- description: Identifier for the data producer job
explode: false
in: path
name: dataProducerJobId
required: true
schema:
example: some-producer-job-identifier
type: string
style: simple
- description: The destination of the results (Kafka topic name or s3 bucket
name)
in: query
name: destination
required: true
schema:
example: some-destination
type: string
style: form
responses:
"501":
content:
application/json:
example:
status: 501
message: Not Implemented
details: Method Not Implemented
schema:
$ref: '#/components/schemas/ErrorMessage'
description: Not Implemented
tags:
- dmi-datajob
components:
parameters:
requestIdInPath:
description: Identifier for the overall Datajob
explode: false
in: path
name: requestId
required: true
schema:
example: some-identifier
type: string
style: simple
dataProducerJobIdInPath:
description: Identifier for the data producer job
explode: false
in: path
name: dataProducerJobId
required: true
schema:
example: some-producer-job-identifier
type: string
style: simple
dataProducerIdInPath:
description: Identifier for the data producer
explode: false
in: path
name: dataProducerId
required: true
schema:
example: some-data-producer-identifier
type: string
style: simple
dataProducerIdInQuery:
description: Identifier for the data producer
in: query
name: dataProducerId
required: true
schema:
example: some-data-producer-identifier
type: string
style: form
destinationInQuery:
description: The destination of the results (Kafka topic name or s3 bucket name)
in: query
name: destination
required: true
schema:
example: some-destination
type: string
style: form
responses:
NotImplemented:
content:
application/json:
example:
status: 501
message: Not Implemented
details: Method Not Implemented
schema:
$ref: '#/components/schemas/ErrorMessage'
description: Not Implemented
schemas:
ErrorMessage:
properties:
status:
type: string
message:
type: string
details:
type: string
title: Error
type: object
SubjobReadRequest:
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
items:
$ref: '#/components/schemas/SubjobReadRequest_data_inner'
type: array
required:
- 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
dataJobId:
description: Identifier for the overall Data Job
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
CmHandleProperties:
description: Private properties of the cm handle for the given path
type: object
Resource:
properties:
id:
description: Identifier of the resource object
example: resource-identifier
type: string
attributes:
additionalProperties:
example: "userLabel: label11"
type: string
description: Key value map representing the objects class attributes and
values
type: object
type: object
ActionParameters:
additionalProperties:
type: string
description: The input of the action in the form of key value pairs
type: object
Object:
type: object
SubjobWriteResponse:
properties:
subJobId:
description: Unique identifier for the sub-job
example: my-sub-job-id
type: string
dmiServiceName:
description: Name of the relevant DMI Service
example: my-dmi-service
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
required:
- dataProducerId
- dmiServiceName
- subJobId
type: object
SubjobReadRequest_data_inner:
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
items:
example: cellId
type: string
type: array
fields:
description: This parameter specifies the attribute fields of the scoped
resources that are returned
items:
type: string
type: array
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
type: object
required:
- op
- path
type: object
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'
type: object
SubjobWriteRequest_data_inner:
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
type: object
value:
$ref: '#/components/schemas/SubjobWriteRequest_data_inner_value'
required:
- op
- path
type: object