Infoblox::DNS::Record::AAAA - DNS AAAA record object.


NAME

Infoblox::DNS::Record::AAAA - DNS AAAA record object.


DESCRIPTION

An AAAA record, also known as a quad A address record, maps a domain name to an IPv6 address. To define a specific name-to-address mapping, add an AAAA record to a previously defined authoritative forward-mapping zone.

Note that you must specify only one view for the attribute "views".


CONSTRUCTOR

 my $bindaaaa = Infoblox::DNS::Record::AAAA->new (
     ipv6addr              => $ipv6addr,                                                              # Required
     name                  => $fqdn,                                                                  # Required
     comment               => $string,                                                                # Optional / Default is empty
     extattrs              => { $string => $extattr, ... },                                           # Optional / Default is undefined
     extensible_attributes => { $string => $string | $num, $string => [ $string | $num, ... ], ... }, # Optional / Default is undefined
     disable               => "true" | "false"                                                        # Optional / Default "false"
     ttl                   => $num | undef,                                                           # Optional / Default is undefined
     views                 => [$View1],                                                               # Optional / Default is "default" view
     creator               => "DYNAMIC" | "STATIC",                                                   # Optional / Default is "STATIC"
     ddns_protected        => "true" | "false",                                                       # Optional / Default is "false"
     ddns_principal        => $string,                                                                # Optional / Default is undefined
     forbid_reclamation    => "true" | "false",                                                       # Optional / Default is "false"
 );

You cannot set both extattrs and extensible_attributes attributes at the same time.


SESSION METHODS

This section describes all the methods in Infoblox::Session module that you can apply to a DNS AAAA record object.

Infoblox::Session->add( )

Use this method to add a AAAA record object to the Infoblox appliance. See Infoblox::Session->add() for parameters and return values.

Example
 #Construct an object
 my $bindaaaa = Infoblox::DNS::Record::AAAA->new(
     name     => "aaaa1.domain.com",
     comment  => "add a DNS AAAA aaaa1.domain.com",
     ipv6addr => "aaaa:1111:bbbb:2222:cccc:3333:dddd:4444",
     disable  => "true",
     ttl      => "33",
     views    => [$view1]  );
 # Submit for addition
 my $response = $session->add( $bindaaaa );

Infoblox::Session->get( )

Use this method to retrieve all the matching objects from the Infoblox appliance. See Infoblox::Session->get() for parameters and return values.

Key References
 Apply the following attributes to get a specific DNS AAAA object:
 name                               - Optional. A host name in string format.
 view                               - Optional. The DNS view in which the host record is located. By default, all DNS views are searched. But if you omit this attribute and specify a zone, the appliance searches the 'default' view only.
 zone                               - Optional. A zone name in FQDN format.
 ipv6addr                           - Optional. The address of the AAAA record.
 creator                            - Optional. Record creator.
 ddns_principal                     - Optional. GSS-TSIG principal that owns the record.
 reclaimable                        - Optional. The flag that indicates whether the record is reclaimable or not.
 extattrs                           - Optional. A hash reference containing extensible attributes.
 extensible_attributes              - Optional. A hash reference containing extensible attributes.
 discovered_duid                    - Optional. Discovered DHCPv6 UID.
 discovered_name                    - Optional. Discovered name.
 discoverer                         - Optional. Discoverer name.
 first_discovered                   - Optional. Time of the first discovery.
 last_discovered                    - Optional. Time of the last discovery.
 netbios                            - Optional. Discovered NetBIOS name.
 network_component_description      - Optional. Discovered network component description.
 network_component_ip               - Optional. Discovered network component IP address.
 network_component_name             - Optional. Discovered network component name.
 network_component_port_description - Optional. Discovered network component port description.
 network_component_port_name        - Optional. Discovered network component port name.
 network_component_port_number      - Optional. Discovered network component port number.
 network_component_type             - Optional. Discovered network component type.
 os                                 - Optional. Discovered OS.
 port_duplex                        - Optional. Discovered port duplex settings.
 port_link_status                   - Optional. Discovered port link status.
 port_speed                         - Optional. Discovered port speed settings.
 port_status                        - Optional. Discovered port status settings.
 port_vlan_description              - Optional. Discovered port VLAN description.
 port_vlan_name                     - Optional. Discovered port VLAN name.
 port_vlan_number                   - Optional. Discovered port VLAN number.
Example
 my @retrieved_objs = $session->get(
                       object => "Infoblox::DNS::Record::AAAA",
                       name   => "aaaa1.domain.com",
                       view   => "default" );
 # get all the DNS AAAA records in the "domain.com" zone of the default view
 my @retrieved_objs = $session->get(
                       object => "Infoblox::DNS::Record::AAAA",
                       zone   => "domain.com",
                       view   => "default" );
 #get all DNS AAAA recods with the extensible attribute 'Site'
 my @retrieved_objs = $session->get(
    object => "Infoblox::DNS::Record::AAAA",
    extensible_attributes => { 'Site' => 'Santa Clara' });

Infoblox::Session->modify( )

Use this method to modify a AAAA record object in the Infoblox appliance. See Infoblox::Session->modify() for parameters and return values.

Example
 # Use method to modify the comment.
 $bindaaaa->comment("this is a modified comment");
 # Submit modification
 my $response = $session->modify( $bindaaaa );

Infoblox::Session->remove( )

Use this method to remove a AAAA record object from the Infoblox appliance. See Infoblox::Session->remove() for parameters and return values.

To remove a specifc object, first use get() or search() to retrieve the specific AAAA record object, and then submit this object for removal.

Key References
 remove_options - Optional. A hash reference containing the following attributes:
 +---------------------------------------------------------------------------------------------+
 | remove_associated_ptr - Optional. Boolean flag that indicates whether the associated PTR    |
 |                         record should be removed while deleting the specified AAAA record.  |
 +---------------------------------------------------------------------------------------------+
Example
 # Get the objects with the same name
 my @retrieved_objs = $session->get(
     object => "Infoblox::DNS::Record::AAAA",
     name   => "aaaa1.domain.com",
     view   => "default" );
 # Find the desired object from the retrieved list.
 my $desired_aaaa = $retrieved_objs[0];
 # Submit for removal
 my $response = $session->remove(
     $desired_aaaa,
     remove_options => {'remove_associated_ptr' => 'true'} );

Infoblox::Session->search( )

Use this method to search for DNS AAAA record objects in the Infoblox appliance. See Infoblox::Session->search() for parameters and return values.

Key References
 Apply the following attributes, to search for a DNS AAAA record object:
  name                                  - Optional. A host name in string format (regular expression).
  view                                  - Optional. The DNS view in which the AAAA record is located. By default, all DNS views are searched. But if you omit this attribute and specify a zone, the appliance searches the 'default' view only.
  zone                                  - Optional. A zone name in FQDN format.
  comment                               - Optional. Comment in string format (regular expression).
  creator                               - Optional. Record creator.
  ddns_principal                        - Optional. GSS-TSIG principal that owns the record.
  reclaimable                           - Optional. The flag that indicates whether the record is reclaimable or not.
  ipv6addr                              - Optional. The address of the AAAA record (regular expression).
  discovered_duid                       - Optional. Discovered DHCPv6 UID (exact search only).
  discovered_name                       - Optional. Discovered name(regex).
  discoverer                            - Optional. Discoverer name(regex).
  first_discovered                      - Optional. Time of the first discovery (in ISO format, exact search only).
  last_discovered                       - Optional. Time of the last discovery (in ISO format, exact search only).
  netbios                               - Optional. Discovered NetBIOS name(regex).
  network_component_description         - Optional. Discovered network component description(regex).
  network_component_ip                  - Optional. Discovered network component IP address(regex).
  network_component_name                - Optional. Discovered network component name(regex).
  network_component_port_description    - Optional. Discovered network component port description(regex).
  network_component_port_name           - Optional. Discovered network component port name(regex).
  network_component_port_number         - Optional. Discovered network component port number (exact search only).
  network_component_type                - Optional. Discovered network component type(regex).
  os                                    - Optional. Discovered OS (regex).
  port_duplex                           - Optional. Discovered port duplex settings (exact search only).
  port_link_status                      - Optional. Discovered port link status (exact search only).
  port_speed                            - Optional. Discovered port speed settings (exact search only).
  port_status                           - Optional. Discovered port status settings (exact search only).
  port_vlan_description                 - Optional. Discovered port VLAN description(regex).
  port_vlan_name                        - Optional. Discovered port VLAN name(regex).
  port_vlan_number                      - Optional. Discovered port VLAN number(exact search only).
  extattrs                              - Optional. A hash reference containing extensible attributes.
  extensible_attributes                 - Optional. A hash reference containing extensible attributes.

For more information about searching extensible attributes, see Infoblox::Grid::ExtensibleAttributeDef/Searching Extensible Attributes.

Example
 # search for all DNS AAAA objects that match "domain.com" in the default DNS view
 my @retrieved_objs = $session->search(
     object  => "Infoblox::DNS::Record::AAAA",
     name    => 'domain\.com',
     view    => "default",
     comment => ".*modified comment" );
 # search for all DNS AAAA records in zone "domain.com" of default view
 my @retrieved_objs = $session->search(
                       object => "Infoblox::DNS::Record::AAAA",
                       zone   => "domain.com",
                       view   => "default" );
 # search all DNS AAAA recods with the extensible attribute 'Site'
 my @retrieved_objs = $session->search(
    object => "Infoblox::DNS::Record::AAAA",
    extensible_attributes => { 'Site' => 'Santa Clara' });


METHODS

This section describes all the methods that you can use to configure and retrieve the attribute values of an AAAA record

comment( )

Use this method to set or retrieve the descriptive comment.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Parameter

Desired comment in string format with a maximum of 256 bytes.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get comment
 my $comment = $bindaaaa->comment();
 #Modify comment
 $bindaaaa->comment("Modifying the DNS AAAA comment");

cloud_info( )

Use this method to retrieve cloud API related information for the Infoblox::DNS::Record::AAAA object.

Parameter

None

Returns

The method returns the attribute value.

Example
 # Get cloud_info
 my $cloud_info = $object->cloud_info();

creator( )

Use this method to set or retrieve the record creator.

Note that changing creator from or to 'SYSTEM' value is not allowed.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Paramter

The valid values are 'STATIC' and 'DYNAMIC'. The default value is 'STATIC'.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get creator value
 my $creator = $object->creator();
 #Modify creator value
 $object->creator("DYNAMIC");

creation_time( )

Use this method to retrieve the creation time for the record. This is a read-only attribute.

Parameter

None

Returns

The valid return value is a number of seconds that have elapsed since January 1st, 1970 UTC.

Example
 #Get creation_time value
 my $creation_time = $object->creation_time();

ddns_principal( )

Use this method to set or retrive the GSS-TSIG principal that owns this record.

Note that you cannot set ddns_principal for 'STATIC' and 'SYSTEM' records.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Paramter

The GSS-TSIG principal FQDN (Fully Qualified Domain Name) format. The FQDN consists of the hostname followed by the domain name (example: abc.com). A hostname can have a maximum of 256 characters.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get ddns_principal value
 my $ddns_principal = $object->ddns_principal();
 #Modify ddns_principal value
 $object->ddns_principal('foo.com');

ddns_protected( )

Use this method to set or retrieve the flag that indicates whether DDNS updates for this record are allowed or not.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Parameter

Specify 'true' to protect record from DDNS updates and 'false' to allow DDNS updates for the specified record.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get ddns_protected value
 my $ddns_protected = $object->ddns_protected();
 #Modify ddns_protected value
 $object->ddns_protected('true');

disable( )

Use this method to set or retrieve the disable flag of a DNS record.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

The default value for this field is false. The DNS record is enabled.

Parameter

Specify "true" to set the disable flag or "false" to deactivate/unset it.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get disable
 my $disable = $bindaaaa->disable();
 #Modify disable
 $bindaaaa->disable("true");

discovered_data( )

Use this method to retrieve the discovered data of an AAAA Record object. This is a read-only attribute.

Omit the parameter to retrieve the attribute value.

Parameter

None

Returns

The valid return value is an Infoblox::Grid::Discovery::Data object.

Example
 #Get discovered_data value
 my $discovered_data = $object->discovered_data();

discovered_duid( )

Use this method to retrieve the discovered DHCPv6 UID (DUID) of an AAAA record object.

Parameter

none

Returns

The method returns the discovered name.

Example
 #Get discovered_duid
 my $discovered_duid = $bind_aaaa->discovered_duid();

discovered_name( )

Use this method to retrieve the discovered name of an AAAA Record object.

Parameter

none

Returns

The method returns the discovered name.

Example
 #Get discovered_name
 my $discovered_name = $bindaaa->discovered_name();

discoverer( )

Use this method to retrieve the discoverer of an AAAA Record object.

Parameter

none

Returns

The method returns the discoverer value.

Example
 #Get discoverer
 my $discoverer = $bindaaa->discoverer();

dns_name( )

Use this method to retrieve the host name in punycode format. This is a read-only attribute.

Parameter

None

Returns

The method returns the attribute value.

Example
 # Get attribute value
 my $value = $bindaaaa->dns_name();

extattrs( )

Use this method to set or retrieve the extensible attributes associated with a DNS AAAA record object.

Parameter

Valid value is a hash reference containing the names of extensible attributes and their associated values ( Infoblox::Grid::Extattr objects ).

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get extattrs
 my $ref_extattrs = $bindaaaa->extattrs();
 #Modify extattrs
 $bindaaaa->extattrs({ 'Site' => $extattr1, 'Administrator' => $extattr2 });

extensible_attributes( )

Use this method to set or retrieve the extensible attributes associated with a DNS AAAA record.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Parameter

For valid values for extensible attributes, see Infoblox::Grid::ExtensibleAttributeDef/Extensible Attribute Values.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get extensible attributes
 my $ref_extensible_attributes = $bindaaaa->extensible_attributes();
 #Modify extensible attributes
 $bindaaaa->extensible_attributes({ 'Site' => 'Santa Clara', 'Administrator' => [ 'Peter', 'Tom' ] });

first_discovered( )

Use this method to retrieve the date and time that the AAAA Record object was first discovered.

Parameter

none

Returns

The method returns the date and time when the AAAA Record object was first discovered.

Example
 #Get first_discovered
 my $first_discovered = $bindaaa->first_discovered();

forbid_reclamation( )

Use this method to set or retrieve the flag that indicates whether the reclamation is allowed for the record or not.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Parameter

Specify 'true' to forbid reclamation for the record and 'false' to allow it. The default value is 'false'.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get forbid_reclamation
 my $forbid_reclamation = $object->forbid_reclamation();
 #Modify forbid_reclamation
 $object->forbid_reclamation('true');

ipv6addr( )

Use this method to set or retrieve the the IPv6 address.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

Parameter

An IPv6 address is a 128-bit number in colon hexadecimal notation. It consists of eight 16-bit groups of hexadecimal digits separated by colons (example: 12ab:0000:0000:0123:4567:89ab:0000:cdef).

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get ipv6addr
 my ipv6addr = $bindaaaa->ipv6addr();
 #Modify ipv6addr
 $bindaaaa->ipv6addr("aaaa:1111:bbbb:2222:cccc:3333:dddd:5555");

last_discovered( )

Use this method to retrieve the time this object was last seen by a discovery job.

This field is blank by default.

Parameter

N/A

Returns

The method returns the attribute value.

Example
 #Get last_discovered
 my $last_discovered = $bindaaa->last_discovered();

last_queried( )

Use this method to retrieve the time when the associated record was last queried. This is a read-only attribute.

Parameter

None

Returns

The method returns the attribute value. The number of seconds that have elapsed since January 1st, 1970 UTC.

Example
 #Get last_queried
 my $last_queried = $bindaaaa->last_queried();

ms_ad_user_data( )

Use this method to retrieve Microsoft Active Directory users related information. This is a read-only attribute.

Parameter

None

Returns

The valid return value is an Infoblox::Grid::MSServer::AdUser::Data object.

Example
 #Get ms_ad_user_data
 my $ms_ad_user_data = $bindaaaa->ms_ad_user_data();

name( )

Use this method to set or retrieve the host name.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

The attribute value can be in unicode format.

Parameter

Hostname in FQDN (Fully Qualified Domain Name) format. The FQDN consists of the hostname followed by the domain name (example: abc.com). A hostname can have a maximum of 256 bytes.

Infoblox also supports wildcard AAAA records. A wildcard AAAA record maps all the hostnames in a domain to a single IP address.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get name
 my $name = $bindaaaa->name();
 #Modify name
 $bindaaaa-> name("aaaa2.domain.com");

netbios( )

Use this method to retrieve the name in the NetBIOS reply that responded to a NetBIOS query.

Returns

The method returns the attribute value.

Example
 #Get NetBIOS
 my $netbios = $bindaaa->netbios();

network_component_description( )

Use this method to retrieve the description of the network device that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device description.

Example
 #Get network_component_description
 my $network_component_description = $bindaaa->network_component_description();

network_component_ip( )

Use this method to retrieve the IP address of the network device that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device IP address.

Example
 #Get network_component_ip
 my $network_component_ip = $bindaaa->network_component_ip();

network_component_name( )

Use this method to retrieve the name of the network device that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device name.

Example
 #Get network_component_name
 my $network_component_name = $bindaaa->network_component_name();

network_component_port_description( )

Use this method to retrieve the description of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port description.

Example
 #Get network_component_port_description
 my $network_component_port_description = $bindaaa->network_component_port_description();

network_component_port_name( )

Use this method to retrieve the name of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the name of the port on the network device.

Example
 #Get network_component_port_name
 my $network_component_port_name = $bindaaa->network_component_port_name();

network_component_port_number( )

Use this method to retrieve the number of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port number.

Example
 #Get network_component_port_number
 my $network_component_port_number = $bindaaa->network_component_port_number();

network_component_type( )

Use this method to retrieve the type of the network device that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device type.

Example
 #Get network_component_type
 my $network_component_type = $bindaaa->network_component_type();

os( )

Use this method to retrieve the operating system associated with this A record.

Returns

The method returns the attribute value.

Example
 #Get OS
 my $os = $bindaaa->os();

port_duplex( )

Use this method to retrieve the duplex setting of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port duplex setting. The returned value, if any, is one of the following:

  Full
  Half
Example
 #Get port_duplex
 my $port_duplex = $bindaaa->port_duplex();

port_link_status( )

Use this method to retrieve the link status of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the port link status. The returned value, if any, is one of the following:

  Connected
  Not Connected
  Unknown
Example
 #Get port_link_status
 my $port_link_status = $bindaaa->port_link_status();

port_speed( )

Use this method to retrieve the speed of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port speed value. The returned value, if any, is one of the following:

  10M
  100M
  1G
  10G
  100G
  Unknown
Example
 #Get port_speed
 my $port_speed = $bindaaa->port_speed();

port_status( )

Use this method to retrieve the status of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port status. The returned value, if any, is one of the following:

  Up
  Down
  Unknown
Example
 #Get port_status
 my $port_status = $bindaaa->port_status();

port_vlan_description( )

Use this method to retrieve the VLAN description of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the VLAN description of the network device port.

Example
 #Get port_vlan_description
 my $port_vlan_description = $bindaaa->port_vlan_description();

port_vlan_name( )

Use this method to retrieve the VLAN name of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the VLAN name of the network device port.

Example
 #Get port_vlan_name
 my $port_vlan_name = $bindaaa->port_vlan_name();

port_vlan_number ( )

Use this method to retrieve the VLAN number of the network device port that is connected to the AAAA Record object.

Parameter

none

Returns

The method returns the network device port VLAN number.

Example
 #Get port_vlan_number
 my $port_vlan_number  = $bindaaa->port_vlan_number ();

reclaimable( )

Use this method to retrieve the flag that indicates whether the record is reclaimable or not.

Parameter

None

Returns

The method returns the attribute value.

Example
 #Get reclaimable
 my $reclaimable = $object->reclaimable();

ttl( )

Use this method to set or retrieve the Time to Live (TTL) value.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

The default value is undefined which indicates that the record inherits the TTL value of the zone.

Specify a TTL value to override the TTL value at the zone level.

Parameter

A 32-bit integer (range from 0 to 4294967295) that represents the duration in seconds that the record is cached. Zero indicates that the record should not be cached.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get ttl
 my $ttl = $bindaaaa->ttl();
 #Modify ttl
 $bindaaaa->ttl(1800);
 #Un-override ttl
 $bindaaaa->ttl(undef);

views( )

Use this method to set or retrieve the view of the AAAA record.

Include the specified parameter to set the attribute value. Omit the parameter to retrieve the attribute value.

The default value is the "default" view, which means the AAAA record is located under the default view.

Parameter

Array reference of defined Infoblox::DNS::View objects.

Note that the array size must be 1.

Returns

If you specified a parameter, the method returns true when the modification succeeds, and returns false when the operation fails.

If you did not specify a parameter, the method returns the attribute value.

Example
 #Get views
 my $ref_views = $bindaaaa->views();
 #Modify views, list of Infoblox::DNS::View objects
 $bindaaaa->views([$view1]);

zone( )

Use this method to retrieve the zone name of a DNS AAAA record. This method is read-only and cannot be set.

Parameter

None

Returns

Returns the attribute value.

Example
 # Get zone
 my $zone = $bindaaaa->zone();


SAMPLE CODE

The following sample code demonstrates the different functions that can be applied to a DNAME record object, such as add, search, modify, and remove. This sample also includes error handling for the operations.

#Preparation prior to a DNS AAAA record insertion

 #PROGRAM STARTS: Include all the modules that will be used
 use strict;
 use Infoblox;
 #Create a session to the Infoblox Appliance
 my $session = Infoblox::Session->new(
     master   => "192.168.1.2", #appliance host ip
     username => "admin",     #appliance user login
     password => "infoblox"   #appliance password
 );
 unless ($session) {
    die("Construct session failed: ",
        Infoblox::status_code() . ":" . Infoblox::status_detail());
 }
 #Create the zone prior to an AAAA record insertion
 my $zone = Infoblox::DNS::Zone->new(name => "domain.com");
 unless ($zone) {
    die("Construct zone failed: ",
        Infoblox::status_code() . ":" . Infoblox::status_detail());
 }
 print "Zone object created successfully\n";
 #Verify if the zone exists
 my $object = $session->get(object => "Infoblox::DNS::Zone",
                              name => "domain.com");
 unless ($object) {
    print "Zone does not exist on server, safe to add the zone\n";
    $session->add($zone)
       or die("Add zone failed: ",
              $session->status_code() . ":" . $session->status_detail());
 }
 print "Zone added successfully\n";

#Create a DNS AAAA record

 #Construct a DNS AAAA object
 my $bindaaaa = Infoblox::DNS::Record::AAAA->new(
     name     => "aaaa1.domain.com",
     comment  => "add a DNS AAAA aaaa1.domain.com",
     ipv6addr => "aaaa:1111:bbbb:2222:cccc:3333:dddd:4444"
 );
 unless ($bindaaaa) {
    die("Construct DNS record AAAA failed: ",
        Infoblox::status_code() . ":" . Infoblox::status_detail());
 }
 print "DNS AAAA object created successfully\n";
 #Add the DNS AAAA record object to Infoblox Appliance through a session
 $session->add($bindaaaa)
     or die("Add record AAAA failed: ",
            $session->status_code() . ":" . $session->status_detail());
      print "DNS AAAA object added to server successfully\n";

#Search for a specific DNS AAAA record

 #Search all AAAA records that match "domain.com"
 my @retrieved_objs = $session->search(
     object => "Infoblox::DNS::Record::AAAA",
     name   => 'domain\.com'
 );
 my $object = $retrieved_objs[0];
 unless ($object) {
     die("Search record AAAA failed: ",
         $session->status_code() . ":" . $session->status_detail());
 }
 print "Search DNS AAAA object found at least 1 matching entry\n";
 #Search all AAAA records that start with "add" in the comment
 my @retrieved_objs = $session->search(
     object    => "Infoblox::DNS::Record::AAAA",
     comment   => "add.*",
 );
 my $object = $retrieved_objs[0];
 unless ($object) {
     die("Search record AAAA failed: ",
         $session->status_code() . ":" . $session->status_detail());
 }
 print "Search DNS AAAA object found at least 1 matching entry\n";
 #Search all AAAA records that start with "aaaa1" and end with ".com"
 my @retrieved_objs = $session->search(
     object => "Infoblox::DNS::Record::AAAA",
     name   => 'aaaa1.*\.com',
  );
 my $object = $retrieved_objs[0];
 unless ($object) {
     die("Search record AAAA failed: ",
         $session->status_code() . ":" . $session->status_detail());
 }
 print "Search DNS AAAA object using regexp found at least 1 matching entry\n";

#Get and modify a DNS AAAA record

 #Get AAAA record through the session
 my @retrieved_objs = $session->get(
     object => "Infoblox::DNS::Record::AAAA",
     name   => "aaaa1.domain.com"
 );
 my $object = $retrieved_objs[0];
 unless ($object) {
     die("Get record AAAA failed: ",
         $session->status_code() . ":" . $session->status_detail());
 }
 #Modify one of the attributes of the specified AAAA record
 $object->ipv6addr("aaaa:1111:bbbb:2222:cccc:3333:dddd:eeee");
 #Applying the changes
 $session->modify($object)
     or die("Modify record AAAA failed: ",
            $session->status_code() . ":" . $session->status_detail());
      print "DNS AAAA object modified successfully \n";

#Remove a DNS AAAA record.

 #Get AAAA record through the session
 my @retrieved_objs = $session->get(
     object   => "Infoblox::DNS::Record::AAAA",
     name     => "aaaa1.domain.com"
 );
 my $object = $retrieved_objs[0];
 unless ($object) {
     die("Get record AAAA failed: ",
         $session->status_code() . ":" . $session->status_detail());
 }
 print "Get DNS AAAA object found at least 1 matching entry\n";
 #Submit the object for removal
 $session->remove($object)
     or die("Remove record AAAA failed: ",
            $session->status_code() . ":" . $session->status_detail());
 print "DNS AAAA object removed successfully \n";
 ####PROGRAM ENDS####


AUTHOR

Infoblox Inc. http://www.infoblox.com/


SEE ALSO

Infoblox::DNS::View, Infoblox::DNS::Zone, Infoblox::Session, Infoblox::Session->get(), Infoblox::Session->search(), Infoblox::Session->add(), Infoblox::Session->remove(), Infoblox::Session->modify(), Infoblox::Grid::MSServer::AdUser::Data


COPYRIGHT

Copyright (c) 2017 Infoblox Inc.