egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 1 | openapi: 3.0.3 |
| 2 | info: |
| 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 |
| 7 | servers: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 8 | - url: /dmi |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 9 | tags: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 10 | - description: DMI plugin rest apis |
| 11 | name: dmi-datajob |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 12 | paths: |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 13 | /v1/cmreadJob: |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 14 | post: |
| 15 | description: Create a read request |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 16 | operationId: readDataJob |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 17 | parameters: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 18 | - 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 |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 27 | requestBody: |
| 28 | content: |
| 29 | application/3gpp-json-patch+json: |
| 30 | schema: |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 31 | $ref: '#/components/schemas/SubjobReadRequest' |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 32 | description: Operation body |
| 33 | responses: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 34 | "501": |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 35 | content: |
| 36 | application/json: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 37 | example: |
| 38 | status: 501 |
| 39 | message: Not Implemented |
| 40 | details: Method Not Implemented |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 41 | schema: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 42 | $ref: '#/components/schemas/ErrorMessage' |
| 43 | description: Not Implemented |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 44 | tags: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 45 | - dmi-datajob |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 46 | /v1/cmwriteJob: |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 47 | post: |
| 48 | description: Create a write request |
| 49 | operationId: writeDataJob |
| 50 | parameters: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 51 | - 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 |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 60 | requestBody: |
| 61 | content: |
| 62 | application/3gpp-json-patch+json: |
| 63 | schema: |
| 64 | $ref: '#/components/schemas/SubjobWriteRequest' |
| 65 | description: Operation body |
| 66 | responses: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 67 | "501": |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 68 | content: |
| 69 | application/json: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 70 | example: |
| 71 | status: 501 |
| 72 | message: Not Implemented |
| 73 | details: Method Not Implemented |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 74 | schema: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 75 | $ref: '#/components/schemas/ErrorMessage' |
| 76 | description: Not Implemented |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 77 | tags: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 78 | - dmi-datajob |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 79 | /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/status: |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 80 | get: |
| 81 | description: Retrieve the status of a specific data job. |
| 82 | operationId: getDataJobStatus |
| 83 | parameters: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 84 | - 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 |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 102 | 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: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 114 | - dmi-datajob |
leventecsanyi | 658f4d4 | 2024-08-05 15:46:59 +0200 | [diff] [blame] | 115 | /v1/cmwriteJob/dataProducer/{dataProducerId}/dataProducerJob/{dataProducerJobId}/result: |
leventecsanyi | ee4242c | 2024-07-26 13:25:12 +0200 | [diff] [blame] | 116 | get: |
| 117 | description: Retrieve the result of a data job. |
| 118 | operationId: getDataJobResult |
| 119 | parameters: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 120 | - 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 |
leventecsanyi | ee4242c | 2024-07-26 13:25:12 +0200 | [diff] [blame] | 147 | 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: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 159 | - dmi-datajob |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 160 | components: |
| 161 | parameters: |
| 162 | requestIdInPath: |
| 163 | description: Identifier for the overall Datajob |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 164 | explode: false |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 165 | in: path |
| 166 | name: requestId |
| 167 | required: true |
| 168 | schema: |
| 169 | example: some-identifier |
| 170 | type: string |
| 171 | style: simple |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 172 | dataProducerJobIdInPath: |
| 173 | description: Identifier for the data producer job |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 174 | explode: false |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 175 | in: path |
| 176 | name: dataProducerJobId |
| 177 | required: true |
| 178 | schema: |
| 179 | example: some-producer-job-identifier |
| 180 | type: string |
| 181 | style: simple |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 182 | dataProducerIdInPath: |
| 183 | description: Identifier for the data producer |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 184 | explode: false |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 185 | in: path |
| 186 | name: dataProducerId |
| 187 | required: true |
| 188 | schema: |
| 189 | example: some-data-producer-identifier |
| 190 | type: string |
| 191 | style: simple |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 192 | dataProducerIdInQuery: |
| 193 | description: Identifier for the data producer |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 194 | in: query |
| 195 | name: dataProducerId |
| 196 | required: true |
| 197 | schema: |
| 198 | example: some-data-producer-identifier |
| 199 | type: string |
| 200 | style: form |
leventecsanyi | ee4242c | 2024-07-26 13:25:12 +0200 | [diff] [blame] | 201 | destinationInQuery: |
| 202 | description: The destination of the results (Kafka topic name or s3 bucket name) |
leventecsanyi | ee4242c | 2024-07-26 13:25:12 +0200 | [diff] [blame] | 203 | in: query |
| 204 | name: destination |
| 205 | required: true |
| 206 | schema: |
| 207 | example: some-destination |
| 208 | type: string |
| 209 | style: form |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 210 | 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 |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 221 | schemas: |
egernug | daf2ba8 | 2024-05-29 10:22:59 +0100 | [diff] [blame] | 222 | ErrorMessage: |
| 223 | properties: |
| 224 | status: |
| 225 | type: string |
| 226 | message: |
| 227 | type: string |
| 228 | details: |
| 229 | type: string |
| 230 | title: Error |
| 231 | type: object |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 232 | SubjobReadRequest: |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 233 | 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: |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 248 | 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 |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 258 | required: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 259 | - data |
| 260 | - dataProducerId |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 261 | type: object |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 262 | 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 |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 277 | dataJobId: |
| 278 | description: Identifier for the overall Data Job |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 279 | example: my-data-producer-identifier |
leventecsanyi | 636c228 | 2024-08-15 13:52:21 +0200 | [diff] [blame] | 280 | type: string |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 281 | 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: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 293 | - data |
| 294 | - dataProducerId |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 295 | type: object |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 296 | 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 |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 320 | 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: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 336 | - dataProducerId |
| 337 | - dmiServiceName |
| 338 | - subJobId |
leventecsanyi | 7f49c70 | 2024-07-24 15:42:32 +0200 | [diff] [blame] | 339 | type: object |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 340 | SubjobReadRequest_data_inner: |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 341 | 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: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 390 | - op |
| 391 | - path |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 392 | type: object |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 393 | SubjobWriteRequest_data_inner_value: |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 394 | description: Value dependent on the op specified. Resource for an add. Object |
| 395 | for a replace. ActionParameters for an action. |
| 396 | oneOf: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 397 | - $ref: '#/components/schemas/Resource' |
| 398 | - $ref: '#/components/schemas/ActionParameters' |
| 399 | - $ref: '#/components/schemas/Object' |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 400 | type: object |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 401 | SubjobWriteRequest_data_inner: |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 402 | 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 |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 415 | 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 |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 422 | value: |
egernug | d9a4615 | 2024-05-14 14:02:07 +0100 | [diff] [blame] | 423 | $ref: '#/components/schemas/SubjobWriteRequest_data_inner_value' |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 424 | required: |
egernug | 0900a1e | 2024-09-09 12:05:52 +0100 | [diff] [blame] | 425 | - op |
| 426 | - path |
egernug | b0ee038 | 2024-04-17 10:08:38 +0100 | [diff] [blame] | 427 | type: object |