NAME

DNS::NIOS - Perl binding for NIOS

VERSION

version 0.004

SYNOPSIS

# Read below for a list of options
my $n = NIOS->new(
    username  => "username",
    password  => "password",
    wapi_addr => "10.0.0.1",
);


$x = $n->get(
    path => 'record:a',
    params => {
        _paging           => 1,
        _max_results      => 1,
        _return_as_object => 1
    }
);
say $x->content->{result}[0]->{_ref};

DESCRIPTION

Perl bindings for https://www.infoblox.com/company/why-infoblox/nios-platform/

Normal usage

Normally, you will add some traits to the client, primarily DNS::NIOS::Traits::ApiMethods since it provides methods for some endpoints.

Minimal usage

Without any traits, DNS::NIOS provides access to all API endpoints using the methods described below.

CONSTRUCTOR

new

The following attributes are required at construction time:

  • username

    Configures the username to use to authenticate the connection to the remote instance of NIOS.

  • password

    Specifies the password to use to authenticate the connection to the remote instance of NIOS.

  • wapi_addr

    DNS hostname or address for connecting to the remote instance of NIOS WAPI.

my $n = NIOS->new(
    username  => "username",
    password  => "password",
    wapi_addr => "10.0.0.1",
);

Optional attributes:

  • insecure

    Enable or disable verifying SSL certificates when scheme is https. Default is false.

  • scheme

    Default is https.

  • timeout

    The amount of time before to wait before receiving a response. Default is 10.

  • wapi_version

    Specifies the version of WAPI to use. Default is v2.7.

  • debug

  • traits

    List of traits to apply, see DNS::NIOS::Traits.

METHODS

  • All methods require a path parameter that can be either a resource type (eg: "record:a") or a WAPI Object reference.

  • All methods return a DNS::NIOS::Response object.

create

# Create a new A record:
my $x = $n->create(
    path => "record:a",
    payload => {
        name     => "rhds.ext.home",
        ipv4addr => "10.0.0.1",
        extattrs => {
            "Tenant ID"       => { value => "home" },
            "CMP Type"        => { value => "OpenStack" },
            "Cloud API Owned" => { value => "True" }
        }
    }
);

delete

# Delete a WAPI Object Reference
$x = $n->delete(path => $object_ref);

get

# List all A records with:
#   pagination
#   limiting results to 1
#   returning response as an object
$x = $n->get(
    path   => 'record:a',
    params => {
        _paging           => 1,
        _max_results      => 1,
        _return_as_object => 1
    }
);

update

# Update a WAPI Object Reference
$x = $n->update(
    path    => $object_ref,
    payload => {
      name => "updated_name"
    }
);

AUTHOR

Christian Segundo <ssmn@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2021 by Christian Segundo.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)