Merge "ICS tests with istio and JWTs"
[nonrtric.git] / dmaap-adaptor-java / api / api.yaml
1 openapi: 3.0.1
2 info:
3   title: Generic Dmaap and Kafka Information Producer
4   description: Reads data from DMaaP and Kafka and posts it further to information
5     consumers
6   license:
7     name: Copyright (C) 2021 Nordix Foundation. Licensed under the Apache License.
8     url: http://www.apache.org/licenses/LICENSE-2.0
9   version: "1.0"
10 servers:
11 - url: /
12 tags:
13 - name: Information Coordinator Service Simulator (exists only in test)
14 - name: Producer job control API
15 - name: Test Consumer Simulator (exists only in test)
16 - name: DMAAP Simulator (exists only in test)
17 - name: Actuator
18   description: Monitor and interact
19   externalDocs:
20     description: Spring Boot Actuator Web API Documentation
21     url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
22 paths:
23   /actuator/threaddump:
24     get:
25       tags:
26       - Actuator
27       summary: Actuator web endpoint 'threaddump'
28       operationId: threaddump_4
29       responses:
30         200:
31           description: OK
32           content:
33             '*/*':
34               schema:
35                 type: object
36   /actuator/info:
37     get:
38       tags:
39       - Actuator
40       summary: Actuator web endpoint 'info'
41       operationId: info_2
42       responses:
43         200:
44           description: OK
45           content:
46             '*/*':
47               schema:
48                 type: object
49   /data-producer/v1/info-types/{infoTypeId}:
50     put:
51       tags:
52       - Information Coordinator Service Simulator (exists only in test)
53       operationId: putInfoType
54       parameters:
55       - name: infoTypeId
56         in: path
57         required: true
58         style: simple
59         explode: false
60         schema:
61           type: string
62       requestBody:
63         content:
64           application/json:
65             schema:
66               $ref: '#/components/schemas/producer_info_type_info'
67         required: true
68       responses:
69         200:
70           description: OK
71           content:
72             application/json:
73               schema:
74                 type: object
75   /generic_dataproducer/health_check:
76     get:
77       tags:
78       - Producer job control API
79       summary: Producer supervision
80       description: The endpoint is provided by the Information Producer and is used
81         for supervision of the producer.
82       operationId: producerSupervision
83       responses:
84         200:
85           description: The producer is OK
86           content:
87             application/json:
88               schema:
89                 type: string
90   /generic_dataproducer/info_job:
91     get:
92       tags:
93       - Producer job control API
94       summary: Get all jobs
95       description: Returns all info jobs, can be used for trouble shooting
96       operationId: getJobs
97       responses:
98         200:
99           description: Information jobs
100           content:
101             application/json:
102               schema:
103                 type: array
104                 items:
105                   $ref: '#/components/schemas/producer_info_job_request'
106     post:
107       tags:
108       - Producer job control API
109       summary: Callback for Information Job creation/modification
110       description: The call is invoked to activate or to modify a data subscription.
111         The endpoint is provided by the Information Producer.
112       operationId: jobCreatedCallback
113       requestBody:
114         content:
115           application/json:
116             schema:
117               type: string
118         required: true
119       responses:
120         200:
121           description: OK
122           content:
123             application/json:
124               schema:
125                 $ref: '#/components/schemas/void'
126         400:
127           description: Other error in the request
128           content:
129             application/json:
130               schema:
131                 $ref: '#/components/schemas/error_information'
132         404:
133           description: Information type is not found
134           content:
135             application/json:
136               schema:
137                 $ref: '#/components/schemas/error_information'
138   /actuator/loggers:
139     get:
140       tags:
141       - Actuator
142       summary: Actuator web endpoint 'loggers'
143       operationId: loggers_2
144       responses:
145         200:
146           description: OK
147           content:
148             '*/*':
149               schema:
150                 type: object
151   /actuator/health/**:
152     get:
153       tags:
154       - Actuator
155       summary: Actuator web endpoint 'health-path'
156       operationId: health-path_2
157       responses:
158         200:
159           description: OK
160           content:
161             '*/*':
162               schema:
163                 type: object
164   /data-producer/v1/info-producers/{infoProducerId}:
165     get:
166       tags:
167       - Information Coordinator Service Simulator (exists only in test)
168       operationId: getInfoProducer
169       parameters:
170       - name: infoProducerId
171         in: path
172         required: true
173         style: simple
174         explode: false
175         schema:
176           type: string
177       responses:
178         200:
179           description: OK
180           content:
181             application/json:
182               schema:
183                 type: object
184     put:
185       tags:
186       - Information Coordinator Service Simulator (exists only in test)
187       operationId: putInfoProducer
188       parameters:
189       - name: infoProducerId
190         in: path
191         required: true
192         style: simple
193         explode: false
194         schema:
195           type: string
196       requestBody:
197         content:
198           application/json:
199             schema:
200               $ref: '#/components/schemas/producer_registration_info'
201         required: true
202       responses:
203         200:
204           description: OK
205           content:
206             application/json:
207               schema:
208                 type: object
209   /generic_dataproducer/info_job/{infoJobId}:
210     delete:
211       tags:
212       - Producer job control API
213       summary: Callback for Information Job deletion
214       description: The call is invoked to terminate a data subscription. The endpoint
215         is provided by the Information Producer.
216       operationId: jobDeletedCallback
217       parameters:
218       - name: infoJobId
219         in: path
220         required: true
221         style: simple
222         explode: false
223         schema:
224           type: string
225       responses:
226         200:
227           description: OK
228           content:
229             application/json:
230               schema:
231                 $ref: '#/components/schemas/void'
232   /actuator/metrics/{requiredMetricName}:
233     get:
234       tags:
235       - Actuator
236       summary: Actuator web endpoint 'metrics-requiredMetricName'
237       operationId: metrics-requiredMetricName_2
238       parameters:
239       - name: requiredMetricName
240         in: path
241         required: true
242         style: simple
243         explode: false
244         schema:
245           type: string
246       responses:
247         200:
248           description: OK
249           content:
250             '*/*':
251               schema:
252                 type: object
253   /actuator:
254     get:
255       tags:
256       - Actuator
257       summary: Actuator root web endpoint
258       operationId: links_1
259       responses:
260         200:
261           description: OK
262           content:
263             '*/*':
264               schema:
265                 type: object
266                 additionalProperties:
267                   type: object
268                   additionalProperties:
269                     $ref: '#/components/schemas/Link'
270   /actuator/logfile:
271     get:
272       tags:
273       - Actuator
274       summary: Actuator web endpoint 'logfile'
275       operationId: logfile_2
276       responses:
277         200:
278           description: OK
279           content:
280             '*/*':
281               schema:
282                 type: object
283   /actuator/loggers/{name}:
284     get:
285       tags:
286       - Actuator
287       summary: Actuator web endpoint 'loggers-name'
288       operationId: loggers-name_4
289       parameters:
290       - name: name
291         in: path
292         required: true
293         style: simple
294         explode: false
295         schema:
296           type: string
297       responses:
298         200:
299           description: OK
300           content:
301             '*/*':
302               schema:
303                 type: object
304     post:
305       tags:
306       - Actuator
307       summary: Actuator web endpoint 'loggers-name'
308       operationId: loggers-name_3
309       parameters:
310       - name: name
311         in: path
312         required: true
313         style: simple
314         explode: false
315         schema:
316           type: string
317       responses:
318         200:
319           description: OK
320           content:
321             '*/*':
322               schema:
323                 type: object
324   /actuator/health:
325     get:
326       tags:
327       - Actuator
328       summary: Actuator web endpoint 'health'
329       operationId: health_2
330       responses:
331         200:
332           description: OK
333           content:
334             '*/*':
335               schema:
336                 type: object
337   /consumer:
338     post:
339       tags:
340       - Test Consumer Simulator (exists only in test)
341       summary: Consume data
342       description: The call is invoked to push data to consumer
343       operationId: postData
344       requestBody:
345         content:
346           application/json:
347             schema:
348               type: string
349         required: true
350       responses:
351         200:
352           description: OK
353           content:
354             application/json:
355               schema:
356                 $ref: '#/components/schemas/void'
357   /dmaap-topic-1:
358     get:
359       tags:
360       - DMAAP Simulator (exists only in test)
361       summary: GET from topic
362       description: The call is invoked to activate or to modify a data subscription.
363         The endpoint is provided by the Information Producer.
364       operationId: getFromTopic
365       responses:
366         200:
367           description: OK
368           content:
369             application/json:
370               schema:
371                 $ref: '#/components/schemas/void'
372   /actuator/metrics:
373     get:
374       tags:
375       - Actuator
376       summary: Actuator web endpoint 'metrics'
377       operationId: metrics_2
378       responses:
379         200:
380           description: OK
381           content:
382             '*/*':
383               schema:
384                 type: object
385   /actuator/heapdump:
386     get:
387       tags:
388       - Actuator
389       summary: Actuator web endpoint 'heapdump'
390       operationId: heapdump_2
391       responses:
392         200:
393           description: OK
394           content:
395             '*/*':
396               schema:
397                 type: object
398 components:
399   schemas:
400     producer_info_job_request:
401       required:
402       - info_job_identity
403       type: object
404       properties:
405         owner:
406           type: string
407           description: The owner of the job
408         last_updated:
409           type: string
410           description: The time when the job was last updated or created (ISO-8601)
411         info_job_identity:
412           type: string
413           description: Identity of the Information Job
414         target_uri:
415           type: string
416           description: URI for the target of the produced Information
417         info_job_data:
418           type: object
419           description: Json for the job data
420         info_type_identity:
421           type: string
422           description: Type identity for the job
423       description: The body of the Information Producer callbacks for Information
424         Job creation and deletion
425     error_information:
426       type: object
427       properties:
428         detail:
429           type: string
430           description: ' A human-readable explanation specific to this occurrence
431             of the problem.'
432           example: Policy type not found
433         status:
434           type: integer
435           description: 'The HTTP status code generated by the origin server for this
436             occurrence of the problem. '
437           format: int32
438           example: 503
439       description: Problem as defined in https://tools.ietf.org/html/rfc7807
440     void:
441       type: object
442       description: Void/empty
443     producer_registration_info:
444       required:
445       - info_job_callback_url
446       - info_producer_supervision_callback_url
447       - supported_info_types
448       type: object
449       properties:
450         info_producer_supervision_callback_url:
451           type: string
452           description: callback for producer supervision
453         supported_info_types:
454           type: array
455           description: Supported Information Type IDs
456           items:
457             type: string
458             description: Supported Information Type IDs
459         info_job_callback_url:
460           type: string
461           description: callback for Information Job
462       description: Information for an Information Producer
463     Link:
464       type: object
465       properties:
466         templated:
467           type: boolean
468         href:
469           type: string
470     producer_info_type_info:
471       required:
472       - info_job_data_schema
473       - info_type_information
474       type: object
475       properties:
476         info_type_information:
477           type: object
478           description: Type specific information for the information type
479         info_job_data_schema:
480           type: object
481           description: Json schema for the job data
482       description: Information for an Information Type