NONRTRIC - Implement DMaaP mediator producer service in Java
[nonrtric.git] / dmaap-adaptor-java / api / api.json
1 {
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                 "target_uri": {
21                     "description": "URI for the target of the produced Information",
22                     "type": "string"
23                 },
24                 "info_job_data": {
25                     "description": "Json for the job data",
26                     "type": "object"
27                 },
28                 "info_type_identity": {
29                     "description": "Type identity for the job",
30                     "type": "string"
31                 }
32             }
33         },
34         "error_information": {
35             "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
36             "type": "object",
37             "properties": {
38                 "detail": {
39                     "description": " A human-readable explanation specific to this occurrence of the problem.",
40                     "type": "string",
41                     "example": "Policy type not found"
42                 },
43                 "status": {
44                     "format": "int32",
45                     "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
46                     "type": "integer",
47                     "example": 503
48                 }
49             }
50         },
51         "void": {
52             "description": "Void/empty",
53             "type": "object"
54         },
55         "producer_registration_info": {
56             "description": "Information for an Information Producer",
57             "type": "object",
58             "required": [
59                 "info_job_callback_url",
60                 "info_producer_supervision_callback_url",
61                 "supported_info_types"
62             ],
63             "properties": {
64                 "info_producer_supervision_callback_url": {
65                     "description": "callback for producer supervision",
66                     "type": "string"
67                 },
68                 "supported_info_types": {
69                     "description": "Supported Information Type IDs",
70                     "type": "array",
71                     "items": {
72                         "description": "Supported Information Type IDs",
73                         "type": "string"
74                     }
75                 },
76                 "info_job_callback_url": {
77                     "description": "callback for Information Job",
78                     "type": "string"
79                 }
80             }
81         },
82         "Link": {
83             "type": "object",
84             "properties": {
85                 "templated": {"type": "boolean"},
86                 "href": {"type": "string"}
87             }
88         },
89         "producer_info_type_info": {
90             "description": "Information for an Information Type",
91             "type": "object",
92             "required": [
93                 "info_job_data_schema",
94                 "info_type_information"
95             ],
96             "properties": {
97                 "info_type_information": {
98                     "description": "Type specific information for the information type",
99                     "type": "object"
100                 },
101                 "info_job_data_schema": {
102                     "description": "Json schema for the job data",
103                     "type": "object"
104                 }
105             }
106         }
107     }},
108     "openapi": "3.0.1",
109     "paths": {
110         "/dmaap_dataproducer/info_job": {
111             "post": {
112                 "summary": "Callback for Information Job creation/modification",
113                 "requestBody": {
114                     "content": {"application/json": {"schema": {"type": "string"}}},
115                     "required": true
116                 },
117                 "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
118                 "operationId": "jobCreatedCallback",
119                 "responses": {
120                     "200": {
121                         "description": "OK",
122                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
123                     },
124                     "404": {
125                         "description": "Information type is not found",
126                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
127                     }
128                 },
129                 "tags": ["Producer job control API"]
130             },
131             "get": {
132                 "summary": "Get all jobs",
133                 "description": "Returns all info jobs, can be used for trouble shooting",
134                 "operationId": "getJobs",
135                 "responses": {"200": {
136                     "description": "Information jobs",
137                     "content": {"application/json": {"schema": {
138                         "type": "array",
139                         "items": {"$ref": "#/components/schemas/producer_info_job_request"}
140                     }}}
141                 }},
142                 "tags": ["Producer job control API"]
143             }
144         },
145         "/dmaap_dataproducer/health_check": {"get": {
146             "summary": "Producer supervision",
147             "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
148             "operationId": "producerSupervision",
149             "responses": {"200": {
150                 "description": "The producer is OK",
151                 "content": {"application/json": {"schema": {"type": "string"}}}
152             }},
153             "tags": ["Producer job control API"]
154         }},
155         "/actuator/threaddump": {"get": {
156             "summary": "Actuator web endpoint 'threaddump'",
157             "operationId": "handle_2_1_3",
158             "responses": {"200": {
159                 "description": "OK",
160                 "content": {"*/*": {"schema": {"type": "object"}}}
161             }},
162             "tags": ["Actuator"]
163         }},
164         "/actuator/info": {"get": {
165             "summary": "Actuator web endpoint 'info'",
166             "operationId": "handle_9",
167             "responses": {"200": {
168                 "description": "OK",
169                 "content": {"*/*": {"schema": {"type": "object"}}}
170             }},
171             "tags": ["Actuator"]
172         }},
173         "/data-producer/v1/info-types/{infoTypeId}": {"put": {
174             "requestBody": {
175                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}},
176                 "required": true
177             },
178             "operationId": "putInfoType",
179             "responses": {"200": {
180                 "description": "OK",
181                 "content": {"application/json": {"schema": {"type": "object"}}}
182             }},
183             "parameters": [{
184                 "schema": {"type": "string"},
185                 "in": "path",
186                 "name": "infoTypeId",
187                 "required": true
188             }],
189             "tags": ["Information Coordinator Service Simulator (exists only in test)"]
190         }},
191         "/actuator/loggers": {"get": {
192             "summary": "Actuator web endpoint 'loggers'",
193             "operationId": "handle_6",
194             "responses": {"200": {
195                 "description": "OK",
196                 "content": {"*/*": {"schema": {"type": "object"}}}
197             }},
198             "tags": ["Actuator"]
199         }},
200         "/actuator/health/**": {"get": {
201             "summary": "Actuator web endpoint 'health-path'",
202             "operationId": "handle_12",
203             "responses": {"200": {
204                 "description": "OK",
205                 "content": {"*/*": {"schema": {"type": "object"}}}
206             }},
207             "tags": ["Actuator"]
208         }},
209         "/data-producer/v1/info-producers/{infoProducerId}": {
210             "get": {
211                 "operationId": "getInfoProducer",
212                 "responses": {"200": {
213                     "description": "OK",
214                     "content": {"application/json": {"schema": {"type": "object"}}}
215                 }},
216                 "parameters": [{
217                     "schema": {"type": "string"},
218                     "in": "path",
219                     "name": "infoProducerId",
220                     "required": true
221                 }],
222                 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
223             },
224             "put": {
225                 "requestBody": {
226                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
227                     "required": true
228                 },
229                 "operationId": "putInfoProducer",
230                 "responses": {"200": {
231                     "description": "OK",
232                     "content": {"application/json": {"schema": {"type": "object"}}}
233                 }},
234                 "parameters": [{
235                     "schema": {"type": "string"},
236                     "in": "path",
237                     "name": "infoProducerId",
238                     "required": true
239                 }],
240                 "tags": ["Information Coordinator Service Simulator (exists only in test)"]
241             }
242         },
243         "/actuator/metrics/{requiredMetricName}": {"get": {
244             "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
245             "operationId": "handle_5",
246             "responses": {"200": {
247                 "description": "OK",
248                 "content": {"*/*": {"schema": {"type": "object"}}}
249             }},
250             "parameters": [{
251                 "schema": {"type": "string"},
252                 "in": "path",
253                 "name": "requiredMetricName",
254                 "required": true
255             }],
256             "tags": ["Actuator"]
257         }},
258         "/actuator": {"get": {
259             "summary": "Actuator root web endpoint",
260             "operationId": "links_1",
261             "responses": {"200": {
262                 "description": "OK",
263                 "content": {"*/*": {"schema": {
264                     "additionalProperties": {
265                         "additionalProperties": {"$ref": "#/components/schemas/Link"},
266                         "type": "object"
267                     },
268                     "type": "object"
269                 }}}
270             }},
271             "tags": ["Actuator"]
272         }},
273         "/actuator/logfile": {"get": {
274             "summary": "Actuator web endpoint 'logfile'",
275             "operationId": "handle_8",
276             "responses": {"200": {
277                 "description": "OK",
278                 "content": {"*/*": {"schema": {"type": "object"}}}
279             }},
280             "tags": ["Actuator"]
281         }},
282         "/actuator/loggers/{name}": {
283             "post": {
284                 "summary": "Actuator web endpoint 'loggers-name'",
285                 "operationId": "handle_0",
286                 "responses": {"200": {
287                     "description": "OK",
288                     "content": {"*/*": {"schema": {"type": "object"}}}
289                 }},
290                 "parameters": [{
291                     "schema": {"type": "string"},
292                     "in": "path",
293                     "name": "name",
294                     "required": true
295                 }],
296                 "tags": ["Actuator"]
297             },
298             "get": {
299                 "summary": "Actuator web endpoint 'loggers-name'",
300                 "operationId": "handle_7",
301                 "responses": {"200": {
302                     "description": "OK",
303                     "content": {"*/*": {"schema": {"type": "object"}}}
304                 }},
305                 "parameters": [{
306                     "schema": {"type": "string"},
307                     "in": "path",
308                     "name": "name",
309                     "required": true
310                 }],
311                 "tags": ["Actuator"]
312             }
313         },
314         "/dmaap_dataproducer/info_job/{infoJobId}": {"delete": {
315             "summary": "Callback for Information Job deletion",
316             "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
317             "operationId": "jobDeletedCallback",
318             "responses": {"200": {
319                 "description": "OK",
320                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
321             }},
322             "parameters": [{
323                 "schema": {"type": "string"},
324                 "in": "path",
325                 "name": "infoJobId",
326                 "required": true
327             }],
328             "tags": ["Producer job control API"]
329         }},
330         "/actuator/health": {"get": {
331             "summary": "Actuator web endpoint 'health'",
332             "operationId": "handle_11",
333             "responses": {"200": {
334                 "description": "OK",
335                 "content": {"*/*": {"schema": {"type": "object"}}}
336             }},
337             "tags": ["Actuator"]
338         }},
339         "/consumer": {"post": {
340             "summary": "Consume data",
341             "requestBody": {
342                 "content": {"application/json": {"schema": {"type": "string"}}},
343                 "required": true
344             },
345             "description": "The call is invoked to push data to consumer",
346             "operationId": "postData",
347             "responses": {"200": {
348                 "description": "OK",
349                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
350             }},
351             "tags": ["Test Consumer Simulator (exists only in test)"]
352         }},
353         "/dmaap-topic-1": {"get": {
354             "summary": "GET from topic",
355             "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
356             "operationId": "getFromTopic",
357             "responses": {"200": {
358                 "description": "OK",
359                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
360             }},
361             "tags": ["DMAAP Simulator (exists only in test)"]
362         }},
363         "/actuator/metrics": {"get": {
364             "summary": "Actuator web endpoint 'metrics'",
365             "operationId": "handle_4",
366             "responses": {"200": {
367                 "description": "OK",
368                 "content": {"*/*": {"schema": {"type": "object"}}}
369             }},
370             "tags": ["Actuator"]
371         }},
372         "/actuator/heapdump": {"get": {
373             "summary": "Actuator web endpoint 'heapdump'",
374             "operationId": "handle_10",
375             "responses": {"200": {
376                 "description": "OK",
377                 "content": {"*/*": {"schema": {"type": "object"}}}
378             }},
379             "tags": ["Actuator"]
380         }}
381     },
382     "info": {
383         "license": {
384             "name": "Copyright (C) 2021 Nordix Foundation. Licensed under the Apache License.",
385             "url": "http://www.apache.org/licenses/LICENSE-2.0"
386         },
387         "description": "Reads data from DMAAP and sends it further to information consumers",
388         "title": "Generic Dmaap Information Producer",
389         "version": "1.0"
390     },
391     "tags": [{
392         "name": "Actuator",
393         "description": "Monitor and interact",
394         "externalDocs": {
395             "description": "Spring Boot Actuator Web API Documentation",
396             "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
397         }
398     }]
399 }