> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.itential.com/itential-platform/2023-2/inventory-manager/create-and-manage-actions/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server. # Create and manage actions > Create, configure, and delete reusable actions for executing operations against inventory nodes. Actions define reusable operations you can execute against nodes in an inventory. This section explains how to create, configure, and delete actions. ## Broker actions When you enable `createBrokerActions`, Inventory Manager automatically creates four actions configured to built-in Gateway Manager broker services: * `get-config` * `set-config` * `is-alive` * `run-command` Device Broker operations (such as those used in command templates and Configuration Manager) require actions with these specific names. These actions can point to either the default built-in broker services or your own custom Gateway Manager services. If you enable `createBrokerActions` and also define custom actions in the actions parameter, the inventory is populated with both the built-in and custom actions. If a custom action has the same name as a built-in action, the custom action takes priority. For more information about broker services, see [Built-in broker services](./device-broker-support#built-in-broker-services). ## Create actions You can create actions when creating an inventory or add them afterward. ### Create actions during inventory creation Include actions in the inventory creation request using the `actions` parameter. You can also use the `createBrokerActions` parameter to automatically populate the inventory with built-in broker service actions. **API endpoint:** `POST /inventory_manager/v1/inventories` **Required roles:** `inventory:create` **Parameters:** | Name | Type | Required | Description | | --------------------- | ------- | ------------------------------------------------ | ---------------------------------------------------------------- | | `name` | string | Yes | Name of the inventory | | `description` | string | No | Description of the inventory | | `groups` | array | Yes | RBAC groups that can access the inventory | | `tags` | array | No | Tags for organizing and filtering inventories | | `actions` | array | No | Custom actions to create with the inventory | | `createBrokerActions` | boolean | No | When true, automatically creates built-in broker service actions | | `defaultClusterId` | string | No (required if `createBrokerActions` is `true`) | Default Gateway Manager cluster for built-in broker actions | **Example request:** This request creates an inventory with the default broker actions. This example specifies custom parameters for the `run-command` action, while the remaining actions (`get-config`, `is-alive`, and `set-config`) use the default parameters configured to the built-in broker services. ```json { "name": "testInventory", "description": "", "groups": ["pronghorn_admin"], "tags": ["development"], "actions": [ { "name": "run-command", "action_type": "iag5-service", "action_config": { "service_name": "custom-iag5-service", "cluster_id": "cluster_1" }, "action_parameters": { "command": "show version" } } ], "createBrokerActions": true, "defaultClusterId": "cluster_1" } ``` ### Add actions to existing inventories Add actions to an inventory after creation using the create action endpoint. **API endpoint:** `POST /inventory_manager/v1/inventories/:inventoryIdentifier/actions` **Required roles:** `inventory:update` **Parameters:** | Name | Type | Required | Description | | -------------------------------------- | ------ | -------- | ------------------------------------------- | | `inventoryIdentifier` (path parameter) | string | Yes | Inventory name or ID | | `name` | string | Yes | Action name (unique within the inventory) | | `action_type` | string | Yes | Action type (currently only `iag5-service`) | | `action_config` | object | No | Static configuration for the action | | `action_parameters` | object | No | Default parameters for the action | For attribute details, see [Inventory Manager concepts](./inventory-manager-concepts). **Example request:** ```json { "name": "run-command", "action_type": "iag5-service", "action_config": { "service_name": "custom-iag5-service", "cluster_id": "cluster_1" }, "action_parameters": { "command": "show version" } } ``` ## Configure Gateway 5 service actions For the `iag5-service` action type, configure the Gateway 5 service to execute and which Gateway Manager cluster to route the execution to. ### Action configuration **action\_config**: Static configuration that doesn't change between executions: * `service_name`: The Gateway 5 service to execute * `cluster_id`: The Gateway Manager cluster to route execution to (optional, can be overridden by node attributes) **action\_parameters**: Default parameters that can be overridden at runtime, such as: * `timeout`: Execution timeout in seconds * Command-specific parameters **Example:** ```json { "name": "get-config", "action_type": "iag5-service", "action_config": { "service_name": "get-config", "cluster_id": "cluster_1" }, "action_parameters": { "timeout": 60 } } ``` ### Parameter resolution When Inventory Manager executes an action, it merges parameters from multiple sources with the following priorities: 1. Runtime parameters (provided at execution) 2. Action parameters (defaults in action definition) 3. Action config (static configuration) 4. Node attributes (from target node) **Example:** Action definition: ```json { "name": "get-config", "action_config": { "service_name": "get-config", "cluster_id": "cluster_1" }, "action_parameters": { "timeout": 60 } } ``` Node attributes: ```json { "name": "router-1", "attributes": { "cluster_id": "cluster_2", "ipaddress": "10.1.1.1" } } ``` Runtime execution request: ```json { "nodeIdentifier": "router-1", "parameters": { "timeout": 120, "command": "show clock" } } ``` Merged parameters sent to Gateway 5: ```json { "service_name": "get-config", "cluster_id": "cluster_2", // From node attributes "timeout": 120, // From runtime parameters "command": "show clock", // From runtime parameters "ipaddress": "10.1.1.1" // From node attributes } ``` For Gateway 5 service actions, the `cluster_id` from node attributes takes precedence over all other sources, allowing you to route execution based on device properties. ## Delete actions Remove an action from an inventory using the delete action endpoint. **API endpoint:** `DELETE /inventory_manager/v1/inventories/:inventoryIdentifier/actions/:actionIdentifier` **Required roles:** `inventory:delete` **Parameters:** | Name | Type | Required | Description | | -------------------------------------- | ------ | -------- | -------------------- | | `inventoryIdentifier` (path parameter) | string | Yes | Inventory name or ID | | `actionIdentifier` (path parameter) | string | Yes | Action name or ID | > Create, configure, and delete reusable actions for executing operations against inventory nodes.