Skip to content

Commit d1a0889

Browse files
Reintroduce sub-aggregations for bucket aggs (#6616) (#6617)
Co-authored-by: Steve Gordon <sgordon@hotmail.co.uk>
1 parent 6d6da7c commit d1a0889

20 files changed

+2505
-115
lines changed

src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AdjacencyMatrixAggregation.g.cs

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ public override AdjacencyMatrixAggregation Read(ref Utf8JsonReader reader, Type
6767

6868
continue;
6969
}
70+
71+
if (reader.ValueTextEquals("aggs") || reader.ValueTextEquals("aggregations"))
72+
{
73+
var value = JsonSerializer.Deserialize<AggregationDictionary>(ref reader, options);
74+
if (value is not null)
75+
{
76+
agg.Aggregations = value;
77+
}
78+
79+
continue;
80+
}
7081
}
7182
}
7283

@@ -91,6 +102,12 @@ public override void Write(Utf8JsonWriter writer, AdjacencyMatrixAggregation val
91102
JsonSerializer.Serialize(writer, value.Meta, options);
92103
}
93104

105+
if (value.Aggregations is not null)
106+
{
107+
writer.WritePropertyName("aggregations");
108+
JsonSerializer.Serialize(writer, value.Aggregations, options);
109+
}
110+
94111
writer.WriteEndObject();
95112
}
96113
}
@@ -103,24 +120,147 @@ internal AdjacencyMatrixAggregation()
103120
{
104121
}
105122

123+
public Elastic.Clients.Elasticsearch.Aggregations.AggregationDictionary? Aggregations { get; set; }
124+
106125
public Dictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>? Filters { get; set; }
107126

108127
public Dictionary<string, object>? Meta { get; set; }
109128

110129
public override string? Name { get; internal set; }
111130
}
112131

132+
public sealed partial class AdjacencyMatrixAggregationDescriptor<TDocument> : SerializableDescriptorBase<AdjacencyMatrixAggregationDescriptor<TDocument>>
133+
{
134+
internal AdjacencyMatrixAggregationDescriptor(Action<AdjacencyMatrixAggregationDescriptor<TDocument>> configure) => configure.Invoke(this);
135+
public AdjacencyMatrixAggregationDescriptor() : base()
136+
{
137+
}
138+
139+
private Elastic.Clients.Elasticsearch.Aggregations.AggregationDictionary? AggregationsValue { get; set; }
140+
141+
private Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor<TDocument> AggregationsDescriptor { get; set; }
142+
143+
private Action<Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor<TDocument>> AggregationsDescriptorAction { get; set; }
144+
145+
private Dictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>? FiltersValue { get; set; }
146+
147+
private Dictionary<string, object>? MetaValue { get; set; }
148+
149+
public AdjacencyMatrixAggregationDescriptor<TDocument> Aggregations(Elastic.Clients.Elasticsearch.Aggregations.AggregationDictionary? aggregations)
150+
{
151+
AggregationsDescriptor = null;
152+
AggregationsDescriptorAction = null;
153+
AggregationsValue = aggregations;
154+
return Self;
155+
}
156+
157+
public AdjacencyMatrixAggregationDescriptor<TDocument> Aggregations(Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor<TDocument> descriptor)
158+
{
159+
AggregationsValue = null;
160+
AggregationsDescriptorAction = null;
161+
AggregationsDescriptor = descriptor;
162+
return Self;
163+
}
164+
165+
public AdjacencyMatrixAggregationDescriptor<TDocument> Aggregations(Action<Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor<TDocument>> configure)
166+
{
167+
AggregationsValue = null;
168+
AggregationsDescriptor = null;
169+
AggregationsDescriptorAction = configure;
170+
return Self;
171+
}
172+
173+
public AdjacencyMatrixAggregationDescriptor<TDocument> Filters(Func<FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>, FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>> selector)
174+
{
175+
FiltersValue = selector?.Invoke(new FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>());
176+
return Self;
177+
}
178+
179+
public AdjacencyMatrixAggregationDescriptor<TDocument> Meta(Func<FluentDictionary<string, object>, FluentDictionary<string, object>> selector)
180+
{
181+
MetaValue = selector?.Invoke(new FluentDictionary<string, object>());
182+
return Self;
183+
}
184+
185+
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
186+
{
187+
writer.WriteStartObject();
188+
writer.WritePropertyName("adjacency_matrix");
189+
writer.WriteStartObject();
190+
if (FiltersValue is not null)
191+
{
192+
writer.WritePropertyName("filters");
193+
JsonSerializer.Serialize(writer, FiltersValue, options);
194+
}
195+
196+
writer.WriteEndObject();
197+
if (MetaValue is not null)
198+
{
199+
writer.WritePropertyName("meta");
200+
JsonSerializer.Serialize(writer, MetaValue, options);
201+
}
202+
203+
if (AggregationsDescriptor is not null)
204+
{
205+
writer.WritePropertyName("aggregations");
206+
JsonSerializer.Serialize(writer, AggregationsDescriptor, options);
207+
}
208+
else if (AggregationsDescriptorAction is not null)
209+
{
210+
writer.WritePropertyName("aggregations");
211+
JsonSerializer.Serialize(writer, new AggregationContainerDescriptor<TDocument>(AggregationsDescriptorAction), options);
212+
}
213+
else if (AggregationsValue is not null)
214+
{
215+
writer.WritePropertyName("aggregations");
216+
JsonSerializer.Serialize(writer, AggregationsValue, options);
217+
}
218+
219+
writer.WriteEndObject();
220+
}
221+
}
222+
113223
public sealed partial class AdjacencyMatrixAggregationDescriptor : SerializableDescriptorBase<AdjacencyMatrixAggregationDescriptor>
114224
{
115225
internal AdjacencyMatrixAggregationDescriptor(Action<AdjacencyMatrixAggregationDescriptor> configure) => configure.Invoke(this);
116226
public AdjacencyMatrixAggregationDescriptor() : base()
117227
{
118228
}
119229

230+
private Elastic.Clients.Elasticsearch.Aggregations.AggregationDictionary? AggregationsValue { get; set; }
231+
232+
private Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor AggregationsDescriptor { get; set; }
233+
234+
private Action<Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor> AggregationsDescriptorAction { get; set; }
235+
120236
private Dictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>? FiltersValue { get; set; }
121237

122238
private Dictionary<string, object>? MetaValue { get; set; }
123239

240+
public AdjacencyMatrixAggregationDescriptor Aggregations(Elastic.Clients.Elasticsearch.Aggregations.AggregationDictionary? aggregations)
241+
{
242+
AggregationsDescriptor = null;
243+
AggregationsDescriptorAction = null;
244+
AggregationsValue = aggregations;
245+
return Self;
246+
}
247+
248+
public AdjacencyMatrixAggregationDescriptor Aggregations(Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor descriptor)
249+
{
250+
AggregationsValue = null;
251+
AggregationsDescriptorAction = null;
252+
AggregationsDescriptor = descriptor;
253+
return Self;
254+
}
255+
256+
public AdjacencyMatrixAggregationDescriptor Aggregations(Action<Elastic.Clients.Elasticsearch.Aggregations.AggregationContainerDescriptor> configure)
257+
{
258+
AggregationsValue = null;
259+
AggregationsDescriptor = null;
260+
AggregationsDescriptorAction = configure;
261+
return Self;
262+
}
263+
124264
public AdjacencyMatrixAggregationDescriptor Filters(Func<FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>, FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>> selector)
125265
{
126266
FiltersValue = selector?.Invoke(new FluentDictionary<string, Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer>());
@@ -151,6 +291,22 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
151291
JsonSerializer.Serialize(writer, MetaValue, options);
152292
}
153293

294+
if (AggregationsDescriptor is not null)
295+
{
296+
writer.WritePropertyName("aggregations");
297+
JsonSerializer.Serialize(writer, AggregationsDescriptor, options);
298+
}
299+
else if (AggregationsDescriptorAction is not null)
300+
{
301+
writer.WritePropertyName("aggregations");
302+
JsonSerializer.Serialize(writer, new AggregationContainerDescriptor(AggregationsDescriptorAction), options);
303+
}
304+
else if (AggregationsValue is not null)
305+
{
306+
writer.WritePropertyName("aggregations");
307+
JsonSerializer.Serialize(writer, AggregationsValue, options);
308+
}
309+
154310
writer.WriteEndObject();
155311
}
156312
}

src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregationContainer.g.cs

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ public AggregationContainerDescriptor() : base()
290290
{
291291
}
292292

293-
public AggregationContainerDescriptor<TDocument> AdjacencyMatrix(string name, Action<AdjacencyMatrixAggregationDescriptor> configure)
293+
public AggregationContainerDescriptor<TDocument> AdjacencyMatrix(string name, Action<AdjacencyMatrixAggregationDescriptor<TDocument>> configure)
294294
{
295295
return SetContainer(name, AggregationContainer.CreateWithAction("adjacency_matrix", configure));
296296
}
@@ -315,12 +315,12 @@ public AggregationContainerDescriptor<TDocument> Cardinality(string name, Action
315315
return SetContainer(name, AggregationContainer.CreateWithAction("cardinality", configure));
316316
}
317317

318-
public AggregationContainerDescriptor<TDocument> Children(string name, Action<ChildrenAggregationDescriptor> configure)
318+
public AggregationContainerDescriptor<TDocument> Children(string name, Action<ChildrenAggregationDescriptor<TDocument>> configure)
319319
{
320320
return SetContainer(name, AggregationContainer.CreateWithAction("children", configure));
321321
}
322322

323-
public AggregationContainerDescriptor<TDocument> Composite(string name, Action<CompositeAggregationDescriptor> configure)
323+
public AggregationContainerDescriptor<TDocument> Composite(string name, Action<CompositeAggregationDescriptor<TDocument>> configure)
324324
{
325325
return SetContainer(name, AggregationContainer.CreateWithAction("composite", configure));
326326
}
@@ -355,12 +355,12 @@ public AggregationContainerDescriptor<TDocument> ExtendedStatsBucket(string name
355355
return SetContainer(name, AggregationContainer.CreateWithAction("extended_stats_bucket", configure));
356356
}
357357

358-
public AggregationContainerDescriptor<TDocument> Filters(string name, Action<FiltersAggregationDescriptor> configure)
358+
public AggregationContainerDescriptor<TDocument> Filters(string name, Action<FiltersAggregationDescriptor<TDocument>> configure)
359359
{
360360
return SetContainer(name, AggregationContainer.CreateWithAction("filters", configure));
361361
}
362362

363-
public AggregationContainerDescriptor<TDocument> Global(string name, Action<GlobalAggregationDescriptor> configure)
363+
public AggregationContainerDescriptor<TDocument> Global(string name, Action<GlobalAggregationDescriptor<TDocument>> configure)
364364
{
365365
return SetContainer(name, AggregationContainer.CreateWithAction("global", configure));
366366
}
@@ -415,7 +415,7 @@ public AggregationContainerDescriptor<TDocument> Nested(string name, Action<Nest
415415
return SetContainer(name, AggregationContainer.CreateWithAction("nested", configure));
416416
}
417417

418-
public AggregationContainerDescriptor<TDocument> Parent(string name, Action<ParentAggregationDescriptor> configure)
418+
public AggregationContainerDescriptor<TDocument> Parent(string name, Action<ParentAggregationDescriptor<TDocument>> configure)
419419
{
420420
return SetContainer(name, AggregationContainer.CreateWithAction("parent", configure));
421421
}
@@ -440,7 +440,7 @@ public AggregationContainerDescriptor<TDocument> ReverseNested(string name, Acti
440440
return SetContainer(name, AggregationContainer.CreateWithAction("reverse_nested", configure));
441441
}
442442

443-
public AggregationContainerDescriptor<TDocument> Sampler(string name, Action<SamplerAggregationDescriptor> configure)
443+
public AggregationContainerDescriptor<TDocument> Sampler(string name, Action<SamplerAggregationDescriptor<TDocument>> configure)
444444
{
445445
return SetContainer(name, AggregationContainer.CreateWithAction("sampler", configure));
446446
}
@@ -518,6 +518,11 @@ public AggregationContainerDescriptor AdjacencyMatrix(string name, Action<Adjace
518518
return SetContainer(name, AggregationContainer.CreateWithAction("adjacency_matrix", configure));
519519
}
520520

521+
public AggregationContainerDescriptor AdjacencyMatrix<TDocument>(string name, Action<AdjacencyMatrixAggregationDescriptor<TDocument>> configure)
522+
{
523+
return SetContainer(name, AggregationContainer.CreateWithAction("adjacency_matrix", configure));
524+
}
525+
521526
public AggregationContainerDescriptor AutoDateHistogram(string name, Action<AutoDateHistogramAggregationDescriptor> configure)
522527
{
523528
return SetContainer(name, AggregationContainer.CreateWithAction("auto_date_histogram", configure));
@@ -563,11 +568,21 @@ public AggregationContainerDescriptor Children(string name, Action<ChildrenAggre
563568
return SetContainer(name, AggregationContainer.CreateWithAction("children", configure));
564569
}
565570

571+
public AggregationContainerDescriptor Children<TDocument>(string name, Action<ChildrenAggregationDescriptor<TDocument>> configure)
572+
{
573+
return SetContainer(name, AggregationContainer.CreateWithAction("children", configure));
574+
}
575+
566576
public AggregationContainerDescriptor Composite(string name, Action<CompositeAggregationDescriptor> configure)
567577
{
568578
return SetContainer(name, AggregationContainer.CreateWithAction("composite", configure));
569579
}
570580

581+
public AggregationContainerDescriptor Composite<TDocument>(string name, Action<CompositeAggregationDescriptor<TDocument>> configure)
582+
{
583+
return SetContainer(name, AggregationContainer.CreateWithAction("composite", configure));
584+
}
585+
571586
public AggregationContainerDescriptor CumulativeCardinality(string name, Action<CumulativeCardinalityAggregationDescriptor> configure)
572587
{
573588
return SetContainer(name, AggregationContainer.CreateWithAction("cumulative_cardinality", configure));
@@ -618,11 +633,21 @@ public AggregationContainerDescriptor Filters(string name, Action<FiltersAggrega
618633
return SetContainer(name, AggregationContainer.CreateWithAction("filters", configure));
619634
}
620635

636+
public AggregationContainerDescriptor Filters<TDocument>(string name, Action<FiltersAggregationDescriptor<TDocument>> configure)
637+
{
638+
return SetContainer(name, AggregationContainer.CreateWithAction("filters", configure));
639+
}
640+
621641
public AggregationContainerDescriptor Global(string name, Action<GlobalAggregationDescriptor> configure)
622642
{
623643
return SetContainer(name, AggregationContainer.CreateWithAction("global", configure));
624644
}
625645

646+
public AggregationContainerDescriptor Global<TDocument>(string name, Action<GlobalAggregationDescriptor<TDocument>> configure)
647+
{
648+
return SetContainer(name, AggregationContainer.CreateWithAction("global", configure));
649+
}
650+
626651
public AggregationContainerDescriptor Histogram(string name, Action<HistogramAggregationDescriptor> configure)
627652
{
628653
return SetContainer(name, AggregationContainer.CreateWithAction("histogram", configure));
@@ -728,6 +753,11 @@ public AggregationContainerDescriptor Parent(string name, Action<ParentAggregati
728753
return SetContainer(name, AggregationContainer.CreateWithAction("parent", configure));
729754
}
730755

756+
public AggregationContainerDescriptor Parent<TDocument>(string name, Action<ParentAggregationDescriptor<TDocument>> configure)
757+
{
758+
return SetContainer(name, AggregationContainer.CreateWithAction("parent", configure));
759+
}
760+
731761
public AggregationContainerDescriptor PercentilesBucket(string name, Action<PercentilesBucketAggregationDescriptor> configure)
732762
{
733763
return SetContainer(name, AggregationContainer.CreateWithAction("percentiles_bucket", configure));
@@ -768,6 +798,11 @@ public AggregationContainerDescriptor Sampler(string name, Action<SamplerAggrega
768798
return SetContainer(name, AggregationContainer.CreateWithAction("sampler", configure));
769799
}
770800

801+
public AggregationContainerDescriptor Sampler<TDocument>(string name, Action<SamplerAggregationDescriptor<TDocument>> configure)
802+
{
803+
return SetContainer(name, AggregationContainer.CreateWithAction("sampler", configure));
804+
}
805+
771806
public AggregationContainerDescriptor ScriptedMetric(string name, Action<ScriptedMetricAggregationDescriptor> configure)
772807
{
773808
return SetContainer(name, AggregationContainer.CreateWithAction("scripted_metric", configure));

0 commit comments

Comments
 (0)