From 1668918950d5590aab82710852257c8f8b89642d Mon Sep 17 00:00:00 2001 From: dhebeha Date: Tue, 1 Sep 2020 19:14:40 +0530 Subject: add support for common swagger style - add support for redoc Issue-ID: OPTFRA-805 Signed-off-by: dhebeha Change-Id: I2ce1259a9d8f84ec1386518dbe1f286babc26d87 --- docs/api/swagger/oof-osdf-has-api.json | 2155 ++++++++++++++++++++++++++++++++ 1 file changed, 2155 insertions(+) create mode 100644 docs/api/swagger/oof-osdf-has-api.json (limited to 'docs/api/swagger/oof-osdf-has-api.json') diff --git a/docs/api/swagger/oof-osdf-has-api.json b/docs/api/swagger/oof-osdf-has-api.json new file mode 100644 index 0000000..a2fa43f --- /dev/null +++ b/docs/api/swagger/oof-osdf-has-api.json @@ -0,0 +1,2155 @@ +{ + "swagger": "2.0", + "info": { + "description": "This is the ONAP OOF OSDF (Optimization Service Design Framework) API", + "version": "1.0.0", + "title": "OSDF API", + "contact": { + "email": "frank.sandoval@oamtechnologies.com" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "securityDefinitions": { + "basicAuth": { + "type": "basic", + "description": "HTTP Basic Auth" + } + }, + "security": [ + { + "basicAuth": [] + } + ], + "paths": { + "/v2/placement": { + "post": { + "tags": [ + "Placement Optimization" + ], + "summary": "create/update a placement", + "operationId": "createPlacement", + "description": "create/update a placement", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "placementRequest", + "description": "placement request", + "schema": { + "$ref": "#/definitions/PlacementRequest" + } + } + ], + "responses": { + "201": { + "description": "An optimization solution is found." + }, + "202": { + "description": "An optimization request is accepted" + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/placement/v1": { + "post": { + "tags": [ + "Placement Optimization" + ], + "summary": "create/update a placement", + "operationId": "createPlacementv1", + "description": "create/update a placement", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "placementRequest", + "description": "placement request", + "schema": { + "$ref": "#/definitions/PlacementRequest" + } + } + ], + "responses": { + "201": { + "description": "An optimization solution is found." + }, + "202": { + "description": "An optimization request is accepted" + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/v1/pci": { + "post": { + "tags": [ + "PCI/ANR Optimization" + ], + "summary": "Initiate PCI/ANR Optimization", + "operationId": "initiatePCIOptRequest", + "description": "Initiate PCI/ANR Optimization", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "PCIOptimizationRequest", + "description": "PCI request", + "schema": { + "$ref": "#/definitions/PCIOptRequest" + } + } + ], + "responses": { + "201": { + "description": "An optimization solution is found." + }, + "202": { + "description": "An optimization request is accepted" + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/pci/v1": { + "post": { + "tags": [ + "PCI/ANR Optimization" + ], + "summary": "Initiate PCI/ANR Optimization", + "operationId": "initiatePCIOptRequestv1", + "description": "Initiate PCI/ANR Optimization", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "PCIOptimizationRequest", + "description": "PCI request", + "schema": { + "$ref": "#/definitions/PCIOptRequest" + } + } + ], + "responses": { + "201": { + "description": "An optimization solution is found." + }, + "202": { + "description": "An optimization request is accepted" + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/selection/nst/v1": { + "post": { + "tags": [ + "NST Selection" + ], + "summary": "NST selection", + "operationId": "selectNstRequest", + "description": "Request for NST selection", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "NSTSelectionRequest", + "description": "nst selection request", + "schema": { + "$ref": "#/definitions/NSTSelectionRequest" + } + } + ], + "responses": { + "202": { + "description": "An optimization request is accepted", + "schema": { + "$ref": "#/definitions/SynchronousResponse" + } + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/selection/nsi/v1": { + "post": { + "tags": [ + "NSI Selection" + ], + "summary": "NSI selection", + "operationId": "selectNsiRequest", + "description": "Request for NSI selection", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "NSISelectionRequest", + "description": "NSI selection request", + "schema": { + "$ref": "#/definitions/NSISelectionRequest" + } + } + ], + "responses": { + "202": { + "description": "An optimization request is accepted", + "schema": { + "$ref": "#/definitions/SynchronousResponse" + } + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/selection/nssi/v1": { + "post": { + "tags": [ + "NSSI Selection" + ], + "summary": "NSSI selection", + "operationId": "selectNssiRequest", + "description": "Request for NSSI selection", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "NSSISelectionRequest", + "description": "NSSI selection request", + "schema": { + "$ref": "#/definitions/NSSISelectionRequest" + } + } + ], + "responses": { + "202": { + "description": "An optimization request is accepted", + "schema": { + "$ref": "#/definitions/SynchronousResponse" + } + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/terminate/nxi/v1": { + "post": { + "tags": [ + "NSSI/NSI Termination" + ], + "summary": "NSSI/NSI Termination", + "operationId": "terminateNxiRequest", + "description": "Request for NSSI/NSI Termination", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "NxITerminationRequest", + "description": "NSSI/NSI termination request", + "schema": { + "$ref": "#/definitions/NxITerminationRequest" + } + } + ], + "responses": { + "200": { + "description": "request has succeeded", + "schema": { + "$ref": "#/definitions/SynchronousTerminationResponse" + } + }, + "400": { + "description": "bad request" + }, + "401": { + "description": "Request body is not compliant with the API definition" + }, + "404": { + "description": "The server cannot find the requested URI" + }, + "405": { + "description": "The requested method is not supported by a server." + }, + "500": { + "description": "The server encountered an internal server error or timed out" + } + } + } + }, + "/api/oof/route/v1": { + "post": { + "tags": [ + "Route Select" + ], + "summary": "Find the optimistic route between OTN domains", + "description": "", + "operationId": "getRoute", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "Source and Destination nodes across which optmistic route have to be obtained.", + "required": true, + "schema": { + "$ref": "#/definitions/RouteRequest" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/routeResponseBody" + } + } + }, + "405": { + "description": "Invalid input" + } + } + } + }, + "/api/oof/mdons/route/v1": { + "post": { + "tags": [ + "Inter Domain Route Select" + ], + "summary":"Find the optimistic inter domain route for multi domain optical system", + "description":"", + "operationId":"getInterDomainRoute", + "consumes": [ + "application/json" + ], + "produces":[ + "application/json" + ], + "parameters":[ + { + "in":"body", + "name":"body", + "description":"Source and Destination interfaces across which optmistic route have to be obtained.", + "required":true, + "schema":{ + "$ref":"#/definitions/InterDomainRouteRequest" + } + } + ], + "responses":{ + "200":{ + "description":"successful operation", + "schema":{ + "$ref":"#/definitions/InterDomainRouteResponseBody" + } + }, + "400":{ + "description":"bad request" + }, + "401":{ + "description":"Request body is not compliant with the API definition" + }, + "404":{ + "description":"The server cannot find the requested URI" + }, + "405":{ + "description":"The requested method is not supported by a server." + }, + "500":{ + "description":"The server encountered an internal server error or timed out" + } + } + } + } + }, + "definitions": { + "InterDomainRouteRequest":{ + "type":"object", + "properties":{ + "requestInfo":{ + "$ref":"#/definitions/requestInfo" + }, + "routeInfo":{ + "$ref":"#/definitions/interDomainRouteInfo" + } + } + }, + "interDomainRouteInfo":{ + "type":"object", + "properties":{ + "routeRequest":{ + "$ref":"#/definitions/interDomainRouteRequest" + } + } + }, + "interDomainRouteRequest":{ + "type":"object", + "properties":{ + "srcDetails":{ + "$ref":"#/definitions/interDomainPortDetails" + }, + "dstDetails":{ + "$ref":"#/definitions/interDomainPortDetails" + }, + "serviceRate":{ + "type":"string", + "description":"The rate of the service." + } + } + }, + "interDomainPortDetails":{ + "type":"object", + "properties":{ + "interfaceId":{ + "type":"string", + "description":"The port id." + }, + "nodeId":{ + "type":"string", + "description":"The node id." + }, + "controllerId":{ + "type":"string", + "description":"The controller id to which the node belongs to." + } + } + }, + "InterDomainRouteResponseBody":{ + "type":"object", + "properties":{ + "requestId":{ + "type":"string", + "description":"A unique Id for an ONAP transaction." + }, + "transactionId":{ + "type":"string", + "description":"A unique ID to track multiple requests associated with a transaction." + }, + "statusMessage":{ + "type":"string", + "description":"Reasoning if a requestStatus is failure." + }, + "requestStatus":{ + "type":"string", + "description":"The status of a request." + }, + "solutions":{ + "$ref":"#/definitions/InterDomainRouteSolutionInfo" + } + } + }, + "InterDomainRouteSolutionInfo":{ + "type":"object", + "properties":{ + "routeInfo":{ + "$ref":"#/definitions/interDomainResponseRouteinfo" + } + } + }, + "interDomainResponseRouteinfo":{ + "type":"object", + "properties":{ + "serviceRoute":{ + "type":"array", + "items":{ + "$ref":"#/definitions/serviceRouteDetails" + } + }, + "linkList":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"A list of link names of the route.", + "example":[ + "link1", + "link2" + ] + } + } + }, + "serviceRouteDetails":{ + "type":"object", + "properties":{ + "srcInterfaceId":{ + "type":"string", + "description":"Source port Id of the domain Service." + }, + "dstInterfaceId":{ + "type":"string", + "description":"Destination Port Id of the domain Service." + }, + "controllerId":{ + "type":"string", + "description":"Controller Id of the domain." + } + } + }, + "RouteRequest": { + "type": "object", + "properties": { + "requestInfo": { + "$ref": "#/definitions/requestInfo" + }, + "routeInfo": { + "$ref": "#/definitions/routeInfo" + } + } + }, + "requestInfo": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "A unique ID to track an ONAP transaction." + }, + "requestId": { + "type": "string", + "description": "A unique ID to track multiple requests associated with a transaction." + }, + "callbackUrl": { + "type": "string", + "description": "The end point of a callback service where recommendations are posted." + }, + "callbackHeader": { + "type": "string", + "description": "The header information a client expecting in a async callback." + }, + "sourceId": { + "type": "string", + "description": "The unique ID of a client making an optimization call." + }, + "requestType": { + "type": "string", + "format": "string", + "description": "The type of request being placed.", + "enum": [ + "create", + "update", + "delete" + ] + }, + "numSolutions": { + "type": "integer", + "format": "int32", + "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." + }, + "optimizers": { + "description": "A list of optimization services that can be used to resolve the route", + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer", + "format": "int32", + "description": "A tolerance window (in secs) for expecting solutions. Default is 600 secs." + } + } + }, + "routeInfo": { + "type": "object", + "properties": { + "routeRequest": { + "$ref": "#/definitions/routeRequest" + } + } + }, + "routeRequest": { + "type": "object", + "properties": { + "srcPort": { + "$ref": "#/definitions/routePortInfo" + }, + "destPort": { + "$ref": "#/definitions/routePortInfo" + } + } + }, + "routePortInfo": { + "type": "object", + "properties": { + "accessTopologyId": { + "type": "string", + "description": "A unique ID of the Access Topology." + }, + "accessClientId": { + "type": "string", + "format": "string", + "description": "A unique ID of the client which provides the access." + }, + "accessProviderId": { + "type": "string", + "format": "string", + "description": "A unique ID of the access provider" + }, + "accessNodeId": { + "type": "string", + "format": "string", + "description": "A unique ID of the node to/from which the route has to be established." + }, + "accessLtpId": { + "type": "integer", + "format": "int32", + "description": "A unique ID of the Termination Point to/from which the route has to be established." + } + } + }, + "routeResponseBody": { + "type": "object", + "properties": { + "requestId": { + "type": "string", + "description": "A unique Id for an ONAP transaction." + }, + "transactionId": { + "type": "string", + "description": "A unique ID to track multiple requests associated with a transaction." + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failure." + }, + "requestStatus": { + "type": "string", + "description": "The status of a request." + }, + "solutions": { + "$ref": "#/definitions/RouteSolutionInfo" + } + } + }, + "RouteSolutionInfo": { + "type": "object", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "start time of the operation in RFC 3339 notation for example, 2017-07-21T17:32:28Z." + }, + "finishTime": { + "type": "string", + "format": "date-time", + "description": "end time of the operation in RFC 3339 notation for example, 2017-07-21T17:32:28Z." + }, + "links": { + "description": "A list of vpn info that can be used to establish the route between source and destination port/node.", + "type": "array", + "items": { + "$ref": "#/definitions/link" + } + } + } + }, + "link": { + "type": "object", + "properties": { + "linkId": { + "type": "string", + "description": "Id or name identifies a link uniquely." + } + } + }, + "PlacementRequest": { + "type": "object", + "required": [ + "requestInfo", + "placementInfo", + "licenseInfo", + "serviceInfo" + ], + "properties": { + "requestInfo": { + "$ref": "#/definitions/RequestInfo" + }, + "placementInfo": { + "$ref": "#/definitions/PlacementInfo" + }, + "licenseInfo": { + "$ref": "#/definitions/LicenseInfo" + }, + "serviceInfo": { + "$ref": "#/definitions/ServiceInfo" + } + } + }, + "RequestInfo": { + "type": "object", + "required": [ + "transactionId", + "requestId", + "callbackUrl", + "sourceId", + "requestType", + "optimizers", + "timeout" + ], + "properties": { + "transactionId": { + "type": "string", + "format": "uuid", + "description": "unique ID to track an ONAP transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "callbackUrl": { + "type": "string", + "format": "url", + "description": "The end point of a callback service where recommendations are posted.", + "example": "myDomain.com/myCallback" + }, + "callbackHeader": { + "type": "string", + "description": "JSON blob. The header information a client expecting in a async callback.", + "example": { + "blob": "content" + } + }, + "sourceId": { + "type": "string", + "description": "The unique ID of a client making an optimization call.", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestType": { + "type": "string", + "enum": [ + "create", + "update", + "delete" + ], + "description": "The type of a request", + "example": "create" + }, + "numSolutions": { + "type": "integer", + "description": "Expected number of solutions.", + "example": 1 + }, + "optimizers": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "placement", + "pci", + "pci-anr" + ] + }, + "description": "A list of optimization services.", + "example": [ + "placement" + ] + }, + "timeout": { + "type": "integer", + "description": "A tolerance window (in second) for expecting solutions.", + "example": 5 + } + } + }, + "PlacementInfo": { + "type": "object", + "required": [ + "requestParameters", + "placementDemands" + ], + "properties": { + "requestParameters": { + "type": "string", + "description": "JSON blob. A service ordering information", + "example": { + "blob": "content" + } + }, + "placementDemands": { + "type": "array", + "items": { + "$ref": "#/definitions/PlacementDemand" + }, + "description": "The resource information for a placement service" + }, + "subscriberInfo": { + "type": "object", + "items": { + "$ref": "#/definitions/SubscriberInfo" + }, + "description": "The information of a service subscriber." + } + } + }, + "PlacementDemand": { + "type": "object", + "required": [ + "resourceModuleName", + "serviceResourceId", + "resourceModelInfo" + ], + "properties": { + "resourceModuleName": { + "type": "string", + "description": "A resource name as defined in a service mode", + "example": "myResourceName" + }, + "serviceResourceId": { + "type": "string", + "description": "A unique resource Id with a local scope between client and OOF.", + "example": "myResourceId" + }, + "givenPlacement": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "description": "placement parameters defined in the ordering system, keyname include tenantId", + "example": { + "tenantId": "1" + } + }, + "resourceModelInfo": { + "$ref": "#/definitions/ModelMetaData" + }, + "existingCandidates": { + "$ref": "#/definitions/Candidates" + }, + "excludedCandidates": { + "$ref": "#/definitions/Candidates" + }, + "requiredCandidates": { + "$ref": "#/definitions/Candidates" + } + } + }, + "ModelMetaData": { + "type": "object", + "required": [ + "modelInvariantId", + "modelVersionId" + ], + "properties": { + "modelInvariantId": { + "type": "string", + "description": "A model invariant Id as defined in a service model.", + "example": "my model invariant Id" + }, + "modelVersionId": { + "type": "string", + "description": "A unique model Id as defined in a service model.", + "example": "my unique model Id" + }, + "modelName": { + "type": "string", + "description": "A model name as defined in a service model", + "example": "my model name" + }, + "modelType": { + "type": "string", + "description": "A model type as defined in a service model.", + "example": "my model type" + }, + "modelVersion": { + "type": "string", + "description": "A model version as defined in a service model.", + "example": "my model version" + }, + "modelCustomizationName": { + "type": "string", + "description": "A model customization name as defined in a service model.", + "example": "my model customization" + } + } + }, + "Candidates": { + "type": "object", + "required": [ + "identifierType", + "identifiers" + ], + "properties": { + "identifierType": { + "type": "string", + "enum": [ + "service_instance_id", + "vnf_name", + "cloud_region_id" + ], + "description": "The type of a candidate.", + "example": "service_instance_id" + }, + "identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of identifiers.", + "example": "candidateId" + }, + "cloudOwner": { + "type": "string", + "description": "The name of a cloud owner. Only required if identifierType is cloud_region_id", + "example": "cloud_owner" + } + } + }, + "SubscriberInfo": { + "type": "object", + "required": [ + "globalSubscriberId", + "subscriberName", + "subscriberCommonSiteId" + ], + "properties": { + "globalSubscriberId": { + "type": "string", + "description": "An ID of a subscriber.", + "example": "subscriber_id" + }, + "subscriberName": { + "type": "string", + "description": "The name of a subscriber. If the name is not known, the value must be 'unknown'", + "example": "subscriber_name" + }, + "subscriberCommonSiteId": { + "type": "string", + "description": "Id representing a subscriber location", + "example": "subscriber_location_id" + } + } + }, + "LicenseInfo": { + "type": "object", + "required": [ + "licenseDemands" + ], + "properties": { + "licenseDemands": { + "type": "array", + "items": { + "$ref": "#/definitions/LicenseDemands" + }, + "description": "A list of resources for license selection" + } + } + }, + "LicenseDemands": { + "type": "object", + "required": [ + "resourceModuleName", + "serviceResourceId", + "resourceModelInfo" + ], + "properties": { + "resourceModuleName": { + "type": "string", + "description": "A resource name as defined in a service model.", + "example": "service_instance_id" + }, + "serviceResourceId": { + "type": "string", + "description": "A unique resource Id with a local scope between client and OOF.", + "example": "service_instance_id" + }, + "resourceModelInfo": { + "$ref": "#/definitions/ModelMetaData" + }, + "existingLicenses": { + "$ref": "#/definitions/LicenseModel" + } + } + }, + "LicenseModel": { + "type": "object", + "required": [ + "entitlementPoolUUID", + "licenseKeyGroupUUID" + ], + "properties": { + "entitlementPoolUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Entitlement pool UUIDs associated with a resource.", + "example": "candidateId" + }, + "licenseKeyGroupUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "License key groups associated with a resource", + "example": "candidateId" + } + } + }, + "SynchronousResponse": { + "type": "object", + "required": [ + "requestId", + "transactionId", + "requestStatus" + ], + "properties": { + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique Id for an ONAP transaction", + "example": "ONAP transaction id" + }, + "transactionId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction.", + "example": "requests id" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failure.", + "example": "requestStatus" + }, + "requestStatus": { + "type": "string", + "enum": [ + "success", + "failure" + ], + "description": "The status of a request.", + "example": "success" + } + } + }, + "SynchronousTerminationResponse": { + "type": "object", + "required": [ + "requestId", + "transactionId", + "requestStatus", + "terminateResponse" + ], + "properties": { + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique Id for an ONAP transaction", + "example": "ONAP transaction id" + }, + "transactionId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction.", + "example": "requests id" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failure.", + "example": "requestStatus" + }, + "requestStatus": { + "type": "string", + "enum": [ + "success", + "failure" + ], + "description": "The status of a request.", + "example": "success" + }, + "terminateResponse": { + "type": "boolean" + }, + "reason": { + "type": "string", + "description": "Reason if terminateResponse is false", + "example": "Restricted by Policy" + } + } + }, + "PlacementAsynchronousResponse": { + "type": "object", + "required": [ + "requestId", + "transactionId", + "requestStatus", + "solutions" + ], + "properties": { + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique Id for an ONAP transaction", + "example": "ONAP transaction id" + }, + "transactionId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction.", + "example": "requests id" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failure.", + "example": "requestStatus" + }, + "requestStatus": { + "type": "string", + "enum": [ + "success", + "failure" + ], + "description": "The status of a request.", + "example": "success" + }, + "solutions": { + "$ref": "#/definitions/Solutions" + } + } + }, + "Solutions": { + "type": "object", + "required": [ + "placementSolutions", + "licenseSolutions" + ], + "properties": { + "placementSolutions": { + "type": "array", + "items": { + "$ref": "#/definitions/ComprehensiveSolution" + }, + "description": "A list of placement solutions." + }, + "licenseSolutions": { + "type": "array", + "items": { + "$ref": "#/definitions/LicenseSolution" + }, + "description": "A list of license solutions." + } + } + }, + "ComprehensiveSolution": { + "type": "object", + "required": [ + "placementSolutions" + ], + "properties": { + "placementSolutions": { + "type": "array", + "items": { + "$ref": "#/definitions/PlacementSolution" + }, + "description": "A list of placement solutions." + } + } + }, + "PlacementSolution": { + "type": "object", + "required": [ + "resourceModuleName", + "serviceResourceId", + "identifierType", + "identifier" + ], + "properties": { + "resourceModuleName": { + "type": "string", + "description": "The name of a resource as defined in the service model", + "example": "resource name" + }, + "serviceResourceId": { + "type": "string", + "description": "A resource Id as defined in a service model.", + "example": "resource id" + }, + "identifierType": { + "type": "string", + "enum": [ + "service_instance_id" + ], + "description": "The type of a candidate.", + "example": "candidate type" + }, + "identifier": { + "type": "string", + "description": "The id of a candidate.", + "example": "candidate id" + }, + "assignmentInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/AssignmentInfo" + }, + "description": "Additional information related to a candidate." + } + } + }, + "AssignmentInfo": { + "type": "object", + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string", + "description": "An attribute name", + "example": "attribute name" + }, + "value": { + "type": "string", + "description": "An attribute value.", + "example": "attribute value" + } + } + }, + "LicenseSolution": { + "type": "object", + "required": [ + "resourceModuleName", + "serviceResourceId", + "entitlementPoolUUID", + "licenseKeyGroupUUID", + "entitlementPoolInvariantUUID", + "licenseKeyGroupInvariantUUID" + ], + "properties": { + "resourceModuleName": { + "type": "string", + "description": "A resource name as defined in a service", + "example": "resource name" + }, + "serviceResourceId": { + "type": "string", + "description": "A resource Id as defined in a service.", + "example": "resource Id" + }, + "entitlementPoolUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "A list of entitlementPoolUUIDs", + "example": "entitlementPoolUUID" + }, + "licenseKeyGroupUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "A list of licenseKeyGroupUUID.", + "example": "licenseKeyGroupUUID" + }, + "entitlementPoolInvariantUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "A list of entitlementPoolInvariantUUID", + "example": "entitlementPoolInvariantUUID" + }, + "licenseKeyGroupInvariantUUID": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "A list of licenseKeyGroupInvariantUUID", + "example": "licenseKeyGroupInvariantUUID" + } + } + }, + "ServiceInfo": { + "type": "object", + "required": [ + "serviceInstanceId", + "modelInfo", + "serviceName" + ], + "properties": { + "serviceInstanceId": { + "type": "string", + "description": "A service instance id associated with a request.", + "example": "service_instance_id" + }, + "modelInfo": { + "$ref": "#/definitions/ModelMetaData" + }, + "serviceName": { + "type": "string", + "description": "The name of a service", + "example": "service_name" + } + } + }, + "PCIOptRequest": { + "type": "object", + "required": [ + "requestInfo", + "cellInfo" + ], + "properties": { + "requestInfo": { + "$ref": "#/definitions/RequestInfo" + }, + "cellInfo": { + "$ref": "#/definitions/CellInfo" + } + } + }, + "CellInfo": { + "type": "object", + "required": [ + "networkId", + "cellIdList", + "anrInputList", + "trigger" + ], + "properties": { + "networkId": { + "type": "string", + "description": "Id of network requiring PCI optimization", + "example": 100 + }, + "cellIdList": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of cellIds triggering need for PCI optimization (eg.potential confusion)", + "example": [ + "cell0001", + "cell0002" + ] + }, + "anrInputList": { + "type": "array", + "items": { + "$ref": "#/definitions/ANRInfo" + }, + "description": "A list of ANR Input." + }, + "fixedPCICells": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of blacklisted cells whose PCI values should not be changed", + "example": [ + "cell0007", + "cell0009" + ] + }, + "priorityTreatmentCells": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of cells which should be given special treatment during optimization", + "example": [ + "cell0010", + "cell0003" + ] + }, + "trigger": { + "type": "string", + "description": "Type of trigger causing need for PCI optimization", + "example": "NbrListChange" + } + } + }, + "PCIAsynchronousResponse": { + "type": "object", + "required": [ + "requestId", + "transactionId", + "requestStatus", + "solutions" + ], + "properties": { + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique Id for an ONAP transaction", + "example": "ONAP transaction id" + }, + "transactionId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction.", + "example": "requests id" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failure.", + "example": "requestStatus" + }, + "requestStatus": { + "type": "string", + "enum": [ + "success", + "failure" + ], + "description": "The status of a request.", + "example": "success" + }, + "solutions": { + "$ref": "#/definitions/PCIANRSolutions" + } + } + }, + "PCIANRSolutions": { + "type": "object", + "required": [ + "networkId", + "pciSolutions", + "anrSolutions" + ], + "properties": { + "networkId": { + "type": "string", + "description": "Id of network requiring PCI optimization", + "example": 100 + }, + "pciSolutions": { + "type": "array", + "items": { + "$ref": "#/definitions/PCISolution" + }, + "description": "A list of PCI solutions." + }, + "anrSolutions": { + "type": "array", + "items": { + "$ref": "#/definitions/ANRInfo" + }, + "description": "A list of ANR solutions." + } + } + }, + "PCISolution": { + "type": "object", + "required": [ + "cellId", + "pci" + ], + "properties": { + "cellId": { + "type": "string", + "description": "cellId with modified PCI value", + "example": "cell0001" + }, + "pci": { + "type": "integer", + "description": "New PCI value for cellId", + "example": 1 + } + } + }, + "ANRInfo": { + "type": "object", + "required": [ + "cellId", + "removeableNeighbors" + ], + "properties": { + "cellId": { + "type": "string", + "description": "cellId with modified PCI value", + "example": "cell0001" + }, + "removeableNeighbors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of neighbors to be removed", + "example": [ + "cell0002", + "cell0003" + ] + } + } + }, + "NSTSelectionRequest": { + "type": "object", + "required": [ + "requestInfo", + "serviceProfile" + ], + "properties": { + "requestInfo": { + "$ref": "#/definitions/RequestInfo2" + }, + "serviceProfile": { + "$ref": "#/definitions/ServiceProfile" + } + } + }, + "NSISelectionRequest": { + "type": "object", + "required": [ + "requestInfo", + "serviceProfile", + "NSTInfo", + "NSSTInfo", + "subnetCapabilities" + ], + "properties": { + "serviceProfile": { + "$ref": "#/definitions/ServiceProfile" + }, + "requestInfo": { + "$ref": "#/definitions/RequestInfo2" + }, + "NSTInfo": { + "$ref": "#/definitions/NSTInfo" + }, + "NSSTInfo": { + "type": "array", + "description": "List of constituent NSST(s) of the NST", + "items": { + "$ref": "#/definitions/NSSTInfo" + } + }, + "preferReuse": { + "type": "boolean", + "description": "true if reusing an existing NSI is preferred/false if creating a new NSI is preferred " + }, + "subnetCapabilities": { + "type": "array", + "description": "List of subnet capabilities", + "items": { + "$ref": "#/definitions/SubnetCapability" + } + } + } + }, + "NSSISelectionRequest": { + "type": "object", + "required": [ + "requestInfo", + "NSSTInfo", + "sliceProfile" + ], + "properties": { + "sliceProfile": { + "$ref": "#/definitions/SliceProfile" + }, + "requestInfo": { + "$ref": "#/definitions/RequestInfo2" + }, + "NSSTInfo": { + "$ref": "#/definitions/NSSTInfo" + } + } + }, + "NxITerminationRequest": { + "type": "object", + "required": [ + "requestInfo", + "type", + "NxIId" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "NSI", + "NSSI" + ], + "description": "indicates if the request is for NSI/NSSI termination" + }, + "NxIId": { + "type": "string", + "format": "UUID", + "description": "Id of NSI / NSSI" + }, + "UUID": { + "type": "string", + "format": "UUID", + "description": "UUID of NST/NSST model" + }, + "invariantUUID": { + "type": "string", + "format": "UUID", + "description": "invariant UUID of NST/NSST model" + }, + "requestInfo": { + "$ref": "#/definitions/RequestInfo2" + } + } + }, + "SubnetCapability": { + "type": "object", + "required": [ + "domainType", + "capabilityDetails" + ], + "properties": { + "domainType": { + "type": "string", + "description": "type of the subnet" + }, + "capabilityDetails": { + "type": "string", + "description": "A JSON object containing capability parameters", + "example": { + "blob": "content" + } + } + } + }, + "NSTInfo": { + "type": "object", + "required": [ + "UUID", + "invariantUUID", + "name" + ], + "properties": { + "UUID": { + "type": "string", + "format": "uuid", + "description": "UUID of NST" + }, + "invariantUUID": { + "type": "string", + "format": "uuid", + "description": "Invariant UUID" + }, + "name": { + "type": "string", + "description": "name of the NST model" + } + } + }, + "NSSTInfo": { + "type": "object", + "required": [ + "UUID", + "invariantUUID", + "name" + ], + "properties": { + "UUID": { + "type": "string", + "format": "uuid", + "description": "UUID of NSST" + }, + "invariantUUID": { + "type": "string", + "format": "uuid", + "description": "Invariant UUID" + }, + "name": { + "type": "string", + "description": "name of the NSST model" + } + } + }, + "ServiceProfile": { + "type": "string", + "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.", + "example": { + "blob": "content" + } + }, + "SliceProfile": { + "type": "string", + "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.", + "example": { + "blob": "content" + } + }, + "RequestInfo2": { + "type": "object", + "required": [ + "transactionId", + "requestId", + "callbackUrl", + "sourceId" + ], + "properties": { + "transactionId": { + "type": "string", + "format": "uuid", + "description": "unique ID to track an ONAP transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "callbackUrl": { + "type": "string", + "format": "url", + "description": "The end point of a callback service where recommendations are posted.", + "example": "myDomain.com/myCallback" + }, + "callbackHeader": { + "type": "string", + "description": "JSON blob. The header information a client expecting in a async callback.", + "example": { + "blob": "content" + } + }, + "sourceId": { + "type": "string", + "description": "The unique ID of a client making an optimization call.", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "timeout": { + "type": "integer", + "description": "A tolerance window (in second) for expecting solutions.", + "example": 5 + }, + "numSolutions": { + "type": "integer", + "description": "Expected number of solutions.", + "example": 1 + }, + "addtnlArgs": { + "type": "string", + "description": "Any additional parameters that have to be considered during selection", + "example": { + "blob": "content" + } + } + } + }, + "NSTAsynchronousResponse": { + "type": "object", + "required": [ + "transactionId", + "requestId", + "requestStatus", + "solutions" + ], + "properties": { + "transactionId": { + "type": "string", + "format": "uuid", + "description": "unique ID to track an ONAP transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failed." + }, + "requestStatus": { + "type": "string", + "enum": [ + "completed", + "failed", + "pending" + ], + "description": "The status of a request." + }, + "solutions": { + "type": "array", + "items": { + "$ref": "#/definitions/NSTSolution" + }, + "description": "A list of NST solutions" + } + } + }, + "NSTSolution": { + "type": "object", + "required": [ + "UUID", + "NSTName", + "invariantUUID", + "matchLevel" + ], + "properties": { + "invariantUUID": { + "type": "string", + "format": "uuid", + "description": "Invariant UUID of NST" + }, + "UUID": { + "type": "string", + "format": "UUID of NST" + }, + "NSTName": { + "type": "string", + "description": "NST name" + }, + "matchLevel": { + "type": "string", + "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit" + } + } + }, + "NSIAsynchronousResponse": { + "type": "object", + "required": [ + "transactionId", + "requestId", + "requestStatus", + "solutions" + ], + "properties": { + "transactionId": { + "type": "string", + "format": "uuid", + "description": "unique ID to track an ONAP transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failed." + }, + "requestStatus": { + "type": "string", + "enum": [ + "completed", + "failed", + "pending" + ], + "description": "The status of a request." + }, + "solutions": { + "type": "array", + "items": { + "$ref": "#/definitions/NSISolution" + }, + "description": "A list of NSI solutions" + } + } + }, + "NSISolution": { + "type": "object", + "required": [ + "existingNSI" + ], + "properties": { + "existingNSI": { + "type": "boolean", + "description": "true if NSISolution object has shareNSISolution/false if NSISolution object has newNSISolution" + }, + "sharedNSISolution": { + "$ref": "#/definitions/SharedNSISolution" + }, + "newNSISolution": { + "$ref": "#/definitions/NewNSISolution" + } + } + }, + "SharedNSISolution": { + "type": "object", + "required": [ + "invariantUUID", + "UUID", + "NSIName", + "NSIId", + "matchLevel" + ], + "properties": { + "invariantUUID": { + "type": "string", + "format": "uuid", + "description": "Invariant UUID of NST" + }, + "UUID": { + "type": "string", + "format": "uuid", + "description": "UUID of NST" + }, + "NSIName": { + "type": "string", + "description": "Name of NSI" + }, + "NSIId": { + "type": "string", + "format": "uuid", + "description": "Instance Id of NSI" + }, + "matchLevel": { + "type": "string", + "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank" + } + } + }, + "NewNSISolution": { + "type": "object", + "required": [ + "sliceProfiles", + "matchLevel" + ], + "properties": { + "sliceProfiles": { + "type": "array", + "description": "List of slice profiles", + "items": { + "$ref": "#/definitions/SliceProfile" + } + }, + "matchLevel": { + "type": "string", + "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank" + } + } + }, + "NSSIAsynchronousResponse": { + "type": "object", + "required": [ + "transactionId", + "requestId", + "requestStatus", + "solutions" + ], + "properties": { + "transactionId": { + "type": "string", + "format": "uuid", + "description": "unique ID to track an ONAP transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "requestId": { + "type": "string", + "format": "uuid", + "description": "A unique ID to track multiple requests associated with a transaction", + "example": "d290f1ee-6c54-4b01-90e6-d701748f0851" + }, + "statusMessage": { + "type": "string", + "description": "Reasoning if a requestStatus is failed." + }, + "requestStatus": { + "type": "string", + "enum": [ + "completed", + "failed", + "pending" + ], + "description": "The status of a request." + }, + "solutions": { + "type": "array", + "items": { + "$ref": "#/definitions/SharedNSSISolution" + }, + "description": "A list of NSSI solutions, empty list will be returned if no solution is found" + } + } + }, + "SharedNSSISolution": { + "type": "object", + "required": [ + "invariantUUID", + "UUID", + "NSSIName", + "NSSIId", + "matchLevel" + ], + "properties": { + "invariantUUID": { + "type": "string", + "format": "uuid", + "description": "Invariant UUID of NSST" + }, + "UUID": { + "type": "string", + "format": "uuid", + "description": "UUID of NSST" + }, + "NSSIName": { + "type": "string", + "description": "Name of NSSI" + }, + "NSSIId": { + "type": "string", + "description": "Instance Id of NSSI" + }, + "matchLevel": { + "type": "string", + "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit" + } + } + } + }, + "schemes": [ + "https" + ], + "host": "virtserver.swaggerhub.com", + "basePath": "/oof-osdf/v1" +} -- cgit 1.2.3-korg