NAME

Amazon::DynamoDB::20120810

VERSION

version 0.08

DESCRIPTION

new

Instantiates the API object.

Expects the following named parameters:

  • implementation - the object which provides a Future-returning request method, see Amazon::DynamoDB::NaHTTP for example.

  • host - the host (IP or hostname) to communicate with

  • port - the port to use for HTTP(S) requests

  • ssl - true for HTTPS, false for HTTP

  • algorithm - which signing algorithm to use, default AWS4-HMAC-SHA256

  • scope - the scope for requests, typically region/host/aws4_request

  • access_key - the access key for signing requests

  • secret_key - the secret key for signing requests

  • debug_failures - print errors if they occur

  • max_retries - maximum number of retries for a request

create_table

Creates a new table. It may take some time before the table is marked as active - use "wait_for_table_status" to poll until the status changes.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html

$ddb->create_table(
   TableName => $table_name,
   ReadCapacityUnits => 2,
   WriteCapacityUnits => 2,
   AttributeDefinitions => {
       user_id => 'N',
       date => 'N',
   },
   KeySchema => ['user_id', 'date'],
   LocalSecondaryIndexes => [
       {
           IndexName => 'UserDateIndex',
           KeySchema => ['user_id', 'date'],
           Projection => {
               ProjectionType => 'KEYS_ONLY',
           },
           ProvisionedThroughput => {
               ReadCapacityUnits => 2,
               WriteCapacityUnits => 2,
           }
       }
   ]
);

describe_table

Describes the given table.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html

$ddb->describe_table(TableName => $table_name);

delete_table

Delete a table.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html

$ddb->delete_table(TableName => $table_name)

wait_for_table_status

Waits for the given table to be marked as active.

  • TableName - the table name

  • WaitInterval - default wait interval in seconds.

  • DesiredStatus - status to expect before completing. Defaults to ACTIVE

$ddb->wait_for_table_status(TableName => $table_name);

each_table

Run code for all current tables.

Takes a coderef as the first parameter, will call this for each table found.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html

my @all_tables;    
$ddb->each_table(
      sub {
          my $table_name =shift;
          push @all_tables, $table_name;
      });

put_item

Writes a single item to the table.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html

$ddb->put_item(
   TableName => $table_name,
   Item => {
     name => 'Test Name'
   },
   ReturnValues => 'ALL_OLD');

update_item

Updates a single item in the table.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html

$ddb->update_item(
      TableName => $table_name,
      Key => {
          user_id => 2
      },
      AttributeUpdates => {
          name => {
              Action => 'PUT',
              Value => "Rusty Conover-3",
          },
          favorite_color => {
              Action => 'DELETE'
          },
          test_numbers => {
              Action => 'DELETE',
              Value => [500]
          },
          added_number => {
              Action => 'ADD',
              Value => 5,
          },
          subtracted_number => {
              Action => 'ADD',
              Value => -5,
          },
      });

delete_item

Deletes a single item from the table.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html

$ddb->delete_item(
  TableName => $table_name,
  Key => {
    user_id => 5
});

get_item

Retrieve an items from one tables.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html

my $found_item;
my $get = $ddb->get_item(
  sub {
    $found_item = shift;
  },
  TableName => $table_name,
  Key => {
    user_id => 6
  });

batch_write_item

Put or delete a collection of items.

Has no restriction on the number of items able to be processed at one time.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

$ddb->batch_write_item(
  RequestItems => {
     books => [
          {
              DeleteRequest => {
                  book_id => 3000,
              }
          },
     ],
     users => [
          {
              PutRequest => {
                  user_id => 3000,
                  name => "Test batch write",
              }
          },
          {
              PutRequest => {
                  user_id => 3001,
                  name => "Test batch write",
              }
          }
      ]
  });

batch_get_item

Retrieve a batch of items from one or more tables.

Takes a coderef which will be called for each found item, followed by these named parameters:

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html

$ddb->batch_get_item(
  sub {
      my ($table, $item) = @_;
  },
  RequestItems => {
      $table_name => {
          ConsistentRead => 'true',
          AttributesToGet => ['user_id', 'name'],
          Keys => [
              {
                  user_id => 1,
              },
          ],
      }
  })

query

Query a table or an index.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html

Additional parameters:

  • ResultLimit - maximum number of items to return

$ddb->query(
  sub {
       my $item = shift;
  },
  KeyConditions => {
      user_id => {
          ComparisonOperator => "EQ"
          AttributeValueList => 1,
      },
  },
  AttributesToGet => ["user_id"],
  TableName => $table_name
);

scan

Scan a table for values with an optional filter expression.

Amazon Documentation:

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html

Additional parameters:

  • ResultLimit - maximum number of items to return

$ddb->scan(
  sub {
    my $item = shift;
    push @found_items, $item;
  },
  TableName => $table_name,
  ScanFilter => {
    user_id => {
      ComparisonOperator => 'NOT_NULL',
    }
  });

NAME

Amazon::DynamoDB::20120810 - interact with DynamoDB using API version 20120810

METHODS - Internal

The following methods are intended for internal use and are documented purely for completeness - for normal operations see "METHODS" instead.

make_request

Generates an HTTP::Request.

FUNCTIONS - Internal

_encode_type_and_value

Returns an appropriate type (N, S, SS etc.) and stringified/encoded value for the given value.

DynamoDB only uses strings even if there is a Numeric value specified, so while the type will be expressed as a Number the value will be stringified.

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html

AUTHOR

Rusty Conover <rusty@luckydinosaur.com>

Based on code by:

Tom Molesworth <cpan@entitymodel.com>

LICENSE

Copyright Tom Molesworth 2013. Licensed under the same terms as Perl itself. Copyright 2014 Rusty Conover, Lucky Dinosaur, LLC. Licensed under the same terms as Perl itself.

AUTHOR

Rusty Conover <rusty@luckydinosaur.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Rusty Conover.

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

1 POD Error

The following errors were encountered while parsing the POD:

Around line 1066:

=back without =over