Class Fog::AWS::DynamoDB::Real
In: lib/fog/aws/dynamodb.rb
lib/fog/aws/requests/dynamodb/create_table.rb
lib/fog/aws/requests/dynamodb/list_tables.rb
lib/fog/aws/requests/dynamodb/batch_write_item.rb
lib/fog/aws/requests/dynamodb/get_item.rb
lib/fog/aws/requests/dynamodb/scan.rb
lib/fog/aws/requests/dynamodb/batch_get_item.rb
lib/fog/aws/requests/dynamodb/delete_table.rb
lib/fog/aws/requests/dynamodb/update_item.rb
lib/fog/aws/requests/dynamodb/describe_table.rb
lib/fog/aws/requests/dynamodb/delete_item.rb
lib/fog/aws/requests/dynamodb/query.rb
lib/fog/aws/requests/dynamodb/put_item.rb
lib/fog/aws/requests/dynamodb/update_table.rb
Parent: Object

Methods

Included Modules

Fog::AWS::CredentialFetcher::ConnectionMethods

Public Class methods

Initialize connection to DynamoDB

Notes

options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection

Examples

  ddb = DynamoDB.new(
    :aws_access_key_id => your_aws_access_key_id,
    :aws_secret_access_key => your_aws_secret_access_key
  )

Parameters

  • options<~Hash> - config arguments for connection. Defaults to {}.

Returns

  • DynamoDB object with connection to aws

Public Instance methods

Get DynamoDB items

Parameters

  • ‘request_items’<~Hash>:
    • ‘table_name’<~Hash>:
      • ‘Keys’<~Array>: array of keys
        • ‘HashKeyElement’<~Hash>: info for primary key
          • ‘AttributeType’<~String> - type of attribute
          • ‘AttributeName’<~String> - name of attribute
        • ‘RangeKeyElement’<~Hash>: optional, info for range key
          • ‘AttributeType’<~String> - type of attribute
          • ‘AttributeName’<~String> - name of attribute
      • ‘AttributesToGet’<~Array> - optional attributes to return, defaults to all

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘Responses’<~Hash>:
        • ‘table_name’<~Hash>:
          • ‘Items’<~Array> - Matching items
          • ‘ConsumedCapacityUnits’<~Float> - Capacity units used in read
      • ‘UnprocessedKeys’:<~Hash> - tables and keys in excess of per request limit, pass this to subsequent batch get for pseudo-pagination

request_items has form: {"table_name"=>

  [{"PutRequest"=>
    {"Item"=>
      {"hash_key"=>{"N"=>"99"},
       "range_key"=>{"N"=>"99"},
       "attribute"=>{"S"=>"hi"}
       }}}, ... ]}
 For more information:
 http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_BatchWriteItems.html

Create DynamoDB table

Parameters

  • ‘table_name’<~String> - name of table to create
  • ‘key_schema’<~Hash>:
    • ‘HashKeyElement’<~Hash>: info for primary key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
    • ‘RangeKeyElement’<~Hash>: optional, info for range key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
  • ‘provisioned_throughput’<~Hash>:
    • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
    • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘TableDescription’<~Hash>
        • ‘CreationDateTime’<~Float> - Unix epoch time of table creation
        • ‘KeySchema’<~Hash> - schema for table
          • ‘HashKeyElement’<~Hash>: info for primary key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
          • ‘RangeKeyElement’<~Hash>: optional, info for range key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
        • ‘ProvisionedThroughput’<~Hash>:
          • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
          • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000
        • ‘TableName’<~String> - name of table
        • ‘TableStatus’<~String> - status of table

Delete DynamoDB item

Parameters

  • ‘table_name’<~String> - name of table for item
  • ‘key’<~Hash>:
    • ‘HashKeyElement’<~Hash>: info for primary key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute
    • ‘RangeKeyElement’<~Hash>: optional, info for range key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute
  • ‘options’<~Hash>:
    • ‘Expected’<~Hash>: data to check against
      • ‘AttributeName’<~String> - name of attribute
      • ‘Value’<~Hash> - a value to check for the value of

      or

      • ‘Exists’<~Boolean> - set as false to only allow update if attribute doesn‘t exist
    • ‘ReturnValues’<~String> - data to return in %w{ALL_NEW ALL_OLD NONE UPDATED_NEW UPDATED_OLD}, defaults to NONE

Returns

Delete DynamoDB table

Parameters

  • ‘table_name’<~String> - name of table to delete

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘TableDescription’<~Hash>
        • ‘KeySchema’<~Hash> - schema for table
          • ‘HashKeyElement’<~Hash>: info for primary key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
          • ‘RangeKeyElement’<~Hash>: optional, info for range key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
        • ‘ProvisionedThroughput’<~Hash>:
          • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
          • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000
        • ‘TableName’<~String> - name of table
        • ‘TableStatus’<~String> - status of table

Describe DynamoDB table

Parameters

  • ‘table_name’<~String> - name of table to describe

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘Table’<~Hash>
        • ‘CreationDateTime’<~Float> - Unix epoch time of table creation
        • ‘KeySchema’<~Hash> - schema for table
          • ‘HashKeyElement’<~Hash>: info for primary key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
          • ‘RangeKeyElement’<~Hash>: optional, info for range key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
        • ‘ProvisionedThroughput’<~Hash>:
          • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
          • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000
        • ‘TableName’<~String> - name of table
        • ‘TableSizeBytes’<~Integer> - size of table in bytes
        • ‘TableStatus’<~String> - status of table

Get DynamoDB item

Parameters

  • ‘table_name’<~String> - name of table for item
  • ‘key’<~Hash>:
    • ‘HashKeyElement’<~Hash>: info for primary key
      • ‘AttributeType’<~String> - type of attribute
      • ‘AttributeName’<~String> - name of attribute
    • ‘RangeKeyElement’<~Hash>: optional, info for range key
      • ‘AttributeType’<~String> - type of attribute
      • ‘AttributeName’<~String> - name of attribute
  • ‘options’<~Hash>:
    • ‘AttributesToGet’<~Array>: list of array names to return, defaults to returning all
    • ‘ConsistentRead’<~Boolean>: whether to wait for updates, defaults to false

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘ConsumedCapacityUnits’<~Float> - Capacity units used in read
      • ‘Item’:<~Hash>:
        • ‘AttributeName’<~Hash>: in form of {"type":value}

List DynamoDB tables

Parameters

  • ‘options’<~Hash> - options, defaults to {}
    • ‘ExclusiveStartTableName’<~String> - name of table to begin listing with
    • ‘Limit’<~Integer> - limit number of tables to return

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘LastEvaluatedTableName’<~String> - last table name, for pagination
      • ‘TableNames’<~Array> - table names

Update DynamoDB item

Parameters

  • ‘table_name’<~String> - name of table for item
  • ‘item’<~Hash>: data to update, must include primary key
    • ‘AttributeName’<~String> - Attribute to update
      • ‘Value’<~Hash> - formated as {type => value}
      • ‘Action’<~String> - action to take if expects matches, in %w{ADD DELETE PUT}, defaults to PUT
  • ‘options’<~Hash>:
    • ‘Expected’<~Hash>: data to check against
      • ‘AttributeName’<~String> - name of attribute
      • ‘Value’<~Hash> - a value to check for the value of

      or

      • ‘Exists’<~Boolean> - set as false to only allow update if attribute doesn‘t exist
    • ‘ReturnValues’<~String> - data to return in %w{ALL_NEW ALL_OLD NONE UPDATED_NEW UPDATED_OLD}, defaults to NONE

Returns

Query DynamoDB items

Parameters

  • ‘table_name’<~String> - name of table to query
  • ‘hash_key’<~Hash> - hash key to query
  • options<~Hash>:
    • ‘AttributesToGet’<~Array> - Array of attributes to get for each item, defaults to all
    • ‘ConsistentRead’<~Boolean> - Whether to wait for consistency, defaults to false
    • ‘Count’<~Boolean> - If true, returns only a count of such items rather than items themselves, defaults to false
    • ‘Limit’<~Integer> - limit of total items to return
    • ‘RangeKeyCondition’<~Hash>: value to compare against range key
      • ‘AttributeValueList’<~Hash>: one or more values to compare against
      • ‘ComparisonOperator’<~String>: comparison operator to use with attribute value list, in %w{BETWEEN BEGINS_WITH EQ LE LT GE GT}
    • ‘ScanIndexForward’<~Boolean>: Whether to scan from start or end of index, defaults to start
    • ‘ExclusiveStartKey’<~Hash>: Key to start listing from, can be taken from LastEvaluatedKey in response

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘ConsumedCapacityUnits’<~Integer> - number of capacity units used for query
      • ‘Count’<~Integer> - number of items in response
      • ‘Items’<~Array> - array of items returned
      • ‘LastEvaluatedKey’<~Hash> - last key scanned, can be passed to ExclusiveStartKey for pagination

Scan DynamoDB items

Parameters

  • ‘table_name’<~String> - name of table to query
  • options<~Hash>:
    • ‘AttributesToGet’<~Array> - Array of attributes to get for each item, defaults to all
    • ‘ConsistentRead’<~Boolean> - Whether to wait for consistency, defaults to false
    • ‘Count’<~Boolean> - If true, returns only a count of such items rather than items themselves, defaults to false
    • ‘Limit’<~Integer> - limit of total items to return
    • ‘ScanFilter’<~Hash>: value to compare against
      • attribute_name<~Hash>:
        • ‘AttributeValueList’<~Hash>: one or more values to compare against
        • ‘ComparisonOperator’<~String>: comparison operator to use with attribute value list, in %w{BETWEEN BEGINS_WITH EQ LE LT GE GT}
    • ‘ScanIndexForward’<~Boolean>: Whether to scan from start or end of index, defaults to start
    • ‘ExclusiveStartKey’<~Hash>: Key to start listing from, can be taken from LastEvaluatedKey in response

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘ConsumedCapacityUnits’<~Integer> - number of capacity units used for scan
      • ‘Count’<~Integer> - number of items in response
      • ‘Items’<~Array> - array of items returned
      • ‘LastEvaluatedKey’<~Hash> - last key scanned, can be passed to ExclusiveStartKey for pagination
      • ‘ScannedCount’<~Integer> - number of items scanned before applying filters

Update DynamoDB item

Parameters

  • ‘table_name’<~String> - name of table for item
  • ‘key’<~Hash>:
    • ‘HashKeyElement’<~Hash>: info for primary key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute
    • ‘RangeKeyElement’<~Hash>: optional, info for range key
      • ‘AttributeName’<~String> - name of attribute
      • ‘AttributeType’<~String> - type of attribute
  • ‘attribute_updates’<~Hash>:
    • ‘AttributeName’<~String> - Attribute to update
      • ‘Value’<~Hash> - formated as {type => value}
      • ‘Action’<~String> - action to take if expects matches, in %w{ADD DELETE PUT}, defaults to PUT
  • ‘options’<~Hash>:
    • ‘Expected’<~Hash>: data to check against
      • ‘AttributeName’<~String> - name of attribute
      • ‘Value’<~Hash> - a value to check for the value of

      or

      • ‘Exists’<~Boolean> - set as false to only allow update if attribute doesn‘t exist
    • ‘ReturnValues’<~String> - data to return in %w{ALL_NEW ALL_OLD NONE UPDATED_NEW UPDATED_OLD}, defaults to NONE

Returns

Update DynamoDB table throughput

Parameters

  • ‘table_name’<~String> - name of table to describe
  • ‘provisioned_throughput’<~Hash>:
    • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
    • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000

Returns

  • response<~Excon::Response>:
    • body<~Hash>:
      • ‘Table’<~Hash>
        • ‘KeySchema’<~Hash> - schema for table
          • ‘HashKeyElement’<~Hash>: info for primary key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
          • ‘RangeKeyElement’<~Hash>: optional, info for range key
            • ‘AttributeName’<~String> - name of attribute
            • ‘AttributeType’<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
        • ‘ProvisionedThroughput’<~Hash>:
          • ‘ReadCapacityUnits’<~Integer> - read capacity for table, in 5..10000
          • ‘WriteCapacityUnits’<~Integer> - write capacity for table, in 5..10000
        • ‘TableName’<~String> - name of table
        • ‘TableStatus’<~String> - status of table

[Validate]