@@ -96,6 +96,12 @@ public interface ITypeMapping
9696 [ DataMember ( Name = "_routing" ) ]
9797 IRoutingField RoutingField { get ; set ; }
9898
99+ /// <summary>
100+ /// Specifies runtime fields for the mapping.
101+ /// </summary>
102+ [ DataMember ( Name = "runtime" ) ]
103+ IRuntimeFields RuntimeFields { get ; set ; }
104+
99105 /// <summary>
100106 /// If enabled, indexes the size in bytes of the original _source field.
101107 /// Requires mapper-size plugin be installed
@@ -147,6 +153,9 @@ public class TypeMapping : ITypeMapping
147153 /// <inheritdoc />
148154 public IRoutingField RoutingField { get ; set ; }
149155
156+ /// <inheritdoc />
157+ public IRuntimeFields RuntimeFields { get ; set ; }
158+
150159 /// <inheritdoc />
151160 public ISizeField SizeField { get ; set ; }
152161
@@ -171,6 +180,7 @@ public class TypeMappingDescriptor<T> : DescriptorBase<TypeMappingDescriptor<T>,
171180 bool ? ITypeMapping . NumericDetection { get ; set ; }
172181 IProperties ITypeMapping . Properties { get ; set ; }
173182 IRoutingField ITypeMapping . RoutingField { get ; set ; }
183+ IRuntimeFields ITypeMapping . RuntimeFields { get ; set ; }
174184 ISizeField ITypeMapping . SizeField { get ; set ; }
175185 ISourceField ITypeMapping . SourceField { get ; set ; }
176186
@@ -259,6 +269,10 @@ public TypeMappingDescriptor<T> DisableIndexField(bool? disabled = true) =>
259269 public TypeMappingDescriptor < T > RoutingField ( Func < RoutingFieldDescriptor < T > , IRoutingField > routingFieldSelector ) =>
260270 Assign ( routingFieldSelector , ( a , v ) => a . RoutingField = v ? . Invoke ( new RoutingFieldDescriptor < T > ( ) ) ) ;
261271
272+ /// <inheritdoc cref="ITypeMapping.RuntimeFields" />
273+ public TypeMappingDescriptor < T > RuntimeFields ( Func < RuntimeFieldsDescriptor , IPromise < IRuntimeFields > > runtimeFieldsSelector ) =>
274+ Assign ( runtimeFieldsSelector , ( a , v ) => a . RuntimeFields = v ? . Invoke ( new RuntimeFieldsDescriptor ( ) ) ? . Value ) ;
275+
262276 /// <inheritdoc cref="ITypeMapping.FieldNamesField" />
263277 public TypeMappingDescriptor < T > FieldNamesField ( Func < FieldNamesFieldDescriptor < T > , IFieldNamesField > fieldNamesFieldSelector ) =>
264278 Assign ( fieldNamesFieldSelector . Invoke ( new FieldNamesFieldDescriptor < T > ( ) ) , ( a , v ) => a . FieldNamesField = v ) ;
0 commit comments