anchor.diff:                      [{<<"AttributeName">>, <<"Id">>}, {<<"KeyType">>, <<"HASH">>}],
                       [{<<"AttributeName">>, <<"Date">>}, {<<"KeyType">>, <<"RANGE">>}]
                   ]},
  -                {lsi, [[{<<"2i_name">>,
  -                        [{key_schema, [
  +                {lsi, [[{<<"IndexName">>, <<"2i_name">>},
  +                        {<<"KeySchema">>, [
                               [{<<"AttributeName">>, <<"attr_name">>}, {<<"KeyType">>, <<"key_type">>}]
                           ]},
  -                        {projection, [{non_key_attributes, [<<"attr_name">>]},
  -                                      {projection_type, <<"projection_type">>}]}]
  -                }]]},
  +                        {<<"Projection">>, [{<<"NonKeyAttributes">>, [<<"attr_name">>]},
  +                                      {<<"ProjectionType">>, <<"projection_type">>}]}]
  +                ]},
  +                {gsi,[]},
                   {provisioned_throughput, [{<<"ReadCapacityUnits">>, 20},
                                             {<<"WriteCapacityUnits">>, 5}]},
                   {raw_schema, jsx:decode(Json_Bin)}
  
positive.code:     TableName = kvc:path("TableName", Json),
      AttributeDefinitions = decode_table_attributes(kvc:path("AttributeDefinitions", Json), []),
      KeySchema = decode_2i_key_schema(kvc:path("KeySchema", Json), []),
      SecondaryIndexes = decode_2i(kvc:path("LocalSecondaryIndexes", Json), []),
      ProvisionedThroughput = [{<<"ReadCapacityUnits">>, kvc:path("ProvisionedThroughput.ReadCapacityUnits", Json)},
                               {<<"WriteCapacityUnits">>, kvc:path("ProvisionedThroughput.WriteCapacityUnits", Json)}],
  
      [{tablename, TableName},
       {fields, AttributeDefinitions},
       {key_schema, KeySchema},
       {lsi, SecondaryIndexes},
       {provisioned_throughput, ProvisionedThroughput},
       {raw_schema, Json}].
  
  
negative.code: decode_2i([Index|Rest], Acc) ->
      IndexName = kvc:path("IndexName", Index),
      KeySchema = decode_2i_key_schema(kvc:path("KeySchema", Index), []),
      Projection = [{<<"NonKeyAttributes">>, kvc:path("Projection.NonKeyAttributes", Index)},
                    {<<"ProjectionType">>, kvc:path("Projection.ProjectionType", Index)}],
  
      IndexResult = [
          {<<"IndexName">>, IndexName},
          {<<"KeySchema">>, KeySchema},
          {<<"Projection">>, Projection}],
  
      decode_2i(Rest, [IndexResult|Acc]).
  
  
  