blob: ef435f54bbd6ecd938d818503923a15b0093dd35 [file] [log] [blame]
egernugb0ee0382024-04-17 10:08:38 +01001openapi: 3.0.3
2info:
3 description: Support datajobs through one or more subjob for each DMI and Data Producer
4 Identifier combination
5 title: NCMP Data Subjob API
6 version: 1.0.0
7servers:
egernug0900a1e2024-09-09 12:05:52 +01008- url: /dmi
egernugb0ee0382024-04-17 10:08:38 +01009tags:
egernug0900a1e2024-09-09 12:05:52 +010010- description: DMI plugin rest apis
11 name: dmi-datajob
egernugb0ee0382024-04-17 10:08:38 +010012paths:
leventecsanyi636c2282024-08-15 13:52:21 +020013 /v1/cmreadJob:
egernugb0ee0382024-04-17 10:08:38 +010014 post:
15 description: Create a read request
egernugd9a46152024-05-14 14:02:07 +010016 operationId: readDataJob
egernugb0ee0382024-04-17 10:08:38 +010017 parameters:
egernug0900a1e2024-09-09 12:05:52 +010018 - description: The destination of the results (Kafka topic name or s3 bucket
19 name)
20 in: query
21 name: destination
22 required: true
23 schema:
24 example: some-destination
25 type: string
26 style: form
egernugb0ee0382024-04-17 10:08:38 +010027 requestBody:
28 content:
29 application/3gpp-json-patch+json:
30 schema:
egernugd9a46152024-05-14 14:02:07 +010031 $ref: '#/components/schemas/SubjobReadRequest'
egernugb0ee0382024-04-17 10:08:38 +010032 description: Operation body
33 responses:
egernugdaf2ba82024-05-29 10:22:59 +010034 "501":
egernugb0ee0382024-04-17 10:08:38 +010035 content:
36 application/json:
egernugdaf2ba82024-05-29 10:22:59 +010037 example:
38 status: 501
39 message: Not Implemented
40 details: Method Not Implemented
egernugb0ee0382024-04-17 10:08:38 +010041 schema:
egernugdaf2ba82024-05-29 10:22:59 +010042 $ref: '#/components/schemas/ErrorMessage'
43 description: Not Implemented
egernugb0ee0382024-04-17 10:08:38 +010044 tags:
egernug0900a1e2024-09-09 12:05:52 +010045 - dmi-datajob
leventecsanyi636c2282024-08-15 13:52:21 +020046 /v1/cmwriteJob:
egernugd9a46152024-05-14 14:02:07 +010047 post:
48 description: Create a write request
49 operationId: writeDataJob
50 parameters:
egernug0900a1e2024-09-09 12:05:52 +010051 - description: The destination of the results (Kafka topic name or s3 bucket
52 name)
53 in: query
54 name: destination
55 required: true
56 schema:
57 example: some-destination
58 type: string
59 style: form
egernugd9a46152024-05-14 14:02:07 +010060 requestBody:
61 content:
62 application/3gpp-json-patch+json:
63 schema:
64 $ref: '#/components/schemas/SubjobWriteRequest'
65 description: Operation body
66 responses:
egernugdaf2ba82024-05-29 10:22:59 +010067 "501":
egernugd9a46152024-05-14 14:02:07 +010068 content:
69 application/json:
egernugdaf2ba82024-05-29 10:22:59 +010070 example:
71 status: 501
72 message: Not Implemented
73 details: Method Not Implemented
egernugd9a46152024-05-14 14:02:07 +010074 schema:
egernugdaf2ba82024-05-29 10:22:59 +010075 $ref: '#/components/schemas/ErrorMessage'
76 description: Not Implemented
egernugd9a46152024-05-14 14:02:07 +010077 tags:
egernug0900a1e2024-09-09 12:05:52 +010078 - dmi-datajob
leventecsanyi636c2282024-08-15 13:52:21 +020079 /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/status:
leventecsanyi7f49c702024-07-24 15:42:32 +020080 get:
81 description: Retrieve the status of a specific data job.
82 operationId: getDataJobStatus
83 parameters:
egernug0900a1e2024-09-09 12:05:52 +010084 - description: Identifier for the data producer
85 explode: false
86 in: path
87 name: dataProducerId
88 required: true
89 schema:
90 example: some-data-producer-identifier
91 type: string
92 style: simple
93 - description: Identifier for the data producer job
94 explode: false
95 in: path
96 name: dataProducerJobId
97 required: true
98 schema:
99 example: some-producer-job-identifier
100 type: string
101 style: simple
leventecsanyi7f49c702024-07-24 15:42:32 +0200102 responses:
103 "501":
104 content:
105 application/json:
106 example:
107 status: 501
108 message: Not Implemented
109 details: Method Not Implemented
110 schema:
111 $ref: '#/components/schemas/ErrorMessage'
112 description: Not Implemented
113 tags:
egernug0900a1e2024-09-09 12:05:52 +0100114 - dmi-datajob
leventecsanyi658f4d42024-08-05 15:46:59 +0200115 /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/result:
leventecsanyiee4242c2024-07-26 13:25:12 +0200116 get:
117 description: Retrieve the result of a data job.
118 operationId: getDataJobResult
119 parameters:
egernug0900a1e2024-09-09 12:05:52 +0100120 - description: Identifier for the data producer
121 explode: false
122 in: path
123 name: dataProducerId
124 required: true
125 schema:
126 example: some-data-producer-identifier
127 type: string
128 style: simple
129 - description: Identifier for the data producer job
130 explode: false
131 in: path
132 name: dataProducerJobId
133 required: true
134 schema:
135 example: some-producer-job-identifier
136 type: string
137 style: simple
138 - description: The destination of the results (Kafka topic name or s3 bucket
139 name)
140 in: query
141 name: destination
142 required: true
143 schema:
144 example: some-destination
145 type: string
146 style: form
leventecsanyiee4242c2024-07-26 13:25:12 +0200147 responses:
148 "501":
149 content:
150 application/json:
151 example:
152 status: 501
153 message: Not Implemented
154 details: Method Not Implemented
155 schema:
156 $ref: '#/components/schemas/ErrorMessage'
157 description: Not Implemented
158 tags:
egernug0900a1e2024-09-09 12:05:52 +0100159 - dmi-datajob
egernugb0ee0382024-04-17 10:08:38 +0100160components:
161 parameters:
162 requestIdInPath:
163 description: Identifier for the overall Datajob
egernug0900a1e2024-09-09 12:05:52 +0100164 explode: false
egernugb0ee0382024-04-17 10:08:38 +0100165 in: path
166 name: requestId
167 required: true
168 schema:
169 example: some-identifier
170 type: string
171 style: simple
leventecsanyi7f49c702024-07-24 15:42:32 +0200172 dataProducerJobIdInPath:
173 description: Identifier for the data producer job
egernug0900a1e2024-09-09 12:05:52 +0100174 explode: false
leventecsanyi7f49c702024-07-24 15:42:32 +0200175 in: path
176 name: dataProducerJobId
177 required: true
178 schema:
179 example: some-producer-job-identifier
180 type: string
181 style: simple
leventecsanyi636c2282024-08-15 13:52:21 +0200182 dataProducerIdInPath:
183 description: Identifier for the data producer
egernug0900a1e2024-09-09 12:05:52 +0100184 explode: false
leventecsanyi636c2282024-08-15 13:52:21 +0200185 in: path
186 name: dataProducerId
187 required: true
188 schema:
189 example: some-data-producer-identifier
190 type: string
191 style: simple
leventecsanyi7f49c702024-07-24 15:42:32 +0200192 dataProducerIdInQuery:
193 description: Identifier for the data producer
leventecsanyi7f49c702024-07-24 15:42:32 +0200194 in: query
195 name: dataProducerId
196 required: true
197 schema:
198 example: some-data-producer-identifier
199 type: string
200 style: form
leventecsanyiee4242c2024-07-26 13:25:12 +0200201 destinationInQuery:
202 description: The destination of the results (Kafka topic name or s3 bucket name)
leventecsanyiee4242c2024-07-26 13:25:12 +0200203 in: query
204 name: destination
205 required: true
206 schema:
207 example: some-destination
208 type: string
209 style: form
egernugdaf2ba82024-05-29 10:22:59 +0100210 responses:
211 NotImplemented:
212 content:
213 application/json:
214 example:
215 status: 501
216 message: Not Implemented
217 details: Method Not Implemented
218 schema:
219 $ref: '#/components/schemas/ErrorMessage'
220 description: Not Implemented
egernugb0ee0382024-04-17 10:08:38 +0100221 schemas:
egernugdaf2ba82024-05-29 10:22:59 +0100222 ErrorMessage:
223 properties:
224 status:
225 type: string
226 message:
227 type: string
228 details:
229 type: string
230 title: Error
231 type: object
egernugd9a46152024-05-14 14:02:07 +0100232 SubjobReadRequest:
egernugb0ee0382024-04-17 10:08:38 +0100233 properties:
234 dataAcceptType:
235 description: Defines the data response accept type
236 example: application/vnd.3gpp.object-tree-hierarchical+json
237 type: string
238 dataContentType:
239 description: Defines the data request content type
240 example: application/3gpp-json-patch+json
241 type: string
242 dataProducerId:
243 description: ID of the producer registered by DMI for the paths in the operations
244 in this request
245 example: my-data-producer-identifier
246 type: string
247 data:
egernugd9a46152024-05-14 14:02:07 +0100248 example:
249 op: read
250 operationId: 1
251 path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
252 attributes: userLabel
253 scope:
254 scopeTyp: BASE_ONLY
255 items:
256 $ref: '#/components/schemas/SubjobReadRequest_data_inner'
257 type: array
egernugb0ee0382024-04-17 10:08:38 +0100258 required:
egernug0900a1e2024-09-09 12:05:52 +0100259 - data
260 - dataProducerId
egernugb0ee0382024-04-17 10:08:38 +0100261 type: object
egernugd9a46152024-05-14 14:02:07 +0100262 SubjobWriteRequest:
263 properties:
264 dataAcceptType:
265 description: Defines the data response accept type
266 example: application/vnd.3gpp.object-tree-hierarchical+json
267 type: string
268 dataContentType:
269 description: Defines the data request content type
270 example: application/3gpp-json-patch+json
271 type: string
272 dataProducerId:
273 description: ID of the producer registered by DMI for the paths in the operations
274 in this request
275 example: my-data-producer-identifier
276 type: string
leventecsanyi636c2282024-08-15 13:52:21 +0200277 dataJobId:
278 description: Identifier for the overall Data Job
egernug0900a1e2024-09-09 12:05:52 +0100279 example: my-data-producer-identifier
leventecsanyi636c2282024-08-15 13:52:21 +0200280 type: string
egernugd9a46152024-05-14 14:02:07 +0100281 data:
282 example:
283 op: add
284 path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
285 value:
286 id: 12
287 attributes:
288 userLabel: label12
289 items:
290 $ref: '#/components/schemas/SubjobWriteRequest_data_inner'
291 type: array
292 required:
egernug0900a1e2024-09-09 12:05:52 +0100293 - data
294 - dataProducerId
egernugd9a46152024-05-14 14:02:07 +0100295 type: object
egernugb0ee0382024-04-17 10:08:38 +0100296 CmHandleProperties:
297 description: Private properties of the cm handle for the given path
298 type: object
299 Resource:
300 properties:
301 id:
302 description: Identifier of the resource object
303 example: resource-identifier
304 type: string
305 attributes:
306 additionalProperties:
307 example: "userLabel: label11"
308 type: string
309 description: Key value map representing the objects class attributes and
310 values
311 type: object
312 type: object
313 ActionParameters:
314 additionalProperties:
315 type: string
316 description: The input of the action in the form of key value pairs
317 type: object
318 Object:
319 type: object
leventecsanyi7f49c702024-07-24 15:42:32 +0200320 SubjobWriteResponse:
321 properties:
322 subJobId:
323 description: Unique identifier for the sub-job
324 example: my-sub-job-id
325 type: string
326 dmiServiceName:
327 description: Name of the relevant DMI Service
328 example: my-dmi-service
329 type: string
330 dataProducerId:
331 description: ID of the producer registered by DMI for the paths in the operations
332 in this request
333 example: my-data-producer-identifier
334 type: string
335 required:
egernug0900a1e2024-09-09 12:05:52 +0100336 - dataProducerId
337 - dmiServiceName
338 - subJobId
leventecsanyi7f49c702024-07-24 15:42:32 +0200339 type: object
egernugd9a46152024-05-14 14:02:07 +0100340 SubjobReadRequest_data_inner:
egernugb0ee0382024-04-17 10:08:38 +0100341 properties:
342 path:
343 description: Defines the resource on which operation is executed
344 example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
345 type: string
346 op:
347 description: Describes the operation to execute
348 example: read
349 type: string
350 operationId:
351 description: Unique identifier for the operation within the request
352 example: "1"
353 type: string
354 attributes:
355 description: This parameter specifies the attributes of the scoped resources
356 that are returned
357 items:
358 example: cellId
359 type: string
360 type: array
361 fields:
362 description: This parameter specifies the attribute fields of the scoped
363 resources that are returned
364 items:
365 type: string
366 type: array
367 filter:
368 description: This parameter is used to filter the scoped Managed Objects.
369 Only Managed Objects passing the filter criteria will be fetched
370 example: NRCellDU/attributes/administrativeState==LOCKED
371 type: string
372 scopeType:
373 description: ScopeType selects MOs depending on relationships with Base
374 Managed Object
375 example: BASE_ONLY
376 type: string
377 scopeLevel:
378 description: Only used when the scope type is BASE_NTH_LEVEL to specify
379 amount of levels to search
380 example: 0
381 type: integer
382 moduleSetTag:
383 description: Module set identifier
384 example: my-module-set-tag
385 type: string
386 cmHandleProperties:
387 description: Private properties of the cm handle for the given path
388 type: object
389 required:
egernug0900a1e2024-09-09 12:05:52 +0100390 - op
391 - path
egernugb0ee0382024-04-17 10:08:38 +0100392 type: object
egernugd9a46152024-05-14 14:02:07 +0100393 SubjobWriteRequest_data_inner_value:
egernugb0ee0382024-04-17 10:08:38 +0100394 description: Value dependent on the op specified. Resource for an add. Object
395 for a replace. ActionParameters for an action.
396 oneOf:
egernug0900a1e2024-09-09 12:05:52 +0100397 - $ref: '#/components/schemas/Resource'
398 - $ref: '#/components/schemas/ActionParameters'
399 - $ref: '#/components/schemas/Object'
egernugb0ee0382024-04-17 10:08:38 +0100400 type: object
egernugd9a46152024-05-14 14:02:07 +0100401 SubjobWriteRequest_data_inner:
egernugb0ee0382024-04-17 10:08:38 +0100402 properties:
403 path:
404 description: Defines the resource on which operation is executed
405 example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
406 type: string
407 op:
408 description: Describes the operation to execute
409 example: add
410 type: string
411 operationId:
412 description: Unique identifier for the operation within the request
413 example: "1"
414 type: string
egernugd9a46152024-05-14 14:02:07 +0100415 moduleSetTag:
416 description: Module set identifier
417 example: my-module-set-tag
418 type: string
419 cmHandleProperties:
420 description: Private properties of the cm handle for the given path
421 type: object
egernugb0ee0382024-04-17 10:08:38 +0100422 value:
egernugd9a46152024-05-14 14:02:07 +0100423 $ref: '#/components/schemas/SubjobWriteRequest_data_inner_value'
egernugb0ee0382024-04-17 10:08:38 +0100424 required:
egernug0900a1e2024-09-09 12:05:52 +0100425 - op
426 - path
egernugb0ee0382024-04-17 10:08:38 +0100427 type: object