NorthStar API v2

The Juniper Networks NorthStar API enables querying of topology, management of topology planning parameters, and management of TE-LSP.

NorthStar API v2 was introduced in NorthStar Controller version 2.1 for id/name separation and is not backwards compatible with v1.

This version allows node and link objects to have separate names and ids. You, as the API user, can control names, while ids are under NorthStar control.

NorthStar 6.0 introduces the following REST API changes:

  • Topology can now be augmented with CE and Site nodes, see topology section

  • P2MP Tree Design and provisioning now supports CE and Site nodes as destination nodes.

P2MP groups and SRLG/Facilities are available through the API since NorthStar 4.2 , and you can use a notification from NorthStar Controller to dynamically push updates to REST API clients.

Use the P2MP REST API calls to create P2MP groups and manage the following P2MP group common attributes:

  • Bandwidth

  • Setup/Holding Priority

  • Coloring Attributes

NOTE: P2MP groups cannot be created nor managed by TE-LSPs.

You can use the TE-LSP API calls or the new P2MP REST API calls to delete the P2MP leaves. For more information, see the P2MP section

You access the API through the NorthStar server (as in northstar.example.net), through HTTP port 8091 and HTTPS port 8443, on base URLs like the following:

  • http://northstar.example.net:8091/NorthStar/API/

  • https://northstar.example.net:8443/NorthStar/API/

All of the NorthStar RESTful APIS use JSON-formatted data that conforms to the JSON-Schema specification. The main schema is topology_v2.json , and it contains links to the other data types. All schema can be found in this archive. Common data types are described in common.json . The following kinds of data and functionality are accessible and can be manipulated using the RESTful API:

You will find some example code associated with the API reference information. In addition, several examples that illustrate common usage can be found later in this document . In our example requests, we use HTTP, however the same functionality is available over HTTPS.

Existing REST APIs that reference plannedProperties/operationalStatus needs to be changed to plannedProperties/routingStatus as backwards compatibility will not be maintained from this release going forward. The reason for the change is based on the feedback from users that under plannedProperties, routingStatus would be more clear than operationalStatus. For an example, please see "LSP update example" under TE-LSPs events section below.

Notification API

NorthStar provides a socket.io interface on which object updates are sent. The socket.io namespace used is /restNotifications-v2, and the list of events is described in the next table. Unless noted, the new value of an object (or the index of the object upon object removal) is sent in the event.

NorthStar /restNotifications-v2 events
Event Schema Description
topologyEvent topology_v2.json#/definitions/topologyNotification Event affecting the complete topology, for instance when the administrator does a topology reset or resync. The notification sent can be as follows. First an add notification with empty topology indicating that the Topology has been re-synched or reseted. Second an update notification with a topology object containing only node or link set. This indicates that the complete node (resp. link) should be re-synched. This may happen in high-load situation where the notification rate is too big (northstar.cfg *_state_refresh_threshold).
nodeEvent topology_v2.json#/definitions/nodeNotification Node event notification.
linkEvent topology_v2.json#/definitions/linkNotification Link event notification.
lspEvent topology_v2.json#/definitions/lspNotification TE-LSP event notification.
lspTopologyEvent topology_v2.json#/definitions/lspTopologyEvent This notification is sent when there is a burst of LSP notification, it indicates that the complete set of TE-LSPs is potentially changed. See northstar.cfg lsp_state_refresh_threshold
demandEvent topology_v2.json#/definitions/demandNotification Demand event notification.
demandTopologyEvent topology_v2.json#/definitions/lspTopologyEvent This notification is sent when there is a burst of LSP or demand notification, it indicates that the complete set of TE-LSPs is potentially changed. See northstar.cfg lsp_state_refresh_threshold (This is intentionally the same as TE-LSPs).
p2mpEvent topology_v2.json#/definitions/p2mpGroupNotification P2MP group event notification. The lsp in the update are reduced to their lspIndex to reduce the size of the event
facilityEvent topology_v2.json#/definitions/facilityNotification Facility/SRLG event notification.
teContainerEvent topology_v2.json#/definitions/containerNotification TE Container event notification.
maintenanceEvent topology_v2.json#/definitions/maintenanceNotification Maintenance resource notification.
haEvent topology_v2.json#/definitions/haHostNotification Node state event notification. Only update (no add or remove) events are supported. The notification does not include the list of processes and only contains operational information.
healthEvent topology_v2.json#/definitions/healthNotification Node health event notification. Only update (no add or remove) events are supported. The notifications include utilization of CPU, disk, memory that exceed certain threshold, and processes status.
componentStatus topology_v2.json#/definitions/statusComponentNotification Indicating LSP reconciliation during NS bringup or Switchover.
ipePolicyEvent topology_v2.json#/definitions/ipePolicyNotification IPE Policy event notification.

The following example is a simple python client for receiving all NorthStar Notifications:


                #!/usr/bin/env python
from socketIO_client import SocketIO, BaseNamespace
import requests,json,sys
serverURL = 'https://northstar.example.net'
username = 'user'
password = 'password'
class NSNotificationNamespace(BaseNamespace):
    def on_connect(self):
        print('Connected to %s:8443/restNotifications-v2'%serverURL)
    def on_event(key,name,data):
        print "NorthStar Event: %r,data:%r"%(name,json.dumps(data))
# First use NorhtStar OAuth2 authentication API to get a token
payload = {'grant_type': 'password','username': username,'password': password}
r = requests.post(serverURL + ':8443/oauth2/token',data=payload,verify=False,auth=(username, password))
data =r.json()
if "token_type" not in data or "access_token" not in data:
    print "Error: Invalid credentials"
    sys.exit(1)
headers= {'Authorization': "{token_type} {access_token}".format(**data)}
socketIO = SocketIO(serverURL, 8443,verify=False,headers= headers)
ns = socketIO.define(NSNotificationNamespace, '/restNotifications-v2')
socketIO.wait() 

Topology

Use the endpoints to retrieve the following information:

  • Topology list

  • Node list

  • Links

  • TE-LSPs

  • Demands

  • Facilities

  • P2MP group

  • TE-Containers

  • Maintenances

  • Interfaces

  • Component status

  • Topology status

Apply query parameter q=JSONPath to filter the objects listed under a specific endpoint. Example: The HTTP request GET https://northstar.example.net:8443/NorthStar/API/v2/tenant/1/topology/1/te-lsps?q=$.[?(@.operationalStatus == "Down")] lists only the te-lsps with attribute operationalStatus value "Down". For more information on JSON, refer JSONPath

The topology schema is: topology_v2.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/topologies [GET: get a list of topologies]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id> [GET: get all Nodes and Links]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/< topology-id>/status [GET: get status of all NorthStar components]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/status/multilayerTopology [GET: get multi-layer topology status]

The topology is typically populated using BGP-LS peering with NorthStar, but it is possible to add nodes and links using the REST API for modelling purposes. Since NorthStar 6.0, two node attributes are used to refine how nodes added using the REST API are considered for path computation, typically to model CE and Site nodes. The first attribute is a new attribute (ipRole) that models how the node is used with regard to LSP termination/transit. The attribute accepts the values: Regular, Access and Core and are defined below. Access nodes cannot act as transit, while core nodes can be transit but cannot terminate LSPs from access nodes directly. Regular nodes can act as transit nodes. The second attribute is an existing attribute (Vendor) with special values (CE or SITE) and control how the LSP is installed in the network:CE and Site nodes are pruned from the signaled path. Please see Nodes section for example on how to create Site and CE nodes.

GET
v2/tenant/​{tenant_id}​/topology
Get List of Topologies

Returns a list of the topologies that are available.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
   {
      "topologyIndex": 1,
      "topoObjectType": "topology"
   }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​
Get Topological Elements

Lists topological elements

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

The following examples show different set of results:

  • The example shows three nodes, and two point-to-point links between node 11 and node 8. One node is PCEP-enabled (node 8, name 62.0.0.104) and one node is a pseudo node (node 2). A pseudo node does not have router-ids in its protocol object. It's pseudoNode attribute set to TRUE.

    {
        "links": [
            {
                "endA": {
                    "TEcolor": 0,
                    "TEmetric": 10,
                    "bandwidth": 10000000000,
                    "ipv4Address": {
                        "address": "62.104.107.1",
                        "topoObjectType": "ipv4"
                    },
                    "node": {
                        "name": "62.0.0.104",
                        "topoObjectType": "node",
                        "topologyIndex": 1
                    },
                    "protocols": {
                        "ISIS": {
                            "TEMetric": 10,
                            "level": "L2",
                            "srlgs": [{"srlgValue": 407}]
                        },
                        "RSVP": {"bandwidth": 10000000000}
                    },
                    "srlgs": [{"srlgValue": 407 }],
                    "topoObjectType": "interface",
                    "unreservedBw": [9989999616, 9989999616, 9989999616, 9989999616, 9489999872, 9489999872, 9489999872, 9489999872  ]
                },
                "endZ": {
                    "TEcolor": 0,
                    "TEmetric": 10,
                    "bandwidth": 10000000000,
                    "ipv4Address": {
                        "address": "62.104.107.2",
                        "topoObjectType": "ipv4"
                    },
                    "node": {
                        "name": "62.0.0.107",
                        "topoObjectType": "node",
                        "topologyIndex": 1
                    },
                    "protocols": {
                        "ISIS": {
                            "TEMetric": 10,
                            "level": "L2",
                            "srlgs": [ { "srlgValue": 407 }]
                        },
                        "RSVP": {"bandwidth": 10000000000 }
                    },
                    "srlgs": [{"srlgValue": 407}],
                    "topoObjectType": "interface",
                    "unreservedBw": [9989999616, 9989999616, 9989999616, 9989999616, 9989999616, 9989999616,9989999616,9489999872]
                },
                "linkIndex": 6,
                "name": "L62.104.107.1_62.104.107.2",
                "operationalStatus": "Up",
                "topoObjectType": "link",
                "topologyIndex": 1
            },
            {
                "endA": {
                    "TEcolor": 0,
                    "TEmetric": 10,
                    "bandwidth": 10000000000,
                    "ipv4Address": {
                        "address": "62.114.117.1",
                        "topoObjectType": "ipv4"
                    },
                    "node": {
                        "name": "62.0.0.104",
                        "topoObjectType": "node",
                        "topologyIndex": 1
                    },
                    "protocols": {
                        "ISIS": {
                            "TEMetric": 10,
                            "level": "L2",
                            "srlgs": [{"srlgValue": 407}]
                        },
                        "RSVP": { "bandwidth": 10000000000 }
                    },
                    "srlgs": [{"srlgValue": 407} ],
                    "topoObjectType": "interface",
                    "unreservedBw": [ 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]
                },
                "endZ": {
                    "TEcolor": 0,
                    "TEmetric": 10,
                    "bandwidth": 10000000000,
                    "ipv4Address": {
                        "address": "62.114.117.2",
                        "topoObjectType": "ipv4"
                    },
                    "node": {
                        "name": "62.0.0.107",
                        "topoObjectType": "node",
                        "topologyIndex": 1
                    },
                    "protocols": {
                        "ISIS": {
                            "TEMetric": 10,
                            "level": "L2",
                            "srlgs": [{"srlgValue": 407}]
                        },
                        "RSVP": {"bandwidth": 10000000000}
                    },
                    "srlgs": [{"srlgValue": 407}],
                    "topoObjectType": "interface",
                    "unreservedBw": [9600000000,600000000,9600000000,9600000000,9600000000,9600000000,9600000000,9600000000]
                },
                "linkIndex": 7,
                "name": "L62.114.117.1_62.114.117.2",
                "operationalStatus": "Up",
                "topoObjectType": "link",
                "topologyIndex": 1
            }
        ],
        "nodes": [
            {
                "AutonomousSystem": {"asNumber": 62},
                "hostName": "vmx104-62",
                "layer": "IP",
                "name": "62.0.0.104",
                "nodeIndex": 8,
                "protocols": {
                    "ISIS": {
                        "TERouterId": "62.0.0.104",
                        "area": "490062",
                        "isoAddress": "0620.0000.0104",
                        "routerId": "62.0.0.104"
                    },
                    "PCEP": {
                        "pccAddress": "62.0.0.104"
                    }
                },
                "topoObjectType": "node",
                "topologyIndex": 1
            },
            {
                "AutonomousSystem": {"asNumber": 62},
                "hostName": "vmx105-62-p107",
                "layer": "IP",
                "name": "62.0.0.107",
                "nodeIndex": 11,
                "protocols": {
                    "ISIS": {
                        "TERouterId": "62.0.0.107",
                        "area": "490062",
                        "isoAddress": "0620.0000.0107",
                        "routerId": "62.0.0.107"
                    }
                },
                "topoObjectType": "node",
                "topologyIndex": 1
            },
    	{
    	    "topoObjectType": "node",
    	    "topologyIndex": 1,
    	    "name": "0620.0000.0101.02",
    	    "nodeIndex": 2,
                "AutonomousSystem": {"asNumber": 62},
    	    "layer": "IP",
    	    "pseudoNode": true,
    	    "protocols": {
    		"ISIS": { }
    	    }
    	}
        ],
        "topoObjectType": "topology",
        "topologyIndex": 1
    }
    
  • The example shows two PE nodes (PE3 and PE4 - discovered from BGP-LS), two CE nodes (CE1 and CE2 - manually created using Node API) and three Sites (SiteA, SiteB and SiteC - manually created using Node API) nodes, and links between PE3 and PE4 (id: L10.0.1.10_10.0.1.9 - discovered from BGP-LS), and manually created link using Links API which are PE3 and SiteA (id: L0100.0000.0003_SiteA_PE3-SiteA), PE4 and SiteB (id: L0100.0000.0004_SiteB_PE4-SiteB), PE3 and CE1 (id: L0100.0000.0003_CE1_PE3-CE1), CE1 and SiteO (id: LCE1_SiteO_CE1-SiteO) and CE2 and SiteO (id: LCE2_SiteO_CE2-SiteO).

    {
        "topologyIndex":1,
        "topoObjectType": "topology",
        "nodes": [
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "0100.0000.0003",
                "nodeIndex": 3,
                "layer": "IP",
                "live": true,
                "AutonomousSystem": {
                    "asNumber": 100
                },
                "routerId": "10.0.0.3",
                "protocols": {
                    "ISIS": {
                        "routerId": "10.0.0.3",
                        "TERouterId": "10.0.0.3",
                        "isoAddress": "0100.0000.0003",
                        "area": "490001"
                    },
                    "NETCONF": {
                        "operationalStatus": "Up",
                        "operationalState": "Connected",
                        "clientAddress": "10.0.0.3",
                        "sessionParameters": {
                            "keepalive": 300
                        },
                        "clientCapabilities": [
                            "http://xml.juniper.net/dmi/system/1.0",
                            "http://xml.juniper.net/netconf/junos/1.0",
                            "urn:ietf:params:netconf:base:1.0",
                            "urn:ietf:params:netconf:capability:candidate:1.0",
                            "urn:ietf:params:netconf:capability:confirmed-commit:1.0",
                            "urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file",
                            "urn:ietf:params:netconf:capability:validate:1.0",
                            "urn:ietf:params:xml:ns:netconf:base:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:candidate:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:url:1.0?scheme=http,ftp,file",
                            "urn:ietf:params:xml:ns:netconf:capability:validate:1.0",
                            "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"
                        ]
                    },
                    "PCEP": {
                        "operationalStatus": "Up",
                        "pccAddress": "10.0.0.3",
                        "sessionParameters": {
                            "keepalive": 0,
                            "deadtimer": 0,
                            "maximumStackDepth": 0
                        },
                        "peerStatefullCapabilities": {
                            "lspUpdate": true,
                            "lspInstantiation": true,
                            "p2mp": true,
                            "p2mpUpdate": true,
                            "p2mpInstantiation": true,
                            "SRCapability": false
                        }
                    },
                    "management": {
                        "address": "10.0.0.3",
                        "vendor": "JUNIPER",
                        "operatingSystem": "JUNOS",
                        "operatingSystemVersion": "19.4R1.10"
                    }
                },
                "hostName": "PE3",
                "configurationDataSource": {
                    "latest": {
                        "href": "/NorthStar/API/v2/tenant/1/topology/1/nodes/3/device/configurationDataSource/latest"
                    }
                }
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "0100.0000.0004",
                "nodeIndex": 4,
                "layer": "IP",
                "live": true,
                "AutonomousSystem": {
                    "asNumber": 100
                },
                "routerId": "10.0.0.4",
                "protocols": {
                    "ISIS": {
                        "routerId": "10.0.0.4",
                        "TERouterId": "10.0.0.4",
                        "isoAddress": "0100.0000.0004",
                        "area": "490001"
                    },
                    "NETCONF": {
                        "operationalStatus": "Up",
                        "operationalState": "Connected",
                        "clientAddress": "10.0.0.4",
                        "sessionParameters": {
                            "keepalive": 300
                        },
                        "clientCapabilities": [
                            "http://xml.juniper.net/dmi/system/1.0",
                            "http://xml.juniper.net/netconf/junos/1.0",
                            "urn:ietf:params:netconf:base:1.0",
                            "urn:ietf:params:netconf:capability:candidate:1.0",
                            "urn:ietf:params:netconf:capability:confirmed-commit:1.0",
                            "urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file",
                            "urn:ietf:params:netconf:capability:validate:1.0",
                            "urn:ietf:params:xml:ns:netconf:base:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:candidate:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0",
                            "urn:ietf:params:xml:ns:netconf:capability:url:1.0?scheme=http,ftp,file",
                            "urn:ietf:params:xml:ns:netconf:capability:validate:1.0",
                            "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"
                        ]
                    },
                    "PCEP": {
                        "operationalStatus": "Up",
                        "pccAddress": "10.0.0.4",
                        "sessionParameters": {
                            "keepalive": 0,
                            "deadtimer": 0,
                            "maximumStackDepth": 0
                        },
                        "peerStatefullCapabilities": {
                            "lspUpdate": true,
                            "lspInstantiation": true,
                            "p2mp": true,
                            "p2mpUpdate": true,
                            "p2mpInstantiation": true,
                            "SRCapability": false
                        }
                    },
                    "management": {
                        "address": "10.0.0.4",
                        "vendor": "JUNIPER",
                        "operatingSystem": "JUNOS",
                        "operatingSystemVersion": "19.4R1.10"
                    }
                },
                "hostName": "PE4",
                "configurationDataSource": {
                    "latest": {
                        "href": "/NorthStar/API/v2/tenant/1/topology/1/nodes/4/device/configurationDataSource/latest"
                    }
                }
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "SiteA",
                "nodeIndex": 11,
                "layer": "Service",
                "live": false,
                "routerId": "11.0.0.1",
                "ipRole": "Access",
                "protocols": {
                    "ISIS": {
                        "routerId": "11.0.0.1",
                        "TERouterId": "11.0.0.1"
                    },
                    "management": {
                        "vendor": "SITE"
                    }
                },
                "hostName": "SiteA",
                "name": "SiteA"
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "SiteB",
                "nodeIndex": 12,
                "layer": "Service",
                "live": false,
                "routerId": "11.0.0.2",
                "ipRole": "Access",
                "protocols": {
                    "ISIS": {
                        "routerId": "11.0.0.2",
                        "TERouterId": "11.0.0.2"
                    },
                    "management": {
                        "vendor": "SITE"
                    }
                },
                "hostName": "SiteB",
                "name": "SiteB"
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "SiteO",
                "nodeIndex": 25,
                "layer": "Service",
                "live": false,
                "routerId": "11.0.0.15",
                "ipRole": "Access",
                "protocols": {
                    "ISIS": {
                        "routerId": "11.0.0.15",
                        "TERouterId": "11.0.0.15"
                    },
                    "management": {
                        "vendor": "SITE"
                    }
                },
                "hostName": "SiteO",
                "name": "SiteO"
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "CE1",
                "nodeIndex": 31,
                "layer": "Service",
                "live": false,
                "routerId": "11.0.0.101",
                "ipRole": "Regular",
                "protocols": {
                    "ISIS": {
                        "routerId": "11.0.0.101",
                        "TERouterId": "11.0.0.101"
                    },
                    "management": {
                        "vendor": "CE"
                    }
                },
                "hostName": "CE1",
                "name": "CE1"
            },
            {
                "topoObjectType": "node",
                "topologyIndex": 1,
                "id": "CE2",
                "nodeIndex": 32,
                "layer": "Service",
                "live": false,
                "routerId": "11.0.0.102",
                "ipRole": "Regular",
                "protocols": {
                    "ISIS": {
                        "routerId": "11.0.0.102",
                        "TERouterId": "11.0.0.102"
                    },
                    "management": {
                        "vendor": "CE"
                    }
                },
                "hostName": "CE2",
                "name": "CE2"
            }
        ],
        "links": [
            {
                "topoObjectType": "link",
                "linkIndex": 6,
                "id": "L10.0.1.10_10.0.1.9",
                "live": true,
                "topologyIndex": 1,
                "operationalStatus": "Up",
                "endZ": {
                    "ipv4Address": {
                        "topoObjectType": "ipv4",
                        "address": "10.0.1.10"
                    },
                    "protocols": {
                        "RSVP": {
                            "bandwidth": 10000000
                        },
                        "ISIS": {
                            "level": "L2",
                            "TEMetric": 10
                        }
                    },
                    "bandwidth": 10000000,
                    "interfaceName": "ge-0/0/1.0",
                    "TEcolor": 0,
                    "TEmetric": 10,
                    "unreservedBw": [
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000
                    ],
                    "node": {
                        "topoObjectType": "node",
                        "id": "0100.0000.0004",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 10000000,
                        "usedBandwidth": 0,
                        "measuredDelay": 0.87,
                        "interfaceUtilization": 0.00107,
                        "interfaceTraffic": 10700,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "ipv4Address": {
                        "topoObjectType": "ipv4",
                        "address": "10.0.1.9"
                    },
                    "protocols": {
                        "RSVP": {
                            "bandwidth": 10000000
                        },
                        "ISIS": {
                            "level": "L2",
                            "TEMetric": 10
                        }
                    },
                    "bandwidth": 10000000,
                    "interfaceName": "ge-0/0/0.0",
                    "TEmetric": 10,
                    "unreservedBw": [
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000,
                        10000000
                    ],
                    "node": {
                        "topoObjectType": "node",
                        "id": "0100.0000.0003",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 10000000,
                        "usedBandwidth": 0,
                        "measuredDelay": 0.87,
                        "interfaceUtilization": 0.00158,
                        "interfaceTraffic": 15800,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T17:07:08Z"
                    }
                }
            },
            {
                "topoObjectType": "link",
                "linkIndex": 13,
                "id": "L0100.0000.0003_SiteA_PE3-SiteA",
                "live": false,
                "topologyIndex": 1,
                "operationalStatus": "Unknown",
                "name": "PE3-SiteA",
                "endZ": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "SiteA",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "0100.0000.0003",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T07:34:55Z"
                    }
                }
            },
            {
                "topoObjectType": "link",
                "linkIndex": 46,
                "id": "L0100.0000.0003_CE1_PE3-CE1",
                "live": false,
                "topologyIndex": 1,
                "operationalStatus": "Unknown",
                "name": "PE3-CE1",
                "endZ": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "CE1",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "0100.0000.0003",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T07:34:55Z"
                    }
                }
            },
            {
                "topoObjectType": "link",
                "linkIndex": 62,
                "id": "LCE1_SiteO_CE1-SiteO",
                "live": false,
                "topologyIndex": 1,
                "operationalStatus": "Unknown",
                "name": "CE1-SiteO",
                "endZ": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "SiteO",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "CE1",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T07:34:55Z"
                    }
                }
            },
            {
                "topoObjectType": "link",
                "linkIndex": 63,
                "id": "LCE2_SiteO_CE2-SiteO",
                "live": false,
                "topologyIndex": 1,
                "operationalStatus": "Unknown",
                "name": "CE2-SiteO",
                "endZ": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "SiteO",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "CE2",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T07:34:55Z"
                    }
                }
            },
            {
                "topoObjectType": "link",
                "linkIndex": 15,
                "id": "L0100.0000.0004_SiteB_PE4-SiteB",
                "live": false,
                "topologyIndex": 1,
                "operationalStatus": "Unknown",
                "name": "PE4-SiteB",
                "endZ": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "SiteB",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0
                    }
                },
                "endA": {
                    "node": {
                        "topoObjectType": "node",
                        "id": "0100.0000.0004",
                        "topologyIndex": 1
                    },
                    "topoObjectType": "interface",
                    "utilization": {
                        "utilization": 0,
                        "availableBandwidth": 1000000000,
                        "usedBandwidth": 0,
                        "tunnelUtilization": 0,
                        "tunnelLiveUtilization": 0,
                        "lastUpdate": "2020-04-30T07:34:55Z"
                    }
                }
            }
        ]
    }
    

This operation does not accept a request body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​
Delete the Topology

Deletes all of the topology planned data. The information acquired through BGP-LS reappears immediately.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only topologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status
Get NorthStar Component Status

Returns the status of all NorthStar components.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: topology_v2.json#/definitions/componentStatusList .

[
  {
    "component": "PCE",
    "status": "PCE is up.",
    "statusTimestamp": 1468006441666,
    "statusTimestampTime": "2016-07-08T19:34:01.666Z"
  },
  {
    "component": "Topology acquisition",
    "status": "Connected to NTAD: 172.16.16.2 port: 450",
    "statusTimestamp": 1468006441632,
    "statusTimestampTime": "2016-07-08T19:34:01.632Z"
  },
  {
    "component": "Path Computation Server",
    "status": "Active Path Stat: 3 up 0 down 0 detoured 0 being provisioned. Link Stat: 19 up 0 down. Node Stat: 7 active nodes, 0 PCC nodes",
    "statusTimestamp": 1468153795771,
    "statusTimestampTime": "2016-07-10T12:29:55.771Z"
  },
  {
    "component": "Transport Topology acquisition",
    "status": "Up",
    "childs": [
      {
        "status": "Up; current peer: hostname='' ip='192.0.2.10'",
        "statusTimestamp": 1468153845392,
        "statusTimestampTime": "2016-07-10T12:30:45.392062Z",
        "component": "VendorX"
      }
    ],
    "statusTimestamp": 1468153853495,
    "statusTimestampTime": "2016-07-10T12:30:53.495Z"
  }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/pce
Get PCEP Protocol Adapter Status

Returns the status of the PCEP protocol adapter component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "PCE",
    "status": "PCE is up.",
    "statusTimestamp": 0
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/topologyAcquisition
Get BGP-LS Protocol Adapter Status

Returns the status of the Network Topology Acquisition Daemon (NTAD, BGP-LSP protocol adapter) component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Topology acquisition",
    "status": "Connected to NTAD: 62.105.199.2 port: 450",
    "statusTimestamp": 1427167092212
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/pathComputationServer
Get Path Computation Server Status

Returns the status of the Path Computation Server component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
  {
    "component": "Path Computation Server",
    "status": "Active Path Stat: 3 up 0 down 0 detoured 0 being provisioned. Link Stat: 19 up 0 down. Node Stat: 7 active nodes, 0 PCC nodes",
    "statusTimestamp": 1468153795771,
    "statusTimestampTime": "2016-07-10T12:29:55.771Z"
  }

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/transportTopologyAcquisition
Get Transport Topology Acquisition Daemon Status

Returns the status of the Transport Network Topology Acquisition Daemon.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
  {
    "component": "Transport Topology acquisition",
    "status": "Up",
    "childs": [
      {
        "status": "Up; current peer: hostname='' ip='192.0.2.10'",
        "statusTimestamp": 1468153845392,
        "statusTimestampTime": "2016-07-10T12:30:45.392062Z",
        "component": "VendorX"
      }
    ],
    "statusTimestamp": 1468153853495,
    "statusTimestampTime": "2016-07-10T12:30:53.495Z"
  }

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/analyticsCollection
Get Analytics Data Collection Component Status

Returns the status of the analytics data collection.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Analytics data collection",
    "status": "host=pcs-server, status=OK",
    "statusTimestampTime": "2017-07-27T04:09:05.239Z",
    "statusTimestamp": 1501128545239
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/analyticsDatabase
Get Analytics Data Collection Database Status

Returns the status of the analytics data collection database.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Analytics database",
    "status": "Analytics Database Status:green Cluster NorthStar nodes count:1 (1 data nodes)",
    "statusTimestamp": 1501129483764,
    "statusTimestampTime": "2017-07-27T04:24:43.764Z"
}

This operation does not accept a request body.

Node

Use these endpoints for access to the nodes retrieved through BGP-LS and planned nodes.

The node schema is: node_v2.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes [GET : get all nodes, POST : create a new node]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/search URL parameters : name, AS, queryType=OR [ GET : search nodes (name/as)]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex> [ GET : get node, POST : modify node , DELETE]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex>/history [ GET : node history]

As explained in the topology section, nodes can be created in the REST API, including CE and Site nodes. The examples for those are detailed in the "Create a Planned Node" section below.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes
Get Nodes

Returns a full list of nodes.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "AutonomousSystem": {"asNumber": 62},
        "layer": "IP",
        "name": "0620.0000.0101.02",
        "nodeIndex": 2,
        "protocols": {
            "ISIS": {}
        },
	"pseudoNode": true,
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx101-62",
        "layer": "IP",
        "name": "62.0.0.101",
        "nodeIndex": 1,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.101",
                "area": "490062",
                "isoAddress": "0620.0000.0101",
                "routerId": "62.0.0.101"
            },
            "PCEP": {
                "pccAddress": "62.0.0.101"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p105",
        "layer": "IP",
        "name": "62.0.0.105",
        "nodeIndex": 9,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.105",
                "area": "490062",
                "isoAddress": "0620.0000.0105",
                "routerId": "62.0.0.105"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p106",
        "layer": "IP",
        "name": "62.0.0.106",
        "nodeIndex": 10,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.106",
                "area": "490062",
                "isoAddress": "0620.0000.0106",
                "routerId": "62.0.0.106"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p107",
        "layer": "IP",
        "name": "62.0.0.107",
        "nodeIndex": 11,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.107",
                "area": "490062",
                "isoAddress": "0620.0000.0107",
                "routerId": "62.0.0.107"
            }
        },
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [-0.025,-49.459999]
	    }
	}
        "topoObjectType": "node",
        "topologyIndex": 1
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes
Create a Node

Creates a node using the following schema: node_v2.json#/definitions/createNode .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The following JSON sample shows the minimum required information to add a planned node. The Following parameters are required:

Create Node Required Attributes
Attribute Type Description Fixed
name string No Node Name
topologyIndex integer Yes 1
topoObjectType string Yes node

The following parameters can be set:

  • Name

  • Autonomous System

  • management address

  • hostName

  • nodeType

  • design parameter: canFail

  • Node coordinates

  • ipRole: Regular or Access or Core

  • vendor: CE or SITE

Create Node examples:

  • In this example, create planned node

    {
        "name": "PlannedNode",
        "topoObjectType": "node",
        "topologyIndex": 1
    }
    

    The response is:

    {
        "layer": "IP",
        "name": "PlannedNode",
        "nodeIndex": 12,
        "protocols": {},
        "topoObjectType": "node",
        "topologyIndex": 1
    }
  • In this example, create Site node with Access role. The node will not be used as transit node during path computation (due to ipRole=Transit) and won't be included in P2MP tree signaling (due to vendor=SITE)

    {
       "topoObjectType":"node",
       "topologyIndex":1,
       "name":"SiteZ",
       "ipRole":"Access",
       "protocols":{
          "management":{
             "vendor":"SITE"
          }
       }
    }

    The response is:

    {
       "nodeIndex":46,
       "layer":"IP",
       "name":"SiteZ",
       "ipRole":"Access",
       "topoObjectType":"node",
       "live":false,
       "topologyIndex":1,
       "location":"/NorthStar/API/v2/tenant/1/topology/1/nodes/46",
       "id":"SiteZ",
       "protocols":{
          "management":{
             "vendor":"SITE"
          }
       }
    }
    
  • In this example, create CE node with Regular role. Compared to the previous example (Site), this node will be used as transit for path computation (ipRole=Regular).

    {
       "topoObjectType":"node",
       "topologyIndex":1,
       "name":"CEZ1",
       "ipRole":"Regular",
       "protocols":{
          "management":{
             "vendor":"CE"
          }
       }
    }

    The response is:

    {
       "nodeIndex":58,
       "layer":"IP",
       "name":"CEZ1",
       "ipRole":"Regular",
       "topoObjectType":"node",
       "live":false,
       "topologyIndex":1,
       "location":"/NorthStar/API/v2/tenant/1/topology/1/nodes/58",
       "id":"CEZ1",
       "protocols":{
          "management":{
             "vendor":"CE"
          }
       }
    }
    

Response example:

The responses are shown per example in the request section. In general the response is a JSON document conforming to node_v2.json#/definitions/createNode.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/search
Search Nodes

Searches the list of nodes for specific URI parameters. For example, search?name=62.0.0.101 must return one node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

name (Optional) query xsd:string

Filters on node name. The parameter is treated as a regular expression. Simple strings such as 62.0.0.101 are accepted. JavaScript regexp (for example, /^62/) is also accepted.

hostName (Optional) query xsd:int

Filters on hostname

AS (Optional) query xsd:int

Filters on AS number

queryType (Optional) query xsd:string

The queryType parameter sets the logical operator to be used between the query parameters. By default, the queryType is AND. If queryType is set to OR, node is included in the result if any of the query parameters matches.

Response example:
[
    {
        "AutonomousSystem": {"asNumber": 62},
        "layer": "IP",
        "name": "0620.0000.0101.02",
        "nodeIndex": 2,
        "protocols": {
            "ISIS": {}
        },
	"pseudoNode": true,
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx101-62",
        "layer": "IP",
        "name": "62.0.0.101",
        "nodeIndex": 1,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.101",
                "area": "490062",
                "isoAddress": "0620.0000.0101",
                "routerId": "62.0.0.101"
            },
            "PCEP": {
                "pccAddress": "62.0.0.101"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p105",
        "layer": "IP",
        "name": "62.0.0.105",
        "nodeIndex": 9,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.105",
                "area": "490062",
                "isoAddress": "0620.0000.0105",
                "routerId": "62.0.0.105"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p106",
        "layer": "IP",
        "name": "62.0.0.106",
        "nodeIndex": 10,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.106",
                "area": "490062",
                "isoAddress": "0620.0000.0106",
                "routerId": "62.0.0.106"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p107",
        "layer": "IP",
        "name": "62.0.0.107",
        "nodeIndex": 11,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.107",
                "area": "490062",
                "isoAddress": "0620.0000.0107",
                "routerId": "62.0.0.107"
            }
        },
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [-0.025,-49.459999]
	    }
	}
        "topoObjectType": "node",
        "topologyIndex": 1
    }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only nodeEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Get a Single Node

Returns details for a node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Response example:
{
    "AutonomousSystem": {
        "asNumber": 62
    },
    "hostName": "vmx101-62",
    "layer": "IP",
    "name": "62.0.0.101",
    "nodeIndex": 1,
    "protocols": {
        "ISIS": {
            "TERouterId": "62.0.0.101",
            "area": "490062",
            "isoAddress": "0620.0000.0101",
            "routerId": "62.0.0.101"
        },
        "PCEP": {
            "pccAddress": "62.0.0.101"
        }
    },
    "topoObjectType": "node",
    "topologyIndex": 1
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Update Node Properties

Updates a node using the following schema: node_v2.json#/definitions/updateNode

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Request example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1
}
Response example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Patch Node

Updates a node using a RFC6902 patch: json-patch.json. The result of the patch must conform to node_v2.json#/definitions/updateNode. The REST server remove all operational parameters like operationalStatus, ..etc. .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Request example:

The Patched update accepts the same parameters as the update

[{"op" : "add", "path":"/protocols/PCEP/extensions/lsp-association-protection" , "value" : false}]
Response example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1,
    "protocols" : {
        "PCEP" : {
            "extensions" : {
                "lsp-association-protection" : false
            }
        }
    }
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Delete a Node

Deletes a node. (You cannot delete a live node; it reappears on the next update from Topology server.)

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​/history
Get the Node Event History

Returns the event history for a node.

 

The history contains a list of Unix-timestamped events for the node resource.

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

start (Optional) query xsd:int

Start timestamp: Include events with the starting timetime and later.

end (Optional) query xsd:int

End timestamp: Include events before (but not including) the ending timestamp.

Response example:
[
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130726939
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130727025
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427135395317
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "CHI",
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [
		    4.29167,
		    2.9
		]
	    }
	},
	"timestamp": 1427168112286
    }
]
POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Create a List of Nodes

Creates several Nodes using the following JSON schema: node_v2.json#/definitions/createNodeList .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must contain a list of Nodes to be created. The individual node parameters are the same as creating an single node.

[
    {"name": "PlannedNode2","topoObjectType": "node","topologyIndex": 1},
    {"name": "PlannedNode3","topoObjectType": "node","topologyIndex": 1}
]
Response example:
[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","name": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","name": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false}
]
PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Update a List of Nodes

Updates several Nodes using the following JSON schema: node_v2.json#/definitions/nodeListUpdate .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk update accepts a list of Node updates. Each entry requires the same parameters and logic as updating a single Node.

[
    {"nodeIndex": 9,"topoObjectType": "node","topologyIndex": 1, "hostName" : "testHostName"},
    {"nodeIndex": 10,"topoObjectType": "node","topologyIndex": 1,"comment" : "This is a comment"}
]
Response example:

The response contains a list of individual update responses (see Node update).

[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false,"hostName" : "testHostName"},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false,"comment" : "This is a comment"}
]   
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Update a List of Nodes using PATCH

Updates several Nodes using the following JSON schema: node_v2.json#/definitions/nodeListPatch .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk PATCH accepts a list consisting of nodeIndex and patch:

[
    {"nodeIndex": 9, "patch" : [{"op" : "add", "path" : "/comment", "value": "Updated"}]},
    {"nodeIndex": 10,"patch" : [{"op" : "add", "path" : "/comment", "value": "Updated-1"}]}
]
Response example:

The response contains a list of individual update responses.

[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false,"hostName" : "testHostName","comment" : "Updated"},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false,"comment" : "Updated1"}
]   
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Delete a List of Nodes

Deletes a list of Nodess. The payload must conform to node_v2.json#/definitions/nodeListDelete

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

TE-LSPs

Use these endpoints to access TE-LSPs and the related information.

The TE-LSP schema is: lsp.json .

You can perform the following operations using the TE-LSP endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/ [GET : get all te-lsps, POST : create one LSP]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/search search parameters : name={nameFilter}, from={fromIpV4} operStatus={operationalStatus} queryType=OR [ GET : search LSPs ()]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/bulk Bulk LSP operations: allows to create/update/delete a list of te-lsps [ POST : create LSPs , PUT/PATCH : update lsps, DELETE : delete]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex> [ GET : get te-lsp, PUT/PATCH : update, DELETE : delete]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex>/history [ GET : get historical index of te-lsps]

Note: Use this API to create point-to-point LSPs only. The API supports RSVP and SR LSPs. Starting from Northstar release 4.1 onwards, binding SID SR LSPs are supported. Do not use this API to create the P2MP members. Ensure that you use the P2MP resources to create P2MP resources.

The TE-LSP API does allow diverse LSPs to be computed. This is controlled using the following set of attributes:

  • diversityGroup: the LSPs are grouped together using a diversityGroup. If LSP1 and LSP2 should be diverse to each other, they should be in the same diversityGroup.

  • diversityLevel (site, srlg or link): the level of requested diversity. NorthStar will try to compute path that reach that diversity level, if this cannot be achieved, it will try to route the path as diverse as possible, unless minimumDiversityLevel is specified.

  • minimumDiversityLevel (site, srlg or link): the minimum acceptable diversity level. If NorthStar cannot achieve diversity as good or better than minimumDiversityLevel, the routing is considered as failed.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps
Get TE-LSPs

Returns the TE-LSP list.

 

The example contains 10 TE-LSPs:

  • A simple delegated LSP (index 1, named LSP_Node101_Node102). A delegated LSP is configured in the PCC and delegated to NorthStar. NorthStar controls the path and some attributes of the LSP.

  • A delegated LSP with a configured explicit path (index 2, name LSP_101_103). The path name in the router is Path_Node101_Node103_Strict_1.

  • A protected tunnel with a primary and secondary path. The two paths (each represented as a TE-LSP) of a tunnel (index 3 and 4). The tunnel is named LSP_Node102_Node104_with_secondary and each path has a pathName. The tunnel name is used for correlation. One path (index3) is the primary path, while the other is the secondary path. The secondary path will be activated upon primary path failure. LSPs carrying traffic are marked as "Active" rather than "Up".

  • A protected tunnel with a primary and secondary standby path (index 5 and 6). The model is similar to a tunnel with a secondary path, the difference is that the standby path has a pathType set to standby and the path is signaled in the control plane (making its operational status "Up").

  • A set of three TE-LSPs in a TE++ configuration (index 7,8,9). The TE-LSPs are named TEplusplus-Node102-Node103-<index>. Correlation of the entries can be done using liveProperties, options, and TEPlusPlusId. Those LSPs are not delegated to NorthStar, as indicated by the attribute controlType set to PCC. NorthStar will not modify those LSPs.

  • A PCE-Initiated LSP (index 10).

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-105-106",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "lspIndex": 13,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.106",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 1
        },
        "tunnelId": 60274,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 10,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.101:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 14
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.103:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 15
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.106:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 16
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990091",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-101",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "lspIndex": 17,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 32533,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990082",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-102",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "lspIndex": 18,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.102",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 29910,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990087",
            "correlatedRROHopCount": 2
        },
        "name": "Silver-104-103",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 19,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32451,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-104-105",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 20,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32072,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps
Create a TE-LSP

Creates a TE-LSP using the following JSON schema: lsp.json#/definitions/createLSP . For example, protection and custom service mapping parameters set.

 
Normal response codes
201
Error response codes
400
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

Create LSP Required Attributes.
Attribute Type Description Fixed
name string No Tunnel name
from/address string No Tunnel ingress
to/address string No Tunnel egress

The following examples show different set of parameters and results:

  • LSP with a bandwidth of 100M

    {
        "name": "Rest_LSP_1",
        "from": {
    	"topoObjectType": "ipv4",
    	"address": "62.0.0.101"
        },
        "to": {
    	"topoObjectType": "ipv4",
    	"address": "62.0.0.103"
        },
        "plannedProperties": {
    	"bandwidth": "100M",
    	"setupPriority": 7,
    	"holdingPriority": 7
        }
    }
    
  • Primary and standby LSPs. The source (from), destination (to), and name must be the same. The standby (and secondary) LSPs must have a pathName attribute set in order to differentiate them. The Primary LSP may have a pathName set.

    Primary LSP:

    {
        "name": "REST_LSP_2", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "pathType": "primary", 
        "plannedProperties": {	
    	"bandwidth": "400M", 
    	"setupPriority": 7, 
    	"holdingPriority": 7
        }
    }
    

    Standby LSP:

    {
        "name": "REST_LSP_2", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "pathType": "standby", 
        "plannedProperties": {	
    	"pathName" : "standby_path_for_second_LSP",
    	"bandwidth": "100M", 
    	"setupPriority": 7, 
    	"holdingPriority": 7
        }
    }
    
  • LSP with a loose explicit route. The loose hop must follow a hop; if no other hop can be supplied, usual best practice is use of the ingress node ID.

    {
    
        "name": "REST_LPS_with_explicit_route",
        "from": {"topoObjectType": "ipv4","address": "62.0.0.101"},
        "to":   {"topoObjectType": "ipv4","address": "62.0.0.103"},
        "plannedProperties": {
    	"bandwidth": 10000000,
    	"setupPriority": 7,
    	"holdingPriority": 7,
    	"ero" : [
                {"topoObjectType": "ipv4","address": "62.0.0.101","loose": false},
                {"topoObjectType": "ipv4","address": "62.0.0.102","loose": true}
    	]
        }
    }
    
  • Creates a TE LSP and associates it with a CCC VPN via userProperties.

    {
      "name": "lintalphaomega",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "RSVP",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "24k",
        "setupPriority": 7,
        "holdingPriority": 7,
        "userProperties": {
          "ccc-vpn-name": "vpnsisisi",
          "ccc-interface": "ge-0/0/7.987",
          "transmit-lsp": "lintalphaomega",
          "receive-lsp": "lintomegaalpha"
        }
      }
    }
    

    The response is :

    {
        "plannedProperties": {
            "bandwidth": "24K",
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "lintalphaomega_p0",
            "adminStatus": "Up",
            "preferredEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "userProperties": {
                "ccc-vpn-name": "vpnsisisi",
                "ccc-interface": "ge-0/0/7.987",
                "transmit-lsp": "lintalphaomega",
                "receive-lsp": "lintomegaalpha"
            },
            "lastStatusString": "[ConfigServer]<Netconf provisioning order received",
            "correlatedRROHopCount": 0
        },
        "name": "lintalphaomega",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 95,
        "controlType": "PCC",
        "provisioningType": "RSVP"
    }
    

In the following NETCONF SR LSP examples, the following should be noted:

  • Only Juniper routers are supported.

  • Only NETCONF provisioning is supported.

  • The binding SID label, if specified, is checked by the device based on the configured label range.

  • Only one primary LSP path is supported.

SR LSP examples:

  • In this example, the SR LSP has a node SID specified for the destination.

    {
      "name": "restSRNodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restSRNodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 106,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the SR LSP has a list of link SIDs specified to reach the destination.

    {
      "name": "restSRLinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.104"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.101.105.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.105.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.106.107.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.1",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.1",
                    "loose": false
                }
            ]
        },
        "name": "restSRLinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "lspIndex": 107,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    

    In NorthStar, a privateForwardingAdjacency is comprised of a pair of binding SID SR LSPs from node A to node Z and from node Z to node A.

  • In this example, the Binding SID SR LSP named restBindingSIDSRnodeSID from vmx105 to vmx 107 has a node SID specified for the destination.

    {
      "name": "restBindingSIDSRnodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048048,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restBindingSIDSRnodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "lspIndex": 108,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRnodeSID from vmx107 to vmx 105 has a node SID specified for the destination.

    {
      "name": "restBindingSIDSRnodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048048,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restBindingSIDSRnodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 109,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRlinkSIDs from vmx105 to vmx 107 has a list of SIDs specified to reach the destination.

    {
      "name": "restBindingSIDSRlinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048049,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.105.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.106.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.2",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.106.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                }
            ]
        },
        "name": "restBindingSIDSRlinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "lspIndex": 110,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRlinkSIDs from vmx107 to vmx 105 has a list of SIDs specified to reach the destination.

    {
      "name": "restBindingSIDSRlinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048049,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.106.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.105.2",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.106.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.2",
                    "loose": false
                }
            ]
        },
        "name": "restBindingSIDSRlinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 111,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the SR LSP named restSRoverPFA1 from vmx101 to vmx 103 has a list of SIDs specified to reach the destination; along the path, a privateForwardingAdjacency is used.

    {
      "name": "restSRoverPFA1",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.101.105.2",
            "loose": false
          },
          {
            "topoObjectType": "hopId",
            "id": "binding:0110.0000.0105:restBindingSIDSRlinkSIDs",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.103.107.1",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "hopId",
                    "id": "binding:0110.0000.0105:restBindingSIDSRlinkSIDs",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ]
        },
        "name": "restSRoverPFA1",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 112,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    

Response example:

The following example shows the creation of an LSP with a bandwidth of 100M:

{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}

If the input does not conform to the JSON schema, the response includes an HTTP Error 400 and the validation errors.

{
  "error": "Input Validation error :Invalid type: number (expected string) /name"
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/search
Search LSPs

Performs a search in the LSP list based on the URI parameters. For example, "search?name=62.101.105" returns one link.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

name (Optional) query xsd:string

Filters on specified LSP Name, which is treated as a regular expression. Simple strings like "LP_" are acceptable, as are JavaScript regular expressions such as "/104$/").

from (Optional) query xsd:string

Filters on the LSP from/address property.

operationalStatus (Optional) query xsd:string

Filters based on the LSP operationalStatus property.

queryType (Optional) query xsd:string

The queryType parameter sets the logical operator to be used between the query parameters. By default, the queryType is AND. If the queryType is set to OR, an LSP is included in the results if any of its parameter values match the query.

Response example:
[
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-105-106",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "lspIndex": 13,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.106",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 1
        },
        "tunnelId": 60274,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 10,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.101:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 14
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.103:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 15
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.106:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 16
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990091",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-101",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "lspIndex": 17,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 32533,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990082",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-102",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "lspIndex": 18,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.102",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 29910,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990087",
            "correlatedRROHopCount": 2
        },
        "name": "Silver-104-103",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 19,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32451,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-104-105",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 20,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32072,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only lspEvent or lspTopologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Get a Single TE-LSP

Returns the details for a TE-LSP.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Response example:
{
    "lspIndex": 2,
    "name": "LP_101_103",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "Delegated",
    "plannedProperties": {
	"bandwidth": "10M",
	"setupPriority": 7,
	"holdingPriority": 0,
	"calculatedEro": [
	    {"topoObjectType": "ipv4","address": "62.101.105.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.105.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.106.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.106.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.107.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.103.107.1","loose": false}
	],
	"pathName": "Path_Node101_Node103_Strict_1",
	"adminStatus": "Up",
	"routingStatus": "Up",
	"lastStatusString": "<Active PCS initialization"
    },
    "liveProperties": {
        "adminStatus": "Up",
        "bandwidth": 10000000,
        "ero": [
            {"address": "62.101.105.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.103.107.1", "loose": false, "topoObjectType": "ipv4" }
        ],
        "holdingPriority": 0,
        "metric": 40,
        "pathName": "Path_Node101_Node103_Strict_1",
        "rro": [
            {"address": "62.0.0.105",   "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.101.105.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.107",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.103",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.103.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
        ],
        "setupPriority": 7
    },
    "operationalStatus": "Active",
    "pathType": "primary",
    "tunnelId": 56614
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Update a TE-LSP

Updates a TE-LSP using the JSON schema: lsp.json#/definitions/updateLSP .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Request example:

The update accepts the same parameters as the create, except for parameters that cannot be modified (from, to, name, pathName, pathType).

{
    "lspIndex": 31,
    "name": "Rest_LSP_1",
    "from": {"topoObjectType": "ipv4","address": "62.0.0.101" },
    "to": {"topoObjectType": "ipv4","address": "62.0.0.103"  },
    "pathType": "primary",
    "plannedProperties": {
	"bandwidth": "15M",
	"setupPriority": 7,
	"holdingPriority": 7	
    }
}
Response example:
{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Patch a TE-LSP

Updates a TE-LSP using a RFC6902 patch: json-patch.json. The result of the patch must conform to lsp.json#/definitions/updateLsp. The REST server remove all operational parameters like operationalStatus, ..etc. . Using an empty patch (empty list) will result in the LSP to be re-provisioned without parameter changed.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Request example:

The Patched update accepts the same parameters as the create, except for parameters that cannot be modified (from, to, name, pathName, pathType).

[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "100M" }]
Response example:
{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Delete a TE-LSP

Deletes a TE-LSP. This function is supported only on the PCE-initiated LSPs. PCC-controlled and PCC-delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Create a List of TE-LSPs

Creates several TE-LSPs using the following JSON schema: lsp.json#/definitions/createLSPList .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must contain a list of LSPs to be created. The LSP parameters are the same as creating an individual LSP. The following example shows the creation of two diverse LSPs at the same time.

[
    {
        "name": "REST_LSP_DIVERSE_1", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"}
        }
    },
    {
        "name": "REST_LSP_DIVERSE_2", 
        "from": {"address": "62.0.0.103", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.101", "topoObjectType": "ipv4"},
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"}
        }
    }
]
Response example:
[
    {
        "name": "REST_LSP_DIVERSE_1", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "lspIndex": 21,
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    },
    {
        "name": "REST_LSP_DIVERSE_2", 
        "from": {"address": "62.0.0.103", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.101", "topoObjectType": "ipv4"},
        "lspIndex": 22,       
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    }
]

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Update a List of TE-LSPs

Updates several TE-LSPs using the following JSON schema: lsp.json#/definitions/lspListUpdate .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk update accepts a list of LSP updates. Each entry requires the same parameters and logic as updating a single LSP.

Response example:

The response contains a list of individual update responses (see TE-LSP update).

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Update a List of TE-LSPs using PATCH

Updates several TE-LSPs using the following JSON schema: lsp.json#/definitions/lspListPatch .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk PATCH accepts a list consisting of lspIndex and patch:

[
	{"lspIndex" : 1,"patch":[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "1M" }]},
	{"lspIndex" : 2,"patch":[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "2M" }]}
]
Response example:

The response contains a list of individual update responses (see TE-LSP update).

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Delete a List of TE-LSPs

Deletes a list of TE-LSPs. This function is supported only on the PCE-initiated LSPs. PCC-controlled and PCC-delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.b The payload must conform to lsp.json#/definitions/lspListDelete

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​/history
Get the LSP Event History

Returns the history for a TE-LSP.

 

The history contains a list of Unix-timestamped events for the LSP resource.

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

start (Optional) query xsd:int

Start timestamp: Include events with the starting timetime and later.

end (Optional) query xsd:int

End timestamp: Include events before (but not including) the ending timestamp.

Response example:
[
    {
	"plannedProperties": {
	    "bandwidth": "0",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "PCC",
	"eventStatusString": "<Down",
	"timestamp": 1427128941053,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "0",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "PCC",
	"eventStatusString": "<Down PCS initialization",
	"timestamp": 1427128941057,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "VMX103_VMX101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "reprovision:provisioning new delegated lsp",
	"timestamp": 1427132006714,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427132006720,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427132006780,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Up",
	"timestamp": 1427132007053,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427132007069,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427132009764,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427135406437,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "reprovision:Provision using planned data",
	"timestamp": 1427167092366,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down, PCS initialization",
	"timestamp": 1427167092372,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427167092475,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427167092516,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427167092865,
	"operation": "State Change"
    }
]

Demands

Use the following endpoints to access demands and the related information. Demands can be created based on netflow or LDP collection tasks.

The demand resources are described in demands.json .

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands
Gets all Demands

Returns a full list of Demands.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[  
   {  
      "operationalStatus":"Unknown",
      "plannedProperties":{  
         "bandwidth":"1.684666M",
         "setupPriority":7,
         "holdingPriority":7,
         "calculatedEro":[  
            {  
               "topoObjectType":"ipv4",
               "address":"11.103.107.2",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.105.107.1",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.101.105.1",
               "loose":false
            }
         ],
         "routingStatus":"Up",
         "pathName":"11.0.0.101",
         "adminStatus":"Up",
         "lastStatusString":"[PCServer]>demand update",
         "controllerStatus":{  
            "status":""
         },
         "correlatedRROHopCount":3
      },
      "name":"vmx103_11.0.0.101/32_NONE_IP",
      "from":{  
         "topoObjectType":"ipv4",
         "address":"11.0.0.103"
      },
      "pathType":"primary",
      "to":{  
         "topoObjectType":"prefix",
         "address":"11.0.0.101",
         "length":32
      },
      "demandIndex":30,
      "liveProperties":{  
         "bandwidth":"1.684666M"
      }
   },
   {  
      "operationalStatus":"Unknown",
      "plannedProperties":{  
         "bandwidth":"1.613733M",
         "setupPriority":7,
         "holdingPriority":7,
         "calculatedEro":[  
            {  
               "topoObjectType":"ipv4",
               "address":"11.104.107.2",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.105.107.1",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.102.105.1",
               "loose":false
            }
         ],
         "routingStatus":"Up",
         "pathName":"11.0.0.102",
         "adminStatus":"Up",
         "lastStatusString":"[PCServer]>demand update",
         "controllerStatus":{  
            "status":""
         },
         "correlatedRROHopCount":3
      },
      "name":"vmx104_11.0.0.102/32_NONE_IP",
      "from":{  
         "topoObjectType":"ipv4",
         "address":"11.0.0.104"
      },
      "pathType":"primary",
      "to":{  
         "topoObjectType":"prefix",
         "address":"11.0.0.102",
         "length":32
      },
      "demandIndex":31,
      "liveProperties":{  
         "bandwidth":"1.613733M"
      }
   }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands
Create a Demand

Create a demand using the following JSON schema: demands.json#/definitions/createDemand .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
   "plannedProperties":{  
      "pathName":"11.0.0.11",
      "bandwidth":"0",
      "setupPriority":7,
      "holdingPriority":7,
      "design":{  
         "routingMethod":"default",
         "adminGroups":{  

         }
      }
   },
   "name":"testprefix",
   "pathType":"primary",
   "from":{  
      "topoObjectType":"ipv4",
      "address":"11.0.0.10"
   },
   "to":{  
      "topoObjectType":"ipv4",
      "address":"11.0.0.11"
   },
   "prefix":{  
      "topoObjectType":"ipv4",
      "address":"10.4.10.0",
      "length":24
   }
}
Response example:
{
    "plannedProperties": {
        "bandwidth": 0,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up"
    },
    "name": "testprefix",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 17,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.10.0",
        "length": 24
    }
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only demandEvent and demandTopologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Get a Specific Demand

Return the details of a specified demand.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Response example:
{
    "operationalStatus": "Unknown",
    "plannedProperties": {
        "bandwidth": 0,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "10.1.10.1",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.1.2.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.2.11.11",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "correlatedRROHopCount": 3,
        "lastStatusString": "[PCServer]<demand orders update"
    },
    "name": "testprefix",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 27,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.10.0",
        "length": 24
    }
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Update a Specific Demand

Modify a specific demand using the following JSON schema: demands.json#/definitions/updateDemand .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Request example:
{
    "plannedProperties": {
        "bandwidth": 4727,
        "setupPriority": 7,
        "holdingPriority": 7,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "10.1.10.1",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.1.2.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.2.11.11",
                "loose": false
            }
        ],
        "bindingLSP":"sr-color-test",
        "routingStatus": "Up",
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "lastStatusString": "[PCServer]>new demand",
        "correlatedRROHopCount": 3
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 47,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
Response example:
{
    "plannedProperties": {
        "bandwidth": 4727,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "bindingLSP": "sr-color-test"
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 47,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Update a Specific Demand using PATCH

Patch a specific demand using a RFC6902 patch: json-patch.json. The result of the patch must conform to demands.json#/definitions/updateDemand. The REST server remove all operational parameters like operationalStatus, ..etc. .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Request example:
[{ "op": "add", "path": "/plannedProperties/bindingLSP", "value": "sr-color-test" }]
Response example:
{
    "plannedProperties": {
        "bandwidth": 140019,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "bindingLSP": "sr-color-test"
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 50,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Delete a Specific Demand

Delete a specific demand.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Create a set of Demands

Create a set of demands using the following JSON schema: demands.json#/definitions/createDemandList. The resulting list of demands (after the patch is applied) must also conform to demands.json#/definitions/demandListUpdate . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
	{  
	   "plannedProperties":{  
	      "pathName":"11.0.0.11",
	      "bandwidth":"0",
	      "setupPriority":7,
	      "holdingPriority":7,
	      "design":{  
	         "routingMethod":"default",
	         "adminGroups":{  
	
	         }
	      }
	   },
	   "name":"testprefix",
	   "pathType":"primary",
	   "from":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.10"
	   },
	   "to":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.11"
	   },
	   "prefix":{  
	      "topoObjectType":"ipv4",
	      "address":"10.4.10.0",
	      "length":24
	   }
	},
	{  
	   "plannedProperties":{  
	      "pathName":"11.0.0.11",
	      "bandwidth":"0",
	      "setupPriority":7,
	      "holdingPriority":7,
	      "design":{  
	         "routingMethod":"default",
	         "adminGroups":{  
	
	         }
	      }
	   },
	   "name":"testprefix2",
	   "pathType":"primary",
	   "from":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.10"
	   },
	   "to":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.11"
	   },
	   "prefix":{  
	      "topoObjectType":"ipv4",
	      "address":"10.4.11.0",
	      "length":24
	   }
	}	
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.10.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.11.0",
            "length": 24
        }
    }
]
PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Update a set of Demands

Update a set of demands using the following JSON schema: demands.json#/definitions/demandListUpdate . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.20.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.21.0",
            "length": 24
        }
    }
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.20.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.21.0",
            "length": 24
        }
    }
]
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Patch a set of Demands

Patch a set of demands using the following JSON schema: demands.json#/definitions/demandListPatch . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
	{"demandIndex" : 51,"patch":[{ "op": "replace", "path": "/prefix/address", "value": "10.4.30.0" }]},
	{"demandIndex" : 52,"patch":[{ "op": "replace", "path": "/prefix/address", "value": "10.4.31.0" }]}
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.30.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.31.0",
            "length": 24
        }
    }
]
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Delete a set of Demands

Delete a set of demands. The return code indicates the request acceptance.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
  {"demandIndex":32},
  {"demandIndex":31}
]

This operation does not return a response body.

Task scheduler

Use these endpoints to work with task scheduler.

The scheduler resources are described in scheduler.json.

The scheduler also provides a socket.io interface on which taskStatusUpdate event updates like task add/remove/update/status-change are sent. The socket.io namespace used is /taskScheduler and event name taskStatusUpdate.

GET
v2/tenant/​{tenant_id}​/scheduler/tasklist
Gets all Tasks

Returns a full list of Tasks as per JSON schema: scheduler.json#/definitions/taskList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
    "taskID": "7660df1e-b8fb-4f71-987e-a3d261c4d78f",
    "taskType": "Device Collection",
    "taskName": "dc",
    "createTime": "2019-04-26T09:45:54.745",
    "interval": 1,
    "scheduleType": 0,
    "startTime": "2019-04-26T09:45:54.745",
    "stopTime": null,
    "lastExecutionTime": "2019-04-26T09:45:57.755",
    "lastExecutionEndTime": "2019-04-26T09:46:30.762",
    "lastExecutionStatus": "Completed",
    "chainAfter": null,
    "taskparam": {
        "groupName": "liveNetwork",
        "idList": [],
        "jobId": 1556271955188,
        "opts": {
            "useMgmt": true,
            "concurrentJob": 16,
            "runParsing": true,
            "archiveRawData": true
        },
        "waitingList": [],
        "deviceGroups": [],
        "collection_commands": "config|interface|tunnel_path|transit_tunnel",
        "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
    },
    "lastExecutionLog": [
        "IP Address,Hostname,Status,Job Type,Severity",
        "11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.103,vmx103-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        ",All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/7660df1e-b8fb-4f71-987e-a3d261c4d78f/1556271957755),INFO",
        ",All Devices,COMPLETE,Processing,INFO"
    ],
    "chainTaskGroup": null,
    "taskSize": 1
},
{
    "taskID": "fad3d27f-0e20-45b7-bbf1-c027509d75e0",
    "taskType": "Network Archive",
    "taskName": "NA4",
    "createTime": "2019-06-13T06:03:09.795",
    "interval": 0,
    "scheduleType": 0,
    "startTime": "2019-06-13T06:03:09.795",
    "stopTime": null,
    "lastExecutionTime": "2019-06-13T06:03:12.827",
    "lastExecutionEndTime": "2019-06-13T06:05:56.574",
    "lastExecutionStatus": "Completed",
    "chainAfter": null,
    "taskparam": {
        "opts": [
            "-l"
        ]
    },
    "lastExecutionLog": [
        "Details,Severity",
        "Parsed config files,INFO",
        "Parsed tunnel path and added to the spec file,INFO",
        "Added interface and tunnel traffic to the spec file,INFO",
        "Saved PCS tunnel to optunnel.x and added to the spec file,INFO"
    ],
    "chainTaskGroup": null,
    "taskSize": 1
}
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/scheduler/tasks
Get tasks based on filter tasktype

Returns a list of Tasks by filter tasktype(?tasktype={tasktypeFilter}) as per JSON schema: scheduler.json#/definitions/taskList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "taskID": "7660df1e-b8fb-4f71-987e-a3d261c4d78f",
        "taskType": "Device Collection",
        "taskName": "dc",
        "createTime": "2019-04-26T09:45:54.745",
        "interval": 1,
        "scheduleType": 0,
        "startTime": "2019-04-26T09:45:54.745",
        "stopTime": null,
        "lastExecutionTime": "2019-04-26T09:45:57.755",
        "lastExecutionEndTime": "2019-04-26T09:46:30.762",
        "lastExecutionStatus": "Completed",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1556271955188,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "IP Address,Hostname,Status,Job Type,Severity",
            "11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.103,vmx103-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            ",All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/7660df1e-b8fb-4f71-987e-a3d261c4d78f/1556271957755),INFO",
            ",All Devices,COMPLETE,Processing,INFO"
        ],
        "chainTaskGroup": null,
        "taskSize": 1
    },
    {
        "taskID": "c51aea24-1c13-426a-89c9-fbb99ecc87de",
        "taskType": "Device Collection",
        "taskName": "future",
        "createTime": "2019-06-11T12:18:52.112",
        "interval": 0,
        "scheduleType": 1,
        "startTime": "2019-06-28T12:18:00.00",
        "stopTime": null,
        "lastExecutionTime": null,
        "lastExecutionEndTime": null,
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560255525511,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [],
        "chainTaskGroup": null,
        "taskSize": 1
    },
    {
        "taskID": "70c71c06-73b4-4ea6-b4c8-48b831bb1781",
        "taskType": "Device Collection",
        "taskName": "dc1",
        "createTime": "2019-06-10T08:44:04.929",
        "interval": 0,
        "scheduleType": 0,
        "startTime": "2019-06-10T08:44:04.929",
        "stopTime": null,
        "lastExecutionTime": "2019-06-10T08:44:07.953",
        "lastExecutionEndTime": "2019-06-10T08:44:46.30",
        "lastExecutionStatus": "Completed",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560156243979,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/70c71c06-73b4-4ea6-b4c8-48b831bb1781/1560156247953),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": null,
        "taskSize": 4
    },
    {
        "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
        "taskType": "Device Collection",
        "taskName": "First collection",
        "createTime": "2019-06-14T05:24:45.745",
        "interval": 1,
        "scheduleType": 4,
        "startTime": "2019-06-14T05:23:00.00",
        "stopTime": null,
        "lastExecutionTime": "2019-06-14T05:24:45.759",
        "lastExecutionEndTime": "2019-06-14T05:25:32.754",
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560489792572,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/00e61ebd-adb2-4d97-a18f-b072f6f43504/1560489885759),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": null,
        "taskSize": 4
    },
    {
        "taskID": "862b6dfb-4494-4230-ab4b-f40849eefc10",
        "taskType": "Device Collection",
        "taskName": "dc-1day",
        "createTime": "2019-02-05T09:09:38.237",
        "interval": 1,
        "scheduleType": 4,
        "startTime": "2019-02-05T09:09:38.237",
        "stopTime": null,
        "lastExecutionTime": "2019-06-13T09:09:38.278",
        "lastExecutionEndTime": "2019-06-13T09:10:13.691",
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1549357765460,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/862b6dfb-4494-4230-ab4b-f40849eefc10/1560416978278),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": "Device Collection_dc-1day",
        "taskSize": 4
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/scheduler/updatetask
Update a task

Update a task using the following JSON schema: scheduler.json#/definitions/updateTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
  "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "taskType": "Device Collection",
  "taskName": "First collection",
  "interval": 1,
  "scheduleType": 4,
  "chainAfter": null,
  "chainTaskGroup": "",
  "taskparam": {
    "groupName": "liveNetwork",
    "idList": [],
    "opts": {
      "useMgmt": true,
      "concurrentJob": 16,
      "runParsing": true,
      "archiveRawData": true
    },
    "waitingList": [],
    "deviceGroups": [],
    "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
    "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
  },
  "startTime": "2019-06-14T05:23:00.000Z"
}
Response example:
{
  "taskID":"00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "success":true
}
POST
v2/tenant/​{tenant_id}​/scheduler/removeaddtask
Remove and add a new Task

Removes all the existing tasks with given taskType and adds a new Task using the following JSON schema: scheduler.json#/definitions/updateTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
  "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "taskType": "Device Collection",
  "taskName": "First collection",
  "interval": 1,
  "scheduleType": 4,
  "chainAfter": null,
  "chainTaskGroup": "",
  "taskparam": {
    "groupName": "liveNetwork",
    "idList": [],
    "opts": {
      "useMgmt": true,
      "concurrentJob": 16,
      "runParsing": true,
      "archiveRawData": true
    },
    "waitingList": [],
    "deviceGroups": [],
    "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
    "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
  },
  "startTime": "2019-06-14T05:23:00.000Z"
}
Response example:
{
  "taskID":"00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "success":true
}
POST
v2/tenant/​{tenant_id}​/scheduler/deletetask
Delete tasks

Delete one or more tasks using the following JSON schema: scheduler.json#/definitions/deleteTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
["00e61ebd-adb2-4d97-a18f-b072f6f43504"]
Response example:
{
    "success": true
}
GET
v2/tenant/​{tenant_id}​/scheduler/taskshistory/​{taskId}​
Gets task execution status history in HTML table format for a given taskId

Returns task execution status history in HTML table format as per JSON schema: scheduler.json#/definitions/tasksHistoryList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
{
 "header": "1) 2019-06-14T07:03:18.040Z to 2019-06-14T07:03:42.616Z",
 "details":"
  <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"},

{
 "header": "2) 2019-06-14T06:58:18.040Z to 2019-06-14T06:58:42.722Z",
 "details":"
  <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"},

{
 "header":"3) 2019-06-14T06:53:18.037Z to 2019-06-14T06:53:45.973Z",
 "details":"
 <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"
}
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/scheduler/taskstatus/​{taskId}​
Gets task execution status history for a given taskId

Returns task execution status history as per JSON schema: scheduler.json#/definitions/tasksStatusList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:18:18.044Z",
        "executionendtime": "2019-06-14 07:18:41.763Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:13:18.042Z",
        "executionendtime": "2019-06-14 07:13:42.494Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:08:18.040Z",
        "executionendtime": "2019-06-14 07:08:44.478Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:03:18.040Z",
        "executionendtime": "2019-06-14 07:03:42.616Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 06:58:18.040Z",
        "executionendtime": "2019-06-14 06:58:42.722Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    }
]

This operation does not accept a request body.

Device Profiles

Use these endpoints to work with device profiles.

The device profile schema is: deviceProfile.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/profiles/ [GET : get all device profile, POST : create new device profiles, PUT: update device profiles, DELETE : delete device profiles]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/netconfCollection/liveNetwork [ POST: create a collection job with requested device profile ids ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/netconfCollection/<id> [ GET: get a collection job status with requested job id ]

GET
v2/tenant/​{tenant_id}​/netconf/profiles
Get all Profiles

Gets all profiles.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList .

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/netconf/profiles
Create New Profiles

Creates new profiles.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/createProfileList .

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

PUT
v2/tenant/​{tenant_id}​/netconf/profiles
Update Profiles

Updates profiles.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/updateProfileList and must contain an id in each profile: deviceProfile.json#/definitions/profile

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

DELETE
v2/tenant/​{tenant_id}​/netconf/profiles
Delete Profiles

Deletes profiles.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/deleteProfileList and must contain an id in each profile: deviceProfile.json#/definitions/profile

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

POST
v2/tenant/​{tenant_id}​/netconf/netconfCollection/liveNetwork
Create a New Collect

Creates a new collection.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/startCollection .

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .

GET
v2/tenant/​{tenant_id}​/netconf/netconfCollection/​{id}​
Get the Status of a Collection Job

Gets the Status of a collection job.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

collectionJobId URI xsd:int

The unique identifier of the collection job.

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .

This operation does not accept a request body.

TE-Containers

TE-Containers are related to TE-LSPs, similar to JunOS TE++ containers. The API allows the access to those TE-Containers parameter. A TE-Container has most of the TE-LSP parameters and split/merge parameters. A TE-Container will create a set of child TE-LSPs to adjust for traffic. The container normalization is handled as a separate global task.

The TE-containers schema is: lsp-containers.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/ [GET, POST]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/<containerIndex> [ GET , PUT, PATCH , DELETE]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/bulk [ POST , PUT, PATCH , DELETE] Bulk API

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers

List all TE-containers.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: lsp-containers.json.json#/definitions/containerList .

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers

Creates a container.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/createContainer schema.

Response example:

Follows lsp-containers.json#/definitions/container .

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only teContainerEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Gets a TE Container.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Response example:

Follows lsp-containers.json#/definitions/container .

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Updates a TE Container

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

The input must conform to the lsp-containers.json#/definitions/updateContainer schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/container .

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Updates a TE Container using an RFC6902 document

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

The input must conform to the rest-schemas/json-patch.json schema, the produced document (Original resource +patch) must conform to the lsp-containers.json#/definitions/updateContainer schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/container

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Deletes a container.

 

The container must exist, no payload is expected or returned.

Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

No content is expected.

Response example:

No content

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Create a list of TE Container

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerCreateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList .

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Modify a list of TE Container

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerUpdateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList .

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Modify a list of TE Container using a PATCH

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerListPatch schema. the resulting container list (with patch applied) must also comply to the lsp-containers.json#/definitions/containerUpdateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Deletes a list of containers.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The containers must exist, the payload must conform to lsp-containers.json#/definitions/containerListDelete.

Response example:

Facilities

Use these endpoints to work with facilities.

The facilities schema is: facilities.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/facilities/ [GET : get all facilities]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/facilities/<facilityIndex> [ GET : get a facilitity, PUT : update, DELETE: delete]

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities

Gets all Facilities.

 

Returns the following JSON document: facilities.json#/definitions/facilityList .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities

Creates a facility.

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only facilityEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Gets a Facility.

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Updates a facility

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Deletes a facility.

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

P2MP

Use these endpoints to retrieve the P2MP lists and manage the P2MP groups. The complete set of endpoints and parameters is described in the schema p2mp.json. P2MP group in NorthStar can be provisioned using NETCONF (default) or PCEP. Since NorthStar 5.1 flow mapping to MVPN using source and group is supported.

The API allows for group and leaf discovery, creation, modification, deletion and bulk deletion. Those operations are supported using the following endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/ [GET: get all P2MP groups, POST: create a new P2MP group ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex> [GET: get a P2MP group specified by index, PUT/PATCH: modify the P2MP group, DELETE: Delete the P2MP group and all its members leaves, POST: Create a list of leaves, ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/<lspIndex> [GET: get a P2MP leaf by index, PUT: get a P2MP leaf specified by index, DELETE: remove a leaf]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/bulk [DELETE: bulk remove a list of leaves]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/bulk [DELETE only: delete a list of TE-LSP members]

A special use case for the PATCH method is to re-provision an entire tree (or a leaf) and do not change anything. To reprovision a tree a PATCH /NorthStar/API/v2/tenant/1/topology/1/p2mp/<p2mpGroupIndex> payload

[]
The same method is used for a leaf: PATCH /NorthStar/API/v2/tenant/1/topology/1/te-lsps/< lspIndex> payload
[]
. Another use case for PATCH is to add or replace flow mapping, the PATH examples show how to achieve those operations.

Since NorthStar 6.0, the P2MP tree leaves can also be CE or Site nodes. NorthStar path computation will compute the P2MP tree using those nodes but will configure them in the network terminating at the PE nodes. Please note that currently combination of PE and non-pE (CE or Site) nodes as destinations nodes in a P2MP tree is not supported. Use can either create P2MP tree where all destination nodes consist of PE nodes only or consist of CE nodes only. It cannot be combination of both (mixture of PE and CE nodes) in a single tree.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp
Get P2MP groups

Returns a full list of P2MP groups.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "p2mpGroupIndex": 3,
        "p2mpIndex": 40,
        "name": "geeiamtree",
        "topoObjectType": "p2mpGroup",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "links": [
            {
                "rel": "self",
                "href": "3/"
            }
        ]
    },
    {
        "p2mpGroupIndex": 4,
        "p2mpIndex": 43,
        "name": "mapletree",
        "topoObjectType": "p2mpGroup",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "links": [
            {
                "rel": "self",
                "href": "4/"
            }
        ]
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp
Create a P2MP group

Create a P2MP group using the following schema: p2mp.json#/definitions/createP2mpGroup. The API request contains the destination list and the common planned properties. The common planned properties may include plannedProperties with flow mapping parameters.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

While creating the P2MP group, ensure that either the following plannedProperties parameters of all the members are identical, or the group plannedProperties are applied. Do not set the plannedProperties in the members. If you do not provide the plannedProperties parameter, the default value is applied.

P2MP group creation required Attributes.
Attribute Type Default Description
name string None P2MP group name name
from/address string none P2MP group ingress ingress
plannedProperties/bandwidth string or integer 0 P2MP members bandwidth
plannedProperties/setupPriority integer 7 P2MP member setup priority
plannedProperties/holdingPriority integer 0 P2MP member setup holdingPriority
plannedProperties/design/adminGroups/attributeIncludeAny integer 0 (not set) P2MP member setup administrative color include any
plannedProperties/design/adminGroups/attributeIncludeAll integer 0 (not set) P2MP member setup administrative color include all
plannedProperties/design/adminGroups/attributeExclude integer 0 (not set) P2MP member setup administrative color exclude
lsps list None List of members with name and destination. The name must be unique on the ingress.

The following examples show different set of parameters and results:

  • A P2MP tree with 3 Members using NETCONF.

    {
      "name":"alphatree",
      "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          },
          "diversityGroup":"twins"
        }
      },
      "lsps":[
        {
          "name":"alphatree-101102",
          "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"}
        },
        {
          "name":"alphatree-101103",
          "to":{"address": "11.0.0.103", "topoObjectType": "ipv4"}
        },
        {
          "name":"alphatree-101104",
          "to":{"address": "11.0.0.104", "topoObjectType": "ipv4"}
        }
      ]
    }

    The response is:

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
      "lsps":[
        {
          "name":"alphatree-101102",
          "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"11.101.105.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.102.105.1",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101102_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":91,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree-101103",
          "to":{"address": "11.0.0.103", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"11.101.105.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.105.107.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.103.107.1",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101103_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":92,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree-101104",
          "to":{"address": "11.0.0.104", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"dynamic",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101104_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":93,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
  • Create a P2MP group using PCEP and associate it with a Multicast VPN. This is the NorthStar 5.1 version using the flow mapping, prior version were using different encoding.

    {
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"}
        },
        {
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"}
        }
      ],
      "creationConfigurationMethod":"PCEP"
    }

    The response is:

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
  • Create a P2MP group using PCEP and CE and Site nodes as destination nodes. This is NorthStar 6.0 version. CE and Sites nodes are SiteA1, SiteZ and CEY2. Please note that currently combination of PE and Site nodes as destinations nodes in a P2MP tree is not supported. Use can either create P2MP tree with all destination nodes consist of PE nodes only or consist of CE/Site nodes only. It cannot be combination of both (mixture of PE and CE/Sites nodes) in a single tree.

    {
       "name":"pecenoippcep1",
       "creationConfigurationMethod":"PCEP",
       "from":{
          "topoObjectType":"ipv4",
          "address":"10.0.0.1"
       },
       "plannedProperties":{
           "bandwidth":"10"
       },
       "lsps":[
          {
             "to":{
                "topoObjectType":"ipv4",
                "address":"SiteA1"
             }
          },
          {
             "to":{
                "topoObjectType":"ipv4",
                "address":"SiteZ"
             }
          },
          {
             "to":{
                "topoObjectType":"ipv4",
                "address":"CEY2"
             }
          }
       ]
    }
    

    The response is:

    {
       "from":{
          "address":"10.0.0.1",
          "topoObjectType":"ipv4"
       },
       "name":"pecenoippcep1",
       "lsps":[
          {
             "p2mpName":"pecenoippcep1",
             "initiator":"PCE",
             "from":{
                "address":"10.0.0.1",
                "topoObjectType":"ipv4"
             },
             "name":"pecenoippcep1_SiteA1",
             "pathType":"primary",
             "plannedProperties":{
                "adminStatus":"Up",
                "bandwidth":10,
                "holdingPriority":0,
                "setupPriority":7
             },
             "to":{
                "address":"SiteA1",
                "topoObjectType":"ipv4"
             },
             "controlType":"PCEInitiated",
             "provisioningType":"RSVP",
             "lspIndex":462
          },
          {
             "p2mpName":"pecenoippcep1",
             "initiator":"PCE",
             "from":{
                "address":"10.0.0.1",
                "topoObjectType":"ipv4"
             },
             "name":"pecenoippcep1_SiteZ",
             "pathType":"primary",
             "plannedProperties":{
                "adminStatus":"Up",
                "bandwidth":10,
                "holdingPriority":0,
                "setupPriority":7
             },
             "to":{
                "address":"SiteZ",
                "topoObjectType":"ipv4"
             },
             "controlType":"PCEInitiated",
             "provisioningType":"RSVP",
             "lspIndex":464
          },
          {
             "p2mpName":"pecenoippcep1",
             "initiator":"PCE",
             "from":{
                "address":"10.0.0.1",
                "topoObjectType":"ipv4"
             },
             "name":"pecenoippcep1_CEY2",
             "pathType":"primary",
             "plannedProperties":{
                "adminStatus":"Up",
                "bandwidth":10,
                "holdingPriority":0,
                "setupPriority":7
             },
             "to":{
                "address":"CEY2",
                "topoObjectType":"ipv4"
             },
             "controlType":"PCEInitiated",
             "provisioningType":"RSVP",
             "lspIndex":467
          }
       ],
       "creationConfigurationMethod":"PCEP",
       "topoObjectType":"p2mpGroup",
       "plannedProperties":{
          "bandwidth":10,
          "design":{
             "adminGroups":{
                "attributeIncludeAny":0,
                "attributeExclude":0,
                "attributeIncludeAll":0
             }
          },
          "holdingPriority":0,
          "setupPriority":7
       },
       "location":"/NorthStar/API/v2/tenant/1/topology/1/p2mp/2",
       "p2mpGroupIndex":2,
       "provisioningType":"RSVP"
    }

Response example:

The responses are shown per example in the request section. In general the response is a JSON document conforming to p2mp.json#/definitions/p2mpGroup.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only p2mpEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Get a Specific P2MP Group

Returns the details of a specified P2MP group.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Response example:
{
  "topoObjectType":"p2mpGroup",
  "p2mpGroupIndex":8,
  "name":"geeiamtree",
  "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"99k",
    "setupPriority":7,
    "holdingPriority":0,
    "design":{
      "adminGroups":{
        "attributeExclude":0,
        "attributeIncludeAll":0,
        "attributeIncludeAny":0
      }
    }
  },
  "lsps":[
    {
      "name":"geeiamtree101-102",
      "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"99K",
        "calculatedEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "correlatedRROHopCount":2,
        "holdingPriority":0,
        "lastStatusString":"[PCServer]<Active",
        "pathName":"geeiamtree101-102_p0",
        "preferredEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "routingStatus":"Up",
        "setupPriority":7
      },
      "collectedProperties":{
        "adminStatus":"Up",
        "bandwidth":"99K",
        "calculatedEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "correlatedRROHopCount":2,
        "explicitPathName":"geeiamtree101-102_p0",
        "holdingPriority":0,
        "preferredEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "routingStatus":"Up",
        "setupPriority":7
      },
      "controlType":"PCC",
      "controller":"External",
      "from":{
        "address":"11.0.0.101",
        "topoObjectType":"ipv4"
      },
      "liveProperties":{
        "adminStatus":"Up",
        "bandwidth":99000,
        "ero":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "holdingPriority":0,
        "metric":0,
        "operationalStatus":"Active",
        "pathName":"geeiamtree101-102_p0",
        "rro":[
          {
            "address":"11.101.105.2",
            "protectionAvailable":false,
            "protectionInUse":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "protectionAvailable":false,
            "protectionInUse":false,
            "topoObjectType":"ipv4"
          }
        ],
        "setupPriority":7
      },
      "lspIndex":638,
      "operationalStatus":"Active",
      "p2mpIndex":184549477,
      "p2mpName":"geeiamtree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    }
  ],
  "p2mpIndex":638
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Update a Specific P2MP Group

Modify a specific P2MP group, if the LSPS are not specified, the common properties are changed, not the LSPs. If the LSPs are specified, the set of LSPs will be modified. i.e LSP that is not in the new list will be remove, the other will be added/updated".

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:
{
  "topoObjectType":"p2mpGroup",
  "name":"alphatree",
  "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"21k",
    "setupPriority":3,
    "holdingPriority":3
  },
  "lsps":[
    {"to":{"address": "11.0.0.102", "topoObjectType": "ipv4"}},
    {"to":{"address": "11.0.0.103", "topoObjectType": "ipv4"}},
    {"to":{"address": "11.0.0.104", "topoObjectType": "ipv4"}}
  ]
}
Response example:
{
  "topoObjectType":"p2mpGroup",
  "name":"alphatree",
  "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"21k",
    "setupPriority":3,
    "holdingPriority":3,
    "design":{
      "adminGroups":{
        "attributeExclude":0,
        "attributeIncludeAll":0,
        "attributeIncludeAny":0
      }
    }
  },
  "lsps":[
    {
      "name":"alphatree_to213",
      "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"21k",
        "design":{
          "routingMethod":"routeByDevice"
        },
        "holdingPriority":3,
        "pathName":"alphatree_to213_p0",
        "setupPriority":3
      },
      "controlType":"PCC",
      "from":{
        "address":"11.0.0.191",
        "topoObjectType":"ipv4"
      },
      "lspIndex":145948,
      "p2mpName":"alphatree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    },
    {
      "name":"alphatree_to214",
      "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"21k",
        "design":{
          "routingMethod":"routeByDevice"
        },
        "holdingPriority":3,
        "pathName":"alphatree_to214_p0",
        "setupPriority":3
      },
      "controlType":"PCC",
      "from":{
        "address":"11.0.0.191",
        "topoObjectType":"ipv4"
      },
      "lspIndex":145949,
      "p2mpName":"alphatree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    }
  ]
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Update a Specific P2MP Group using a PATCH document

Modify a specific P2MP group using a PATCH document (RFC6906). The operation has the same behavior as the PUT method. An empty PATCH will re-provision the complete tree.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:

The following examples show different set of parameters and results:

  • Modify the group bandwidth, setup and holding priority.

    [{ "op": "add", "path": "/plannedProperties/bandwidth", "value": "21k" },{ "op": "add", "path": "/plannedProperties/setupPriority", "value": 3 },{ "op": "add", "path": "/plannedProperties/holdingPriority", "value": 3 }]
    
  • Modify flow mapping: replace all (initial flows with groups 239.2.2.2 and 239.3.3.3) flows.

    [
      {
        "op":"add",
        "path":"/plannedProperties/flows",
        "value":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.4.4.4", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.5.5.5", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      }
    ]
    
  • Modify flow mapping: insert a new flow (initial flows with groups 239.2.2.2 and 239.3.3.3) flows.

    [
      {
        "op":"add",
        "path":"/plannedProperties/flows/0",
        "value": {
          "topoObjectType":"flow",
          "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
          "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
          "group":{"address": "239.1.1.1", "length": 32, "topoObjectType": "prefix"}
        }  
      }
    ]
    

Response example:

The response to the requests are

  • Modify the group bandwidth, setup and holding priority.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"21k",
        "setupPriority":3,
        "holdingPriority":3,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        }
      },
      "lsps":[
        {
          "name":"alphatree_to213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"21k",
            "design":{
              "routingMethod":"routeByDevice"
            },
            "holdingPriority":3,
            "pathName":"alphatree_to213_p0",
            "setupPriority":3
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145948,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_to214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"21k",
            "design":{
              "routingMethod":"routeByDevice"
            },
            "holdingPriority":3,
            "pathName":"alphatree_to214_p0",
            "setupPriority":3
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145949,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
  • Modify flow mapping: replace all flows.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.4.4.4", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.5.5.5", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
    
  • Modify flow mapping: insert a new flow flows.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.1.1.1", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
    

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Delete a P2MP Group

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/bulk
Delete list of P2MP Groups

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Bulk process P2MP Groups.

Request example:
[
    {"p2mpGroupIndex": 3},
    {"p2mpGroupIndex": 4}
]

This operation does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Create a P2MP Leaf

The POST URL accepts a list of new leaves. Use the following schema to create a P2MP leaf: p2mp.json#/definitions/createP2mpLeavesList .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:
[
  {
    "name":"alphatree_to225",
    "to":{"address": "11.0.0.225", "topoObjectType": "ipv4"}
  }
]
Response example:
[
  {
    "name":"alphatree_to225",
    "to":{"address": "11.0.0.225", "topoObjectType": "ipv4"},
    "plannedProperties":{
      "adminStatus":"Up",
      "bandwidth":"21k",
      "holdingPriority":3,
      "pathName":"alphatree_to225_p0",
      "setupPriority":3
    },
    "controlType":"PCC",
    "from":{
      "address":"11.0.0.191",
      "topoObjectType":"ipv4"
    },
    "lspIndex":145950,
    "p2mpName":"alphatree",
    "pathType":"primary",
    "provisioningType":"RSVP"
  }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/​{lspIndex}​
Get a Specific P2MP Leaf

Returns the details of a specified P2MP leaf.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

The unique lspIndex.

Response example:
{
    "operationalStatus": "Active",
    "plannedProperties": {
        "bandwidth": "99K",
        "setupPriority": 7,
        "holdingPriority": 0,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "pathName": "geeiamtree101-102_p0",
        "adminStatus": "Up",
        "preferredEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "lastStatusString": "[PCServer]<Active",
        "correlatedRROHopCount": 2
    },
    "name": "geeiamtree101-102",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.102"
    },
    "lspIndex": 638,
    "controlType": "PCC",
    "provisioningType": "RSVP",
    "p2mpName": "geeiamtree",
    "collectedProperties": {
        "bandwidth": "99K",
        "setupPriority": 7,
        "holdingPriority": 0,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "explicitPathName": "geeiamtree101-102_p0",
        "adminStatus": "Up",
        "preferredEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "correlatedRROHopCount": 2
    },
    "p2mpIndex": 184549477,
    "liveProperties": {
        "bandwidth": 99000,
        "metric": 0,
        "setupPriority": 7,
        "holdingPriority": 0,
        "operationalStatus": "Active",
        "adminStatus": "Up",
        "ero": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "rro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "protectionInUse": false,
                "protectionAvailable": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "protectionInUse": false,
                "protectionAvailable": false
            }
        ],
        "pathName": "geeiamtree101-102_p0"
    },
    "controller": "External"
}

This operation does not accept a request body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/​{lspIndex}​
Delete a P2MP Leaf

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

The unique lspIndex.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/bulk
Delete list of P2MP leaves

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

Bulk process P2MP leaves.

Request example:
[
    {"lspIndex": 145948},
    {"lspIndex": 145950}
]

This operation does not return a response body.

VRF

The endpoints defined here allows to discover which VRFs are configured in the router. This endpoint has been introduced in NorthStar 5.1 and is read-only. The information from this endpoint is opulated using the device collection.

Those operations are supported using the following endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/vrfs/ [GET: list the nodes with VRF information]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/vrfs/<nodeIndex> [GET: list the VRF on a given node]

The detail of the information provided is defined in the associated json-schema vrfs.json.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/vrfs
Get the nodes with VRF

Returns the list of VRF summary: which node have vrf information and how many vrf are present.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "1/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "entries":6
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "2/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0105", "nodeIndex": 2, "topoObjectType": "node", "topologyIndex": 1},
    "entries":1
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "3/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0106", "nodeIndex": 3, "topoObjectType": "node", "topologyIndex": 1},
    "entries":6
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "4/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0107", "nodeIndex": 4, "topoObjectType": "node", "topologyIndex": 1},
    "entries":3
  }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/vrfs/​{nodeIndex}​
List the VRF on a given node

Returns the list of discovered VRF for that node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Response example:
[
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"cherryblossom",
    "routeDistinguisher":"11.0.0.102:65000",
    "interfaces":[{"interfaceName": "ge-0/0/7.0"}],
    "importPolicies":[{"policyName": "65000:100"}],
    "exportPolicies":[{"policyName": "65000:100"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"etree1",
    "routeDistinguisher":"11.0.0.102:301",
    "interfaces":[{"interfaceName": "ge-0/0/5.301"}],
    "importPolicies":[{"policyName": "6500:301"}],
    "exportPolicies":[{"policyName": "6500:301"}],
    "VLANID":100
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"l2vpn_3_ce_101",
    "routeDistinguisher":"",
    "interfaces":[{"interfaceName": "ge-0/0/5.3"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpn_0",
    "routeDistinguisher":"11.0.0.102:100",
    "interfaces":[{"interfaceName": "ge-0/0/1.0"}, {"interfaceName": "lo0.1"}],
    "importPolicies":[{"policyName": "11:100"}],
    "exportPolicies":[{"policyName": "11:100"}],
    "lspMatchRegex":"^Silver.*"
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpws_sh6_sh2_vlan1002",
    "routeDistinguisher":"11.0.0.102:2002",
    "interfaces":[{"interfaceName": "ge-0/0/5.1002"}],
    "importPolicies":[{"policyName": "6500:1002"}],
    "exportPolicies":[{"policyName": "6500:1002"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpn_200_ce_101",
    "routeDistinguisher":"",
    "interfaces":[{"interfaceName": "ge-0/0/5.200"}]
  }
]

This operation does not accept a request body.

BGP Routes

If PRDP is configured for a set of nodes, this API allows to see the BGP routes retrived by NorthStar.

The schema is: route.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/routes/ [GET : get the list of nodes with bgp routes (summary only)

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/routes/<nodeIndex> [ GET : get the list of routes on a node]

NorthStar is limiting the number of routes fetched, the list may be incomplete.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/routes

List all nodes with BGP routes and the number of routes for that node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: route.json.json#/definitions/summaryList .

[
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "entries": 50
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 5,
            "id": "0110.0000.0010",
            "topologyIndex": 1
        },
        "entries": 98
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 6,
            "id": "0110.0000.0011",
            "topologyIndex": 1
        },
        "entries": 50
    }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/routes/​{nodeIndex}​

Gets the routes maintained by NorthStar for a node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

Program ID of a node.

Response example:

Follows route.json#/definitions/routeList .

[
    {
        "topologyIndex": 1,
        "topologyObjectType": "route",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "table": "inet.0",
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.4.0",
            "length": 24
        },
        "pathCookie": 190819980,
        "asPath": [
            "3",
            "4"
        ],
        "protocolNextHops": [
            "11.0.0.22",
            "11.0.0.31"
        ],
        "protocol": "BGP",
        "routePreference": 170,
        "localPreference": 100,
        "vpnLabel": 0
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "route",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "table": "inet.0",
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.22.0",
            "length": 24
        },
        "pathCookie": 190821156,
        "asPath": [
            "2",
            "4"
        ],
        "protocolNextHops": [
            "11.0.0.22"
        ],
        "protocol": "BGP",
        "routePreference": 170,
        "localPreference": 100,
        "vpnLabel": 0
    }
]

This operation does not accept a request body.

IPE Policies

When generation of external nodes and links through BGP policy configuration is enabled, this API allows creating, retrieving, updating and deleting IPE Policies. Note: This API is currently experimental and subject to change in future releases.

The schema is: ipe.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/ipe/policy/ [ GET : Gets all IPE policies, POST: Creates IPE Policies (bulk), PUT: Updates IPE Policies (bulk), DELETE: Deletes IPE Policies (bulk) ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/ipe/policy/<ipePolicyId> [ GET : Gets single IPE ]

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/ipe/policy

Get all IPE Policies

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "ipe_policies": [
        {
            "id": 1,
            "node": {
                "id": "0110.0000.0011",
                "nodeIndex": 6,
                "topologyIndex": 1,
                "topoObjectType": "node"
            },
            "neighbor": "11.0.0.21",
            "prefix": "199.1.1.0/24",
            "priority": 1,
            "operationalStatus": "Up",
            "errorReason": "None"
        },
        {
            "id": 3,
            "node": {
                "id": "0110.0000.0011",
                "nodeIndex": 6,
                "topologyIndex": 1,
                "topoObjectType": "node"
            },
            "neighbor": "11.0.0.21",
            "prefix": "198.1.1.0/24",
            "priority": 3,
            "operationalStatus": "Up",
            "errorReason": "None"
        },
        {
            "id": 4,
            "node": {
                "id": "0110.0000.0012",
                "nodeIndex": 7,
                "topologyIndex": 1,
                "topoObjectType": "node"
            },
            "neighbor": "11.0.0.31",
            "prefix": "177.1.2.0/24",
            "priority": 5,
            "operationalStatus": "Up",
            "errorReason": "None"
        }
    ]
}

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/ipe/policy

Create IPE Policies

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

Required schema: ipe.json#/definitions/bulkIPECreate

Response example:

This operation does not return a response body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/ipe/policy

Update IPE Policies

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

Required schema: ipe.json#/definitions/bulkIPEUpdate

Response example:

This operation does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/ipe/policy

Delete IPE Policies

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

Required schema: ipe.json#/definitions/bulkIPEDelete

Response example:

This operation does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/ipe/policy/​{ipePolicyId}​

Get single IPE policy

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

ipePolicyId URI xsd:int

Program ID of an IPE policy

Response example:
{
    "id": 4,
    "node": {
      "id": "0110.0000.0012",
      "nodeIndex": 7,
      "topologyIndex": 1,
      "topoObjectType": "node"
    },
    "neighbor": "11.0.0.31",
    "prefix": "177.1.2.0/24",
    "priority": 5,
    "operationalStatus": "Up",
    "errorReason": "None"
  }

This operation does not accept a request body.

Analytics API

The analytics REST API allows to query the analytics data collected by NorthStar controller. Each URL accepts a POST request with as set of parameters refining the query.

Each queried object has specific counters. Those counters are dynamically generated based on the data collected. The queries are

  • Interfaces: /NorthStar/API/v2/tenant/1/statistics/interfaces/fields

  • LSP/demands: /NorthStar/API/v2/tenant/1/statistics/te-lsps/fields

  • Interface delay/loss: /NorthStar/API/v2/tenant/1/statistics/delay/fields

The information returned is a JSON object with a fields property containing a list of strings. For instance:
{ "fields": [ "average_rtt", "jitter", "loss_percent", "max_rtt", "min_rtt", "one_way" ]}

Other common parameters are startTime and endTime, Those parameter represent an absolute or relative time.

Absolute values can be either a string (ISO8601 format, date is required, time is optional) or an integer (milliseconds since epoch). The special value now is accepted.

The Date mathematic consist of a plus or minus followed by a time unit: y (year), M(month), w (week), d (day), h or H (hours), m (minutes) or s (seconds). For instance a query with startTime set to "now-1d", endTime "now" will retrieve the statistics for the last day. This field is based on ElasticSearch Date Math

POST
v2/tenant/​{tenant_id}​/statistics/demands/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • demand (array ): Array of demand objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "demands-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET bulk demand API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "demand": {
      "$ref": "/stats-templates/common.json#/definitions/demandArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/delay/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interfaces/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (integer ): Max number of interfaces top return.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "size": {
      "description": "Max number of interfaces top return",
      "type": "integer",
      "minimum": 1
    },
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/childtraffic/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "interface-traffic.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST interface-traffic API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/bulkdelay
Query resource bulkdelay

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic
Query resource traffic

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic/​{device_name}​
Query resource {device_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "interface-traffic.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST interface-traffic API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/topdelay
Query resource topdelay

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (integer ): Max number of interfaces top return.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "size": {
      "description": "Max number of interfaces top return",
      "type": "integer",
      "minimum": 1
    },
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/childtraffic/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/jnxcos/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /jnxcos/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/delay/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/bulkdelay
Query resource bulkdelay

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/delay/​{device_name}​/​{lsp_name}​
Query resource {lsp_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic
Query resource traffic

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic/​{device_name}​
Query resource {device_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic/​{device_name}​/​{lsp_name}​
Query resource {lsp_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-traffic.json",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/traffic API",
  "type": "object",
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/events/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • from (number ): TODO.

  • startTime (Either string or integer): Date time. .

  • filter (object ): Generic filter object, ???.

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

  • order : Result order (asc or desc).the value must be one of:

    • asc

    • desc

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "events-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "from": {
      "$ref": "/stats-templates/common.json#/definitions/from"
    },
    "order": {
      "$ref": "/stats-templates/common.json#/definitions/order"
    },
    "filter": {
      "$ref": "/stats-templates/common.json#/definitions/filter"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/events/​{lsp_name}​
Query resource {lsp_name}

This query does not accept any parameter.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/device/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/device/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/ldp-lsps/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "ldp-lsps.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/fecArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/ldp-lsps/traffic/​{device_name}​/​{fec}​
Query resource {fec}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-traffic.json",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET /te-lsps/traffic API",
  "type": "object",
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{fec} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/netflow/prefix_flow_demand
Query resource prefix_flow_demand

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • demand (array ): Array of demand objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "demand": {
      "$ref": "/stats-templates/common.json#/definitions/demandArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/sid/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • sid (array ): Array of sid objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /sid/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/sidArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/sr-te-policy/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • policy (array ): Array of policy objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /sr-te-policy/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/policyArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-containers/traffic/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • containerLsp (array ): Array of Container LSP objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-containers/traffic/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "containerLsp": {
      "$ref": "/stats-templates/common.json#/definitions/containerLspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
    "startTime": "now-1h",
    "endTime": "now",
    "aggregation": "avg",
    "interval": "5m",
    "counter": [
      "lsp_stats.pps",
      "lsp_stats.bps"
    ],
    "containerLsp": [
      {
        "name": "Container-lsp-vmx102-104",
        "index": 2
      },
      {
        "name": "Container-lsp-vmx101-106",
        "index": 3
      }
    ]
  }
Response example:
{
    "startTime": 1555989900000,
    "Container-lsp-vmx101-106": {
      "id": {
        "statisticType": "lsp",
        "name": "Container-lsp-vmx101-106"
      },
      "lsp_stats.pps": [
        392,
        617,
        678,
        710,
        663,
        697,
        722,
        662,
        672,
        674,
        717,
        706
      ],
      "lsp_stats.bps": [
        4172245,
        6557747,
        7205803,
        7550527,
        7047811,
        7414119,
        7677474,
        7035194,
        7143393,
        7163097,
        7618785,
        7504668
      ]
    },
    "Container-lsp-vmx102-104": {
      "id": {
        "statisticType": "lsp",
        "name": "Container-lsp-vmx102-104"
      },
      "lsp_stats.bps": [        
        674246,
        6283335,
        5609443,
        6873056,
        6343583,
        5900760,
        5775125,
        5986879,
        6336140,
        6031002,
        5902709,
        2955696
      ],
      "lsp_stats.pps": [
        63,
        591,
        528,
        646,
        597,
        555,
        543,
        563,
        596,
        567,
        555,
        278
      ]
    }
  }

Transport Topology acquisition

Enables configuration of the NorthStar connection to the transport controller for retrieval of abstracted transport topology and automation of addition of information to the IP layer.

The corresponding schema is: transportController.json .

The following tables show the set of parameters describing a transport controller configuration.

Create Transport controller Attributes
Attribute Type Fixed Description
name string No Transport controller name
notifyUrl string No The REST/RESTCONF URL publishing (via Server-Sent-event) topology notifications
profileName string No The profile group name the NorthStar controller must use to connect to the transport controller instances.
topologyUrl string No The URL providing the abstract topology, following the IETF model supported by NorthStar .
topoObjectType string Yes transportController

The other parameters are:

Create Transport controller optional Attributes
Attribute Type Fixed Description
interfaceType string No Indicates whether the transport controller interface follows the RESTCONF draft or a more simple REST interface. This does not affect the NorthStar Operation.
pollUrl string No The URL on the server to poll server liveliness, by default /.well-known/host-meta.
reconnectTimeout string No The time, in seconds, between two reconnect attempts between controller instances.
rootUrl string No Default root URL for RESTCONF datastores.
srlgPrefix string No Use the SRLG prefix to generate the SRLGs for the IP topology. If set, the SRLGs will be TSRLG_<srlgPrefix>_<SRLG>, otherwise TSRLG_<SRLG>. This permits you to either separate or merge two controller SRLG spaces. By default, SRLG is not set, or it has an empty string which corresponds to merging the SRLGs space.
topologyToUse string No The transport controller might return several topologies. This field permits you to select a specific topology to apply as a filter to the model te-topology-id field.

GET
v2/tenant/​{tenant_id}​/transportControllers
Get Transport Controller List

Returns a full list of the transport controllers using the following schema: transportController.json#/definitions/transportControllerList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
  {
    "transportControllerIndex": 1,
    "name": "Nortel",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "pollUrl": "",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "rootUrl": "",
    "srlgPrefix": "",
    "topologyToUse": "",
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
  }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/transportControllers
Create Transport Controller Configuration

Creates a transport controller using the following schema: transportController.json#/definitions/createTransportController

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

{
    "name": "Nortel",
    "topologyModel":"ietf-te-topology-01",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
}

Response example:
{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "topologyModel":"ietf-te-topology-01",    
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}
GET
v2/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Get Transport Controller Configuration

Returns the configuration of a transport controller.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerIndex URI xsd:int

The unique transportControllerIndex.

Response example:

Returns the following JSON document: transportController.json#/definitions/transportController .

{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "topologyModel":"ietf-te-topology-01",    
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Update Transport Controller Configuration

Updates a transport controller using the following schema: transportController.json#/definitions/updateTransportController The parameters are the same as for transport controller creation. A parameter change triggers reconnection to the transport controller using the new parameters.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerIndex URI xsd:int

The unique transportControllerIndex.

Request example:
{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "srlgPrefix": "space1",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}
Response example:
{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "srlgPrefix": "space1",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}
DELETE
v2/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Delete Transport Controller Configuration

Deletes a transport controller configuration. The transport node, link, and circuits created from that transport controller are not deleted. You must delete them manually, if required.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerIndex URI xsd:int

The unique transportControllerIndex.

This operation does not accept a request body and does not return a response body.

Transport Topology devices

Manages a set of instances of a transport controller.

The corresponding schema is: transportControllerEndpoint.json .

The devices are managed as group of devices. For each device the following parameters can be managed:

Create Transport controller Attributes
Attribute Type Fixed Description
ipAddr string No IP address to connect
accessMethod string No Either HTTP or HTTPS
authMethod string No Authentication method; can be BASIC or NOAUTH

The other parameters are:

Create transport controller optional attributes
Attribute Type Fixed Description
hostName string No Device name.
httpPort int No HTTP port.
login string Yes Login to be used for the BASIC auth.
passwd string Yes Encrypted password to be used for the BASIC auth.
retry int No Number of retries for the heartbeat, before the device is considered down.
timeout int No Request timeout for the device.

GET
v2/tenant/​{tenant_id}​/transportControllerGroups
Get Transport Controller Device Groups

Returns the full list of transport controller groups using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroupList .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[  
  {
    "name": "NortelProfile"
  },
  {
    "name": "Default"
  }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/transportControllerGroups
Create A Transport Controller Device Group

Creates a group of transport controller devices using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroupDescription .

 

The request must contain the group name to be created, as shown in the example.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
    "name": "NortelProfile",
    "profileType": "Network Controllers"
}
Response example:
{
  "success": true
}
DELETE
v2/tenant/​{tenant_id}​/transportControllerGroups
Delete a Transport Controller Device Group

Deletes a group of transport controller devices using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroupDescription

 

The request must contain the group name to be deleted, as shown in the example.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
    "name": "NortelProfile",
    "profileType": "Network Controllers"
}
Response example:
{
  "success": true
}
GET
v2/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Get Transport Controller Device Groups

Returns a list of transport controller groups using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroup The password is set by empty strings.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerGroupName URI xsd:string

The name of the transport controller devices group.

Response example:
[
  {
    "id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf",
    "accessMethod": "HTTP",
    "authMethod": "BASIC",
    "hostName": "",
    "httpPort": 80,
    "ipAddr": "10.0.1.3",
    "login": "Login2",
    "passwd": "",
    "retry": 3,
    "timeout": 2
  },
  {
    "id": "7bcf5b8a-30f4-46ad-9a51-29daac671587",
    "accessMethod": "HTTP",
    "authMethod": "BASIC",
    "hostName": "",
    "httpPort": 80,
    "ipAddr": "10.0.1.2",
    "login": "Login",
    "passwd": "",
    "retry": 3,
    "timeout": 2
  }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Create New Devices in a Group

Creates devices in a group using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroup

 

The request contains a list of devices to be created.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerGroupName URI xsd:string

The name of the transport controller devices group.

Request example:
[
    {
        "accessMethod": "HTTP",
        "authMethod": "BASIC",
        "hostName": "",
        "httpPort": 80,
        "ipAddr": "10.0.1.2",
        "login": "Login",
        "passwd" : "XYXYXYXYXYX",
        "retry": 3,
        "timeout": 2
    },
    {
        "accessMethod": "HTTP",
        "authMethod": "BASIC",
        "hostName": "",
        "httpPort": 80,
        "ipAddr": "10.0.1.3",
        "login": "Login2",
        "passwd" : "XYXYXYXYXYX",
        "retry": 3,
        "timeout": 2
  }
]
Response example:
{
  "success": true
}
PUT
v2/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Update Devices in the Group

Updates devices in a group using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroup

 

The request contains a list of devices to be updated. The id parameter is required.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerGroupName URI xsd:string

The name of the transport controller devices group.

Request example:
[
  {
    "id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf",
    "accessMethod": "HTTP",
    "authMethod": "BASIC",
    "hostName": "",
    "httpPort": 80,
    "ipAddr": "10.0.1.3",
    "login": "Login3",
    "passwd": "",
    "retry": 3,
    "timeout": 2
  }
]
Response example:
{
  "success": true
}
DELETE
v2/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Delete Devices in the Group

Deletes devices from a group using the following schema: transportControllerEndpoint.json#/definitions/transportControllerGroup

 

The request contains a list of devices to be deleted. The id parameter is required, while other parameters are ignored.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerGroupName URI xsd:string

The name of the transport controller devices group.

Request example:
[
  {
    "id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf"
  }
]
Response example:
{
  "success": true
}

High Availability API

Permits monitoring and configuration of NorthStar high availability cluster.

The corresponding schema is: ha.json .

GET
v2/tenant/​{tenant_id}​/highAvailability/hosts
Get the Status of the Cluster

Get the status of all of the nodes and processes in the cluster.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:

The response returned by the server conforms to: ha.json#/definitions/hostList . The data indicates which nodes are in the cluster and the processes running on each node. The role indicates the current role of the node and has the following two components: - Indicator for Active or Standby; the Active node is where the path computation is running. - Indicator for whether node is running as HA coordinator. This does not reflect the status of the zookeeper master available in a different URL.

[
  {
    "hostname": "northstar-cluster-3",
    "ipv4": "10.0.0.1",
    "status": "Up",
    "role": "Standby,Coordinator",
    "version": "2.0.0-20160216_081948.x86_64",
    "processes": [
      {
        "processId": 26683,
        "processName": "junosvm",
        "startTime": "2016-02-16T19:24:07.000Z",
        "role": "Standby"
      },
      {
        "processId": 8389,
        "processName": "zookeeper",
        "startTime": "2016-02-16T22:54:15.000Z",
        "role": "Standby"
      },
      {
        "processId": 12347,
        "processName": "ha_agent",
        "startTime": "2016-02-16T23:07:09.000Z",
        "role": "Standby"
      },
      {
        "processId": 12276,
        "processName": "npat",
        "startTime": "2016-02-16T23:06:56.000Z",
        "role": "Standby"
      },
      {
        "processId": 12243,
        "processName": "pceserver",
        "startTime": "2016-02-16T23:06:54.000Z",
        "role": "Standby"
      },
      {
        "processId": 12192,
        "processName": "nodejs",
        "startTime": "2016-02-16T23:06:44.000Z",
        "role": "Standby"
      },
      {
        "processId": 7821,
        "processName": "rabbitmq",
        "startTime": "2016-02-16T22:54:12.000Z",
        "role": "Standby"
      },
      {
        "processName": "keepalived",
        "startTime": "2016-02-16T19:59:46.000Z",
        "role": "Standby"
      },
      {
        "processId": 12248,
        "processName": "toposerver",
        "startTime": "2016-02-16T23:06:54.000Z",
        "role": "Standby"
      },
      {
        "processId": 8138,
        "processName": "cassandra",
        "startTime": "2016-02-16T22:54:12.000Z",
        "role": "Standby"
      },
      {
        "processId": 3455,
        "processName": "haproxy",
        "startTime": "2016-02-16T19:59:46.000Z",
        "role": "Standby"
      },
      {
        "processId": 8453,
        "processName": "listener1_00",
        "startTime": "2016-02-16T22:54:12.000Z",
        "role": "Standby"
      },
      {
        "processId": 12255,
        "processName": "pcserver",
        "startTime": "2016-02-16T23:06:54.000Z",
        "role": "Standby"
      },
      {
        "processId": 12268,
        "processName": "mladapter",
        "startTime": "2016-02-16T23:06:56.000Z",
        "role": "Standby"
      },
      {
        "processId": 12242,
        "processName": "npat_ro",
        "startTime": "2016-02-16T23:06:54.000Z",
        "role": "Standby"
      }
    ]
  },
  {
    "hostname": "northstar-cluster-2",
    "ipv4": "10.0.0.2",
    "status": "Up",
    "role": "Standby",
    "version": "2.0.0-20160216_081948.x86_64",
    "processes": [
      {
        "processId": 5427,
        "processName": "junosvm",
        "startTime": "2016-02-16T19:23:29.000Z",
        "role": "Standby"
      },
      {
        "processId": 18452,
        "processName": "zookeeper",
        "startTime": "2016-02-16T22:49:58.000Z",
        "role": "Standby"
      },
      {
        "processId": 22489,
        "processName": "ha_agent",
        "startTime": "2016-02-16T23:08:13.000Z",
        "role": "Standby"
      },
      {
        "processId": 22419,
        "processName": "npat",
        "startTime": "2016-02-16T23:08:01.000Z",
        "role": "Standby"
      },
      {
        "processId": 22387,
        "processName": "pceserver",
        "startTime": "2016-02-16T23:07:59.000Z",
        "role": "Standby"
      },
      {
        "processId": 22344,
        "processName": "nodejs",
        "startTime": "2016-02-16T23:07:49.000Z",
        "role": "Standby"
      },
      {
        "processId": 17884,
        "processName": "rabbitmq",
        "startTime": "2016-02-16T22:49:55.000Z",
        "role": "Standby"
      },
      {
        "processName": "keepalived",
        "startTime": "2016-02-16T19:44:45.000Z",
        "role": "Standby"
      },
      {
        "processId": 22393,
        "processName": "toposerver",
        "startTime": "2016-02-16T23:07:59.000Z",
        "role": "Standby"
      },
      {
        "processId": 18196,
        "processName": "cassandra",
        "startTime": "2016-02-16T22:49:55.000Z",
        "role": "Standby"
      },
      {
        "processId": 11334,
        "processName": "haproxy",
        "startTime": "2016-02-16T19:44:45.000Z",
        "role": "Standby"
      },
      {
        "processId": 18516,
        "processName": "listener1_00",
        "startTime": "2016-02-16T22:49:55.000Z",
        "role": "Standby"
      },
      {
        "processId": 22404,
        "processName": "pcserver",
        "startTime": "2016-02-16T23:07:59.000Z",
        "role": "Standby"
      },
      {
        "processId": 22411,
        "processName": "mladapter",
        "startTime": "2016-02-16T23:08:00.000Z",
        "role": "Standby"
      },
      {
        "processId": 22386,
        "processName": "npat_ro",
        "startTime": "2016-02-16T23:07:59.000Z",
        "role": "Standby"
      }
    ]
  },
  {
    "hostname": "northstar-cluster-1",
    "ipv4": "10.0.0.3",
    "status": "Up",
    "role": "Active",
    "version": "2.0.0-20160216_081948.x86_64",
    "processes": [
      {
        "processId": 11420,
        "processName": "junosvm",
        "startTime": "2016-02-16T19:24:28.000Z",
        "role": "Active"
      },
      {
        "processId": 23745,
        "processName": "zookeeper",
        "startTime": "2016-02-16T22:47:26.000Z",
        "role": "Active"
      },
      {
        "processId": 27746,
        "processName": "ha_agent",
        "startTime": "2016-02-16T23:08:19.000Z",
        "role": "Active"
      },
      {
        "processId": 28375,
        "processName": "npat",
        "startTime": "2016-02-16T23:10:57.000Z",
        "role": "Active"
      },
      {
        "processId": 27799,
        "processName": "pceserver",
        "startTime": "2016-02-16T23:08:35.000Z",
        "role": "Active"
      },
      {
        "processId": 27604,
        "processName": "nodejs",
        "startTime": "2016-02-16T23:07:55.000Z",
        "role": "Active"
      },
      {
        "processId": 23190,
        "processName": "rabbitmq",
        "startTime": "2016-02-16T22:47:23.000Z",
        "role": "Active"
      },
      {
        "processId": 28379,
        "processName": "keepalived",
        "startTime": "2016-02-16T23:10:57.000Z",
        "role": "Active"
      },
      {
        "processId": 28358,
        "processName": "toposerver",
        "startTime": "2016-02-16T23:10:56.000Z",
        "role": "Active"
      },
      {
        "processId": 23505,
        "processName": "cassandra",
        "startTime": "2016-02-16T22:47:23.000Z",
        "role": "Active"
      },
      {
        "processId": 13960,
        "processName": "haproxy",
        "startTime": "2016-02-16T19:29:31.000Z",
        "role": "Active"
      },
      {
        "processId": 23806,
        "processName": "listener1_00",
        "startTime": "2016-02-16T22:47:23.000Z",
        "role": "Active"
      },
      {
        "processId": 27848,
        "processName": "pcserver",
        "startTime": "2016-02-16T23:08:45.000Z",
        "role": "Active"
      },
      {
        "processId": 28360,
        "processName": "mladapter",
        "startTime": "2016-02-16T23:10:56.000Z",
        "role": "Active"
      },
      {
        "processId": 28357,
        "processName": "npat_ro",
        "startTime": "2016-02-16T23:10:56.000Z",
        "role": "Active"
      }
    ]
  }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/highAvailability/zkstatus
Get Zookeeper Cluster Status

Gets status of all of the zookeeper clusters. .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:

The response returned by the server conforms to: ha.json#/definitions/zookeeperStatus . NorthStar uses a zookeeper cluster to coordinate nodes. The endpoint provides the zookeeper subsystem's status. During normal maintenance, you must check this information, because a failure of the zookeeper master could, in some cases, trigger a switchover.

{
  "master": "northstar-cluster-2",
  "followers": [
    {
      "ip": "10.0.0.1",
      "synced": true,
      "host": "northstar-cluster-3"
    },
    {
      "ip": "10.0.0.3",
      "synced": true,
      "host": "northstar-cluster-1"
    }
  ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/highAvailability/highAvailability
Get the List of Preferences

Returns the list of preferences.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: ha.json#/definitions/highAvailability .

[
  {
    "preferenceType": "primaryNode",
    "host": "northstar-cluster-3",
    "priority": 0
  },
  {
    "preferenceType": "primaryNode",
    "host": "northstar-cluster-2",
    "priority": 0
  },
  {
    "preferenceType": "primaryNode",
    "host": "northstar-cluster-1",
    "priority": 0
  }
]

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/highAvailability/highAvailability
Modify the Node Preferences

Sets the node preferences.

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The JSON document should use the following schema: ha.json#/definitions/highAvailability You must set the new preferences for the node.

This operation does not return a response body.

POST
v2/tenant/​{tenant_id}​/highAvailability/stepdown
Request the Primary Node to Step Down

Triggers a switchover.

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request body must be empty.

This operation does not return a response body.

Path Computation API

The path computation APIs enable you to compute a path on the TE topology without creating an LSP. It supports the TE-LSP API constraints. The LSP is assumed to be an RSVP LSP by default. The SR-TE path is supported by using the provisioningType parameter, as described in pathComputation.json, and illustrated in the following example:

NOTE: The path computation API for SR-TE provides only the path and does not provide the SIDs.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/pathComputation

Use the following schema to request for a path computation: pathComputation.json#/definitions/pathComputationRequests . Response: pathComputation.json#/definitions/pathComputationResponses .

 

The request/response example illustrates a set of three path computation requests. The first request is successful. The two subsequent requests cannot be computed due to routing constraints because there is no path with fewer than two hops and no path that can carry 100G in the topology. All of the paths in the request list are computed in the order they are specified. This API does NOT re-shuffle the request order to optimize the solution or the constraints. No bandwidth is reserved by the path computation request. For example, if only 5G is available between two nodes, one path computation requesting two paths with 3G each will return a partial result, where only the first path is calculated.

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{"requests" :
 [
    {"from": {"topoObjectType": "ipv4","address": "11.0.0.101"},
     "to"  : {"topoObjectType": "ipv4","address": "11.0.0.104"},
     "bandwidth" : 1000000,"design" :{"maxDelay":5},"extra" :"allowed"
    },
    {"from": {"topoObjectType": "ipv4","address": "11.0.0.104"},
     "to"  : {"topoObjectType": "ipv4","address": "11.0.0.101"},
    "bandwidth" : 1000000,"design" :{"maxHop":2}
    },
    {"from": {"topoObjectType": "ipv4","address": "11.0.0.102"},
     "to"  : {"topoObjectType": "ipv4","address": "11.0.0.103"},
     "bandwidth" : "100G"}
 ]
}
Response example:
{
  "result": "partial",
  "responses": [
      {"from": {"topoObjectType": "ipv4","address": "11.0.0.101"},
       "to"  : {"topoObjectType": "ipv4","address": "11.0.0.104"},
       "bandwidth" : 1000000,"design" :{"maxDelay":5},"extra" :"allowed",
       "status": "success",
       "path": [
           {"topoObjectType": "ipv4","address": "11.101.105.2"},
           {"topoObjectType": "ipv4","address": "11.105.107.2"},
           {"topoObjectType": "ipv4","address": "11.114.117.1"}
       ]
      },
      {"from": {"topoObjectType": "ipv4","address": "11.0.0.104"},
       "to"  : {"topoObjectType": "ipv4","address": "11.0.0.101"},
       "bandwidth" : 1000000,"design" :{"maxHop":2},
       "status": "noPathAvailable"
      },
      {"from": {"topoObjectType": "ipv4","address": "11.0.0.102"},
       "to"  : {"topoObjectType": "ipv4","address": "11.0.0.103"},
       "bandwidth" : "100G",    
       "status": "noPathAvailable"
      }    
  ]
}

Maintenance API

Use these endpoints to work with maintenance.

The corresponding schema is: maintenance.json .

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances
Get Maintenance

Returns a full list of Maintenance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "topoObjectType": "maintenance",
        "topologyIndex": 1,
        "maintenanceIndex": 1,
        "user": "admin",
        "name": "1LinkMaint1",
        "status": "planned",
        "startTime": "2018-04-20T17:00:00Z",
        "endTime": "2018-04-20T17:30:00Z",
        "elements": [
            {
                "topoObjectType": "link",
                "index": 8,
                "id": "L11.105.107.1_11.105.107.2"
            }
        ]
    },
    {
        "topoObjectType": "maintenance",
        "topologyIndex": 1,
        "maintenanceIndex": 2,
        "user": "admin",
        "name": "1LinkMaint",
        "status": "planned",
        "startTime": "2018-04-20T17:00:00Z",
        "endTime": "2018-04-20T17:30:00Z",
        "elements": [
            {
                "topoObjectType": "link",
                "index": 8,
                "id": "L11.105.107.1_11.105.107.2"
            }
        ]
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances
Create a new maintenance

Create a new maintenance using the following schema: maintenance.json#/definitions/createMaintenance .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
	"topoObjectType": "maintenance",
	"topologyIndex": 1,
	"startTime": "20180220T120700",
	"endTime": "20180220T120700",
    "name": "2LinksMaint",
    "elements": [
        {
            "topoObjectType": "link",
            "index": 1
        },
        {
            "topoObjectType": "link",
            "index": 3
        }
    ]
}
Response example:
{
    "topoObjectType": "maintenance",
    "topologyIndex": 1,
    "maintenanceIndex": 3,
    "user": "admin",
    "name": "2LinksMaint",
    "status": "planned",
    "startTime": "2018-04-20T16:07:00Z",
    "endTime": "2018-04-20T16:15:00Z",
    "elements": [
        {
            "topoObjectType": "link",
            "index": 1,
            "id": "L11.101.105.1_11.101.105.2"
        },
        {
            "topoObjectType": "link",
            "index": 3,
            "id": "L11.102.105.1_11.102.105.2"
        }
    ]
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only maintenanceEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances/​{maintenanceIndex}​
Get a Specific Maintenance

Returns the details of a specified maintenance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

maintenanceIndex URI xsd:int

The unique maintenanceIndex.

Response example:
{
    "topoObjectType": "maintenance",
    "topologyIndex": 1,
    "maintenanceIndex": 2,
    "user": "admin",
    "name": "1LinkMaint",
    "status": "planned",
    "startTime": "2018-04-20T17:00:00Z",
    "endTime": "2018-04-20T17:30:00Z",
    "elements": [
        {
            "topoObjectType": "link",
            "index": 8,
            "id": "L11.105.107.1_11.105.107.2"
        }
    ]
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances/​{maintenanceIndex}​
Update a Specific Maintenance

Modify a specific maintenance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

maintenanceIndex URI xsd:int

The unique maintenanceIndex.

Request example:
{
  "topoObjectType": "maintenance",
  "topologyIndex": 1,
  "startTime": "20180408T154500",
  "endTime": "20180408T155000",
  "maintenanceIndex": 2,
    "name": "1LinkMaint",
    "elements": [
        {
            "topoObjectType": "link",
            "index": 1
        },
        {
            "topoObjectType": "link",
            "index": 2
        }
    ]
}
Response example:
{
    "topoObjectType": "maintenance",
    "topologyIndex": 1,
    "maintenanceIndex": 2,
    "user": "admin",
    "name": "1LinkMaint",
    "status": "planned",
    "startTime": "2018-04-08T20:45:00Z",
    "endTime": "2018-04-08T20:50:00Z",
    "elements": [
        {
            "topoObjectType": "link",
            "index": 1,
            "id": "L11.101.105.1_11.101.105.2"
        },
        {
            "topoObjectType": "link",
            "index": 2,
            "id": "L11.102.105.1_11.102.105.2"
        }
    ]
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/maintenances/​{maintenanceIndex}​
Delete a Specific Maintenance

Delete a specific maintenance.

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

maintenanceIndex URI xsd:int

The unique maintenanceIndex.

This operation does not accept a request body and does not return a response body.

RPCs

Remote Procedure Call (RPC) REST APIs allow subroutines that are written for NorthStar Planner to be utilized via the REST API. For instance Diverse P2MP Tree Design and Bandwidth Calendaring Simulation functionality can be called via these RPC type of REST APIs.

The corresponding schema is: rpcs.json .

Path Optimization RPC

These REST APIs are used to perform global or targeted path optimizations runs. The REST POST without a request body is used to call the global path optimization and with a request body to call the targeted path optimization functionalities. The REST GET is used to return the last global path optimization result that shows the difference between the previous vs. the optimized results. The REST GET doesn't support for targeted path optimization.

POST
v2/tenant/​{tenant_id}​/topology/rpc/optimize

Trigger global path optimization.

 

The request body must be empty. The response returned by the server conforms to: rpcs.json#/definitions/optimizationResponse .

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "result ": "Path optimization started."
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/rpc/optimize

Get last global path optimization results.

 

The response returned by the server conforms to: rpcs.json#/definitions/optimizationStatus .

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "previous": {
        "bandwidth": 20000000,
        "hopCount": 98,
        "latency": 5
    },
    "optimized": {
        "bandwidth": 17000000,
        "hopCount": 85,
        "latency": 4
    },
    "numberOfOptimizedPaths": 6,
    "maxHopCount": 5,
    "maxLatency": 0.6,
    "tunnelCount": 21,
    "lastOptimizationTimeStamp": "2017-12-01T12:02:36.367Z"
}

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/rpc/optimize

Trigger targeted path optimization.

 

The request body must not be empty. The body consists of a list of elements. The elements can be either LSP, link or mixed. The elements are identified by the element index number. The response consists of a list of candidate elements to be optimized.

The response returned by the server conforms to: rpcs.json#/definitions/optimizationResponse .

Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
   "elements":[
      {
         "index":1,
         "topoObjectType":"lsp"
      },
      {
         "index":3,
         "topoObjectType":"lsp"
      },
      {
         "index":47,
         "topoObjectType":"lsp"
      }
   ]
}
Response example:
{
   "elements":[
      {
         "topoObjectType":"lsp",
         "index":1
      },
      {
         "topoObjectType":"lsp",
         "index":3
      }
   ]
}

Routing and Failure Simulation RPC

The routing and failure simulation APIs are used to simulate bandwidth calendaring (time based) and failure. Use the first REST POST function to perform routing simulation or failure simulation. Use the subsequent three REST GET operations to return the reports to the calling program for further analysis.

NOTE: Starting from Northstar release 4.1, all the requests are timestamped.

Use the following API to simulate routes and failures:

POST
v2/tenant/​{tenant_id}​/topology/rpc/simulation
Failure Simulation optimization RPC

Perform failure simulation analysis.

 

The request body must follow the schema rpcs.json#/definitions/simulationRequest The response returned by the server conforms to: rpcs.json#/definitions/simulationResponse .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The following example show different set of request:

  • The following example shows maintenance simulation creation with exhaustive node, link and facility failure:

    {
      "topologyIndex": 1,
      "elements":
      [
        "node",
        "link",
        "srlg",
        {
        "type": "maintenance",
        "maintenanceName": "1LinkMaint"
        }
      ]
    }
  • The following example shows maintenance simulation creation without exhaustive failure:

    {
      "topologyIndex": 1,
      "elements":
      [
        {
        "type": "maintenance",
        "maintenanceName": "1LinkMaint"
        }
      ]
    }

Response example:

The following example show different set of response based on the request above:

  • The following example shows the response of maintenance simulation creation with exhaustive node, link and facility failure:

    {
        "status": "success",
        "simulationId": "c203d890-24ee-4592-84b4-0975c7c0b79a",
        "results": {
            "links": [
                {
                    "rel": "results",
                    "href": "c203d890-24ee-4592-84b4-0975c7c0b79a"
                }
            ]
        },
        "topologyIndex": 1,
        "elements": [
            "node",
            "link",
            "srlg",
            {
                "type": "maintenance",
                "maintenanceName": "1LinkMaint"
            }
        ]
    }
  • The following example shows the response of maintenance simulation creation without exhaustive failure:

    {
        "status": "success",
        "simulationId": "852c34b8-368d-4ae8-82d2-e9ed2dd8d223",
        "results": {
            "links": [
                {
                    "rel": "results",
                    "href": "852c34b8-368d-4ae8-82d2-e9ed2dd8d223"
                }
            ]
        },
        "topologyIndex": 1,
        "elements": [
            {
                "type": "maintenance",
                "maintenanceName": "1LinkMaint"
            }
        ]
    }

GET
v2/tenant/​{tenant_id}​/topology/rpc/simulation
Get Simulation optimization RPC list

Returns the simulation list.

 

The response returned by the server conforms to: rpcs.json#/definitions/simulationsList .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "topologyIndex": 1,
    "simulationReports": [
        {
            "status": "success",
            "simulationId": "c203d890-24ee-4592-84b4-0975c7c0b79a",
            "results": {
                "links": [
                    {
                        "rel": "results",
                        "href": "c203d890-24ee-4592-84b4-0975c7c0b79a"
                    }
                ]
            },
            "topologyIndex": 1,
            "elements": [
                "node",
                "link",
                "srlg",
                {
                    "type": "maintenance",
                    "maintenanceName": "1LinkMaint"
                }
            ]
        },
        {
            "simulationId": "20facea2-4ca6-4883-93da-0af22a0a4b75",
            "results": {
                "links": [
                    {
                        "rel": "results",
                        "href": "20facea2-4ca6-4883-93da-0af22a0a4b75"
                    }
                ]
            },
            "topologyIndex": 1,
            "elements": [
                {
                    "type": "maintenance",
                    "maintenanceName": "2LinkMaint"
                }
            ]
        }
    ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/rpc/simulation/​{uuid}​
Get a specific simulation

Returns the details of a specified simulation.

 

The response returned by the server conforms to: rpcs.json#/definitions/simulationReports .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

uuid URI xsd:string

rpc id.

Response example:
{
    "status": "success",
    "simulationId": "c203d890-24ee-4592-84b4-0975c7c0b79a",
    "topologyIndex": 1,
    "elements": [
        "node",
        "link",
        "srlg",
        {
            "type": "maintenance",
            "maintenanceName": "1LinkMaint"
        }
    ],
    "reports": [
        {
            "reportName": "Report/L2_PathChange.r0",
            "links": [
                {
                    "href": "Report/L2_PathChange.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_PATHDELAY.r0",
            "links": [
                {
                    "href": "Report/L2_PATHDELAY.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_DVSIM.r0",
            "links": [
                {
                    "href": "Report/L2_DVSIM.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_LinkUtilChange.r0",
            "links": [
                {
                    "href": "Report/L2_LinkUtilChange.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_PeakSimLink.r0",
            "links": [
                {
                    "href": "Report/L2_PeakSimLink.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_PeakSimRoute.r0",
            "links": [
                {
                    "href": "Report/L2_PeakSimRoute.r0"
                }
            ]
        },
        {
            "reportName": "Report/L2_PHYDVSIM.r0",
            "links": [
                {
                    "href": "Report/L2_PHYDVSIM.r0"
                }
            ]
        },
        {
            "reportName": "Report/Maintenance/maintsiminfo.1LinkMaint",
            "links": [
                {
                    "href": "Report/Maintenance/maintsiminfo.1LinkMaint"
                }
            ]
        },
        {
            "reportName": "Report/L2_PeakSimSummary.r0",
            "links": [
                {
                    "href": "Report/L2_PeakSimSummary.r0"
                }
            ]
        }
    ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/rpc/simulation/​{uuid}​/​{reportName}​
Get a specific report of one simulation

Returns specific report details of a selected simulation.

 

The response returned by the server is a WANDL Report (Text file), see IPMPLSVIew report format documentation.

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

uuid URI xsd:string

rpc id.

reportName URI xsd:string

report name.

Response example:
#**********************************************
#  LSP Path Changes
#**********************************************
##  Software Release= 4.0.0 20180327_72790_157, 64 bits,  Compilation Date= 20180327
##  Customer= JNPR_Hanita-test
##  Platform=x86_64, OS=Linux 2.6.32-696.1.1.el6.x86_64
##  Report Date= 2018-3-28 14:44   Runcode=r0  User=pcs
Name,Node A,Node Z,Orig Hop Count,New Hop Count,Orig Path Cost,New Path Cost,Orig Path,New Path,Protection,Orig Delay,New Delay,Delay Change %,Orig BW,New BW,Type
Silver-101-103,vmx101,vmx103,3,4,30,60,11.101.105.2-11.105.107.2-11.103.107.1,11.101.105.2-11.105.106.2-11.106.107.2-11.103.107.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-104-102,vmx104,vmx102,3,4,30,60,11.104.107.2-11.105.107.1-11.102.105.1,11.104.107.2-11.106.107.1-11.105.106.1-11.102.105.1,,  0.00,  0.00,  0.00%,0,0,,
rsvp-103-105,vmx103,vmx105,2,3,20,50,11.103.107.2-11.105.107.1,11.103.107.2-11.106.107.1-11.105.106.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-103-102,vmx103,vmx102,3,4,30,60,11.103.107.2-11.105.107.1-11.102.105.1,11.103.107.2-11.106.107.1-11.105.106.1-11.102.105.1,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.103:11.0.0.106:200:vpls:vpn_200,vmx106,vmx103,3,2,30,40,11.105.106.1-11.105.107.2-11.103.107.1,11.106.107.2-11.103.107.1,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.101:11.0.0.103:200:vpls:vpn_200,vmx103,vmx101,3,4,30,60,11.103.107.2-11.105.107.1-11.101.105.1,11.103.107.2-11.106.107.1-11.105.106.1-11.101.105.1,,  0.00,  0.00,  0.00%,0,0,,
rsvp-105-106,vmx105,vmx106,3,1,70,10,11.105.107.2-11.104.107.1-11.104.106.2,11.105.106.2,,  0.00,  0.00,  0.00%,0,0,,
rsvp-107-105,vmx107,vmx105,1,2,10,40,11.105.107.1,11.106.107.1-11.105.106.1,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.104:11.0.0.101:300:vpls:vpn_200,vmx101,vmx104,3,4,30,60,11.101.105.2-11.105.107.2-11.104.107.1,11.101.105.2-11.105.106.2-11.106.107.2-11.104.107.1,,  0.00,  0.00,  0.00%,0,0,,
tcg1tree-102107,vmx102,vmx107,2,-,20,-,11.102.105.2-11.105.107.2, # vmx102--11.0.0.105--11.0.0.107,(path down),  0.00,-,,10.000K,10.000K,,
11.0.0.106:11.0.0.103:200:vpls:vpn_200,vmx103,vmx106,3,2,30,40,11.103.107.2-11.105.107.1-11.105.106.2,11.103.107.2-11.106.107.1,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.101:11.0.0.104:300:vpls:vpn_200,vmx104,vmx101,3,3,30,70,11.104.107.2-11.105.107.1-11.101.105.1,11.104.106.2-11.105.106.1-11.101.105.1,,  0.00,  0.00,  0.00%,0,0,,
rsvp-106-105,vmx106,vmx105,3,1,70,10,11.104.106.1-11.104.107.2-11.105.107.1,11.105.106.1,,  0.00,  0.00,  0.00%,0,0,,
tcg1tree-102106,vmx102,vmx106,3,-,50,-,11.102.105.2-11.105.107.2-11.106.107.1, # vmx102--11.0.0.105--11.0.0.107--11.0.0.106,(path down),  0.00,-,,10.000K,10.000K,,
rsvp-104-105,vmx104,vmx105,2,3,20,50,11.104.107.2-11.105.107.1,11.104.107.2-11.106.107.1-11.105.106.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-102-103,vmx102,vmx103,3,4,30,60,11.102.105.2-11.105.107.2-11.103.107.1,11.102.105.2-11.105.106.2-11.106.107.2-11.103.107.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-101-104,vmx101,vmx104,3,4,30,60,11.101.105.2-11.105.107.2-11.104.107.1,11.101.105.2-11.105.106.2-11.106.107.2-11.104.107.1,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.103:11.0.0.101:300:vpls:vpn_200,vmx101,vmx103,3,4,30,60,11.101.105.2-11.105.107.2-11.103.107.1,11.101.105.2-11.105.106.2-11.106.107.2-11.103.107.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-103-101,vmx103,vmx101,3,4,30,60,11.103.107.2-11.105.107.1-11.101.105.1,11.103.107.2-11.106.107.1-11.105.106.1-11.101.105.1,,  0.00,  0.00,  0.00%,0,0,,
Silver-104-101,vmx104,vmx101,3,4,30,60,11.104.107.2-11.105.107.1-11.101.105.1,11.104.107.2-11.106.107.1-11.105.106.1-11.101.105.1,,  0.00,  0.00,  0.00%,0,0,,
tcg0tree-102104,vmx102,vmx104,3,-,30,-,11.102.105.2-11.105.107.2-11.104.107.1, # vmx102--11.0.0.105--11.0.0.107--11.0.0.104,(path down),  0.00,-,,10.000K,10.000K,,
11.0.0.106:11.0.0.104:300:vpls:vpn_200,vmx104,vmx106,3,1,30,50,11.104.107.2-11.105.107.1-11.105.106.2,11.104.106.2,,  0.00,  0.00,  0.00%,0,0,,
11.0.0.104:11.0.0.106:200:vpls:vpn_200,vmx106,vmx104,3,1,30,50,11.105.106.1-11.105.107.2-11.104.107.1,11.104.106.1,,  0.00,  0.00,  0.00%,0,0,,

This operation does not accept a request body.

P2MP Tree design RPC

These REST APIs are used for P2MP Tree Design Simulation. The first REST POST is utilized by the user to perform diverse p2mp tree design, given two trees in the same diversity group. The subsequent two REST GET operations are used to return the resulting list of P2MP trees. Since NS 5.0 the provisioningMethod (default NETCONF) can be specified and is used when useResultAsEro is set to true (The groups will be provisioned as a result of the design). The provisioningMethod must be set on the diverseTree request and will overwrite any set on the groups themselves.

The tree design API does allow diverse P2MP trees to be computed. This is controlled using the following set of attributes:

  • diversityGroup: the tree or leaves are grouped together using a diversityGroup. If TreeA and TreeB (LSP1 and LSP2) should be diverse to each other, they should be in the same diversityGroup (i.e the client should set the same value). Setting the diversityGroup on the Group will set it on all its leaves and NorthStar will pair the leaves based on their destination node/site.

  • diversityLevel (site, srlg or link): the level of requested diversity. NorthStar will try to compute path that reach that diversity level, if this cannot be achieved, it will try to route the path as diverse as possible, unless minimumDiversityLevel is specified.

  • minimumDiversityLevel (site, srlg or link): the minimum acceptable diversity level. If NorthStar cannot achieve diversity as good or better than minimumDiversityLevel, the routing is considered as failed. For DiverseTree design, this imply that the tree will not be provisioned if the minimumDiversityLevel cannot be achieved.

For instance a diverseTree request with diversityLevel=srlg and no minimumDiversityLevel may provision a tree with link diverse paths, while the same request with diversityLevel=minimumDiversityLevel=srlg will not provision the tree.

The Tree can also be terminated in CE or Site nodes, taking into account the PE to CE links for diversity constraints. The same restriction for P2MP groups detailed in P2MP groups applies.

POST
v2/tenant/​{tenant_id}​/topology/rpc/diverseTreeDesign
P2MP Diverse Tree Design optimization RPC

Create 2 P2MP trees and perform Diverse P2MP Tree Design.

 

The request body must follow the schema rpcs.json#/definitions/diverseTreeRequest The response returned by the server conforms to: rpcs.json#/definitions/diverseTreeResult .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The following example show different set of request:

  • The following example shows P2MP Diverse Tree Design optimization. Note that the values in the "name" field under "P2MPGroup" and under "diverseP2MPGroup" are required to be different from each other.

    {
    
      "P2MPGroup": {
        "name": "hhtree",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "plannedProperties": {
          "bandwidth": "99k",
          "design": {
            "diversityGroup": "hhzz"
          }
        },
        "lsps": [
            {
              "name": "hhtree-102104",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.104"
              }
            },
            {
              "name": "hhtree-102107",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.107"
              }
            }
        ]
      },
      "diverseP2MPGroup": {
        "name": "zztree",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "plannedProperties": {
          "bandwidth": "99k",
          "design": {
            "diversityGroup": "hhzz"
          }
        },
        "lsps": [
            {
              "name": "zztree-102104",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.104"
              }
            },
            {
              "name": "zztree-102107",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.107"
              }
            }
        ]
      },
      "ignoreExistingPath" : true,
      "useResultAsEro"     : true,
      "maxIterations" : 1000
    }

    The response is:

    {
        "result": {
            "requestId": "fa87b57e-6edc-45a8-8b73-b06c79289f87",
            "status": "running",
            "maxIterations": 1000,
            "iterationsRun": 0
        }
    }
  • The following example shows P2MP Diverse Tree Design optimization using sites. Note that the values in the "name" field under "P2MPGroup" and under "diverseP2MPGroup" are required to be different from each other.

    {
       "P2MPGroup":{
          "name":"tch0tree",
          "from":{
             "topoObjectType":"ipv4",
             "address":"11.0.0.101"
          },
          "plannedProperties":{
             "bandwidth":"10k",
             "design":{
                "diversityGroup":"h0h1"
             }
          },
          "lsps":[
             {
                "name":"tch0tree-101104",
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.104"
                }
             },
             {
                "name":"tch0tree-101107",
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.107"
                }
             }
          ]
       },
       "diverseP2MPGroup":{
          "name":"tch1tree",
          "from":{
             "topoObjectType":"ipv4",
             "address":"11.0.0.102"
          },
          "plannedProperties":{
             "bandwidth":"10k",
             "design":{
                "diversityGroup":"h0h1"
             }
          },
          "lsps":[
             {
                "name":"tch1tree-102106",
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.106"
                }
             },
             {
                "name":"tch1tree-102107",
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.107"
                }
             }
          ]
       },
       "ignoreExistingPath":true,
       "useResultAsEro":true,
       "maxIterations":1000,
       "sites":[
          {
             "site":"site A",
             "nodes":[
                {"nodeIndex": 4},{"nodeIndex": 6}
             ]
          }
       ]
    }

    The response is:

    {
        "result": {
            "requestId": "f8c290ef-e850-45bb-9fd9-30089b095daa",
            "status": "running",
            "maxIterations": 1000,
            "iterationsRun": 0
        }
    }
  • The following example shows P2MP Diverse Tree Design optimization with bandwidth calendaring. Note that the values in the "name" field under "P2MPGroup" and under "diverseP2MPGroup" are required to be different from each other.

    {
    
      "P2MPGroup": {
        "name": "hhbwcaltree",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "plannedProperties": {
          "bandwidth": "99k",
          "bandwidthCalendar":{
          	"startTime": "20180430T0900",
          	"endTime": "20180430T0905"
          },
          "design": {
            "diversityGroup": "hzbw"
          }
        },
        "lsps": [
            {
              "name": "hhbwcaltree-102104",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.104"
              }
            },
            {
              "name": "hhbwcaltree-102107",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.107"
              }
            }
        ]
      },
      "diverseP2MPGroup": {
        "name": "zzbwcaltree",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "plannedProperties": {
          "bandwidth": "99k",
          "bandwidthCalendar":{
          	"startTime": "20180430T0900",
          	"endTime": "20180430T0905"
          },
          "design": {
            "diversityGroup": "hzbw"
          }
        },
        "lsps": [
            {
              "name": "zzbwcaltree-102104",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.104"
              }
            },
            {
              "name": "zzbwcaltree-102107",
              "to" : {
                "topoObjectType": "ipv4",
                "address": "11.0.0.107"
              }
            }
        ]
      },
      "ignoreExistingPath" : true,
      "useResultAsEro"     : true,
      "maxIterations" : 1000
    }

    The response is:

    {
        "result": {
            "requestId": "f669b929-d82a-4bda-86bf-3ff623a794c9",
            "status": "running",
            "maxIterations": 1000,
            "iterationsRun": 0
        }
    }
  • The following example shows P2MP Diverse Tree Design optimization with minimum diversity level = site. Minimum diversity level options are site, srlg and link. Note that the values in the "name" field under "P2MPGroup" and under "diverseP2MPGroup" are required to be different from each other.

    {
       "P2MPGroup":{
          "name":"tcb0pcepmindiv",
          "from":{
             "topoObjectType":"ipv4",
             "address":"11.0.0.101"
          },
          "plannedProperties":{
             "bandwidth":"10",
             "design":{
                "minimumDiversityLevel":"site",
                "diversityGroup":"tcb0tcb1pcepmindiv"
             }
          },
          "lsps":[
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.104"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.107"
                }
             }
          ]
       },
       "diverseP2MPGroup":{
          "name":"tcb1pcepmindiv",
          "from":{
             "topoObjectType":"ipv4",
             "address":"11.0.0.101"
          },
          "plannedProperties":{
             "bandwidth":"10",
             "design":{
                "minimumDiversityLevel":"site",
                "diversityGroup":"tcb0tcb1pcepmindiv"
             }
          },
          "lsps":[
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.104"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"11.0.0.107"
                }
             }
          ]
       },
       "creationConfigurationMethod":"PCEP",
       "ignoreExistingPath":true,
       "useResultAsEro":true,
       "maxIterations":1000
    }

    The response is:

    {
       u'result':{
          u'status':u'running',
          u'maxIterations':1000,
          u'requestId':u'2862ddb5-2845-4971-8cd1-d8c9d56c281a',
          u'iterationsRun':0
       }
    }
  • The following example shows P2MP Diverse Tree Design optimization with CE and Site nodes as destination nodes. CE and Sites nodes are SiteA1, SiteZ and CEY2. Please note that currently combination of PE and CE/Site nodes as destinations nodes in a P2MP tree is not supported. Use can either create P2MP tree with all destination nodes consist of PE nodes only or consist of CE/Site nodes only. It cannot be combination of both (mixture of PE and CE/Sites nodes) in a single tree. Note that the values in the "name" field under "P2MPGroup" and under "diverseP2MPGroup" are required to be different from each other.

    {
       "P2MPGroup":{
          "name":"Atree",
          "from":{
             "topoObjectType":"ipv4",
             "address":"10.0.0.1"
          },
          "plannedProperties":{
             "bandwidth":"10k",
             "design":{
                "diversityGroup":"AB"
             }
          },
          "lsps":[
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"SiteA1"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"SiteZ"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"CEY2"
                }
             }
          ]
       },
       "diverseP2MPGroup":{
          "name":"Btree",
          "from":{
             "topoObjectType":"ipv4",
             "address":"10.0.0.1"
          },
          "plannedProperties":{
             "bandwidth":"10k",
             "design":{
                "diversityGroup":"AB"
             }
          },
          "lsps":[
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"SiteA1"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"SiteZ"
                }
             },
             {
                "to":{
                   "topoObjectType":"ipv4",
                   "address":"CEY2"
                }
             }
          ]
       },
       "creationConfigurationMethod":"PCEP",
       "ignoreExistingPath":true,
       "useResultAsEro":true,
       "maxIterations":1000
    }

    The response is:

    {
        "result": {
            "requestId": "4dde363c-abc0-471f-b76c-1b6df88bd9c9",
            "status": "running",
            "maxIterations": 1000,
            "iterationsRun": 0
        }
    }

Response example:

The responses are shown per example in the request section. In general the response is a JSON document conforming to rpcs.json#/definitions/diverseTreeResult.

GET
v2/tenant/​{tenant_id}​/topology/rpc/diverseTreeDesign
Get Simulation optimization RPC list

Return the list of simulation optimization RPC list.

 

The response returned by the server conforms to: rpcs.json#/definitions/diverseTreeResultList .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "topologyIndex": "1",
    "rpcRequestIdList": [
        "f520e4e0-dcd7-4698-9575-6a2bcc8fd54b",
        "45eefe15-a668-4521-9d26-6159753fa948",
        "a9995c11-a5a7-4bf1-a0b1-dc9f65d38d19",
        "b0fa56f2-e178-4257-be47-ab12aab6043c",
        "cf168ccc-8bad-4c5d-8037-3dd5c6af7f53",
        "c4de3065-1b01-4a23-8aae-7a7860e5c4dc",
        "a39291c7-39de-4013-baab-8fa498c072fd",
        "69747e68-8a56-4b55-b36b-5167dd45d883",
        "248a2c33-f0c4-4e11-9275-8aa0aedad7df",
        "6dbe12b1-0cdc-4f85-8862-cf50aaa5b15b",
        "a27b2484-2181-457d-9424-1aa19cf6bcd0",
        "0f66bdf1-0346-49b8-956a-d6995446d861",
        "8fa7d9aa-8e42-4a44-bf93-f936df0ad084",
        "58f4da42-c20d-46b5-951d-bbdc80491da7"
    ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/rpc/diverseTreeDesign/​{uuid}​
Get a Specific Simulation optimization RPC Result

Return the details of specified simulation optimization RPC result.

 

The response returned by the server conforms to: rpcs.json#/definitions/diverseTreeResult .

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

uuid URI xsd:string

rpc id.

Response example:
{
    "result": {
        "requestId": "f520e4e0-dcd7-4698-9575-6a2bcc8fd54b",
        "status": "partial",
        "P2MPGroup": {
            "name": "alphatree",
            "topoObjectType": "p2mpGroup",
            "from": {
                "topoObjectType": "ipv4",
                "address": "11.0.0.101"
            },
            "lsps": [
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "alphatree-101102_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 3
                    },
                    "name": "alphatree-101102",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.101"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.102"
                    },
                    "lspIndex": 68,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "alphatree"
                },
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.103.107.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "alphatree-101103_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.103.107.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 3
                    },
                    "name": "alphatree-101103",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.101"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.103"
                    },
                    "lspIndex": 69,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "alphatree"
                },
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.104.107.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "alphatree-101104_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.105.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.104.107.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 3
                    },
                    "name": "alphatree-101104",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.101"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.104"
                    },
                    "lspIndex": 70,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "alphatree"
                }
            ]
        },
        "diverseP2MPGroup": {
            "name": "betatree",
            "topoObjectType": "p2mpGroup",
            "from": {
                "topoObjectType": "ipv4",
                "address": "11.0.0.102"
            },
            "lsps": [
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "betatree-102101_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.105.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.101.105.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 2
                    },
                    "name": "betatree-102101",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.102"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.101"
                    },
                    "lspIndex": 65,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "betatree"
                },
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.106.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.103.107.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "betatree-102103_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.106.107.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.103.107.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 3
                    },
                    "name": "betatree-102103",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.102"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.103"
                    },
                    "lspIndex": 66,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "betatree"
                },
                {
                    "operationalStatus": "Unknown",
                    "plannedProperties": {
                        "bandwidth": "99K",
                        "setupPriority": 7,
                        "holdingPriority": 0,
                        "calculatedEro": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.104.106.1",
                                "loose": false
                            }
                        ],
                        "routingStatus": "Up",
                        "pathName": "betatree-102104_p0",
                        "adminStatus": "Up",
                        "design": {
                            "diversityGroup": "TWINS"
                        },
                        "ero": [
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.102.106.2",
                                "loose": false
                            },
                            {
                                "topoObjectType": "ipv4",
                                "address": "11.104.106.1",
                                "loose": false
                            }
                        ],
                        "correlatedRROHopCount": 2
                    },
                    "name": "betatree-102104",
                    "from": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.102"
                    },
                    "pathType": "primary",
                    "to": {
                        "topoObjectType": "ipv4",
                        "address": "11.0.0.104"
                    },
                    "lspIndex": 67,
                    "controlType": "PCC",
                    "provisioningType": "RSVP",
                    "p2mpName": "betatree"
                }
            ]
        }
    },
    "request": {
        "P2MPGroup": {
            "from": {
                "topoObjectType": "ipv4",
                "address": "11.0.0.101"
            },
            "name": "alphatree"
        },
        "diverseP2MPGroup": {
            "from": {
                "topoObjectType": "ipv4",
                "address": "11.0.0.102"
            },
            "name": "betatree"
        },
        "ignoreExistingPath": true,
        "useResultAsEro": true
    }
}

This operation does not accept a request body.

Cluster health info

Use these endpoints to get cluster health status.

The health schema is: health.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health [GET: get all Cluster Nodes Health info summary]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/nodes [GET: get all Nodes Health info ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/nodes/<nodeId> [GET: get specific Node Health info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/nodes/<nodeId>/time [GET: get specific Node time info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/nodes/<nodeId>/<processName> [GET: get specific Node specific process status info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/nodes/<nodeId>/<processName>/history [GET: get specific Node specific process status history info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/thresholds [GET: get thresholds info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/thresholds [PUT: update thresholds info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/thresholds/diskUtilization [GET: get disk util thresholds info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/thresholds/diskUtilization [PUT: update disk util thresholds info]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/smtpconfig [GET: get SMTP config]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/smtpconfig [PUT: update SMTP config]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/subscribers [PUT: update Email Alert subscribers list]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/health/subscribers [DELETE: delete Email Alert subscriber]

GET
v2/tenant/​{tenant_id}​/health
Get System Health API Summary

Returns a summary of the NorthStar API system health.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "links": [
        {
            "href": "nodes",
            "rel": "nodes",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}",
            "rel": "node",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/time",
            "rel": "node",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/{processName}",
            "rel": "processDetail",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/{processName}/history",
            "rel": "processDetailHistory",
            "type": "application/json"
        },
        {
            "href": "thresholds",
            "rel": "thresholds",
            "type": "application/json"
        },
        {
            "href": "thresholds/<threshholdId>",
            "rel": "threshold",
            "type": "application/json"
        },
        {
            "href": "smtpconfig",
            "rel": "smtpconfig",
            "type": "application/json"
        },
        {
            "href": "subscribers",
            "rel": "subscribers",
            "type": "application/json"
        }
    ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/health/nodes
Get the Health of All Nodes in the NorthStar System

Returns health information for all of the nodes in the NorthStar system.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "nodeType": [
            "northstar",
            "dataCollector"
        ],
        "node": "pcs-q-pod08",
        "clusterIPs": [
            "10.49.161.46"
        ],
        "memory": {
            "free": 165941248,
            "usage": 6105755648,
            "total": 6271696896
        },
        "disk": {
            "partitions": [
                {
                    "total": 59362,
                    "used": 5368,
                    "free": 50972,
                    "usage": 10,
                    "partition": "/"
                },
                {
                    "total": 2927,
                    "used": 0,
                    "free": 2927,
                    "usage": 0,
                    "partition": "/dev/shm"
                }
            ]
        },
        "processes": [
            {
                "timestamp": "2017-08-02T10:03:46.922Z",
                "name": "elasticsearch",
                "status": "RUNNING",
                "pid": 6077,
                "pcpu": "16.8",
                "rss": 530132,
                "vsz": 5285472,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M51S",
                "cmd": "/usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/opt/northstar/thirdparty/elasticsearch -cp /opt/northstar/thirdparty/elasticsearch/lib/elasticsearch-2.4.0.jar:/opt/northstar/thirdparty/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start -p /opt/northstar/data/elasticsearch/elasticsearch.pid -Des.default.path.home=/opt/northstar/thirdparty/elasticsearch -Des.default.path.logs=/opt/northstar/logs -Des.default.path.data=/opt/northstar/data/elasticsearch -Des.default.path.conf=/opt/northstar/data/elasticsearch/config"
            },
            {
                "timestamp": "2017-08-02T10:03:46.951Z",
                "name": "esauthproxy",
                "status": "RUNNING",
                "pid": 6046,
                "pcpu": "0.0",
                "rss": 66820,
                "vsz": 4925568,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M52S",
                "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/northstar/esauthproxy/esauthproxy.js"
            },
            {
                "timestamp": "2017-08-02T10:03:46.972Z",
                "name": "logstash",
                "status": "RUNNING",
                "pid": 6541,
                "pcpu": "6.0",
                "rss": 471176,
                "vsz": 5783868,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M22S",
                "cmd": "/usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/northstar/thirdparty/logstash -Xmx2g -Xss2048k -Djffi.boot.library.path=/opt/northstar/thirdparty/logstash/vendor/jruby/lib/jni -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/northstar/thirdparty/logstash -XX:HeapDumpPath=/opt/northstar/thirdparty/logstash/heapdump.hprof -Xbootclasspath/a:/opt/northstar/thirdparty/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home=/opt/northstar/thirdparty/logstash/vendor/jruby -Djruby.lib=/opt/northstar/thirdparty/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /opt/northstar/thirdparty/logstash/lib/bootstrap/environment.rb logstash/runner.rb agent -f /opt/northstar/data/logstash/config -l /opt/northstar/logs/logstash.log --allow-env"
            },
            {
                "timestamp": "2017-08-02T10:03:47.000Z",
                "name": "cassandra",
                "status": "RUNNING",
                "pid": 4959,
                "pcpu": "0.3",
                "rss": 1396380,
                "vsz": 3471516,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M44S",
                "cmd": "/opt/northstar/thirdparty/jdk//bin/java -ea -javaagent:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jamm-0.3.0.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1495M -Xmx1495M -Xmn373M -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseTLAB -XX:+PerfDisableSharedMem -XX:CompileCommandFile=/opt/northstar/data/apache-cassandra/conf/hotspot_compiler -XX:CMSWaitDuration=10000 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways -XX:CMSWaitDuration=10000 -Djava.net.preferIPv4Stack=true -Dcassandra.jmx.local.port=7199 -XX:+DisableExplicitGC -Djava.library.path=/opt/northstar/thirdparty/apache-cassandra/bin/../lib/sigar-bin -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/opt/northstar/thirdparty/apache-cassandra/bin/../logs -Dcassandra.storagedir=/opt/northstar/thirdparty/apache-cassandra/bin/../data -Dcassandra-foreground=yes -cp /opt/northstar/data/apache-cassandra/conf:/opt/northstar/thirdparty/apache-cassandra/bin/../build/classes/main:/opt/northstar/thirdparty/apache-cassandra/bin/../build/classes/thrift:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/airline-0.6.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/antlr-runtime-3.5.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-clientutil-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-thrift-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-cli-1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-codec-1.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-lang3-3.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-math3-3.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/compress-lzf-0.8.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/concurrentlinkedhashmap-lru-1.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/crc32ex-0.1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/disruptor-3.0.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ecj-4.4.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/guava-16.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/high-scale-lib-1.0.6.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jackson-core-asl-1.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jackson-mapper-asl-1.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jamm-0.3.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/javax.inject.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jbcrypt-0.3m.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jcl-over-slf4j-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jna-4.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/joda-time-2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/json-simple-1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/libthrift-0.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/log4j-over-slf4j-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/logback-classic-1.1.3.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/logback-core-1.1.3.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/lz4-1.3.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/metrics-core-3.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/metrics-logback-3.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/netty-all-4.0.23.Final.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ohc-core-0.3.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ohc-core-j8-0.3.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/reporter-config3-3.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/reporter-config-base-3.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/sigar-1.6.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/slf4j-api-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/snakeyaml-1.11.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/snappy-java-1.1.1.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ST4-4.0.8.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/stream-2.5.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/super-csv-2.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/thrift-server-0.3.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jsr223/*/*.jar org.apache.cassandra.service.CassandraDaemon"
            },
            {
                "timestamp": "2017-08-02T10:03:47.029Z",
                "name": "ha_agent",
                "status": "RUNNING",
                "pid": 4588,
                "pcpu": "2.8",
                "rss": 10248,
                "vsz": 369696,
                "user": "root",
                "group": "root",
                "time": "P6DT06H03M50S",
                "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/ha_agent.py"
            },
            {
                "timestamp": "2017-08-02T10:03:47.050Z",
                "name": "healthmonitor",
                "status": "RUNNING",
                "pid": 4590,
                "pcpu": "0.1",
                "rss": 52324,
                "vsz": 5130260,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M50S",
                "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/northstar/healthMonitor/index.js"
            },
            {
                "timestamp": "2017-08-02T10:03:47.071Z",
                "name": "license_monitor",
                "status": "RUNNING",
                "pid": 4589,
                "pcpu": "0.0",
                "rss": 4688,
                "vsz": 435532,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M50S",
                "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/license_watcher.py"
            },
            {
                "timestamp": "2017-08-02T10:03:47.091Z",
                "name": "nodejs",
                "status": "RUNNING",
                "pid": 6391,
                "pcpu": "0.0",
                "rss": 129960,
                "vsz": 5866768,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M39S",
                "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/pcs/NodeJS/app.js"
            },
            {
                "timestamp": "2017-08-02T10:03:47.114Z",
                "name": "prunedb",
                "status": "RUNNING",
                "pid": 4585,
                "pcpu": "0.0",
                "rss": 43300,
                "vsz": 4917432,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M50S",
                "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/pcs/NodeJS/util/prune_db.js"
            },
            {
                "timestamp": "2017-08-02T10:03:47.136Z",
                "name": "rabbitmq",
                "status": "RUNNING",
                "pid": 4769,
                "pcpu": "0.9",
                "rss": 39068,
                "vsz": 2334576,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M48S",
                "cmd": "/opt/northstar/thirdparty/erlang/lib/erlang/erts-7.0/bin/beam.smp -W w -A 64 -P 1048576 -K true -- -root /opt/northstar/thirdparty/erlang/lib/erlang -progname erl -- -home /opt/northstar/ -- -pa /opt/northstar/thirdparty/rabbitmq/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@pcs-q-pod08 -boot start_sasl -config /opt/northstar/thirdparty/rabbitmq/sbin/../etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,\"/opt/northstar/thirdparty/rabbitmq/sbin/../var/log/rabbitmq/rabbit@pcs-q-pod08.log\"} -rabbit sasl_error_logger {file,\"/opt/northstar/thirdparty/rabbitmq/sbin/../var/log/rabbitmq/rabbit@pcs-q-pod08-sasl.log\"} -rabbit enabled_plugins_file \"/opt/northstar/thirdparty/rabbitmq/sbin/../etc/rabbitmq/enabled_plugins\" -rabbit plugins_dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../plugins\" -rabbit plugins_expand_dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@pcs-q-pod08-plugins-expand\" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@pcs-q-pod08\" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672"
            },
            {
                "timestamp": "2017-08-02T10:03:47.162Z",
                "name": "zookeeper",
                "status": "RUNNING",
                "pid": 4943,
                "pcpu": "0.0",
                "rss": 87992,
                "vsz": 4608868,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H03M44S",
                "cmd": "/opt/northstar/thirdparty/jdk//bin/java -Dzookeeper.log.dir=/opt/northstar/thirdparty/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper--server-pcs-q-pod08.log -Dzookeeper.root.logger=INFO,CONSOLE -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=kill -9 %p -cp /opt/northstar/thirdparty/zookeeper/bin/../build/classes:/opt/northstar/thirdparty/zookeeper/bin/../build/lib/*.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/slf4j-log4j12-1.7.5.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/slf4j-api-1.7.5.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/servlet-api-2.5-20081211.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jline-2.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jetty-util-6.1.26.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jetty-6.1.26.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/javacc.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jackson-mapper-asl-1.9.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jackson-core-asl-1.9.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/commons-cli-1.2.jar:/opt/northstar/thirdparty/zookeeper/bin/../zookeeper-3.5.2-alpha.jar:/opt/northstar/thirdparty/zookeeper/bin/../src/java/lib/*.jar:/opt/northstar/thirdparty/zookeeper/bin/../conf: -Xmx1000m -Dzookeeper.admin.enableServer=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dzookeeper.jmx.log4j.disable=true org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/northstar/thirdparty/zookeeper/bin/../conf/zoo.cfg"
            },
            {
                "timestamp": "2017-08-02T10:03:47.189Z",
                "name": "listener1_00",
                "status": "RUNNING",
                "pid": 4584,
                "pcpu": "2.9",
                "rss": 9904,
                "vsz": 390752,
                "user": "root",
                "group": "root",
                "time": "P6DT06H03M50S",
                "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/event_listener.py"
            },
            {
                "timestamp": "2017-08-02T10:03:47.212Z",
                "name": "mladapter",
                "status": "RUNNING",
                "pid": 6389,
                "pcpu": "0.0",
                "rss": 30592,
                "vsz": 706084,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M39S",
                "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/mlAdapter/mlAdapter.py"
            },
            {
                "timestamp": "2017-08-02T10:03:47.234Z",
                "name": "npat",
                "status": "RUNNING",
                "pid": 6002,
                "pcpu": "0.0",
                "rss": 796,
                "vsz": 16080,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M54S",
                "cmd": "/opt/pcs/bin/npatserver 7000 0"
            },
            {
                "timestamp": "2017-08-02T10:03:47.256Z",
                "name": "pceserver",
                "status": "RUNNING",
                "pid": 5833,
                "pcpu": "0.0",
                "rss": 3512,
                "vsz": 85192,
                "user": "root",
                "group": "root",
                "time": "P6DT06H02M12S",
                "cmd": "/usr/local/bin/pce_server -d"
            },
            {
                "timestamp": "2017-08-02T10:03:47.290Z",
                "name": "scheduler",
                "status": "RUNNING",
                "pid": 6004,
                "pcpu": "0.0",
                "rss": 1456,
                "vsz": 108192,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M54S",
                "cmd": "/bin/sh /opt/pcs/bin/dcJobScheduler.sh"
            },
            {
                "timestamp": "2017-08-02T10:03:47.313Z",
                "name": "toposerver",
                "status": "RUNNING",
                "pid": 6266,
                "pcpu": "0.0",
                "rss": 11524,
                "vsz": 961784,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT06H01M49S",
                "cmd": "/opt/pcs/bin/TopoServer /opt/northstar/data/northstar.cfg"
            },
            {
                "timestamp": "2017-08-02T10:03:47.334Z",
                "name": "PCServer",
                "status": "RUNNING",
                "pid": 6907,
                "pcpu": "0.0",
                "rss": 445508,
                "vsz": 1384368,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT05H59M51S",
                "cmd": "/opt/pcs/bin/PCServer -port 7003 -handlerPort 7915"
            },
            {
                "timestamp": "2017-08-02T10:03:47.352Z",
                "name": "PCViewer",
                "status": "RUNNING",
                "pid": 6906,
                "pcpu": "0.0",
                "rss": 437540,
                "vsz": 1230508,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT05H59M51S",
                "cmd": "/opt/pcs/bin/PCViewer"
            },
            {
                "timestamp": "2017-08-02T10:03:47.373Z",
                "name": "configServer",
                "status": "RUNNING",
                "pid": 6908,
                "pcpu": "0.0",
                "rss": 436548,
                "vsz": 1230512,
                "user": "pcs",
                "group": "pcs",
                "time": "P6DT05H59M51S",
                "cmd": "/opt/pcs/bin/configServer"
            }
        ],
        "time": "2017-08-02T10:03:47.391Z",
        "role": [
            "Standalone"
        ],
        "CPU": {
            "pcpu": "2.76",
            "cpus": [
                {
                    "pcpu": "4.04"
                },
                {
                    "pcpu": "4.04"
                },
                {
                    "pcpu": "2.97"
                },
                {
                    "pcpu": "0.00"
                }
            ]
        },
        "status": "Up"
    }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/health/nodes/​{nodeId}​
Get the Health of One Node in the NorthStar System

Returns health information for one node in the NorthStar system.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

nodeId query xsd:string

Unique node name

Response example:
{
    "nodeType": [
        "northstar",
        "dataCollector"
    ],
    "node": "pcs-q-pod08",
    "clusterIPs": [
        "10.49.161.46"
    ],
    "memory": {
        "free": 289800192,
        "usage": 5981896704,
        "total": 6271696896
    },
    "disk": {
        "partitions": [
            {
                "total": 59362,
                "used": 3957,
                "free": 52383,
                "usage": 8,
                "partition": "/"
            },
            {
                "total": 2927,
                "used": 0,
                "free": 2927,
                "usage": 0,
                "partition": "/dev/shm"
            }
        ]
    },
    "processes": [
        {
            "timestamp": "2017-07-28T05:20:10.409Z",
            "name": "elasticsearch",
            "status": "RUNNING",
            "pid": 6077,
            "pcpu": "16.9",
            "rss": 489404,
            "vsz": 4816320,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M15S",
            "cmd": "/usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/opt/northstar/thirdparty/elasticsearch -cp /opt/northstar/thirdparty/elasticsearch/lib/elasticsearch-2.4.0.jar:/opt/northstar/thirdparty/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start -p /opt/northstar/data/elasticsearch/elasticsearch.pid -Des.default.path.home=/opt/northstar/thirdparty/elasticsearch -Des.default.path.logs=/opt/northstar/logs -Des.default.path.data=/opt/northstar/data/elasticsearch -Des.default.path.conf=/opt/northstar/data/elasticsearch/config"
        },
        {
            "timestamp": "2017-07-28T05:20:10.436Z",
            "name": "esauthproxy",
            "status": "RUNNING",
            "pid": 6046,
            "pcpu": "0.0",
            "rss": 68528,
            "vsz": 4925568,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M16S",
            "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/northstar/esauthproxy/esauthproxy.js"
        },
        {
            "timestamp": "2017-07-28T05:20:10.452Z",
            "name": "logstash",
            "status": "RUNNING",
            "pid": 6541,
            "pcpu": "3.3",
            "rss": 470352,
            "vsz": 5783868,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H17M46S",
            "cmd": "/usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/northstar/thirdparty/logstash -Xmx2g -Xss2048k -Djffi.boot.library.path=/opt/northstar/thirdparty/logstash/vendor/jruby/lib/jni -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/northstar/thirdparty/logstash -XX:HeapDumpPath=/opt/northstar/thirdparty/logstash/heapdump.hprof -Xbootclasspath/a:/opt/northstar/thirdparty/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home=/opt/northstar/thirdparty/logstash/vendor/jruby -Djruby.lib=/opt/northstar/thirdparty/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /opt/northstar/thirdparty/logstash/lib/bootstrap/environment.rb logstash/runner.rb agent -f /opt/northstar/data/logstash/config -l /opt/northstar/logs/logstash.log --allow-env"
        },
        {
            "timestamp": "2017-07-28T05:20:10.473Z",
            "name": "cassandra",
            "status": "RUNNING",
            "pid": 4959,
            "pcpu": "0.5",
            "rss": 918716,
            "vsz": 3502228,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M07S",
            "cmd": "/opt/northstar/thirdparty/jdk//bin/java -ea -javaagent:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jamm-0.3.0.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1495M -Xmx1495M -Xmn373M -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseTLAB -XX:+PerfDisableSharedMem -XX:CompileCommandFile=/opt/northstar/data/apache-cassandra/conf/hotspot_compiler -XX:CMSWaitDuration=10000 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways -XX:CMSWaitDuration=10000 -Djava.net.preferIPv4Stack=true -Dcassandra.jmx.local.port=7199 -XX:+DisableExplicitGC -Djava.library.path=/opt/northstar/thirdparty/apache-cassandra/bin/../lib/sigar-bin -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/opt/northstar/thirdparty/apache-cassandra/bin/../logs -Dcassandra.storagedir=/opt/northstar/thirdparty/apache-cassandra/bin/../data -Dcassandra-foreground=yes -cp /opt/northstar/data/apache-cassandra/conf:/opt/northstar/thirdparty/apache-cassandra/bin/../build/classes/main:/opt/northstar/thirdparty/apache-cassandra/bin/../build/classes/thrift:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/airline-0.6.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/antlr-runtime-3.5.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-clientutil-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/apache-cassandra-thrift-2.2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-cli-1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-codec-1.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-lang3-3.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/commons-math3-3.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/compress-lzf-0.8.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/concurrentlinkedhashmap-lru-1.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/crc32ex-0.1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/disruptor-3.0.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ecj-4.4.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/guava-16.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/high-scale-lib-1.0.6.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jackson-core-asl-1.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jackson-mapper-asl-1.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jamm-0.3.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/javax.inject.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jbcrypt-0.3m.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jcl-over-slf4j-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jna-4.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/joda-time-2.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/json-simple-1.1.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/libthrift-0.9.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/log4j-over-slf4j-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/logback-classic-1.1.3.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/logback-core-1.1.3.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/lz4-1.3.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/metrics-core-3.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/metrics-logback-3.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/netty-all-4.0.23.Final.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ohc-core-0.3.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ohc-core-j8-0.3.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/reporter-config3-3.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/reporter-config-base-3.0.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/sigar-1.6.4.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/slf4j-api-1.7.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/snakeyaml-1.11.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/snappy-java-1.1.1.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/ST4-4.0.8.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/stream-2.5.2.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/super-csv-2.1.0.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/thrift-server-0.3.7.jar:/opt/northstar/thirdparty/apache-cassandra/bin/../lib/jsr223/*/*.jar org.apache.cassandra.service.CassandraDaemon"
        },
        {
            "timestamp": "2017-07-28T05:20:10.496Z",
            "name": "ha_agent",
            "status": "RUNNING",
            "pid": 4588,
            "pcpu": "2.8",
            "rss": 29292,
            "vsz": 369696,
            "user": "root",
            "group": "root",
            "time": "P1DT01H20M13S",
            "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/ha_agent.py"
        },
        {
            "timestamp": "2017-07-28T05:20:10.511Z",
            "name": "healthmonitor",
            "status": "RUNNING",
            "pid": 4590,
            "pcpu": "0.1",
            "rss": 71832,
            "vsz": 5132096,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M13S",
            "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/northstar/healthMonitor/index.js"
        },
        {
            "timestamp": "2017-07-28T05:20:10.527Z",
            "name": "license_monitor",
            "status": "RUNNING",
            "pid": 4589,
            "pcpu": "0.0",
            "rss": 6988,
            "vsz": 435532,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M13S",
            "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/license_watcher.py"
        },
        {
            "timestamp": "2017-07-28T05:20:10.543Z",
            "name": "nodejs",
            "status": "RUNNING",
            "pid": 6391,
            "pcpu": "0.0",
            "rss": 151800,
            "vsz": 5863816,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M02S",
            "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/pcs/NodeJS/app.js"
        },
        {
            "timestamp": "2017-07-28T05:20:10.558Z",
            "name": "prunedb",
            "status": "RUNNING",
            "pid": 4585,
            "pcpu": "0.0",
            "rss": 60412,
            "vsz": 4915760,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M13S",
            "cmd": "/opt/northstar/thirdparty/node-v6.10.1-linux-x64/bin/node /opt/pcs/NodeJS/util/prune_db.js"
        },
        {
            "timestamp": "2017-07-28T05:20:10.574Z",
            "name": "rabbitmq",
            "status": "RUNNING",
            "pid": 4769,
            "pcpu": "0.9",
            "rss": 56856,
            "vsz": 2333552,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M11S",
            "cmd": "/opt/northstar/thirdparty/erlang/lib/erlang/erts-7.0/bin/beam.smp -W w -A 64 -P 1048576 -K true -- -root /opt/northstar/thirdparty/erlang/lib/erlang -progname erl -- -home /opt/northstar/ -- -pa /opt/northstar/thirdparty/rabbitmq/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@pcs-q-pod08 -boot start_sasl -config /opt/northstar/thirdparty/rabbitmq/sbin/../etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,\"/opt/northstar/thirdparty/rabbitmq/sbin/../var/log/rabbitmq/rabbit@pcs-q-pod08.log\"} -rabbit sasl_error_logger {file,\"/opt/northstar/thirdparty/rabbitmq/sbin/../var/log/rabbitmq/rabbit@pcs-q-pod08-sasl.log\"} -rabbit enabled_plugins_file \"/opt/northstar/thirdparty/rabbitmq/sbin/../etc/rabbitmq/enabled_plugins\" -rabbit plugins_dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../plugins\" -rabbit plugins_expand_dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@pcs-q-pod08-plugins-expand\" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir \"/opt/northstar/thirdparty/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@pcs-q-pod08\" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672"
        },
        {
            "timestamp": "2017-07-28T05:20:10.597Z",
            "name": "zookeeper",
            "status": "RUNNING",
            "pid": 4943,
            "pcpu": "0.0",
            "rss": 97164,
            "vsz": 4608868,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H20M07S",
            "cmd": "/opt/northstar/thirdparty/jdk//bin/java -Dzookeeper.log.dir=/opt/northstar/thirdparty/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper--server-pcs-q-pod08.log -Dzookeeper.root.logger=INFO,CONSOLE -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=kill -9 %p -cp /opt/northstar/thirdparty/zookeeper/bin/../build/classes:/opt/northstar/thirdparty/zookeeper/bin/../build/lib/*.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/slf4j-log4j12-1.7.5.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/slf4j-api-1.7.5.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/servlet-api-2.5-20081211.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jline-2.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jetty-util-6.1.26.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jetty-6.1.26.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/javacc.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jackson-mapper-asl-1.9.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/jackson-core-asl-1.9.11.jar:/opt/northstar/thirdparty/zookeeper/bin/../lib/commons-cli-1.2.jar:/opt/northstar/thirdparty/zookeeper/bin/../zookeeper-3.5.2-alpha.jar:/opt/northstar/thirdparty/zookeeper/bin/../src/java/lib/*.jar:/opt/northstar/thirdparty/zookeeper/bin/../conf: -Xmx1000m -Dzookeeper.admin.enableServer=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dzookeeper.jmx.log4j.disable=true org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/northstar/thirdparty/zookeeper/bin/../conf/zoo.cfg"
        },
        {
            "timestamp": "2017-07-28T05:20:10.627Z",
            "name": "listener1_00",
            "status": "RUNNING",
            "pid": 4584,
            "pcpu": "2.8",
            "rss": 15544,
            "vsz": 390752,
            "user": "root",
            "group": "root",
            "time": "P1DT01H20M13S",
            "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/haagent/event_listener.py"
        },
        {
            "timestamp": "2017-07-28T05:20:10.645Z",
            "name": "mladapter",
            "status": "RUNNING",
            "pid": 6389,
            "pcpu": "0.0",
            "rss": 40624,
            "vsz": 706084,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M02S",
            "cmd": "/opt/northstar/thirdparty/python/bin/python /opt/northstar/mlAdapter/mlAdapter.py"
        },
        {
            "timestamp": "2017-07-28T05:20:10.663Z",
            "name": "npat",
            "status": "RUNNING",
            "pid": 6002,
            "pcpu": "0.0",
            "rss": 884,
            "vsz": 16080,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M17S",
            "cmd": "/opt/pcs/bin/npatserver 7000 0"
        },
        {
            "timestamp": "2017-07-28T05:20:10.681Z",
            "name": "pceserver",
            "status": "RUNNING",
            "pid": 5833,
            "pcpu": "0.0",
            "rss": 5104,
            "vsz": 85192,
            "user": "root",
            "group": "root",
            "time": "P1DT01H18M35S",
            "cmd": "/usr/local/bin/pce_server -d"
        },
        {
            "timestamp": "2017-07-28T05:20:10.709Z",
            "name": "scheduler",
            "status": "RUNNING",
            "pid": 6004,
            "pcpu": "0.0",
            "rss": 1456,
            "vsz": 108192,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M17S",
            "cmd": "/bin/sh /opt/pcs/bin/dcJobScheduler.sh"
        },
        {
            "timestamp": "2017-07-28T05:20:10.725Z",
            "name": "toposerver",
            "status": "RUNNING",
            "pid": 6266,
            "pcpu": "0.0",
            "rss": 16884,
            "vsz": 961784,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H18M12S",
            "cmd": "/opt/pcs/bin/TopoServer /opt/northstar/data/northstar.cfg"
        },
        {
            "timestamp": "2017-07-28T05:20:10.741Z",
            "name": "PCServer",
            "status": "RUNNING",
            "pid": 6907,
            "pcpu": "0.0",
            "rss": 447792,
            "vsz": 1384368,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H16M14S",
            "cmd": "/opt/pcs/bin/PCServer -port 7003 -handlerPort 7915"
        },
        {
            "timestamp": "2017-07-28T05:20:10.756Z",
            "name": "PCViewer",
            "status": "RUNNING",
            "pid": 6906,
            "pcpu": "0.0",
            "rss": 439740,
            "vsz": 1230508,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H16M14S",
            "cmd": "/opt/pcs/bin/PCViewer"
        },
        {
            "timestamp": "2017-07-28T05:20:10.773Z",
            "name": "configServer",
            "status": "RUNNING",
            "pid": 6908,
            "pcpu": "0.0",
            "rss": 438700,
            "vsz": 1230512,
            "user": "pcs",
            "group": "pcs",
            "time": "P1DT01H16M14S",
            "cmd": "/opt/pcs/bin/configServer"
        }
    ],
    "time": "2017-07-28T05:20:10.790Z",
    "role": [
        "Standalone"
    ],
    "CPU": {
        "pcpu": "16.24",
        "cpus": [
            {
                "pcpu": "6.00"
            },
            {
                "pcpu": "4.04"
            },
            {
                "pcpu": "3.00"
            },
            {
                "pcpu": "5.00"
            }
        ]
    }
}
GET
v2/tenant/​{tenant_id}​/health/nodes/​{nodeId}​/time
Get the Node-Specific Time

Returns the time of a specific node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

nodeId query xsd:string

Unique node name

Response example:
{
    "node": "pcs-q-pod08",
    "time": "2017-07-27T07:59:15.730Z"
}
GET
v2/tenant/​{tenant_id}​/health/nodes/​{nodeId}​/​{processName}​
Process the Status of a Specific Node

Processes the status of a specific node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

nodeId query xsd:string

Unique node name

processName query xsd:string

Process name

Response example:
{
    "timestamp": "2017-07-27T08:03:43.828Z",
    "name": "elasticsearch",
    "status": "RUNNING",
    "pid": 6077,
    "pcpu": "7.0",
    "rss": 429736,
    "vsz": 4723060,
    "user": "pcs",
    "group": "pcs",
    "time": "PT04H01M48S",
    "cmd": "/usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/opt/northstar/thirdparty/elasticsearch -cp /opt/northstar/thirdparty/elasticsearch/lib/elasticsearch-2.4.0.jar:/opt/northstar/thirdparty/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start -p /opt/northstar/data/elasticsearch/elasticsearch.pid -Des.default.path.home=/opt/northstar/thirdparty/elasticsearch -Des.default.path.logs=/opt/northstar/logs -Des.default.path.data=/opt/northstar/data/elasticsearch -Des.default.path.conf=/opt/northstar/data/elasticsearch/config",
    "history": [
        {
            "timestamp": "2017-07-27T07:01:29.503Z",
            "pcpu": "6.2",
            "rss": 428192,
            "vsz": 4718616
        },
        {
            "timestamp": "2017-07-27T07:11:31.072Z",
            "pcpu": "6.3",
            "rss": 428384,
            "vsz": 4719296
        },
        {
            "timestamp": "2017-07-27T07:21:32.679Z",
            "pcpu": "6.4",
            "rss": 430732,
            "vsz": 4719968
        },
        {
            "timestamp": "2017-07-27T07:31:34.302Z",
            "pcpu": "6.6",
            "rss": 431048,
            "vsz": 4723216
        },
        {
            "timestamp": "2017-07-27T07:41:35.871Z",
            "pcpu": "6.7",
            "rss": 428768,
            "vsz": 4721548
        },
        {
            "timestamp": "2017-07-27T07:51:37.577Z",
            "pcpu": "6.8",
            "rss": 431556,
            "vsz": 4724820
        },
        {
            "timestamp": "2017-07-27T08:01:39.141Z",
            "pcpu": "6.9",
            "rss": 429764,
            "vsz": 4722932
        },
        {
            "timestamp": "2017-07-27T04:11:02.034Z",
            "pcpu": "11.6",
            "rss": 366572,
            "vsz": 4702888
        },
        {
            "timestamp": "2017-07-27T04:21:03.676Z",
            "pcpu": "8.3",
            "rss": 409876,
            "vsz": 4703492
        },
        {
            "timestamp": "2017-07-27T04:31:05.404Z",
            "pcpu": "6.8",
            "rss": 410432,
            "vsz": 4705336
        },
        {
            "timestamp": "2017-07-27T04:41:07.051Z",
            "pcpu": "6.2",
            "rss": 413532,
            "vsz": 4705724
        },
        {
            "timestamp": "2017-07-27T04:51:08.634Z",
            "pcpu": "5.8",
            "rss": 414224,
            "vsz": 4706860
        },
        {
            "timestamp": "2017-07-27T05:01:10.208Z",
            "pcpu": "5.6",
            "rss": 415696,
            "vsz": 4709092
        },
        {
            "timestamp": "2017-07-27T05:11:11.925Z",
            "pcpu": "5.5",
            "rss": 416604,
            "vsz": 4711372
        },
        {
            "timestamp": "2017-07-27T05:21:13.443Z",
            "pcpu": "5.4",
            "rss": 416448,
            "vsz": 4711280
        },
        {
            "timestamp": "2017-07-27T05:31:15.085Z",
            "pcpu": "5.4",
            "rss": 417620,
            "vsz": 4712728
        },
        {
            "timestamp": "2017-07-27T05:41:16.629Z",
            "pcpu": "5.5",
            "rss": 416912,
            "vsz": 4712464
        },
        {
            "timestamp": "2017-07-27T05:51:18.274Z",
            "pcpu": "5.6",
            "rss": 417344,
            "vsz": 4713424
        },
        {
            "timestamp": "2017-07-27T06:01:19.797Z",
            "pcpu": "5.6",
            "rss": 420080,
            "vsz": 4716988
        },
        {
            "timestamp": "2017-07-27T06:11:21.449Z",
            "pcpu": "5.7",
            "rss": 419820,
            "vsz": 4715032
        },
        {
            "timestamp": "2017-07-27T06:21:23.354Z",
            "pcpu": "5.8",
            "rss": 426464,
            "vsz": 4715688
        },
        {
            "timestamp": "2017-07-27T06:31:24.903Z",
            "pcpu": "5.9",
            "rss": 427692,
            "vsz": 4716340
        },
        {
            "timestamp": "2017-07-27T06:41:26.482Z",
            "pcpu": "6.0",
            "rss": 427884,
            "vsz": 4717164
        },
        {
            "timestamp": "2017-07-27T06:51:27.999Z",
            "pcpu": "6.1",
            "rss": 427984,
            "vsz": 4717912
        }
    ]
}
GET
v2/tenant/​{tenant_id}​/health/nodes/​{nodeId}​/​{processName}​/history
Get the Status History of a Specific Node

Returns the health history of a specific node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

nodeId query xsd:string

Unique node name

processName query xsd:string

Process name

Response example:
[
    {
        "timestamp": "2017-07-27T07:01:29.503Z",
        "pcpu": "6.2",
        "rss": 428192,
        "vsz": 4718616
    },
    {
        "timestamp": "2017-07-27T07:11:31.072Z",
        "pcpu": "6.3",
        "rss": 428384,
        "vsz": 4719296
    },
    {
        "timestamp": "2017-07-27T07:21:32.679Z",
        "pcpu": "6.4",
        "rss": 430732,
        "vsz": 4719968
    },
    {
        "timestamp": "2017-07-27T07:31:34.302Z",
        "pcpu": "6.6",
        "rss": 431048,
        "vsz": 4723216
    },
    {
        "timestamp": "2017-07-27T07:41:35.871Z",
        "pcpu": "6.7",
        "rss": 428768,
        "vsz": 4721548
    },
    {
        "timestamp": "2017-07-27T07:51:37.577Z",
        "pcpu": "6.8",
        "rss": 431556,
        "vsz": 4724820
    },
    {
        "timestamp": "2017-07-27T08:01:39.141Z",
        "pcpu": "6.9",
        "rss": 429764,
        "vsz": 4722932
    },
    {
        "timestamp": "2017-07-27T04:11:02.034Z",
        "pcpu": "11.6",
        "rss": 366572,
        "vsz": 4702888
    },
    {
        "timestamp": "2017-07-27T04:21:03.676Z",
        "pcpu": "8.3",
        "rss": 409876,
        "vsz": 4703492
    },
    {
        "timestamp": "2017-07-27T04:31:05.404Z",
        "pcpu": "6.8",
        "rss": 410432,
        "vsz": 4705336
    },
    {
        "timestamp": "2017-07-27T04:41:07.051Z",
        "pcpu": "6.2",
        "rss": 413532,
        "vsz": 4705724
    },
    {
        "timestamp": "2017-07-27T04:51:08.634Z",
        "pcpu": "5.8",
        "rss": 414224,
        "vsz": 4706860
    },
    {
        "timestamp": "2017-07-27T05:01:10.208Z",
        "pcpu": "5.6",
        "rss": 415696,
        "vsz": 4709092
    },
    {
        "timestamp": "2017-07-27T05:11:11.925Z",
        "pcpu": "5.5",
        "rss": 416604,
        "vsz": 4711372
    },
    {
        "timestamp": "2017-07-27T05:21:13.443Z",
        "pcpu": "5.4",
        "rss": 416448,
        "vsz": 4711280
    },
    {
        "timestamp": "2017-07-27T05:31:15.085Z",
        "pcpu": "5.4",
        "rss": 417620,
        "vsz": 4712728
    },
    {
        "timestamp": "2017-07-27T05:41:16.629Z",
        "pcpu": "5.5",
        "rss": 416912,
        "vsz": 4712464
    },
    {
        "timestamp": "2017-07-27T05:51:18.274Z",
        "pcpu": "5.6",
        "rss": 417344,
        "vsz": 4713424
    },
    {
        "timestamp": "2017-07-27T06:01:19.797Z",
        "pcpu": "5.6",
        "rss": 420080,
        "vsz": 4716988
    },
    {
        "timestamp": "2017-07-27T06:11:21.449Z",
        "pcpu": "5.7",
        "rss": 419820,
        "vsz": 4715032
    },
    {
        "timestamp": "2017-07-27T06:21:23.354Z",
        "pcpu": "5.8",
        "rss": 426464,
        "vsz": 4715688
    },
    {
        "timestamp": "2017-07-27T06:31:24.903Z",
        "pcpu": "5.9",
        "rss": 427692,
        "vsz": 4716340
    },
    {
        "timestamp": "2017-07-27T06:41:26.482Z",
        "pcpu": "6.0",
        "rss": 427884,
        "vsz": 4717164
    },
    {
        "timestamp": "2017-07-27T06:51:27.999Z",
        "pcpu": "6.1",
        "rss": 427984,
        "vsz": 4717912
    }
]
GET
v2/tenant/​{tenant_id}​/health/thresholds
Get Health Thresholds

Returns the health thresholds for the nodes.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "id": "diskUtilization",
        "partition": "/",
        "node": "pcs-q-pod08",
        "critical": "95%",
        "warning": "80%"
    }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/health/thresholds/diskUtilization
Get Disk Utility Thresholds

Returns the disk utility thresholds.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "id": "diskUtilization",
        "partition": "/",
        "node": "pcs-q-pod08",
        "critical": "95%",
        "warning": "80%"
    }
]

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/health/thresholds/diskUtilization
Update Disk Utility Thresholds

Updates the disk utility thresholds using the following schema: health.json#/definitions/diskThreshold

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "links": [
        {
            "href": "nodes",
            "rel": "nodes",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}",
            "rel": "node",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/time",
            "rel": "node",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/{processName}",
            "rel": "processDetail",
            "type": "application/json"
        },
        {
            "href": "nodes/{nodeId}/{processName}/history",
            "rel": "processDetailHistory",
            "type": "application/json"
        },
        {
            "href": "thresholds",
            "rel": "thresholds",
            "type": "application/json"
        },
        {
            "href": "thresholds/<threshholdId>",
            "rel": "threshold",
            "type": "application/json"
        },
        {
            "href": "smtpconfig",
            "rel": "smtpconfig",
            "type": "application/json"
        },
        {
            "href": "subscribers",
            "rel": "subscribers",
            "type": "application/json"
        }
    ]
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/health/nodes/smtpconfig
GET SMTP Config

Returns the SMTP configuration.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "enabled": true,
    "isPasswdSet": true
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/health/nodes/smtpconfig
Update SMTP Config

Updates the SMTP configuration using the following the schema: health.json#/definitions/updateSmtpconfig and sample

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

host query xsd:string

Host address

port query xsd:int

Port

secure query xsd:bool

Is it using SSL?

username query xsd:string

Username

password query xsd:string

Password

enabled query xsd:bool

SMTP server enabled?

Request example:
{
	"host":"127.0.0.1",
	"secure":false,
	"username":"sample",
	"password":"sample123",
	"port":587,
    "enabled": true
}
Response example:
{
    "host": "127.0.0.1",
    "secure": false,
    "username": "test",
    "port": 587,
    "enabled": true
}
PUT
v2/tenant/​{tenant_id}​/health/nodes/subscribers
Update Email Alert Subscribers

Updates the list of subscribers for Email Alerts using the following schema: health.json#/definitions/subscriberList

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/health/nodes/subscribers
Delete Email Alert Subscribers

Deletes subscribers for Email Alerts using the following schema: health.json#/definitions/subscriber

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

Notification examples

Node events

Node update example

                        {"action": "update", "notificationType": "node", "object":   {
    "topoObjectType": "node","topologyIndex": 1,"id": "192.0.2.1","nodeIndex": 1,"layer": "IP","AutonomousSystem": {"asNumber": 11},
    "protocols": {"ISIS": {
        "routerId": "192.0.2.1",
        "TERouterId": "192.0.2.1",
        "isoAddress": "0110.0000.0101",
        "area": "490011"},
      "PCEP": {"operationalStatus": "Up","pccAddress": "192.0.2.1"}}}}

                    

Node removal example

                        {"action": "remove", "notificationType": "node", "object": {"nodeIndex": 1, "topologyIndex": 1, "id": "192.0.2.1", "topoObjectType": "node"}}

                    

Link events

Link update example

                        {"action": "remove", "notificationType": "link","object": {
    "topoObjectType": "link","topologyIndex": 1,
    "linkIndex": 1,"id": "L192.0.2.13_192.0.2.14",   
    "endA": {
        "topoObjectType": "interface","TEcolor": 0, "TEmetric": 10,	"delay" : 600,
        "bandwidth": 40000000000,
        "node"       : {"id": "192.0.2.3","topoObjectType": "node","topologyIndex": 1},
        "ipv4Address": {"address": "192.0.2.13","topoObjectType": "ipv4"},
        "protocols": {"ISIS": { "TEMetric": 10,"level": "L2"},
                      "RSVP": {"bandwidth": 40000000000}},        
        "unreservedBw": [39970000896, 39970000896, 39970000896, 39469998080, 39469998080, 39469998080, 39469998080, 39469998080]
    },
    "endZ": {
        "topoObjectType": "interface","TEcolor": 0, "TEmetric": 10,	"delay" : 600,
        "bandwidth": 40000000000,
        "node"       : {"id": "192.0.2.7","topoObjectType": "node","topologyIndex": 1},
        "ipv4Address": {"address": "192.0.2.14","topoObjectType": "ipv4"},
        "protocols": {"ISIS": { "TEMetric": 10,"level": "L2"},
                      "RSVP": {"bandwidth": 40000000000}}, 
        "unreservedBw": [39289999360, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640]
    },        
    "operationalStatus": "Up"}}


                    

Link removal example

                        {"action": "remove", "object": {"id": "192.0.2.13", "topologyIndex": 1, "linkIndex": 1, "topoObjectType": "link"}, "notificationType": "link"},

                    

TE-LSPs events

LSP update example

                        {"action": "remove", "notificationType": "lsp","object":{
    "lspIndex": 2,
    "name": "LP_101_103",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "Delegated",
    "plannedProperties": {
	"bandwidth": "10M",
	"setupPriority": 7,
	"holdingPriority": 0,
	"calculatedEro": [
	    {"topoObjectType": "ipv4","address": "62.101.105.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.105.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.106.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.106.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.107.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.103.107.1","loose": false}
	],
	"pathName": "Path_Node101_Node103_Strict_1",
	"adminStatus": "Up",
	"routingStatus": "Up",
	"lastStatusString": "<Active PCS initialization"
    },
    "liveProperties": {
        "adminStatus": "Up",
        "bandwidth": 10000000,
        "ero": [
            {"address": "62.101.105.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.103.107.1", "loose": false, "topoObjectType": "ipv4" }
        ],
        "holdingPriority": 0,
        "metric": 40,
        "pathName": "Path_Node101_Node103_Strict_1",
        "rro": [
            {"address": "62.0.0.105",   "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.101.105.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.107",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.103",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.103.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
        ],
        "setupPriority": 7
    },
    "operationalStatus": "Active",
    "pathType": "primary",
    "tunnelId": 56614
}}

                    

LSP removal example

                        {"action": "remove", "object": {"lspIndex": 74}, "notificationType": "lsp"},

                    

P2MP Groups

P2MP update example

The following example illustrates updating a P2MP group with a new LSP. The result is, in fact, two updates, one for the group and one for the newly added LSP. The results are similar when an LSP is removed from the group; the group is updated (or removed if no LSP remains), then the member itself is removed.


                        {"action": "update", "object": {"from": {"address": "11.0.0.101", "topoObjectType": "ipv4"}, "name": "1-d", "lsps": [{"lspIndex": 90}, {"lspIndex": 91}], "p2mpIndex": 184549477, "topoObjectType": "p2mpGroup", "p2mpGroupIndex": 8}, "notificationType": "p2mpGroup"},

                    

                        {"action": "add", "object": {"p2mpName": "1-d", "from": {"address": "11.0.0.101", "topoObjectType": "ipv4"}, "name": "p2mpMember-02", "p2mpIndex": 184549477, "liveProperties": {"adminStatus": "Up", "rro": [{"address": "11.101.105.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}, {"address": "11.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}, {"address": "11.104.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}], "setupPriority": 7, "metric": 0, "bandwidth": 0, "holdingPriority": 0, "ero": []}, "pathType": "primary", "to": {"address": "11.0.0.104", "topoObjectType": "ipv4"}, "controller": "External", "operationalStatus": "Up", "controlType": "PCC", "lspIndex": 91}, "notificationType": "lsp"},

                    

P2MP group removal example

When the Last LSP of the P2MP group is removed, the P2MP group is removed.

NOTE: LSP removal notification is described in the LSP notification examples.


                        {"action": "remove", "object": {"p2mpGroupIndex": 8, "topologyIndex": 1, "topoObjectType": "p2mpGroup"}, "notificationType": "p2mpGroup"},

                    

Node events

Node update example

                        {"action": "update", "notificationType": "node", "object":   {
    "topoObjectType": "node","topologyIndex": 1,"id": "192.0.2.1","nodeIndex": 1,"layer": "IP","AutonomousSystem": {"asNumber": 11},
    "protocols": {"ISIS": {
        "routerId": "192.0.2.1",
        "TERouterId": "192.0.2.1",
        "isoAddress": "0110.0000.0101",
        "area": "490011"},
      "PCEP": {"operationalStatus": "Up","pccAddress": "192.0.2.1"}}}}

                    

Node removal example

                        {"action": "remove", "notificationType": "node", "object": {"nodeIndex": 1, "topologyIndex": 1, "id": "192.0.2.1", "topoObjectType": "node"}}

                    

Topology events

Topology reset example

                        {"action": "add", "object": {"topoObjectType" : "topology", "topologyIndex" : 1}, "notificationType": "topology"}



                    

High Availability events

Node status update

                        {"action": "add","notificationType": "host","object" :{
    "hostname" : "node1.northstar.example.net",
    "status" : "Up",
    "role" : "Active"
}}