b7a65632e76cb4d8ca9f8ba595447b39d6fe92e9
[cps.git] / docs / api / swagger / ncmp / openapi.yaml
1 openapi: 3.0.1
2 info:
3   title: NCMP to CPS Proxy API
4   description: NCMP to CPS Proxy API
5   version: "1.0"
6 servers:
7 - url: /ncmp
8 paths:
9   /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational:
10     get:
11       tags:
12       - network-cm-proxy
13       summary: Get resource data from pass-through operational for cm handle
14       description: Get resource data from pass-through operational for given cm handle
15       operationId: getResourceDataOperationalForCmHandle
16       parameters:
17       - name: cm-handle
18         in: path
19         description: "The identifier for a network function, network element, subnetwork\
20           \ or any other cm object by managed Network CM Proxy"
21         required: true
22         schema:
23           type: string
24           example: my-cm-handle
25       - name: resourceIdentifier
26         in: query
27         description: The format of resource identifier depend on the associated DMI
28           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
29           it can really be anything.
30         required: true
31         allowReserved: true
32         schema:
33           type: string
34         examples:
35           sample 1:
36             value:
37               resourceIdentifier: \shops\bookstore
38           sample 2:
39             value:
40               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
41           sample 3:
42             value:
43               resourceIdentifier: "parent=shops,child=bookstore"
44       - name: Accept
45         in: header
46         description: "Accept parameter for response, if accept parameter is null,\
47           \ that means client can accept any format."
48         required: false
49         schema:
50           type: string
51           enum:
52           - application/json
53           - application/yang-data+json
54       - name: options
55         in: query
56         description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
57           \ in parenthesis'()'. The format of options parameter depend on the associated\
58           \ DMI Plugin implementation."
59         required: false
60         allowReserved: true
61         schema:
62           type: string
63         examples:
64           sample 1:
65             value:
66               options: (depth=3)
67           sample 2:
68             value:
69               options: (fields=book)
70           sample 3:
71             value:
72               options: "(depth=2,fields=book/authors)"
73       responses:
74         "200":
75           description: OK
76           content:
77             application/json:
78               schema:
79                 type: object
80               examples:
81                 dataSampleResponse:
82                   $ref: '#/components/examples/dataSampleResponse'
83         "400":
84           description: Bad Request
85           content:
86             application/json:
87               schema:
88                 $ref: '#/components/schemas/ErrorMessage'
89               example:
90                 status: 400 BAD_REQUEST
91                 message: Bad request error message
92                 details: Bad request error details
93         "401":
94           description: Unauthorized
95           content:
96             application/json:
97               schema:
98                 $ref: '#/components/schemas/ErrorMessage'
99               example:
100                 status: 401
101                 message: Unauthorized error message
102                 details: Unauthorized error details
103         "403":
104           description: Forbidden
105           content:
106             application/json:
107               schema:
108                 $ref: '#/components/schemas/ErrorMessage'
109               example:
110                 status: 403
111                 message: Forbidden error message
112                 details: Forbidden error details
113         "500":
114           description: Internal Server Error
115           content:
116             application/json:
117               schema:
118                 $ref: '#/components/schemas/ErrorMessage'
119               example:
120                 status: 500
121                 message: Internal Server Error
122                 details: Internal Server Error occurred
123   /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running:
124     get:
125       tags:
126       - network-cm-proxy
127       summary: Get resource data from pass-through running for cm handle
128       description: Get resource data from pass-through running for given cm handle
129       operationId: getResourceDataRunningForCmHandle
130       parameters:
131       - name: cm-handle
132         in: path
133         description: "The identifier for a network function, network element, subnetwork\
134           \ or any other cm object by managed Network CM Proxy"
135         required: true
136         schema:
137           type: string
138           example: my-cm-handle
139       - name: resourceIdentifier
140         in: query
141         description: The format of resource identifier depend on the associated DMI
142           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
143           it can really be anything.
144         required: true
145         allowReserved: true
146         schema:
147           type: string
148         examples:
149           sample 1:
150             value:
151               resourceIdentifier: \shops\bookstore
152           sample 2:
153             value:
154               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
155           sample 3:
156             value:
157               resourceIdentifier: "parent=shops,child=bookstore"
158       - name: Accept
159         in: header
160         description: "Accept parameter for response, if accept parameter is null,\
161           \ that means client can accept any format."
162         required: false
163         schema:
164           type: string
165           enum:
166           - application/json
167           - application/yang-data+json
168       - name: options
169         in: query
170         description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
171           \ in parenthesis'()'. The format of options parameter depend on the associated\
172           \ DMI Plugin implementation."
173         required: false
174         allowReserved: true
175         schema:
176           type: string
177         examples:
178           sample 1:
179             value:
180               options: (depth=3)
181           sample 2:
182             value:
183               options: (fields=book)
184           sample 3:
185             value:
186               options: "(depth=2,fields=book/authors)"
187       responses:
188         "200":
189           description: OK
190           content:
191             application/json:
192               schema:
193                 type: object
194               examples:
195                 dataSampleResponse:
196                   $ref: '#/components/examples/dataSampleResponse'
197         "400":
198           description: Bad Request
199           content:
200             application/json:
201               schema:
202                 $ref: '#/components/schemas/ErrorMessage'
203               example:
204                 status: 400 BAD_REQUEST
205                 message: Bad request error message
206                 details: Bad request error details
207         "401":
208           description: Unauthorized
209           content:
210             application/json:
211               schema:
212                 $ref: '#/components/schemas/ErrorMessage'
213               example:
214                 status: 401
215                 message: Unauthorized error message
216                 details: Unauthorized error details
217         "403":
218           description: Forbidden
219           content:
220             application/json:
221               schema:
222                 $ref: '#/components/schemas/ErrorMessage'
223               example:
224                 status: 403
225                 message: Forbidden error message
226                 details: Forbidden error details
227         "500":
228           description: Internal Server Error
229           content:
230             application/json:
231               schema:
232                 $ref: '#/components/schemas/ErrorMessage'
233               example:
234                 status: 500
235                 message: Internal Server Error
236                 details: Internal Server Error occurred
237     put:
238       tags:
239       - network-cm-proxy
240       summary: Update resource data from pass-through running for a cm handle
241       description: Update resource data from pass-through running for the given cm
242         handle
243       operationId: updateResourceDataRunningForCmHandle
244       parameters:
245       - name: cm-handle
246         in: path
247         description: "The identifier for a network function, network element, subnetwork\
248           \ or any other cm object by managed Network CM Proxy"
249         required: true
250         schema:
251           type: string
252           example: my-cm-handle
253       - name: resourceIdentifier
254         in: query
255         description: The format of resource identifier depend on the associated DMI
256           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
257           it can really be anything.
258         required: true
259         allowReserved: true
260         schema:
261           type: string
262         examples:
263           sample 1:
264             value:
265               resourceIdentifier: \shops\bookstore
266           sample 2:
267             value:
268               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
269           sample 3:
270             value:
271               resourceIdentifier: "parent=shops,child=bookstore"
272       - name: Content-Type
273         in: header
274         description: "Content parameter for request, if content parameter is null,\
275           \ default value is application/json."
276         required: false
277         schema:
278           type: string
279           example: application/yang-data+json
280           default: application/json
281       requestBody:
282         content:
283           application/json:
284             schema:
285               type: object
286             examples:
287               dataSampleRequest:
288                 $ref: '#/components/examples/dataSampleRequest'
289           application/yang-data+json:
290             schema:
291               type: object
292             examples:
293               dataSampleRequest:
294                 $ref: '#/components/examples/dataSampleRequest'
295         required: true
296       responses:
297         "200":
298           description: OK
299           content:
300             application/json:
301               schema:
302                 type: object
303         "400":
304           description: Bad Request
305           content:
306             application/json:
307               schema:
308                 $ref: '#/components/schemas/ErrorMessage'
309               example:
310                 status: 400 BAD_REQUEST
311                 message: Bad request error message
312                 details: Bad request error details
313         "401":
314           description: Unauthorized
315           content:
316             application/json:
317               schema:
318                 $ref: '#/components/schemas/ErrorMessage'
319               example:
320                 status: 401
321                 message: Unauthorized error message
322                 details: Unauthorized error details
323         "403":
324           description: Forbidden
325           content:
326             application/json:
327               schema:
328                 $ref: '#/components/schemas/ErrorMessage'
329               example:
330                 status: 403
331                 message: Forbidden error message
332                 details: Forbidden error details
333         "500":
334           description: Internal Server Error
335           content:
336             application/json:
337               schema:
338                 $ref: '#/components/schemas/ErrorMessage'
339               example:
340                 status: 500
341                 message: Internal Server Error
342                 details: Internal Server Error occurred
343     post:
344       tags:
345       - network-cm-proxy
346       summary: create resource data from pass-through running for cm handle
347       description: create resource data from pass-through running for given cm handle
348       operationId: createResourceDataRunningForCmHandle
349       parameters:
350       - name: cm-handle
351         in: path
352         description: "The identifier for a network function, network element, subnetwork\
353           \ or any other cm object by managed Network CM Proxy"
354         required: true
355         schema:
356           type: string
357           example: my-cm-handle
358       - name: resourceIdentifier
359         in: query
360         description: The format of resource identifier depend on the associated DMI
361           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
362           it can really be anything.
363         required: true
364         allowReserved: true
365         schema:
366           type: string
367         examples:
368           sample 1:
369             value:
370               resourceIdentifier: \shops\bookstore
371           sample 2:
372             value:
373               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
374           sample 3:
375             value:
376               resourceIdentifier: "parent=shops,child=bookstore"
377       - name: Content-Type
378         in: header
379         description: "Content parameter for request, if content parameter is null,\
380           \ default value is application/json."
381         required: false
382         schema:
383           type: string
384           example: application/yang-data+json
385           default: application/json
386       requestBody:
387         content:
388           application/json:
389             schema:
390               type: object
391             examples:
392               dataSampleRequest:
393                 $ref: '#/components/examples/dataSampleRequest'
394           application/yang-data+json:
395             schema:
396               type: object
397             examples:
398               dataSampleRequest:
399                 $ref: '#/components/examples/dataSampleRequest'
400         required: true
401       responses:
402         "201":
403           description: Created
404           content: {}
405         "400":
406           description: Bad Request
407           content:
408             application/json:
409               schema:
410                 $ref: '#/components/schemas/ErrorMessage'
411               example:
412                 status: 400 BAD_REQUEST
413                 message: Bad request error message
414                 details: Bad request error details
415         "401":
416           description: Unauthorized
417           content:
418             application/json:
419               schema:
420                 $ref: '#/components/schemas/ErrorMessage'
421               example:
422                 status: 401
423                 message: Unauthorized error message
424                 details: Unauthorized error details
425         "403":
426           description: Forbidden
427           content:
428             application/json:
429               schema:
430                 $ref: '#/components/schemas/ErrorMessage'
431               example:
432                 status: 403
433                 message: Forbidden error message
434                 details: Forbidden error details
435         "500":
436           description: Internal Server Error
437           content:
438             application/json:
439               schema:
440                 $ref: '#/components/schemas/ErrorMessage'
441               example:
442                 status: 500
443                 message: Internal Server Error
444                 details: Internal Server Error occurred
445     delete:
446       tags:
447       - network-cm-proxy
448       summary: Delete resource data
449       description: Delete resource data from pass-through running for a given cm handle
450       operationId: deleteResourceDataRunningForCmHandle
451       parameters:
452       - name: cm-handle
453         in: path
454         description: "The identifier for a network function, network element, subnetwork\
455           \ or any other cm object by managed Network CM Proxy"
456         required: true
457         schema:
458           type: string
459           example: my-cm-handle
460       - name: resourceIdentifier
461         in: query
462         description: The format of resource identifier depend on the associated DMI
463           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
464           it can really be anything.
465         required: true
466         allowReserved: true
467         schema:
468           type: string
469         examples:
470           sample 1:
471             value:
472               resourceIdentifier: \shops\bookstore
473           sample 2:
474             value:
475               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
476           sample 3:
477             value:
478               resourceIdentifier: "parent=shops,child=bookstore"
479       - name: Content-Type
480         in: header
481         description: "Content parameter for request, if content parameter is null,\
482           \ default value is application/json."
483         required: false
484         schema:
485           type: string
486           example: application/yang-data+json
487           default: application/json
488       responses:
489         "204":
490           description: No Content
491           content: {}
492         "400":
493           description: Bad Request
494           content:
495             application/json:
496               schema:
497                 $ref: '#/components/schemas/ErrorMessage'
498               example:
499                 status: 400 BAD_REQUEST
500                 message: Bad request error message
501                 details: Bad request error details
502         "401":
503           description: Unauthorized
504           content:
505             application/json:
506               schema:
507                 $ref: '#/components/schemas/ErrorMessage'
508               example:
509                 status: 401
510                 message: Unauthorized error message
511                 details: Unauthorized error details
512         "403":
513           description: Forbidden
514           content:
515             application/json:
516               schema:
517                 $ref: '#/components/schemas/ErrorMessage'
518               example:
519                 status: 403
520                 message: Forbidden error message
521                 details: Forbidden error details
522         "404":
523           description: The specified resource was not found
524           content:
525             application/json:
526               schema:
527                 $ref: '#/components/schemas/ErrorMessage'
528               example:
529                 status: 400
530                 message: Not found error message
531                 details: Not found error details
532         "500":
533           description: Internal Server Error
534           content:
535             application/json:
536               schema:
537                 $ref: '#/components/schemas/ErrorMessage'
538               example:
539                 status: 500
540                 message: Internal Server Error
541                 details: Internal Server Error occurred
542     patch:
543       tags:
544       - network-cm-proxy
545       summary: Patch resource data from pass-through running
546       description: Patch resource data from pass-through running for the given cm
547         handle
548       operationId: patchResourceDataRunningForCmHandle
549       parameters:
550       - name: cm-handle
551         in: path
552         description: "The identifier for a network function, network element, subnetwork\
553           \ or any other cm object by managed Network CM Proxy"
554         required: true
555         schema:
556           type: string
557           example: my-cm-handle
558       - name: resourceIdentifier
559         in: query
560         description: The format of resource identifier depend on the associated DMI
561           Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
562           it can really be anything.
563         required: true
564         allowReserved: true
565         schema:
566           type: string
567         examples:
568           sample 1:
569             value:
570               resourceIdentifier: \shops\bookstore
571           sample 2:
572             value:
573               resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
574           sample 3:
575             value:
576               resourceIdentifier: "parent=shops,child=bookstore"
577       - name: Content-Type
578         in: header
579         description: "Content parameter for request, if content parameter is null,\
580           \ default value is application/json."
581         required: false
582         schema:
583           type: string
584           example: application/yang-data+json
585           default: application/json
586       requestBody:
587         content:
588           '*/*':
589             schema:
590               type: object
591             examples:
592               dataSampleRequest:
593                 $ref: '#/components/examples/dataSamplePatchRequest'
594         required: true
595       responses:
596         "200":
597           description: OK
598           content:
599             application/json:
600               schema:
601                 type: object
602         "400":
603           description: Bad Request
604           content:
605             application/json:
606               schema:
607                 $ref: '#/components/schemas/ErrorMessage'
608               example:
609                 status: 400 BAD_REQUEST
610                 message: Bad request error message
611                 details: Bad request error details
612         "401":
613           description: Unauthorized
614           content:
615             application/json:
616               schema:
617                 $ref: '#/components/schemas/ErrorMessage'
618               example:
619                 status: 401
620                 message: Unauthorized error message
621                 details: Unauthorized error details
622         "403":
623           description: Forbidden
624           content:
625             application/json:
626               schema:
627                 $ref: '#/components/schemas/ErrorMessage'
628               example:
629                 status: 403
630                 message: Forbidden error message
631                 details: Forbidden error details
632         "500":
633           description: Internal Server Error
634           content:
635             application/json:
636               schema:
637                 $ref: '#/components/schemas/ErrorMessage'
638               example:
639                 status: 500
640                 message: Internal Server Error
641                 details: Internal Server Error occurred
642   /v1/ch/{cm-handle}/modules:
643     get:
644       tags:
645       - network-cm-proxy
646       summary: Fetch all module references (name and revision) for a given cm handle
647       description: fetch all module references (name and revision) for a given cm
648         handle
649       operationId: getModuleReferencesByCmHandle
650       parameters:
651       - name: cm-handle
652         in: path
653         description: "The identifier for a network function, network element, subnetwork\
654           \ or any other cm object by managed Network CM Proxy"
655         required: true
656         schema:
657           type: string
658           example: my-cm-handle
659       responses:
660         "200":
661           description: OK
662           content:
663             application/json:
664               schema:
665                 type: array
666                 items:
667                   $ref: '#/components/schemas/ModuleReference'
668         "400":
669           description: Bad Request
670           content:
671             application/json:
672               schema:
673                 $ref: '#/components/schemas/ErrorMessage'
674               example:
675                 status: 400 BAD_REQUEST
676                 message: Bad request error message
677                 details: Bad request error details
678         "401":
679           description: Unauthorized
680           content:
681             application/json:
682               schema:
683                 $ref: '#/components/schemas/ErrorMessage'
684               example:
685                 status: 401
686                 message: Unauthorized error message
687                 details: Unauthorized error details
688         "403":
689           description: Forbidden
690           content:
691             application/json:
692               schema:
693                 $ref: '#/components/schemas/ErrorMessage'
694               example:
695                 status: 403
696                 message: Forbidden error message
697                 details: Forbidden error details
698         "500":
699           description: Internal Server Error
700           content:
701             application/json:
702               schema:
703                 $ref: '#/components/schemas/ErrorMessage'
704               example:
705                 status: 500
706                 message: Internal Server Error
707                 details: Internal Server Error occurred
708   /v1/ch/searches:
709     post:
710       tags:
711       - network-cm-proxy
712       summary: Execute cm handle search using the available conditions
713       description: Execute cm handle searches using 'hasAllModules' condition to get
714         all cm handles for the given module names
715       operationId: executeCmHandleSearch
716       requestBody:
717         content:
718           application/json:
719             schema:
720               $ref: '#/components/schemas/Conditions'
721         required: true
722       responses:
723         "200":
724           description: OK
725           content:
726             application/json:
727               schema:
728                 $ref: '#/components/schemas/CmHandles'
729         "400":
730           description: Bad Request
731           content:
732             application/json:
733               schema:
734                 $ref: '#/components/schemas/ErrorMessage'
735               example:
736                 status: 400 BAD_REQUEST
737                 message: Bad request error message
738                 details: Bad request error details
739         "401":
740           description: Unauthorized
741           content:
742             application/json:
743               schema:
744                 $ref: '#/components/schemas/ErrorMessage'
745               example:
746                 status: 401
747                 message: Unauthorized error message
748                 details: Unauthorized error details
749         "403":
750           description: Forbidden
751           content:
752             application/json:
753               schema:
754                 $ref: '#/components/schemas/ErrorMessage'
755               example:
756                 status: 403
757                 message: Forbidden error message
758                 details: Forbidden error details
759         "500":
760           description: Internal Server Error
761           content:
762             application/json:
763               schema:
764                 $ref: '#/components/schemas/ErrorMessage'
765               example:
766                 status: 500
767                 message: Internal Server Error
768                 details: Internal Server Error occurred
769   /v1/ch/{cm-handle}:
770     get:
771       tags:
772       - network-cm-proxy
773       summary: Retrieve CM handle details
774       description: Retrieve CM handle details and properties by cm handle id
775       operationId: retrieveCmHandleDetailsById
776       parameters:
777       - name: cm-handle
778         in: path
779         description: "The identifier for a network function, network element, subnetwork\
780           \ or any other cm object by managed Network CM Proxy"
781         required: true
782         schema:
783           type: string
784           example: my-cm-handle
785       responses:
786         "200":
787           description: OK
788           content:
789             application/json:
790               schema:
791                 $ref: '#/components/schemas/RestOutputCmHandle'
792         "400":
793           description: Bad Request
794           content:
795             application/json:
796               schema:
797                 $ref: '#/components/schemas/ErrorMessage'
798               example:
799                 status: 400 BAD_REQUEST
800                 message: Bad request error message
801                 details: Bad request error details
802         "401":
803           description: Unauthorized
804           content:
805             application/json:
806               schema:
807                 $ref: '#/components/schemas/ErrorMessage'
808               example:
809                 status: 401
810                 message: Unauthorized error message
811                 details: Unauthorized error details
812         "403":
813           description: Forbidden
814           content:
815             application/json:
816               schema:
817                 $ref: '#/components/schemas/ErrorMessage'
818               example:
819                 status: 403
820                 message: Forbidden error message
821                 details: Forbidden error details
822         "404":
823           description: The specified resource was not found
824           content:
825             application/json:
826               schema:
827                 $ref: '#/components/schemas/ErrorMessage'
828               example:
829                 status: 400
830                 message: Not found error message
831                 details: Not found error details
832         "500":
833           description: Internal Server Error
834           content:
835             application/json:
836               schema:
837                 $ref: '#/components/schemas/ErrorMessage'
838               example:
839                 status: 500
840                 message: Internal Server Error
841                 details: Internal Server Error occurred
842 components:
843   schemas:
844     ErrorMessage:
845       title: Error
846       type: object
847       properties:
848         status:
849           type: string
850         message:
851           type: string
852         details:
853           type: string
854     ModuleReference:
855       title: Module reference details
856       type: object
857       properties:
858         moduleName:
859           type: string
860           example: my-module-name
861         revision:
862           type: string
863           example: my-module-revision
864     Conditions:
865       type: object
866       properties:
867         conditions:
868           $ref: '#/components/schemas/ConditionsData'
869     ConditionsData:
870       type: array
871       items:
872         $ref: '#/components/schemas/ConditionProperties'
873     ConditionProperties:
874       properties:
875         name:
876           type: string
877           example: hasAllModules
878         conditionParameters:
879           $ref: '#/components/schemas/ModuleNamesAsJsonArray'
880     ModuleNamesAsJsonArray:
881       type: array
882       items:
883         $ref: '#/components/schemas/ModuleNameAsJsonObject'
884     ModuleNameAsJsonObject:
885       properties:
886         moduleName:
887           type: string
888           example: my-module
889     CmHandles:
890       type: object
891       properties:
892         cmHandles:
893           $ref: '#/components/schemas/CmHandleProperties'
894     CmHandleProperties:
895       type: array
896       items:
897         $ref: '#/components/schemas/CmHandleProperty'
898     CmHandleProperty:
899       properties:
900         cmHandleId:
901           type: string
902           example: my-cm-handle-id
903     RestOutputCmHandle:
904       title: CM handle Details
905       type: object
906       properties:
907         cmHandle:
908           type: string
909           example: my-cm-handle1
910         publicCmHandleProperties:
911           $ref: '#/components/schemas/CmHandlePublicProperties'
912     CmHandlePublicProperties:
913       type: array
914       items:
915         type: object
916         additionalProperties:
917           type: string
918           example: Book Type
919   examples:
920     dataSampleResponse:
921       summary: Sample response
922       description: Sample response for selecting 'sample 1'.
923       value:
924         bookstore:
925           categories:
926           - code: "01"
927             books:
928             - authors:
929               - Iain M. Banks
930               - Ursula K. Le Guin
931             name: SciFi
932           - code: "02"
933             books:
934             - authors:
935               - Philip Pullman
936             name: kids
937     dataSampleRequest:
938       summary: Sample request
939       description: Sample request body
940       value:
941         test:bookstore:
942           bookstore-name: Chapters
943           categories:
944           - code: "01"
945             name: SciFi
946             books:
947             - authors:
948               - Iain M. Banks
949               - Ursula K. Le Guin
950           - code: "02"
951             name: kids
952             books:
953             - authors:
954               - Philip Pullman
955     dataSamplePatchRequest:
956       summary: Sample patch request
957       description: Sample patch request body
958       value:
959         ietf-restconf:yang-patch:
960           patch-id: patch-1
961           edit:
962           - edit-id: edit1
963             operation: merge
964             target: /
965             value:
966               test:bookstore:
967                 bookstore-name: Chapters
968                 categories:
969                 - code: "01"
970                   name: Science
971                   books:
972                   - authors:
973                     - Author1
974                     - Author2
975                 - code: "02"
976                   name: Arts
977                   books:
978                   - authors:
979                     - Author3
980           - edit-id: edit2
981             operation: merge
982             target: /
983             value:
984               test:bookstore:
985                 bookstore-name: Novels
986                 categories:
987                 - code: "03"
988                   name: History
989                   books:
990                   - authors:
991                     - Iain M. Banks
992                     - Ursula K. Le Guin
993                 - code: "04"
994                   name: Fiction
995                   books:
996                   - authors:
997                     - Philip Pullman