Swagger update for slicing use case
[optf/osdf.git] / docs / sections / swaggerdoc / oof-osdf-has-api.json
1 {
2   "swagger": "2.0",
3   "info": {
4     "description": "This is the ONAP OOF OSDF (Optimization Service Design Framework) API",
5     "version": "1.0.0",
6     "title": "OSDF API",
7     "contact": {
8       "email": "frank.sandoval@oamtechnologies.com"
9     },
10     "license": {
11       "name": "Apache 2.0",
12       "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
13     }
14   },
15   "securityDefinitions": {
16     "basicAuth": {
17       "type": "basic",
18       "description": "HTTP Basic Auth"
19     }
20   },
21   "security": [
22     {
23       "basicAuth": []
24     }
25   ],
26   "paths": {
27     "/v2/placement": {
28       "post": {
29         "tags": [
30           "Placement Optimization"
31         ],
32         "summary": "create/update a placement",
33         "operationId": "createPlacement",
34         "description": "create/update a placement",
35         "consumes": [
36           "application/json"
37         ],
38         "produces": [
39           "application/json"
40         ],
41         "parameters": [
42           {
43             "in": "body",
44             "name": "placementRequest",
45             "description": "placement request",
46             "schema": {
47               "$ref": "#/definitions/PlacementRequest"
48             }
49           }
50         ],
51         "responses": {
52           "201": {
53             "description": "An optimization solution is found."
54           },
55           "202": {
56             "description": "An optimization request is accepted"
57           },
58           "400": {
59             "description": "bad request"
60           },
61           "401": {
62             "description": "Request body is not compliant with the API definition"
63           },
64           "404": {
65             "description": "The server cannot find the requested URI"
66           },
67           "405": {
68             "description": "The requested method is not supported by a server."
69           },
70           "500": {
71             "description": "The server encountered an internal server error or timed out"
72           }
73         }
74       }
75     },
76     "/api/oof/placement/v1": {
77       "post": {
78         "tags": [
79           "Placement Optimization"
80         ],
81         "summary": "create/update a placement",
82         "operationId": "createPlacementv1",
83         "description": "create/update a placement",
84         "consumes": [
85           "application/json"
86         ],
87         "produces": [
88           "application/json"
89         ],
90         "parameters": [
91           {
92             "in": "body",
93             "name": "placementRequest",
94             "description": "placement request",
95             "schema": {
96               "$ref": "#/definitions/PlacementRequest"
97             }
98           }
99         ],
100         "responses": {
101           "201": {
102             "description": "An optimization solution is found."
103           },
104           "202": {
105             "description": "An optimization request is accepted"
106           },
107           "400": {
108             "description": "bad request"
109           },
110           "401": {
111             "description": "Request body is not compliant with the API definition"
112           },
113           "404": {
114             "description": "The server cannot find the requested URI"
115           },
116           "405": {
117             "description": "The requested method is not supported by a server."
118           },
119           "500": {
120             "description": "The server encountered an internal server error or timed out"
121           }
122         }
123       }
124     },
125     "/api/oof/v1/pci": {
126       "post": {
127         "tags": [
128           "PCI/ANR Optimization"
129         ],
130         "summary": "Initiate PCI/ANR Optimization",
131         "operationId": "initiatePCIOptRequest",
132         "description": "Initiate PCI/ANR Optimization",
133         "consumes": [
134           "application/json"
135         ],
136         "produces": [
137           "application/json"
138         ],
139         "parameters": [
140           {
141             "in": "body",
142             "name": "PCIOptimizationRequest",
143             "description": "PCI request",
144             "schema": {
145               "$ref": "#/definitions/PCIOptRequest"
146             }
147           }
148         ],
149         "responses": {
150           "201": {
151             "description": "An optimization solution is found."
152           },
153           "202": {
154             "description": "An optimization request is accepted"
155           },
156           "400": {
157             "description": "bad request"
158           },
159           "401": {
160             "description": "Request body is not compliant with the API definition"
161           },
162           "404": {
163             "description": "The server cannot find the requested URI"
164           },
165           "405": {
166             "description": "The requested method is not supported by a server."
167           },
168           "500": {
169             "description": "The server encountered an internal server error or timed out"
170           }
171         }
172       }
173     },
174     "/api/oof/pci/v1": {
175       "post": {
176         "tags": [
177           "PCI/ANR Optimization"
178         ],
179         "summary": "Initiate PCI/ANR Optimization",
180         "operationId": "initiatePCIOptRequestv1",
181         "description": "Initiate PCI/ANR Optimization",
182         "consumes": [
183           "application/json"
184         ],
185         "produces": [
186           "application/json"
187         ],
188         "parameters": [
189           {
190             "in": "body",
191             "name": "PCIOptimizationRequest",
192             "description": "PCI request",
193             "schema": {
194               "$ref": "#/definitions/PCIOptRequest"
195             }
196           }
197         ],
198         "responses": {
199           "201": {
200             "description": "An optimization solution is found."
201           },
202           "202": {
203             "description": "An optimization request is accepted"
204           },
205           "400": {
206             "description": "bad request"
207           },
208           "401": {
209             "description": "Request body is not compliant with the API definition"
210           },
211           "404": {
212             "description": "The server cannot find the requested URI"
213           },
214           "405": {
215             "description": "The requested method is not supported by a server."
216           },
217           "500": {
218             "description": "The server encountered an internal server error or timed out"
219           }
220         }
221       }
222     },
223     "/api/oof/selection/nst/v1": {
224       "post": {
225         "tags": [
226           "NST Selection"
227         ],
228         "summary": "NST selection",
229         "operationId": "selectNstRequest",
230         "description": "Request for NST selection",
231         "consumes": [
232           "application/json"
233         ],
234         "produces": [
235           "application/json"
236         ],
237         "parameters": [
238           {
239             "in": "body",
240             "name": "NSTSelectionRequest",
241             "description": "nst selection request",
242             "schema": {
243               "$ref": "#/definitions/NSTSelectionRequest"
244             }
245           }
246         ],
247         "responses": {
248           "202": {
249             "description": "An optimization request is accepted",
250             "schema": {
251               "$ref": "#/definitions/SynchronousResponse"
252             }
253           },
254           "400": {
255             "description": "bad request"
256           },
257           "401": {
258             "description": "Request body is not compliant with the API definition"
259           },
260           "404": {
261             "description": "The server cannot find the requested URI"
262           },
263           "405": {
264             "description": "The requested method is not supported by a server."
265           },
266           "500": {
267             "description": "The server encountered an internal server error or timed out"
268           }
269         }
270       }
271     },
272     "/api/oof/selection/nsi/v1": {
273       "post": {
274         "tags": [
275           "NSI Selection"
276         ],
277         "summary": "NSI selection",
278         "operationId": "selectNsiRequest",
279         "description": "Request for NSI selection",
280         "consumes": [
281           "application/json"
282         ],
283         "produces": [
284           "application/json"
285         ],
286         "parameters": [
287           {
288             "in": "body",
289             "name": "NSISelectionRequest",
290             "description": "NSI selection request",
291             "schema": {
292               "$ref": "#/definitions/NSISelectionRequest"
293             }
294           }
295         ],
296         "responses": {
297           "202": {
298             "description": "An optimization request is accepted",
299             "schema": {
300               "$ref": "#/definitions/SynchronousResponse"
301             }
302           },
303           "400": {
304             "description": "bad request"
305           },
306           "401": {
307             "description": "Request body is not compliant with the API definition"
308           },
309           "404": {
310             "description": "The server cannot find the requested URI"
311           },
312           "405": {
313             "description": "The requested method is not supported by a server."
314           },
315           "500": {
316             "description": "The server encountered an internal server error or timed out"
317           }
318         }
319       }
320     },
321     "/api/oof/selection/nssi/v1": {
322       "post": {
323         "tags": [
324           "NSSI Selection"
325         ],
326         "summary": "NSSI selection",
327         "operationId": "selectNssiRequest",
328         "description": "Request for NSSI selection",
329         "consumes": [
330           "application/json"
331         ],
332         "produces": [
333           "application/json"
334         ],
335         "parameters": [
336           {
337             "in": "body",
338             "name": "NSSISelectionRequest",
339             "description": "NSSI selection request",
340             "schema": {
341               "$ref": "#/definitions/NSSISelectionRequest"
342             }
343           }
344         ],
345         "responses": {
346           "202": {
347             "description": "An optimization request is accepted",
348             "schema": {
349               "$ref": "#/definitions/SynchronousResponse"
350             }
351           },
352           "400": {
353             "description": "bad request"
354           },
355           "401": {
356             "description": "Request body is not compliant with the API definition"
357           },
358           "404": {
359             "description": "The server cannot find the requested URI"
360           },
361           "405": {
362             "description": "The requested method is not supported by a server."
363           },
364           "500": {
365             "description": "The server encountered an internal server error or timed out"
366           }
367         }
368       }
369     },
370     "/api/oof/terminate/nxi/v1": {
371       "post": {
372         "tags": [
373           "NSSI/NSI Termination"
374         ],
375         "summary": "NSSI/NSI Termination",
376         "operationId": "terminateNxiRequest",
377         "description": "Request for NSSI/NSI Termination",
378         "consumes": [
379           "application/json"
380         ],
381         "produces": [
382           "application/json"
383         ],
384         "parameters": [
385           {
386             "in": "body",
387             "name": "NxITerminationRequest",
388             "description": "NSSI/NSI termination request",
389             "schema": {
390               "$ref": "#/definitions/NxITerminationRequest"
391             }
392           }
393         ],
394         "responses": {
395           "200": {
396             "description": "request has succeeded",
397             "schema": {
398               "$ref": "#/definitions/SynchronousTerminationResponse"
399             }
400           },
401           "400": {
402             "description": "bad request"
403           },
404           "401": {
405             "description": "Request body is not compliant with the API definition"
406           },
407           "404": {
408             "description": "The server cannot find the requested URI"
409           },
410           "405": {
411             "description": "The requested method is not supported by a server."
412           },
413           "500": {
414             "description": "The server encountered an internal server error or timed out"
415           }
416         }
417       }
418     },
419     "/api/oof/route/v1": {
420       "post": {
421         "tags": [
422           "Route Select"
423         ],
424         "summary": "Find the optimistic route between OTN domains",
425         "description": "",
426         "operationId": "getRoute",
427         "consumes": [
428           "application/json"
429         ],
430         "produces": [
431           "application/json"
432         ],
433         "parameters": [
434           {
435             "in": "body",
436             "name": "body",
437             "description": "Source and Destination nodes across which optmistic route have to be obtained.",
438             "required": true,
439             "schema": {
440               "$ref": "#/definitions/RouteRequest"
441             }
442           }
443         ],
444         "responses": {
445           "200": {
446             "description": "successful operation",
447             "schema": {
448               "type": "array",
449               "items": {
450                 "$ref": "#/definitions/routeResponseBody"
451               }
452             }
453           },
454           "405": {
455             "description": "Invalid input"
456           }
457         }
458       }
459     },
460     "/api/oof/mdons/route/v1": {
461       "post": {
462         "tags": [
463          "Inter Domain Route Select"
464         ],
465         "summary":"Find the optimistic inter domain route for multi domain optical system",
466         "description":"",
467         "operationId":"getInterDomainRoute",
468         "consumes": [
469           "application/json"
470         ],
471         "produces":[
472           "application/json"
473         ],
474         "parameters":[
475           {
476             "in":"body",
477             "name":"body",
478             "description":"Source and Destination interfaces across which optmistic route have to be obtained.",
479             "required":true,
480             "schema":{
481              "$ref":"#/definitions/InterDomainRouteRequest"
482             }
483           }
484         ],
485         "responses":{
486          "200":{
487           "description":"successful operation",
488           "schema":{
489             "$ref":"#/definitions/InterDomainRouteResponseBody"
490           }
491          },
492         "400":{
493          "description":"bad request"
494        },
495         "401":{
496           "description":"Request body is not compliant with the API definition"
497         },
498        "404":{
499           "description":"The server cannot find the requested URI"
500        },
501        "405":{
502          "description":"The requested method is not supported by a server."
503        },
504        "500":{
505           "description":"The server encountered an internal server error or timed out"
506        }
507       }
508      }
509    }
510   },
511   "definitions": {
512    "InterDomainRouteRequest":{
513      "type":"object",
514      "properties":{
515        "requestInfo":{
516          "$ref":"#/definitions/requestInfo"
517        },
518        "routeInfo":{
519          "$ref":"#/definitions/interDomainRouteInfo"
520        }
521      }
522    },
523    "interDomainRouteInfo":{
524      "type":"object",
525      "properties":{
526        "routeRequest":{
527          "$ref":"#/definitions/interDomainRouteRequest"
528        }
529      }
530    },
531    "interDomainRouteRequest":{
532      "type":"object",
533      "properties":{
534        "srcDetails":{
535          "$ref":"#/definitions/interDomainPortDetails"
536        },
537        "dstDetails":{
538          "$ref":"#/definitions/interDomainPortDetails"
539        },
540        "serviceRate":{
541          "type":"string",
542          "description":"The rate of the service."
543        }
544      }
545    },
546    "interDomainPortDetails":{
547      "type":"object",
548      "properties":{
549        "interfaceId":{
550          "type":"string",
551          "description":"The port id."
552        },
553        "nodeId":{
554          "type":"string",
555          "description":"The node id."
556        },
557        "controllerId":{
558          "type":"string",
559          "description":"The controller id to which the node belongs to."
560        }
561      }
562    },
563    "InterDomainRouteResponseBody":{
564      "type":"object",
565      "properties":{
566        "requestId":{
567          "type":"string",
568          "description":"A unique Id for an ONAP transaction."
569        },
570        "transactionId":{
571          "type":"string",
572          "description":"A unique ID to track multiple requests associated with a transaction."
573        },
574        "statusMessage":{
575          "type":"string",
576          "description":"Reasoning if a requestStatus is failure."
577        },
578        "requestStatus":{
579          "type":"string",
580          "description":"The status of a request."
581        },
582        "solutions":{
583          "$ref":"#/definitions/InterDomainRouteSolutionInfo"
584        }
585      }
586    },
587    "InterDomainRouteSolutionInfo":{
588      "type":"object",
589      "properties":{
590        "routeInfo":{
591          "$ref":"#/definitions/interDomainResponseRouteinfo"
592        }
593      }
594    },
595    "interDomainResponseRouteinfo":{
596      "type":"object",
597      "properties":{
598        "serviceRoute":{
599          "type":"array",
600          "items":{
601            "$ref":"#/definitions/serviceRouteDetails"
602          }
603        },
604        "linkList":{
605          "type":"array",
606          "items":{
607            "type":"string"
608          },
609          "description":"A list of link names of the route.",
610          "example":[
611            "link1",
612            "link2"
613          ]
614        }
615      }
616    },
617    "serviceRouteDetails":{
618      "type":"object",
619      "properties":{
620        "srcInterfaceId":{
621          "type":"string",
622          "description":"Source port Id of the domain Service."
623        },
624        "dstInterfaceId":{
625          "type":"string",
626          "description":"Destination Port Id of the domain Service."
627        },
628        "controllerId":{
629          "type":"string",
630          "description":"Controller Id of the domain."
631        }
632      }
633     },
634     "RouteRequest": {
635       "type": "object",
636       "properties": {
637         "requestInfo": {
638           "$ref": "#/definitions/requestInfo"
639         },
640         "routeInfo": {
641           "$ref": "#/definitions/routeInfo"
642         }
643       }
644     },
645     "requestInfo": {
646       "type": "object",
647       "properties": {
648         "transactionId": {
649           "type": "string",
650           "description": "A unique ID to track an ONAP transaction."
651         },
652         "requestId": {
653           "type": "string",
654           "description": "A unique ID to track multiple requests associated with a transaction."
655         },
656         "callbackUrl": {
657           "type": "string",
658           "description": "The end point of a callback service where recommendations are posted."
659         },
660         "callbackHeader": {
661           "type": "string",
662           "description": "The header information a client expecting in a async callback."
663         },
664         "sourceId": {
665           "type": "string",
666           "description": "The unique ID of a client making an optimization call."
667         },
668         "requestType": {
669           "type": "string",
670           "format": "string",
671           "description": "The type of request being placed.",
672           "enum": [
673             "create",
674             "update",
675             "delete"
676           ]
677         },
678         "numSolutions": {
679           "type": "integer",
680           "format": "int32",
681           "description": "Expected number of solutions. numSolution can also be specified using an optimization query policies, where the default configured value is 1. The value from a request gets higher precedence over the value defined in a policy."
682         },
683         "optimizers": {
684           "description": "A list of optimization services that can be used to resolve the route",
685           "type": "array",
686           "items": {
687             "type": "string"
688           }
689         },
690         "timeout": {
691           "type": "integer",
692           "format": "int32",
693           "description": "A tolerance window (in secs) for expecting solutions. Default is 600 secs."
694         }
695       }
696     },
697     "routeInfo": {
698       "type": "object",
699       "properties": {
700         "routeRequest": {
701           "$ref": "#/definitions/routeRequest"
702         }
703       }
704     },
705     "routeRequest": {
706       "type": "object",
707       "properties": {
708         "srcPort": {
709           "$ref": "#/definitions/routePortInfo"
710         },
711         "destPort": {
712           "$ref": "#/definitions/routePortInfo"
713         }
714       }
715     },
716     "routePortInfo": {
717       "type": "object",
718       "properties": {
719         "accessTopologyId": {
720           "type": "string",
721           "description": "A unique ID of the Access Topology."
722         },
723         "accessClientId": {
724           "type": "string",
725           "format": "string",
726           "description": "A unique ID of the client which provides the access."
727         },
728         "accessProviderId": {
729           "type": "string",
730           "format": "string",
731           "description": "A unique ID of the access provider"
732         },
733         "accessNodeId": {
734           "type": "string",
735           "format": "string",
736           "description": "A unique ID of the node to/from which the route has to be established."
737         },
738         "accessLtpId": {
739           "type": "integer",
740           "format": "int32",
741           "description": "A unique ID of the Termination Point to/from which the route has to be established."
742         }
743       }
744     },
745     "routeResponseBody": {
746       "type": "object",
747       "properties": {
748         "requestId": {
749           "type": "string",
750           "description": "A unique Id for an ONAP transaction."
751         },
752         "transactionId": {
753           "type": "string",
754           "description": "A unique ID to track multiple requests associated with a transaction."
755         },
756         "statusMessage": {
757           "type": "string",
758           "description": "Reasoning if a requestStatus is failure."
759         },
760         "requestStatus": {
761           "type": "string",
762           "description": "The status of a request."
763         },
764         "solutions": {
765           "$ref": "#/definitions/RouteSolutionInfo"
766         }
767       }
768     },
769     "RouteSolutionInfo": {
770       "type": "object",
771       "properties": {
772         "startTime": {
773           "type": "string",
774           "format": "date-time",
775           "description": "start time of the operation in  RFC 3339 notation for example, 2017-07-21T17:32:28Z."
776         },
777         "finishTime": {
778           "type": "string",
779           "format": "date-time",
780           "description": "end time of the operation in  RFC 3339 notation for example, 2017-07-21T17:32:28Z."
781         },
782         "links": {
783           "description": "A list of vpn info that can be used to establish the route between source and destination port/node.",
784           "type": "array",
785           "items": {
786             "$ref": "#/definitions/link"
787           }
788         }
789       }
790     },
791     "link": {
792       "type": "object",
793       "properties": {
794         "linkId": {
795           "type": "string",
796           "description": "Id or name identifies a link uniquely."
797         }
798       }
799     },
800     "PlacementRequest": {
801       "type": "object",
802       "required": [
803         "requestInfo",
804         "placementInfo",
805         "licenseInfo",
806         "serviceInfo"
807       ],
808       "properties": {
809         "requestInfo": {
810           "$ref": "#/definitions/RequestInfo"
811         },
812         "placementInfo": {
813           "$ref": "#/definitions/PlacementInfo"
814         },
815         "licenseInfo": {
816           "$ref": "#/definitions/LicenseInfo"
817         },
818         "serviceInfo": {
819           "$ref": "#/definitions/ServiceInfo"
820         }
821       }
822     },
823     "RequestInfo": {
824       "type": "object",
825       "required": [
826         "transactionId",
827         "requestId",
828         "callbackUrl",
829         "sourceId",
830         "requestType",
831         "optimizers",
832         "timeout"
833       ],
834       "properties": {
835         "transactionId": {
836           "type": "string",
837           "format": "uuid",
838           "description": "unique ID to track an ONAP transaction",
839           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
840         },
841         "requestId": {
842           "type": "string",
843           "format": "uuid",
844           "description": "A unique ID to track multiple requests associated with a transaction",
845           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
846         },
847         "callbackUrl": {
848           "type": "string",
849           "format": "url",
850           "description": "The end point of a callback service where recommendations are posted.",
851           "example": "myDomain.com/myCallback"
852         },
853         "callbackHeader": {
854           "type": "string",
855           "description": "JSON blob. The header information a client expecting in a async callback.",
856           "example": {
857             "blob": "content"
858           }
859         },
860         "sourceId": {
861           "type": "string",
862           "description": "The unique ID of a client making an optimization call.",
863           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
864         },
865         "requestType": {
866           "type": "string",
867           "enum": [
868             "create",
869             "update",
870             "delete"
871           ],
872           "description": "The type of a request",
873           "example": "create"
874         },
875         "numSolutions": {
876           "type": "integer",
877           "description": "Expected number of solutions.",
878           "example": 1
879         },
880         "optimizers": {
881           "type": "array",
882           "items": {
883             "type": "string",
884             "enum": [
885               "placement",
886               "pci",
887               "pci-anr"
888             ]
889           },
890           "description": "A list of optimization services.",
891           "example": [
892             "placement"
893           ]
894         },
895         "timeout": {
896           "type": "integer",
897           "description": "A tolerance window (in second) for expecting solutions.",
898           "example": 5
899         }
900       }
901     },
902     "PlacementInfo": {
903       "type": "object",
904       "required": [
905         "requestParameters",
906         "placementDemands"
907       ],
908       "properties": {
909         "requestParameters": {
910           "type": "string",
911           "description": "JSON blob. A service ordering information",
912           "example": {
913             "blob": "content"
914           }
915         },
916         "placementDemands": {
917           "type": "array",
918           "items": {
919             "$ref": "#/definitions/PlacementDemand"
920           },
921           "description": "The resource information for a placement service"
922         },
923         "subscriberInfo": {
924           "type": "object",
925           "items": {
926             "$ref": "#/definitions/SubscriberInfo"
927           },
928           "description": "The information of a service subscriber."
929         }
930       }
931     },
932     "PlacementDemand": {
933       "type": "object",
934       "required": [
935         "resourceModuleName",
936         "serviceResourceId",
937         "resourceModelInfo"
938       ],
939       "properties": {
940         "resourceModuleName": {
941           "type": "string",
942           "description": "A resource name as defined in a service mode",
943           "example": "myResourceName"
944         },
945         "serviceResourceId": {
946           "type": "string",
947           "description": "A unique resource Id with a local scope between client and OOF.",
948           "example": "myResourceId"
949         },
950         "givenPlacement": {
951           "type": "object",
952           "additionalProperties": {
953             "type": "object",
954             "properties": {
955               "key": {
956                 "type": "string"
957               },
958               "value": {
959                 "type": "string"
960               }
961             }
962           },
963           "description": "placement parameters defined in the ordering system, keyname include tenantId",
964           "example": {
965             "tenantId": "1"
966           }
967         },
968         "resourceModelInfo": {
969           "$ref": "#/definitions/ModelMetaData"
970         },
971         "existingCandidates": {
972           "$ref": "#/definitions/Candidates"
973         },
974         "excludedCandidates": {
975           "$ref": "#/definitions/Candidates"
976         },
977         "requiredCandidates": {
978           "$ref": "#/definitions/Candidates"
979         }
980       }
981     },
982     "ModelMetaData": {
983       "type": "object",
984       "required": [
985         "modelInvariantId",
986         "modelVersionId"
987       ],
988       "properties": {
989         "modelInvariantId": {
990           "type": "string",
991           "description": "A model invariant Id as defined in a service model.",
992           "example": "my model invariant Id"
993         },
994         "modelVersionId": {
995           "type": "string",
996           "description": "A unique model Id as defined in a service model.",
997           "example": "my unique model Id"
998         },
999         "modelName": {
1000           "type": "string",
1001           "description": "A model name as defined in a service model",
1002           "example": "my model name"
1003         },
1004         "modelType": {
1005           "type": "string",
1006           "description": "A model type as defined in a service model.",
1007           "example": "my model type"
1008         },
1009         "modelVersion": {
1010           "type": "string",
1011           "description": "A model version as defined in a service model.",
1012           "example": "my model version"
1013         },
1014         "modelCustomizationName": {
1015           "type": "string",
1016           "description": "A model customization name as defined in a service model.",
1017           "example": "my model customization"
1018         }
1019       }
1020     },
1021     "Candidates": {
1022       "type": "object",
1023       "required": [
1024         "identifierType",
1025         "identifiers"
1026       ],
1027       "properties": {
1028         "identifierType": {
1029           "type": "string",
1030           "enum": [
1031             "service_instance_id",
1032             "vnf_name",
1033             "cloud_region_id"
1034           ],
1035           "description": "The type of a candidate.",
1036           "example": "service_instance_id"
1037         },
1038         "identifiers": {
1039           "type": "array",
1040           "items": {
1041             "type": "string"
1042           },
1043           "description": "A list of identifiers.",
1044           "example": "candidateId"
1045         },
1046         "cloudOwner": {
1047           "type": "string",
1048           "description": "The name of a cloud owner. Only required if identifierType is cloud_region_id",
1049           "example": "cloud_owner"
1050         }
1051       }
1052     },
1053     "SubscriberInfo": {
1054       "type": "object",
1055       "required": [
1056         "globalSubscriberId",
1057         "subscriberName",
1058         "subscriberCommonSiteId"
1059       ],
1060       "properties": {
1061         "globalSubscriberId": {
1062           "type": "string",
1063           "description": "An ID of a subscriber.",
1064           "example": "subscriber_id"
1065         },
1066         "subscriberName": {
1067           "type": "string",
1068           "description": "The name of a subscriber. If the name is not known, the value must be 'unknown'",
1069           "example": "subscriber_name"
1070         },
1071         "subscriberCommonSiteId": {
1072           "type": "string",
1073           "description": "Id representing a subscriber location",
1074           "example": "subscriber_location_id"
1075         }
1076       }
1077     },
1078     "LicenseInfo": {
1079       "type": "object",
1080       "required": [
1081         "licenseDemands"
1082       ],
1083       "properties": {
1084         "licenseDemands": {
1085           "type": "array",
1086           "items": {
1087             "$ref": "#/definitions/LicenseDemands"
1088           },
1089           "description": "A list of resources for license selection"
1090         }
1091       }
1092     },
1093     "LicenseDemands": {
1094       "type": "object",
1095       "required": [
1096         "resourceModuleName",
1097         "serviceResourceId",
1098         "resourceModelInfo"
1099       ],
1100       "properties": {
1101         "resourceModuleName": {
1102           "type": "string",
1103           "description": "A resource name as defined in a service model.",
1104           "example": "service_instance_id"
1105         },
1106         "serviceResourceId": {
1107           "type": "string",
1108           "description": "A unique resource Id with a local scope between client and OOF.",
1109           "example": "service_instance_id"
1110         },
1111         "resourceModelInfo": {
1112           "$ref": "#/definitions/ModelMetaData"
1113         },
1114         "existingLicenses": {
1115           "$ref": "#/definitions/LicenseModel"
1116         }
1117       }
1118     },
1119     "LicenseModel": {
1120       "type": "object",
1121       "required": [
1122         "entitlementPoolUUID",
1123         "licenseKeyGroupUUID"
1124       ],
1125       "properties": {
1126         "entitlementPoolUUID": {
1127           "type": "array",
1128           "items": {
1129             "type": "string",
1130             "format": "uuid"
1131           },
1132           "description": "Entitlement pool UUIDs associated with a resource.",
1133           "example": "candidateId"
1134         },
1135         "licenseKeyGroupUUID": {
1136           "type": "array",
1137           "items": {
1138             "type": "string",
1139             "format": "uuid"
1140           },
1141           "description": "License key groups associated with a resource",
1142           "example": "candidateId"
1143         }
1144       }
1145     },
1146     "SynchronousResponse": {
1147       "type": "object",
1148       "required": [
1149         "requestId",
1150         "transactionId",
1151         "requestStatus"
1152       ],
1153       "properties": {
1154         "requestId": {
1155           "type": "string",
1156           "format": "uuid",
1157           "description": "A unique Id for an ONAP transaction",
1158           "example": "ONAP transaction id"
1159         },
1160         "transactionId": {
1161           "type": "string",
1162           "format": "uuid",
1163           "description": "A unique ID to track multiple requests associated with a transaction.",
1164           "example": "requests id"
1165         },
1166         "statusMessage": {
1167           "type": "string",
1168           "description": "Reasoning if a requestStatus is failure.",
1169           "example": "requestStatus"
1170         },
1171         "requestStatus": {
1172           "type": "string",
1173           "enum": [
1174             "success",
1175             "failure"
1176           ],
1177           "description": "The status of a request.",
1178           "example": "success"
1179         }
1180       }
1181     },
1182     "SynchronousTerminationResponse": {
1183       "type": "object",
1184       "required": [
1185         "requestId",
1186         "transactionId",
1187         "requestStatus",
1188         "terminateResponse"
1189       ],
1190       "properties": {
1191         "requestId": {
1192           "type": "string",
1193           "format": "uuid",
1194           "description": "A unique Id for an ONAP transaction",
1195           "example": "ONAP transaction id"
1196         },
1197         "transactionId": {
1198           "type": "string",
1199           "format": "uuid",
1200           "description": "A unique ID to track multiple requests associated with a transaction.",
1201           "example": "requests id"
1202         },
1203         "statusMessage": {
1204           "type": "string",
1205           "description": "Reasoning if a requestStatus is failure.",
1206           "example": "requestStatus"
1207         },
1208         "requestStatus": {
1209           "type": "string",
1210           "enum": [
1211             "success",
1212             "failure"
1213           ],
1214           "description": "The status of a request.",
1215           "example": "success"
1216         },
1217         "terminateResponse": {
1218           "type": "boolean"
1219         },
1220         "reason": {
1221           "type": "string",
1222           "description": "Reason if terminateResponse is false",
1223           "example": "Restricted by Policy"
1224         }
1225       }
1226     },
1227     "PlacementAsynchronousResponse": {
1228       "type": "object",
1229       "required": [
1230         "requestId",
1231         "transactionId",
1232         "requestStatus",
1233         "solutions"
1234       ],
1235       "properties": {
1236         "requestId": {
1237           "type": "string",
1238           "format": "uuid",
1239           "description": "A unique Id for an ONAP transaction",
1240           "example": "ONAP transaction id"
1241         },
1242         "transactionId": {
1243           "type": "string",
1244           "format": "uuid",
1245           "description": "A unique ID to track multiple requests associated with a transaction.",
1246           "example": "requests id"
1247         },
1248         "statusMessage": {
1249           "type": "string",
1250           "description": "Reasoning if a requestStatus is failure.",
1251           "example": "requestStatus"
1252         },
1253         "requestStatus": {
1254           "type": "string",
1255           "enum": [
1256             "success",
1257             "failure"
1258           ],
1259           "description": "The status of a request.",
1260           "example": "success"
1261         },
1262         "solutions": {
1263           "$ref": "#/definitions/Solutions"
1264         }
1265       }
1266     },
1267     "Solutions": {
1268       "type": "object",
1269       "required": [
1270         "placementSolutions",
1271         "licenseSolutions"
1272       ],
1273       "properties": {
1274         "placementSolutions": {
1275           "type": "array",
1276           "items": {
1277             "$ref": "#/definitions/ComprehensiveSolution"
1278           },
1279           "description": "A list of placement solutions."
1280         },
1281         "licenseSolutions": {
1282           "type": "array",
1283           "items": {
1284             "$ref": "#/definitions/LicenseSolution"
1285           },
1286           "description": "A list of license solutions."
1287         }
1288       }
1289     },
1290     "ComprehensiveSolution": {
1291       "type": "object",
1292       "required": [
1293         "placementSolutions"
1294       ],
1295       "properties": {
1296         "placementSolutions": {
1297           "type": "array",
1298           "items": {
1299             "$ref": "#/definitions/PlacementSolution"
1300           },
1301           "description": "A list of placement solutions."
1302         }
1303       }
1304     },
1305     "PlacementSolution": {
1306       "type": "object",
1307       "required": [
1308         "resourceModuleName",
1309         "serviceResourceId",
1310         "identifierType",
1311         "identifier"
1312       ],
1313       "properties": {
1314         "resourceModuleName": {
1315           "type": "string",
1316           "description": "The name of a resource as defined in the service model",
1317           "example": "resource name"
1318         },
1319         "serviceResourceId": {
1320           "type": "string",
1321           "description": "A resource Id as defined in a service model.",
1322           "example": "resource id"
1323         },
1324         "identifierType": {
1325           "type": "string",
1326           "enum": [
1327             "service_instance_id"
1328           ],
1329           "description": "The type of a candidate.",
1330           "example": "candidate type"
1331         },
1332         "identifier": {
1333           "type": "string",
1334           "description": "The id of a candidate.",
1335           "example": "candidate id"
1336         },
1337         "assignmentInfo": {
1338           "type": "array",
1339           "items": {
1340             "$ref": "#/definitions/AssignmentInfo"
1341           },
1342           "description": "Additional information related to a candidate."
1343         }
1344       }
1345     },
1346     "AssignmentInfo": {
1347       "type": "object",
1348       "required": [
1349         "key",
1350         "value"
1351       ],
1352       "properties": {
1353         "key": {
1354           "type": "string",
1355           "description": "An attribute name",
1356           "example": "attribute name"
1357         },
1358         "value": {
1359           "type": "string",
1360           "description": "An attribute value.",
1361           "example": "attribute value"
1362         }
1363       }
1364     },
1365     "LicenseSolution": {
1366       "type": "object",
1367       "required": [
1368         "resourceModuleName",
1369         "serviceResourceId",
1370         "entitlementPoolUUID",
1371         "licenseKeyGroupUUID",
1372         "entitlementPoolInvariantUUID",
1373         "licenseKeyGroupInvariantUUID"
1374       ],
1375       "properties": {
1376         "resourceModuleName": {
1377           "type": "string",
1378           "description": "A resource name as defined in a service",
1379           "example": "resource name"
1380         },
1381         "serviceResourceId": {
1382           "type": "string",
1383           "description": "A resource Id as defined in a service.",
1384           "example": "resource Id"
1385         },
1386         "entitlementPoolUUID": {
1387           "type": "array",
1388           "items": {
1389             "type": "string",
1390             "format": "uuid"
1391           },
1392           "description": "A list of entitlementPoolUUIDs",
1393           "example": "entitlementPoolUUID"
1394         },
1395         "licenseKeyGroupUUID": {
1396           "type": "array",
1397           "items": {
1398             "type": "string",
1399             "format": "uuid"
1400           },
1401           "description": "A list of licenseKeyGroupUUID.",
1402           "example": "licenseKeyGroupUUID"
1403         },
1404         "entitlementPoolInvariantUUID": {
1405           "type": "array",
1406           "items": {
1407             "type": "string",
1408             "format": "uuid"
1409           },
1410           "description": "A list of entitlementPoolInvariantUUID",
1411           "example": "entitlementPoolInvariantUUID"
1412         },
1413         "licenseKeyGroupInvariantUUID": {
1414           "type": "array",
1415           "items": {
1416             "type": "string",
1417             "format": "uuid"
1418           },
1419           "description": "A list of licenseKeyGroupInvariantUUID",
1420           "example": "licenseKeyGroupInvariantUUID"
1421         }
1422       }
1423     },
1424     "ServiceInfo": {
1425       "type": "object",
1426       "required": [
1427         "serviceInstanceId",
1428         "modelInfo",
1429         "serviceName"
1430       ],
1431       "properties": {
1432         "serviceInstanceId": {
1433           "type": "string",
1434           "description": "A service instance id associated with a request.",
1435           "example": "service_instance_id"
1436         },
1437         "modelInfo": {
1438           "$ref": "#/definitions/ModelMetaData"
1439         },
1440         "serviceName": {
1441           "type": "string",
1442           "description": "The name of a service",
1443           "example": "service_name"
1444         }
1445       }
1446     },
1447     "PCIOptRequest": {
1448       "type": "object",
1449       "required": [
1450         "requestInfo",
1451         "cellInfo"
1452       ],
1453       "properties": {
1454         "requestInfo": {
1455           "$ref": "#/definitions/RequestInfo"
1456         },
1457         "cellInfo": {
1458           "$ref": "#/definitions/CellInfo"
1459         }
1460       }
1461     },
1462     "CellInfo": {
1463       "type": "object",
1464       "required": [
1465         "networkId",
1466         "cellIdList",
1467         "anrInputList",
1468         "trigger"
1469       ],
1470       "properties": {
1471         "networkId": {
1472           "type": "string",
1473           "description": "Id of network requiring PCI optimization",
1474           "example": 100
1475         },
1476         "cellIdList": {
1477           "type": "array",
1478           "items": {
1479             "type": "string"
1480           },
1481           "description": "List of cellIds triggering need for PCI optimization (eg.potential confusion)",
1482           "example": [
1483             "cell0001",
1484             "cell0002"
1485           ]
1486         },
1487         "anrInputList": {
1488           "type": "array",
1489           "items": {
1490             "$ref": "#/definitions/ANRInfo"
1491           },
1492           "description": "A list of ANR Input."
1493         },
1494         "fixedPCICells": {
1495           "type": "array",
1496           "items": {
1497             "type": "string"
1498           },
1499           "description": "List of blacklisted cells whose PCI values should not be changed",
1500           "example": [
1501             "cell0007",
1502             "cell0009"
1503           ]
1504         },
1505         "priorityTreatmentCells": {
1506           "type": "array",
1507           "items": {
1508             "type": "string"
1509           },
1510           "description": "List of cells which should be given special treatment during optimization",
1511           "example": [
1512             "cell0010",
1513             "cell0003"
1514           ]
1515         },
1516         "trigger": {
1517           "type": "string",
1518           "description": "Type of trigger causing need for PCI optimization",
1519           "example": "NbrListChange"
1520         }
1521       }
1522     },
1523     "PCIAsynchronousResponse": {
1524       "type": "object",
1525       "required": [
1526         "requestId",
1527         "transactionId",
1528         "requestStatus",
1529         "solutions"
1530       ],
1531       "properties": {
1532         "requestId": {
1533           "type": "string",
1534           "format": "uuid",
1535           "description": "A unique Id for an ONAP transaction",
1536           "example": "ONAP transaction id"
1537         },
1538         "transactionId": {
1539           "type": "string",
1540           "format": "uuid",
1541           "description": "A unique ID to track multiple requests associated with a transaction.",
1542           "example": "requests id"
1543         },
1544         "statusMessage": {
1545           "type": "string",
1546           "description": "Reasoning if a requestStatus is failure.",
1547           "example": "requestStatus"
1548         },
1549         "requestStatus": {
1550           "type": "string",
1551           "enum": [
1552             "success",
1553             "failure"
1554           ],
1555           "description": "The status of a request.",
1556           "example": "success"
1557         },
1558         "solutions": {
1559           "$ref": "#/definitions/PCIANRSolutions"
1560         }
1561       }
1562     },
1563     "PCIANRSolutions": {
1564       "type": "object",
1565       "required": [
1566         "networkId",
1567         "pciSolutions",
1568         "anrSolutions"
1569       ],
1570       "properties": {
1571         "networkId": {
1572           "type": "string",
1573           "description": "Id of network requiring PCI optimization",
1574           "example": 100
1575         },
1576         "pciSolutions": {
1577           "type": "array",
1578           "items": {
1579             "$ref": "#/definitions/PCISolution"
1580           },
1581           "description": "A list of PCI solutions."
1582         },
1583         "anrSolutions": {
1584           "type": "array",
1585           "items": {
1586             "$ref": "#/definitions/ANRInfo"
1587           },
1588           "description": "A list of ANR solutions."
1589         }
1590       }
1591     },
1592     "PCISolution": {
1593       "type": "object",
1594       "required": [
1595         "cellId",
1596         "pci"
1597       ],
1598       "properties": {
1599         "cellId": {
1600           "type": "string",
1601           "description": "cellId with modified PCI value",
1602           "example": "cell0001"
1603         },
1604         "pci": {
1605           "type": "integer",
1606           "description": "New PCI value for cellId",
1607           "example": 1
1608         }
1609       }
1610     },
1611     "ANRInfo": {
1612       "type": "object",
1613       "required": [
1614         "cellId",
1615         "removeableNeighbors"
1616       ],
1617       "properties": {
1618         "cellId": {
1619           "type": "string",
1620           "description": "cellId with modified PCI value",
1621           "example": "cell0001"
1622         },
1623         "removeableNeighbors": {
1624           "type": "array",
1625           "items": {
1626             "type": "string"
1627           },
1628           "description": "List of neighbors to be removed",
1629           "example": [
1630             "cell0002",
1631             "cell0003"
1632           ]
1633         }
1634       }
1635     },
1636     "NSTSelectionRequest": {
1637       "type": "object",
1638       "required": [
1639         "requestInfo",
1640         "serviceProfile"
1641       ],
1642       "properties": {
1643         "requestInfo": {
1644           "$ref": "#/definitions/RequestInfo2"
1645         },
1646         "serviceProfile": {
1647           "$ref": "#/definitions/ServiceProfile"
1648         }
1649       }
1650     },
1651     "NSISelectionRequest": {
1652       "type": "object",
1653       "required": [
1654         "requestInfo",
1655         "serviceProfile",
1656         "NSTInfo",
1657         "NSSTInfo",
1658         "subnetCapabilities"
1659       ],
1660       "properties": {
1661         "serviceProfile": {
1662           "$ref": "#/definitions/ServiceProfile"
1663         },
1664         "requestInfo": {
1665           "$ref": "#/definitions/RequestInfo2"
1666         },
1667         "NSTInfo": {
1668           "$ref": "#/definitions/NSTInfo"
1669         },
1670         "NSSTInfo": {
1671           "type": "array",
1672           "description": "List of constituent NSST(s) of the NST",
1673           "items": {
1674             "$ref": "#/definitions/NSSTInfo"
1675           }
1676         },
1677         "preferReuse": {
1678           "type": "boolean",
1679           "description": "true if reusing an existing NSI is preferred/false if creating a new NSI is preferred "
1680         },
1681         "subnetCapabilities": {
1682           "type": "array",
1683           "description": "List of subnet capabilities",
1684           "items": {
1685             "$ref": "#/definitions/SubnetCapability"
1686           }
1687         }
1688       }
1689     },
1690     "NSSISelectionRequest": {
1691       "type": "object",
1692       "required": [
1693         "requestInfo",
1694         "NSSTInfo",
1695         "sliceProfile"
1696       ],
1697       "properties": {
1698         "sliceProfile": {
1699           "$ref": "#/definitions/SliceProfile"
1700         },
1701         "requestInfo": {
1702           "$ref": "#/definitions/RequestInfo2"
1703         },
1704         "NSSTInfo": {
1705           "$ref": "#/definitions/NSSTInfo"
1706         }
1707       }
1708     },
1709     "NxITerminationRequest": {
1710       "type": "object",
1711       "required": [
1712         "requestInfo",
1713         "type",
1714         "NxIId"
1715       ],
1716       "properties": {
1717         "type": {
1718           "type": "string",
1719           "enum": [
1720              "NSI", 
1721              "NSSI"       
1722            ],
1723           "description": "indicates if the request is for NSI/NSSI termination"
1724         },
1725         "NxIId": {
1726           "type": "string",
1727           "format": "UUID",
1728           "description": "Id of NSI / NSSI"
1729         },
1730         "UUID": {
1731           "type": "string",
1732           "format": "UUID",
1733           "description": "UUID of NST/NSST model"
1734         },
1735         "invariantUUID": {
1736           "type": "string",
1737           "format": "UUID",
1738           "description": "invariant UUID of NST/NSST model"
1739         },
1740         "requestInfo": {
1741           "$ref": "#/definitions/RequestInfo2"
1742         }
1743       }
1744     },
1745     "SubnetCapability": {
1746       "type": "object",
1747       "required": [
1748         "domainType",
1749         "capabilityDetails"
1750       ],
1751       "properties": {
1752         "domainType": {
1753           "type": "string",
1754           "description": "type of the subnet"
1755         },
1756         "capabilityDetails": {
1757           "type": "string",
1758           "description": "A JSON object containing capability parameters",
1759           "example": {
1760             "blob": "content"
1761           }
1762         }
1763       }
1764     },
1765     "NSTInfo": {
1766       "type": "object",
1767       "required": [
1768         "UUID",
1769         "invariantUUID",
1770         "name"
1771       ],
1772       "properties": {
1773         "UUID": {
1774           "type": "string",
1775           "format": "uuid",
1776           "description": "UUID of NST"
1777         },
1778         "invariantUUID": {
1779           "type": "string",
1780           "format": "uuid",
1781           "description": "Invariant UUID"
1782         },
1783         "name": {
1784           "type": "string",
1785           "description": "name of the NST model"
1786         }
1787       }
1788     },
1789     "NSSTInfo": {
1790       "type": "object",
1791       "required": [
1792         "UUID",
1793         "invariantUUID",
1794         "name"
1795       ],
1796       "properties": {
1797         "UUID": {
1798           "type": "string",
1799           "format": "uuid",
1800           "description": "UUID of NSST"
1801         },
1802         "invariantUUID": {
1803           "type": "string",
1804           "format": "uuid",
1805           "description": "Invariant UUID"
1806         },
1807         "name": {
1808           "type": "string",
1809           "description": "name of the NSST model"
1810         }
1811       }
1812     },
1813     "ServiceProfile": {
1814       "type": "string",
1815       "description": "JSON blob. Containing service profile parameters. The contents are based on 3GPP TS 23.541 Release 16 contents, and will be in the form of attribute value pairs.",
1816       "example": {
1817         "blob": "content"
1818       }
1819     },
1820     "SliceProfile": {
1821       "type": "string",
1822       "description": "JSON blob. Containing slice profile parameters. The contents are based on 3GPP TS 23.541 Release 16 contents, and will be in the form of attribute value pairs.",
1823       "example": {
1824         "blob": "content"
1825       }
1826     },
1827     "RequestInfo2": {
1828       "type": "object",
1829       "required": [
1830         "transactionId",
1831         "requestId",
1832         "callbackUrl",
1833         "sourceId"
1834       ],
1835       "properties": {
1836         "transactionId": {
1837           "type": "string",
1838           "format": "uuid",
1839           "description": "unique ID to track an ONAP transaction",
1840           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1841         },
1842         "requestId": {
1843           "type": "string",
1844           "format": "uuid",
1845           "description": "A unique ID to track multiple requests associated with a transaction",
1846           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1847         },
1848         "callbackUrl": {
1849           "type": "string",
1850           "format": "url",
1851           "description": "The end point of a callback service where recommendations are posted.",
1852           "example": "myDomain.com/myCallback"
1853         },
1854         "callbackHeader": {
1855           "type": "string",
1856           "description": "JSON blob. The header information a client expecting in a async callback.",
1857           "example": {
1858             "blob": "content"
1859           }
1860         },
1861         "sourceId": {
1862           "type": "string",
1863           "description": "The unique ID of a client making an optimization call.",
1864           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1865         },
1866         "timeout": {
1867           "type": "integer",
1868           "description": "A tolerance window (in second) for expecting solutions.",
1869           "example": 5
1870         },
1871         "numSolutions": {
1872           "type": "integer",
1873           "description": "Expected number of solutions.",
1874           "example": 1
1875         },
1876         "addtnlArgs": {
1877           "type": "string",
1878           "description": "Any additional parameters that have to be considered during selection",
1879           "example": {
1880             "blob": "content"
1881           }
1882         }
1883       }
1884     },
1885     "NSTAsynchronousResponse": {
1886       "type": "object",
1887       "required": [
1888         "transactionId",
1889         "requestId",
1890         "requestStatus",
1891         "solutions"
1892       ],
1893       "properties": {
1894         "transactionId": {
1895           "type": "string",
1896           "format": "uuid",
1897           "description": "unique ID to track an ONAP transaction",
1898           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1899         },
1900         "requestId": {
1901           "type": "string",
1902           "format": "uuid",
1903           "description": "A unique ID to track multiple requests associated with a transaction",
1904           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1905         },
1906         "statusMessage": {
1907           "type": "string",
1908           "description": "Reasoning if a requestStatus is failed."
1909         },
1910         "requestStatus": {
1911           "type": "string",
1912           "enum": [
1913             "completed",
1914             "failed",
1915             "pending"
1916           ],
1917           "description": "The status of a request."
1918         },
1919         "solutions": {
1920           "type": "array",
1921           "items": {
1922             "$ref": "#/definitions/NSTSolution"
1923           },
1924           "description": "A list of NST solutions"
1925         }
1926       }
1927     },
1928     "NSTSolution": {
1929       "type": "object",
1930       "required": [
1931         "UUID",
1932         "NSTName",
1933         "invariantUUID",
1934         "matchLevel"
1935       ],
1936       "properties": {
1937         "invariantUUID": {
1938           "type": "string",
1939           "format": "uuid",
1940           "description": "Invariant UUID of NST"
1941         },
1942         "UUID": {
1943           "type": "string",
1944           "format": "UUID of NST"
1945         },
1946         "NSTName": {
1947           "type": "string",
1948           "description": "NST name"
1949         },
1950         "matchLevel": {
1951           "type": "string",
1952           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
1953         }
1954       }
1955     },
1956     "NSIAsynchronousResponse": {
1957       "type": "object",
1958       "required": [
1959         "transactionId",
1960         "requestId",
1961         "requestStatus",
1962         "solutions"
1963       ],
1964       "properties": {
1965         "transactionId": {
1966           "type": "string",
1967           "format": "uuid",
1968           "description": "unique ID to track an ONAP transaction",
1969           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1970         },
1971         "requestId": {
1972           "type": "string",
1973           "format": "uuid",
1974           "description": "A unique ID to track multiple requests associated with a transaction",
1975           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1976         },
1977         "statusMessage": {
1978           "type": "string",
1979           "description": "Reasoning if a requestStatus is failed."
1980         },
1981         "requestStatus": {
1982           "type": "string",
1983           "enum": [
1984             "completed",
1985             "failed",
1986             "pending"
1987           ],
1988           "description": "The status of a request."
1989         },
1990         "solutions": {
1991           "type": "array",
1992           "items": {
1993             "$ref": "#/definitions/NSISolution"
1994           },
1995           "description": "A list of NSI solutions"
1996         }
1997       }
1998     },
1999     "NSISolution": {
2000       "type": "object",
2001       "required": [
2002         "existingNSI"
2003       ],
2004       "properties": {
2005         "existingNSI": {
2006           "type": "boolean",
2007           "description": "true if NSISolution object has shareNSISolution/false if NSISolution object has newNSISolution"
2008         },
2009         "sharedNSISolution": {
2010           "$ref": "#/definitions/SharedNSISolution"
2011         },
2012         "newNSISolution": {
2013           "$ref": "#/definitions/NewNSISolution"
2014         }
2015       }
2016     },
2017     "SharedNSISolution": {
2018       "type": "object",
2019       "required": [
2020         "invariantUUID",
2021         "UUID",
2022         "NSIName",
2023         "NSIId",
2024         "matchLevel"
2025       ],
2026       "properties": {
2027         "invariantUUID": {
2028           "type": "string",
2029           "format": "uuid",
2030           "description": "Invariant UUID of NST"
2031         },
2032         "UUID": {
2033           "type": "string",
2034           "format": "uuid",
2035           "description": "UUID of NST"
2036         },
2037         "NSIName": {
2038           "type": "string",
2039           "description": "Name of NSI"
2040         },
2041         "NSIId": {
2042           "type": "string",
2043           "format": "uuid",
2044           "description": "Instance Id of NSI"
2045         },
2046         "matchLevel": {
2047           "type": "string",
2048           "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank"
2049         }
2050       }
2051     },
2052     "NewNSISolution": {
2053       "type": "object",
2054       "required": [
2055         "sliceProfiles",
2056         "matchLevel"
2057       ],
2058       "properties": {
2059         "sliceProfiles": {
2060           "type": "array",
2061           "description": "List of slice profiles",
2062           "items": {
2063             "$ref": "#/definitions/SliceProfile"
2064           }
2065         },
2066         "matchLevel": {
2067           "type": "string",
2068           "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank"
2069         }
2070       }
2071     },
2072     "NSSIAsynchronousResponse": {
2073       "type": "object",
2074       "required": [
2075         "transactionId",
2076         "requestId",
2077         "requestStatus",
2078         "solutions"
2079       ],
2080       "properties": {
2081         "transactionId": {
2082           "type": "string",
2083           "format": "uuid",
2084           "description": "unique ID to track an ONAP transaction",
2085           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
2086         },
2087         "requestId": {
2088           "type": "string",
2089           "format": "uuid",
2090           "description": "A unique ID to track multiple requests associated with a transaction",
2091           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
2092         },
2093         "statusMessage": {
2094           "type": "string",
2095           "description": "Reasoning if a requestStatus is failed."
2096         },
2097         "requestStatus": {
2098           "type": "string",
2099           "enum": [
2100             "completed",
2101             "failed",
2102             "pending"
2103           ],
2104           "description": "The status of a request."
2105         },
2106         "solutions": {
2107           "type": "array",
2108           "items": {
2109             "$ref": "#/definitions/SharedNSSISolution"
2110           },
2111           "description": "A list of NSSI solutions, empty list will be returned if no solution is found"
2112         }
2113       }
2114     },
2115     "SharedNSSISolution": {
2116       "type": "object",
2117       "required": [
2118         "invariantUUID",
2119         "UUID",
2120         "NSSIName",
2121         "NSSIId",
2122         "matchLevel"
2123       ],
2124       "properties": {
2125         "invariantUUID": {
2126           "type": "string",
2127           "format": "uuid",
2128           "description": "Invariant UUID of NSST"
2129         },
2130         "UUID": {
2131           "type": "string",
2132           "format": "uuid",
2133           "description": "UUID of NSST"
2134         },
2135         "NSSIName": {
2136           "type": "string",
2137           "description": "Name of NSSI"
2138         },
2139         "NSSIId": {
2140           "type": "string",
2141           "description": "Instance Id of NSSI"
2142         },
2143         "matchLevel": {
2144           "type": "string",
2145           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
2146         }
2147       }
2148     }
2149   },
2150   "schemes": [
2151     "https"
2152   ],
2153   "host": "virtserver.swaggerhub.com",
2154   "basePath": "/oof-osdf/v1"
2155 }