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