SolarWinds Orion

SolarWinds Orion

Certified
Enterprise Edition

Manage SolarWinds Orion IPAM resources — subnets, IP nodes, groups, DHCP scopes, and supernets — via the SolarWinds Information Service (SWIS) REST API.

Automate SolarWinds IPAM workflows: list and allocate IP addresses, create subnets and groups, query the network with SWQL, and trigger executions on utilization breaches or IP status changes.

How to use the SolarWinds Orion plugin

Manage SolarWinds Orion IPAM — subnets, supernets, IP nodes, groups, and DHCP scopes — and run SWQL queries from Kestra flows via the SolarWinds Information Service (SWIS) REST API.

Authentication

All tasks and triggers require host (the Orion server hostname or IP), username, and password (HTTP Basic credentials; password is a secret) — all required. Optionally set port (the SWIS port, default 17778), verifySsl (default true; set to false to skip TLS certificate verification when Orion uses a self-signed certificate), and options for HTTP client configuration. Store secrets in secrets and apply connection properties globally with plugin defaults.

Tasks

Tasks live under ipam.*Query runs arbitrary SWQL, and the rest are typed CRUD tasks grouped by resource. A few conventions apply across them:

  • Object identityGet takes a numeric ID (e.g. subnetId). Update and Delete instead take the object's SWIS entityUri (the URI string returned in list/get results), with one exception: ipnode.Update takes ipNodeId.
  • fetchTypeQuery and every List* task accept fetchType: FETCH (all rows inline, default), FETCH_ONE (first row only), STORE (an ION file in Kestra internal storage), or NONE.
  • Update tasks change only the fields you supply and log a warning (rather than failing) when none are given. Delete is idempotent — a missing object is treated as success.

ipam.Query runs a SolarWinds Query Language statement — set swql (required). Optionally set parameters (a map bound in the query as @ParamName). Outputs size plus row (FETCH_ONE), rows (FETCH), or uri (STORE).

Subnets and supernets

  • ipam.subnet — ListSubnets, Get, Create, Update, Delete. Create requires address and cidr (prefix length 0–32); optional friendlyName, groupId. ListSubnets filters by optional groupId and addressFilter.
  • ipam.supernet — ListSupernets, Get, Create, Update, Delete. Create requires address and cidr; optional friendlyName.

IP nodes

ipam.ipnode — ListIpNodes, Get, Allocate, Release, Update. Allocate reserves an address through a two-phase SWIS reservation (start, then finish, cancelling automatically if the finish fails) — set either ipAddress (a specific address) or subnetId (next available in that subnet); optional dnsName, note. Release frees an address — set either ipAddress or ipNodeId. Update takes ipNodeId (required); optional dnsName and status. ListIpNodes filters by optional subnetId and status.

Groups

ipam.group — ListGroups, Get, Create, Update, Delete. Create requires friendlyName; optional parentId (omit for a top-level group). ListGroups filters by optional parentId.

DHCP scopes

ipam.dhcpscope — ListDhcpScopes and Get only (read-only). Get requires dhcpScopeId; ListDhcpScopes filters by optional subnetId.

Triggers

ipam.IpAllocationTrigger fires when IP nodes change status. It polls IPAM.IPNode, watermarking on each node's LastSync (the closest proxy Orion exposes for a status change) and emitting one execution per cycle for the oldest unprocessed change. Optionally set subnetId and statusFilter (e.g. Used, Available, Reserved), lookbackSeconds (initial detection window before a watermark exists, default 120), maxResults (default 1000, max 10000), and interval (default PT2M). Outputs ipNodeId, ipAddress, status, dnsBackward, and subnetId.

ipam.SubnetUtilizationTrigger fires when a subnet's utilization exceeds threshold (a percentage 0–100, default 80). Optionally set groupId and addressFilter, maxResults (default 1000, max 10000), and interval (default PT5M). Only the first breaching subnet per cycle fires an execution, and it fires on every cycle while any subnet stays above the threshold — deduplicate downstream if needed. Outputs subnetId, address, cidr, friendlyName, totalCount, used, available, and utilizationPercent.