Entity Graph reference

Overview

The Entity Graph is a component of the ESI Service that stores information about discovered storage system components and the relationships between the components. The graph exposes an HTTP API to enable client applications, such as the ESI SCOM Management Packs, to query the discovered system components and the relationships between them. The ESI Service PowerShell Toolkit also includes cmdlets for querying the Entity Graph, which uses the HTTP API.

Basic concepts

The Entity Graph consists of two kinds of elements, entities, and entity relationships:

Entity graph classes

The Entity Graph meta-model consists of only two classes, Entity and EntityRelationship. Each class has the following properties:

Entity

An Entity contains both meta-properties that are available on every component as well as properties that are specific to the type of component the property represents.

Name

Type

Description

ID

String

Unique identifier that is assigned to each entity in the graph. Client applications use this ID to locate the entities and their relationships to other entities. Client applications do not interpret the format or contents.

Class

String

Type of object that the Entity represents. This is a non-localized programmatic name that only contains alphanumeric characters.

AncestorClasses

String array

Class hierarchy of the Entity that lists the class names starting with the most derived class and up to the top class in the hierarchy.

Caption

String

Short description of the Entity that client applications can only use for end-user display and not interpret as a value.

FriendlyClass

String

Name of the component that the Entity represents, which may be more recognizable to the end user. This is the same value as the Class property if there is no friendly name. Client applications can only use this for end user display and not interpret it as a value.

FriendlyName

String

Name of the component that the Entity represents, which may be more recognizable to the end user. Client applications do not interpret this value but only use it for an end-user display.

PhysicalPath

String

Physical path to the component that the Entity represents. This helps end users identify the component. Client applications do not interpret this value but only use it as an end-user display.

Properties

Property array

Properties of the component that the Entity represents. Each property consists of a Name, Type, and Value. Each type of component or Entity Class has a unique set of properties. For example, SerialNumber on StorageSystem and AvailableCapacity on StoragePool.

SnapshotTime

DataTime

Timestamp of the last time that the information in the entity was synchronized with the component that it represents. Client applications can use this to determine the staleness of the entity information.

EntityRelationship

An EntityRelationship is a directional link between a source entity and a target entity. It represents a relationship between the components that the entities represent.

Name

Type

Description

Name

String

Type of relationship between the components represented by the Source and Target Entities. It can be one of the following values:

  • PhysicalContainment: Physical relationship between the source container and target member.

  • LogicalContainment: Logical relationship between the source container and target member.

  • LogicalAssociation: Association between two logical components.

  • LogicalPhysicalAssocation: Association between a logical source component and a physical target component.

  • Orphaned: Relationship between an orphaned target component and some root source container..

SourceClass

String

Class of the source entity in the relationship.

SourceID

String

ID of the source entity in the relationship.

TargetClass

String

Class of the target entity in the relationship.

TargetID

String

ID of the target entity in the relationship.