blob: 44a2716190072858b3ab631b786893e1eba1c203 [file] [log] [blame]
sunil.unnava23f58b62019-04-25 17:41:10 -04001{
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}