Merge "Update documentation for NCMP inventory openAPI"
[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-name}:
10     get:
11       tags:
12         - network-cm-proxy
13       summary: Get resource data for cm handle
14       description: Get resource data for given cm handle
15       operationId: getResourceDataForCmHandle
16       parameters:
17         - name: ncmp-datastore-name
18           in: path
19           description: The type of the requested data
20           required: true
21           schema:
22             type: string
23             example: ncmp-datastore:operational
24         - name: cm-handle
25           in: path
26           description: "The identifier for a network function, network element, subnetwork\
27           \ or any other cm object by managed Network CM Proxy"
28           required: true
29           schema:
30             type: string
31             example: my-cm-handle
32         - name: resourceIdentifier
33           in: query
34           description: The format of resource identifier depend on the associated DMI
35             Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
36             it can really be anything.
37           required: true
38           allowReserved: true
39           schema:
40             type: string
41           examples:
42             sample 1:
43               value:
44                 resourceIdentifier: \shops\bookstore
45             sample 2:
46               value:
47                 resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
48             sample 3:
49               value:
50                 resourceIdentifier: "parent=shops,child=bookstore"
51         - name: options
52           in: query
53           description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
54           \ in parenthesis'()'. The format of options parameter depend on the associated\
55           \ DMI Plugin implementation."
56           required: false
57           allowReserved: true
58           schema:
59             type: string
60           examples:
61             sample 1:
62               value:
63                 options: (depth=3)
64             sample 2:
65               value:
66                 options: (fields=book)
67             sample 3:
68               value:
69                 options: "(depth=2,fields=book/authors)"
70         - name: topic
71           in: query
72           description: topic parameter in query.
73           required: false
74           allowReserved: true
75           schema:
76             type: string
77           examples:
78             sample 1:
79               value:
80                 topic: my-topic-name
81         - name: include-descendants
82           in: query
83           description: Determines if descendants are included in response
84           required: false
85           schema:
86             type: boolean
87             default: false
88       responses:
89         "200":
90           description: OK
91           content:
92             application/json:
93               schema:
94                 type: object
95               examples:
96                 dataSampleResponse:
97                   $ref: '#/components/examples/dataSampleResponse'
98         "400":
99           description: Bad Request
100           content:
101             application/json:
102               schema:
103                 $ref: '#/components/schemas/ErrorMessage'
104               example:
105                 status: 400 BAD_REQUEST
106                 message: Bad request error message
107                 details: Bad request error details
108         "401":
109           description: Unauthorized
110           content:
111             application/json:
112               schema:
113                 $ref: '#/components/schemas/ErrorMessage'
114               example:
115                 status: 401
116                 message: Unauthorized error message
117                 details: Unauthorized error details
118         "403":
119           description: Forbidden
120           content:
121             application/json:
122               schema:
123                 $ref: '#/components/schemas/ErrorMessage'
124               example:
125                 status: 403
126                 message: Forbidden error message
127                 details: Forbidden error details
128         "500":
129           description: Internal Server Error
130           content:
131             application/json:
132               schema:
133                 $ref: '#/components/schemas/ErrorMessage'
134               example:
135                 status: 500
136                 message: Internal Server Error
137                 details: Internal Server Error occurred
138         "502":
139           description: Bad Gateway
140           content:
141             application/json:
142               schema:
143                 $ref: '#/components/schemas/DmiErrorMessage'
144               example:
145                 message: Bad Gateway Error Message NCMP
146                 dmi-response:
147                   http-code: 400
148                   body: Bad Request
149   /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running:
150     put:
151       tags:
152         - network-cm-proxy
153       summary: Update resource data from pass-through running for a cm handle
154       description: Update resource data from pass-through running for the given cm
155         handle
156       operationId: updateResourceDataRunningForCmHandle
157       parameters:
158         - name: cm-handle
159           in: path
160           description: "The identifier for a network function, network element, subnetwork\
161           \ or any other cm object by managed Network CM Proxy"
162           required: true
163           schema:
164             type: string
165             example: my-cm-handle
166         - name: resourceIdentifier
167           in: query
168           description: The format of resource identifier depend on the associated DMI
169             Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
170             it can really be anything.
171           required: true
172           allowReserved: true
173           schema:
174             type: string
175           examples:
176             sample 1:
177               value:
178                 resourceIdentifier: \shops\bookstore
179             sample 2:
180               value:
181                 resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
182             sample 3:
183               value:
184                 resourceIdentifier: "parent=shops,child=bookstore"
185         - name: Content-Type
186           in: header
187           description: "Content parameter for request, if content parameter is null,\
188           \ default value is application/json."
189           required: false
190           schema:
191             type: string
192             example: application/yang-data+json
193             default: application/json
194       requestBody:
195         content:
196           application/json:
197             schema:
198               type: object
199             examples:
200               dataSampleRequest:
201                 $ref: '#/components/examples/dataSampleRequest'
202           application/yang-data+json:
203             schema:
204               type: object
205             examples:
206               dataSampleRequest:
207                 $ref: '#/components/examples/dataSampleRequest'
208         required: true
209       responses:
210         "200":
211           description: OK
212           content:
213             application/json:
214               schema:
215                 type: object
216         "400":
217           description: Bad Request
218           content:
219             application/json:
220               schema:
221                 $ref: '#/components/schemas/ErrorMessage'
222               example:
223                 status: 400 BAD_REQUEST
224                 message: Bad request error message
225                 details: Bad request error details
226         "401":
227           description: Unauthorized
228           content:
229             application/json:
230               schema:
231                 $ref: '#/components/schemas/ErrorMessage'
232               example:
233                 status: 401
234                 message: Unauthorized error message
235                 details: Unauthorized error details
236         "403":
237           description: Forbidden
238           content:
239             application/json:
240               schema:
241                 $ref: '#/components/schemas/ErrorMessage'
242               example:
243                 status: 403
244                 message: Forbidden error message
245                 details: Forbidden error details
246         "500":
247           description: Internal Server Error
248           content:
249             application/json:
250               schema:
251                 $ref: '#/components/schemas/ErrorMessage'
252               example:
253                 status: 500
254                 message: Internal Server Error
255                 details: Internal Server Error occurred
256         "502":
257           description: Bad Gateway
258           content:
259             application/json:
260               schema:
261                 $ref: '#/components/schemas/DmiErrorMessage'
262               example:
263                 message: Bad Gateway Error Message NCMP
264                 dmi-response:
265                   http-code: 400
266                   body: Bad Request
267     post:
268       tags:
269         - network-cm-proxy
270       summary: create resource data from pass-through running for cm handle
271       description: create resource data from pass-through running for given cm handle
272       operationId: createResourceDataRunningForCmHandle
273       parameters:
274         - name: cm-handle
275           in: path
276           description: "The identifier for a network function, network element, subnetwork\
277           \ or any other cm object by managed Network CM Proxy"
278           required: true
279           schema:
280             type: string
281             example: my-cm-handle
282         - name: resourceIdentifier
283           in: query
284           description: The format of resource identifier depend on the associated DMI
285             Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
286             it can really be anything.
287           required: true
288           allowReserved: true
289           schema:
290             type: string
291           examples:
292             sample 1:
293               value:
294                 resourceIdentifier: \shops\bookstore
295             sample 2:
296               value:
297                 resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
298             sample 3:
299               value:
300                 resourceIdentifier: "parent=shops,child=bookstore"
301         - name: Content-Type
302           in: header
303           description: "Content parameter for request, if content parameter is null,\
304           \ default value is application/json."
305           required: false
306           schema:
307             type: string
308             example: application/yang-data+json
309             default: application/json
310       requestBody:
311         content:
312           application/json:
313             schema:
314               type: object
315             examples:
316               dataSampleRequest:
317                 $ref: '#/components/examples/dataSampleRequest'
318           application/yang-data+json:
319             schema:
320               type: object
321             examples:
322               dataSampleRequest:
323                 $ref: '#/components/examples/dataSampleRequest'
324         required: true
325       responses:
326         "201":
327           description: Created
328           content: {}
329         "400":
330           description: Bad Request
331           content:
332             application/json:
333               schema:
334                 $ref: '#/components/schemas/ErrorMessage'
335               example:
336                 status: 400 BAD_REQUEST
337                 message: Bad request error message
338                 details: Bad request error details
339         "401":
340           description: Unauthorized
341           content:
342             application/json:
343               schema:
344                 $ref: '#/components/schemas/ErrorMessage'
345               example:
346                 status: 401
347                 message: Unauthorized error message
348                 details: Unauthorized error details
349         "403":
350           description: Forbidden
351           content:
352             application/json:
353               schema:
354                 $ref: '#/components/schemas/ErrorMessage'
355               example:
356                 status: 403
357                 message: Forbidden error message
358                 details: Forbidden error details
359         "500":
360           description: Internal Server Error
361           content:
362             application/json:
363               schema:
364                 $ref: '#/components/schemas/ErrorMessage'
365               example:
366                 status: 500
367                 message: Internal Server Error
368                 details: Internal Server Error occurred
369         "502":
370           description: Bad Gateway
371           content:
372             application/json:
373               schema:
374                 $ref: '#/components/schemas/DmiErrorMessage'
375               example:
376                 message: Bad Gateway Error Message NCMP
377                 dmi-response:
378                   http-code: 400
379                   body: Bad Request
380     delete:
381       tags:
382         - network-cm-proxy
383       summary: Delete resource data
384       description: Delete resource data from pass-through running for a given cm handle
385       operationId: deleteResourceDataRunningForCmHandle
386       parameters:
387         - name: cm-handle
388           in: path
389           description: "The identifier for a network function, network element, subnetwork\
390           \ or any other cm object by managed Network CM Proxy"
391           required: true
392           schema:
393             type: string
394             example: my-cm-handle
395         - name: resourceIdentifier
396           in: query
397           description: The format of resource identifier depend on the associated DMI
398             Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
399             it can really be anything.
400           required: true
401           allowReserved: true
402           schema:
403             type: string
404           examples:
405             sample 1:
406               value:
407                 resourceIdentifier: \shops\bookstore
408             sample 2:
409               value:
410                 resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
411             sample 3:
412               value:
413                 resourceIdentifier: "parent=shops,child=bookstore"
414         - name: Content-Type
415           in: header
416           description: "Content parameter for request, if content parameter is null,\
417           \ default value is application/json."
418           required: false
419           schema:
420             type: string
421             example: application/yang-data+json
422             default: application/json
423       responses:
424         "204":
425           description: No Content
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         "404":
458           description: The specified resource was not found
459           content:
460             application/json:
461               schema:
462                 $ref: '#/components/schemas/ErrorMessage'
463               example:
464                 status: 400
465                 message: Not found error message
466                 details: Not found error details
467         "500":
468           description: Internal Server Error
469           content:
470             application/json:
471               schema:
472                 $ref: '#/components/schemas/ErrorMessage'
473               example:
474                 status: 500
475                 message: Internal Server Error
476                 details: Internal Server Error occurred
477         "502":
478           description: Bad Gateway
479           content:
480             application/json:
481               schema:
482                 $ref: '#/components/schemas/DmiErrorMessage'
483               example:
484                 message: Bad Gateway Error Message NCMP
485                 dmi-response:
486                   http-code: 400
487                   body: Bad Request
488     patch:
489       tags:
490         - network-cm-proxy
491       summary: Patch resource data from pass-through running
492       description: Patch resource data from pass-through running for the given cm
493         handle
494       operationId: patchResourceDataRunningForCmHandle
495       parameters:
496         - name: cm-handle
497           in: path
498           description: "The identifier for a network function, network element, subnetwork\
499           \ or any other cm object by managed Network CM Proxy"
500           required: true
501           schema:
502             type: string
503             example: my-cm-handle
504         - name: resourceIdentifier
505           in: query
506           description: The format of resource identifier depend on the associated DMI
507             Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
508             it can really be anything.
509           required: true
510           allowReserved: true
511           schema:
512             type: string
513           examples:
514             sample 1:
515               value:
516                 resourceIdentifier: \shops\bookstore
517             sample 2:
518               value:
519                 resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
520             sample 3:
521               value:
522                 resourceIdentifier: "parent=shops,child=bookstore"
523         - name: Content-Type
524           in: header
525           description: "Content parameter for request, if content parameter is null,\
526           \ default value is application/json."
527           required: false
528           schema:
529             type: string
530             example: application/yang-data+json
531             default: application/json
532       requestBody:
533         content:
534           '*/*':
535             schema:
536               type: object
537             examples:
538               dataSampleRequest:
539                 $ref: '#/components/examples/dataSamplePatchRequest'
540         required: true
541       responses:
542         "200":
543           description: OK
544           content:
545             application/json:
546               schema:
547                 type: object
548         "400":
549           description: Bad Request
550           content:
551             application/json:
552               schema:
553                 $ref: '#/components/schemas/ErrorMessage'
554               example:
555                 status: 400 BAD_REQUEST
556                 message: Bad request error message
557                 details: Bad request error details
558         "401":
559           description: Unauthorized
560           content:
561             application/json:
562               schema:
563                 $ref: '#/components/schemas/ErrorMessage'
564               example:
565                 status: 401
566                 message: Unauthorized error message
567                 details: Unauthorized error details
568         "403":
569           description: Forbidden
570           content:
571             application/json:
572               schema:
573                 $ref: '#/components/schemas/ErrorMessage'
574               example:
575                 status: 403
576                 message: Forbidden error message
577                 details: Forbidden error details
578         "500":
579           description: Internal Server Error
580           content:
581             application/json:
582               schema:
583                 $ref: '#/components/schemas/ErrorMessage'
584               example:
585                 status: 500
586                 message: Internal Server Error
587                 details: Internal Server Error occurred
588         "502":
589           description: Bad Gateway
590           content:
591             application/json:
592               schema:
593                 $ref: '#/components/schemas/DmiErrorMessage'
594               example:
595                 message: Bad Gateway Error Message NCMP
596                 dmi-response:
597                   http-code: 400
598                   body: Bad Request
599   /v1/ch/{cm-handle}/modules:
600     get:
601       tags:
602         - network-cm-proxy
603       summary: Fetch all module references (name and revision) for a given cm handle
604       description: fetch all module references (name and revision) for a given cm
605         handle
606       operationId: getModuleReferencesByCmHandle
607       parameters:
608         - name: cm-handle
609           in: path
610           description: "The identifier for a network function, network element, subnetwork\
611           \ or any other cm object by managed Network CM Proxy"
612           required: true
613           schema:
614             type: string
615             example: my-cm-handle
616       responses:
617         "200":
618           description: OK
619           content:
620             application/json:
621               schema:
622                 type: array
623                 items:
624                   $ref: '#/components/schemas/RestModuleReference'
625         "400":
626           description: Bad Request
627           content:
628             application/json:
629               schema:
630                 $ref: '#/components/schemas/ErrorMessage'
631               example:
632                 status: 400 BAD_REQUEST
633                 message: Bad request error message
634                 details: Bad request error details
635         "401":
636           description: Unauthorized
637           content:
638             application/json:
639               schema:
640                 $ref: '#/components/schemas/ErrorMessage'
641               example:
642                 status: 401
643                 message: Unauthorized error message
644                 details: Unauthorized error details
645         "403":
646           description: Forbidden
647           content:
648             application/json:
649               schema:
650                 $ref: '#/components/schemas/ErrorMessage'
651               example:
652                 status: 403
653                 message: Forbidden error message
654                 details: Forbidden error details
655         "500":
656           description: Internal Server Error
657           content:
658             application/json:
659               schema:
660                 $ref: '#/components/schemas/ErrorMessage'
661               example:
662                 status: 500
663                 message: Internal Server Error
664                 details: Internal Server Error occurred
665   /v1/ch/{cm-handle}/modules/definitions:
666     get:
667       tags:
668         - network-cm-proxy
669       summary: "Fetch all module definitions (name, revision, yang resource) for a\
670         \ given cm handle"
671       description: "Fetch all module definitions (name, revision, yang resource) for\
672         \ a given cm handle"
673       operationId: getModuleDefinitionsByCmHandleId
674       parameters:
675         - name: cm-handle
676           in: path
677           description: "The identifier for a network function, network element, subnetwork\
678           \ or any other cm object by managed Network CM Proxy"
679           required: true
680           schema:
681             type: string
682             example: my-cm-handle
683       responses:
684         "200":
685           description: OK
686           content:
687             application/json:
688               schema:
689                 type: array
690                 items:
691                   $ref: '#/components/schemas/RestModuleDefinition'
692         "401":
693           description: Unauthorized
694           content:
695             application/json:
696               schema:
697                 $ref: '#/components/schemas/ErrorMessage'
698               example:
699                 status: 401
700                 message: Unauthorized error message
701                 details: Unauthorized error details
702         "403":
703           description: Forbidden
704           content:
705             application/json:
706               schema:
707                 $ref: '#/components/schemas/ErrorMessage'
708               example:
709                 status: 403
710                 message: Forbidden error message
711                 details: Forbidden error details
712         "500":
713           description: Internal Server Error
714           content:
715             application/json:
716               schema:
717                 $ref: '#/components/schemas/ErrorMessage'
718               example:
719                 status: 500
720                 message: Internal Server Error
721                 details: Internal Server Error occurred
722   /v1/ch/searches:
723     post:
724       tags:
725         - network-cm-proxy
726       summary: Execute cm handle search using the available conditions
727       description: Execute cm handle query search and return a list of cm handle details.
728         Any number of conditions can be applied. To be included in the result a cm-handle
729         must fulfill ALL the conditions. An empty collection will be returned in the
730         case that the cm handle does not match a condition. For more on cm handle
731         query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
732         handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible
733         to query on any data related to the cm handle. For more on CPS Path please
734         refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS
735         Path Read the Docs</a>. The cm handle ancestor is automatically returned for
736         this query.
737       operationId: searchCmHandles
738       requestBody:
739         content:
740           application/json:
741             schema:
742               $ref: '#/components/schemas/CmHandleQueryParameters'
743             examples:
744               Cm handle properties query:
745                 $ref: '#/components/examples/pubPropCmHandleQueryParameters'
746               Cm handle modules query:
747                 $ref: '#/components/examples/modulesCmHandleQueryParameters'
748               All cm handle query parameters:
749                 $ref: '#/components/examples/allCmHandleQueryParameters'
750               Cm handle with CPS path state query:
751                 $ref: '#/components/examples/cpsPathCmHandleStateQueryParameters'
752               Cm handle with data sync flag query:
753                 $ref: '#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
754         required: true
755       responses:
756         "200":
757           description: OK
758           content:
759             application/json:
760               schema:
761                 type: array
762                 items:
763                   $ref: '#/components/schemas/RestOutputCmHandle'
764         "400":
765           description: Bad Request
766           content:
767             application/json:
768               schema:
769                 $ref: '#/components/schemas/ErrorMessage'
770               example:
771                 status: 400 BAD_REQUEST
772                 message: Bad request error message
773                 details: Bad request error details
774         "401":
775           description: Unauthorized
776           content:
777             application/json:
778               schema:
779                 $ref: '#/components/schemas/ErrorMessage'
780               example:
781                 status: 401
782                 message: Unauthorized error message
783                 details: Unauthorized error details
784         "403":
785           description: Forbidden
786           content:
787             application/json:
788               schema:
789                 $ref: '#/components/schemas/ErrorMessage'
790               example:
791                 status: 403
792                 message: Forbidden error message
793                 details: Forbidden error details
794         "500":
795           description: Internal Server Error
796           content:
797             application/json:
798               schema:
799                 $ref: '#/components/schemas/ErrorMessage'
800               example:
801                 status: 500
802                 message: Internal Server Error
803                 details: Internal Server Error occurred
804   /v1/ch/{cm-handle}:
805     get:
806       tags:
807         - network-cm-proxy
808       summary: Retrieve CM handle details
809       description: Retrieve CM handle details and properties by cm handle id
810       operationId: retrieveCmHandleDetailsById
811       parameters:
812         - name: cm-handle
813           in: path
814           description: "The identifier for a network function, network element, subnetwork\
815           \ or any other cm object by managed Network CM Proxy"
816           required: true
817           schema:
818             type: string
819             example: my-cm-handle
820       responses:
821         "200":
822           description: OK
823           content:
824             application/json:
825               schema:
826                 $ref: '#/components/schemas/RestOutputCmHandle'
827         "400":
828           description: Bad Request
829           content:
830             application/json:
831               schema:
832                 $ref: '#/components/schemas/ErrorMessage'
833               example:
834                 status: 400 BAD_REQUEST
835                 message: Bad request error message
836                 details: Bad request error details
837         "401":
838           description: Unauthorized
839           content:
840             application/json:
841               schema:
842                 $ref: '#/components/schemas/ErrorMessage'
843               example:
844                 status: 401
845                 message: Unauthorized error message
846                 details: Unauthorized error details
847         "404":
848           description: The specified resource was not found
849           content:
850             application/json:
851               schema:
852                 $ref: '#/components/schemas/ErrorMessage'
853               example:
854                 status: 400
855                 message: Not found error message
856                 details: Not found error details
857         "500":
858           description: Internal Server Error
859           content:
860             application/json:
861               schema:
862                 $ref: '#/components/schemas/ErrorMessage'
863               example:
864                 status: 500
865                 message: Internal Server Error
866                 details: Internal Server Error occurred
867   /v1/ch/{cm-handle}/properties:
868     get:
869       tags:
870         - network-cm-proxy
871       summary: Get CM handle properties
872       description: Get CM handle properties by cm handle id
873       operationId: getCmHandlePublicPropertiesByCmHandleId
874       parameters:
875         - name: cm-handle
876           in: path
877           description: "The identifier for a network function, network element, subnetwork\
878           \ or any other cm object by managed Network CM Proxy"
879           required: true
880           schema:
881             type: string
882             example: my-cm-handle
883       responses:
884         "200":
885           description: OK
886           content:
887             application/json:
888               schema:
889                 $ref: '#/components/schemas/RestOutputCmHandlePublicProperties'
890         "400":
891           description: Bad Request
892           content:
893             application/json:
894               schema:
895                 $ref: '#/components/schemas/ErrorMessage'
896               example:
897                 status: 400 BAD_REQUEST
898                 message: Bad request error message
899                 details: Bad request error details
900         "401":
901           description: Unauthorized
902           content:
903             application/json:
904               schema:
905                 $ref: '#/components/schemas/ErrorMessage'
906               example:
907                 status: 401
908                 message: Unauthorized error message
909                 details: Unauthorized error details
910         "404":
911           description: The specified resource was not found
912           content:
913             application/json:
914               schema:
915                 $ref: '#/components/schemas/ErrorMessage'
916               example:
917                 status: 400
918                 message: Not found error message
919                 details: Not found error details
920         "500":
921           description: Internal Server Error
922           content:
923             application/json:
924               schema:
925                 $ref: '#/components/schemas/ErrorMessage'
926               example:
927                 status: 500
928                 message: Internal Server Error
929                 details: Internal Server Error occurred
930   /v1/ch/id-searches:
931     post:
932       tags:
933         - network-cm-proxy
934       summary: Execute cm handle query upon a given set of query parameters
935       description: Execute cm handle query search and return a list of cm handle ids.
936         Any number of conditions can be applied. To be included in the result a cm-handle
937         must fulfill ALL the conditions. An empty collection will be returned in the
938         case that the cm handle does not match a condition. For more on cm handle
939         query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
940         handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible
941         to query on any data related to the cm handle. For more on CPS Path please
942         refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS
943         Path Read the Docs</a>. The cm handle ancestor is automatically returned for
944         this query.
945       operationId: searchCmHandleIds
946       requestBody:
947         content:
948           application/json:
949             schema:
950               $ref: '#/components/schemas/CmHandleQueryParameters'
951             examples:
952               Cm handle properties query:
953                 $ref: '#/components/examples/pubPropCmHandleQueryParameters'
954               Cm handle modules query:
955                 $ref: '#/components/examples/modulesCmHandleQueryParameters'
956               All cm handle query parameters:
957                 $ref: '#/components/examples/allCmHandleQueryParameters'
958               Cm handle with CPS path state query:
959                 $ref: '#/components/examples/cpsPathCmHandleStateQueryParameters'
960               Cm handle with data sync flag query:
961                 $ref: '#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
962         required: true
963       responses:
964         "200":
965           description: OK
966           content:
967             application/json:
968               schema:
969                 type: array
970                 items:
971                   type: string
972         "400":
973           description: Bad Request
974           content:
975             application/json:
976               schema:
977                 $ref: '#/components/schemas/ErrorMessage'
978               example:
979                 status: 400 BAD_REQUEST
980                 message: Bad request error message
981                 details: Bad request error details
982         "401":
983           description: Unauthorized
984           content:
985             application/json:
986               schema:
987                 $ref: '#/components/schemas/ErrorMessage'
988               example:
989                 status: 401
990                 message: Unauthorized error message
991                 details: Unauthorized error details
992         "403":
993           description: Forbidden
994           content:
995             application/json:
996               schema:
997                 $ref: '#/components/schemas/ErrorMessage'
998               example:
999                 status: 403
1000                 message: Forbidden error message
1001                 details: Forbidden error details
1002         "404":
1003           description: The specified resource was not found
1004           content:
1005             application/json:
1006               schema:
1007                 $ref: '#/components/schemas/ErrorMessage'
1008               example:
1009                 status: 400
1010                 message: Not found error message
1011                 details: Not found error details
1012         "500":
1013           description: Internal Server Error
1014           content:
1015             application/json:
1016               schema:
1017                 $ref: '#/components/schemas/ErrorMessage'
1018               example:
1019                 status: 500
1020                 message: Internal Server Error
1021                 details: Internal Server Error occurred
1022   /v1/ch/{cm-handle}/state:
1023     get:
1024       tags:
1025         - network-cm-proxy
1026       summary: Get CM handle state
1027       description: Get CM handle state by cm handle id
1028       operationId: getCmHandleStateByCmHandleId
1029       parameters:
1030         - name: cm-handle
1031           in: path
1032           description: "The identifier for a network function, network element, subnetwork\
1033           \ or any other cm object by managed Network CM Proxy"
1034           required: true
1035           schema:
1036             type: string
1037             example: my-cm-handle
1038       responses:
1039         "200":
1040           description: OK
1041           content:
1042             application/json:
1043               schema:
1044                 $ref: '#/components/schemas/RestOutputCmHandleCompositeState'
1045         "400":
1046           description: Bad Request
1047           content:
1048             application/json:
1049               schema:
1050                 $ref: '#/components/schemas/ErrorMessage'
1051               example:
1052                 status: 400 BAD_REQUEST
1053                 message: Bad request error message
1054                 details: Bad request error details
1055         "401":
1056           description: Unauthorized
1057           content:
1058             application/json:
1059               schema:
1060                 $ref: '#/components/schemas/ErrorMessage'
1061               example:
1062                 status: 401
1063                 message: Unauthorized error message
1064                 details: Unauthorized error details
1065         "404":
1066           description: The specified resource was not found
1067           content:
1068             application/json:
1069               schema:
1070                 $ref: '#/components/schemas/ErrorMessage'
1071               example:
1072                 status: 400
1073                 message: Not found error message
1074                 details: Not found error details
1075         "500":
1076           description: Internal Server Error
1077           content:
1078             application/json:
1079               schema:
1080                 $ref: '#/components/schemas/ErrorMessage'
1081               example:
1082                 status: 500
1083                 message: Internal Server Error
1084                 details: Internal Server Error occurred
1085   /v1/ch/{cm-handle}/data-sync:
1086     put:
1087       tags:
1088         - network-cm-proxy
1089       summary: Set the Data Sync Enabled Flag
1090       description: Set the data sync enabled flag to true or false for a specified
1091         Cm-Handle. This will in turn set the data sync state to UNSYNCHRONIZED and
1092         NONE_REQUESTED respectfully.
1093       operationId: setDataSyncEnabledFlagForCmHandle
1094       parameters:
1095         - name: cm-handle
1096           in: path
1097           description: "The identifier for a network function, network element, subnetwork\
1098           \ or any other cm object by managed Network CM Proxy"
1099           required: true
1100           schema:
1101             type: string
1102             example: my-cm-handle
1103         - name: dataSyncEnabled
1104           in: query
1105           description: Is used to enable or disable the data synchronization flag
1106           required: true
1107           schema:
1108             type: boolean
1109             example: true
1110       responses:
1111         "200":
1112           description: OK
1113           content:
1114             application/json:
1115               schema:
1116                 type: object
1117         "400":
1118           description: Bad Request
1119           content:
1120             application/json:
1121               schema:
1122                 $ref: '#/components/schemas/ErrorMessage'
1123               example:
1124                 status: 400 BAD_REQUEST
1125                 message: Bad request error message
1126                 details: Bad request error details
1127         "401":
1128           description: Unauthorized
1129           content:
1130             application/json:
1131               schema:
1132                 $ref: '#/components/schemas/ErrorMessage'
1133               example:
1134                 status: 401
1135                 message: Unauthorized error message
1136                 details: Unauthorized error details
1137         "403":
1138           description: Forbidden
1139           content:
1140             application/json:
1141               schema:
1142                 $ref: '#/components/schemas/ErrorMessage'
1143               example:
1144                 status: 403
1145                 message: Forbidden error message
1146                 details: Forbidden error details
1147         "500":
1148           description: Internal Server Error
1149           content:
1150             application/json:
1151               schema:
1152                 $ref: '#/components/schemas/ErrorMessage'
1153               example:
1154                 status: 500
1155                 message: Internal Server Error
1156                 details: Internal Server Error occurred
1157         "502":
1158           description: Bad Gateway
1159           content:
1160             application/json:
1161               schema:
1162                 $ref: '#/components/schemas/DmiErrorMessage'
1163               example:
1164                 message: Bad Gateway Error Message NCMP
1165                 dmi-response:
1166                   http-code: 400
1167                   body: Bad Request
1168 components:
1169   schemas:
1170     ErrorMessage:
1171       title: Error
1172       type: object
1173       properties:
1174         status:
1175           type: string
1176         message:
1177           type: string
1178         details:
1179           type: string
1180     DmiErrorMessage:
1181       title: DMI Error Message
1182       type: object
1183       properties:
1184         message:
1185           type: string
1186           example: Bad Gateway Error Message NCMP
1187         dmi-response:
1188           $ref: '#/components/schemas/DmiErrorMessage_dmiresponse'
1189     RestModuleReference:
1190       title: Module reference details
1191       type: object
1192       properties:
1193         moduleName:
1194           type: string
1195           example: my-module-name
1196         revision:
1197           type: string
1198           example: my-module-revision
1199     RestModuleDefinition:
1200       title: Module definitions
1201       type: object
1202       properties:
1203         moduleName:
1204           type: string
1205           example: my-module-name
1206         revision:
1207           type: string
1208           example: 2020-09-15T00:00:00.000+00:00
1209         content:
1210           type: string
1211           example: "module stores {\n  yang-version 1.1;\n  namespace \"org:onap:ccsdk:sample\"\
1212             ;\n  prefix book-store;\n  revision \"2020-09-15\" {\n    description\n\
1213             \    \"Sample Model\";\n  }\n}\n"
1214     CmHandleQueryParameters:
1215       title: Cm Handle query parameters for executing cm handle search
1216       type: object
1217       properties:
1218         cmHandleQueryParameters:
1219           type: array
1220           items:
1221             $ref: '#/components/schemas/ConditionProperties'
1222         conditions:
1223           type: array
1224           description: "not necessary, it is just for backward compatibility"
1225           deprecated: true
1226           items:
1227             $ref: '#/components/schemas/OldConditionProperties'
1228     ConditionProperties:
1229       properties:
1230         conditionName:
1231           type: string
1232         conditionParameters:
1233           type: array
1234           items:
1235             type: object
1236             additionalProperties:
1237               type: string
1238     OldConditionProperties:
1239       properties:
1240         name:
1241           type: string
1242         conditionParameters:
1243           type: array
1244           items:
1245             $ref: '#/components/schemas/ModuleNameAsJsonObject'
1246       deprecated: true
1247     ModuleNameAsJsonObject:
1248       properties:
1249         moduleName:
1250           type: string
1251           example: my-module
1252     RestOutputCmHandle:
1253       title: CM handle Details
1254       type: object
1255       properties:
1256         cmHandle:
1257           type: string
1258           example: my-cm-handle1
1259         publicCmHandleProperties:
1260           $ref: '#/components/schemas/CmHandlePublicProperties'
1261         state:
1262           $ref: '#/components/schemas/CmHandleCompositeState'
1263     CmHandlePublicProperties:
1264       type: array
1265       items:
1266         type: object
1267         additionalProperties:
1268           type: string
1269           example: Book Type
1270     CmHandleCompositeState:
1271       type: object
1272       properties:
1273         cmHandleState:
1274           type: string
1275           example: ADVISED
1276         lockReason:
1277           $ref: '#/components/schemas/lock-reason'
1278         lastUpdateTime:
1279           type: string
1280           example: 2022-12-31T20:30:40.000+0000
1281         dataSyncEnabled:
1282           type: boolean
1283           example: false
1284         dataSyncState:
1285           $ref: '#/components/schemas/dataStores'
1286     lock-reason:
1287       type: object
1288       properties:
1289         reason:
1290           type: string
1291           example: LOCKED_MISBEHAVING
1292         details:
1293           type: string
1294           example: locked due to failure in module sync
1295     dataStores:
1296       type: object
1297       properties:
1298         operational:
1299           $ref: '#/components/schemas/sync-state'
1300         running:
1301           $ref: '#/components/schemas/sync-state'
1302     sync-state:
1303       type: object
1304       properties:
1305         syncState:
1306           type: string
1307           example: NONE_REQUESTED
1308         lastSyncTime:
1309           type: string
1310           example: 2022-12-31T20:30:40.000+0000
1311     RestOutputCmHandlePublicProperties:
1312       type: object
1313       properties:
1314         publicCmHandleProperties:
1315           $ref: '#/components/schemas/CmHandlePublicProperties'
1316     RestOutputCmHandleCompositeState:
1317       type: object
1318       properties:
1319         state:
1320           $ref: '#/components/schemas/CmHandleCompositeState'
1321     DmiErrorMessage_dmiresponse:
1322       type: object
1323       properties:
1324         http-code:
1325           type: integer
1326           example: 400
1327         body:
1328           type: string
1329           example: Bad Request
1330   examples:
1331     dataSampleResponse:
1332       summary: Sample response
1333       description: Sample response for selecting 'sample 1'.
1334       value:
1335         bookstore:
1336           categories:
1337             - code: "01"
1338               books:
1339                 - authors:
1340                     - Iain M. Banks
1341                     - Ursula K. Le Guin
1342               name: SciFi
1343             - code: "02"
1344               books:
1345                 - authors:
1346                     - Philip Pullman
1347               name: kids
1348     dataSampleRequest:
1349       summary: Sample request
1350       description: Sample request body
1351       value:
1352         test:bookstore:
1353           bookstore-name: Chapters
1354           categories:
1355             - code: "01"
1356               name: SciFi
1357               books:
1358                 - authors:
1359                     - Iain M. Banks
1360                     - Ursula K. Le Guin
1361             - code: "02"
1362               name: kids
1363               books:
1364                 - authors:
1365                     - Philip Pullman
1366     dataSamplePatchRequest:
1367       summary: Sample patch request
1368       description: Sample patch request body
1369       value:
1370         ietf-restconf:yang-patch:
1371           patch-id: patch-1
1372           edit:
1373             - edit-id: edit1
1374               operation: merge
1375               target: /
1376               value:
1377                 test:bookstore:
1378                   bookstore-name: Chapters
1379                   categories:
1380                     - code: "01"
1381                       name: Science
1382                       books:
1383                         - authors:
1384                             - Author1
1385                             - Author2
1386                     - code: "02"
1387                       name: Arts
1388                       books:
1389                         - authors:
1390                             - Author3
1391             - edit-id: edit2
1392               operation: merge
1393               target: /
1394               value:
1395                 test:bookstore:
1396                   bookstore-name: Novels
1397                   categories:
1398                     - code: "03"
1399                       name: History
1400                       books:
1401                         - authors:
1402                             - Iain M. Banks
1403                             - Ursula K. Le Guin
1404                     - code: "04"
1405                       name: Fiction
1406                       books:
1407                         - authors:
1408                             - Philip Pullman
1409     pubPropCmHandleQueryParameters:
1410       value:
1411         cmHandleQueryParameters:
1412           - conditionName: hasAllProperties
1413             conditionParameters:
1414               - Color: yellow
1415               - Shape: circle
1416               - Size: small
1417     modulesCmHandleQueryParameters:
1418       value:
1419         cmHandleQueryParameters:
1420           - conditionName: hasAllModules
1421             conditionParameters:
1422               - moduleName: my-module-1
1423               - moduleName: my-module-2
1424               - moduleName: my-module-3
1425     allCmHandleQueryParameters:
1426       value:
1427         cmHandleQueryParameters:
1428           - conditionName: hasAllModules
1429             conditionParameters:
1430               - moduleName: my-module-1
1431               - moduleName: my-module-2
1432               - moduleName: my-module-3
1433           - conditionName: hasAllProperties
1434             conditionParameters:
1435               - Color: yellow
1436               - Shape: circle
1437               - Size: small
1438           - conditionName: cmHandleWithCpsPath
1439             conditionParameters:
1440               - cpsPath: "//state[@cm-handle-state='ADVISED']"
1441     cpsPathCmHandleStateQueryParameters:
1442       value:
1443         cmHandleQueryParameters:
1444           - conditionName: cmHandleWithCpsPath
1445             conditionParameters:
1446               - cpsPath: "//state[@cm-handle-state='LOCKED']"
1447     cpsPathCmHandleDataSyncQueryParameters:
1448       value:
1449         cmHandleQueryParameters:
1450           - conditionName: cmHandleWithCpsPath
1451             conditionParameters:
1452               - cpsPath: "//state[@data-sync-enabled='true']"