Managed objects and element objects

The object classes defined in the data model fall into one of two main categories: managed object classes (or simply managed objects), and element object classes (element objects).

These two categories are very similar in that they are both, ultimately, unordered collections of named properties that capture the key attributes of a resource instance. The categories differ primarily in how prominently they are handled in the API: the way that instances of them are designated to perform operations on them, and the degree to which API facilities such as inventory and change notification can be offered for objects in that category.

Managed objects are the first-class entities in the data model and the API. They represent the primary manageable resources of the system, such as CPCs, logical partitions, adapters and partitions. These kinds of objects typically appear prominently in the main displays of the HMC user interface.

Instances of managed objects are registered and indexed in the zManager managed object registry, and thus can be directly referenced by URIs that form a relatively "flat" namespace. The URI of a managed object designates its object instance based on its class and a unique, durable, UUID-based identifier called an object ID. For example, the URI of a CPC is of the form /api/cpcs/{cpc-object-id} where the identifier at the end of the URI is globally unique. Inventory change, property change, and status change notifications can be generated for managed objects.

In comparison, element objects represent the secondary or more-detailed aspects of the system. Examples include the Load Activation Profiles of a CPC, or the NICs of a Partition. These kinds of entities do not generally appear in the main displays of the HMC user interface, but rather are displayed only within particular management tasks offered by the UI.

Instances of element objects are not directly registered in the zManager object registry, but rather are associated with or “attached to” some containing or related managed object instance. As a result, access to these elements is indirect, through the containing managed object. The URIs that designate element objects are hierarchical in nature, with the leftmost part of the URI identifying the managed object to which the element is attached. For example, the URI for a HBA of a Partition is of the form /api/partitions/{partition-object-id}/hbas/{hba-id} in which the {hba-id} at the end is only necessarily unique within the context of the related partition. Inventory, property and status change notifications are not always directly provided for element objects. In such cases, when changes to elements are reported, those changes are done through property change notifications emitted for the associated managed object.