> 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.

# Device customization

> Use liveStatusProps and overrideConfig to customize NSO adapter behavior for specific device types.

The NSO adapter supports two customization properties that allow you to override or extend its default behavior for specific NED device types: `liveStatusProps` and `overrideConfig`. Both are configured in the adapter's service config in Platform.

## When to use these properties

The adapter has built-in default behavior for a set of supported NED types. Use `liveStatusProps` when:

* A device type requires a non-standard action path or command structure for live status calls
* You need to support a device type not covered by the adapter's defaults
* You want to override the default behavior for a supported device type

Use `overrideConfig` when:

* A device type requires non-default flags, cleaners, or configuration paths for get/set config operations
* You need to change how the adapter constructs JSON-RPC calls for a specific NED

Adding `liveStatusProps` for a supported device type overrides that type's default behavior entirely. Only add the parameters you want to change — you do not need to specify all parameters.

## Configure customizations

#### Navigate to the adapter in Admin Essentials

Go to **Admin Essentials → Adapters** and select the NSO adapter from the left sidebar.

#### Open the Service Config editor

Toggle the **Advanced View** switch to open the Service Config editor.

#### Add the customization properties

Add `liveStatusProps`, `overrideConfig`, or both at the `properties` object level of the service config.

## liveStatusProps

The `liveStatusProps` property customizes how the adapter constructs JSON-RPC calls for live status commands — typically `show` commands sent to devices through NSO.

### Top-level properties

| Property  | Type   | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                                |
| --------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `nedType` | String | `''`    | The NED device type to match. Can be a fully versioned NED ID such as `cisco-ios-cli-6.72`, or a partial match such as `cisco-ios` to apply to all versions of that NED. Available NED types include: `cisco-ios`, `cisco-ios-xr`, `cisco-staros`, `cisco-nx`, `cisco-xe`, `junos`, `juniper-junos`, `juniper-junos-set`, `xml`, `a10-acos`, `f5-bigip`, `alu-sr`, `ciena-acos`, `cienacli-acos`, `adtran-aos`, `huawei-vrp`, `arista-dcs` |
| `actions` | Array  | `[]`    | Array of action definitions for this NED type                                                                                                                                                                                                                                                                                                                                                                                              |

### Action properties

| Property           | Type   | Default    | Description                                                                                                                    |
| ------------------ | ------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `commandPrefix`    | String | `''`       | A string used to match incoming commands. When a command starts with this prefix, this action definition is used.              |
| `actionPath`       | String | `''`       | The NSO JSON-RPC action path to invoke                                                                                         |
| `commandParams`    | Object | `{}`       | The parameter structure for the JSON-RPC call. Use `"${command}"` as a placeholder where the command value should be inserted. |
| `commandParamType` | Enum   | `'string'` | The type of the command value sent to NSO. Either `"string"` or `"array"`.                                                     |

### Examples

#### Custom command prefix

Use `commandPrefix` to remap the built-in `show` command to a custom prefix for a specific NED type. In this example, a `show version` live status call becomes `fake_command version` in the JSON-RPC call to NSO:

```json
"liveStatusProps": [
  {
    "nedType": "cisco-iosxr-cli-7.36",
    "actions": [
      {
        "commandPrefix": "fake_command",
        "actionPath": "live-status/cisco-ios-xr-stats:exec/cisco-ios-xr-stats:show"
      }
    ]
  }
]
```

The resulting JSON-RPC call:

```
actionPath: "live-status/cisco-ios-xr-stats:exec/cisco-ios-xr-stats:show"
command: "fake_command version"
```

#### Custom command parameters

Use `commandParams` when the live status action requires a specific parameter structure. Use `"${command}"` to insert the command value at the correct position:

```json
"liveStatusProps": [
  {
    "nedType": "ericsson-sgsnmme",
    "actions": [
      {
        "actionPath": "live-status/ericssonsgsnmme-stats:EXEC/nonconfig-actions",
        "commandParams": {
          "action": {
            "action-payload": "${command}"
          }
        }
      }
    ]
  }
]
```

For a `show version` command, the resulting JSON-RPC call:

```
actionPath: "live-status/ericssonsgsnmme-stats:EXEC/nonconfig-actions"
command: {
  "action": {
    "action-payload": "show version"
  }
}
```

#### Array command type

Use `commandParamType: "array"` when the live status action expects the command as an array rather than a string:

```json
"liveStatusProps": [
  {
    "nedType": "junos",
    "actions": [
      {
        "actionPath": "live-status/junoscli:exec/any",
        "commandParams": {
          "commands": "${command}"
        },
        "commandParamType": "array"
      }
    ]
  }
]
```

For a `show version` command, the resulting JSON-RPC call:

```
actionPath: "live-status/junoscli:exec/any"
command: {
  "commands": ["show version"]
}
```

## overrideConfig

The `overrideConfig` property overrides the adapter's default device settings for get/set config operations on a per-NED basis.

### Top-level properties

| Property  | Type   | Description                                                                                      |
| --------- | ------ | ------------------------------------------------------------------------------------------------ |
| `nedType` | String | The NED device type to match. Supports versioned or partial NED IDs (same as `liveStatusProps`). |
| `actions` | Object | An object of action overrides. Only specify the properties you want to change.                   |

### Action properties

| Property              | Type    | Example values                                                                                      |
| --------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| `nedFlag`             | String  | `"MAAPI_CONFIG_C"`, `"MAAPI_CONFIG_C_IOS"`, `"MAAPI_CONFIG_J"`, `"MAAPI_CONFIG_XML"`, `null`        |
| `cleaner`             | String  | `"IOSXRCleaner"`, `"ALUCleaner"`, `"JunosCleaner"`, `"NoCleaner"`                                   |
| `nedStr`              | String  | `null`, `"cisco-ios-xr"`, `"ios"`                                                                   |
| `deviceType`          | String  | `"cli"`, `"netconf"`, `null`                                                                        |
| `nativeCmd`           | String  | `""`                                                                                                |
| `interfacePath`       | String  | `"interface"`                                                                                       |
| `deviceActionPath`    | String  | `"live-status/cisco-ios-xr-stats:exec/ci"`, `"live-status/dcs-stats:exec/dcs-stats:show"`           |
| `cmdArgName`          | String  | `"command"`, `"args"`, `null`                                                                       |
| `cmdArg`              | String  | `"running-config"`, `"config"`, `null`                                                              |
| `cmdNS`               | String  | `"cisco-ios-xr-stats"`, `"ios-stats"`, `"staros-stats"`, `"nx-stats"`, `"cisco-xe-stats"`, `"jrpc"` |
| `supportNativeConfig` | Boolean | `true`, `false`                                                                                     |
| `deleteKeyword`       | String  | `"no"`, `"delete"`                                                                                  |

### Example

Only include the properties you want to override for the given NED type:

```json
"overrideConfig": [
  {
    "nedType": "cisco-ios-xr",
    "actions": {
      "nedFlag": "MAAPI_CONFIG_C",
      "cleaner": "IOSXRCleaner",
      "nedStr": "cisco-ios-xr",
      "deviceType": "cli",
      "nativeCmd": "",
      "interfacePath": "interface",
      "deviceActionPath": "live-status/cisco-ios-xr-stats:exec/ci",
      "cmdArgName": "args",
      "cmdArg": "running-config",
      "cmdNS": "cisco-ios-xr-stats",
      "supportNativeConfig": true,
      "deleteKeyword": "no"
    }
  }
]
```

## Related reading

* [Itential Tools actions](./itential-tools-actions)
* [Configure the NSO adapter](./configure-adapter)