> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Inventory Manager concepts

> An overview of the four core entities in Inventory Manager inventories, nodes, actions, and tags.

Inventory Manager is built around four core entities: inventories, nodes, actions, and tags.

## Inventories

An inventory is a logical container that groups related automation targets and defines the operations you can perform on them.

### Inventory attributes

* **Name**: Unique identifier (globally unique across all inventories)
* **Groups**: One or more user groups for RBAC (required)
* **Description**: Optional descriptive text
* **Actions**: Array of operations for nodes in this inventory (optional at creation)
* **Tags**: Labels for organization and filtering
* **Audit fields**: `created_at`, `updated_at`, `created_by`, `updated_by` (automatically populated)

For more information, see [Create and populate inventories](./create-and-populate-inventories).

### Inventory organization

Create separate inventories based on device type, environment, region, team ownership, or service requirements. For more information, see [Tags and organization strategies](./inventory-manager-tags).

### Key behaviors

* Deleting nodes doesn't affect the inventory
* You can only delete an inventory after removing all its nodes
* Actions can be included during creation or added later

## Nodes

A node represents an individual device, endpoint, or automation target within an inventory.

### Node attributes

* **Inventory ID**: Reference to parent inventory (cannot be changed after creation)
* **Name**: Identifier unique within the parent inventory (can be duplicated across inventories)
* **Attributes**: Flexible key-value object for device-specific properties
* **Tags**: Labels for organization and filtering
* **Audit fields**: `created_at`, `updated_at`, `created_by`, `updated_by` (automatically populated)

### Flexible node structure

The `attributes` object supports any structure based on your device requirements.

**Network device example:**

```json
{
  "inventory": {
    "inventoryNodes": [
      {
        "name": "core-router-1",
        "attributes": {
          "itential_host": "10.1.1.1",
          "itential_user": "admin",
          "cluster_id": "cluster_1",
          "itential_password": "$SECRET_path $KEY_name",
          "itential_platform": "cisco_ios",
          "itential_driver": "netmiko",
          "itential_driver_options": {
            "netmiko": {
              "timeout": 180,
              "global_delay_factor": 3
            }
          }
        }
      }
    ]
  }
}
```

### Key behaviors

* The `populateInventory` task replaces all nodes in the inventory, deleting all existing nodes before inserting new ones
* Node names only need to be unique within their parent inventory
* The same node name can exist in multiple inventories

## Actions

An action represents an operation you can execute against nodes in an inventory. Actions are scoped to their parent inventory.

### Action attributes

* **Name**: Unique identifier within the parent inventory
* **Action type**: Currently only `iag5-service` is supported
* **Action config**: Static configuration (for Gateway 5: `service_name` and `cluster_id`)
* **Action parameters**: Default parameters (overridable at runtime)
* **Last executed**: Timestamp of most recent execution (automatically updated)
* **Audit fields**: `created_at`, `updated_at`, `created_by`, `updated_by` (automatically populated)

**Gateway 5.x service action example:**

```json
{
  "name": "get-config",
  "action_type": "iag5-service",
  "action_config": {
    "service_name": "itential-get-config",
    "cluster_id": "cluster_1"
  },
  "action_parameters": {
    "timeout": 60
  }
}
```

For more information, see [Create and manage actions](./create-and-manage-actions).

### Parameter resolution

When you execute an action, parameters are resolved from multiple sources. The resolution works in two separate relationships:

#### Parameters (runtime vs. defaults)

1. Runtime parameters (provided at execution)
2. Action parameters (defaults in action definition)

Runtime parameters always override action parameters.

#### Cluster routing (Gateway 5 service actions only)

For `iag5-service` action type, the `cluster_id` is resolved separately:

1. Node attributes (if `cluster_id` exists in node attributes)
2. Action config (if not found in node attributes)

This special handling for `cluster_id` is specific to Gateway 5 service actions.

For detailed information about parameter resolution and cluster routing, see [Create and manage actions](./create-and-manage-actions).

## Tags

A tag is a label you can apply to inventories and nodes for organization, filtering, and classification.

### Tag attributes

* **Name**: Globally unique identifier
* **Description**: Optional descriptive text
* **Audit fields**: `created_at`, `updated_at`, `created_by`, `updated_by` (automatically populated)

### Key behaviors

* Tags are created automatically when applied to resources
* Tags are automatically deleted when no longer in use
* The same tag can be applied to both inventories and nodes
* Tags are not exposed through Device Broker

For guidance on using tags effectively, see [Tags and organization strategies](./inventory-manager-tags).