{	
    "id"     :"topology.json",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref" : "#/definitions/topology",
    "links" : [
	{
	    "title" : "get the topology list, which contains only the description",
	    "href" : "/topologies",
	    "method" : "GET",
	    "schema" : {
		"type" : "array",
		"items" : {"$ref" : "#/definitions/topology"}
	    }	    
	},
	{
	    "title" : "gets all Live state",
	    "href" : "/{topologyIndex}",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/topology"}
	},
	{
	    "title" : "node information",
	    "href" : "/{topologyIndex}/nodes/",
	    "schema" : {"$ref" : "node.json#/definitions/nodeList"}
	},
	{
	    "title" : "links topology information",
	    "href" : "/{topologyIndex}/links/",
	    "schema" : {"$ref" : "link.json#/definitions/linkList"}
	},
	{
	    "title" : "te-lsps",
	    "href" : "/{topologyIndex}/te-lsps/",
	    "schema" : {"$ref" : "lsp.json#/definitions/lspList"}
	},
        {
	    "title" : "demands",
	    "href" : "/{topologyIndex}/demands/",
	    "schema" : {"$ref" : "demands.json#/definitions/demandList"}
	},

	{
	    "title" : "topology acquisition status",
	    "href" : "/{topologyIndex}/status/topologyAcquisition",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},
	{
	    "title" : "PCE status",
	    "href" : "/{topologyIndex}/status/pce",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},
        {
	    "title" : "path computation server status",
	    "href" : "/{topologyIndex}/status/pathComputationServer",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},
        {
	    "title" : "transport topology acquisition status",
	    "href" : "/{topologyIndex}/status/multilayerTopology",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},
        {
	    "title" : "Analytics data collection component status",
	    "href" : "/{topologyIndex}/status/analyticsCollection",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},
        {
	    "title" : "Analytics database component status",
	    "href" : "/{topologyIndex}/status/analyticsDatabase",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatus"}
	},        
        {
	    "title" : "NorthStar components status",
	    "href" : "/{topologyIndex}/status",
	    "method" : "GET",
	    "rel" : "self",
	    "schema" : {"$ref" : "#/definitions/componentStatusList"}
	}
    ],
    "definitions" : {
        "componentStatusList" : {
            "type":"array",
            "items": {"$ref" : "#/definitions/componentStatus"}
        },
        "subComponentStatus" : {
            "type" : "object",
	    "description" : "indicates the status of a sub-component without restriction on the component part",
	    "additionalProperties" : false,
            "properties" : {
		"component" : {"type" :"string"},
		"status" : {"type" :"string"},
		"statusTimestamp" : {"type" :"integer"},
                "statusTimestampTime" : {"type" : "string","description" : "ISO 8101 timestamp","format" : "datetime"}
	    }
        },
	"componentStatus" : {
	    "type" : "object",
	    "description" : "indicates the topology status and LSP data acquisition sources",
	    "additionalProperties" : false,
            "properties" : {
		"component" : {"type" :"string", "enum" : ["Topology acquisition","PCE","Path Computation Server","Transport Topology acquisition","Analytics data collection","Analytics database"]},
		"status" : {"type" :"string"},
                "childs" : {
                    "type":"array",
                    "items": {"$ref" : "#/definitions/subComponentStatus"}
                },
		"statusTimestamp" : {"type" :"integer"},
                "statusTimestampTime" : {"type" : "string","description" : "ISO 8101 timestamp","format" : "datetime"}
	    }
	},
	"topologyIndex" : {
	    "description" : "topology index--for now only one is supported",
	    "$ref" : "common.json#/definitions/index"	    
	},
	"topology" : {
	    "type" : "object",
	    "required" : ["topologyIndex","topoObjectType"],
	    "properties" : {
		"topologyIndex" : { "$ref" : "#/definitions/topologyIndex"},
		"topoObjectType" : {"type" : "string","enum" : ["topology"]},
		"description" : {
		    "description" : "topology description",
		    "type" : "string",
		    "enum" : [ "default Topology" ]
		},
		"nodes" : {
		    "description" : "all nodes",
		    "$ref" : "node.json#/definitions/nodeList"
		},
		"links" : {
		    "description" : "all nodes",
		    "$ref" : "link.json#/definitions/linkList"
		}
	    }
	}
    }
}
