A. Order Service API

This API developed for creating new SOTN Service. It takes configured data of SOTN VPN and Site.

  • After configuring when we click on Done Button , it invokes this REST API to get the configured data and send the data to SO for provisioning.
  • The API performs the following operation:
  • Read the configured data and send the data to SO for provisioning.

URL: /api/usecaseui/server/v1/uui-lcm/Sotnservices

Response:
 {

    "service":

     {             

         "serviceId":"244be53a-f84a-42e0-8aba-3ff2bf4c7347",

         "operationId":"dd16f580-455e-4  690-969b-2894effd3395"

     }

}

  1. Prepare the required SOTN VPN and SOTN site information according to the SO model structure. 
  2. Pushing this model information to SO for provisioning.
  3. After receiving the required model SO instantiate the service.

API internal process:

  1. This API receive the requested data in object format.
  2. This API convert data from object to String.
  3. Sending the data along with its type.

Interface definition:

Interface Definition

Description

Content-Type

application/json

Operation Type

POST

URI

https://{host}:{port}/api/usecaseui/server/v1/uui-lcm/Sotnservices


  • Request Header

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Content-Type

Y

Determines the format of the request content. Only application/json is supported.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Authorization

N

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

2.Request Body

Attribute

Required?

Cardinality

Content

Values

Description

service

Y

1

SOTN service Object


The content of the RequestInfo object.

site

Y

1…n

SOTN sites Object


The content of Router request object


2.1 SOTN service Object

Attribute

Required?

Cardinality

Content

Values

Description

serviceName

Y

1

String


A unique name to create service.

description

Y

1

String


Information related to service

COS

Y

1

String


Type of subscription(Premium/Standard)

serviceType

Y

1

String


Type of Service(epl/evpl)

highAvailability

Y

1

String


High Bandwidth(yes/no).

CIR

Y

1

String



EIR

Y

1

String



2.2 SOTN sites Object

Attribute

Required?

Cardinality

Content

Values

Description

Site name

Y

1

string


A unique name to create site

address

Y

1

string


Address of the site laoction

description

Y

1

string


Information related to site

Zipcode

Y

1

String


Postal code for site location

Vlan

Y

1

String



3.Asynchronous Response Body

Attribute

Required?

Cardinality

Content

Values

Description

serviceId

Y

1

String


A unique Id for created service.

operationId

Y

1

String



B. Ordered Service API

  • A new API developed which obtain the SOTN ordered sites informations based on instanceId.
  • On selecting instance it invokes this REST API to get the ordered service data from AAI.
  • The API performs the following operation:
  1. Reads the data for selected service instance from AAI.

URL: /api/usecaseui-server/v1/uui-lcm/Sotnservices/servicesubscription/SOTN/serviceinstance/{instanceId}

Response:

   "ethtSvcName":"vpn022",
   "cir":"98900",
   "eir":"1000",
   "vpnInformations":[ { 

         "vpnThreshold":"1000",
         "vpnBandwidth":"100",
         "vpnType":"Hub-Spoke",
         "vpnId":"a8529dee-523e-4c6b-bc83-e26d68a9911c",
         "vpnName":"vpn022",
         "sites":[ { 

               "zipCode":"100008",
               "address":"beijing",
               "siteId":"d5b530fe-2271-4ed6-8c09-b7ce368a1f59",
               "siteName":"ISAAC01-hub1",
               "description":"desc"

          }]    

   }]

}

2. Storing the response of this API in object0. 

3. Based on the service instance showing specific service informations

API internal process:

  1. Based on the subscriptionType and serviceInstanceId it invokes the API.
  2. After receiving the response from AAI, storing the data as an object.
  3. Parsing the data and deleting the irrelevant ( i.e VPN informations) field .

Interface definition:

Interface Definition

Description

Content-Type

application/json

Operation Type

GET

URI

https://{host}:{port}/api/usecaseui-server/v1/uui-lcm/Sotnservices/servicesubscription/SOTN/serviceinstance/{instanceId}

  • Request Header

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Content-Type

N

Determines the format of the request content. Only application/json is supported.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Authorization

N

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

  • Synchronous Response Body

Attribute

Required?

Cardinality

Content

Values

Description

Service Information

Y

1

UUID/String


A unique Id for an ONAP transaction.

Sire Information

Y

1

UUID/String


A unique ID to track multiple requests associated with a transaction.

  • Service Information Info

Attribute

Required?

Cardinality

Content

Values

Description

ethtSvcName

Y

1

Timestamp



cir

Y

1

Timestamp



eir

N

0..N

List of LinkInfo


List of Link's

ebs

Y

1




Coloraware

Y

1




cbs

Y

1




  • Site Info

Attribute

Required

cordinality

Content

Values

Description

SiteName

Y

1

String


A unique site Name

Description

Y

1

String


Description about site

Postalcode

Y

1

String


Information sitelocaton

C. Network Topology API

  1. A new API developed which obtain the SOTN ordered sites informations based on instanceId.
  2. On selecting instance it invokes this REST API to get the ordered service data from AAI.
  3. The API performs the following operation:

URL: /api/usecaseui-server/v1/uui-lcm/Sotnservices/topology/service/service-subscriptions/service-subscription/{servicetypeparam}/service-instances/service-instance/{serviceInstanceId}

Response:

   { 

      "zipCode":"28013",
      "role":"dsvpn-hub",
      "siteName":"Madrid",
      "description":"Madrid",
      "location":"Madrid",
      "attribute":{ 

         "Zip Code":"28013",
         "Site Name":"Madrid",
         "cvlan":"400",
         "Link Status":"down",
         "Location":"Madrid"

      }

   },
  { 

      "zipCode":"NE1 4LF",
      "role":"dsvpn-hub",
      "address":"Newcastle",
      "siteId":"2f4b3e25-bdd1-404d-bed5-381ced380318",
      "siteName":"Newcastle",
      "description":"Newcastle",
      "location":"Newcastle",
      "attribute":{ 

         "Zip Code":"NE1 4LF",
         "Site Name":"Newcastle",
         "cvlan":"400",
         "Access node Id":"10.10.10.10",
         "Access LTP Id":"149",
         "Link Status":"down",
         "Location":"Newcastle"

      }

   }

]

 

  1. Storing the response of this API in object0. 
  2. Based on the service instance showing specific service informations on world map by finding the latitude and longitude(using sitename and zipcode) of each site using leaflet library.


API internal process:

  1. Based on the subscriptionType and serviceInstanceId it invokes the API.
  2. After receiving the response from AAI, storing the data as an object.
  3. From the response of the API call to AAI, the following information can be obtained.
  4. Sitename and zipcode.
  5. Call the leaflet module API with sitename and zipcode.
  6. From the response of step 3.b, we would be having array latitude and longitude of sites.


Interface definition:

Interface Definition

Description

Content-Type

application/json

Operation Type

GET

URI

https://{host}:{port}/api/usecaseui-server/v1/uui-lcm/Sotnservices/topology/service/service-subscriptions/service-subscription/{servicetypeparam}/service-instances/service-instance/{serviceInstanceId}

  • Request Header

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Content-Type

N

Determines the format of the request content. Only application/json is supported.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Authorization

N

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

  • Response Body

Attribute

Required?

Cardinality

Content

Values

Description

zipCode

Y

1

String


Zipcode/PostalCode of site.

role

Y

1

String


Spoke/Hub

siteName

Y

1

String


Unique name for site

description

Y

1

String


Site address

location

Y

1

String


Address of site

attribute

Y

1

Site attribute object


Have site info attribute in below table


Site attribute object

Attribute

Required?

Cardinality

Content

Values

Description

Zip Code

Y

1

String


Postal code of location(site)

Site Name

Y

1

String


A unique name for site

cvlan

Y

1

String



Access node Id

N

1

String



Access LTP Id

Y

1

String



Link Status

Y

1

String

Active/Down

Status of Link

Location

Y

1

String


Information of city(i.e cityname)

D. Resource Topology API

 

  • A new API developed which obtain the SOTN ordered sites informations based on instance ID.
  • On selecting instance it invokes this REST API to get the ordered service data from AAI.
  • The API performs the following operation:
  1. Reads the data for selected service instance from AAI.

URL: /api/usecaseui-server/v1/uui-lcm/Sotnservices/resourceTopology/service/service-subscriptions/service-subscription/service-instances/service-instance/{serviceInstace}

Response:
{

   "nodes":[

      {

         "id":"73022190-d634-4824-aaac-1435f73cbd47",

         "shape":"circularImage",

         "image":"./assets/treeTopology/connectivity.png",

         "label":"Connectivity",

         "color":"Green",

         "dataNode":{

            "ethtSvcName":"SOTN_9001_TS2_assured",

            "colorAware":"null",

            "cbs":"null",

            "couplingFlag":"null",

            "ebs":"evpl",

            "cir":"20000",

            "eir":"20000"

         }

      },

      {

         "id":"10.10.10.10-SOTN_9001_TS2_assured",

         "shape":"circularImage",

         "image":"./assets/treeTopology/vpnbinding.png",

         "label":"VPN Binding",

         "color":"Green",

         "dataNode":{

            "vpn-id":"10.10.10.10-SOTN_9001_TS2_assured",

            "vpn-name":"10.10.10.10-SOTN_9001_TS2_assured",

            "vpn-type":"ethernet",

            "vpn-region":"assured",

            "access-provider-id":"5555",

            "access-client-id":"6666",

            "access-topology-id":"100",

            "src-access-node-id":"10.10.10.10",

            "src-access-ltp-id":"58",

            "dst-access-node-id":"10.10.10.10",

            "dst-access-ltp-id":"149",

            "operational-status":"Created",

            "resource-version":"1561389584516"

         }

      },

      {

         "id":"10.10.10.10",

         "shape":"circularImage",

         "image":"./assets/treeTopology/accessnode.png",

         "label":"Access Node",

         "color":"Green",

         "dataNode":{

            "pnf-name":"10.10.10.10",

            "pnf-id":"10.10.10.10",

            "in-maint":true,

            "resource-version":"1561303054088",

            "admin-status":"up",

            "operational-status":"up"

         }

      },

      {

         "id":"nodeId-10.10.10.10-ltpId-58",

         "shape":"circularImage",

         "image":"./assets/treeTopology/tpoint.png",

         "label":"Termination Point",

         "color":"Green",

         "dataNode":{

            "interface-name":"nodeId-10.10.10.10-ltpId-58",

            "speed-value":"1000000",

            "equipment-identifier":"0.188.0.8",

            "resource-version":"1561303102525",

            "in-maint":true,

            "network-ref":"providerId-5555-clientId-6666-topologyId-33",

            "transparent":"true",

            "operational-status":"down"

         }

      },

      {

         "id":"cross-link-5",

         "shape":"circularImage",

         "image":"./assets/treeTopology/logicallink.png",

         "label":"Logical Link",

         "color":"Green",

         "dataNode":{

            "link-name":"cross-link-5",

            "in-maint":false,

            "link-type":"cross-link",

            "resource-version":"1561284481346",

            "operational-status":"up"

         }

      },

      {

         "id":"EXT_AAI",

         "shape":"circularImage",

         "image":"./assets/treeTopology/extaai.png",

         "label":"External AAI",

         "color":"Green",

         "dataNode":{

            "Name":"VDF-ext-net"

         }

      }

   ],

   "edges":[

      {

         "from":"73022190-d634-4824-aaac-1435f73cbd47",

         "to":"10.10.10.10-SOTN_9001_TS2_assured"

      },

      {

         "from":"10.10.10.10-SOTN_9001_TS2_assured",

         "to":"nodeId-10.10.10.10-ltpId-149"

      },

      {

         "from":"10.10.10.10-SOTN_9001_TS2_assured",

         "to":"nodeId-10.10.10.10-ltpId-58"

      },

      {

         "from":"nodeId-10.10.10.10-ltpId-58",

         "to":"cross-link-5"

      },

      {

         "from":"null",

         "to":"EXT_AAI"

      }

   ]

}

  1. Storing the response of this API in object0. 
  2. Based on the service instance showing specific service informations on canvas as topology using vis.js.


API internal process:

  1. Based on the subscriptionType and serviceInstanceId it invokes the API.
  2. After receiving the response from AAI, storing the data as an object.
  3. From the response of the API call to AAI, the following information can be obtained.
  4. Filtered data of Nodes and edges..
  5. From the response of step 4, we would be having Nodes and Edges object.
  6. Plotting the Nodes and Edges on Canvas using vis.js library.


Interface definition:

Interface Definition

Description

Content-Type

application/json

Operation Type

GET

URI

https://{host}:{port}/api/usecaseui-server/v1/uui-lcm/Sotnservices/resourceTopology/service/service-subscriptions/service-subscription/service-instances/service-instance/{serviceInstace}

  • Request Header

Header Name

Required?

Description

Accept

N

Determines the format of the body of the response. Valid value is “application/json”

Content-Type

N

Determines the format of the request content. Only application/json is supported.

Content-Length

N

Number of bytes in the body of the request. Note that content length is limited to 1 MB.

Authorization

N

Supplies Basic Authentication credentials for the request. If the Authorization header is missing, then an HTTP 400 Invalid Request response is returned. If the string supplied is invalid, then an HTTP 401 Unauthorized response is returned.

  • Response Body

Attribute

Required?

Cardinality

Content

Values

Description

Nodes

Y

1

Nodes array


List of nodes

Edges

Y

1

Edges array


List of connection between nodes(startnode-->endnode)


Node Info

Attribute

Required?

Cardinality

Content

Values

Description

Id

Y

1

String


A unique id for node

shape

Y

1

String

circular

shape of the node

image

Y

1

String

Jpg/png/jpeg

Image for node

label

N

1

String


Label for node 

color

Y

1

String


Color of node

Data node

Y

1

object


It is vary upon nodes info

  • HTTP Response Code

HTTP Code

Response Phrase

Description

201

Created

An optimization solution is found.

202

Accepted

An optimization request is accepted.

400

Bad request

Bad request.

401

Unauthorized

Request body is not compliant with the API definition.

404

Not found

The server cannot find the requested URI.

405

Method not found

The requested method is not supported by a server.

500

Internal server error

The server encountered an internal server error or timed out.

520

Solver error

Requested number of solutions cannot be found.

  • No labels