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