Skip to content

Commit 3972a5d

Browse files
Container variant improvements (#6460) (#6461)
* Support name on containers and use for serialisation * Remove old POC types and IContainer interface * Remove variant name from variants * Remove unused future types Co-authored-by: Steve Gordon <[email protected]>
1 parent 22fc7c8 commit 3972a5d

File tree

161 files changed

+1203
-1204
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+1203
-1204
lines changed

src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerAndVariantBase.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerBase.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerVariantBase.cs

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/Common/Containers/IContainer.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/Common/Containers/IContainerVariant.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/Common/Containers/VariantDescriptorBase.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Elastic.Clients.Elasticsearch/FutureGenerated/FutureGenerated.cs

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,58 +5,16 @@
55
using System.Collections.Generic;
66
using System.Text.Json.Serialization;
77

8-
98
namespace Elastic.Clients.Elasticsearch.QueryDsl
109
{
11-
// TODO - Generate more of these?
10+
// TODO - Generate these
1211
public partial class TermQuery
1312
{
14-
public static implicit operator QueryContainer(TermQuery termQuery) => new(termQuery);
13+
public static implicit operator QueryContainer(TermQuery termQuery) => QueryContainer.Term(termQuery);
1514
}
1615

1716
public partial class MatchAllQuery
1817
{
19-
public static implicit operator QueryContainer(MatchAllQuery matchAllQuery) => new(matchAllQuery);
20-
}
21-
22-
public partial class QueryContainer
23-
{
24-
// TODO - Generate more of these!
25-
public TermQuery Term => Variant as TermQuery;
18+
public static implicit operator QueryContainer(MatchAllQuery matchAllQuery) => QueryContainer.MatchAll(matchAllQuery);
2619
}
2720
}
28-
29-
namespace Elastic.Clients.Elasticsearch
30-
{
31-
// Stubs until we generate these - Allows the code to compile so we can identify real errors.
32-
33-
public partial class HttpHeaders : Dictionary<string, Union<string, IReadOnlyCollection<string>>>
34-
{
35-
}
36-
37-
public partial class Metadata : Dictionary<string, object>
38-
{
39-
}
40-
41-
//public partial class RuntimeFields : Dictionary<Field, RuntimeField>
42-
//{
43-
//}
44-
45-
public partial class ApplicationsPrivileges : Dictionary<Name, ResourcePrivileges>
46-
{
47-
}
48-
49-
public partial class Privileges : Dictionary<string, bool>
50-
{
51-
}
52-
53-
public partial class ResourcePrivileges : Dictionary<Name, Privileges>
54-
{
55-
}
56-
57-
// TODO: Implement properly
58-
[JsonConverter(typeof(PercentageConverter))]
59-
public partial class Percentage
60-
{
61-
}
62-
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
namespace Elastic.Clients.Elasticsearch.Aggregations
2626
{
2727
[JsonConverter(typeof(AggregationContainerConverter))]
28-
public partial class AggregationContainer : IContainer
28+
public partial class AggregationContainer
2929
{
3030
public AggregationContainer(AggregationBase variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant));
3131
internal AggregationBase Variant { get; }

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -300,14 +300,12 @@ public override void Write(Utf8JsonWriter writer, DateHistogramAggregation value
300300
}
301301

302302
[JsonConverter(typeof(DateHistogramAggregationConverter))]
303-
public partial class DateHistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant
303+
public partial class DateHistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant
304304
{
305305
public DateHistogramAggregation(string name) : base(name)
306306
{
307307
}
308308

309-
[JsonIgnore]
310-
string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "date_histogram";
311309
[JsonInclude]
312310
[JsonPropertyName("calendar_interval")]
313311
public Elastic.Clients.Elasticsearch.Aggregations.CalendarInterval? CalendarInterval { get; set; }

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,14 +232,12 @@ public override void Write(Utf8JsonWriter writer, HistogramAggregation value, Js
232232
}
233233

234234
[JsonConverter(typeof(HistogramAggregationConverter))]
235-
public partial class HistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant
235+
public partial class HistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant
236236
{
237237
public HistogramAggregation(string name) : base(name)
238238
{
239239
}
240240

241-
[JsonIgnore]
242-
string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "histogram";
243241
[JsonInclude]
244242
[JsonPropertyName("field")]
245243
public Elastic.Clients.Elasticsearch.Field? Field { get; set; }

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

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,31 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Aggregations
2626
{
27-
public interface IInferenceConfigContainerVariant
27+
public interface IInferenceConfigVariant
2828
{
29-
string InferenceConfigContainerVariantName { get; }
3029
}
3130

3231
[JsonConverter(typeof(InferenceConfigContainerConverter))]
33-
public partial class InferenceConfigContainer : IContainer
32+
public partial class InferenceConfigContainer
3433
{
35-
public InferenceConfigContainer(IInferenceConfigContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant));
36-
internal IInferenceConfigContainerVariant Variant { get; }
34+
public InferenceConfigContainer(string variantName, IInferenceConfigVariant variant)
35+
{
36+
if (variantName is null)
37+
throw new ArgumentNullException(nameof(variantName));
38+
if (variant is null)
39+
throw new ArgumentNullException(nameof(variant));
40+
if (string.IsNullOrWhiteSpace(variantName))
41+
throw new ArgumentException("Variant name must not be empty or whitespace.");
42+
VariantName = variantName;
43+
Variant = variant;
44+
}
45+
46+
internal IInferenceConfigVariant Variant { get; }
47+
48+
internal string VariantName { get; }
49+
50+
public static InferenceConfigContainer Classification(Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant) => new InferenceConfigContainer("classification", variant);
51+
public static InferenceConfigContainer Regression(Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant) => new InferenceConfigContainer("regression", variant);
3752
}
3853

3954
internal sealed class InferenceConfigContainerConverter : JsonConverter<InferenceConfigContainer>
@@ -51,13 +66,13 @@ public override InferenceConfigContainer Read(ref Utf8JsonReader reader, Type ty
5166
if (propertyName == "classification")
5267
{
5368
var variant = JsonSerializer.Deserialize<Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions?>(ref reader, options);
54-
return new InferenceConfigContainer(variant);
69+
return new InferenceConfigContainer(propertyName, variant);
5570
}
5671

5772
if (propertyName == "regression")
5873
{
5974
var variant = JsonSerializer.Deserialize<Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions?>(ref reader, options);
60-
return new InferenceConfigContainer(variant);
75+
return new InferenceConfigContainer(propertyName, variant);
6176
}
6277

6378
throw new JsonException();
@@ -66,14 +81,14 @@ public override InferenceConfigContainer Read(ref Utf8JsonReader reader, Type ty
6681
public override void Write(Utf8JsonWriter writer, InferenceConfigContainer value, JsonSerializerOptions options)
6782
{
6883
writer.WriteStartObject();
69-
writer.WritePropertyName(value.Variant.InferenceConfigContainerVariantName);
70-
switch (value.Variant)
84+
writer.WritePropertyName(value.VariantName);
85+
switch (value.VariantName)
7186
{
72-
case Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant:
73-
JsonSerializer.Serialize(writer, variant, options);
87+
case "classification":
88+
JsonSerializer.Serialize<Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions>(writer, (Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions)value.Variant, options);
7489
break;
75-
case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant:
76-
JsonSerializer.Serialize(writer, variant, options);
90+
case "regression":
91+
JsonSerializer.Serialize<Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions>(writer, (Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions)value.Variant, options);
7792
break;
7893
}
7994

@@ -111,11 +126,11 @@ private void Set<T>(Action<T> descriptorAction, string variantName)
111126
Descriptor = descriptor;
112127
}
113128

114-
private void Set(IInferenceConfigContainerVariant variant, string variantName)
129+
private void Set(IInferenceConfigVariant variant, string variantName)
115130
{
116131
if (ContainsVariant)
117132
throw new Exception("TODO");
118-
Container = new InferenceConfigContainer(variant);
133+
Container = new InferenceConfigContainer(variantName, variant);
119134
ContainedVariantName = variantName;
120135
ContainsVariant = true;
121136
}
@@ -176,11 +191,11 @@ private void Set<T>(Action<T> descriptorAction, string variantName)
176191
Descriptor = descriptor;
177192
}
178193

179-
private void Set(IInferenceConfigContainerVariant variant, string variantName)
194+
private void Set(IInferenceConfigVariant variant, string variantName)
180195
{
181196
if (ContainsVariant)
182197
throw new Exception("TODO");
183-
Container = new InferenceConfigContainer(variant);
198+
Container = new InferenceConfigContainer(variantName, variant);
184199
ContainedVariantName = variantName;
185200
ContainsVariant = true;
186201
}

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -368,14 +368,12 @@ public override void Write(Utf8JsonWriter writer, TermsAggregation value, JsonSe
368368
}
369369

370370
[JsonConverter(typeof(TermsAggregationConverter))]
371-
public partial class TermsAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant
371+
public partial class TermsAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant
372372
{
373373
public TermsAggregation(string name) : base(name)
374374
{
375375
}
376376

377-
[JsonIgnore]
378-
string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "terms";
379377
[JsonInclude]
380378
[JsonPropertyName("collect_mode")]
381379
public Elastic.Clients.Elasticsearch.Aggregations.TermsAggregationCollectMode? CollectMode { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AppendProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class AppendProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class AppendProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "append";
3129
[JsonInclude]
3230
[JsonPropertyName("allow_duplicates")]
3331
public bool? AllowDuplicates { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AttachmentProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class AttachmentProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class AttachmentProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "attachment";
3129
[JsonInclude]
3230
[JsonPropertyName("field")]
3331
public Elastic.Clients.Elasticsearch.Field Field { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/BytesProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class BytesProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class BytesProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "bytes";
3129
[JsonInclude]
3230
[JsonPropertyName("field")]
3331
public Elastic.Clients.Elasticsearch.Field Field { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CircleProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class CircleProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class CircleProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "circle";
3129
[JsonInclude]
3230
[JsonPropertyName("error_distance")]
3331
public double ErrorDistance { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ConvertProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class ConvertProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class ConvertProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "convert";
3129
[JsonInclude]
3230
[JsonPropertyName("field")]
3331
public Elastic.Clients.Elasticsearch.Field Field { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CsvProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class CsvProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class CsvProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "csv";
3129
[JsonInclude]
3230
[JsonPropertyName("description")]
3331
public string? Description { get; set; }

src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateIndexNameProcessor.g.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
#nullable restore
2525
namespace Elastic.Clients.Elasticsearch.Ingest
2626
{
27-
public partial class DateIndexNameProcessor : ProcessorBase, IProcessorContainerVariant
27+
public partial class DateIndexNameProcessor : ProcessorBase, IProcessorVariant
2828
{
29-
[JsonIgnore]
30-
string IProcessorContainerVariant.ProcessorContainerVariantName => "date_index_name";
3129
[JsonInclude]
3230
[JsonPropertyName("date_formats")]
3331
public IEnumerable<string> DateFormats { get; set; }

0 commit comments

Comments
 (0)