blob: 90456e736909cda0556920fc3d22cd57cd87b2d0 [file] [log] [blame]
PatrikBuhrf0801592023-03-15 14:46:05 +01001{
2 "components": {"schemas": {
3 "producer_info_job_request": {
4 "description": "The body of the Information Producer callbacks for Information Job creation and deletion",
5 "type": "object",
6 "required": ["info_job_identity"],
7 "properties": {
8 "owner": {
9 "description": "The owner of the job",
10 "type": "string"
11 },
12 "last_updated": {
13 "description": "The time when the job was last updated or created (ISO-8601)",
14 "type": "string"
15 },
16 "info_job_identity": {
17 "description": "Identity of the Information Job",
18 "type": "string"
19 },
20 "info_job_data": {
21 "description": "Json for the job data",
22 "type": "object"
23 },
24 "info_type_identity": {
25 "description": "Type identity for the job",
26 "type": "string"
27 }
28 }
29 },
30 "error_information": {
31 "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
32 "type": "object",
33 "properties": {
34 "detail": {
35 "description": " A human-readable explanation specific to this occurrence of the problem.",
36 "type": "string",
37 "example": "Policy type not found"
38 },
39 "status": {
40 "format": "int32",
41 "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
42 "type": "integer",
43 "example": 503
44 }
45 }
46 },
47 "consumer_job": {
48 "description": "Information for an Information Job",
49 "type": "object",
50 "required": [
51 "info_type_id",
52 "job_definition",
53 "job_owner",
54 "job_result_uri"
55 ],
56 "properties": {
57 "info_type_id": {
58 "description": "Information type Idenitifier of the subscription job",
59 "type": "string"
60 },
61 "job_result_uri": {
62 "description": "The target URI of the subscribed information",
63 "type": "string"
64 },
65 "job_owner": {
66 "description": "Identity of the owner of the job",
67 "type": "string"
68 },
69 "job_definition": {
70 "description": "Information type specific job data",
71 "type": "object"
72 },
73 "status_notification_uri": {
74 "description": "The target of Information subscription job status notifications",
75 "type": "string"
76 }
77 }
78 },
79 "void": {
80 "description": "Void/empty",
81 "type": "object"
82 },
83 "job_statistics": {
84 "description": "Statistics information for one job",
85 "type": "object",
86 "required": [
87 "jobId",
88 "noOfReceivedBytes",
89 "noOfReceivedObjects",
90 "noOfSentBytes",
91 "noOfSentObjects",
92 "typeId"
93 ],
94 "properties": {
95 "noOfSentObjects": {
96 "format": "int64",
97 "type": "integer"
98 },
99 "jobId": {"type": "string"},
100 "outputTopic": {"type": "string"},
101 "noOfSentBytes": {
102 "format": "int64",
103 "type": "integer"
104 },
105 "clientId": {"type": "string"},
106 "groupId": {"type": "string"},
107 "noOfReceivedBytes": {
108 "format": "int64",
109 "type": "integer"
110 },
111 "typeId": {"type": "string"},
112 "inputTopic": {"type": "string"},
113 "noOfReceivedObjects": {
114 "format": "int64",
115 "type": "integer"
116 }
117 }
118 },
119 "statistics_info": {
120 "description": "Statistics information",
121 "type": "object",
122 "properties": {"jobStatistics": {
123 "description": "Statistics per job",
124 "type": "array",
125 "items": {"$ref": "#/components/schemas/job_statistics"}
126 }}
127 },
128 "producer_registration_info": {
129 "description": "Information for an Information Producer",
130 "type": "object",
131 "required": [
132 "info_job_callback_url",
133 "info_producer_supervision_callback_url",
134 "supported_info_types"
135 ],
136 "properties": {
137 "info_producer_supervision_callback_url": {
138 "description": "callback for producer supervision",
139 "type": "string"
140 },
141 "supported_info_types": {
142 "description": "Supported Information Type IDs",
143 "type": "array",
144 "items": {
145 "description": "Supported Information Type IDs",
146 "type": "string"
147 }
148 },
149 "info_job_callback_url": {
150 "description": "callback for Information Job",
151 "type": "string"
152 }
153 }
154 },
155 "Link": {
156 "type": "object",
157 "properties": {
158 "templated": {"type": "boolean"},
159 "href": {"type": "string"}
160 }
161 },
162 "producer_info_type_info": {
163 "description": "Information for an Information Type",
164 "type": "object",
165 "required": [
166 "info_job_data_schema",
167 "info_type_information"
168 ],
169 "properties": {
170 "info_type_information": {
171 "description": "Type specific information for the information type",
172 "type": "object"
173 },
174 "info_job_data_schema": {
175 "description": "Json schema for the job data",
176 "type": "object"
177 }
178 }
179 }
180 }},
181 "openapi": "3.0.1",
182 "paths": {
183 "/actuator/threaddump": {"get": {
184 "summary": "Actuator web endpoint 'threaddump'",
185 "operationId": "threaddump",
186 "responses": {"200": {
187 "description": "OK",
188 "content": {
189 "text/plain;charset=UTF-8": {"schema": {"type": "object"}},
190 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
191 "application/json": {"schema": {"type": "object"}},
192 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
193 }
194 }},
195 "tags": ["Actuator"]
196 }},
197 "/actuator/info": {"get": {
198 "summary": "Actuator web endpoint 'info'",
199 "operationId": "info",
200 "responses": {"200": {
201 "description": "OK",
202 "content": {
203 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
204 "application/json": {"schema": {"type": "object"}},
205 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
206 }
207 }},
208 "tags": ["Actuator"]
209 }},
210 "/data-producer/v1/info-types/{infoTypeId}": {"put": {
211 "requestBody": {
212 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}},
213 "required": true
214 },
215 "operationId": "putInfoType",
216 "responses": {"200": {
217 "description": "OK",
218 "content": {"application/json": {"schema": {"type": "object"}}}
219 }},
220 "parameters": [{
221 "schema": {"type": "string"},
222 "in": "path",
223 "name": "infoTypeId",
224 "required": true
225 }],
226 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
227 }},
228 "/statistics": {"get": {
229 "summary": "Returns statistics",
230 "operationId": "getStatistics",
231 "responses": {"200": {
232 "description": "OK",
233 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/statistics_info"}}}
234 }},
235 "tags": ["Producer job control API"]
236 }},
237 "/generic_dataproducer/health_check": {"get": {
238 "summary": "Producer supervision",
239 "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
240 "operationId": "producerSupervision",
241 "responses": {"200": {
242 "description": "The producer is OK",
243 "content": {"application/json": {"schema": {"type": "string"}}}
244 }},
245 "tags": ["Producer job control API"]
246 }},
247 "/generic_dataproducer/info_job": {
248 "post": {
249 "summary": "Callback for Information Job creation/modification",
250 "requestBody": {
251 "content": {"application/json": {"schema": {"type": "string"}}},
252 "required": true
253 },
254 "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
255 "operationId": "jobCreatedCallback",
256 "responses": {
257 "200": {
258 "description": "OK",
259 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
260 },
261 "400": {
262 "description": "Other error in the request",
263 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
264 },
265 "404": {
266 "description": "Information type is not found",
267 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
268 }
269 },
270 "tags": ["Producer job control API"]
271 },
272 "get": {
273 "summary": "Get all jobs",
274 "description": "Returns all info jobs, can be used for trouble shooting",
275 "operationId": "getJobs",
276 "responses": {"200": {
277 "description": "Information jobs",
278 "content": {"application/json": {"schema": {
279 "type": "array",
280 "items": {"$ref": "#/components/schemas/producer_info_job_request"}
281 }}}
282 }},
283 "tags": ["Producer job control API"]
284 }
285 },
286 "/actuator/loggers": {"get": {
287 "summary": "Actuator web endpoint 'loggers'",
288 "operationId": "loggers",
289 "responses": {"200": {
290 "description": "OK",
291 "content": {
292 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
293 "application/json": {"schema": {"type": "object"}},
294 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
295 }
296 }},
297 "tags": ["Actuator"]
298 }},
299 "/actuator/health/**": {"get": {
300 "summary": "Actuator web endpoint 'health-path'",
301 "operationId": "health-path",
302 "responses": {"200": {
303 "description": "OK",
304 "content": {
305 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
306 "application/json": {"schema": {"type": "object"}},
307 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
308 }
309 }},
310 "tags": ["Actuator"]
311 }},
312 "/actuator/shutdown": {"post": {
313 "summary": "Actuator web endpoint 'shutdown'",
314 "operationId": "shutdown",
315 "responses": {"200": {
316 "description": "OK",
317 "content": {
318 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
319 "application/json": {"schema": {"type": "object"}},
320 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
321 }
322 }},
323 "tags": ["Actuator"]
324 }},
325 "/data-producer/v1/info-producers/{infoProducerId}": {
326 "get": {
327 "operationId": "getInfoProducer",
328 "responses": {"200": {
329 "description": "OK",
330 "content": {"application/json": {"schema": {"type": "object"}}}
331 }},
332 "parameters": [{
333 "schema": {"type": "string"},
334 "in": "path",
335 "name": "infoProducerId",
336 "required": true
337 }],
338 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
339 },
340 "put": {
341 "requestBody": {
342 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
343 "required": true
344 },
345 "operationId": "putInfoProducer",
346 "responses": {"200": {
347 "description": "OK",
348 "content": {"application/json": {"schema": {"type": "object"}}}
349 }},
350 "parameters": [{
351 "schema": {"type": "string"},
352 "in": "path",
353 "name": "infoProducerId",
354 "required": true
355 }],
356 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
357 }
358 },
359 "/actuator/metrics/{requiredMetricName}": {"get": {
360 "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
361 "operationId": "metrics-requiredMetricName",
362 "responses": {"200": {
363 "description": "OK",
364 "content": {
365 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
366 "application/json": {"schema": {"type": "object"}},
367 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
368 }
369 }},
370 "parameters": [{
371 "schema": {"type": "string"},
372 "in": "path",
373 "name": "requiredMetricName",
374 "required": true
375 }],
376 "tags": ["Actuator"]
377 }},
378 "/generic_dataproducer/info_job/{infoJobId}": {"delete": {
379 "summary": "Callback for Information Job deletion",
380 "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
381 "operationId": "jobDeletedCallback",
382 "responses": {"200": {
383 "description": "OK",
384 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
385 }},
386 "parameters": [{
387 "schema": {"type": "string"},
388 "in": "path",
389 "name": "infoJobId",
390 "required": true
391 }],
392 "tags": ["Producer job control API"]
393 }},
394 "/actuator": {"get": {
395 "summary": "Actuator root web endpoint",
396 "operationId": "links",
397 "responses": {"200": {
398 "description": "OK",
399 "content": {
400 "application/vnd.spring-boot.actuator.v3+json": {"schema": {
401 "additionalProperties": {
402 "additionalProperties": {"$ref": "#/components/schemas/Link"},
403 "type": "object"
404 },
405 "type": "object"
406 }},
407 "application/json": {"schema": {
408 "additionalProperties": {
409 "additionalProperties": {"$ref": "#/components/schemas/Link"},
410 "type": "object"
411 },
412 "type": "object"
413 }},
414 "application/vnd.spring-boot.actuator.v2+json": {"schema": {
415 "additionalProperties": {
416 "additionalProperties": {"$ref": "#/components/schemas/Link"},
417 "type": "object"
418 },
419 "type": "object"
420 }}
421 }
422 }},
423 "tags": ["Actuator"]
424 }},
425 "/actuator/logfile": {"get": {
426 "summary": "Actuator web endpoint 'logfile'",
427 "operationId": "logfile",
428 "responses": {"200": {
429 "description": "OK",
430 "content": {"text/plain;charset=UTF-8": {"schema": {"type": "object"}}}
431 }},
432 "tags": ["Actuator"]
433 }},
434 "/data-consumer/v1/info-jobs/{infoJobId}": {"put": {
435 "requestBody": {
436 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}},
437 "required": true
438 },
439 "operationId": "putIndividualInfoJob",
440 "responses": {"200": {
441 "description": "OK",
442 "content": {"application/json": {"schema": {"type": "object"}}}
443 }},
444 "parameters": [{
445 "schema": {"type": "string"},
446 "in": "path",
447 "name": "infoJobId",
448 "required": true
449 }],
450 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
451 }},
452 "/actuator/loggers/{name}": {
453 "post": {
454 "summary": "Actuator web endpoint 'loggers-name'",
455 "requestBody": {"content": {"application/json": {"schema": {
456 "type": "string",
457 "enum": [
458 "TRACE",
459 "DEBUG",
460 "INFO",
461 "WARN",
462 "ERROR",
463 "FATAL",
464 "OFF"
465 ]
466 }}}},
467 "operationId": "loggers-name_2",
468 "responses": {"200": {
469 "description": "OK",
470 "content": {"*/*": {"schema": {"type": "object"}}}
471 }},
472 "parameters": [{
473 "schema": {"type": "string"},
474 "in": "path",
475 "name": "name",
476 "required": true
477 }],
478 "tags": ["Actuator"]
479 },
480 "get": {
481 "summary": "Actuator web endpoint 'loggers-name'",
482 "operationId": "loggers-name",
483 "responses": {"200": {
484 "description": "OK",
485 "content": {
486 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
487 "application/json": {"schema": {"type": "object"}},
488 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
489 }
490 }},
491 "parameters": [{
492 "schema": {"type": "string"},
493 "in": "path",
494 "name": "name",
495 "required": true
496 }],
497 "tags": ["Actuator"]
498 }
499 },
500 "/actuator/health": {"get": {
501 "summary": "Actuator web endpoint 'health'",
502 "operationId": "health",
503 "responses": {"200": {
504 "description": "OK",
505 "content": {
506 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
507 "application/json": {"schema": {"type": "object"}},
508 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
509 }
510 }},
511 "tags": ["Actuator"]
512 }},
513 "/actuator/metrics": {"get": {
514 "summary": "Actuator web endpoint 'metrics'",
515 "operationId": "metrics",
516 "responses": {"200": {
517 "description": "OK",
518 "content": {
519 "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
520 "application/json": {"schema": {"type": "object"}},
521 "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
522 }
523 }},
524 "tags": ["Actuator"]
525 }},
526 "/actuator/heapdump": {"get": {
527 "summary": "Actuator web endpoint 'heapdump'",
528 "operationId": "heapdump",
529 "responses": {"200": {
530 "description": "OK",
531 "content": {"application/octet-stream": {"schema": {"type": "object"}}}
532 }},
533 "tags": ["Actuator"]
534 }}
535 },
536 "info": {
537 "license": {
538 "name": "Copyright (C) 2023 Nordix Foundation. Licensed under the Apache License.",
539 "url": "http://www.apache.org/licenses/LICENSE-2.0"
540 },
PatrikBuhr608883c2023-04-06 13:17:36 +0200541 "description": "Distributes PM Measuremenet Data to consumers",
542 "title": "PM Measuremenet Data Producer",
PatrikBuhrf0801592023-03-15 14:46:05 +0100543 "version": "1.0"
544 },
545 "tags": [{
546 "name": "Actuator",
547 "description": "Monitor and interact",
548 "externalDocs": {
549 "description": "Spring Boot Actuator Web API Documentation",
550 "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
551 }
552 }]
553}