Updated Swagger doc for the Inter Domain
[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/route/v1": {
371       "post": {
372         "tags": [
373           "Route Select"
374         ],
375         "summary": "Find the optimistic route between OTN domains",
376         "description": "",
377         "operationId": "getRoute",
378         "consumes": [
379           "application/json"
380         ],
381         "produces": [
382           "application/json"
383         ],
384         "parameters": [
385           {
386             "in": "body",
387             "name": "body",
388             "description": "Source and Destination nodes across which optmistic route have to be obtained.",
389             "required": true,
390             "schema": {
391               "$ref": "#/definitions/RouteRequest"
392             }
393           }
394         ],
395         "responses": {
396           "200": {
397             "description": "successful operation",
398             "schema": {
399               "type": "array",
400               "items": {
401                 "$ref": "#/definitions/routeResponseBody"
402               }
403             }
404           },
405           "405": {
406             "description": "Invalid input"
407           }
408         }
409       }
410     },
411     "/api/oof/mdons/route/v1": {
412       "post": {
413         "tags": [
414          "Inter Domain Route Select"
415         ],
416         "summary":"Find the optimistic inter domain route for multi domain optical system",
417         "description":"",
418         "operationId":"getInterDomainRoute",
419         "consumes": [
420           "application/json"
421         ],
422         "produces":[
423           "application/json"
424         ],
425         "parameters":[
426           {
427             "in":"body",
428             "name":"body",
429             "description":"Source and Destination interfaces across which optmistic route have to be obtained.",
430             "required":true,
431             "schema":{
432              "$ref":"#/definitions/InterDomainRouteRequest"
433             }
434           }
435         ],
436         "responses":{
437          "200":{
438           "description":"successful operation",
439           "schema":{
440             "$ref":"#/definitions/InterDomainRouteResponseBody"
441           }
442          },
443         "400":{
444          "description":"bad request"
445        },
446         "401":{
447           "description":"Request body is not compliant with the API definition"
448         },
449        "404":{
450           "description":"The server cannot find the requested URI"
451        },
452        "405":{
453          "description":"The requested method is not supported by a server."
454        },
455        "500":{
456           "description":"The server encountered an internal server error or timed out"
457        }
458       }
459      }
460    }
461   },
462   "definitions": {
463    "InterDomainRouteRequest":{
464      "type":"object",
465      "properties":{
466        "requestInfo":{
467          "$ref":"#/definitions/requestInfo"
468        },
469        "routeInfo":{
470          "$ref":"#/definitions/interDomainRouteInfo"
471        }
472      }
473    },
474    "interDomainRouteInfo":{
475      "type":"object",
476      "properties":{
477        "routeRequest":{
478          "$ref":"#/definitions/interDomainRouteRequest"
479        }
480      }
481    },
482    "interDomainRouteRequest":{
483      "type":"object",
484      "properties":{
485        "srcDetails":{
486          "$ref":"#/definitions/interDomainPortDetails"
487        },
488        "dstDetails":{
489          "$ref":"#/definitions/interDomainPortDetails"
490        },
491        "serviceRate":{
492          "type":"string",
493          "description":"The rate of the service."
494        }
495      }
496    },
497    "interDomainPortDetails":{
498      "type":"object",
499      "properties":{
500        "interfaceId":{
501          "type":"string",
502          "description":"The port id."
503        },
504        "nodeId":{
505          "type":"string",
506          "description":"The node id."
507        },
508        "controllerId":{
509          "type":"string",
510          "description":"The controller id to which the node belongs to."
511        }
512      }
513    },
514    "InterDomainRouteResponseBody":{
515      "type":"object",
516      "properties":{
517        "requestId":{
518          "type":"string",
519          "description":"A unique Id for an ONAP transaction."
520        },
521        "transactionId":{
522          "type":"string",
523          "description":"A unique ID to track multiple requests associated with a transaction."
524        },
525        "statusMessage":{
526          "type":"string",
527          "description":"Reasoning if a requestStatus is failure."
528        },
529        "requestStatus":{
530          "type":"string",
531          "description":"The status of a request."
532        },
533        "solutions":{
534          "$ref":"#/definitions/InterDomainRouteSolutionInfo"
535        }
536      }
537    },
538    "InterDomainRouteSolutionInfo":{
539      "type":"object",
540      "properties":{
541        "routeInfo":{
542          "$ref":"#/definitions/interDomainResponseRouteinfo"
543        }
544      }
545    },
546    "interDomainResponseRouteinfo":{
547      "type":"object",
548      "properties":{
549        "serviceRoute":{
550          "type":"array",
551          "items":{
552            "$ref":"#/definitions/serviceRouteDetails"
553          }
554        },
555        "linkList":{
556          "type":"array",
557          "items":{
558            "type":"string"
559          },
560          "description":"A list of link names of the route.",
561          "example":[
562            "link1",
563            "link2"
564          ]
565        }
566      }
567    },
568    "serviceRouteDetails":{
569      "type":"object",
570      "properties":{
571        "srcInterfaceId":{
572          "type":"string",
573          "description":"Source port Id of the domain Service."
574        },
575        "dstInterfaceId":{
576          "type":"string",
577          "description":"Destination Port Id of the domain Service."
578        },
579        "controllerId":{
580          "type":"string",
581          "description":"Controller Id of the domain."
582        }
583      }
584     },
585     "RouteRequest": {
586       "type": "object",
587       "properties": {
588         "requestInfo": {
589           "$ref": "#/definitions/requestInfo"
590         },
591         "routeInfo": {
592           "$ref": "#/definitions/routeInfo"
593         }
594       }
595     },
596     "requestInfo": {
597       "type": "object",
598       "properties": {
599         "transactionId": {
600           "type": "string",
601           "description": "A unique ID to track an ONAP transaction."
602         },
603         "requestId": {
604           "type": "string",
605           "description": "A unique ID to track multiple requests associated with a transaction."
606         },
607         "callbackUrl": {
608           "type": "string",
609           "description": "The end point of a callback service where recommendations are posted."
610         },
611         "callbackHeader": {
612           "type": "string",
613           "description": "The header information a client expecting in a async callback."
614         },
615         "sourceId": {
616           "type": "string",
617           "description": "The unique ID of a client making an optimization call."
618         },
619         "requestType": {
620           "type": "string",
621           "format": "string",
622           "description": "The type of request being placed.",
623           "enum": [
624             "create",
625             "update",
626             "delete"
627           ]
628         },
629         "numSolutions": {
630           "type": "integer",
631           "format": "int32",
632           "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."
633         },
634         "optimizers": {
635           "description": "A list of optimization services that can be used to resolve the route",
636           "type": "array",
637           "items": {
638             "type": "string"
639           }
640         },
641         "timeout": {
642           "type": "integer",
643           "format": "int32",
644           "description": "A tolerance window (in secs) for expecting solutions. Default is 600 secs."
645         }
646       }
647     },
648     "routeInfo": {
649       "type": "object",
650       "properties": {
651         "routeRequest": {
652           "$ref": "#/definitions/routeRequest"
653         }
654       }
655     },
656     "routeRequest": {
657       "type": "object",
658       "properties": {
659         "srcPort": {
660           "$ref": "#/definitions/routePortInfo"
661         },
662         "destPort": {
663           "$ref": "#/definitions/routePortInfo"
664         }
665       }
666     },
667     "routePortInfo": {
668       "type": "object",
669       "properties": {
670         "accessTopologyId": {
671           "type": "string",
672           "description": "A unique ID of the Access Topology."
673         },
674         "accessClientId": {
675           "type": "string",
676           "format": "string",
677           "description": "A unique ID of the client which provides the access."
678         },
679         "accessProviderId": {
680           "type": "string",
681           "format": "string",
682           "description": "A unique ID of the access provider"
683         },
684         "accessNodeId": {
685           "type": "string",
686           "format": "string",
687           "description": "A unique ID of the node to/from which the route has to be established."
688         },
689         "accessLtpId": {
690           "type": "integer",
691           "format": "int32",
692           "description": "A unique ID of the Termination Point to/from which the route has to be established."
693         }
694       }
695     },
696     "routeResponseBody": {
697       "type": "object",
698       "properties": {
699         "requestId": {
700           "type": "string",
701           "description": "A unique Id for an ONAP transaction."
702         },
703         "transactionId": {
704           "type": "string",
705           "description": "A unique ID to track multiple requests associated with a transaction."
706         },
707         "statusMessage": {
708           "type": "string",
709           "description": "Reasoning if a requestStatus is failure."
710         },
711         "requestStatus": {
712           "type": "string",
713           "description": "The status of a request."
714         },
715         "solutions": {
716           "$ref": "#/definitions/RouteSolutionInfo"
717         }
718       }
719     },
720     "RouteSolutionInfo": {
721       "type": "object",
722       "properties": {
723         "startTime": {
724           "type": "string",
725           "format": "date-time",
726           "description": "start time of the operation in  RFC 3339 notation for example, 2017-07-21T17:32:28Z."
727         },
728         "finishTime": {
729           "type": "string",
730           "format": "date-time",
731           "description": "end time of the operation in  RFC 3339 notation for example, 2017-07-21T17:32:28Z."
732         },
733         "links": {
734           "description": "A list of vpn info that can be used to establish the route between source and destination port/node.",
735           "type": "array",
736           "items": {
737             "$ref": "#/definitions/link"
738           }
739         }
740       }
741     },
742     "link": {
743       "type": "object",
744       "properties": {
745         "linkId": {
746           "type": "string",
747           "description": "Id or name identifies a link uniquely."
748         }
749       }
750     },
751     "PlacementRequest": {
752       "type": "object",
753       "required": [
754         "requestInfo",
755         "placementInfo",
756         "licenseInfo",
757         "serviceInfo"
758       ],
759       "properties": {
760         "requestInfo": {
761           "$ref": "#/definitions/RequestInfo"
762         },
763         "placementInfo": {
764           "$ref": "#/definitions/PlacementInfo"
765         },
766         "licenseInfo": {
767           "$ref": "#/definitions/LicenseInfo"
768         },
769         "serviceInfo": {
770           "$ref": "#/definitions/ServiceInfo"
771         }
772       }
773     },
774     "RequestInfo": {
775       "type": "object",
776       "required": [
777         "transactionId",
778         "requestId",
779         "callbackUrl",
780         "sourceId",
781         "requestType",
782         "optimizers",
783         "timeout"
784       ],
785       "properties": {
786         "transactionId": {
787           "type": "string",
788           "format": "uuid",
789           "description": "unique ID to track an ONAP transaction",
790           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
791         },
792         "requestId": {
793           "type": "string",
794           "format": "uuid",
795           "description": "A unique ID to track multiple requests associated with a transaction",
796           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
797         },
798         "callbackUrl": {
799           "type": "string",
800           "format": "url",
801           "description": "The end point of a callback service where recommendations are posted.",
802           "example": "myDomain.com/myCallback"
803         },
804         "callbackHeader": {
805           "type": "string",
806           "description": "JSON blob. The header information a client expecting in a async callback.",
807           "example": {
808             "blob": "content"
809           }
810         },
811         "sourceId": {
812           "type": "string",
813           "description": "The unique ID of a client making an optimization call.",
814           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
815         },
816         "requestType": {
817           "type": "string",
818           "enum": [
819             "create",
820             "update",
821             "delete"
822           ],
823           "description": "The type of a request",
824           "example": "create"
825         },
826         "numSolutions": {
827           "type": "integer",
828           "description": "Expected number of solutions.",
829           "example": 1
830         },
831         "optimizers": {
832           "type": "array",
833           "items": {
834             "type": "string",
835             "enum": [
836               "placement",
837               "pci",
838               "pci-anr"
839             ]
840           },
841           "description": "A list of optimization services.",
842           "example": [
843             "placement"
844           ]
845         },
846         "timeout": {
847           "type": "integer",
848           "description": "A tolerance window (in second) for expecting solutions.",
849           "example": 5
850         }
851       }
852     },
853     "PlacementInfo": {
854       "type": "object",
855       "required": [
856         "requestParameters",
857         "placementDemands"
858       ],
859       "properties": {
860         "requestParameters": {
861           "type": "string",
862           "description": "JSON blob. A service ordering information",
863           "example": {
864             "blob": "content"
865           }
866         },
867         "placementDemands": {
868           "type": "array",
869           "items": {
870             "$ref": "#/definitions/PlacementDemand"
871           },
872           "description": "The resource information for a placement service"
873         },
874         "subscriberInfo": {
875           "type": "object",
876           "items": {
877             "$ref": "#/definitions/SubscriberInfo"
878           },
879           "description": "The information of a service subscriber."
880         }
881       }
882     },
883     "PlacementDemand": {
884       "type": "object",
885       "required": [
886         "resourceModuleName",
887         "serviceResourceId",
888         "resourceModelInfo"
889       ],
890       "properties": {
891         "resourceModuleName": {
892           "type": "string",
893           "description": "A resource name as defined in a service mode",
894           "example": "myResourceName"
895         },
896         "serviceResourceId": {
897           "type": "string",
898           "description": "A unique resource Id with a local scope between client and OOF.",
899           "example": "myResourceId"
900         },
901         "givenPlacement": {
902           "type": "object",
903           "additionalProperties": {
904             "type": "object",
905             "properties": {
906               "key": {
907                 "type": "string"
908               },
909               "value": {
910                 "type": "string"
911               }
912             }
913           },
914           "description": "placement parameters defined in the ordering system, keyname include tenantId",
915           "example": {
916             "tenantId": "1"
917           }
918         },
919         "resourceModelInfo": {
920           "$ref": "#/definitions/ModelMetaData"
921         },
922         "existingCandidates": {
923           "$ref": "#/definitions/Candidates"
924         },
925         "excludedCandidates": {
926           "$ref": "#/definitions/Candidates"
927         },
928         "requiredCandidates": {
929           "$ref": "#/definitions/Candidates"
930         }
931       }
932     },
933     "ModelMetaData": {
934       "type": "object",
935       "required": [
936         "modelInvariantId",
937         "modelVersionId"
938       ],
939       "properties": {
940         "modelInvariantId": {
941           "type": "string",
942           "description": "A model invariant Id as defined in a service model.",
943           "example": "my model invariant Id"
944         },
945         "modelVersionId": {
946           "type": "string",
947           "description": "A unique model Id as defined in a service model.",
948           "example": "my unique model Id"
949         },
950         "modelName": {
951           "type": "string",
952           "description": "A model name as defined in a service model",
953           "example": "my model name"
954         },
955         "modelType": {
956           "type": "string",
957           "description": "A model type as defined in a service model.",
958           "example": "my model type"
959         },
960         "modelVersion": {
961           "type": "string",
962           "description": "A model version as defined in a service model.",
963           "example": "my model version"
964         },
965         "modelCustomizationName": {
966           "type": "string",
967           "description": "A model customization name as defined in a service model.",
968           "example": "my model customization"
969         }
970       }
971     },
972     "Candidates": {
973       "type": "object",
974       "required": [
975         "identifierType",
976         "identifiers"
977       ],
978       "properties": {
979         "identifierType": {
980           "type": "string",
981           "enum": [
982             "service_instance_id",
983             "vnf_name",
984             "cloud_region_id"
985           ],
986           "description": "The type of a candidate.",
987           "example": "service_instance_id"
988         },
989         "identifiers": {
990           "type": "array",
991           "items": {
992             "type": "string"
993           },
994           "description": "A list of identifiers.",
995           "example": "candidateId"
996         },
997         "cloudOwner": {
998           "type": "string",
999           "description": "The name of a cloud owner. Only required if identifierType is cloud_region_id",
1000           "example": "cloud_owner"
1001         }
1002       }
1003     },
1004     "SubscriberInfo": {
1005       "type": "object",
1006       "required": [
1007         "globalSubscriberId",
1008         "subscriberName",
1009         "subscriberCommonSiteId"
1010       ],
1011       "properties": {
1012         "globalSubscriberId": {
1013           "type": "string",
1014           "description": "An ID of a subscriber.",
1015           "example": "subscriber_id"
1016         },
1017         "subscriberName": {
1018           "type": "string",
1019           "description": "The name of a subscriber. If the name is not known, the value must be 'unknown'",
1020           "example": "subscriber_name"
1021         },
1022         "subscriberCommonSiteId": {
1023           "type": "string",
1024           "description": "Id representing a subscriber location",
1025           "example": "subscriber_location_id"
1026         }
1027       }
1028     },
1029     "LicenseInfo": {
1030       "type": "object",
1031       "required": [
1032         "licenseDemands"
1033       ],
1034       "properties": {
1035         "licenseDemands": {
1036           "type": "array",
1037           "items": {
1038             "$ref": "#/definitions/LicenseDemands"
1039           },
1040           "description": "A list of resources for license selection"
1041         }
1042       }
1043     },
1044     "LicenseDemands": {
1045       "type": "object",
1046       "required": [
1047         "resourceModuleName",
1048         "serviceResourceId",
1049         "resourceModelInfo"
1050       ],
1051       "properties": {
1052         "resourceModuleName": {
1053           "type": "string",
1054           "description": "A resource name as defined in a service model.",
1055           "example": "service_instance_id"
1056         },
1057         "serviceResourceId": {
1058           "type": "string",
1059           "description": "A unique resource Id with a local scope between client and OOF.",
1060           "example": "service_instance_id"
1061         },
1062         "resourceModelInfo": {
1063           "$ref": "#/definitions/ModelMetaData"
1064         },
1065         "existingLicenses": {
1066           "$ref": "#/definitions/LicenseModel"
1067         }
1068       }
1069     },
1070     "LicenseModel": {
1071       "type": "object",
1072       "required": [
1073         "entitlementPoolUUID",
1074         "licenseKeyGroupUUID"
1075       ],
1076       "properties": {
1077         "entitlementPoolUUID": {
1078           "type": "array",
1079           "items": {
1080             "type": "string",
1081             "format": "uuid"
1082           },
1083           "description": "Entitlement pool UUIDs associated with a resource.",
1084           "example": "candidateId"
1085         },
1086         "licenseKeyGroupUUID": {
1087           "type": "array",
1088           "items": {
1089             "type": "string",
1090             "format": "uuid"
1091           },
1092           "description": "License key groups associated with a resource",
1093           "example": "candidateId"
1094         }
1095       }
1096     },
1097     "SynchronousResponse": {
1098       "type": "object",
1099       "required": [
1100         "requestId",
1101         "transactionId",
1102         "requestStatus"
1103       ],
1104       "properties": {
1105         "requestId": {
1106           "type": "string",
1107           "format": "uuid",
1108           "description": "A unique Id for an ONAP transaction",
1109           "example": "ONAP transaction id"
1110         },
1111         "transactionId": {
1112           "type": "string",
1113           "format": "uuid",
1114           "description": "A unique ID to track multiple requests associated with a transaction.",
1115           "example": "requests id"
1116         },
1117         "statusMessage": {
1118           "type": "string",
1119           "description": "Reasoning if a requestStatus is failure.",
1120           "example": "requestStatus"
1121         },
1122         "requestStatus": {
1123           "type": "string",
1124           "enum": [
1125             "success",
1126             "failure"
1127           ],
1128           "description": "The status of a request.",
1129           "example": "success"
1130         }
1131       }
1132     },
1133     "PlacementAsynchronousResponse": {
1134       "type": "object",
1135       "required": [
1136         "requestId",
1137         "transactionId",
1138         "requestStatus",
1139         "solutions"
1140       ],
1141       "properties": {
1142         "requestId": {
1143           "type": "string",
1144           "format": "uuid",
1145           "description": "A unique Id for an ONAP transaction",
1146           "example": "ONAP transaction id"
1147         },
1148         "transactionId": {
1149           "type": "string",
1150           "format": "uuid",
1151           "description": "A unique ID to track multiple requests associated with a transaction.",
1152           "example": "requests id"
1153         },
1154         "statusMessage": {
1155           "type": "string",
1156           "description": "Reasoning if a requestStatus is failure.",
1157           "example": "requestStatus"
1158         },
1159         "requestStatus": {
1160           "type": "string",
1161           "enum": [
1162             "success",
1163             "failure"
1164           ],
1165           "description": "The status of a request.",
1166           "example": "success"
1167         },
1168         "solutions": {
1169           "$ref": "#/definitions/Solutions"
1170         }
1171       }
1172     },
1173     "Solutions": {
1174       "type": "object",
1175       "required": [
1176         "placementSolutions",
1177         "licenseSolutions"
1178       ],
1179       "properties": {
1180         "placementSolutions": {
1181           "type": "array",
1182           "items": {
1183             "$ref": "#/definitions/ComprehensiveSolution"
1184           },
1185           "description": "A list of placement solutions."
1186         },
1187         "licenseSolutions": {
1188           "type": "array",
1189           "items": {
1190             "$ref": "#/definitions/LicenseSolution"
1191           },
1192           "description": "A list of license solutions."
1193         }
1194       }
1195     },
1196     "ComprehensiveSolution": {
1197       "type": "object",
1198       "required": [
1199         "placementSolutions"
1200       ],
1201       "properties": {
1202         "placementSolutions": {
1203           "type": "array",
1204           "items": {
1205             "$ref": "#/definitions/PlacementSolution"
1206           },
1207           "description": "A list of placement solutions."
1208         }
1209       }
1210     },
1211     "PlacementSolution": {
1212       "type": "object",
1213       "required": [
1214         "resourceModuleName",
1215         "serviceResourceId",
1216         "identifierType",
1217         "identifier"
1218       ],
1219       "properties": {
1220         "resourceModuleName": {
1221           "type": "string",
1222           "description": "The name of a resource as defined in the service model",
1223           "example": "resource name"
1224         },
1225         "serviceResourceId": {
1226           "type": "string",
1227           "description": "A resource Id as defined in a service model.",
1228           "example": "resource id"
1229         },
1230         "identifierType": {
1231           "type": "string",
1232           "enum": [
1233             "service_instance_id"
1234           ],
1235           "description": "The type of a candidate.",
1236           "example": "candidate type"
1237         },
1238         "identifier": {
1239           "type": "string",
1240           "description": "The id of a candidate.",
1241           "example": "candidate id"
1242         },
1243         "assignmentInfo": {
1244           "type": "array",
1245           "items": {
1246             "$ref": "#/definitions/AssignmentInfo"
1247           },
1248           "description": "Additional information related to a candidate."
1249         }
1250       }
1251     },
1252     "AssignmentInfo": {
1253       "type": "object",
1254       "required": [
1255         "key",
1256         "value"
1257       ],
1258       "properties": {
1259         "key": {
1260           "type": "string",
1261           "description": "An attribute name",
1262           "example": "attribute name"
1263         },
1264         "value": {
1265           "type": "string",
1266           "description": "An attribute value.",
1267           "example": "attribute value"
1268         }
1269       }
1270     },
1271     "LicenseSolution": {
1272       "type": "object",
1273       "required": [
1274         "resourceModuleName",
1275         "serviceResourceId",
1276         "entitlementPoolUUID",
1277         "licenseKeyGroupUUID",
1278         "entitlementPoolInvariantUUID",
1279         "licenseKeyGroupInvariantUUID"
1280       ],
1281       "properties": {
1282         "resourceModuleName": {
1283           "type": "string",
1284           "description": "A resource name as defined in a service",
1285           "example": "resource name"
1286         },
1287         "serviceResourceId": {
1288           "type": "string",
1289           "description": "A resource Id as defined in a service.",
1290           "example": "resource Id"
1291         },
1292         "entitlementPoolUUID": {
1293           "type": "array",
1294           "items": {
1295             "type": "string",
1296             "format": "uuid"
1297           },
1298           "description": "A list of entitlementPoolUUIDs",
1299           "example": "entitlementPoolUUID"
1300         },
1301         "licenseKeyGroupUUID": {
1302           "type": "array",
1303           "items": {
1304             "type": "string",
1305             "format": "uuid"
1306           },
1307           "description": "A list of licenseKeyGroupUUID.",
1308           "example": "licenseKeyGroupUUID"
1309         },
1310         "entitlementPoolInvariantUUID": {
1311           "type": "array",
1312           "items": {
1313             "type": "string",
1314             "format": "uuid"
1315           },
1316           "description": "A list of entitlementPoolInvariantUUID",
1317           "example": "entitlementPoolInvariantUUID"
1318         },
1319         "licenseKeyGroupInvariantUUID": {
1320           "type": "array",
1321           "items": {
1322             "type": "string",
1323             "format": "uuid"
1324           },
1325           "description": "A list of licenseKeyGroupInvariantUUID",
1326           "example": "licenseKeyGroupInvariantUUID"
1327         }
1328       }
1329     },
1330     "ServiceInfo": {
1331       "type": "object",
1332       "required": [
1333         "serviceInstanceId",
1334         "modelInfo",
1335         "serviceName"
1336       ],
1337       "properties": {
1338         "serviceInstanceId": {
1339           "type": "string",
1340           "description": "A service instance id associated with a request.",
1341           "example": "service_instance_id"
1342         },
1343         "modelInfo": {
1344           "$ref": "#/definitions/ModelMetaData"
1345         },
1346         "serviceName": {
1347           "type": "string",
1348           "description": "The name of a service",
1349           "example": "service_name"
1350         }
1351       }
1352     },
1353     "PCIOptRequest": {
1354       "type": "object",
1355       "required": [
1356         "requestInfo",
1357         "cellInfo"
1358       ],
1359       "properties": {
1360         "requestInfo": {
1361           "$ref": "#/definitions/RequestInfo"
1362         },
1363         "cellInfo": {
1364           "$ref": "#/definitions/CellInfo"
1365         }
1366       }
1367     },
1368     "CellInfo": {
1369       "type": "object",
1370       "required": [
1371         "networkId",
1372         "cellIdList",
1373         "anrInputList",
1374         "trigger"
1375       ],
1376       "properties": {
1377         "networkId": {
1378           "type": "string",
1379           "description": "Id of network requiring PCI optimization",
1380           "example": 100
1381         },
1382         "cellIdList": {
1383           "type": "array",
1384           "items": {
1385             "type": "string"
1386           },
1387           "description": "List of cellIds triggering need for PCI optimization (eg.potential confusion)",
1388           "example": [
1389             "cell0001",
1390             "cell0002"
1391           ]
1392         },
1393         "anrInputList": {
1394           "type": "array",
1395           "items": {
1396             "$ref": "#/definitions/ANRInfo"
1397           },
1398           "description": "A list of ANR Input."
1399         },
1400         "fixedPCICells": {
1401           "type": "array",
1402           "items": {
1403             "type": "string"
1404           },
1405           "description": "List of blacklisted cells whose PCI values should not be changed",
1406           "example": [
1407             "cell0007",
1408             "cell0009"
1409           ]
1410         },
1411         "priorityTreatmentCells": {
1412           "type": "array",
1413           "items": {
1414             "type": "string"
1415           },
1416           "description": "List of cells which should be given special treatment during optimization",
1417           "example": [
1418             "cell0010",
1419             "cell0003"
1420           ]
1421         },
1422         "trigger": {
1423           "type": "string",
1424           "description": "Type of trigger causing need for PCI optimization",
1425           "example": "NbrListChange"
1426         }
1427       }
1428     },
1429     "PCIAsynchronousResponse": {
1430       "type": "object",
1431       "required": [
1432         "requestId",
1433         "transactionId",
1434         "requestStatus",
1435         "solutions"
1436       ],
1437       "properties": {
1438         "requestId": {
1439           "type": "string",
1440           "format": "uuid",
1441           "description": "A unique Id for an ONAP transaction",
1442           "example": "ONAP transaction id"
1443         },
1444         "transactionId": {
1445           "type": "string",
1446           "format": "uuid",
1447           "description": "A unique ID to track multiple requests associated with a transaction.",
1448           "example": "requests id"
1449         },
1450         "statusMessage": {
1451           "type": "string",
1452           "description": "Reasoning if a requestStatus is failure.",
1453           "example": "requestStatus"
1454         },
1455         "requestStatus": {
1456           "type": "string",
1457           "enum": [
1458             "success",
1459             "failure"
1460           ],
1461           "description": "The status of a request.",
1462           "example": "success"
1463         },
1464         "solutions": {
1465           "$ref": "#/definitions/PCIANRSolutions"
1466         }
1467       }
1468     },
1469     "PCIANRSolutions": {
1470       "type": "object",
1471       "required": [
1472         "networkId",
1473         "pciSolutions",
1474         "anrSolutions"
1475       ],
1476       "properties": {
1477         "networkId": {
1478           "type": "string",
1479           "description": "Id of network requiring PCI optimization",
1480           "example": 100
1481         },
1482         "pciSolutions": {
1483           "type": "array",
1484           "items": {
1485             "$ref": "#/definitions/PCISolution"
1486           },
1487           "description": "A list of PCI solutions."
1488         },
1489         "anrSolutions": {
1490           "type": "array",
1491           "items": {
1492             "$ref": "#/definitions/ANRInfo"
1493           },
1494           "description": "A list of ANR solutions."
1495         }
1496       }
1497     },
1498     "PCISolution": {
1499       "type": "object",
1500       "required": [
1501         "cellId",
1502         "pci"
1503       ],
1504       "properties": {
1505         "cellId": {
1506           "type": "string",
1507           "description": "cellId with modified PCI value",
1508           "example": "cell0001"
1509         },
1510         "pci": {
1511           "type": "integer",
1512           "description": "New PCI value for cellId",
1513           "example": 1
1514         }
1515       }
1516     },
1517     "ANRInfo": {
1518       "type": "object",
1519       "required": [
1520         "cellId",
1521         "removeableNeighbors"
1522       ],
1523       "properties": {
1524         "cellId": {
1525           "type": "string",
1526           "description": "cellId with modified PCI value",
1527           "example": "cell0001"
1528         },
1529         "removeableNeighbors": {
1530           "type": "array",
1531           "items": {
1532             "type": "string"
1533           },
1534           "description": "List of neighbors to be removed",
1535           "example": [
1536             "cell0002",
1537             "cell0003"
1538           ]
1539         }
1540       }
1541     },
1542     "NSTSelectionRequest": {
1543       "type": "object",
1544       "required": [
1545         "requestInfo",
1546         "serviceProfile"
1547       ],
1548       "properties": {
1549         "requestInfo": {
1550           "$ref": "#/definitions/RequestInfo2"
1551         },
1552         "serviceProfile": {
1553           "$ref": "#/definitions/ServiceProfileNst"
1554         }
1555       }
1556     },
1557     "NSISelectionRequest": {
1558       "type": "object",
1559       "required": [
1560         "requestInfo",
1561         "serviceProfile",
1562         "NSTInfo"
1563       ],
1564       "properties": {
1565         "serviceProfile": {
1566           "$ref": "#/definitions/ServiceProfile"
1567         },
1568         "requestInfo": {
1569           "$ref": "#/definitions/RequestInfo2"
1570         },
1571         "NSTInfo": {
1572           "type": "array",
1573           "description": "List of NST(s)",
1574           "items": {
1575             "$ref": "#/definitions/NSTInfo"
1576           }
1577         }
1578       }
1579     },
1580     "NSSISelectionRequest": {
1581       "type": "object",
1582       "required": [
1583         "requestInfo",
1584         "NSSTInfo",
1585         "sliceProfile"
1586       ],
1587       "properties": {
1588         "sliceProfile": {
1589           "$ref": "#/definitions/SliceProfile"
1590         },
1591         "requestInfo": {
1592           "$ref": "#/definitions/RequestInfo2"
1593         },
1594         "NSSTInfo": {
1595           "$ref": "#/definitions/NSSTInfo"
1596         }
1597       }
1598     },
1599     "NSTInfo": {
1600       "type": "object",
1601       "required": [
1602         "UUID",
1603         "invariantUUID"
1604       ],
1605       "properties": {
1606         "UUID": {
1607           "type": "string",
1608           "format": "uuid",
1609           "description": "UUID of NST"
1610         },
1611         "invariantUUID": {
1612           "type": "string",
1613           "format": "uuid",
1614           "description": "Invariant UUID"
1615         }
1616       }
1617     },
1618     "NSSTInfo": {
1619       "type": "object",
1620       "required": [
1621         "UUID",
1622         "invariantUUID"
1623       ],
1624       "properties": {
1625         "UUID": {
1626           "type": "string",
1627           "format": "uuid",
1628           "description": "UUID of NSST"
1629         },
1630         "invariantUUID": {
1631           "type": "string",
1632           "format": "uuid",
1633           "description": "Invariant UUID"
1634         }
1635       }
1636     },
1637     "ServiceProfile": {
1638       "type": "string",
1639       "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.",
1640       "example": {
1641         "blob": "content"
1642       }
1643     },
1644     "ServiceProfileNst": {
1645       "type": "object",
1646       "required": [
1647         "serviceProfileParameters"
1648       ],
1649       "properties": {
1650         "serviceProfileParameters": {
1651           "$ref": "#/definitions/ServiceProfile"
1652         }
1653       }
1654     },
1655     "SliceProfile": {
1656       "type": "string",
1657       "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.",
1658       "example": {
1659         "blob": "content"
1660       }
1661     },
1662     "RequestInfo2": {
1663       "type": "object",
1664       "required": [
1665         "transactionId",
1666         "requestId",
1667         "callbackUrl",
1668         "sourceId"
1669       ],
1670       "properties": {
1671         "transactionId": {
1672           "type": "string",
1673           "format": "uuid",
1674           "description": "unique ID to track an ONAP transaction",
1675           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1676         },
1677         "requestId": {
1678           "type": "string",
1679           "format": "uuid",
1680           "description": "A unique ID to track multiple requests associated with a transaction",
1681           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1682         },
1683         "callbackUrl": {
1684           "type": "string",
1685           "format": "url",
1686           "description": "The end point of a callback service where recommendations are posted.",
1687           "example": "myDomain.com/myCallback"
1688         },
1689         "callbackHeader": {
1690           "type": "string",
1691           "description": "JSON blob. The header information a client expecting in a async callback.",
1692           "example": {
1693             "blob": "content"
1694           }
1695         },
1696         "sourceId": {
1697           "type": "string",
1698           "description": "The unique ID of a client making an optimization call.",
1699           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1700         },
1701         "timeout": {
1702           "type": "integer",
1703           "description": "A tolerance window (in second) for expecting solutions.",
1704           "example": 5
1705         }
1706       }
1707     },
1708     "NSTAsynchronousResponse": {
1709       "type": "object",
1710       "required": [
1711         "transactionId",
1712         "requestId",
1713         "requestStatus",
1714         "solutions"
1715       ],
1716       "properties": {
1717         "transactionId": {
1718           "type": "string",
1719           "format": "uuid",
1720           "description": "unique ID to track an ONAP transaction",
1721           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1722         },
1723         "requestId": {
1724           "type": "string",
1725           "format": "uuid",
1726           "description": "A unique ID to track multiple requests associated with a transaction",
1727           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1728         },
1729         "statusMessage": {
1730           "type": "string",
1731           "description": "Reasoning if a requestStatus is failed."
1732         },
1733         "requestStatus": {
1734           "type": "string",
1735           "enum": [
1736             "completed",
1737             "failed",
1738             "pending"
1739           ],
1740           "description": "The status of a request."
1741         },
1742         "solutions": {
1743           "type": "array",
1744           "items": {
1745             "$ref": "#/definitions/NSTSolution"
1746           },
1747           "description": "A list of NST solutions"
1748         }
1749       }
1750     },
1751     "NSTSolution": {
1752       "type": "object",
1753       "required": [
1754         "UUID",
1755         "NSTName",
1756         "invariantUUID",
1757         "matchLevel"
1758       ],
1759       "properties": {
1760         "invariantUUID": {
1761           "type": "string",
1762           "format": "uuid",
1763           "description": "Invariant UUID of NST"
1764         },
1765         "UUID": {
1766           "type": "string",
1767           "format": "UUID of NST"
1768         },
1769         "NSTName": {
1770           "type": "string",
1771           "description": "NST name"
1772         },
1773         "matchLevel": {
1774           "type": "string",
1775           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
1776         }
1777       }
1778     },
1779     "NSIAsynchronousResponse": {
1780       "type": "object",
1781       "required": [
1782         "transactionId",
1783         "requestId",
1784         "requestStatus",
1785         "solutions"
1786       ],
1787       "properties": {
1788         "transactionId": {
1789           "type": "string",
1790           "format": "uuid",
1791           "description": "unique ID to track an ONAP transaction",
1792           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1793         },
1794         "requestId": {
1795           "type": "string",
1796           "format": "uuid",
1797           "description": "A unique ID to track multiple requests associated with a transaction",
1798           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
1799         },
1800         "statusMessage": {
1801           "type": "string",
1802           "description": "Reasoning if a requestStatus is failed."
1803         },
1804         "requestStatus": {
1805           "type": "string",
1806           "enum": [
1807             "completed",
1808             "failed",
1809             "pending"
1810           ],
1811           "description": "The status of a request."
1812         },
1813         "solutions": {
1814           "$ref": "#/definitions/NSISolution"
1815         }
1816       }
1817     },
1818     "NSISolution": {
1819       "type": "object",
1820       "properties": {
1821         "sharedNSIsolutions": {
1822           "type": "array",
1823           "items": {
1824             "$ref": "#/definitions/SharedNSISolution"
1825           },
1826           "description": "A list of shared NSI solutions"
1827         },
1828         "newNSISolutions": {
1829           "type": "array",
1830           "items": {
1831             "$ref": "#/definitions/NewNSISolution"
1832           },
1833           "description": "A list of new NSI solutions"
1834         }
1835       }
1836     },
1837     "SharedNSISolution": {
1838       "type": "object",
1839       "required": [
1840         "invariantUUID",
1841         "UUID",
1842         "NSIName",
1843         "NSIId",
1844         "matchLevel"
1845       ],
1846       "properties": {
1847         "invariantUUID": {
1848           "type": "string",
1849           "format": "uuid",
1850           "description": "Invariant UUID of NST"
1851         },
1852         "UUID": {
1853           "type": "string",
1854           "format": "uuid",
1855           "description": "UUID of NST"
1856         },
1857         "NSIName": {
1858           "type": "string",
1859           "description": "Name of NSI"
1860         },
1861         "NSIId": {
1862           "type": "string",
1863           "format": "uuid",
1864           "description": "Id of NSI"
1865         },
1866         "NSSIs": {
1867           "type": "array",
1868           "items": {
1869             "$ref": "#/definitions/NSSI"
1870           },
1871           "description": "A list of NSSIs"
1872         }
1873       }
1874     },
1875     "NSSI": {
1876       "type": "object",
1877       "required": [
1878         "NSSIName",
1879         "NSSIId",
1880         "UUID",
1881         "invariantUUID"
1882       ],
1883       "properties": {
1884         "NSSIName": {
1885           "type": "string",
1886           "description": "Name of NSSI"
1887         },
1888         "NSSIId": {
1889           "type": "string",
1890           "description": "Id of NSSI"
1891         },
1892         "UUID": {
1893           "type": "string",
1894           "description": "UUID of NSST"
1895         },
1896         "invariantUUID": {
1897           "type": "string",
1898           "description": "invariantUUID of NSST"
1899         },
1900         "sliceProfile": {
1901           "type": "array",
1902           "items": {
1903             "$ref": "#/definitions/SliceProfile"
1904           },
1905           "description": "list of SliceProfiles"
1906         }
1907       }
1908     },
1909     "NewNSISolution": {
1910       "type": "object",
1911       "required": [
1912         "NSSISolutions",
1913         "matchLevel"
1914       ],
1915       "properties": {
1916         "NSTInfo": {
1917           "$ref": "#/definitions/NSTResponseInfo"
1918         },
1919         "NSSISolutions": {
1920           "type": "array",
1921           "description": "List of NSSIs which when concatenated shall form the NSI, in case NSSI is not present, only the sliceProfile will be included",
1922           "items": {
1923             "$ref": "#/definitions/NSSIInfo"
1924           }
1925         },
1926         "matchLevel": {
1927           "type": "string",
1928           "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank"
1929         }
1930       }
1931     },
1932     "NSTResponseInfo": {
1933       "type": "object",
1934       "required": [
1935         "UUID",
1936         "invariantUUID",
1937         "NSTName"
1938       ],
1939       "properties": {
1940         "NSTName": {
1941           "type": "string",
1942           "description": "NST name"
1943         },
1944         "UUID": {
1945           "type": "string",
1946           "format": "uuid",
1947           "description": "UUID of NST"
1948         },
1949         "invariantUUID": {
1950           "type": "string",
1951           "format": "uuid",
1952           "description": "Invariant UUID"
1953         }
1954       }
1955     },
1956     "NSSIInfo": {
1957       "type": "object",
1958       "required": [
1959         "sliceProfile"
1960       ],
1961       "properties": {
1962         "sliceProfile": {
1963           "type": "string",
1964           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
1965         },
1966         "NSSTInfo": {
1967           "$ref": "#/definitions/NSSTResponseInfo"
1968         },
1969         "NSSISolution": {
1970           "$ref": "#/definitions/NSSIObject"
1971         }
1972       }
1973     },
1974     "NSSTResponseInfo": {
1975       "type": "object",
1976       "required": [
1977         "NSSTName",
1978         "UUID",
1979         "invariantUUID"
1980       ],
1981       "properties": {
1982         "NSSTName": {
1983           "type": "string",
1984           "description": "Name of the NSST"
1985         },
1986         "UUID": {
1987           "type": "string",
1988           "format": "uuid",
1989           "description": "UUID of NSST"
1990         },
1991         "invariantUUID": {
1992           "type": "string",
1993           "format": "uuid",
1994           "description": "Invariant UUID"
1995         }
1996       }
1997     },
1998     "NSSIObject": {
1999       "type": "object",
2000       "required": [
2001         "NSSIName",
2002         "NSSIId",
2003         "matchLevel"
2004       ],
2005       "properties": {
2006         "NSSIName": {
2007           "type": "string",
2008           "description": "Name of NSSI"
2009         },
2010         "NSSIId": {
2011           "type": "string",
2012           "description": "Id of NSSI"
2013         },
2014         "matchLevel": {
2015           "type": "string",
2016           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
2017         }
2018       }
2019     },
2020     "NSSIAsynchronousResponse": {
2021       "type": "object",
2022       "required": [
2023         "transactionId",
2024         "requestId",
2025         "requestStatus",
2026         "solutions"
2027       ],
2028       "properties": {
2029         "transactionId": {
2030           "type": "string",
2031           "format": "uuid",
2032           "description": "unique ID to track an ONAP transaction",
2033           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
2034         },
2035         "requestId": {
2036           "type": "string",
2037           "format": "uuid",
2038           "description": "A unique ID to track multiple requests associated with a transaction",
2039           "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
2040         },
2041         "statusMessage": {
2042           "type": "string",
2043           "description": "Reasoning if a requestStatus is failed."
2044         },
2045         "requestStatus": {
2046           "type": "string",
2047           "enum": [
2048             "completed",
2049             "failed",
2050             "pending"
2051           ],
2052           "description": "The status of a request."
2053         },
2054         "solutions": {
2055           "type": "array",
2056           "items": {
2057             "$ref": "#/definitions/NSSISolution"
2058           },
2059           "description": "A list of NSSI solutions"
2060         }
2061       }
2062     },
2063     "NSSISolution": {
2064       "type": "object",
2065       "required": [
2066         "invariantUUID",
2067         "UUID",
2068         "NSSIName",
2069         "NSSIId",
2070         "matchLevel"
2071       ],
2072       "properties": {
2073         "invariantUUID": {
2074           "type": "string",
2075           "format": "uuid",
2076           "description": "Invariant UUID of NSST"
2077         },
2078         "UUID": {
2079           "type": "string",
2080           "format": "uuid",
2081           "description": "UUID of NSST"
2082         },
2083         "NSSIName": {
2084           "type": "string",
2085           "description": "Name of NSSI"
2086         },
2087         "NSSIId": {
2088           "type": "string",
2089           "description": "Id of NSSI"
2090         },
2091         "matchLevel": {
2092           "type": "string",
2093           "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
2094         }
2095       }
2096     }
2097   },
2098   "schemes": [
2099     "https"
2100   ],
2101   "host": "virtserver.swaggerhub.com",
2102   "basePath": "/oof-osdf/v1"
2103 }