NAME

WWW::DreamHost::API - Perl interface to DreamHost Web Panel API

VERSION

1.03

SYNOPSIS

     my $key = '6SHU5P2HLDAYECUM';
     my $api = new WWW::DreamHost::API($key);
     my $res = $api->command('api-list_accessible_cmds');
     print Data::Dumper->Dump([$res]);

DESCRIPTION

WWW::DreamHost::API provides a simple Perl interface to DreamHost Web Panel API.

Read more about API commands at
<http://wiki.dreamhost.com/Application_programming_interface>

METHODS
new ( $key )
Creates WWW::DreamHost::API object

uuid ( )
Returns UUID. Probably actually unique (randomly based on key and run time). Don't worry, if it's not, because it's reinitializing in case of failure (though I cannot imagine how it can happen).

reinit ( )
If unique check fails, attempt to re-initialize. You don't have to call it yourself.

command ( $cmd, [ $param => $value, ]+ ) Execute a command.

To get a list of availible commands, use something like that:

        my $res = $api->command('api-list_accessible_cmds');
        if ($res->{'success'}) {
            my @commands = @{ $res->{'data'} };
        }

Returns a hash reference with (usually) 'result' and 'data' keys. 'result' can be 'success' or 'error', and 'data' depends on command executed.

See <http://wiki.dreamhost.com/Application_programming_interface> for more details.

CONFIGURATION AND ENVIRONMENT

WWW::DreamHost::API is based on libwww-perl which uses Crypt::SSLeay or IO::Socket::SSL, with all consequences: HTTPS_proxy environment variable and so on. See LWP documentation unless you're already familiar with it.

DEPENDENCIES

LWP::UserAgent Crypt::SSLeay Data::UUID LWP::protocol::https

INCOMPATIBILITIES

Not known.

BUGS AND LIMITATIONS

Not known, but test suite MAY fail if DreamHost adds some other commands or change their behaviour. If you are using CPAN::Reporter in your service, I'll know about it. Consider installing it, as it really helps authors to know about possible bugs. See <http://wiki.cpantesters.org/wiki/QuickStart>.

AUTHOR

Serguei Trouchelle stro@cpan.org

LICENSE AND COPYRIGHT

This module is distributed under the same terms as Perl itself.

Copyright (c) 2009-2011 Serguei Trouchelle