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