Swagger Integration
[dmaap/datarouter.git] / docs / apis / drAPI1.json
1 {
2   "swagger": "2.0",
3   "info": {
4     "description": "The DMaaP Data Router (DR) provisioning API defines two resource types - the feed and the subscription, each with JSON representations. The API models the provisioning data as a collection of feeds that are known to the DR (the feeds collection), with each feed containing a collection of the subscriptions to the feed. The standard HTTP operations (POST, GET, PUT, and DELETE), used in conjunction with these resource representations, allow an API user to create, get information about, modify, and delete feeds and subscriptions.",
5     "version": "2.1.0",
6     "title": "DMaaP DR Offered APIs"
7   },
8   "schemes": [
9     "https"
10   ],
11   "paths": {
12     "/": {
13       "post": {
14         "tags": [
15           "/"
16         ],
17         "summary": "Create a feed",
18         "description": "curl -k -X POST -H \"Content-Type:application/vnd.dmaap-dr.feed\" -H \"X-DMAAP-DR-ON-BEHALF-OF:{user}\"--data-ascii @createFeed.json https://{host}:{port}",
19         "operationId": "",
20         "consumes": [
21           "application/json"
22         ],
23         "produces": [
24           "application/json"
25         ],
26         "parameters": [
27           {
28             "in": "body",
29             "name": "Sample Body",
30             "description": "",
31             "schema": {
32               "$ref": "#/definitions/Feed"
33             }
34           }
35         ],
36         "responses": {
37           "200": {
38             "$ref": "#/responses/FeedResponse"
39           },
40           "400": {
41             "$ref": "#/responses/400"
42           },
43           "401": {
44             "$ref": "#/responses/401"
45           },
46           "403": {
47             "$ref": "#/responses/403"
48           },
49           "404": {
50             "$ref": "#/responses/404"
51           },
52           "406": {
53             "$ref": "#/responses/406"
54           },
55           "415": {
56             "$ref": "#/responses/415"
57           },
58           "500": {
59             "$ref": "#/responses/500"
60           },
61           "503": {
62             "$ref": "#/responses/503"
63           }
64         }
65       }
66     },
67     "/feed/{feedId}": {
68       "put": {
69         "tags": [
70           "/feed/{feedId}"
71         ],
72         "summary": "Update a feed",
73         "description": "curl -k -X PUT -H \"Content-Type: application/vnd.dmaap-dr.feed\" -H \"X-DMAAP-DR-ON-BEHALF-OF: {user}\" --data-ascii @updateFeed.json --location-trusted https://{host}:{port}/feed/{feedId}",
74         "consumes": [
75           "application/json"
76         ],
77         "produces": [
78           "application/json"
79         ],
80         "parameters": [
81           {
82             "name": "feedId",
83             "in": "path",
84             "description": "ID of feed",
85             "required": true,
86             "type": "integer",
87             "format": "int64"
88           },
89           {
90             "in": "body",
91             "name": "Sample Body",
92             "description": "",
93             "schema": {
94               "$ref": "#/definitions/UpdateFeed"
95             }
96           }
97         ],
98         "responses": {
99           "200": {
100             "$ref": "#/responses/200"
101           },
102           "400": {
103             "$ref": "#/responses/400"
104           },
105           "401": {
106             "$ref": "#/responses/401"
107           },
108           "403": {
109             "$ref": "#/responses/403"
110           },
111           "404": {
112             "$ref": "#/responses/404"
113           },
114           "406": {
115             "$ref": "#/responses/406"
116           },
117           "415": {
118             "$ref": "#/responses/415"
119           },
120           "500": {
121             "$ref": "#/responses/500"
122           },
123           "503": {
124             "$ref": "#/responses/503"
125           }
126         }
127       },
128       "get": {
129         "tags": [
130           "/feed/{feedId}"
131         ],
132         "summary": "Get a feed",
133         "description": "curl -k -H \"X-DMAAP-DR-ON-BEHALF-OF: {user}\" https://{host}:{port}/feed/{feedId}",
134         "produces": [
135           "application/json"
136         ],
137         "parameters": [
138           {
139             "name": "feedId",
140             "in": "path",
141             "description": "ID of feed",
142             "required": true,
143             "type": "integer",
144             "format": "int64"
145           }
146         ],
147         "responses": {
148           "200": {
149             "$ref": "#/responses/200"
150           },
151           "400": {
152             "$ref": "#/responses/400"
153           },
154           "401": {
155             "$ref": "#/responses/401"
156           },
157           "403": {
158             "$ref": "#/responses/403"
159           },
160           "404": {
161             "$ref": "#/responses/404"
162           },
163           "406": {
164             "$ref": "#/responses/406"
165           },
166           "415": {
167             "$ref": "#/responses/415"
168           },
169           "500": {
170             "$ref": "#/responses/500"
171           },
172           "503": {
173             "$ref": "#/responses/503"
174           }
175         }
176       },
177       "delete": {
178         "tags": [
179           "/feed/{feedId}"
180         ],
181         "summary": "Delete a feed",
182         "description": "curl -k -X DELETE -H \"X-DMAAP-DR-ON-BEHALF-OF: {user}\" https://{host}:{port}/feed/{feedId}",
183         "produces": [
184           "application/json"
185         ],
186         "parameters": [
187           {
188             "name": "feedId",
189             "in": "path",
190             "description": "ID of feed",
191             "required": true,
192             "type": "integer",
193             "format": "int64"
194           }
195         ],
196         "responses": {
197           "200": {
198             "$ref": "#/responses/200"
199           },
200           "400": {
201             "$ref": "#/responses/400"
202           },
203           "401": {
204             "$ref": "#/responses/401"
205           },
206           "403": {
207             "$ref": "#/responses/403"
208           },
209           "404": {
210             "$ref": "#/responses/404"
211           },
212           "406": {
213             "$ref": "#/responses/406"
214           },
215           "415": {
216             "$ref": "#/responses/415"
217           },
218           "500": {
219             "$ref": "#/responses/500"
220           },
221           "503": {
222             "$ref": "#/responses/503"
223           }
224         }
225       }
226     },
227     "/subscribe/{feedId}": {
228       "post": {
229         "tags": [
230           "/subscribe/{feedId}"
231         ],
232         "summary": "Subscribe to feed",
233         "description": "curl -k -X POST -H \"Content-Type:application/vnd.dmaap-dr.subscription\" -H \"X-DMAAP-DR-ON-BEHALF-OF:{user}\" --data-ascii @addSubscriber.json https://{host}:{port}/subscribe/{feedId}",
234         "consumes": [
235           "application/json"
236         ],
237         "produces": [
238           "application/json"
239         ],
240         "parameters": [
241           {
242             "name": "feedId",
243             "in": "path",
244             "description": "ID of feed",
245             "required": true,
246             "type": "integer",
247             "format": "int64"
248           },
249           {
250             "in": "body",
251             "name": "Sample Body",
252             "description": "",
253             "schema": {
254               "$ref": "#/definitions/Subscribe"
255             }
256           }
257         ],
258         "responses": {
259           "200": {
260             "$ref": "#/responses/200"
261           },
262           "400": {
263             "$ref": "#/responses/400"
264           },
265           "401": {
266             "$ref": "#/responses/401"
267           },
268           "403": {
269             "$ref": "#/responses/403"
270           },
271           "404": {
272             "$ref": "#/responses/404"
273           },
274           "406": {
275             "$ref": "#/responses/406"
276           },
277           "415": {
278             "$ref": "#/responses/415"
279           },
280           "500": {
281             "$ref": "#/responses/500"
282           },
283           "503": {
284             "$ref": "#/responses/503"
285           }
286         }
287       }
288     },
289     "/subs/{subId}": {
290       "put": {
291         "tags": [
292           "/subs/{subId}"
293         ],
294         "summary": "Update a subscription to a feed",
295         "description": "curl -k -X PUT -H \"Content-Type:application/vnd.dmaap-dr.subscription\" -H \"X-DMAAP-DR-ON-BEHALF-OF:{user}\" --data-ascii @updateSubscriber.json https://{host}:{port}/subs/{subId}",
296         "consumes": [
297           "application/json"
298         ],
299         "produces": [
300           "application/json"
301         ],
302         "parameters": [
303           {
304             "name": "subId",
305             "in": "path",
306             "description": "ID of subscription",
307             "required": true,
308             "type": "integer",
309             "format": "int64"
310           },
311           {
312             "in": "body",
313             "name": "Sample Body",
314             "description": "",
315             "schema": {
316               "$ref": "#/definitions/Subs"
317             }
318           }
319         ],
320         "responses": {
321           "200": {
322             "$ref": "#/responses/200"
323           },
324           "400": {
325             "$ref": "#/responses/400"
326           },
327           "401": {
328             "$ref": "#/responses/401"
329           },
330           "403": {
331             "$ref": "#/responses/403"
332           },
333           "404": {
334             "$ref": "#/responses/404"
335           },
336           "406": {
337             "$ref": "#/responses/406"
338           },
339           "415": {
340             "$ref": "#/responses/415"
341           },
342           "500": {
343             "$ref": "#/responses/500"
344           },
345           "503": {
346             "$ref": "#/responses/503"
347           }
348         }
349       },
350       "get": {
351         "tags": [
352           "/subs/{subId}"
353         ],
354         "summary": "Retrieve a representation of the specified subscription",
355         "description": "curl -k -H \"X-DMAAP-DR-ON-BEHALF-OF:{user}\" https://{host}:{port}/subs/{subId}",
356         "produces": [
357           "application/json"
358         ],
359         "parameters": [
360           {
361             "name": "subId",
362             "in": "path",
363             "description": "ID of subscription",
364             "required": true,
365             "type": "integer",
366             "format": "int64"
367           }
368         ],
369         "responses": {
370           "200": {
371             "$ref": "#/responses/200"
372           },
373           "400": {
374             "$ref": "#/responses/400"
375           },
376           "401": {
377             "$ref": "#/responses/401"
378           },
379           "403": {
380             "$ref": "#/responses/403"
381           },
382           "404": {
383             "$ref": "#/responses/404"
384           },
385           "406": {
386             "$ref": "#/responses/406"
387           },
388           "415": {
389             "$ref": "#/responses/415"
390           },
391           "500": {
392             "$ref": "#/responses/500"
393           },
394           "503": {
395             "$ref": "#/responses/503"
396           }
397         }
398       },
399       "delete": {
400         "tags": [
401           "/subs/{subId}"
402         ],
403         "summary": "Delete a specified subscription",
404         "description": "curl -k -X DELETE -H \"X-DMAAP-DR-ON-BEHALF-OF:{user}\" https://{host}:{port}/subs/{subId}",
405         "parameters": [
406           {
407             "name": "subId",
408             "in": "path",
409             "description": "ID of subscription",
410             "required": true,
411             "type": "integer",
412             "format": "int64"
413           }
414         ],
415         "responses": {
416           "200": {
417             "$ref": "#/responses/200"
418           },
419           "400": {
420             "$ref": "#/responses/400"
421           },
422           "401": {
423             "$ref": "#/responses/401"
424           },
425           "403": {
426             "$ref": "#/responses/403"
427           },
428           "404": {
429             "$ref": "#/responses/404"
430           },
431           "406": {
432             "$ref": "#/responses/406"
433           },
434           "415": {
435             "$ref": "#/responses/415"
436           },
437           "500": {
438             "$ref": "#/responses/500"
439           },
440           "503": {
441             "$ref": "#/responses/503"
442           }
443         }
444       }
445     },
446     "/publish/{feedId}/{fileId}": {
447       "put": {
448         "tags": [
449           "/publish/{feedId}/{fileId}"
450         ],
451         "summary": "Publish data to a given feed",
452         "description": "curl -k -X PUT --user {user}:{password} -H \"Content-Type:application/octet-stream\"  -H \"X-DMAAP-DR-META:{\"filetype\":\"txt\"}\" --data-binary @sampleFile.txt --post301 --location-trusted https://{host}:{port}/publish/{feedId}/{fileId}",
453         "parameters": [
454           {
455             "name": "feedId",
456             "in": "path",
457             "description": "ID of feed",
458             "required": true,
459             "type": "integer",
460             "format": "int64"
461           },
462           {
463             "name": "fileId",
464             "in": "path",
465             "description": "ID of file",
466             "required": true,
467             "type": "integer",
468             "format": "int64"
469           }
470         ],
471         "responses": {
472           "200": {
473             "$ref": "#/responses/200"
474           },
475           "400": {
476             "$ref": "#/responses/400"
477           },
478           "401": {
479             "$ref": "#/responses/401"
480           },
481           "403": {
482             "$ref": "#/responses/403"
483           },
484           "404": {
485             "$ref": "#/responses/404"
486           },
487           "406": {
488             "$ref": "#/responses/406"
489           },
490           "415": {
491             "$ref": "#/responses/415"
492           },
493           "500": {
494             "$ref": "#/responses/500"
495           },
496           "503": {
497             "$ref": "#/responses/503"
498           }
499         }
500       },
501       "delete": {
502         "tags": [
503           "/publish/{feedId}/{fileId}"
504         ],
505         "summary": "Deletes/retracts a specified published file",
506         "description": "curl -k -X DELETE --user {user}:{password} --location-trusted https://{host}:{port}/publish/{feedId}/{fileId}",
507         "parameters": [
508           {
509             "name": "feedId",
510             "in": "path",
511             "description": "ID of feed",
512             "required": true,
513             "type": "integer",
514             "format": "int64"
515           },
516           {
517             "name": "fileId",
518             "in": "path",
519             "description": "ID of file",
520             "required": true,
521             "type": "integer",
522             "format": "int64"
523           }
524         ],
525         "responses": {
526           "200": {
527             "$ref": "#/responses/200"
528           },
529           "400": {
530             "$ref": "#/responses/400"
531           },
532           "401": {
533             "$ref": "#/responses/401"
534           },
535           "403": {
536             "$ref": "#/responses/403"
537           },
538           "404": {
539             "$ref": "#/responses/404"
540           },
541           "406": {
542             "$ref": "#/responses/406"
543           },
544           "415": {
545             "$ref": "#/responses/415"
546           },
547           "500": {
548             "$ref": "#/responses/500"
549           },
550           "503": {
551             "$ref": "#/responses/503"
552           }
553         }
554       }
555     },
556     "/feedlog/{feedId}": {
557       "get": {
558         "tags": [
559           "/feedlog/{feedId}?{queryParam}"
560         ],
561         "summary": "View logging information for specified feeds, which can be narrowed down with further parameters",
562         "description": "curl -k https://{host}:{port}/feedlog/{feedId}?statusCode=204``",
563         "parameters": [
564           {
565             "name": "feedId",
566             "in": "path",
567             "description": "ID of feed",
568             "required": true,
569             "type": "integer",
570             "format": "int64"
571           },
572           {
573             "name": "queryParam",
574             "in": "query",
575             "description": "Query for feedlog",
576             "required": true,
577             "type": "string"
578           }
579         ],
580         "responses": {
581           "200": {
582             "$ref": "#/responses/200"
583           },
584           "400": {
585             "$ref": "#/responses/400"
586           },
587           "401": {
588             "$ref": "#/responses/401"
589           },
590           "403": {
591             "$ref": "#/responses/403"
592           },
593           "404": {
594             "$ref": "#/responses/404"
595           },
596           "406": {
597             "$ref": "#/responses/406"
598           },
599           "415": {
600             "$ref": "#/responses/415"
601           },
602           "500": {
603             "$ref": "#/responses/500"
604           },
605           "503": {
606             "$ref": "#/responses/503"
607           }
608         }
609       }
610     },
611     "/sublog/{subId}": {
612       "get": {
613         "tags": [
614           "/sublog/{subId}?{queryParam}"
615         ],
616         "summary": "View logging information for specified subscriptions, which can be narrowed down with further parameters",
617         "description": "curl -k https://{host}:{port}/sublog/{subId}?statusCode=204",
618         "parameters": [
619           {
620             "name": "subId",
621             "in": "path",
622             "description": "ID of subscription",
623             "required": true,
624             "type": "integer",
625             "format": "int64"
626           },
627           {
628             "name": "queryParam",
629             "in": "query",
630             "description": "Query for sublog",
631             "required": true,
632             "type": "string"
633           }
634         ],
635         "responses": {
636           "200": {
637             "$ref": "#/responses/200"
638           },
639           "400": {
640             "$ref": "#/responses/400"
641           },
642           "401": {
643             "$ref": "#/responses/401"
644           },
645           "403": {
646             "$ref": "#/responses/403"
647           },
648           "404": {
649             "$ref": "#/responses/404"
650           },
651           "406": {
652             "$ref": "#/responses/406"
653           },
654           "415": {
655             "$ref": "#/responses/415"
656           },
657           "500": {
658             "$ref": "#/responses/500"
659           },
660           "503": {
661             "$ref": "#/responses/503"
662           }
663         }
664       }
665     }
666   },
667   "responses": {
668     "200": {
669       "description": "Success Response"
670     },
671     "400": {
672       "description": "Bad request - The request is defective in some way. \nPossible causes: \n * JSON object in request body does not conform to the spec. \n* Invalid parameter value in query string"
673     },
674     "401": {
675       "description": "Indicates that the request was missing the Authorization header or, if the header was presented, the credentials were not acceptable"
676     },
677     "403": {
678       "description": "Forbidden - The request failed  authorization. \nPossible causes: \n* Request originated from an unauthorized IP address \n* Client certificate subject is not on the API’s authorized list. \n* X-DMAAP-DR-ON-BEHALF-OF identity is not authorized to perform"
679     },
680     "404": {
681       "description": "Not Found - The Request-URI does not point to a resource that is known to the API. "
682     },
683     "406": {
684       "description": "Not Acceptable - The request has an Accept header indicating that the requester will not accept a response with application/vnd.dmaap-dr.log-list content."
685     },
686     "415": {
687       "description": "Unsupported Media Type - The media type in the requests Content-Type header is not appropriate for the request."
688     },
689     "500": {
690       "description": "Internal Server Error - The DR API server encountered an internal error and could not complete the request."
691     },
692     "503": {
693       "description": "Service Unavailable - The DR API service is currently unavailable"
694     },
695     "FeedResponse": {
696       "description": "Success Response",
697       "schema": {
698         "$ref": "#/definitions/FeedResponse"
699       }
700     }
701   },
702   "definitions": {
703     "FeedResponse": {
704       "type": "object",
705       "properties": {
706         "suspend": {
707           "type": "boolean",
708           "example": false
709         },
710         "groupid": {
711           "type": "integer",
712           "example": 0
713         },
714         "description": {
715           "type": "string",
716           "example": ""
717         },
718         "version": {
719           "type": "string",
720           "example": "v1.0"
721         },
722         "authorization": {
723           "type": "object",
724           "properties": {
725             "classification": {
726               "type": "string",
727               "example": "unclassified"
728             },
729             "endpoint_addrs": {
730               "type": "array",
731               "items": {
732                 "type": "object"
733               }
734             },
735             "endpoint_ids": {
736               "type": "array",
737               "items": {
738                 "type": "object",
739                 "properties": {
740                   "password": {
741                     "type": "string"
742                   },
743                   "id": {
744                     "type": "string"
745                   }
746                 }
747               },
748               "example": [
749                 {
750                   "password": "dradmin",
751                   "id": "dradmin"
752                 },
753                 {
754                   "password": "demo123456!",
755                   "id": "onap"
756                 }
757               ]
758             }
759           }
760         },
761         "name": {
762           "type": "string",
763           "example": "ONAP Data Feed"
764         },
765         "business_description": {
766           "type": "string",
767           "example": ""
768         },
769         "aaf_instance": {
770           "type": "string",
771           "example": "legacy"
772         },
773         "publisher": {
774           "type": "string",
775           "example": "dradmin"
776         },
777         "links": {
778           "type": "object",
779           "properties": {
780             "subscribe": {
781               "type": "string",
782               "example": "https://dmaap-dr-prov/subscribe/1"
783             },
784             "log": {
785               "type": "string",
786               "example": "https://dmaap-dr-prov/feedlog/1"
787             },
788             "publish": {
789               "type": "string",
790               "example": "https://dmaap-dr-prov/publish/1"
791             },
792             "self": {
793               "type": "string",
794               "example": "https://dmaap-dr-prov/feed/1"
795             }
796           }
797         }
798       }
799     },
800     "Subs": {
801       "type": "object",
802       "required": [
803         "delivery",
804         "metadataOnly",
805         "groupid"
806       ],
807       "properties": {
808         "delivery": {
809           "type": "object",
810           "properties": {
811             "url": {
812               "type": "string",
813               "example": "http://dmaap-dr-subscriber:7070/"
814             },
815             "user": {
816               "type": "string",
817               "example": "NEW_LOGIN"
818             },
819             "password": {
820               "type": "string",
821               "example": "NEW_PASSWORD"
822             },
823             "use100": {
824               "type": "boolean",
825               "example": false
826             }
827           }
828         },
829         "metadataOnly": {
830           "type": "boolean",
831           "example": true
832         },
833         "groupid": {
834           "type": "integer",
835           "example": 67
836         },
837         "follow_redirect": {
838           "type": "boolean",
839           "example": false
840         },
841         "decompress": {
842           "type": "boolean",
843           "example": false
844         }
845       },
846       "xml": {
847         "name": "Subs"
848       }
849     },
850     "Subscribe": {
851       "type": "object",
852       "required": [
853         "delivery",
854         "metadataOnly",
855         "groupid"
856       ],
857       "properties": {
858         "delivery": {
859           "type": "object",
860           "properties": {
861             "url": {
862               "type": "string",
863               "example": "http://dmaap-dr-subscriber:7070/"
864             },
865             "user": {
866               "type": "string",
867               "example": "LOGIN"
868             },
869             "password": {
870               "type": "string",
871               "example": "PASSWORD"
872             },
873             "use100": {
874               "type": "boolean",
875               "example": true
876             }
877           }
878         },
879         "metadataOnly": {
880           "type": "boolean",
881           "example": false
882         },
883         "groupid": {
884           "type": "integer",
885           "example": 22
886         },
887         "follow_redirect": {
888           "type": "boolean",
889           "example": false
890         },
891         "suspend": {
892           "type": "boolean",
893           "example": false
894         },
895         "decompress": {
896           "type": "boolean",
897           "example": true
898         }
899       },
900       "xml": {
901         "name": "Subscribe"
902       }
903     },
904     "Feed": {
905       "type": "object",
906       "required": [
907         "name",
908         "version",
909         "authorization"
910       ],
911       "properties": {
912         "name": {
913           "type": "string",
914           "example": "feed1"
915         },
916         "version": {
917           "type": "string",
918           "example": "v1.0.0"
919         },
920         "description": {
921           "type": "string",
922           "example": "Feed Description"
923         },
924         "business description": {
925           "type": "string",
926           "example": "Feed Description"
927         },
928         "suspend": {
929           "type": "boolean",
930           "example": false
931         },
932         "deleted": {
933           "type": "boolean",
934           "example": false
935         },
936         "changeowner": {
937           "type": "boolean",
938           "example": true
939         },
940         "authorization": {
941           "type": "object",
942           "properties": {
943             "classification": {
944               "type": "string",
945               "example": "unclassified"
946             },
947             "endpoint_addrs": {
948               "type": "array",
949               "items": {
950                 "type": "object"
951               }
952             },
953             "endpoint_ids": {
954               "type": "array",
955               "items": {
956                 "type": "object",
957                 "properties": {
958                   "password": {
959                     "type": "string",
960                     "example": "dradmin"
961                   },
962                   "id": {
963                     "type": "string",
964                     "example": "dradmin"
965                   }
966                 }
967               }
968             }
969           }
970         }
971       },
972       "xml": {
973         "name": "Feed"
974       }
975     },
976     "UpdateFeed": {
977       "type": "object",
978       "required": [
979         "name",
980         "authorization"
981       ],
982       "properties": {
983         "name": {
984           "type": "string",
985           "example": "feed1"
986         },
987         "description": {
988           "type": "string",
989           "example": "Feed Description"
990         },
991         "business description": {
992           "type": "string",
993           "example": "Feed Description"
994         },
995         "suspend": {
996           "type": "boolean",
997           "example": false
998         },
999         "groupid": {
1000           "type": "integer",
1001           "example": 33
1002         },
1003         "authorization": {
1004           "type": "object",
1005           "properties": {
1006             "classification": {
1007               "type": "string",
1008               "example": "unclassified"
1009             },
1010             "endpoint_addrs": {
1011               "type": "string",
1012               "example": "[ 10.1.2.3 ]"
1013             },
1014             "endpoint_ids": {
1015               "type": "array",
1016               "items": {
1017                 "type": "object",
1018                 "properties": {
1019                   "password": {
1020                     "type": "string"
1021                   },
1022                   "id": {
1023                     "type": "string"
1024                   }
1025                 }
1026               },
1027               "example": [
1028                 {
1029                   "password": "dradmin",
1030                   "id": "dradmin"
1031                 },
1032                 {
1033                   "password": "demo123456!",
1034                   "id": "onap"
1035                 }
1036               ]
1037             }
1038           }
1039         }
1040       },
1041       "xml": {
1042         "name": "UpdateFeed"
1043       }
1044     }
1045   }
1046 }