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