NAME

WebService::Linode::DNS - Perl Interface to the Linode.com API DNS methods.

VERSION

Version 0.02

SYNOPSIS

This module provides a simple OOish interface to the Linode.com API.

Example usage:

use WebService::Linode::DNS;

my $api = new WebService::Linode::DNS(apikey => 'mmmcake');
for my $domain (@{$api->listDomains}) {
	print $domain->{domainid}, "\n";
}

METHODS

new

All methods take the same parameters as the Linode API itself does. Field names should be lower cased. All caps fields from the Linode API will be lower cased before returning the data.

Accepts a hash as an argument. apikey is the only required parameter specifying your Linode API key.

Errors mirror the perl DBI error handling method. $WebService::Linode::DNS::err and ::errstr will be populated with the last error number and string that occurred. All errors generated within the module are currently error code -1. By default, will warn on errors as well, pass a true value for fatal to die instead or nowarn to prevent the warnings.

verbose is 0-10 with 10 being the most and 0 being none

nocache disables some cacheing of domainname -> domainid

domainList

Returns a reference to an array. The array contains one entry per domain containing a reference to a hash with the data for that domain. Keys in the hash use the same names returned by the Linode API though the names have been converted to lower-case.

domainGet

Requires domainid or domain passed in as args. 'domain' is the name of the zone and will be mapped to domainid before executing the API method. Returns a reference to a hash. The hash contains the data for the domain returned by the Linode API with the keys lower cased.

getDomainIDbyName

Returns the ID for a domain given the name.

domainSave

Requires domainid, use 0 to create a domain.

domainUpdate

Requires domainid, grabs current data, overwrites passed values then calls domainSave for you.

domainDelete

Requires domainid, deletes the domain

domainResourceList

Requires domainid or domain passed in as args. 'domain' is the name of the zone and will be mapped to domainid before executing the API method. Returns a reference to an array. The array contains one entry per domain containing a reference to a hash with the data for that domain. Keys in the hash use the same names returned by the Linode API though the names have been converted to lower-case.

domainResourceGet

Requires domainid and resourceid. Returns a reference to a hash. The hash contains the data for the resource record returned by the Linode API with the keys lower cased.

getResourceIDbyName

Takes a record name and domainid or domain and returns the resourceid

domainResourceSave

Requires domainid and resourceid. Use 0 for resourceid to create.

domainResourceUpdate

Requires resourceid, grabs current data, overwrites passed values then calls domainResourceSave for you.

domainResourceDelete

Requires resourceid, deletes the resource record.

AUTHOR

Michael Greb, <mgreb@linode.com>

BUGS

This module does not yet support the Linode API batch method, patches welcome.

Please report any bugs or feature requests to bug-webservice-linode at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WebService-Linode. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc WebService::Linode::DNS

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Linode, LLC, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.