Module infoblox

  • License: Inmanta EULA

  • Version: 0.1.4

Typedefs

typedef infoblox::ip_reservation_comment
  • Base type string

  • Type constraint (std::length(self) <= 256)

Entities

entity infoblox::CNAME

Parents: infoblox::InfobloxResource

DNS CNAME record (Infoblox WAPI record:cname).

This entity is static: both the alias name and the canonical target must be specified explicitly. Any logic that decides which names should exist (for example, naming conventions or service-based aliases) should be handled outside of this entity and passed in as values.

Fields:

cname : Alias / owner name (FQDN). This is the name clients query. canonical_name : Target / canonical FQDN the alias points to. dns_view : DNS view (“default” by default). comment : Optional description / audit comment. extattrs : Optional Infoblox extensible attributes.

attribute string canonical_name
attribute string cname
attribute string dns_view='default'
attribute string comment=''
attribute dict extattrs={}

The following implements statements select implementations for this entity:

entity infoblox::DhcpRange

Parents: infoblox::InfobloxResource

DHCP range (Infoblox WAPI range).

A range defines a contiguous block of IPv4 addresses within a network that the DHCP server is allowed to hand out dynamically.

This entity is static: start_addr and end_addr must be set explicitly. Any logic that computes the range boundaries from an allocated subnet should be handled by a higher-level service or plugin.

Fields:

range_index : Stable unique identifier for this range. network : Network this range belongs to. start_addr : First address of the range (inclusive). end_addr : Last address of the range (inclusive). network_view : Infoblox network view (derived from the related Network). comment : Optional description. disabled : When true, the DHCP range is administratively disabled. extattrs : Optional Infoblox extensible attributes.

attribute string range_index
attribute std::ipv4_address start_addr
attribute std::ipv4_address end_addr
attribute string comment=''
attribute bool disabled=false
attribute dict extattrs={}
relation infoblox::Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::HostRecord

Parents: infoblox::InfobloxResource

IPv4 host record (Infoblox WAPI record:host).

A host record combines a DNS A record with an optional DHCP reservation into a single Infoblox object. This makes it an alternative to using separate fixedaddress + record:a objects.

This entity is static: the ip field must always be set to the reserved address. Any “next available IP” behaviour should be handled by a higher-level allocator plugin that computes the address and sets ip before this entity is instantiated.

Fields:

network : Network this record belongs to. fqdn : Fully qualified domain name of the host. ip : IPv4 address to associate with the host. mac : Optional MAC address of the client. dns_view : DNS view for the record (“default” by default). comment : Optional description. disabled : When true, the host record is disabled. configure_for_dhcp : When true, enables DHCP for the associated address

(requires mac to be set).

extattrs : Optional Infoblox extensible attributes.

attribute string fqdn
attribute std::ipv4_address ip
attribute string? mac=null
attribute string dns_view='default'
attribute string comment=''
attribute bool disabled=false
attribute bool configure_for_dhcp=false
attribute dict extattrs={}
relation infoblox::Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::InfobloxResource

Parents: std::PurgeableResource, std::ManagedResource

Base class for all Infoblox-managed resources.

All subclasses:
  • Are tied to exactly one Provider.

  • Inherit send_event=true so dependent resources can react to changes.

attribute bool send_event=true
relation infoblox::Provider provider [1]

The following implementations are defined for this entity:

entity infoblox::IpReservation

Parents: infoblox::InfobloxResource

IPv4 reservation (Infoblox WAPI fixedaddress).

This entity is static: the ip field must always be set to the reserved address. Any “next available IP” behaviour should be handled by a higher-level allocator plugin that computes the address and sets ip before this entity is instantiated.

Fields:

network : Network this reservation belongs to. name : Optional name for the ip reservation. ip : IPv4 address to reserve. mac : Optional MAC address of the client. match_client : How Infoblox matches the client identifier

(e.g. “RESERVED”, “MAC_ADDRESS”, “CLIENT_ID”).

comment : Optional description, at most 256 characters. disabled : When true, the reservation is disabled. extattrs : Optional Infoblox extensible attributes.

attribute string? name=null
attribute std::ipv4_address ip
attribute string? mac=null
attribute string match_client='RESERVED'
attribute infoblox::ip_reservation_comment comment=''
attribute bool disabled=false
attribute dict extattrs={}
relation infoblox::Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::Ipv6DhcpRange

Parents: infoblox::InfobloxResource

DHCPv6 range (Infoblox WAPI ipv6range).

A range defines a contiguous block of IPv6 addresses within an IPv6 network that the DHCPv6 server is allowed to hand out dynamically.

This entity is static: start_addr and end_addr must be set explicitly. Any logic that computes the range boundaries from an allocated subnet should be handled by a higher-level service or plugin.

Fields:

range_index : Stable unique identifier for this DHCPv6 range. network : Ipv6Network this range belongs to. start_addr : First address of the range (inclusive). end_addr : Last address of the range (inclusive). network_view : Infoblox network view (derived from the related Ipv6Network). comment : Optional description. disabled : When true, the DHCPv6 range is administratively disabled. extattrs : Optional Infoblox extensible attributes.

attribute string range_index
attribute std::ipv6_address start_addr
attribute std::ipv6_address end_addr
attribute string comment=''
attribute bool disabled=false
attribute dict extattrs={}
relation infoblox::Ipv6Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::Ipv6HostRecord

Parents: infoblox::InfobloxResource

IPv6 host record (Infoblox WAPI record:host).

A host record combines a DNS AAAA record with an optional DHCPv6 reservation into a single Infoblox object. This makes it an alternative to using separate ipv6fixedaddress + record:aaaa objects.

This entity is static: the ip field must always be set to the reserved address. Any “next available IP” behaviour should be handled by a higher-level allocator plugin that computes the address and sets ip before this entity is instantiated.

Fields:

network : IPv6 Network this record belongs to. fqdn : Fully qualified domain name of the host. ip : IPv6 address to associate with the host. duid : Optional DHCPv6 DUID for the client. dns_view : DNS view for the record (“default” by default). comment : Optional description. disabled : When true, the host record is disabled. configure_for_dhcp : When true, enables DHCP for the associated address

(requires duid to be set).

extattrs : Optional Infoblox extensible attributes.

attribute string fqdn
attribute std::ipv6_address ip
attribute string? duid=null
attribute string dns_view='default'
attribute string comment=''
attribute bool disabled=false
attribute bool configure_for_dhcp=false
attribute dict extattrs={}
relation infoblox::Ipv6Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::Ipv6Network

Parents: infoblox::InfobloxResource

IPv6 network (Infoblox WAPI ipv6network).

This entity is purely static: the cidr must always be set to the desired network. Any “next available network” logic should be handled by a higher-level service or allocator plugin that computes the CIDR up front and passes it into this entity.

Fields:

cidr : IPv6 network. network_view : Infoblox network view (“default” by default). comment : Optional description. extattrs : Optional Infoblox extensible attributes.

attribute std::ipv6_network cidr
attribute string network_view='default'
attribute string comment=''
attribute dict extattrs={}

The following implements statements select implementations for this entity:

entity infoblox::Ipv6Reservation

Parents: infoblox::InfobloxResource

IPv6 reservation (Infoblox WAPI ipv6fixedaddress).

This entity is static: the ip field must always be set to the reserved address. Any “next available IP” behaviour should be handled by a higher-level allocator plugin that computes the address and sets ip before this entity is instantiated.

Fields:

network : Network this reservation belongs to. name : Optional name for the ip reservation. ip : IPv6 address to reserve. duid : DHCPv6 client DUID tied to this reservation. comment : Optional description. disabled : When true, the reservation is disabled. extattrs : Optional Infoblox extensible attributes.

attribute string? name=null
attribute std::ipv6_address ip
attribute string duid
attribute string comment=''
attribute bool disabled=false
attribute dict extattrs={}
relation infoblox::Ipv6Network network [1]

The following implements statements select implementations for this entity:

entity infoblox::Network

Parents: infoblox::InfobloxResource

IPv4 network (Infoblox WAPI network).

This entity is purely static: the cidr must always be set to the desired network. Any “next available network” logic should be handled by a higher-level service or allocator plugin that computes the CIDR up front and passes it into this entity.

Fields:

cidr : IPv4 network. network_view : Infoblox network view (“default” by default). comment : Optional description. extattrs : Optional Infoblox extensible attributes.

attribute std::ipv4_network cidr
attribute string network_view='default'
attribute string comment=''
attribute dict extattrs={}

The following implements statements select implementations for this entity:

entity infoblox::Provider

Parents: std::Entity

Infoblox NIOS WAPI connection configuration.

Fields:

name : Logical name of this provider. wapi_url : Full WAPI base URL without trailing slash,

username : HTTP basic auth username. password : HTTP basic auth password. wapi_version : WAPI version string, e.g. “v2.13.1”. verify_ssl : Verify TLS certificate. auto_agent : When true, create a local agent for this provider.

attribute string name
attribute string wapi_url
attribute string username
attribute string password
attribute string wapi_version='v2.13.1'
attribute bool verify_ssl=true
attribute bool auto_agent=true

The following implements statements select implementations for this entity:

Implementations

implementation infoblox::providerRequire

Resources

class infoblox.cname.CNAMEResource

Exported resource for an Infoblox DNS CNAME record (record:cname).

Fields (mirroring the DSL entity):
  • cname : Alias / owner name (FQDN).

  • canonical_name : Target / canonical FQDN.

  • dns_view : DNS view in which the record exists.

  • comment : Optional description or audit comment.

  • extattrs : Optional Infoblox extensible attributes.

class infoblox.dhcp_range.DhcpRangeResource

Exported resource for the infoblox::DhcpRange entity.

This represents an Infoblox IPv4 range object – a contiguous block of IPv4 addresses within a network that the DHCP server may assign.

Fields (mirroring the DSL entity + derived view):

  • range_index : Stable unique identifier.

  • start_addr : First address of the range (inclusive).

  • end_addr : Last address of the range (inclusive).

  • network_cidr : IPv4 network CIDR (derived from the related Network).

  • network_view : Infoblox network view (derived from the related Network).

  • comment : Optional description.

  • disabled : When true, the DHCP range is administratively disabled.

  • extattrs : Optional Infoblox extensible attributes.

class infoblox.host_record.HostRecordResource

Exported resource for the infoblox::HostRecord entity.

This represents an Infoblox IPv4 record:host object.

Fields (mirroring the DSL entity + derived view):
  • fqdn : Fully qualified domain name of the host.

  • ip : IPv4 address associated with the host.

  • mac : Optional MAC address of the client.

  • dns_view : DNS view for the record.

  • comment : Optional description.

  • disabled : When true, the host record is disabled.

  • configure_for_dhcp : When true, enables DHCP for the associated address.

  • extattrs : Optional Infoblox extensible attributes.

  • network_view : Infoblox network view (derived from the related Network).

class infoblox.ip_reservation.IpReservationResource

Exported resource for the infoblox::IpReservation entity.

This represents an Infoblox IPv4 fixedaddress object.

Fields (mirroring the DSL entity + derived view):
  • ip : IPv4 address to reserve.

  • mac : Optional MAC address of the client.

  • match_client : Client matching mode (“RESERVED”, “MAC_ADDRESS”, …).

  • comment : Optional description.

  • disabled : When true, the reservation is disabled.

  • extattrs : Optional Infoblox extensible attributes.

  • network_view : Infoblox network view (derived from the related Network).

class infoblox.dhcp_range.Ipv6DhcpRangeResource

Exported resource for the infoblox::Ipv6DhcpRange entity.

This represents an Infoblox IPv6 ipv6range object – a contiguous block of IPv6 addresses within an IPv6 network that the DHCPv6 server may assign.

Fields (mirroring the DSL entity + derived view):

  • range_index : Stable unique identifier.

  • start_addr : First address of the range (inclusive).

  • end_addr : Last address of the range (inclusive).

  • network_cidr : IPv6 network CIDR (derived from Ipv6Network).

  • network_view : Infoblox network view (derived from Ipv6Network).

  • comment : Optional description.

  • disabled : When true, the DHCPv6 range is administratively disabled.

  • extattrs : Optional Infoblox extensible attributes.

class infoblox.host_record.Ipv6HostRecordResource

Exported resource for the infoblox::Ipv6HostRecord entity.

This represents an Infoblox IPv6 record:host object.

Fields (mirroring the DSL entity + derived view):
  • fqdn : Fully qualified domain name of the host.

  • ip : IPv6 address associated with the host.

  • duid : Optional DHCPv6 DUID of the client.

  • dns_view : DNS view for the record.

  • comment : Optional description.

  • disabled : When true, the host record is disabled.

  • configure_for_dhcp : When true, enables DHCP for the associated address.

  • extattrs : Optional Infoblox extensible attributes.

  • network_view : Infoblox network view (derived from the related Ipv6Network).

class infoblox.network.Ipv6NetworkResource

Exported resource for the infoblox::Ipv6Network entity.

This resource is purely static: it represents a concrete IPv6 network (CIDR) in a given Infoblox network view. Any “next available network” behaviour must be implemented in a higher-level service or allocator that computes the CIDR up front and sets cidr accordingly.

Fields (mirroring the DSL entity):
  • cidr : IPv6 network CIDR (string form).

  • network_view : Infoblox network view.

  • comment : Optional description.

  • extattrs : Optional Infoblox extensible attributes.

class infoblox.ip_reservation.Ipv6ReservationResource

Exported resource for the infoblox::Ipv6Reservation entity.

This represents an Infoblox IPv6 ipv6fixedaddress object.

Fields (mirroring the DSL entity + derived view):
  • ip : IPv6 address to reserve.

  • duid : DHCPv6 client DUID.

  • comment : Optional description.

  • disabled : When true, the reservation is disabled.

  • extattrs : Optional Infoblox extensible attributes.

  • network_view : Infoblox network view (derived from the related Ipv6Network).

class infoblox.network.NetworkResource

Exported resource for the infoblox::Network entity.

This resource is purely static: it represents a concrete IPv4 network (CIDR) in a given Infoblox network view. Any “next available network” behaviour must be implemented in a higher-level service or allocator that computes the CIDR up front and sets cidr accordingly.

Fields (mirroring the DSL entity):
  • cidr : IPv4 network CIDR (string form).

  • network_view : Infoblox network view.

  • comment : Optional description.

  • extattrs : Optional Infoblox extensible attributes.

Handlers

class infoblox.cname.CNAMEHandler

Handler for Infoblox DNS CNAME records.

Behavior:
  • Ensures a CNAME alias exists in the specified DNS view.

  • Alias (cname) is the unique identity.

  • Canonical target changes are not supported in-place.

  • Prevents collisions with other DNS record types.

class infoblox.dhcp_range.DhcpRangeHandler

Handler for Infoblox IPv4 range objects.

class infoblox.dhcp_range.Ipv6DhcpRangeHandler

Handler for Infoblox IPv6 ipv6range objects.

class infoblox.host_record.HostRecordHandler

Handler for IPv4 Infoblox record:host objects.

class infoblox.host_record.Ipv6HostRecordHandler

Handler for IPv6 Infoblox record:host objects.

class infoblox.ip_reservation.IpReservationHandler

Handler for Infoblox fixedaddress objects (IPv4 reservations).

Behaviour:
  • Ensures a fixedaddress exists for the given ip + network_view.

  • Does not perform “next available IP” logic: that must be handled by an allocator plugin that computes ip up front.

class infoblox.ip_reservation.Ipv6ReservationHandler

Handler for Infoblox ipv6fixedaddress objects (IPv6 reservations).

Behaviour:
  • Ensures an ipv6fixedaddress exists for the given ip + network_view.

  • Does not perform “next available IP” logic: that must be handled by an allocator plugin that computes ip up front.

class infoblox.network.NetworkHandler

Handler for Infoblox network / networkcontainer objects.

Behaviour:
  • Ensures a specific CIDR exists in the given view.

  • Reads either a network or a networkcontainer (to cope with Infoblox promoting parents when children are created).

  • Does not perform any allocation: CIDR must be provided.

class infoblox.network.Ipv6NetworkHandler

Handler for Infoblox ipv6network / ipv6networkcontainer objects.

Behaviour:
  • Ensures a specific IPv6 CIDR exists in the given view.

  • Reads either an ipv6network or an ipv6networkcontainer (to cope with Infoblox promoting parents when children are created).

  • Does not perform any allocation: CIDR must be provided.