Skip to content

Depot topology

Registers the network map routes on the tenant API.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

getTopology returns the client’s network map, laid out.

NameInTypeRequiredDescription
collapsequerystringNo
docsquerystringNo
networkquerystringNo
sitequerystringNo
viewquerystringNo
vlanquerystringNo
StatusBodyDescription
200application/json, TopologyViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo site matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
generatedAtrequiredstring (date-time)
graphrequiredGraph

Graph is the network map.

graph.edgesrequiredarray of Edge
graph.edges[].attrsobject
graph.edges[].bundlestring
graph.edges[].cableIdstring
graph.edges[].classstring
graph.edges[].confidencestring
graph.edges[].fromrequiredstring
graph.edges[].fromPortrequiredstring
graph.edges[].hopsarray of any
graph.edges[].idrequiredstring
graph.edges[].kindrequiredstring
graph.edges[].labelrequiredstring
graph.edges[].labelsarray of any
graph.edges[].lagany
graph.edges[].manualboolean
graph.edges[].mediastring
graph.edges[].pointsrequiredarray of any
graph.edges[].rolestring
graph.edges[].sourcerequiredstring
graph.edges[].speedMbpsinteger
graph.edges[].stalerequiredboolean
graph.edges[].styleany
graph.edges[].torequiredstring
graph.edges[].toPortrequiredstring
graph.edges[].vlanrequiredinteger
graph.edges[].vlansarray of any
graph.groupsrequiredarray of Group
graph.groups[].hrequirednumber

double.

graph.groups[].headerHnumber

double.

graph.groups[].headerWnumber

double.

graph.groups[].idrequiredstring
graph.groups[].kindrequiredstring
graph.groups[].labelrequiredstring
graph.groups[].labelXrequirednumber

double.

graph.groups[].labelYrequirednumber

double.

graph.groups[].membersrequiredarray of any
graph.groups[].parentrequiredstring
graph.groups[].wrequirednumber

double.

graph.groups[].xrequirednumber

double.

graph.groups[].yrequirednumber

double.

graph.heightrequirednumber

double.

graph.iconsobject
graph.nodesrequiredarray of Node
graph.nodes[].attrsrequiredobject
graph.nodes[].collapsedany
graph.nodes[].hrequirednumber

double.

graph.nodes[].iconstring
graph.nodes[].idrequiredstring
graph.nodes[].iprequiredarray of any
graph.nodes[].kindrequiredstring
graph.nodes[].labelrequiredstring
graph.nodes[].labelLinesarray of any
graph.nodes[].labelSizenumber

double.

graph.nodes[].macrequiredstring
graph.nodes[].refany
graph.nodes[].siterequiredstring
graph.nodes[].statusrequiredstring
graph.nodes[].vlanrequiredarray of any
graph.nodes[].wrequirednumber

double.

graph.nodes[].xrequirednumber

double.

graph.nodes[].yrequirednumber

double.

graph.versionrequiredinteger
graph.viewstring
graph.widthrequirednumber

double.

refrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology?collapse=<collapse>&docs=<docs>&network=<network>&site=<site>&view=<view>&vlan=<vlan>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

diffTopology compares a snapshot (or the map as it was at a time) with another snapshot or with the live map.

NameInTypeRequiredDescription
fromquerystringNo
sitequerystringNo
toquerystringNo
StatusBodyDescription
200application/json, DiffResultSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNetwork map snapshots are not available on this Depot.

200 response body

FieldTypeDescription
changesrequiredarray of DiffChange
changes[].afterrequiredstring
changes[].beforerequiredstring
changes[].fieldrequiredstring
changes[].labelrequiredstring
changes[].nodeIdrequiredstring
edgesAddedrequiredarray of DiffEdge
edgesAdded[].fromrequiredstring
edgesAdded[].fromPortrequiredstring
edgesAdded[].idrequiredstring
edgesAdded[].torequiredstring
edgesAdded[].toPortrequiredstring
edgesMovedrequiredarray of DiffMove
edgesMoved[].afterrequiredDiffAttach

DiffAttach is where a host was plugged in.

edgesMoved[].after.peerrequiredstring
edgesMoved[].after.peerLabelrequiredstring
edgesMoved[].after.portrequiredstring
edgesMoved[].beforerequiredDiffAttach

DiffAttach is where a host was plugged in.

edgesMoved[].before.peerrequiredstring
edgesMoved[].before.peerLabelrequiredstring
edgesMoved[].before.portrequiredstring
edgesMoved[].labelrequiredstring
edgesMoved[].nodeIdrequiredstring
edgesRemovedrequiredarray of DiffEdge
edgesRemoved[].fromrequiredstring
edgesRemoved[].fromPortrequiredstring
edgesRemoved[].idrequiredstring
edgesRemoved[].torequiredstring
edgesRemoved[].toPortrequiredstring
fromrequiredDiffEnd

DiffEnd names one side of a diff.

from.idrequiredstring
from.takenAtrequiredstring
nodesAddedrequiredarray of DiffNode
nodesAdded[].idrequiredstring
nodesAdded[].kindrequiredstring
nodesAdded[].labelrequiredstring
nodesRemovedrequiredarray of DiffNode
nodesRemoved[].idrequiredstring
nodesRemoved[].kindrequiredstring
nodesRemoved[].labelrequiredstring
torequiredDiffEnd

DiffEnd names one side of a diff.

to.idrequiredstring
to.takenAtrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/diff?from=<from>&site=<site>&to=<to>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdiscovery:readtenant facehosteditmspremote

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

driftTopology compares a documented diagram (.drawio or .vsdx, a documentation file, an upload, or a diagram already parsed) with the live map.

Required, sent as multipart/form-data.

The body is object.

StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo network diagram matches that id.
422application/problem+json, ProblemDetailsThe diagram’s current revision is not a diagram Outpost can read.
500application/problem+json, ProblemDetailsNo client store in request context.
501application/problem+json, ProblemDetailsThat part of the documentation store is not available on this Depot yet.
502application/problem+json, ProblemDetailsThe file could not be read.
503application/problem+json, ProblemDetailsNetwork diagrams are not available on this Depot.

200 response body

FieldTypeDescription
attrDiffsrequiredarray of DriftAttr
attrDiffs[].docrequiredstring
attrDiffs[].fieldrequiredstring
attrDiffs[].liverequiredstring
attrDiffs[].liveLabelrequiredstring
attrDiffs[].liveNodeIdrequiredstring
diagramIdrequiredstring
documentNamerequiredstring
linkDiffsrequiredarray of DriftLink
linkDiffs[].detailrequiredstring
linkDiffs[].docEdgeDriftEdgeEnd

DriftEdgeEnd is one side's view of a link.

linkDiffs[].docEdge.fromrequiredstring
linkDiffs[].docEdge.fromPortrequiredstring
linkDiffs[].docEdge.torequiredstring
linkDiffs[].docEdge.toPortrequiredstring
linkDiffs[].kindrequiredstring, one of missing, moved, new
linkDiffs[].liveEdgeDriftEdgeEnd

DriftEdgeEnd is one side's view of a link.

linkDiffs[].liveEdge.fromrequiredstring
linkDiffs[].liveEdge.fromPortrequiredstring
linkDiffs[].liveEdge.torequiredstring
linkDiffs[].liveEdge.toPortrequiredstring
matchesrequiredarray of DriftMatch
matches[].byrequiredstring
matches[].confidencerequirednumber

double.

matches[].docLabelrequiredstring
matches[].docNodeIdrequiredstring
matches[].liveLabelrequiredstring
matches[].liveNodeIdrequiredstring
missingrequiredarray of DriftDocNode
missing[].docLabelrequiredstring
missing[].docNodeIdrequiredstring
missing[].kindrequiredstring
pagesrequiredarray of string
scorerequirednumber

double.

summaryrequiredstring
unknownrequiredarray of DriftLiveNode
unknown[].kindrequiredstring
unknown[].liveLabelrequiredstring
unknown[].liveNodeIdrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/topology/drift' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-b 'outpost_console=<console-session>' \
--data '{}'

GETdiscovery:readtenant facehosteditmspremoteIdempotentdownloadNot fully resolved

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

exportTopology downloads the network map in any export format (18.2), as one view or, for .drawio, .vsdx and PDF, one page per view in pages.

NameInTypeRequiredDescription
collapsequerystringNo
docsquerystringNo
formatquerystringNo
networkquerystringNo
pagesquerystringNo
sitequerystringNo
viewquerystringNo
vlanquerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo site matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/export?collapse=<collapse>&docs=<docs>&format=<format>&network=<network>&pages=<pages>&site=<site>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTnetwork_map:edittenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

putLinkOverride replaces one link’s override.

The link must be on the map as the caller sees it; a field left out or null is cleared.

NameInTypeRequiredDescription
edgeKeypathstringYes

Required, sent as application/json.

FieldTypeDescription
cableIdstring or null
labelstring or null
mediastring or null
notesstring or null
speedMbpsinteger or null
StatusBodyDescription
200application/json, LinkOverrideViewSuccess.
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsMissing permission: discovery:read
404application/problem+json, ProblemDetailsNo link on the network map has that id.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsLink details are not available on this Depot.

200 response body

FieldTypeDescription
cableIdstring or null
edgeKeyrequiredstring
labelstring or null
mediastring or null
notesstring or null
orphanedrequiredboolean
speedMbpsinteger or null
updatedAtrequiredstring (date-time)
updatedByrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X PUT 'https://depot.example.com/api/v1/topology/links/<edgeKey>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"cableId": "string",
"label": "string",
"media": "string",
"notes": "string",
"speedMbps": 0
}'

DELETEnetwork_map:edittenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

deleteLinkOverride clears one link’s override.

NameInTypeRequiredDescription
edgeKeypathstringYes
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold network_map:edit.
404application/problem+json, ProblemDetailsThat link has no saved details.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsLink details are not available on this Depot.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/topology/links/<edgeKey>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

listLinkOverrides lists the client’s overrides, each saying whether its link is on the map now; orphaned=1 keeps only those that are not.

Without endpoint:read, overrides on endpoint links are left out, as the map leaves those links out.

NameInTypeRequiredDescription
orphanedquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultLinkOverrideViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsLink details are not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of LinkOverrideView
items[].cableIdstring or null
items[].edgeKeyrequiredstring
items[].labelstring or null
items[].mediastring or null
items[].notesstring or null
items[].orphanedrequiredboolean
items[].speedMbpsinteger or null
items[].updatedAtrequiredstring (date-time)
items[].updatedByrequiredstring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/links/overrides?orphaned=<orphaned>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

listTopologySnapshots pages the stored daily snapshots, newest first.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
sitequerystringNo
StatusBodyDescription
200application/json, PagedResultTopologySnapshotViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNetwork map snapshots are not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of TopologySnapshotView
items[].edgeCountrequiredinteger
items[].graphGraph

Graph is the network map.

items[].graph.edgesrequiredarray of Edge
items[].graph.edges[].attrsobject
items[].graph.edges[].bundlestring
items[].graph.edges[].cableIdstring
items[].graph.edges[].classstring
items[].graph.edges[].confidencestring
items[].graph.edges[].fromrequiredstring
items[].graph.edges[].fromPortrequiredstring
items[].graph.edges[].hopsarray of any
items[].graph.edges[].idrequiredstring
items[].graph.edges[].kindrequiredstring
items[].graph.edges[].labelrequiredstring
items[].graph.edges[].labelsarray of any
items[].graph.edges[].lagany
items[].graph.edges[].manualboolean
items[].graph.edges[].mediastring
items[].graph.edges[].pointsrequiredarray of any
items[].graph.edges[].rolestring
items[].graph.edges[].sourcerequiredstring
items[].graph.edges[].speedMbpsinteger
items[].graph.edges[].stalerequiredboolean
items[].graph.edges[].styleany
items[].graph.edges[].torequiredstring
items[].graph.edges[].toPortrequiredstring
items[].graph.edges[].vlanrequiredinteger
items[].graph.edges[].vlansarray of any
items[].graph.groupsrequiredarray of Group
items[].graph.groups[].hrequirednumber

double.

items[].graph.groups[].headerHnumber

double.

items[].graph.groups[].headerWnumber

double.

items[].graph.groups[].idrequiredstring
items[].graph.groups[].kindrequiredstring
items[].graph.groups[].labelrequiredstring
items[].graph.groups[].labelXrequirednumber

double.

items[].graph.groups[].labelYrequirednumber

double.

items[].graph.groups[].membersrequiredarray of any
items[].graph.groups[].parentrequiredstring
items[].graph.groups[].wrequirednumber

double.

items[].graph.groups[].xrequirednumber

double.

items[].graph.groups[].yrequirednumber

double.

items[].graph.heightrequirednumber

double.

items[].graph.iconsobject
items[].graph.nodesrequiredarray of Node
items[].graph.nodes[].attrsrequiredobject
items[].graph.nodes[].collapsedany
items[].graph.nodes[].hrequirednumber

double.

items[].graph.nodes[].iconstring
items[].graph.nodes[].idrequiredstring
items[].graph.nodes[].iprequiredarray of any
items[].graph.nodes[].kindrequiredstring
items[].graph.nodes[].labelrequiredstring
items[].graph.nodes[].labelLinesarray of any
items[].graph.nodes[].labelSizenumber

double.

items[].graph.nodes[].macrequiredstring
items[].graph.nodes[].refany
items[].graph.nodes[].siterequiredstring
items[].graph.nodes[].statusrequiredstring
items[].graph.nodes[].vlanrequiredarray of any
items[].graph.nodes[].wrequirednumber

double.

items[].graph.nodes[].xrequirednumber

double.

items[].graph.nodes[].yrequirednumber

double.

items[].graph.versionrequiredinteger
items[].graph.viewstring
items[].graph.widthrequirednumber

double.

items[].hashrequiredstring
items[].idrequiredstring
items[].nodeCountrequiredinteger
items[].refstring
items[].siteIdrequiredstring
items[].takenAtrequiredstring (date-time)
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/snapshots?page=0&pageSize=0&site=<site>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTdiscovery:managetenant facehosteditmspremote

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

takeTopologySnapshot snapshots the client’s map now, storing each site whose map changed since its last snapshot.

StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:manage.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNetwork map snapshots are not available on this Depot.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/topology/snapshots' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/topology/snapshots/{snapshotId}

Section titled “GET /api/v1/topology/snapshots/{snapshotId}”

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

getTopologySnapshot returns one stored snapshot with its graph laid out.

NameInTypeRequiredDescription
snapshotIdpathstringYesA uuid.
StatusBodyDescription
200application/json, TopologySnapshotViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNetwork map snapshots are not available on this Depot.

200 response body

FieldTypeDescription
edgeCountrequiredinteger
graphGraph

Graph is the network map.

graph.edgesrequiredarray of Edge
graph.edges[].attrsobject
graph.edges[].bundlestring
graph.edges[].cableIdstring
graph.edges[].classstring
graph.edges[].confidencestring
graph.edges[].fromrequiredstring
graph.edges[].fromPortrequiredstring
graph.edges[].hopsarray of any
graph.edges[].idrequiredstring
graph.edges[].kindrequiredstring
graph.edges[].labelrequiredstring
graph.edges[].labelsarray of any
graph.edges[].lagany
graph.edges[].manualboolean
graph.edges[].mediastring
graph.edges[].pointsrequiredarray of any
graph.edges[].rolestring
graph.edges[].sourcerequiredstring
graph.edges[].speedMbpsinteger
graph.edges[].stalerequiredboolean
graph.edges[].styleany
graph.edges[].torequiredstring
graph.edges[].toPortrequiredstring
graph.edges[].vlanrequiredinteger
graph.edges[].vlansarray of any
graph.groupsrequiredarray of Group
graph.groups[].hrequirednumber

double.

graph.groups[].headerHnumber

double.

graph.groups[].headerWnumber

double.

graph.groups[].idrequiredstring
graph.groups[].kindrequiredstring
graph.groups[].labelrequiredstring
graph.groups[].labelXrequirednumber

double.

graph.groups[].labelYrequirednumber

double.

graph.groups[].membersrequiredarray of any
graph.groups[].parentrequiredstring
graph.groups[].wrequirednumber

double.

graph.groups[].xrequirednumber

double.

graph.groups[].yrequirednumber

double.

graph.heightrequirednumber

double.

graph.iconsobject
graph.nodesrequiredarray of Node
graph.nodes[].attrsrequiredobject
graph.nodes[].collapsedany
graph.nodes[].hrequirednumber

double.

graph.nodes[].iconstring
graph.nodes[].idrequiredstring
graph.nodes[].iprequiredarray of any
graph.nodes[].kindrequiredstring
graph.nodes[].labelrequiredstring
graph.nodes[].labelLinesarray of any
graph.nodes[].labelSizenumber

double.

graph.nodes[].macrequiredstring
graph.nodes[].refany
graph.nodes[].siterequiredstring
graph.nodes[].statusrequiredstring
graph.nodes[].vlanrequiredarray of any
graph.nodes[].wrequirednumber

double.

graph.nodes[].xrequirednumber

double.

graph.nodes[].yrequirednumber

double.

graph.versionrequiredinteger
graph.viewstring
graph.widthrequirednumber

double.

hashrequiredstring
idrequiredstring
nodeCountrequiredinteger
refstring
siteIdrequiredstring
takenAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/snapshots/<snapshotId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/topology/snapshots/{snapshotId}/export

Section titled “GET /api/v1/topology/snapshots/{snapshotId}/export”

GETdiscovery:readtenant facehosteditmspremoteIdempotentdownloadNot fully resolved

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

exportTopologySnapshot downloads a stored snapshot in any export format, one view or one page per view, as the live export does (5.5a, 18.2).

NameInTypeRequiredDescription
snapshotIdpathstringYesA uuid.
formatquerystringNo
pagesquerystringNo
viewquerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNetwork map snapshots are not available on this Depot.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/snapshots/<snapshotId>/export?format=<format>&pages=<pages>&view=<view>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdiscovery:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

traceTopology walks the link path from one device to another, or to the internet.

NameInTypeRequiredDescription
fromquerystringNo
toquerystringNo
StatusBodyDescription
200application/json, TraceResultSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold discovery:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
edgesrequiredarray of string
foundrequiredboolean
fromrequiredstring
highlightPathrequiredarray of string
hopsrequiredarray of TraceHop
hops[].edgeIdrequiredstring
hops[].gatewayrequiredstring
hops[].inPortrequiredstring
hops[].inferredrequiredboolean
hops[].kindrequiredstring
hops[].labelrequiredstring
hops[].nodeIdrequiredstring
hops[].outPortrequiredstring
hops[].sourcerequiredstring
hops[].stalerequiredboolean
hops[].vlanrequiredinteger
pathrequiredarray of string
refrequiredstring
torequiredstring
warningsrequiredarray of string
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/topology/trace?from=<from>&to=<to>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.