> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.itential.com/itential-cloud/lifecycle-manager/manage-resources/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server. # Manage Lifecycle Manager resources **Add-on product**: Lifecycle Manager extends Itential Platform with stateful orchestration capabilities. It requires Itential Platform as a prerequisite. [View platform overview](/itential-platform/overview) Create and manage resources that represent infrastructure entities in your environment. ## What are resources? Resources in Lifecycle Manager represent any infrastructure entity that Itential Platform can manage: network devices, cloud instances, code repositories, or services. From the Resources view, you can: * Define resource models using JSON Schema * Create instances of resources * Build and execute actions against instances * Edit resource metadata ## Before you begin Before creating resources, review: * [Lifecycle Manager overview](/itential-platform/lifecycle-manager/overview) for foundational concepts * [JSON Schema documentation](https://json-schema.org/) for model syntax * [Workflow documentation](/itential-platform/studio/workflows/overview) for action design ## Create a resource To create a new resource: #### Open the create dialog Click **Create Resource +** on the Lifecycle Manager home page #### Enter resource details Provide a name and optional description #### Save the resource Click **Create** to open the resource in a new view ## Open an existing resource To open a resource: #### Expand the resources menu Click **Resources** in the side navigation menu #### Select a resource Click the resource name from the expanded list **Tip**: Use the search bar at the top of the accordion menu to filter resources by name. Alternatively, click the **Search** icon in the toolbar to use the Collections view. ## Understand resource tabs The Resource view organizes functions across four tabs: | Tab | Purpose | | --------------- | -------------------------------------------------------------- | | Model | Define the resource model in JSON Schema format (default view) | | Actions | Create workflows that manage instance properties | | Instances | Create instances and execute actions | | Instance Groups | Organize instances and execute bulk actions | Click tab names at the top of the view to navigate between them. ## Define resource models Resource models specify which properties instances can have. Define models using JSON Schema on the Model tab. ### Model tab elements | Element | Purpose | | ----------------------- | ---------------------------------------------------- | | Menu button (top right) | Edit metadata, export JSON, or delete resource | | Save button | Save model changes | | JSON Schema editor | Edit the model with search, copy, and theme controls | ### Model syntax New resources include this template: ```json { "$id": "resource-name", "description": "Schema defining the possible values within instances", "type": "object", "required": [], "additionalProperties": true, "properties": {} } ``` | Keyword | Description | | ---------------------- | ---------------------------------------- | | `$id` | Resource model name | | `description` | Model description | | `type` | Data type (always `object`) | | `required` | Array of required property names | | `additionalProperties` | Whether undefined properties are allowed | | `properties` | Object defining manageable properties | Add properties as keys in the `properties` object. Add required properties to the `required` array. ### Example: Define a switch model To create a resource model for network switches: #### Identify required properties Decide which properties instances should have: * `hostname` (required string) * `ipv4` (required IPv4 address string) * `vendor` (optional string) #### Add properties to the model ```json "properties": { "hostname": { "type": "string" }, "ipv4": { "type": "string", "format": "ipv4" }, "vendor": { "type": "string" } } ``` #### Specify required properties ```json "required": ["hostname", "ipv4"] ``` #### Save the model Click **Save** to apply changes Complete model: ```json { "$id": "org-switch", "description": "Schema defining switch properties", "type": "object", "required": ["hostname", "ipv4"], "additionalProperties": true, "properties": { "hostname": { "type": "string" }, "ipv4": { "type": "string", "format": "ipv4" }, "vendor": { "type": "string" } } } ``` ## Create instances Instances represent individual occurrences of a resource. For example, each switch in your network would be a separate instance. ### Instances tab elements | Element | Purpose | | ------------------- | -------------------------------------------------- | | Menu button | Edit metadata, export, or delete resource | | Toolbar | Create, import, export instances, or create groups | | Filter bar | Filter the instance table | | Instance table | View all instances | | Instance side panel | Run actions, view properties, or check history | ### Example: Create a switch instance To create an instance: #### Open the instance dialog Click **+ New Instance** on the Instances tab #### Configure the instance * Enter a name and description (optional) * Select a create action (use default **Create** if unsure) * Enter property values (required fields are marked) #### Save the instance Click **Save** to add the instance to the table ## Import and export instances ### Import instances To import instances from JSON files: #### Open the import dialog Click the **Import** icon on the Instances tab #### Select files Browse and select one or more JSON files #### Import instances Click **Import** to validate and add instances Import requirements: * Instance data must conform to the resource model schema * Instance names must be unique within the resource Successfully imported instances show "Import" in the **Last Action** column and History tab. ### Export instances **Export multiple instances**: #### Select instances Check rows in the instance table #### Export selection Click the **Export** icon in the toolbar Downloaded file name: `{resource-name}_exportedInstances.json` **Export single instance**: Choose one method: * Click the vertical dot menu in the instance table row * Click **Export** in the instance properties side panel * Click **Export** on the Edit Instance Details page Downloaded file name: `{instance-name}.json` Exported files exclude the `_id`, `modelId`, and `actionHistory` fields. ## Create actions Actions use workflows to manage instance properties. For example, an action could update a virtual machine's power state and record the change. ### Actions tab elements | Element | Purpose | | ------------ | ----------------------------------------- | | Menu button | Edit metadata, export, or delete resource | | Toolbar | Create, select all, or delete actions | | Filter bar | Filter displayed actions | | Action cards | View, edit, or delete actions | ### Action types | Type | Description | | ------ | --------------------------------------------------------------------------------------- | | Create | Create new instances. Workflows are optional but useful for dynamic property assignment | | Update | Modify instance properties. Requires a workflow to implement changes | | Delete | Remove instances. Workflows are optional but useful for cleanup tasks | ### How actions work Actions follow this workflow pattern: **Update and delete actions**: #### Receive instance data Lifecycle Manager sends current properties in the `instance` job variable #### Process in workflow Workflow tasks read `instance`, make changes, and output to `instance` #### Apply changes Lifecycle Manager updates the instance with returned values **Create actions**: Create actions don't receive `instance` as input (the instance doesn't exist yet). If a workflow is attached, it must create and output the `instance` variable according to the resource model. **Transformations**: * **Pre-transformation**: Receives `instance` and user inputs, outputs job variables to workflow * **Post-transformation**: Receives `workflowOutputs` and original `instance`, outputs updated `instance` When no workflow is attached, users edit instance properties directly. This is the only case where direct editing is allowed. ### Example: Update switch IP address To create an update action: #### Create the action * Click **+ New Action** * Enter a name (for example, "change\_ipv4") * Select **Update** from Action Type * Click **Save** #### Add a workflow * Click **+ Workflow** * Select **+ Create New** to open Studio #### Design the workflow * Add tasks that receive the `instance` job variable * Update the `ipv4` property * Output changes to the `instance` job variable * Save the workflow #### Run the action * Navigate to the Instances tab * Select an instance * Click **Run ►** for the new action in the Actions panel * Verify completion and check the Properties tab ## Organize instances with groups Instance groups let you execute actions against multiple instances simultaneously. ### Instance Groups tab elements | Element | Purpose | | ------------------------- | ------------------------------------------- | | Menu button | Edit metadata, export, or delete resource | | Toolbar | Create or delete groups | | Filter bar | Filter the group table | | Instance group table | View all groups | | Instance group side panel | Run actions, view members, or check history | ### Group types | Type | Description | | ------- | --------------------------------------------------------------------------------------------------------- | | Manual | Instances are manually assigned. Membership is static | | Dynamic | Instances are automatically assigned based on filters. Membership updates when instance properties change | ### Example: Create and use a group To create a dynamic group: #### Open the group dialog Click **+ New Instance Group** on the Instance Groups tab #### Configure the group * Enter a name and description * Check **Dynamic Group** * Set filters (for example, name starts with "ec" for East Coast) * Click **Apply Filter** #### Save the group Click **Save** to create the group To run an action against a group: #### Open the group Select the group from the instance group table #### Select an action Navigate to the Actions tab in the side panel #### Run the action * Click **Run ►** for the desired action * Enter required properties in the JSON editor * Click **Run ►** to execute ## Edit resource metadata To modify resource metadata: #### Open the metadata panel Click the **Menu** button (top right), then select **Metadata** #### Update fields Edit name, description, or other metadata #### Save changes Click **Save** ## Next steps #### [View instance history](/itential-platform/lifecycle-manager/view-instance-history) Track how instance data changes over time with execution history