protected override void SerializeProperties()

in src/Elastic.Clients.Elasticsearch/_Shared/Types/Core/Bulk/BulkUpdateBody.cs [57:104]


	protected override void SerializeProperties(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
	{
		if (PartialUpdate is not null)
		{
			writer.WritePropertyName("doc");
			settings.SourceSerializer.Serialize(PartialUpdate, writer);
		}

		if (Script is not null)
		{
			writer.WritePropertyName("script");
			JsonSerializer.Serialize(writer, Script, options);
		}

		if (ScriptedUpsert.HasValue)
		{
			writer.WritePropertyName("scripted_upsert");
			JsonSerializer.Serialize(writer, ScriptedUpsert.Value, options);
		}

		if (DocAsUpsert.HasValue)
		{
			writer.WritePropertyName("doc_as_upsert");
			JsonSerializer.Serialize(writer, DocAsUpsert.Value, options);
		}

		if (Upsert is not null)
		{
			writer.WritePropertyName("upsert");
			settings.SourceSerializer.Serialize(Upsert, writer, settings.MemoryStreamFactory);
		}

		if (Source is not null)
		{
			writer.WritePropertyName("_source");
			switch (Source.Tag)
			{
				case UnionTag.T1:
					JsonSerializer.Serialize(writer, Source.Value1, options);
					break;
				case UnionTag.T2:
					JsonSerializer.Serialize(writer, Source.Value2, options);
					break;
				default:
					throw new InvalidOperationException();
			}
		}
	}