phpIPAM VRFs
Tasks for managing phpIPAM VRFs (Virtual Routing and Forwarding instances).
Interact with a self-hosted phpIPAM instance to manage IP Address Management (IPAM) resources: sections, subnets, IP addresses, VLANs, and VRFs.
Manage IP Address Management resources — sections, subnets, IP addresses, VLANs, and VRFs — in a self-hosted phpIPAM instance from Kestra flows.
All tasks and the trigger require baseUrl (the phpIPAM root URL, e.g. https://ipam.example.com), appId (the API application identifier configured under Administration → API), and auth — all required. Provide exactly one authentication mode under auth:
appToken — a static App token generated in phpIPAM (sent as the token header), orusername + password — credentials used to obtain a per-run session token.Supplying both modes, or neither, raises a validation error. Optionally set insecureTls (default false; set to true to trust self-signed certificates — development/internal use only). Store secrets in secrets and apply connection properties globally with plugin defaults.
Tasks are grouped by resource under ipam.*. Two conventions apply across them:
Get, Update, and Delete take the resource's own ID (sectionId, subnetId, addressId, vlanId, or vrfId); Update changes only the fields you supply — the editable fields mirror that resource's optional Create fields (for example, address.Update accepts hostname, resourceDescription, and owner).List tasks accept fetchType (FETCH, the default, returns all rows inline; FETCH_ONE, STORE, or NONE). Some require a parent ID to scope the listing (noted below).ipam.section — List, Get, Create, Update, Delete. Create requires name; optional resourceDescription and masterSection (the parent section ID, for a sub-section). List takes no parent ID.
ipam.subnet — List, Get, Create, Update, Delete, plus Search and FirstFree. List requires sectionId. Create requires subnet (network address), mask (CIDR prefix length), and sectionId; optional resourceDescription, vlanId, vrfId. Search finds subnets by cidr (required; IPv4 CIDR such as 192.168.1.0/24, validated) and outputs matching subnets. FirstFree requires subnetId (a master subnet) and returns the cidr of the first available child-subnet slot, erroring if none exists.
ipam.address — List, Get, Create, Update, Delete, plus FirstFree. List requires subnetId. Create requires subnetId and ip; optional hostname, resourceDescription, owner. FirstFree requires subnetId and returns the first unallocated ip in that subnet, erroring if the subnet is full — combine with Create to reserve the next available address.
ipam.vlan — List, Get, Create, Update, Delete. Create requires name and number (the 802.1Q tag, 1–4094); optional resourceDescription.
ipam.vrf — List, Get, Create, Update, Delete. Create requires name; optional rd (a BGP Route Distinguisher in ASN: nn form, e.g. 65000: 1) and resourceDescription.
ipam.address.NewAddressTrigger fires when new IP addresses appear in a subnet — set subnetId (required). Optionally set interval (default PT5M). Each poll lists the subnet's addresses and fires one execution per newly detected address (deduplicated by address id via the namespace KV store); when several new addresses appear in one cycle, each fires on a successive poll. Outputs addressId, ip, hostname, and subnetId.