Many leaf nodes can have a finite set of values.
For example, the value of ethernet speed can be only 10, 100, 2500, 10000, or auto.
The IKE group for an IPsec peer can be only a name of an IKE group that is already configured.
If something requires an interface to listen on, it can only be one of the interfaces that exist on the system.
Old-style templates support allowed: tag that takes a shell command to output the list of possible values.
The new syntax is proposed:
<properties> <completionHelp> <list>10 100 1000 2500 10000 auto</list> <path>vpn ipsec ike-group</path> <script>/usr/lib/vyos/list-interfaces</script> </completionHelp> </properties>
A completionHelp tag can have any or all of list/path/script to account for cases when a dynamic list can be supplemented by magic values such as "any".