Amazon-SimpleDB

 view release on metacpan or  search on metacpan

lib/Amazon/SimpleDB.pm  view on Meta::CPAN


use Amazon::SimpleDB::Domain;
use Amazon::SimpleDB::Response;

use constant SERVICE_URI          => 'http://sdb.amazonaws.com/';
use constant KEEP_ALIVE_CACHESIZE => 10;

sub new {
    my $class = shift;
    my $args  = shift || {};
    my $self  = bless $args, $class;
    croak "No aws_access_key_id"     unless $self->{aws_access_key_id};
    croak "No aws_secret_access_key" unless $self->{aws_secret_access_key};
    unless ($self->{agent}) {
        my $agent = LWP::UserAgent->new(keep_alive => KEEP_ALIVE_CACHESIZE);
        $agent->timeout(10);
        $agent->env_proxy;
        $self->{agent} = $agent;
    }
    return $self;
}

lib/Amazon/SimpleDB/Domain.pm  view on Meta::CPAN

package Amazon::SimpleDB::Domain;
use strict;
use warnings;

use Amazon::SimpleDB::Response;
use Carp qw( croak );

sub new {
    my $class = shift;
    my $args  = shift || {};
    my $self  = bless $args, $class;
    croak "No account"       unless $self->{account};
    croak "No (domain) name" unless $self->{name};
    return $self;
}

sub account { return $_[0]->{account} }
sub name    { return $_[0]->{name} }
sub delete  { return $_[0]->{account}->delete_domain($_[0]->{name}) }

# note: limit can be between 1 and 250. default is 100.

lib/Amazon/SimpleDB/Item.pm  view on Meta::CPAN

package Amazon::SimpleDB::Item;
use strict;
use warnings;

use Amazon::SimpleDB::Response;
use Carp qw( croak );

sub new {
    my $class = shift;
    my $args  = shift || {};
    my $self  = bless $args, $class;
    croak "No account"     unless $self->{account};
    croak "No domain"      unless $self->{domain};
    croak "No (item) name" unless $self->{name};
    return $self;
}

sub account { return $_[0]->{account} }
sub name    { return $_[0]->{name} }
sub domain  { return $_[0]->{domain} }

lib/Amazon/SimpleDB/Response.pm  view on Meta::CPAN

    croak $@ if $@;
    my ($type) = keys %$tree;
    if ($r->is_error) {
        require Amazon::SimpleDB::ErrorResponse;
        $class = 'Amazon::SimpleDB::ErrorResponse';
    } elsif ($SPECIALS{$type}) {
        $class = "Amazon::SimpleDB::${type}";
        eval "use $class";
        croak $@ if $@;
    }
    my $self = bless {}, $class;
    $self->{'account'}       = $args->{account};
    $self->{'http_response'} = $r;
    $self->{'http_status'}   = $r->code;
    $self->{'content'}       = $tree;
    $self->{'response_type'} = $type;
    if ($r->is_success) {    # errors are stored differently
        $self->{'request_id'} = $tree->{$type}{ResponseMetadata}{RequestId};
        $self->{'box_usage'}  = $tree->{$type}{ResponseMetadata}{BoxUsage};
    }
    return $self;



( run in 2.121 seconds using v1.01-cache-2.11-cpan-b32c08c6d1a )