@Override
  protected Index fromNonNullXmlObject(RegionConfig.Index regionConfigIndex) {
    Index index = new Index();
    index.setName(regionConfigIndex.getName());
    index.setExpression(regionConfigIndex.getExpression());
    index.setRegionPath(regionConfigIndex.getFromClause());

    Boolean keyIndex = regionConfigIndex.isKeyIndex();
    if (keyIndex != null && keyIndex) {
      index.setIndexType(IndexType.KEY);
    } else if (HASH.equalsIgnoreCase(regionConfigIndex.getType())) {
      index.setIndexType(IndexType.HASH_DEPRECATED);
    }
    // functional is the default type
    else {
      index.setIndexType(IndexType.RANGE);
    }

    return index;
  }
based on the cache.xsd, index type can have only two values "range", "hash"
<attribute name="type" default="range">
<simpleType>
<restriction base="{http://www.w3.org/2001/XMLSchema}string">
<enumeration value="range"/>
<enumeration value="hash"/>
</restriction>
</simpleType>
</attribute>
geode-core/src/main/java/org/apache/geode/management/internal/configuration/converters/IndexConverter.java