in src/Elastic.Ingest.Elasticsearch/Serialization/BulkOperationHeader.cs [60:89]
public override THeader Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
throw new NotImplementedException();
public override void Write(Utf8JsonWriter writer, THeader value, JsonSerializerOptions options)
{
var op = value switch
{
CreateOperation _ => "create",
DeleteOperation _ => "delete",
IndexOperation _ => "index",
UpdateOperation _ => "update",
_ => throw new ArgumentOutOfRangeException(nameof(value), value, null)
};
writer.WriteStartObject();
writer.WritePropertyName(op);
writer.WriteStartObject();
if (!string.IsNullOrWhiteSpace(value.Index))
writer.WriteString("_index", value.Index);
if (!string.IsNullOrWhiteSpace(value.Id))
writer.WriteString("_id", value.Id);
if (value.RequireAlias == true)
writer.WriteBoolean("require_alias", true);
if (value is CreateOperation c)
WriteDynamicTemplates(writer, options, c.DynamicTemplates);
if (value is IndexOperation i)
WriteDynamicTemplates(writer, options, i.DynamicTemplates);
writer.WriteEndObject();
writer.WriteEndObject();
}