Module: Aws::Record::SecondaryIndexes::SecondaryIndexesClassMethods

Included in:
Aws::Record
Defined in:
lib/aws-record/record/secondary_indexes.rb

Instance Method Summary collapse

Instance Method Details

#global_secondary_index(name, opts) ⇒ Object

Creates a global secondary index for the model. Learn more about Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

Parameters:

  • name (Symbol)

    index name for this global secondary index

  • opts (Hash)

Options Hash (opts):

  • :hash_key (Symbol)

    the hash key used by this global secondary index.

  • :range_key (Symbol)

    the range key used by this global secondary index.

  • :projection (Hash)

    a hash which defines which attributes are copied from the table to the index. See shape details in the AWS SDK for Ruby V2 docs.



58
59
60
61
# File 'lib/aws-record/record/secondary_indexes.rb', line 58

def global_secondary_index(name, opts)
  _validate_required_gsi_keys(opts)
  global_secondary_indexes[name] = opts
end

#global_secondary_indexesHash

Returns hash of global secondary index names to the index's attributes.

Returns:

  • (Hash)

    hash of global secondary index names to the index's attributes.



71
72
73
# File 'lib/aws-record/record/secondary_indexes.rb', line 71

def global_secondary_indexes
  @global_secondary_indexes
end

#global_secondary_indexes_for_migrationHash

Returns hash of the global secondary indexes in a form suitable for use in a table migration. For example, any attributes which have a unique database storage name will use that name instead.

Returns:

  • (Hash)

    hash of the global secondary indexes in a form suitable for use in a table migration. For example, any attributes which have a unique database storage name will use that name instead.



85
86
87
# File 'lib/aws-record/record/secondary_indexes.rb', line 85

def global_secondary_indexes_for_migration
  _migration_format_indexes(global_secondary_indexes)
end

#local_secondary_index(name, opts) ⇒ Object

Creates a local secondary index for the model. Learn more about Local Secondary Indexes in the Amazon DynamoDB Developer Guide.

Parameters:

  • name (Symbol)

    index name for this local secondary index

  • opts (Hash)

Options Hash (opts):

  • :range_key (Symbol)

    the range key used by this local secondary index. Note that the hash key MUST be the table's hash key, and so that value will be filled in for you.

  • :projection (Hash)

    a hash which defines which attributes are copied from the table to the index. See shape details in the AWS SDK for Ruby V2 docs.



39
40
41
42
43
# File 'lib/aws-record/record/secondary_indexes.rb', line 39

def local_secondary_index(name, opts)
  opts[:hash_key] = hash_key
  _validate_required_lsi_keys(opts)
  local_secondary_indexes[name] = opts
end

#local_secondary_indexesHash

Returns hash of local secondary index names to the index's attributes.

Returns:

  • (Hash)

    hash of local secondary index names to the index's attributes.



65
66
67
# File 'lib/aws-record/record/secondary_indexes.rb', line 65

def local_secondary_indexes
  @local_secondary_indexes
end

#local_secondary_indexes_for_migrationHash

Returns hash of the local secondary indexes in a form suitable for use in a table migration. For example, any attributes which have a unique database storage name will use that name instead.

Returns:

  • (Hash)

    hash of the local secondary indexes in a form suitable for use in a table migration. For example, any attributes which have a unique database storage name will use that name instead.



78
79
80
# File 'lib/aws-record/record/secondary_indexes.rb', line 78

def local_secondary_indexes_for_migration
  _migration_format_indexes(local_secondary_indexes)
end