class AwsRecord::Generators::SecondaryIndex

def initialize(name, opts)

def initialize(name, opts)
  raise ArgumentError, 'You must provide a name' unless name
  raise ArgumentError, 'You must provide a hash key' unless opts[:hash_key]
  if opts.key? :projection_type
    unless PROJ_TYPES.include? opts[:projection_type]
      raise ArgumentError, "Invalid projection type #{opts[:projection_type]}"
    end
    if opts[:projection_type] != 'ALL'
      raise NotImplementedError, 'ALL is the only projection type currently supported'
    end
  else
    opts[:projection_type] = 'ALL'
  end
  if opts[:hash_key] == opts[:range_key]
    raise ArgumentError, "#{opts[:hash_key]} cannot be both the rkey and hkey for gsi #{name}"
  end
  @name = name
  @hash_key = opts[:hash_key]
  @range_key = opts[:range_key]
  @projection_type = "\"#{opts[:projection_type]}\""
end