@CheckForNull
  public Object getProperty(String key) {
    return properties.get(key);
  }
@Test
  @UseDataProvider("indexAndTypeMappings")
  public void define_fields(NewIndex<?> newIndex, TypeMapping typeMapping) {
    typeMapping.setField("foo_field", ImmutableMap.of("type", "keyword"));
    typeMapping.createBooleanField("boolean_field");
    typeMapping.createByteField("byte_field");
    typeMapping.createDateTimeField("dt_field");
    typeMapping.createDoubleField("double_field");
    typeMapping.createIntegerField("int_field");
    typeMapping.createLongField("long_field");
    typeMapping.createShortField("short_field");
    typeMapping.createUuidPathField("uuid_path_field");

    assertThat(newIndex.getProperty("foo_field")).isInstanceOf(Map.class);
    assertThat((Map) newIndex.getProperty("foo_field")).containsEntry("type", "keyword");
    assertThat((Map) newIndex.getProperty("byte_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("double_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("dt_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("int_field")).containsEntry("type", "integer");
    assertThat((Map) newIndex.getProperty("long_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("short_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("uuid_path_field")).isNotEmpty();
    assertThat((Map) newIndex.getProperty("unknown")).isNull();
  }