"paths": {
"/v2/placement": {
"post": {
+ "tags": [
+ "Placement Optimization"
+ ],
"summary": "create/update a placement",
"operationId": "createPlacement",
"description": "create/update a placement",
}
},
"/api/oof/placement/v1": {
- "$ref": "#/paths/~1v2~1placement"
+ "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",
}
},
"/api/oof/pci/v1": {
- "$ref": "#/paths/~1api~1oof~1v1~1pci"
- }
- },
- "definitions": {
- "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"
+ "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"
+ }
}
- },
- "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"
- ]
+ ],
+ "responses": {
+ "201": {
+ "description": "An optimization solution is found."
},
- "description": "A list of optimization services.",
- "example": [
- "placement"
- ]
- },
- "timeout": {
- "type": "integer",
- "description": "A tolerance window (in second) for expecting solutions.",
- "example": 5
+ "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"
+ }
}
}
},
- "PlacementInfo": {
- "type": "object",
- "required": [
- "requestParameters",
- "placementDemands"
- ],
- "properties": {
- "requestParameters": {
- "type": "string",
- "description": "JSON blob. A service ordering information",
- "example": {
- "blob": "content"
+ "/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"
+ }
}
- },
- "placementDemands": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/PlacementDemand"
+ ],
+ "responses": {
+ "202": {
+ "description": "An optimization request is accepted",
+ "schema": {
+ "$ref": "#/definitions/SynchronousResponse"
+ }
},
- "description": "The resource information for a placement service"
- },
- "subscriberInfo": {
- "type": "object",
- "items": {
- "$ref": "#/definitions/SubscriberInfo"
+ "400": {
+ "description": "bad request"
},
- "description": "The information of a service subscriber."
+ "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"
+ }
}
}
},
- "PlacementDemand": {
- "type": "object",
- "required": [
- "resourceModuleName",
- "serviceResourceId",
- "resourceModelInfo"
- ],
- "properties": {
- "resourceModuleName": {
- "type": "string",
- "description": "A resource name as defined in a service mode",
- "example": "myResourceName"
- },
- "serviceResourceId": {
+ "/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/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"
+ }
+ }
+ },
+ "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 unique resource Id with a local scope between client and OOF.",
- "example": "myResourceId"
+ "description": "A resource name as defined in a service",
+ "example": "resource name"
},
- "givenPlacement": {
- "type": "object",
- "additionalProperties": {
- "type": "object",
- "properties": {
- "key": {
- "type": "string"
- },
- "value": {
- "type": "string"
- }
- }
+ "serviceResourceId": {
+ "type": "string",
+ "description": "A resource Id as defined in a service.",
+ "example": "resource Id"
+ },
+ "entitlementPoolUUID": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
},
- "description": "placement parameters defined in the ordering system, keyname include tenantId",
- "example": {
- "tenantId": "1"
- }
+ "description": "A list of entitlementPoolUUIDs",
+ "example": "entitlementPoolUUID"
},
- "resourceModelInfo": {
+ "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"
},
- "existingCandidates": {
- "$ref": "#/definitions/Candidates"
+ "serviceName": {
+ "type": "string",
+ "description": "The name of a service",
+ "example": "service_name"
+ }
+ }
+ },
+ "PCIOptRequest": {
+ "type": "object",
+ "required": [
+ "requestInfo",
+ "cellInfo"
+ ],
+ "properties": {
+ "requestInfo": {
+ "$ref": "#/definitions/RequestInfo"
},
- "excludedCandidates": {
- "$ref": "#/definitions/Candidates"
+ "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"
},
- "requiredCandidates": {
- "$ref": "#/definitions/Candidates"
+ "removeableNeighbors": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of neighbors to be removed",
+ "example": [
+ "cell0002",
+ "cell0003"
+ ]
}
}
},
- "ModelMetaData": {
+ "NSTSelectionRequest": {
"type": "object",
"required": [
- "modelInvariantId",
- "modelVersionId"
+ "requestInfo",
+ "serviceProfile"
],
"properties": {
- "modelInvariantId": {
- "type": "string",
- "description": "A model invariant Id as defined in a service model.",
- "example": "my model invariant Id"
+ "requestInfo": {
+ "$ref": "#/definitions/RequestInfo2"
},
- "modelVersionId": {
- "type": "string",
- "description": "A unique model Id as defined in a service model.",
- "example": "my unique model Id"
+ "serviceProfile": {
+ "$ref": "#/definitions/ServiceProfileNst"
+ }
+ }
+ },
+ "NSISelectionRequest": {
+ "type": "object",
+ "required": [
+ "requestInfo",
+ "serviceProfile",
+ "NSTInfo"
+ ],
+ "properties": {
+ "serviceProfile": {
+ "$ref": "#/definitions/ServiceProfile"
},
- "modelName": {
- "type": "string",
- "description": "A model name as defined in a service model",
- "example": "my model name"
+ "requestInfo": {
+ "$ref": "#/definitions/RequestInfo2"
},
- "modelType": {
- "type": "string",
- "description": "A model type as defined in a service model.",
- "example": "my model type"
+ "NSTInfo": {
+ "type": "array",
+ "description": "List of NST(s)",
+ "items": {
+ "$ref": "#/definitions/NSTInfo"
+ }
+ }
+ }
+ },
+ "NSSISelectionRequest": {
+ "type": "object",
+ "required": [
+ "requestInfo",
+ "NSSTInfo",
+ "sliceProfile"
+ ],
+ "properties": {
+ "sliceProfile": {
+ "$ref": "#/definitions/SliceProfile"
},
- "modelVersion": {
- "type": "string",
- "description": "A model version as defined in a service model.",
- "example": "my model version"
+ "requestInfo": {
+ "$ref": "#/definitions/RequestInfo2"
},
- "modelCustomizationName": {
- "type": "string",
- "description": "A model customization name as defined in a service model.",
- "example": "my model customization"
+ "NSSTInfo": {
+ "$ref": "#/definitions/NSSTInfo"
}
}
},
- "Candidates": {
+ "NSTInfo": {
"type": "object",
"required": [
- "identifierType",
- "identifiers"
+ "UUID",
+ "invariantUUID"
],
"properties": {
- "identifierType": {
+ "UUID": {
"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"
+ "format": "uuid",
+ "description": "UUID of NST"
},
- "cloudOwner": {
+ "invariantUUID": {
"type": "string",
- "description": "The name of a cloud owner. Only required if identifierType is cloud_region_id",
- "example": "cloud_owner"
+ "format": "uuid",
+ "description": "Invariant UUID"
}
}
},
- "SubscriberInfo": {
+ "NSSTInfo": {
"type": "object",
"required": [
- "globalSubscriberId",
- "subscriberName",
- "subscriberCommonSiteId"
+ "UUID",
+ "invariantUUID"
],
"properties": {
- "globalSubscriberId": {
- "type": "string",
- "description": "An ID of a subscriber.",
- "example": "subscriber_id"
- },
- "subscriberName": {
+ "UUID": {
"type": "string",
- "description": "The name of a subscriber. If the name is not known, the value must be 'unknown'",
- "example": "subscriber_name"
+ "format": "uuid",
+ "description": "UUID of NSST"
},
- "subscriberCommonSiteId": {
+ "invariantUUID": {
"type": "string",
- "description": "Id representing a subscriber location",
- "example": "subscriber_location_id"
+ "format": "uuid",
+ "description": "Invariant UUID"
}
}
},
- "LicenseInfo": {
+ "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"
+ }
+ },
+ "ServiceProfileNst": {
"type": "object",
"required": [
- "licenseDemands"
+ "serviceProfileParameters"
],
"properties": {
- "licenseDemands": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/LicenseDemands"
- },
- "description": "A list of resources for license selection"
+ "serviceProfileParameters": {
+ "$ref": "#/definitions/ServiceProfile"
}
}
},
- "LicenseDemands": {
+ "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": [
- "resourceModuleName",
- "serviceResourceId",
- "resourceModelInfo"
+ "transactionId",
+ "requestId",
+ "callbackUrl",
+ "sourceId"
],
"properties": {
- "resourceModuleName": {
+ "transactionId": {
"type": "string",
- "description": "A resource name as defined in a service model.",
- "example": "service_instance_id"
+ "format": "uuid",
+ "description": "unique ID to track an ONAP transaction",
+ "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
},
- "serviceResourceId": {
+ "requestId": {
"type": "string",
- "description": "A unique resource Id with a local scope between client and OOF.",
- "example": "service_instance_id"
+ "format": "uuid",
+ "description": "A unique ID to track multiple requests associated with a transaction",
+ "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
},
- "resourceModelInfo": {
- "$ref": "#/definitions/ModelMetaData"
+ "callbackUrl": {
+ "type": "string",
+ "format": "url",
+ "description": "The end point of a callback service where recommendations are posted.",
+ "example": "myDomain.com/myCallback"
},
- "existingLicenses": {
- "$ref": "#/definitions/LicenseModel"
+ "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
}
}
},
- "LicenseModel": {
+ "NSTAsynchronousResponse": {
"type": "object",
"required": [
- "entitlementPoolUUID",
- "licenseKeyGroupUUID"
+ "transactionId",
+ "requestId",
+ "requestStatus",
+ "solutions"
],
"properties": {
- "entitlementPoolUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "Entitlement pool UUIDs associated with a resource.",
- "example": "candidateId"
+ "transactionId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "unique ID to track an ONAP transaction",
+ "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
},
- "licenseKeyGroupUUID": {
+ "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": {
- "type": "string",
- "format": "uuid"
+ "$ref": "#/definitions/NSTSolution"
},
- "description": "License key groups associated with a resource",
- "example": "candidateId"
+ "description": "A list of NST solutions"
}
}
},
- "SynchronousResponse": {
+ "NSTSolution": {
"type": "object",
"required": [
- "requestId",
- "transactionId",
- "requestStatus"
+ "UUID",
+ "NSTName",
+ "invariantUUID",
+ "matchLevel"
],
"properties": {
- "requestId": {
+ "invariantUUID": {
"type": "string",
"format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
+ "description": "Invariant UUID of NST"
},
- "transactionId": {
+ "UUID": {
"type": "string",
- "format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
+ "format": "UUID of NST"
},
- "statusMessage": {
+ "NSTName": {
"type": "string",
- "description": "Reasoning if a requestStatus is failure.",
- "example": "requestStatus"
+ "description": "NST name"
},
- "requestStatus": {
+ "matchLevel": {
"type": "string",
- "enum": [
- "success",
- "failure"
- ],
- "description": "The status of a request.",
- "example": "success"
+ "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
}
}
},
- "PlacementAsynchronousResponse": {
+ "NSIAsynchronousResponse": {
"type": "object",
"required": [
- "requestId",
"transactionId",
+ "requestId",
"requestStatus",
"solutions"
],
"properties": {
- "requestId": {
+ "transactionId": {
"type": "string",
"format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
+ "description": "unique ID to track an ONAP transaction",
+ "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
},
- "transactionId": {
+ "requestId": {
"type": "string",
"format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
+ "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 failure.",
- "example": "requestStatus"
+ "description": "Reasoning if a requestStatus is failed."
},
"requestStatus": {
"type": "string",
"enum": [
- "success",
- "failure"
+ "completed",
+ "failed",
+ "pending"
],
- "description": "The status of a request.",
- "example": "success"
+ "description": "The status of a request."
},
"solutions": {
- "$ref": "#/definitions/Solutions"
+ "$ref": "#/definitions/NSISolution"
}
- }
- },
- "Solutions": {
- "type": "object",
- "required": [
- "placementSolutions",
- "licenseSolutions"
- ],
+ }
+ },
+ "NSISolution": {
+ "type": "object",
"properties": {
- "placementSolutions": {
+ "sharedNSIsolutions": {
"type": "array",
"items": {
- "$ref": "#/definitions/ComprehensiveSolution"
+ "$ref": "#/definitions/SharedNSISolution"
},
- "description": "A list of placement solutions."
+ "description": "A list of shared NSI solutions"
},
- "licenseSolutions": {
+ "newNSISolutions": {
"type": "array",
"items": {
- "$ref": "#/definitions/LicenseSolution"
+ "$ref": "#/definitions/NewNSISolution"
},
- "description": "A list of license solutions."
+ "description": "A list of new NSI solutions"
}
}
},
- "ComprehensiveSolution": {
+ "SharedNSISolution": {
"type": "object",
"required": [
- "placementSolutions"
+ "invariantUUID",
+ "UUID",
+ "NSIName",
+ "NSIId",
+ "matchLevel"
],
"properties": {
- "placementSolutions": {
+ "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": "Id of NSI"
+ },
+ "NSSIs": {
"type": "array",
"items": {
- "$ref": "#/definitions/PlacementSolution"
+ "$ref": "#/definitions/NSSI"
},
- "description": "A list of placement solutions."
+ "description": "A list of NSSIs"
}
}
},
- "PlacementSolution": {
+ "NSSI": {
"type": "object",
"required": [
- "resourceModuleName",
- "serviceResourceId",
- "identifierType",
- "identifier"
+ "NSSIName",
+ "NSSIId",
+ "UUID",
+ "invariantUUID"
],
"properties": {
- "resourceModuleName": {
+ "NSSIName": {
"type": "string",
- "description": "The name of a resource as defined in the service model",
- "example": "resource name"
+ "description": "Name of NSSI"
},
- "serviceResourceId": {
+ "NSSIId": {
"type": "string",
- "description": "A resource Id as defined in a service model.",
- "example": "resource id"
+ "description": "Id of NSSI"
},
- "identifierType": {
+ "UUID": {
"type": "string",
- "enum": [
- "service_instance_id"
- ],
- "description": "The type of a candidate.",
- "example": "candidate type"
+ "description": "UUID of NSST"
},
- "identifier": {
+ "invariantUUID": {
"type": "string",
- "description": "The id of a candidate.",
- "example": "candidate id"
+ "description": "invariantUUID of NSST"
},
- "assignmentInfo": {
+ "sliceProfile": {
"type": "array",
"items": {
- "$ref": "#/definitions/AssignmentInfo"
+ "$ref": "#/definitions/SliceProfile"
},
- "description": "Additional information related to a candidate."
+ "description": "list of SliceProfiles"
}
}
},
- "AssignmentInfo": {
+ "NewNSISolution": {
"type": "object",
"required": [
- "key",
- "value"
+ "NSSISolutions",
+ "matchLevel"
],
"properties": {
- "key": {
- "type": "string",
- "description": "An attribute name",
- "example": "attribute name"
+ "NSTInfo": {
+ "$ref": "#/definitions/NSTResponseInfo"
},
- "value": {
+ "NSSISolutions": {
+ "type": "array",
+ "description": "List of NSSIs which when concatenated shall form the NSI, in case NSSI is not present, only the sliceProfile will be included",
+ "items": {
+ "$ref": "#/definitions/NSSIInfo"
+ }
+ },
+ "matchLevel": {
"type": "string",
- "description": "An attribute value.",
- "example": "attribute value"
+ "description": "JSON blob. Containing details of match of requirements in service profile, and recommendation rank"
}
}
},
- "LicenseSolution": {
+ "NSTResponseInfo": {
"type": "object",
"required": [
- "resourceModuleName",
- "serviceResourceId",
- "entitlementPoolUUID",
- "licenseKeyGroupUUID",
- "entitlementPoolInvariantUUID",
- "licenseKeyGroupInvariantUUID"
+ "UUID",
+ "invariantUUID",
+ "NSTName"
],
"properties": {
- "resourceModuleName": {
+ "NSTName": {
"type": "string",
- "description": "A resource name as defined in a service",
- "example": "resource name"
+ "description": "NST name"
},
- "serviceResourceId": {
+ "UUID": {
"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"
+ "format": "uuid",
+ "description": "UUID of NST"
},
- "licenseKeyGroupInvariantUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "A list of licenseKeyGroupInvariantUUID",
- "example": "licenseKeyGroupInvariantUUID"
+ "invariantUUID": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Invariant UUID"
}
}
},
- "ServiceInfo": {
+ "NSSIInfo": {
"type": "object",
"required": [
- "serviceInstanceId",
- "modelInfo",
- "serviceName"
+ "sliceProfile"
],
"properties": {
- "serviceInstanceId": {
+ "sliceProfile": {
"type": "string",
- "description": "A service instance id associated with a request.",
- "example": "service_instance_id"
+ "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
},
- "modelInfo": {
- "$ref": "#/definitions/ModelMetaData"
+ "NSSTInfo": {
+ "$ref": "#/definitions/NSSTResponseInfo"
},
- "serviceName": {
- "type": "string",
- "description": "The name of a service",
- "example": "service_name"
+ "NSSISolution": {
+ "$ref": "#/definitions/NSSIObject"
}
}
},
- "PCIOptRequest": {
+ "NSSTResponseInfo": {
"type": "object",
"required": [
- "requestInfo",
- "cellInfo"
+ "NSSTName",
+ "UUID",
+ "invariantUUID"
],
"properties": {
- "requestInfo": {
- "$ref": "#/definitions/RequestInfo"
+ "NSSTName": {
+ "type": "string",
+ "description": "Name of the NSST"
},
- "cellInfo": {
- "$ref": "#/definitions/CellInfo"
+ "UUID": {
+ "type": "string",
+ "format": "uuid",
+ "description": "UUID of NSST"
+ },
+ "invariantUUID": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Invariant UUID"
}
}
},
- "CellInfo": {
+ "NSSIObject": {
"type": "object",
"required": [
- "networkId",
- "cellIdList",
- "anrInputList",
- "trigger"
+ "NSSIName",
+ "NSSIId",
+ "matchLevel"
],
"properties": {
- "networkId": {
+ "NSSIName": {
"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"
- ]
+ "description": "Name of NSSI"
},
- "anrInputList": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ANRInfo"
- },
- "description": "A list of ANR Input."
+ "NSSIId": {
+ "type": "string",
+ "description": "Id of NSSI"
},
- "trigger": {
+ "matchLevel": {
"type": "string",
- "description": "Type of trigger causing need for PCI optimization",
- "example": "NbrListChange"
+ "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
}
}
},
- "PCIAsynchronousResponse": {
+ "NSSIAsynchronousResponse": {
"type": "object",
"required": [
- "requestId",
"transactionId",
+ "requestId",
"requestStatus",
"solutions"
],
"properties": {
- "requestId": {
+ "transactionId": {
"type": "string",
"format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
+ "description": "unique ID to track an ONAP transaction",
+ "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
},
- "transactionId": {
+ "requestId": {
"type": "string",
"format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
+ "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 failure.",
- "example": "requestStatus"
+ "description": "Reasoning if a requestStatus is failed."
},
"requestStatus": {
"type": "string",
"enum": [
- "success",
- "failure"
+ "completed",
+ "failed",
+ "pending"
],
- "description": "The status of a request.",
- "example": "success"
+ "description": "The status of a request."
},
"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"
+ "$ref": "#/definitions/NSSISolution"
},
- "description": "A list of ANR solutions."
+ "description": "A list of NSSI solutions"
}
}
},
- "PCISolution": {
+ "NSSISolution": {
"type": "object",
"required": [
- "cellId",
- "pci"
+ "invariantUUID",
+ "UUID",
+ "NSSIName",
+ "NSSIId",
+ "matchLevel"
],
"properties": {
- "cellId": {
+ "invariantUUID": {
"type": "string",
- "description": "cellId with modified PCI value",
- "example": "cell0001"
+ "format": "uuid",
+ "description": "Invariant UUID of NSST"
},
- "pci": {
- "type": "integer",
- "description": "New PCI value for cellId",
- "example": 1
- }
- }
- },
- "ANRInfo": {
- "type": "object",
- "required": [
- "cellId",
- "removeableNeighbors"
- ],
- "properties": {
- "cellId": {
+ "UUID": {
"type": "string",
- "description": "cellId with modified PCI value",
- "example": "cell0001"
+ "format": "uuid",
+ "description": "UUID of NSST"
},
- "removeableNeighbors": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of neighbors to be removed",
- "example": [
- "cell0002",
- "cell0003"
- ]
+ "NSSIName": {
+ "type": "string",
+ "description": "Name of NSSI"
+ },
+ "NSSIId": {
+ "type": "string",
+ "description": "Id of NSSI"
+ },
+ "matchLevel": {
+ "type": "string",
+ "description": "JSON blob. Containing details of match of requirements in slice profile and percentage of fit"
}
}
}