update link to upper-constraints.txt
[dmaap/messagerouter/messageservice.git] / docs / offeredapis / swagger.json
1 {
2   "swagger": "2.0",
3   "info": {
4     "description": "DMaaP MR REST API",
5     "version": "4.0.0",
6     "title": "DMaaP MR REST API"
7   },
8   "host": "message-router:30227",
9   "basePath": "/",
10   "tags": [
11     {
12       "name": "Topic",
13       "description": "Operations about topic"
14     },
15     {
16       "name": "MirrorMaker",
17       "description": "Operations about mirror maker"
18     },
19     {
20       "name": "MirrorMaker Whitelist",
21       "description": "Operations about mirror maker whitelist"
22     }
23   ],
24   "schemes": [
25     "http",
26     "https"
27   ],
28   "paths": {
29     "/topics/create": {
30       "post": {
31         "tags": [
32           "Topic"
33         ],
34         "summary": "Create a Topic",
35         "description": "AAF Permissions required to create authenticated topics: org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create ",
36         "operationId": "Create a Topic",
37         "consumes": [
38           "application/json"
39         ],
40         "produces": [
41           "application/json"
42         ],
43         "parameters": [
44           {
45             "in": "body",
46             "name": "body",
47             "description": "Topic details",
48             "required": true,
49             "schema": {
50               "$ref": "#/definitions/createTopic"
51             }
52           }
53         ],
54         "responses": {
55           "200": {
56             "description": "successful operation"
57           },
58           "401": {
59             "description": "unauthorized"
60           },
61           "403": {
62             "description": "forbidden"
63           },
64           "409": {
65             "description": "topic already exist"
66           },
67           "500": {
68             "description": "failed to create a topic"
69           }
70         },
71         "security": [
72           {
73             "basicAuth": []
74           }
75         ]
76       }
77     },
78     "/topics": {
79       "get": {
80         "tags": [
81           "Topic"
82         ],
83         "summary": "Get  all topics",
84         "description": "",
85         "operationId": "view all topics",
86         "produces": [
87           "application/json"
88         ],
89         "responses": {
90           "200": {
91             "description": "successful operation"
92           },
93           "500": {
94             "description": "failed to return the topics"
95           }
96         }
97       }
98     },
99     "/topics/{topicName}": {
100       "get": {
101         "tags": [
102           "Topic"
103         ],
104         "summary": "Get individual topic details",
105         "description": "",
106         "operationId": "view the topic",
107         "produces": [
108           "application/json"
109         ],
110         "parameters": [
111           {
112             "name": "topicName",
113             "in": "path",
114             "description": "topicName",
115             "required": true,
116             "type": "string"
117           }
118         ],
119         "responses": {
120           "200": {
121             "description": "successful operation"
122           },
123           "404": {
124             "description": "topic not found"
125           },
126           "500": {
127             "description": "failed to return the topics"
128           }
129         }
130       }
131     },
132     "/topics/listAll": {
133       "get": {
134         "tags": [
135           "Topic"
136         ],
137         "summary": "Get all topics list with details",
138         "description": "",
139         "operationId": "view all topics details",
140         "produces": [
141           "application/json"
142         ],
143         "responses": {
144           "200": {
145             "description": "successful operation"
146           },
147           "500": {
148             "description": "failed to return the topics"
149           }
150         }
151       }
152     },
153     "/events/{topic}/{consumergroup}/{consumerid}": {
154       "get": {
155         "tags": [
156           "Topic"
157         ],
158         "summary": "Get events from a topic",
159         "description": "Subscribe to a topic. If already subscribed read the events from the topic. Basic Auth header is required for subcribing to a topic.  AAF permissions required for subscribing to a authenticated topic: org.onap.dmaap.mr.topic|:topic.<topic name>|sub",
160         "operationId": "subscribe to a topic",
161         "produces": [
162           "application/json"
163         ],
164         "parameters": [
165           {
166             "name": "topic",
167             "in": "path",
168             "description": "topic name",
169             "required": true,
170             "type": "string"
171           },
172           {
173             "name": "consumergroup",
174             "in": "path",
175             "description": "consumer group",
176             "required": true,
177             "type": "string"
178           },
179           {
180             "name": "consumerid",
181             "in": "path",
182             "description": "consumer id",
183             "required": true,
184             "type": "string"
185           },
186           {
187             "name": "limit",
188             "in": "query",
189             "description": "limit on the number of messages returned",
190             "type": "string"
191           },
192           {
193             "name": "timeout",
194             "in": "query",
195             "description": "amount of time in ms server will open the connection with the Kafka while reading the messages",
196             "type": "string"
197           }
198         ],
199         "responses": {
200           "200": {
201             "description": "successful operation"
202           },
203           "401": {
204             "description": "unauthorized"
205           },
206           "403": {
207             "description": "forbidden"
208           },
209           "409": {
210             "description": "unable to read the messages from the topic"
211           },
212           "429": {
213             "description": "Client is making too many requests. Decrease the number of requests to avoid empty response"
214           },
215           "500": {
216             "description": "internal server error"
217           }
218         },
219         "security": [
220           {
221             "basicAuth": []
222           }
223         ]
224       }
225     },
226     "/events/{topic}/": {
227       "post": {
228         "tags": [
229           "Topic"
230         ],
231         "summary": "Post events to a topic",
232         "description": "post an event to  a topic. Basic Auth header is required for subcribing to a topic.  AAF permissions required for subscribing to a authenticated topic: org.onap.dmaap.mr.topic|:topic.<topic name>|pub",
233         "operationId": "post messages to a topic",
234         "consumes": [
235           "application/json",
236           "text/plain"
237         ],
238         "produces": [
239           "application/json"
240         ],
241         "parameters": [
242           {
243             "name": "topic",
244             "in": "path",
245             "description": "topic name",
246             "required": true,
247             "type": "string"
248           },
249           {
250             "name": "partitionKey",
251             "in": "query",
252             "description": "topic partitionkey",
253             "type": "string"
254           },
255           {
256             "in": "body",
257             "name": "body",
258             "description": "mesage/s to publish to a topic",
259             "required": true,
260             "schema": {
261               "type": "string"
262             }
263           }
264         ],
265         "responses": {
266           "200": {
267             "description": "successful operation"
268           },
269           "400": {
270             "description": "Invalid request"
271           },
272           "401": {
273             "description": "unauthorized"
274           },
275           "403": {
276             "description": "forbidden"
277           },
278           "404": {
279             "description": "error while publishing to the topic"
280           },
281           "500": {
282             "description": "internal server error"
283           }
284         },
285         "security": [
286           {
287             "basicAuth": []
288           }
289         ]
290       }
291     },
292     "/mirrormakers/create": {
293       "post": {
294         "tags": [
295           "MirrorMaker"
296         ],
297         "summary": "Create a Mirror Maker process and returns the all mirror maker processes",
298         "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin",
299         "operationId": "Create a Mirror Maker process",
300         "consumes": [
301           "application/json"
302         ],
303         "produces": [
304           "application/json"
305         ],
306         "parameters": [
307           {
308             "in": "body",
309             "name": "body",
310             "description": "Create Mirror Maker",
311             "required": true,
312             "schema": {
313               "$ref": "#/definitions/createMirrorMaker"
314             }
315           }
316         ],
317         "responses": {
318           "200": {
319             "description": "successful operation"
320           },
321           "400": {
322             "description": "invalid request"
323           },
324           "401": {
325             "description": "unauthorized"
326           },
327           "403": {
328             "description": "forbidden"
329           },
330           "503": {
331             "description": "list mirror maker not available"
332           }
333         },
334         "security": [
335           {
336             "basicAuth": []
337           }
338         ]
339       }
340     },
341     "/mirrormakers/update": {
342       "post": {
343         "tags": [
344           "MirrorMaker"
345         ],
346         "summary": "Update a Mirror Maker process and returns the all mirror maker processes",
347         "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin",
348         "operationId": "Update  a Mirror Maker process",
349         "consumes": [
350           "application/json"
351         ],
352         "produces": [
353           "application/json"
354         ],
355         "parameters": [
356           {
357             "in": "body",
358             "name": "body",
359             "description": "Update Mirror Maker",
360             "required": true,
361             "schema": {
362               "$ref": "#/definitions/updateMirrorMaker"
363             }
364           }
365         ],
366         "responses": {
367           "200": {
368             "description": "successful operation"
369           },
370           "400": {
371             "description": "invalid request"
372           },
373           "401": {
374             "description": "unauthorized"
375           },
376           "403": {
377             "description": "forbidden"
378           },
379           "503": {
380             "description": "list mirror maker not available"
381           }
382         },
383         "security": [
384           {
385             "basicAuth": []
386           }
387         ]
388       }
389     },
390     "/mirrormakers/listAll": {
391       "post": {
392         "tags": [
393           "MirrorMaker"
394         ],
395         "summary": "List of mirror maker processes",
396         "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin",
397         "operationId": "List all Mirror Maker processes",
398         "consumes": [
399           "application/json"
400         ],
401         "produces": [
402           "application/json"
403         ],
404         "parameters": [
405           {
406             "in": "body",
407             "name": "body",
408             "description": "List all Mirror Maker processes",
409             "required": true,
410             "schema": {
411               "$ref": "#/definitions/listAllMirrorMaker"
412             }
413           }
414         ],
415         "responses": {
416           "200": {
417             "description": "successful operation"
418           },
419           "400": {
420             "description": "invalid request"
421           },
422           "401": {
423             "description": "unauthorized"
424           },
425           "403": {
426             "description": "forbidden"
427           },
428           "503": {
429             "description": "list mirror maker not available"
430           }
431         },
432         "security": [
433           {
434             "basicAuth": []
435           }
436         ]
437       }
438     },
439     "/mirrormakers/delete": {
440       "post": {
441         "tags": [
442           "MirrorMaker"
443         ],
444         "summary": "Delete a mirror maker process and return the all mirror maker processes",
445         "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin",
446         "operationId": "Delete a Mirror Maker process",
447         "consumes": [
448           "application/json"
449         ],
450         "produces": [
451           "application/json"
452         ],
453         "parameters": [
454           {
455             "in": "body",
456             "name": "body",
457             "description": "Delete a Mirror Maker process",
458             "required": true,
459             "schema": {
460               "$ref": "#/definitions/deleteMirrorMaker"
461             }
462           }
463         ],
464         "responses": {
465           "200": {
466             "description": "successful operation"
467           },
468           "400": {
469             "description": "invalid request"
470           },
471           "401": {
472             "description": "unauthorized"
473           },
474           "403": {
475             "description": "forbidden"
476           },
477           "503": {
478             "description": "list mirror maker not available"
479           }
480         },
481         "security": [
482           {
483             "basicAuth": []
484           }
485         ]
486       }
487     },
488     "/mirrormakers/createwhitelist": {
489       "post": {
490         "tags": [
491           "MirrorMaker Whitelist"
492         ],
493         "summary": "Add a new topic to a mirror maker whitelist and return all the mirror maker processes",
494         "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user ,  org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create",
495         "operationId": "Create a whitelist",
496         "consumes": [
497           "application/json"
498         ],
499         "produces": [
500           "application/json"
501         ],
502         "parameters": [
503           {
504             "in": "body",
505             "name": "body",
506             "description": "Add a topic to whitelist",
507             "required": true,
508             "schema": {
509               "$ref": "#/definitions/createWhitelist"
510             }
511           }
512         ],
513         "responses": {
514           "200": {
515             "description": "successful operation"
516           },
517           "400": {
518             "description": "invalid request"
519           },
520           "401": {
521             "description": "unauthorized"
522           },
523           "403": {
524             "description": "forbidden"
525           },
526           "503": {
527             "description": "list mirror maker not available"
528           }
529         },
530         "security": [
531           {
532             "basicAuth": []
533           }
534         ]
535       }
536     },
537     "/mirrormakers/listallwhitelist": {
538       "post": {
539         "tags": [
540           "MirrorMaker Whitelist"
541         ],
542         "summary": "List all whitelist",
543         "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user ,  org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create",
544         "operationId": "List all whitelist",
545         "consumes": [
546           "application/json"
547         ],
548         "produces": [
549           "application/json"
550         ],
551         "parameters": [
552           {
553             "in": "body",
554             "name": "body",
555             "description": "List all whitelist",
556             "required": true,
557             "schema": {
558               "$ref": "#/definitions/listallwhitelist"
559             }
560           }
561         ],
562         "responses": {
563           "200": {
564             "description": "successful operation"
565           },
566           "400": {
567             "description": "invalid request"
568           },
569           "401": {
570             "description": "unauthorized"
571           },
572           "403": {
573             "description": "forbidden"
574           },
575           "503": {
576             "description": "list mirror maker not available"
577           }
578         },
579         "security": [
580           {
581             "basicAuth": []
582           }
583         ]
584       }
585     },
586     "/mirrormakers/deletewhitelist": {
587       "post": {
588         "tags": [
589           "MirrorMaker Whitelist"
590         ],
591         "summary": "Delate a whitelist and returns the all lirror maker processes ",
592         "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user ,  org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create",
593         "operationId": "Delete all whitelist",
594         "consumes": [
595           "application/json"
596         ],
597         "produces": [
598           "application/json"
599         ],
600         "parameters": [
601           {
602             "in": "body",
603             "name": "body",
604             "description": "List all whitelist",
605             "required": true,
606             "schema": {
607               "$ref": "#/definitions/listallwhitelist"
608             }
609           }
610         ],
611         "responses": {
612           "200": {
613             "description": "successful operation"
614           },
615           "400": {
616             "description": "invalid request"
617           },
618           "401": {
619             "description": "unauthorized"
620           },
621           "403": {
622             "description": "forbidden"
623           },
624           "503": {
625             "description": "list mirror maker not available"
626           }
627         },
628         "security": [
629           {
630             "basicAuth": []
631           }
632         ]
633       }
634     }
635   },
636   "securityDefinitions": {
637     "basicAuth": {
638       "type": "basic"
639     }
640   },
641   "definitions": {
642     "createTopic": {
643       "type": "object",
644       "properties": {
645         "topicName": {
646           "type": "string",
647           "example": "org.onap.dmaap.mr.mrtesttopic"
648         },
649         "topicDescription": {
650           "type": "string",
651           "example": "test topic"
652         },
653         "partitionCount": {
654           "type": "integer",
655           "format": "int64",
656           "example": 3
657         },
658         "replicationCount": {
659           "type": "integer",
660           "format": "int64",
661           "example": 1
662         },
663         "transactionEnabled": {
664           "type": "string",
665           "example": "false"
666         }
667       }
668     },
669     "createMirrorMaker": {
670       "type": "object",
671       "properties": {
672         "createMirrorMaker": {
673           "$ref": "#/definitions/createMirrorMaker.mirrorMaker"
674         }
675       }
676     },
677     "createMirrorMaker.mirrorMaker": {
678       "type": "object",
679       "properties": {
680         "name": {
681           "type": "string",
682           "description": "Unique Name for the MirrorMaker. A-Z 1-0 only",
683           "example": "centraltoedge"
684         },
685         "consumer": {
686           "type": "string",
687           "description": "Consumer hostname/IP Address",
688           "example": "10.12.6.98:30491"
689         },
690         "producer": {
691           "type": "string",
692           "description": "Producer hostname/IP Address",
693           "example": "10.12.5.108:30491"
694         },
695         "numStreams": {
696           "type": "string",
697           "description": "Number of consumer threads to start. (If not provided default is 1)",
698           "example": "3"
699         },
700         "whitelist": {
701           "type": "string",
702           "description": "Topic names to be whitelisted. This can be provided later using createWhitelist API",
703           "example": "org.onap.dmaap.mr.mrtesttopic"
704         },
705         "enablelogCheck": {
706           "type": "string",
707           "description": "Enable error log monitoring on the MirrorMaker thread. Default values is False.If not provided error log is not monitored.",
708           "example": "true"
709         }
710       },
711       "required": [
712         "name",
713         "consumer",
714         "producer"
715       ]
716     },
717     "updateMirrorMaker": {
718       "type": "object",
719       "properties": {
720         "updateMirrorMaker": {
721           "$ref": "#/definitions/updateMirrorMaker.mirrorMaker"
722         }
723       }
724     },
725     "updateMirrorMaker.mirrorMaker": {
726       "type": "object",
727       "properties": {
728         "name": {
729           "type": "string",
730           "description": "Existing Mirror Maker name",
731           "example": "centraltoedge"
732         },
733         "consumer": {
734           "type": "string",
735           "description": "Consumer hostname/IP Address",
736           "example": "10.12.6.98:30491"
737         },
738         "producer": {
739           "type": "string",
740           "description": "Producer hostname/IP Address",
741           "example": "10.12.5.108:30491"
742         },
743         "numStreams": {
744           "type": "string",
745           "description": "Update number of consumer threads",
746           "example": "3"
747         },
748         "enablelogCheck": {
749           "type": "string",
750           "description": "Enable/Disable error log monitoring on the MirrorMaker thread",
751           "example": "false"
752         }
753       },
754       "required": [
755         "name"
756       ]
757     },
758     "listAllMirrorMaker": {
759       "type": "object",
760       "properties": {
761         "listAllMirrorMaker": {
762           "type": "object",
763           "items": {
764             "$ref": "#/definitions/listAllMirrorMaker.mirrorMaker"
765           }
766         }
767       }
768     },
769     "listAllMirrorMaker.mirrorMaker": {
770       "type": "object"
771     },
772     "deleteMirrorMaker": {
773       "type": "object",
774       "properties": {
775         "deleteMirrorMaker": {
776           "$ref": "#/definitions/deleteMirrorMaker.mirrorMaker"
777         }
778       }
779     },
780     "deleteMirrorMaker.mirrorMaker": {
781       "type": "object",
782       "properties": {
783         "name": {
784           "type": "string",
785           "description": "Existing Mirror Maker name",
786           "example": "centraltoedge2"
787         }
788       },
789       "required": [
790         "name"
791       ]
792     },
793     "createWhitelist": {
794       "type": "object",
795       "properties": {
796         "name": {
797           "type": "string",
798           "description": "Existing Mirror Maker name",
799           "example": "centraltoedge"
800         },
801         "namespace": {
802           "type": "string",
803           "description": "",
804           "example": "org.onap.dmaap.mr"
805         },
806         "whitelistTopicName": {
807           "type": "string",
808           "description": "Topic name to add to the whitelist",
809           "example": "org.onap.dmaap.mr.mrtesttopic2"
810         }
811       },
812       "required": [
813         "name",
814         "namespace",
815         "whitelistTopicName"
816       ]
817     },
818     "listallwhitelist": {
819       "type": "object",
820       "properties": {
821         "name": {
822           "type": "string",
823           "description": "Existing Mirror Maker name",
824           "example": "centraltoedge"
825         },
826         "namespace": {
827           "type": "string",
828           "description": "",
829           "example": "org.onap.dmaap.mr"
830         }
831       },
832       "required": [
833         "name",
834         "namespace"
835       ]
836     },
837     "deleteeWhitelist": {
838       "type": "object",
839       "properties": {
840         "name": {
841           "type": "string",
842           "description": "Existing Mirror Maker name",
843           "example": "centraltoedge"
844         },
845         "namespace": {
846           "type": "string",
847           "description": "",
848           "example": "org.onap.dmaap.mr"
849         },
850         "whitelistTopicName": {
851           "type": "string",
852           "description": "Topic name to delete from the whitelist",
853           "example": "org.onap.dmaap.mr.mrtesttopic2"
854         }
855       },
856       "required": [
857         "name",
858         "namespace",
859         "whitelistTopicName"
860       ]
861     }
862   }
863 }