Edge types

All edges created in the topology should have an edge type defined. Review the following lists of the types that are associated with each edge label. If none of the default types suffice, you can create your own custom types.

Edge types can be thought of as being instances of the edge label classes. Most interactions with edges in the topology are with types rather than labels.

Edge types for labels

Types for the aggregation label

Edge type Description Example
contains The source resource is considered to contain the target resource Slot contains a card
federates The source resource is a federation of the target resources Database federates nodes
members The source resource has the target resources as its members Subnet members are IP addresses

Types for the association label

Edge type Description Example
aliasOf Depicts that one resource is an alias of another; potentially from different providers FQDN1 is an alias of FQDN2
assignedTo When one resource is assigned to another The alarm is assingedTo an operator
attachedTo When one resource is attached to another The plug is attachedTo to the cable
classifies When one resource is used to classify another The government classifies the document
configures When one resource configures or provides configuration for another resource The file configures the application
deployedTo Describes when one resource is deployed to another resource The application was deployedTo the server
exposes When one resource exposes another The application exposes the interface
has Generalized relationship when one resource possesses, owns, or has another resource Host has component
implements When one resource implements another The class implements the interface
locatedAt When one resource is physically located in or at another resource's location Host is locatedAt data center
manages When one resource manages another The boss manages the employee
monitors When one resource monitors another The application monitors the host
movedTo When one resource moves to a new and different resource The service has movedTo the host
origin Indicates the origin of a Vertex Device's origin is a vendor
owns Indicates ownership of one resource by another resource The user owns the server
rates Can be used when one resource rates another The manager rates the employee
resolvesTo When one resource resolves to another The hostname resolvesTo an address
realizes When one resource realizes another The hypervisor realizes the virtual machine
segregates When one resource segregates another The firewall segregates the network
uses When one resource takes, employs or deploys another resource as a means of achieving something Application uses this disk

Types for the dataFlow label

Edge type Description Example
accessedVia One resource is accessed through another, typically remote. Server is accessedVia a FQDN
bindsTo A network layering relationship such that the source runs on top of the target. Logical interface bindsTo a physical port
communicatesWith A relationship whereby one resource communicates with another The sensor communicatesWith an application
connectedTo A relationship whereby one resource is connected to another The laptop is connectedTo the switch
downlinkTo One resource is down-linked to another The controller has a downlinkTo the sensor
reachableVia A resource is reachable through another resource The network is reachableVia the gateway
receives A resource receives data from another The Mail server receives an email
routes A relationship whereby one resource routes data for another The device routes the data
routesVia A relationship whereby data from one resource routes through another The traffic routesVia the device
loadBalances One resource which balances load for others The load balancer loadBalances to servers
resolved When one resource resolved something for another DNS server resolved IP address
resolves Represents that one resource uses another to resolve it FQDN resolves to the address
sends A resource sends some data to another The application sends an SMS message
traverses Describes when one resource traverses another The message traverses the network
uplinkTo One resource is up-linked to another The sensor has an uplinkTo the controller

Types for the dependency label

Edge type Description Example
dependsOn A generic dependency between resources One application dependsOn another
runsOn A resource runs on (and therefore depends on) another resource The service runsOn the host

Custom edge types

If no default edge types suitably represents a relationship, you can define a custom edge type through the https://localhost:8080/1.0/topology/types/edge POST API.

Important: A custom edge type needs to be created before the observation job passes any edges with the type to the topology service.

  • edgeType

    Required. The edgeType name, which must be unique and cannot match the edgeType name of a default edgeType, unless the edgeLabel also matches the corresponding default edge type's edgeLabel parameter.

    Restriction: A scenario where both edgeType and edgeLabel match the fields of a default edge type is equivalent to manually creating a default edge type, which is not necessary as default edge types are created implicitly by the topology when needed.

  • edgeLabel

    Required. The edgeLabel of the custom edgeType, which must have one of the following labels:

    • dataFlow
    • dependency
    • association
    • aggregation
  • description

    Optional, but recommended. This should be a meaningful description of the type of relationship this edge type represents.

Example

curl -k -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'X-TenantID: cfd95b7e-3bc7-4006-a4a8-a73a79c71255' -d '{
  "edgeType": "connectedTo",
  "edgeLabel": "dataFlow",
  "description": "Default relationship between two devices that exchange data"
}' 'https://localhost:8080/1.0/topology/types/edge'