Skip to content

Commit 1bcfeee

Browse files
Fix value request serialization (#8201) (#8203)
Co-authored-by: Florian Bernd <[email protected]>
1 parent 946db96 commit 1bcfeee

File tree

19 files changed

+95
-134
lines changed

19 files changed

+95
-134
lines changed

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/CreateRequest.g.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public sealed partial class CreateRequestParameters : RequestParameters
7070
/// <summary>
7171
/// <para>Adds a JSON document to the specified data stream or index and makes it searchable.<br/>If the target is an index and the document already exists, the request updates the document and increments its version.</para>
7272
/// </summary>
73-
public sealed partial class CreateRequest<TDocument> : PlainRequest<CreateRequestParameters>
73+
public sealed partial class CreateRequest<TDocument> : PlainRequest<CreateRequestParameters>, ISelfSerializable
7474
{
7575
public CreateRequest(Elastic.Clients.Elasticsearch.Serverless.IndexName index, Elastic.Clients.Elasticsearch.Serverless.Id id) : base(r => r.Required("index", index).Required("id", id))
7676
{
@@ -127,6 +127,11 @@ public CreateRequest(Elastic.Clients.Elasticsearch.Serverless.IndexName index, E
127127
public Elastic.Clients.Elasticsearch.Serverless.WaitForActiveShards? WaitForActiveShards { get => Q<Elastic.Clients.Elasticsearch.Serverless.WaitForActiveShards?>("wait_for_active_shards"); set => Q("wait_for_active_shards", value); }
128128
[JsonIgnore]
129129
public TDocument Document { get; set; }
130+
131+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
132+
{
133+
SourceSerialization.Serialize(Document, writer, settings.SourceSerializer);
134+
}
130135
}
131136

132137
/// <summary>

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/PutIndicesSettingsRequest.g.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public sealed partial class PutIndicesSettingsRequestParameters : RequestParamet
7070
/// <summary>
7171
/// <para>Changes a dynamic index setting in real time. For data streams, index setting<br/>changes are applied to all backing indices by default.</para>
7272
/// </summary>
73-
public sealed partial class PutIndicesSettingsRequest : PlainRequest<PutIndicesSettingsRequestParameters>
73+
public sealed partial class PutIndicesSettingsRequest : PlainRequest<PutIndicesSettingsRequestParameters>, ISelfSerializable
7474
{
7575
public PutIndicesSettingsRequest()
7676
{
@@ -131,6 +131,11 @@ public PutIndicesSettingsRequest(Elastic.Clients.Elasticsearch.Serverless.Indice
131131
public Elastic.Clients.Elasticsearch.Serverless.Duration? Timeout { get => Q<Elastic.Clients.Elasticsearch.Serverless.Duration?>("timeout"); set => Q("timeout", value); }
132132
[JsonIgnore]
133133
public Elastic.Clients.Elasticsearch.Serverless.IndexManagement.IndexSettings Settings { get; set; }
134+
135+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
136+
{
137+
JsonSerializer.Serialize(writer, Settings, options);
138+
}
134139
}
135140

136141
/// <summary>
@@ -194,6 +199,7 @@ public PutIndicesSettingsRequestDescriptor<TDocument> Settings(Action<Elastic.Cl
194199

195200
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
196201
{
202+
JsonSerializer.Serialize(writer, SettingsValue, options);
197203
}
198204
}
199205

@@ -258,5 +264,6 @@ public PutIndicesSettingsRequestDescriptor Settings(Action<Elastic.Clients.Elast
258264

259265
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
260266
{
267+
JsonSerializer.Serialize(writer, SettingsValue, options);
261268
}
262269
}

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexRequest.g.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public sealed partial class IndexRequestParameters : RequestParameters
9090
/// <summary>
9191
/// <para>Adds a JSON document to the specified data stream or index and makes it searchable.<br/>If the target is an index and the document already exists, the request updates the document and increments its version.</para>
9292
/// </summary>
93-
public sealed partial class IndexRequest<TDocument> : PlainRequest<IndexRequestParameters>
93+
public sealed partial class IndexRequest<TDocument> : PlainRequest<IndexRequestParameters>, ISelfSerializable
9494
{
9595
public IndexRequest(Elastic.Clients.Elasticsearch.Serverless.IndexName index, Elastic.Clients.Elasticsearch.Serverless.Id? id) : base(r => r.Required("index", index).Optional("id", id))
9696
{
@@ -175,6 +175,11 @@ public IndexRequest(Elastic.Clients.Elasticsearch.Serverless.IndexName index) :
175175
public Elastic.Clients.Elasticsearch.Serverless.WaitForActiveShards? WaitForActiveShards { get => Q<Elastic.Clients.Elasticsearch.Serverless.WaitForActiveShards?>("wait_for_active_shards"); set => Q("wait_for_active_shards", value); }
176176
[JsonIgnore]
177177
public TDocument Document { get; set; }
178+
179+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
180+
{
181+
SourceSerialization.Serialize(Document, writer, settings.SourceSerializer);
182+
}
178183
}
179184

180185
/// <summary>

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/MachineLearning/ValidateDetectorRequest.g.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public sealed partial class ValidateDetectorRequestParameters : RequestParameter
3636
/// <summary>
3737
/// <para>Validates an anomaly detection detector.</para>
3838
/// </summary>
39-
public sealed partial class ValidateDetectorRequest : PlainRequest<ValidateDetectorRequestParameters>
39+
public sealed partial class ValidateDetectorRequest : PlainRequest<ValidateDetectorRequestParameters>, ISelfSerializable
4040
{
4141
internal override ApiUrls ApiUrls => ApiUrlLookup.MachineLearningValidateDetector;
4242

@@ -48,6 +48,11 @@ public sealed partial class ValidateDetectorRequest : PlainRequest<ValidateDetec
4848

4949
[JsonIgnore]
5050
public Elastic.Clients.Elasticsearch.Serverless.MachineLearning.Detector Detector { get; set; }
51+
52+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
53+
{
54+
JsonSerializer.Serialize(writer, Detector, options);
55+
}
5156
}
5257

5358
/// <summary>
@@ -96,6 +101,7 @@ public ValidateDetectorRequestDescriptor<TDocument> Detector(Action<Elastic.Clie
96101

97102
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
98103
{
104+
JsonSerializer.Serialize(writer, DetectorValue, options);
99105
}
100106
}
101107

@@ -145,5 +151,6 @@ public ValidateDetectorRequestDescriptor Detector(Action<Elastic.Clients.Elastic
145151

146152
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
147153
{
154+
JsonSerializer.Serialize(writer, DetectorValue, options);
148155
}
149156
}

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/Snapshot/CreateRepositoryRequest.g.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public sealed partial class CreateRepositoryRequestParameters : RequestParameter
5050
/// <summary>
5151
/// <para>Creates a repository.</para>
5252
/// </summary>
53-
public sealed partial class CreateRepositoryRequest : PlainRequest<CreateRepositoryRequestParameters>
53+
public sealed partial class CreateRepositoryRequest : PlainRequest<CreateRepositoryRequestParameters>, ISelfSerializable
5454
{
5555
public CreateRepositoryRequest(Elastic.Clients.Elasticsearch.Serverless.Name name) : base(r => r.Required("repository", name))
5656
{
@@ -83,6 +83,11 @@ public CreateRepositoryRequest(Elastic.Clients.Elasticsearch.Serverless.Name nam
8383
public bool? Verify { get => Q<bool?>("verify"); set => Q("verify", value); }
8484
[JsonIgnore]
8585
public Elastic.Clients.Elasticsearch.Serverless.Snapshot.IRepository Repository { get; set; }
86+
87+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
88+
{
89+
JsonSerializer.Serialize(writer, Repository, options);
90+
}
8691
}
8792

8893
/// <summary>
@@ -121,5 +126,6 @@ public CreateRepositoryRequestDescriptor Repository(Elastic.Clients.Elasticsearc
121126

122127
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
123128
{
129+
JsonSerializer.Serialize(writer, RepositoryValue, options);
124130
}
125131
}

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Api/CreateRequest.cs

+1-11
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,13 @@
22
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information.
44

5-
#if ELASTICSEARCH_SERVERLESS
6-
using Elastic.Clients.Elasticsearch.Serverless.Serialization;
7-
#else
8-
using Elastic.Clients.Elasticsearch.Serialization;
9-
#endif
10-
using Elastic.Transport;
11-
using System.Text.Json;
12-
135
#if ELASTICSEARCH_SERVERLESS
146
namespace Elastic.Clients.Elasticsearch.Serverless;
157
#else
168
namespace Elastic.Clients.Elasticsearch;
179
#endif
1810

19-
public sealed partial class CreateRequest<TDocument> : ICustomJsonWriter
11+
public sealed partial class CreateRequest<TDocument>
2012
{
2113

2214
public CreateRequest(Id id) : this(typeof(TDocument), id)
@@ -26,6 +18,4 @@ public CreateRequest(Id id) : this(typeof(TDocument), id)
2618
public CreateRequest(TDocument documentWithId, IndexName index = null, Id id = null)
2719
: this(index ?? typeof(TDocument), id ?? Id.From(documentWithId)) =>
2820
Document = documentWithId;
29-
30-
public void WriteJson(Utf8JsonWriter writer, Serializer sourceSerializer) => SourceSerialization.Serialize(Document, writer, sourceSerializer);
3121
}

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Api/IndexRequest.cs

+2-12
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,12 @@
22
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information.
44

5-
using System.Text.Json;
65
using System.Text.Json.Serialization;
76
#if ELASTICSEARCH_SERVERLESS
87
using Elastic.Clients.Elasticsearch.Serverless.Requests;
98
#else
109
using Elastic.Clients.Elasticsearch.Requests;
1110
#endif
12-
#if ELASTICSEARCH_SERVERLESS
13-
using Elastic.Clients.Elasticsearch.Serverless.Serialization;
14-
#else
15-
using Elastic.Clients.Elasticsearch.Serialization;
16-
#endif
1711
using Elastic.Transport;
1812

1913
#if ELASTICSEARCH_SERVERLESS
@@ -22,7 +16,7 @@ namespace Elastic.Clients.Elasticsearch.Serverless;
2216
namespace Elastic.Clients.Elasticsearch;
2317
#endif
2418

25-
public partial class IndexRequest<TDocument> : ICustomJsonWriter
19+
public partial class IndexRequest<TDocument>
2620
{
2721
public IndexRequest() : this(typeof(TDocument)) { }
2822

@@ -36,17 +30,13 @@ public IndexRequest() : this(typeof(TDocument)) { }
3630

3731
[JsonIgnore] private Id? Id => RouteValues.Get<Id>("id");
3832

39-
void ICustomJsonWriter.WriteJson(Utf8JsonWriter writer, Serializer sourceSerializer) => SourceSerialization.Serialize(Document, writer, sourceSerializer);
40-
4133
internal static HttpMethod GetHttpMethod(IndexRequest<TDocument> request) =>
4234
request.Id?.StringOrLongValue != null || request.RouteValues.ContainsId ? HttpMethod.PUT : HttpMethod.POST;
4335
}
4436

45-
public sealed partial class IndexRequestDescriptor<TDocument> : ICustomJsonWriter
37+
public sealed partial class IndexRequestDescriptor<TDocument>
4638
{
4739
internal Id _id;
4840

49-
public void WriteJson(Utf8JsonWriter writer, Serializer sourceSerializer) => SourceSerialization.Serialize(DocumentValue, writer, sourceSerializer);
50-
5141
protected override HttpMethod? DynamicHttpMethod => _id is not null || RouteValues.ContainsId ? HttpMethod.PUT : HttpMethod.POST;
5242
}

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Serialization/CustomJsonWriterConverter.cs

-28
This file was deleted.

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Serialization/CustomJsonWriterConverterFactory.cs

-52
This file was deleted.

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Serialization/DefaultRequestResponseSerializer.cs

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public DefaultRequestResponseSerializer(IElasticsearchClientSettings settings) :
3535
new KeyValuePairConverterFactory(settings),
3636
new ObjectToInferredTypesConverter(),
3737
new SourceConverterFactory(settings),
38-
new CustomJsonWriterConverterFactory(settings),
3938
new SelfSerializableConverterFactory(settings),
4039
new SelfDeserializableConverterFactory(settings),
4140
new SelfTwoWaySerializableConverterFactory(settings),

Diff for: src/Elastic.Clients.Elasticsearch.Shared/Serialization/ICustomJsonWriter.cs

-17
This file was deleted.

Diff for: src/Elastic.Clients.Elasticsearch/_Generated/Api/CreateRequest.g.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public sealed partial class CreateRequestParameters : RequestParameters
7070
/// <summary>
7171
/// <para>Adds a JSON document to the specified data stream or index and makes it searchable.<br/>If the target is an index and the document already exists, the request updates the document and increments its version.</para>
7272
/// </summary>
73-
public sealed partial class CreateRequest<TDocument> : PlainRequest<CreateRequestParameters>
73+
public sealed partial class CreateRequest<TDocument> : PlainRequest<CreateRequestParameters>, ISelfSerializable
7474
{
7575
public CreateRequest(Elastic.Clients.Elasticsearch.IndexName index, Elastic.Clients.Elasticsearch.Id id) : base(r => r.Required("index", index).Required("id", id))
7676
{
@@ -127,6 +127,11 @@ public CreateRequest(Elastic.Clients.Elasticsearch.IndexName index, Elastic.Clie
127127
public Elastic.Clients.Elasticsearch.WaitForActiveShards? WaitForActiveShards { get => Q<Elastic.Clients.Elasticsearch.WaitForActiveShards?>("wait_for_active_shards"); set => Q("wait_for_active_shards", value); }
128128
[JsonIgnore]
129129
public TDocument Document { get; set; }
130+
131+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
132+
{
133+
SourceSerialization.Serialize(Document, writer, settings.SourceSerializer);
134+
}
130135
}
131136

132137
/// <summary>

Diff for: src/Elastic.Clients.Elasticsearch/_Generated/Api/IndexManagement/DownsampleRequest.g.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public sealed partial class DownsampleRequestParameters : RequestParameters
3636
/// <summary>
3737
/// <para>Aggregates a time series (TSDS) index and stores pre-computed statistical summaries (`min`, `max`, `sum`, `value_count` and `avg`) for each metric field grouped by a configured time interval.</para>
3838
/// </summary>
39-
public sealed partial class DownsampleRequest : PlainRequest<DownsampleRequestParameters>
39+
public sealed partial class DownsampleRequest : PlainRequest<DownsampleRequestParameters>, ISelfSerializable
4040
{
4141
public DownsampleRequest(Elastic.Clients.Elasticsearch.IndexName index, Elastic.Clients.Elasticsearch.IndexName targetIndex) : base(r => r.Required("index", index).Required("target_index", targetIndex))
4242
{
@@ -52,6 +52,11 @@ public DownsampleRequest(Elastic.Clients.Elasticsearch.IndexName index, Elastic.
5252

5353
[JsonIgnore]
5454
public Elastic.Clients.Elasticsearch.IndexManagement.DownsampleConfig Config { get; set; }
55+
56+
void ISelfSerializable.Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
57+
{
58+
JsonSerializer.Serialize(writer, Config, options);
59+
}
5560
}
5661

5762
/// <summary>
@@ -112,6 +117,7 @@ public DownsampleRequestDescriptor<TDocument> Config(Action<Elastic.Clients.Elas
112117

113118
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
114119
{
120+
JsonSerializer.Serialize(writer, ConfigValue, options);
115121
}
116122
}
117123

@@ -173,5 +179,6 @@ public DownsampleRequestDescriptor Config(Action<Elastic.Clients.Elasticsearch.I
173179

174180
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
175181
{
182+
JsonSerializer.Serialize(writer, ConfigValue, options);
176183
}
177184
}

0 commit comments

Comments
 (0)