WAPI Object Mapping¶
This table maps the Perl Infoblox::* SDK classes to NIOS WAPI object types used in the Python port.
DNS Objects¶
| Perl class | WAPI objtype | ibcli commands |
|---|---|---|
Infoblox::DNS::Zone (auth) |
zone_auth |
configure zone add, show zone |
Infoblox::DNS::Zone (forward) |
zone_forward |
configure zone add with forward_to= |
Infoblox::DNS::Zone (delegated) |
zone_delegated |
configure zone add with delegate_to= |
Infoblox::DNS::Zone (stub) |
zone_stub |
configure zone add with stub_from= |
Infoblox::DNS::Record::A |
record:a |
configure zone <z> add a |
Infoblox::DNS::Record::AAAA |
record:aaaa |
configure zone <z> add aaaa |
Infoblox::DNS::Record::CNAME |
record:cname |
configure zone <z> add cname |
Infoblox::DNS::Record::MX |
record:mx |
configure zone <z> add mx |
Infoblox::DNS::Record::TXT |
record:txt |
configure zone <z> add txt |
Infoblox::DNS::Record::PTR |
record:ptr |
configure zone <z> add ptr |
Infoblox::DNS::Record::SRV |
record:srv |
show record srv=<name> (read-only) |
Infoblox::DNS::Host |
record:host |
configure zone <z> add host |
Infoblox::DNS::View |
view |
configure view add, show views |
Infoblox::DNS::NamedACL |
nsgroup |
configure nsgroup add |
Infoblox::DNS::SharedRecordGroup |
sharedrecordgroup |
configure shared_record_group add |
Network Objects¶
| Perl class | WAPI objtype | ibcli commands |
|---|---|---|
Infoblox::DHCP::Network (IPv4) |
network |
configure network add, show network |
Infoblox::DHCP::Network (IPv6) |
ipv6network |
auto-detected from CIDR |
Infoblox::DHCP::Container (IPv4) |
networkcontainer |
configure network container add |
Infoblox::DHCP::Container (IPv6) |
ipv6networkcontainer |
auto-detected from CIDR |
Infoblox::DHCP::SharedNetwork |
sharednetwork |
configure network add shared |
Infoblox::DHCP::Range |
range |
configure network <cidr> range add |
Infoblox::DHCP::FixedAddr |
fixedaddress |
configure network <cidr> fixed add |
Infoblox::DHCP::FixedAddrTemplate |
fixedaddresstemplate |
configure template fixed add |
Infoblox::DHCP::NetworkTemplate |
networktemplate |
configure template network add |
Infoblox::DHCP::Lease |
lease |
show lease |
Infoblox::DHCP::Failover |
dhcpfailover |
configure network failover add |
Infoblox::DHCP::OptionSpace |
optionspace |
configure option_space add |
Infoblox::DHCP::OptionDef |
optiondef |
configure optiondef add |
Infoblox::DHCP::Filter::MAC |
filtermac |
configure network macfilter add |
Infoblox::DHCP::MAC |
macfilteraddress |
configure network filter <n> add macaddress |
Admin and Grid Objects¶
| Perl class | WAPI objtype | ibcli commands |
|---|---|---|
Infoblox::Grid |
grid |
show grid |
Infoblox::Grid::Member |
member |
configure grid <n> member add |
Infoblox::Grid::Member::DNS |
member:dns |
configure grid <n> member <n> dns |
Infoblox::Grid::Member::DHCP |
member:dhcp |
configure grid <n> member <n> dhcp |
Infoblox::Grid::DNS |
grid:dns |
show grid <n> dns |
Infoblox::Grid::DHCP |
grid:dhcp |
show grid <n> dhcp |
Infoblox::Admin::User |
adminuser |
configure admin user add |
Infoblox::Admin::Group |
admingroup |
configure admin group add |
Infoblox::Admin::Role |
adminrole |
configure admin role add |
Infoblox::Admin::Permission |
permission |
configure admin permission add |
Infoblox::RADIUS::User |
radius:user |
configure radius user add |
Infoblox::RADIUS::NAS |
radius:nas |
configure radius device add |
Infoblox::Grid::ExtensibleAttributeDef |
extensibleattributedef |
configure grid attribute add |
Infoblox::Grid::ScheduledTask |
scheduledtask |
show schedule, configure schedule delete |
Infoblox::Grid::RestartServiceStatus |
restartservicestatus |
restart status |
Batch requests (not currently used - NIOS /request is not transactional)¶
NIOS exposes a /request endpoint that accepts an array of sub-operations. Despite documentation claiming otherwise,
NIOS processes /request sub-operations sequentially but NOT atomically - if a later operation fails, earlier
operations that already completed are not rolled back.
ibcli does not use /request for member add + pre-provisioning. Instead it uses a sequential POST then PUT, with an
explicit DELETE rollback if the PUT fails. This gives honest failure semantics the caller can reason about.
Endpoint: POST /wapi/vX.Y/request
Body: JSON array of operation objects. Each operation supports these keys:
| Key | Description |
|---|---|
method |
HTTP verb for this operation: GET, POST, PUT, or DELETE |
object |
WAPI object type (e.g. member) or a ##STATE:name:## reference |
data |
Request body for the sub-operation |
args |
Query-string parameters for the sub-operation |
assign_state |
Map of variable names to response field paths. E.g. {"new_ref": "_ref"} captures the returned _ref into new_ref. |
enable_substitution |
Set true to enable ##STATE:name:## template resolution in object and data fields |
discard |
Set true to omit this operation's response from the overall reply (keeps the response small) |
##STATE:name:## substitution: when enable_substitution is true, any occurrence of ##STATE:name:## in the
operation's object or data is replaced at runtime with the value previously captured by assign_state. This
allows later operations to reference objects created by earlier ones without a second round-trip.
Notes¶
- IPv4 vs IPv6: The Python port auto-detects address family from the CIDR notation. IPv6 CIDRs (containing
:) route toipv6networkoripv6networkcontainer. - Zone type selection: NIOS has four separate zone WAPI types where the Perl SDK had one
Infoblox::DNS::Zoneclass. The Python port selects the correct type based on keywords (forward_to=,delegate_to=,stub_from=) or falls back through the four types in order. - The
_refpattern: All WAPI objects have a_reffield. The Python port performs a GET-by-attribute to find the ref, then issues PUT or DELETE on the ref. This mirrors the Perlget-then-mutate pattern.