22
22
using Elastic . Transport . Products . Elasticsearch ;
23
23
using System ;
24
24
using System . Collections . Generic ;
25
+ using System . Linq . Expressions ;
26
+ using System . Text . Json ;
25
27
using System . Text . Json . Serialization ;
26
28
27
29
namespace Elastic . Clients . Elasticsearch . AsyncSearch ;
28
30
31
+ internal sealed partial class AsyncSearchStatusResponseConverter : System . Text . Json . Serialization . JsonConverter < AsyncSearchStatusResponse >
32
+ {
33
+ private static readonly System . Text . Json . JsonEncodedText PropClusters = System . Text . Json . JsonEncodedText . Encode ( "_clusters" ) ;
34
+ private static readonly System . Text . Json . JsonEncodedText PropCompletionStatus = System . Text . Json . JsonEncodedText . Encode ( "completion_status" ) ;
35
+ private static readonly System . Text . Json . JsonEncodedText PropCompletionTime = System . Text . Json . JsonEncodedText . Encode ( "completion_time" ) ;
36
+ private static readonly System . Text . Json . JsonEncodedText PropCompletionTimeInMillis = System . Text . Json . JsonEncodedText . Encode ( "completion_time_in_millis" ) ;
37
+ private static readonly System . Text . Json . JsonEncodedText PropExpirationTime = System . Text . Json . JsonEncodedText . Encode ( "expiration_time" ) ;
38
+ private static readonly System . Text . Json . JsonEncodedText PropExpirationTimeInMillis = System . Text . Json . JsonEncodedText . Encode ( "expiration_time_in_millis" ) ;
39
+ private static readonly System . Text . Json . JsonEncodedText PropId = System . Text . Json . JsonEncodedText . Encode ( "id" ) ;
40
+ private static readonly System . Text . Json . JsonEncodedText PropIsPartial = System . Text . Json . JsonEncodedText . Encode ( "is_partial" ) ;
41
+ private static readonly System . Text . Json . JsonEncodedText PropIsRunning = System . Text . Json . JsonEncodedText . Encode ( "is_running" ) ;
42
+ private static readonly System . Text . Json . JsonEncodedText PropShards = System . Text . Json . JsonEncodedText . Encode ( "_shards" ) ;
43
+ private static readonly System . Text . Json . JsonEncodedText PropStartTime = System . Text . Json . JsonEncodedText . Encode ( "start_time" ) ;
44
+ private static readonly System . Text . Json . JsonEncodedText PropStartTimeInMillis = System . Text . Json . JsonEncodedText . Encode ( "start_time_in_millis" ) ;
45
+
46
+ public override AsyncSearchStatusResponse Read ( ref System . Text . Json . Utf8JsonReader reader , System . Type typeToConvert , System . Text . Json . JsonSerializerOptions options )
47
+ {
48
+ reader . ValidateToken ( System . Text . Json . JsonTokenType . StartObject ) ;
49
+ LocalJsonValue < Elastic . Clients . Elasticsearch . ClusterStatistics ? > propClusters = default ;
50
+ LocalJsonValue < int ? > propCompletionStatus = default ;
51
+ LocalJsonValue < DateTimeOffset ? > propCompletionTime = default ;
52
+ LocalJsonValue < long ? > propCompletionTimeInMillis = default ;
53
+ LocalJsonValue < DateTimeOffset ? > propExpirationTime = default ;
54
+ LocalJsonValue < long > propExpirationTimeInMillis = default ;
55
+ LocalJsonValue < string ? > propId = default ;
56
+ LocalJsonValue < bool > propIsPartial = default ;
57
+ LocalJsonValue < bool > propIsRunning = default ;
58
+ LocalJsonValue < Elastic . Clients . Elasticsearch . ShardStatistics > propShards = default ;
59
+ LocalJsonValue < DateTimeOffset ? > propStartTime = default ;
60
+ LocalJsonValue < long > propStartTimeInMillis = default ;
61
+ while ( reader . Read ( ) && reader . TokenType is System . Text . Json . JsonTokenType . PropertyName )
62
+ {
63
+ if ( propClusters . TryRead ( ref reader , options , PropClusters ) )
64
+ {
65
+ continue ;
66
+ }
67
+
68
+ if ( propCompletionStatus . TryRead ( ref reader , options , PropCompletionStatus ) )
69
+ {
70
+ continue ;
71
+ }
72
+
73
+ if ( propCompletionTime . TryRead ( ref reader , options , PropCompletionTime ) )
74
+ {
75
+ continue ;
76
+ }
77
+
78
+ if ( propCompletionTimeInMillis . TryRead ( ref reader , options , PropCompletionTimeInMillis ) )
79
+ {
80
+ continue ;
81
+ }
82
+
83
+ if ( propExpirationTime . TryRead ( ref reader , options , PropExpirationTime ) )
84
+ {
85
+ continue ;
86
+ }
87
+
88
+ if ( propExpirationTimeInMillis . TryRead ( ref reader , options , PropExpirationTimeInMillis ) )
89
+ {
90
+ continue ;
91
+ }
92
+
93
+ if ( propId . TryRead ( ref reader , options , PropId ) )
94
+ {
95
+ continue ;
96
+ }
97
+
98
+ if ( propIsPartial . TryRead ( ref reader , options , PropIsPartial ) )
99
+ {
100
+ continue ;
101
+ }
102
+
103
+ if ( propIsRunning . TryRead ( ref reader , options , PropIsRunning ) )
104
+ {
105
+ continue ;
106
+ }
107
+
108
+ if ( propShards . TryRead ( ref reader , options , PropShards ) )
109
+ {
110
+ continue ;
111
+ }
112
+
113
+ if ( propStartTime . TryRead ( ref reader , options , PropStartTime ) )
114
+ {
115
+ continue ;
116
+ }
117
+
118
+ if ( propStartTimeInMillis . TryRead ( ref reader , options , PropStartTimeInMillis ) )
119
+ {
120
+ continue ;
121
+ }
122
+
123
+ throw new System . Text . Json . JsonException ( $ "Unknown JSON property '{ reader . GetString ( ) } ' for type '{ typeToConvert . Name } '.") ;
124
+ }
125
+
126
+ reader . ValidateToken ( System . Text . Json . JsonTokenType . EndObject ) ;
127
+ return new AsyncSearchStatusResponse
128
+ {
129
+ Clusters = propClusters . Value
130
+ ,
131
+ CompletionStatus = propCompletionStatus . Value
132
+ ,
133
+ CompletionTime = propCompletionTime . Value
134
+ ,
135
+ CompletionTimeInMillis = propCompletionTimeInMillis . Value
136
+ ,
137
+ ExpirationTime = propExpirationTime . Value
138
+ ,
139
+ ExpirationTimeInMillis = propExpirationTimeInMillis . Value
140
+ ,
141
+ Id = propId . Value
142
+ ,
143
+ IsPartial = propIsPartial . Value
144
+ ,
145
+ IsRunning = propIsRunning . Value
146
+ ,
147
+ Shards = propShards . Value
148
+ ,
149
+ StartTime = propStartTime . Value
150
+ ,
151
+ StartTimeInMillis = propStartTimeInMillis . Value
152
+ } ;
153
+ }
154
+
155
+ public override void Write ( System . Text . Json . Utf8JsonWriter writer , AsyncSearchStatusResponse value , System . Text . Json . JsonSerializerOptions options )
156
+ {
157
+ writer . WriteStartObject ( ) ;
158
+ writer . WriteProperty ( options , PropClusters , value . Clusters ) ;
159
+ writer . WriteProperty ( options , PropCompletionStatus , value . CompletionStatus ) ;
160
+ writer . WriteProperty ( options , PropCompletionTime , value . CompletionTime ) ;
161
+ writer . WriteProperty ( options , PropCompletionTimeInMillis , value . CompletionTimeInMillis ) ;
162
+ writer . WriteProperty ( options , PropExpirationTime , value . ExpirationTime ) ;
163
+ writer . WriteProperty ( options , PropExpirationTimeInMillis , value . ExpirationTimeInMillis ) ;
164
+ writer . WriteProperty ( options , PropId , value . Id ) ;
165
+ writer . WriteProperty ( options , PropIsPartial , value . IsPartial ) ;
166
+ writer . WriteProperty ( options , PropIsRunning , value . IsRunning ) ;
167
+ writer . WriteProperty ( options , PropShards , value . Shards ) ;
168
+ writer . WriteProperty ( options , PropStartTime , value . StartTime ) ;
169
+ writer . WriteProperty ( options , PropStartTimeInMillis , value . StartTimeInMillis ) ;
170
+ writer . WriteEndObject ( ) ;
171
+ }
172
+ }
173
+
174
+ [ JsonConverter ( typeof ( AsyncSearchStatusResponseConverter ) ) ]
29
175
public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
30
176
{
31
177
/// <summary>
@@ -34,7 +180,6 @@ public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
34
180
/// Not shown for local-only searches.
35
181
/// </para>
36
182
/// </summary>
37
- [ JsonInclude , JsonPropertyName ( "_clusters" ) ]
38
183
public Elastic . Clients . Elasticsearch . ClusterStatistics ? Clusters { get ; init ; }
39
184
40
185
/// <summary>
@@ -44,7 +189,6 @@ public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
44
189
/// 503 indicates that the async search was completed with an error.
45
190
/// </para>
46
191
/// </summary>
47
- [ JsonInclude , JsonPropertyName ( "completion_status" ) ]
48
192
public int ? CompletionStatus { get ; init ; }
49
193
50
194
/// <summary>
@@ -53,21 +197,16 @@ public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
53
197
/// when the search has completed.
54
198
/// </para>
55
199
/// </summary>
56
- [ JsonInclude , JsonPropertyName ( "completion_time" ) ]
57
200
public DateTimeOffset ? CompletionTime { get ; init ; }
58
- [ JsonInclude , JsonPropertyName ( "completion_time_in_millis" ) ]
59
201
public long ? CompletionTimeInMillis { get ; init ; }
60
202
61
203
/// <summary>
62
204
/// <para>
63
205
/// Indicates when the async search will expire.
64
206
/// </para>
65
207
/// </summary>
66
- [ JsonInclude , JsonPropertyName ( "expiration_time" ) ]
67
208
public DateTimeOffset ? ExpirationTime { get ; init ; }
68
- [ JsonInclude , JsonPropertyName ( "expiration_time_in_millis" ) ]
69
209
public long ExpirationTimeInMillis { get ; init ; }
70
- [ JsonInclude , JsonPropertyName ( "id" ) ]
71
210
public string ? Id { get ; init ; }
72
211
73
212
/// <summary>
@@ -76,7 +215,6 @@ public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
76
215
/// While the query is running, <c>is_partial</c> is always set to <c>true</c>.
77
216
/// </para>
78
217
/// </summary>
79
- [ JsonInclude , JsonPropertyName ( "is_partial" ) ]
80
218
public bool IsPartial { get ; init ; }
81
219
82
220
/// <summary>
@@ -85,18 +223,14 @@ public sealed partial class AsyncSearchStatusResponse : ElasticsearchResponse
85
223
/// NOTE: If the search failed after some shards returned their results or the node that is coordinating the async search dies, results may be partial even though <c>is_running</c> is <c>false</c>.
86
224
/// </para>
87
225
/// </summary>
88
- [ JsonInclude , JsonPropertyName ( "is_running" ) ]
89
226
public bool IsRunning { get ; init ; }
90
227
91
228
/// <summary>
92
229
/// <para>
93
230
/// Indicates how many shards have run the query so far.
94
231
/// </para>
95
232
/// </summary>
96
- [ JsonInclude , JsonPropertyName ( "_shards" ) ]
97
233
public Elastic . Clients . Elasticsearch . ShardStatistics Shards { get ; init ; }
98
- [ JsonInclude , JsonPropertyName ( "start_time" ) ]
99
234
public DateTimeOffset ? StartTime { get ; init ; }
100
- [ JsonInclude , JsonPropertyName ( "start_time_in_millis" ) ]
101
235
public long StartTimeInMillis { get ; init ; }
102
236
}
0 commit comments