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