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

### Methods

batch_get_item batch_put_item batch_write_item create_table delete_item delete_table describe_table get_item list_tables new put_item query scan update_item update_table

### Included Modules

Fog::AWS::CredentialFetcher::ConnectionMethods

### Public Class methods

new(options={})

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

batch_get_item(request_items)

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

batch_put_item(request_items)
batch_write_item(request_items)

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_table(table_name, key_schema, provisioned_throughput)

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_item(table_name, key, options = {})

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

- response<~Excon::Response>:
  - body<~Hash>: varies based on ReturnValues param, see: docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

delete_table(table_name)

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_table(table_name)

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_item(table_name, key, options = {})

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_tables(options = {})

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

put_item(table_name, item, options = {})

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

- response<~Excon::Response>:
  - body<~Hash>: varies based on ReturnValues param, see: docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

query(table_name, hash_key, options = {})

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(table_name, options = {})

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_item(table_name, key, attribute_updates, options = {})

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

- response<~Excon::Response>:
  - body<~Hash>: varies based on ReturnValues param, see: docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

update_table(table_name, provisioned_throughput)

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]