...
- The order of Operations is important and needs to be maintained hence the use of 'List'
- The output is 'void' for the scope in this user story, it will be defined later
dataaccepttype
anddatacontenttype
might be needed too, see issue #1 and #2. If required we could combine them to reduce the number of parameter in an object likeRestProtocolParameters
Proposed openapi.yaml
...
Code Block | |||
---|---|---|---|
|
...
|
...
|
...
| |||||
openapi: 3.0.3
info:
description: Adds subjob capabilities for DCM
title: NCMP Data Subjob API
version: 1.0.0
servers:
- url: /dmi
tags:
- description: DMI plugin rest apis
name: dmi-datajob
paths:
/v1/dataJob/{requestId}:
post:
description: Create a read request
operationId: createReadRequest
parameters:
- $ref: '#/components/parameters/requestIdInPath'
requestBody:
description: Operation body
content:
application/3gpp-json-patch+json:
schema:
$ref: '#/components/schemas/SubjobRequest'
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: requestId
in: path
name: requestId
required: true
schema:
example: requestId
type: string
schemas:
SubjobRequest:
type: array
items:
type: object
required:
- dataProducerId
- data
properties:
dataAcceptType:
type: string
dataContentCype:
type: string
dataProducerId:
type: string
data:
oneOf:
- $ref: '#/components/schemas/ReadOperation'
- $ref: '#/components/schemas/WriteOperation'
ReadOperation:
type: array
items:
type: object
required:
- path
- op
properties:
path:
type: string
op:
type: string
operationId:
type: string
attributes:
type: array
items:
type: string
fields:
type: array
items:
type: string
filter:
type: array
items:
type: string
scopeType:
type: string
scopeLevel:
type: integer
moduleSetTag:
type: string
cmHandleProperties:
$ref: '#/components/schemas/CmHandleProperties'
WriteOperation:
type: array
items:
type: object
required:
- path
- op
properties:
path:
type: string
op:
type: string
operationId:
type: string
value:
type: object
oneOf:
- $ref: '#/components/schemas/Resource'
- $ref: '#/components/schemas/ActionParameters'
- $ref: '#/components/schemas/Object'
CmHandleProperties:
type: object
Resource:
type: object
properties:
id:
type: string
attributes:
type: object
additionalProperties:
type: string
ActionParameters:
type: object
additionalProperties:
type: string
Object:
type: object
|
...
Issue | Notes | Decision | |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 |
Datajob read request
Name | Description | Location | Type | Mandatory |
---|---|---|---|---|
destination | The destination of the results. ( e.g. S3 Bucket) | Query | string | N |
dataaccepttype | Define the data response accept type. Passible values: · application/vnd.3gpp.object-tree-hierarchical+json (default) · application/vnd.3gpp.object-tree-flat+json | request body | enum | N |
datacontenttype | Define the data request content type. Passible values: · application/3gpp-json-patch+json (default) | request body | enum | N |
data | List of operations to be executed. | request body | List of 3gppReadOperation | Y |
...