NAME

Amazon::DynamoDB::20120810

VERSION

version 0.35

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.

Amazon Documentation:

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

Additional Parameters:

  • ResultLimit - limit on the total number of results to return.

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

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:

$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

AUTHORS

  • Rusty Conover <rusty@luckydinosaur.com>

  • Tom Molesworth <cpan@entitymodel.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Tom Molesworth, copyright (c) 2014 Lucky Dinosaur LLC. http://www.luckydinosaur.com.

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

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 1096:

=back without =over

Around line 1312:

=back without =over