diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerAndVariantBase.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerAndVariantBase.cs deleted file mode 100644 index 9f2ebc52179..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerAndVariantBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; - -namespace Elastic.Clients.Elasticsearch; - -public abstract class ContainerAndVariantBase : ContainerVariantBase, IContainer where TVariantContainer : IContainer -{ - internal ContainerVariantBase Variant { get; } - - public ContainerAndVariantBase(ContainerVariantBase variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); -} diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerBase.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerBase.cs deleted file mode 100644 index da8401e6d13..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; - -namespace Elastic.Clients.Elasticsearch; - -public abstract class ContainerBase : IContainer -{ - internal ContainerVariantBase Variant { get; } - - internal ContainerBase(ContainerVariantBase variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); -} diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerVariantBase.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerVariantBase.cs deleted file mode 100644 index 77e6330db9c..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/ContainerVariantBase.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Text.Json.Serialization; - -namespace Elastic.Clients.Elasticsearch; - -public abstract class ContainerVariantBase -{ - [JsonIgnore] - internal abstract string VariantName { get; } -} - -public abstract class ContainerVariantBase : ContainerVariantBase where TVariantContainer : IContainer -{ - internal TVariantContainer WrapInContainer() => (TVariantContainer)Activator.CreateInstance(typeof(TVariantContainer), this); -} diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainer.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainer.cs deleted file mode 100644 index 6f8dbaa5c38..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainer.cs +++ /dev/null @@ -1,9 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -namespace Elastic.Clients.Elasticsearch; - -public interface IContainer -{ -} diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainerVariant.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainerVariant.cs deleted file mode 100644 index 10a5809e6f3..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/IContainerVariant.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -namespace Elastic.Clients.Elasticsearch; - -internal interface IContainerVariant -{ - string VariantName { get; } -} diff --git a/src/Elastic.Clients.Elasticsearch/Common/Containers/VariantDescriptorBase.cs b/src/Elastic.Clients.Elasticsearch/Common/Containers/VariantDescriptorBase.cs deleted file mode 100644 index b0b57678648..00000000000 --- a/src/Elastic.Clients.Elasticsearch/Common/Containers/VariantDescriptorBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -namespace Elastic.Clients.Elasticsearch; - -public abstract class VariantDescriptorBase : SerializableDescriptorBase where T : SerializableDescriptorBase -{ - internal string VariantName { get; private set; } - - protected void SetVariantName(string name) => VariantName = name; -} diff --git a/src/Elastic.Clients.Elasticsearch/FutureGenerated/FutureGenerated.cs b/src/Elastic.Clients.Elasticsearch/FutureGenerated/FutureGenerated.cs index 02af7f6e5c9..ecb16fb5b1b 100644 --- a/src/Elastic.Clients.Elasticsearch/FutureGenerated/FutureGenerated.cs +++ b/src/Elastic.Clients.Elasticsearch/FutureGenerated/FutureGenerated.cs @@ -5,58 +5,16 @@ using System.Collections.Generic; using System.Text.Json.Serialization; - namespace Elastic.Clients.Elasticsearch.QueryDsl { - // TODO - Generate more of these? + // TODO - Generate these public partial class TermQuery { - public static implicit operator QueryContainer(TermQuery termQuery) => new(termQuery); + public static implicit operator QueryContainer(TermQuery termQuery) => QueryContainer.Term(termQuery); } public partial class MatchAllQuery { - public static implicit operator QueryContainer(MatchAllQuery matchAllQuery) => new(matchAllQuery); - } - - public partial class QueryContainer - { - // TODO - Generate more of these! - public TermQuery Term => Variant as TermQuery; + public static implicit operator QueryContainer(MatchAllQuery matchAllQuery) => QueryContainer.MatchAll(matchAllQuery); } } - -namespace Elastic.Clients.Elasticsearch -{ - // Stubs until we generate these - Allows the code to compile so we can identify real errors. - - public partial class HttpHeaders : Dictionary>> - { - } - - public partial class Metadata : Dictionary - { - } - - //public partial class RuntimeFields : Dictionary - //{ - //} - - public partial class ApplicationsPrivileges : Dictionary - { - } - - public partial class Privileges : Dictionary - { - } - - public partial class ResourcePrivileges : Dictionary - { - } - - // TODO: Implement properly - [JsonConverter(typeof(PercentageConverter))] - public partial class Percentage - { - } -} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregationContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregationContainer.g.cs index 4c774f94c3f..f9c97b899c7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregationContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregationContainer.g.cs @@ -25,7 +25,7 @@ namespace Elastic.Clients.Elasticsearch.Aggregations { [JsonConverter(typeof(AggregationContainerConverter))] - public partial class AggregationContainer : IContainer + public partial class AggregationContainer { public AggregationContainer(AggregationBase variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); internal AggregationBase Variant { get; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/DateHistogramAggregation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/DateHistogramAggregation.g.cs index 3594bfb7b73..96932ca9ba8 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/DateHistogramAggregation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/DateHistogramAggregation.g.cs @@ -300,14 +300,12 @@ public override void Write(Utf8JsonWriter writer, DateHistogramAggregation value } [JsonConverter(typeof(DateHistogramAggregationConverter))] - public partial class DateHistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant + public partial class DateHistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant { public DateHistogramAggregation(string name) : base(name) { } - [JsonIgnore] - string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "date_histogram"; [JsonInclude] [JsonPropertyName("calendar_interval")] public Elastic.Clients.Elasticsearch.Aggregations.CalendarInterval? CalendarInterval { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/HistogramAggregation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/HistogramAggregation.g.cs index 780eebc7a81..b92f7bbd1cf 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/HistogramAggregation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/HistogramAggregation.g.cs @@ -232,14 +232,12 @@ public override void Write(Utf8JsonWriter writer, HistogramAggregation value, Js } [JsonConverter(typeof(HistogramAggregationConverter))] - public partial class HistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant + public partial class HistogramAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant { public HistogramAggregation(string name) : base(name) { } - [JsonIgnore] - string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "histogram"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field? Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/InferenceConfigContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/InferenceConfigContainer.g.cs index c4cecce619e..d3eb95719a4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/InferenceConfigContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/InferenceConfigContainer.g.cs @@ -24,16 +24,31 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Aggregations { - public interface IInferenceConfigContainerVariant + public interface IInferenceConfigVariant { - string InferenceConfigContainerVariantName { get; } } [JsonConverter(typeof(InferenceConfigContainerConverter))] - public partial class InferenceConfigContainer : IContainer + public partial class InferenceConfigContainer { - public InferenceConfigContainer(IInferenceConfigContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IInferenceConfigContainerVariant Variant { get; } + public InferenceConfigContainer(string variantName, IInferenceConfigVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IInferenceConfigVariant Variant { get; } + + internal string VariantName { get; } + + public static InferenceConfigContainer Classification(Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant) => new InferenceConfigContainer("classification", variant); + public static InferenceConfigContainer Regression(Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant) => new InferenceConfigContainer("regression", variant); } internal sealed class InferenceConfigContainerConverter : JsonConverter @@ -51,13 +66,13 @@ public override InferenceConfigContainer Read(ref Utf8JsonReader reader, Type ty if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigContainer(variant); + return new InferenceConfigContainer(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigContainer(variant); + return new InferenceConfigContainer(propertyName, variant); } throw new JsonException(); @@ -66,14 +81,14 @@ public override InferenceConfigContainer Read(ref Utf8JsonReader reader, Type ty public override void Write(Utf8JsonWriter writer, InferenceConfigContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.InferenceConfigContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions)value.Variant, options); break; } @@ -111,11 +126,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigContainerVariant variant, string variantName) + private void Set(IInferenceConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigContainer(variant); + Container = new InferenceConfigContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -176,11 +191,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigContainerVariant variant, string variantName) + private void Set(IInferenceConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigContainer(variant); + Container = new InferenceConfigContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/TermsAggregation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/TermsAggregation.g.cs index f11ccf16a7a..230e8e7bd1d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/TermsAggregation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/TermsAggregation.g.cs @@ -368,14 +368,12 @@ public override void Write(Utf8JsonWriter writer, TermsAggregation value, JsonSe } [JsonConverter(typeof(TermsAggregationConverter))] - public partial class TermsAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByContainerVariant + public partial class TermsAggregation : BucketAggregationBase, TransformManagement.IPivotGroupByVariant { public TermsAggregation(string name) : base(name) { } - [JsonIgnore] - string TransformManagement.IPivotGroupByContainerVariant.PivotGroupByContainerVariantName => "terms"; [JsonInclude] [JsonPropertyName("collect_mode")] public Elastic.Clients.Elasticsearch.Aggregations.TermsAggregationCollectMode? CollectMode { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AppendProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AppendProcessor.g.cs index 96a0ff452a8..d9fb4e102b4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AppendProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AppendProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class AppendProcessor : ProcessorBase, IProcessorContainerVariant + public partial class AppendProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "append"; [JsonInclude] [JsonPropertyName("allow_duplicates")] public bool? AllowDuplicates { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AttachmentProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AttachmentProcessor.g.cs index 197db86816e..84d7e2cc204 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AttachmentProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/AttachmentProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class AttachmentProcessor : ProcessorBase, IProcessorContainerVariant + public partial class AttachmentProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "attachment"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/BytesProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/BytesProcessor.g.cs index 2c26c9d124d..2ef82d26ad7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/BytesProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/BytesProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class BytesProcessor : ProcessorBase, IProcessorContainerVariant + public partial class BytesProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "bytes"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CircleProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CircleProcessor.g.cs index c7a4f7a9cc9..eed62aac6c2 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CircleProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CircleProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class CircleProcessor : ProcessorBase, IProcessorContainerVariant + public partial class CircleProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "circle"; [JsonInclude] [JsonPropertyName("error_distance")] public double ErrorDistance { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ConvertProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ConvertProcessor.g.cs index 2da8e485a87..0751c272c04 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ConvertProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ConvertProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class ConvertProcessor : ProcessorBase, IProcessorContainerVariant + public partial class ConvertProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "convert"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CsvProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CsvProcessor.g.cs index 290bb9563b5..622420607c3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CsvProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/CsvProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class CsvProcessor : ProcessorBase, IProcessorContainerVariant + public partial class CsvProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "csv"; [JsonInclude] [JsonPropertyName("description")] public string? Description { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateIndexNameProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateIndexNameProcessor.g.cs index c625db640c3..0cf0350b0fa 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateIndexNameProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateIndexNameProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class DateIndexNameProcessor : ProcessorBase, IProcessorContainerVariant + public partial class DateIndexNameProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "date_index_name"; [JsonInclude] [JsonPropertyName("date_formats")] public IEnumerable DateFormats { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateProcessor.g.cs index 0b3ff826a28..7ee5a15ce6d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DateProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class DateProcessor : ProcessorBase, IProcessorContainerVariant + public partial class DateProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "date"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DissectProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DissectProcessor.g.cs index 84d9805d1d7..79df466a9cb 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DissectProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DissectProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class DissectProcessor : ProcessorBase, IProcessorContainerVariant + public partial class DissectProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "dissect"; [JsonInclude] [JsonPropertyName("append_separator")] public string AppendSeparator { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DotExpanderProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DotExpanderProcessor.g.cs index fe0cc361f70..e867be20df4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DotExpanderProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DotExpanderProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class DotExpanderProcessor : ProcessorBase, IProcessorContainerVariant + public partial class DotExpanderProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "dot_expander"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DropProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DropProcessor.g.cs index 9f8c1ac60b6..f38e8a5eb59 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DropProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/DropProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class DropProcessor : ProcessorBase, IProcessorContainerVariant + public partial class DropProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "drop"; } public sealed partial class DropProcessorDescriptor : SerializableDescriptorBase> diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/EnrichProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/EnrichProcessor.g.cs index ef96aa0b463..c2fa576904f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/EnrichProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/EnrichProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class EnrichProcessor : ProcessorBase, IProcessorContainerVariant + public partial class EnrichProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "enrich"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/FailProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/FailProcessor.g.cs index f18e564387a..5ce607ac8c0 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/FailProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/FailProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class FailProcessor : ProcessorBase, IProcessorContainerVariant + public partial class FailProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "fail"; [JsonInclude] [JsonPropertyName("message")] public string Message { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ForeachProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ForeachProcessor.g.cs index fa1b3c86413..bbddd095b72 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ForeachProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ForeachProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class ForeachProcessor : ProcessorBase, IProcessorContainerVariant + public partial class ForeachProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "foreach"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GeoIpProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GeoIpProcessor.g.cs index 167eaadf949..6448e91e75a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GeoIpProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GeoIpProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class GeoIpProcessor : ProcessorBase, IProcessorContainerVariant + public partial class GeoIpProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "geoip"; [JsonInclude] [JsonPropertyName("database_file")] public string DatabaseFile { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GrokProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GrokProcessor.g.cs index ec5d4cfbdde..78b6e1af64a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GrokProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GrokProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class GrokProcessor : ProcessorBase, IProcessorContainerVariant + public partial class GrokProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "grok"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GsubProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GsubProcessor.g.cs index 7b98e550ef5..0cc8f45b2dc 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GsubProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/GsubProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class GsubProcessor : ProcessorBase, IProcessorContainerVariant + public partial class GsubProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "gsub"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfig.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfig.g.cs index dfe75968b06..d4511825b55 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfig.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfig.g.cs @@ -26,14 +26,29 @@ namespace Elastic.Clients.Elasticsearch.Ingest { public interface IInferenceConfigVariant { - string InferenceConfigVariantName { get; } } [JsonConverter(typeof(InferenceConfigConverter))] - public partial class InferenceConfig : IContainer + public partial class InferenceConfig { - public InferenceConfig(IInferenceConfigVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public InferenceConfig(string variantName, IInferenceConfigVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IInferenceConfigVariant Variant { get; } + + internal string VariantName { get; } + + public static InferenceConfig Classification(Elastic.Clients.Elasticsearch.Ingest.InferenceConfigClassification variant) => new InferenceConfig("classification", variant); + public static InferenceConfig Regression(Elastic.Clients.Elasticsearch.Ingest.InferenceConfigRegression variant) => new InferenceConfig("regression", variant); } internal sealed class InferenceConfigConverter : JsonConverter @@ -51,13 +66,13 @@ public override InferenceConfig Read(ref Utf8JsonReader reader, Type typeToConve if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfig(variant); + return new InferenceConfig(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfig(variant); + return new InferenceConfig(propertyName, variant); } throw new JsonException(); @@ -66,14 +81,14 @@ public override InferenceConfig Read(ref Utf8JsonReader reader, Type typeToConve public override void Write(Utf8JsonWriter writer, InferenceConfig value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.InferenceConfigVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ingest.InferenceConfigClassification variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.InferenceConfigClassification)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.InferenceConfigRegression variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.InferenceConfigRegression)value.Variant, options); break; } @@ -115,7 +130,7 @@ private void Set(IInferenceConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfig(variant); + Container = new InferenceConfig(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -180,7 +195,7 @@ private void Set(IInferenceConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfig(variant); + Container = new InferenceConfig(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigClassification.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigClassification.g.cs index eca7321a14b..33cb7cefc58 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigClassification.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigClassification.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ingest { public partial class InferenceConfigClassification : IInferenceConfigVariant { - [JsonIgnore] - string IInferenceConfigVariant.InferenceConfigVariantName => "classification"; [JsonInclude] [JsonPropertyName("num_top_classes")] public int? NumTopClasses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigRegression.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigRegression.g.cs index 2f58115193f..25598291108 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigRegression.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceConfigRegression.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ingest { public partial class InferenceConfigRegression : IInferenceConfigVariant { - [JsonIgnore] - string IInferenceConfigVariant.InferenceConfigVariantName => "regression"; [JsonInclude] [JsonPropertyName("num_top_feature_importance_values")] public int? NumTopFeatureImportanceValues { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceProcessor.g.cs index 65636e0f465..bc05c60acb4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/InferenceProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class InferenceProcessor : ProcessorBase, IProcessorContainerVariant + public partial class InferenceProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "inference"; [JsonInclude] [JsonPropertyName("field_map")] public Dictionary? FieldMap { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JoinProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JoinProcessor.g.cs index db9fc5b9664..dd971154e26 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JoinProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JoinProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class JoinProcessor : ProcessorBase, IProcessorContainerVariant + public partial class JoinProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "join"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JsonProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JsonProcessor.g.cs index ea71c613c61..9f396e2dada 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JsonProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/JsonProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class JsonProcessor : ProcessorBase, IProcessorContainerVariant + public partial class JsonProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "json"; [JsonInclude] [JsonPropertyName("add_to_root")] public bool AddToRoot { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/KeyValueProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/KeyValueProcessor.g.cs index 839a87c4641..7d090cb2da9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/KeyValueProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/KeyValueProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class KeyValueProcessor : ProcessorBase, IProcessorContainerVariant + public partial class KeyValueProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "kv"; [JsonInclude] [JsonPropertyName("exclude_keys")] public IEnumerable? ExcludeKeys { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/LowercaseProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/LowercaseProcessor.g.cs index bc348c550ec..933fb6a8275 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/LowercaseProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/LowercaseProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class LowercaseProcessor : ProcessorBase, IProcessorContainerVariant + public partial class LowercaseProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "lowercase"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/PipelineProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/PipelineProcessor.g.cs index d3e859d4dc8..5437d05df6b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/PipelineProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/PipelineProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class PipelineProcessor : ProcessorBase, IProcessorContainerVariant + public partial class PipelineProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "pipeline"; [JsonInclude] [JsonPropertyName("name")] public Elastic.Clients.Elasticsearch.Name Name { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ProcessorContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ProcessorContainer.g.cs index de0943bebec..395f00bd2a6 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ProcessorContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/ProcessorContainer.g.cs @@ -24,16 +24,62 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public interface IProcessorContainerVariant + public interface IProcessorVariant { - string ProcessorContainerVariantName { get; } } [JsonConverter(typeof(ProcessorContainerConverter))] - public partial class ProcessorContainer : IContainer + public partial class ProcessorContainer { - public ProcessorContainer(IProcessorContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IProcessorContainerVariant Variant { get; } + public ProcessorContainer(string variantName, IProcessorVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IProcessorVariant Variant { get; } + + internal string VariantName { get; } + + public static ProcessorContainer Append(Elastic.Clients.Elasticsearch.Ingest.AppendProcessor variant) => new ProcessorContainer("append", variant); + public static ProcessorContainer Attachment(Elastic.Clients.Elasticsearch.Ingest.AttachmentProcessor variant) => new ProcessorContainer("attachment", variant); + public static ProcessorContainer Bytes(Elastic.Clients.Elasticsearch.Ingest.BytesProcessor variant) => new ProcessorContainer("bytes", variant); + public static ProcessorContainer Circle(Elastic.Clients.Elasticsearch.Ingest.CircleProcessor variant) => new ProcessorContainer("circle", variant); + public static ProcessorContainer Convert(Elastic.Clients.Elasticsearch.Ingest.ConvertProcessor variant) => new ProcessorContainer("convert", variant); + public static ProcessorContainer Csv(Elastic.Clients.Elasticsearch.Ingest.CsvProcessor variant) => new ProcessorContainer("csv", variant); + public static ProcessorContainer Date(Elastic.Clients.Elasticsearch.Ingest.DateProcessor variant) => new ProcessorContainer("date", variant); + public static ProcessorContainer DateIndexName(Elastic.Clients.Elasticsearch.Ingest.DateIndexNameProcessor variant) => new ProcessorContainer("date_index_name", variant); + public static ProcessorContainer Dissect(Elastic.Clients.Elasticsearch.Ingest.DissectProcessor variant) => new ProcessorContainer("dissect", variant); + public static ProcessorContainer DotExpander(Elastic.Clients.Elasticsearch.Ingest.DotExpanderProcessor variant) => new ProcessorContainer("dot_expander", variant); + public static ProcessorContainer Drop(Elastic.Clients.Elasticsearch.Ingest.DropProcessor variant) => new ProcessorContainer("drop", variant); + public static ProcessorContainer Enrich(Elastic.Clients.Elasticsearch.Ingest.EnrichProcessor variant) => new ProcessorContainer("enrich", variant); + public static ProcessorContainer Fail(Elastic.Clients.Elasticsearch.Ingest.FailProcessor variant) => new ProcessorContainer("fail", variant); + public static ProcessorContainer Foreach(Elastic.Clients.Elasticsearch.Ingest.ForeachProcessor variant) => new ProcessorContainer("foreach", variant); + public static ProcessorContainer Geoip(Elastic.Clients.Elasticsearch.Ingest.GeoIpProcessor variant) => new ProcessorContainer("geoip", variant); + public static ProcessorContainer Grok(Elastic.Clients.Elasticsearch.Ingest.GrokProcessor variant) => new ProcessorContainer("grok", variant); + public static ProcessorContainer Gsub(Elastic.Clients.Elasticsearch.Ingest.GsubProcessor variant) => new ProcessorContainer("gsub", variant); + public static ProcessorContainer Inference(Elastic.Clients.Elasticsearch.Ingest.InferenceProcessor variant) => new ProcessorContainer("inference", variant); + public static ProcessorContainer Join(Elastic.Clients.Elasticsearch.Ingest.JoinProcessor variant) => new ProcessorContainer("join", variant); + public static ProcessorContainer Json(Elastic.Clients.Elasticsearch.Ingest.JsonProcessor variant) => new ProcessorContainer("json", variant); + public static ProcessorContainer Kv(Elastic.Clients.Elasticsearch.Ingest.KeyValueProcessor variant) => new ProcessorContainer("kv", variant); + public static ProcessorContainer Lowercase(Elastic.Clients.Elasticsearch.Ingest.LowercaseProcessor variant) => new ProcessorContainer("lowercase", variant); + public static ProcessorContainer Pipeline(Elastic.Clients.Elasticsearch.Ingest.PipelineProcessor variant) => new ProcessorContainer("pipeline", variant); + public static ProcessorContainer Remove(Elastic.Clients.Elasticsearch.Ingest.RemoveProcessor variant) => new ProcessorContainer("remove", variant); + public static ProcessorContainer Rename(Elastic.Clients.Elasticsearch.Ingest.RenameProcessor variant) => new ProcessorContainer("rename", variant); + public static ProcessorContainer Set(Elastic.Clients.Elasticsearch.Ingest.SetProcessor variant) => new ProcessorContainer("set", variant); + public static ProcessorContainer SetSecurityUser(Elastic.Clients.Elasticsearch.Ingest.SetSecurityUserProcessor variant) => new ProcessorContainer("set_security_user", variant); + public static ProcessorContainer Sort(Elastic.Clients.Elasticsearch.Ingest.SortProcessor variant) => new ProcessorContainer("sort", variant); + public static ProcessorContainer Split(Elastic.Clients.Elasticsearch.Ingest.SplitProcessor variant) => new ProcessorContainer("split", variant); + public static ProcessorContainer Trim(Elastic.Clients.Elasticsearch.Ingest.TrimProcessor variant) => new ProcessorContainer("trim", variant); + public static ProcessorContainer Uppercase(Elastic.Clients.Elasticsearch.Ingest.UppercaseProcessor variant) => new ProcessorContainer("uppercase", variant); + public static ProcessorContainer Urldecode(Elastic.Clients.Elasticsearch.Ingest.UrlDecodeProcessor variant) => new ProcessorContainer("urldecode", variant); + public static ProcessorContainer UserAgent(Elastic.Clients.Elasticsearch.Ingest.UserAgentProcessor variant) => new ProcessorContainer("user_agent", variant); } internal sealed class ProcessorContainerConverter : JsonConverter @@ -51,199 +97,199 @@ public override ProcessorContainer Read(ref Utf8JsonReader reader, Type typeToCo if (propertyName == "append") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "attachment") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "bytes") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "circle") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "convert") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "csv") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "date") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "date_index_name") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "dissect") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "dot_expander") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "drop") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "enrich") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "fail") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "foreach") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "geoip") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "grok") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "gsub") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "inference") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "join") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "json") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "kv") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "lowercase") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "pipeline") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "remove") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "rename") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "set") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "set_security_user") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "sort") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "split") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "trim") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "uppercase") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "urldecode") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } if (propertyName == "user_agent") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new ProcessorContainer(variant); + return new ProcessorContainer(propertyName, variant); } throw new JsonException(); @@ -252,107 +298,107 @@ public override ProcessorContainer Read(ref Utf8JsonReader reader, Type typeToCo public override void Write(Utf8JsonWriter writer, ProcessorContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.ProcessorContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ingest.AppendProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "append": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.AppendProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.AttachmentProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "attachment": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.AttachmentProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.BytesProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "bytes": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.BytesProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.CircleProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "circle": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.CircleProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.ConvertProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "convert": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.ConvertProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.CsvProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "csv": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.CsvProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.DateProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "date": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.DateProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.DateIndexNameProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "date_index_name": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.DateIndexNameProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.DissectProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "dissect": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.DissectProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.DotExpanderProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "dot_expander": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.DotExpanderProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.DropProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "drop": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.DropProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.EnrichProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "enrich": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.EnrichProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.FailProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "fail": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.FailProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.ForeachProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "foreach": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.ForeachProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.GeoIpProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "geoip": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.GeoIpProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.GrokProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "grok": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.GrokProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.GsubProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "gsub": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.GsubProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.InferenceProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "inference": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.InferenceProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.JoinProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "join": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.JoinProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.JsonProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "json": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.JsonProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.KeyValueProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "kv": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.KeyValueProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.LowercaseProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "lowercase": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.LowercaseProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.PipelineProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "pipeline": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.PipelineProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.RemoveProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "remove": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.RemoveProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.RenameProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "rename": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.RenameProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.SetProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "set": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.SetProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.SetSecurityUserProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "set_security_user": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.SetSecurityUserProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.SortProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "sort": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.SortProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.SplitProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "split": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.SplitProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.TrimProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "trim": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.TrimProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.UppercaseProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "uppercase": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.UppercaseProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.UrlDecodeProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "urldecode": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.UrlDecodeProcessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ingest.UserAgentProcessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "user_agent": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ingest.UserAgentProcessor)value.Variant, options); break; } @@ -390,11 +436,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IProcessorContainerVariant variant, string variantName) + private void Set(IProcessorVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new ProcessorContainer(variant); + Container = new ProcessorContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -517,11 +563,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IProcessorContainerVariant variant, string variantName) + private void Set(IProcessorVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new ProcessorContainer(variant); + Container = new ProcessorContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RemoveProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RemoveProcessor.g.cs index ce7a48805fd..04c0c7be8a9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RemoveProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RemoveProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class RemoveProcessor : ProcessorBase, IProcessorContainerVariant + public partial class RemoveProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "remove"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Fields Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RenameProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RenameProcessor.g.cs index dd31c17593d..aefc970907d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RenameProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/RenameProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class RenameProcessor : ProcessorBase, IProcessorContainerVariant + public partial class RenameProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "rename"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetProcessor.g.cs index e2bb290b343..5e3265aa276 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class SetProcessor : ProcessorBase, IProcessorContainerVariant + public partial class SetProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "set"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetSecurityUserProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetSecurityUserProcessor.g.cs index 6683398fd47..26752a50e7a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetSecurityUserProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SetSecurityUserProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class SetSecurityUserProcessor : ProcessorBase, IProcessorContainerVariant + public partial class SetSecurityUserProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "set_security_user"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SortProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SortProcessor.g.cs index 1bd9e82a69a..02633dfdb62 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SortProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SortProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class SortProcessor : ProcessorBase, IProcessorContainerVariant + public partial class SortProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "sort"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SplitProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SplitProcessor.g.cs index 83efc9359e4..ce0f8ac9e0f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SplitProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/SplitProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class SplitProcessor : ProcessorBase, IProcessorContainerVariant + public partial class SplitProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "split"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/TrimProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/TrimProcessor.g.cs index 545ed2cc2e5..7f3fb0915c1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/TrimProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/TrimProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class TrimProcessor : ProcessorBase, IProcessorContainerVariant + public partial class TrimProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "trim"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UppercaseProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UppercaseProcessor.g.cs index 8304fea3f5f..82efda46140 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UppercaseProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UppercaseProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class UppercaseProcessor : ProcessorBase, IProcessorContainerVariant + public partial class UppercaseProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "uppercase"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UrlDecodeProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UrlDecodeProcessor.g.cs index 50c4330ae3b..c8daf783edf 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UrlDecodeProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UrlDecodeProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class UrlDecodeProcessor : ProcessorBase, IProcessorContainerVariant + public partial class UrlDecodeProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "urldecode"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UserAgentProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UserAgentProcessor.g.cs index 924ca983d7f..2a657cc2887 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UserAgentProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/UserAgentProcessor.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ingest { - public partial class UserAgentProcessor : ProcessorBase, IProcessorContainerVariant + public partial class UserAgentProcessor : ProcessorBase, IProcessorVariant { - [JsonIgnore] - string IProcessorContainerVariant.ProcessorContainerVariantName => "user_agent"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs index e01e7a77534..edc3316bc3c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs @@ -24,14 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class ClassificationInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant, IInferenceConfigUpdateContainerVariant + public partial class ClassificationInferenceOptions : Aggregations.IInferenceConfigVariant, IInferenceConfigCreateVariant, IInferenceConfigUpdateVariant { - [JsonIgnore] - string Aggregations.IInferenceConfigContainerVariant.InferenceConfigContainerVariantName => "classification"; - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "classification"; - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "classification"; [JsonInclude] [JsonPropertyName("num_top_classes")] public int? NumTopClasses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisClassification.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisClassification.g.cs index a2505ca995d..0527064968b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisClassification.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisClassification.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeAnalysisClassification : DataframeAnalysis, IDataframeAnalysisContainerVariant + public partial class DataframeAnalysisClassification : DataframeAnalysis, IDataframeAnalysisVariant { - [JsonIgnore] - string IDataframeAnalysisContainerVariant.DataframeAnalysisContainerVariantName => "classification"; [JsonInclude] [JsonPropertyName("class_assignment_objective")] public string? ClassAssignmentObjective { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisContainer.g.cs index 3a959f5401a..3af252f0c9c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisContainer.g.cs @@ -24,16 +24,32 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public interface IDataframeAnalysisContainerVariant + public interface IDataframeAnalysisVariant { - string DataframeAnalysisContainerVariantName { get; } } [JsonConverter(typeof(DataframeAnalysisContainerConverter))] - public partial class DataframeAnalysisContainer : IContainer + public partial class DataframeAnalysisContainer { - public DataframeAnalysisContainer(IDataframeAnalysisContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IDataframeAnalysisContainerVariant Variant { get; } + public DataframeAnalysisContainer(string variantName, IDataframeAnalysisVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IDataframeAnalysisVariant Variant { get; } + + internal string VariantName { get; } + + public static DataframeAnalysisContainer Classification(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisClassification variant) => new DataframeAnalysisContainer("classification", variant); + public static DataframeAnalysisContainer OutlierDetection(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisOutlierDetection variant) => new DataframeAnalysisContainer("outlier_detection", variant); + public static DataframeAnalysisContainer Regression(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisRegression variant) => new DataframeAnalysisContainer("regression", variant); } internal sealed class DataframeAnalysisContainerConverter : JsonConverter @@ -51,19 +67,19 @@ public override DataframeAnalysisContainer Read(ref Utf8JsonReader reader, Type if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisContainer(variant); + return new DataframeAnalysisContainer(propertyName, variant); } if (propertyName == "outlier_detection") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisContainer(variant); + return new DataframeAnalysisContainer(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisContainer(variant); + return new DataframeAnalysisContainer(propertyName, variant); } throw new JsonException(); @@ -72,17 +88,17 @@ public override DataframeAnalysisContainer Read(ref Utf8JsonReader reader, Type public override void Write(Utf8JsonWriter writer, DataframeAnalysisContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.DataframeAnalysisContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisClassification variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisClassification)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisOutlierDetection variant: - JsonSerializer.Serialize(writer, variant, options); + case "outlier_detection": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisOutlierDetection)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisRegression variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisRegression)value.Variant, options); break; } @@ -120,11 +136,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IDataframeAnalysisContainerVariant variant, string variantName) + private void Set(IDataframeAnalysisVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeAnalysisContainer(variant); + Container = new DataframeAnalysisContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -187,11 +203,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IDataframeAnalysisContainerVariant variant, string variantName) + private void Set(IDataframeAnalysisVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeAnalysisContainer(variant); + Container = new DataframeAnalysisContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessor.g.cs index 2f4e5812d52..c7d0701660b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessor.g.cs @@ -26,14 +26,32 @@ namespace Elastic.Clients.Elasticsearch.Ml { public interface IDataframeAnalysisFeatureProcessorVariant { - string DataframeAnalysisFeatureProcessorVariantName { get; } } [JsonConverter(typeof(DataframeAnalysisFeatureProcessorConverter))] - public partial class DataframeAnalysisFeatureProcessor : IContainer + public partial class DataframeAnalysisFeatureProcessor { - public DataframeAnalysisFeatureProcessor(IDataframeAnalysisFeatureProcessorVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public DataframeAnalysisFeatureProcessor(string variantName, IDataframeAnalysisFeatureProcessorVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IDataframeAnalysisFeatureProcessorVariant Variant { get; } + + internal string VariantName { get; } + + public static DataframeAnalysisFeatureProcessor FrequencyEncoding(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorFrequencyEncoding variant) => new DataframeAnalysisFeatureProcessor("frequency_encoding", variant); + public static DataframeAnalysisFeatureProcessor MultiEncoding(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorMultiEncoding variant) => new DataframeAnalysisFeatureProcessor("multi_encoding", variant); + public static DataframeAnalysisFeatureProcessor NGramEncoding(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorNGramEncoding variant) => new DataframeAnalysisFeatureProcessor("n_gram_encoding", variant); + public static DataframeAnalysisFeatureProcessor OneHotEncoding(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorOneHotEncoding variant) => new DataframeAnalysisFeatureProcessor("one_hot_encoding", variant); + public static DataframeAnalysisFeatureProcessor TargetMeanEncoding(Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorTargetMeanEncoding variant) => new DataframeAnalysisFeatureProcessor("target_mean_encoding", variant); } internal sealed class DataframeAnalysisFeatureProcessorConverter : JsonConverter @@ -51,31 +69,31 @@ public override DataframeAnalysisFeatureProcessor Read(ref Utf8JsonReader reader if (propertyName == "frequency_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisFeatureProcessor(variant); + return new DataframeAnalysisFeatureProcessor(propertyName, variant); } if (propertyName == "multi_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisFeatureProcessor(variant); + return new DataframeAnalysisFeatureProcessor(propertyName, variant); } if (propertyName == "n_gram_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisFeatureProcessor(variant); + return new DataframeAnalysisFeatureProcessor(propertyName, variant); } if (propertyName == "one_hot_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisFeatureProcessor(variant); + return new DataframeAnalysisFeatureProcessor(propertyName, variant); } if (propertyName == "target_mean_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeAnalysisFeatureProcessor(variant); + return new DataframeAnalysisFeatureProcessor(propertyName, variant); } throw new JsonException(); @@ -84,23 +102,23 @@ public override DataframeAnalysisFeatureProcessor Read(ref Utf8JsonReader reader public override void Write(Utf8JsonWriter writer, DataframeAnalysisFeatureProcessor value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.DataframeAnalysisFeatureProcessorVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorFrequencyEncoding variant: - JsonSerializer.Serialize(writer, variant, options); + case "frequency_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorFrequencyEncoding)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorMultiEncoding variant: - JsonSerializer.Serialize(writer, variant, options); + case "multi_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorMultiEncoding)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorNGramEncoding variant: - JsonSerializer.Serialize(writer, variant, options); + case "n_gram_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorNGramEncoding)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorOneHotEncoding variant: - JsonSerializer.Serialize(writer, variant, options); + case "one_hot_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorOneHotEncoding)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorTargetMeanEncoding variant: - JsonSerializer.Serialize(writer, variant, options); + case "target_mean_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeAnalysisFeatureProcessorTargetMeanEncoding)value.Variant, options); break; } @@ -142,7 +160,7 @@ private void Set(IDataframeAnalysisFeatureProcessorVariant variant, string varia { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeAnalysisFeatureProcessor(variant); + Container = new DataframeAnalysisFeatureProcessor(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -213,7 +231,7 @@ private void Set(IDataframeAnalysisFeatureProcessorVariant variant, string varia { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeAnalysisFeatureProcessor(variant); + Container = new DataframeAnalysisFeatureProcessor(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorFrequencyEncoding.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorFrequencyEncoding.g.cs index a519c734434..3d4035af1a8 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorFrequencyEncoding.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorFrequencyEncoding.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class DataframeAnalysisFeatureProcessorFrequencyEncoding : IDataframeAnalysisFeatureProcessorVariant { - [JsonIgnore] - string IDataframeAnalysisFeatureProcessorVariant.DataframeAnalysisFeatureProcessorVariantName => "frequency_encoding"; [JsonInclude] [JsonPropertyName("feature_name")] public Elastic.Clients.Elasticsearch.Name FeatureName { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorMultiEncoding.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorMultiEncoding.g.cs index bf4abe87b78..9bffa44f126 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorMultiEncoding.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorMultiEncoding.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class DataframeAnalysisFeatureProcessorMultiEncoding : IDataframeAnalysisFeatureProcessorVariant { - [JsonIgnore] - string IDataframeAnalysisFeatureProcessorVariant.DataframeAnalysisFeatureProcessorVariantName => "multi_encoding"; [JsonInclude] [JsonPropertyName("processors")] public IEnumerable Processors { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorNGramEncoding.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorNGramEncoding.g.cs index 068db53daf4..41a4a99a70b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorNGramEncoding.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorNGramEncoding.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class DataframeAnalysisFeatureProcessorNGramEncoding : IDataframeAnalysisFeatureProcessorVariant { - [JsonIgnore] - string IDataframeAnalysisFeatureProcessorVariant.DataframeAnalysisFeatureProcessorVariantName => "n_gram_encoding"; [JsonInclude] [JsonPropertyName("custom")] public bool? Custom { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorOneHotEncoding.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorOneHotEncoding.g.cs index 65f307c14b7..a4813616705 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorOneHotEncoding.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorOneHotEncoding.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class DataframeAnalysisFeatureProcessorOneHotEncoding : IDataframeAnalysisFeatureProcessorVariant { - [JsonIgnore] - string IDataframeAnalysisFeatureProcessorVariant.DataframeAnalysisFeatureProcessorVariantName => "one_hot_encoding"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorTargetMeanEncoding.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorTargetMeanEncoding.g.cs index 9565482d569..b5f527582c7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorTargetMeanEncoding.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisFeatureProcessorTargetMeanEncoding.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class DataframeAnalysisFeatureProcessorTargetMeanEncoding : IDataframeAnalysisFeatureProcessorVariant { - [JsonIgnore] - string IDataframeAnalysisFeatureProcessorVariant.DataframeAnalysisFeatureProcessorVariantName => "target_mean_encoding"; [JsonInclude] [JsonPropertyName("default_value")] public int DefaultValue { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisOutlierDetection.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisOutlierDetection.g.cs index 30dfa70d4e9..fbad3a9fb7e 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisOutlierDetection.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisOutlierDetection.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeAnalysisOutlierDetection : IDataframeAnalysisContainerVariant + public partial class DataframeAnalysisOutlierDetection : IDataframeAnalysisVariant { - [JsonIgnore] - string IDataframeAnalysisContainerVariant.DataframeAnalysisContainerVariantName => "outlier_detection"; [JsonInclude] [JsonPropertyName("compute_feature_influence")] public bool? ComputeFeatureInfluence { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisRegression.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisRegression.g.cs index 56be0af6f77..c1078e9d1e3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisRegression.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeAnalysisRegression.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeAnalysisRegression : DataframeAnalysis, IDataframeAnalysisContainerVariant + public partial class DataframeAnalysisRegression : DataframeAnalysis, IDataframeAnalysisVariant { - [JsonIgnore] - string IDataframeAnalysisContainerVariant.DataframeAnalysisContainerVariantName => "regression"; [JsonInclude] [JsonPropertyName("loss_function")] public string? LossFunction { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationClassification.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationClassification.g.cs index 7f867b82a90..9d7d1321494 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationClassification.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationClassification.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeEvaluationClassification : IDataframeEvaluationContainerVariant + public partial class DataframeEvaluationClassification : IDataframeEvaluationVariant { - [JsonIgnore] - string IDataframeEvaluationContainerVariant.DataframeEvaluationContainerVariantName => "classification"; [JsonInclude] [JsonPropertyName("actual_field")] public Elastic.Clients.Elasticsearch.Field ActualField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationContainer.g.cs index 52ea191e419..9ff3e003f44 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationContainer.g.cs @@ -24,16 +24,32 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public interface IDataframeEvaluationContainerVariant + public interface IDataframeEvaluationVariant { - string DataframeEvaluationContainerVariantName { get; } } [JsonConverter(typeof(DataframeEvaluationContainerConverter))] - public partial class DataframeEvaluationContainer : IContainer + public partial class DataframeEvaluationContainer { - public DataframeEvaluationContainer(IDataframeEvaluationContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IDataframeEvaluationContainerVariant Variant { get; } + public DataframeEvaluationContainer(string variantName, IDataframeEvaluationVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IDataframeEvaluationVariant Variant { get; } + + internal string VariantName { get; } + + public static DataframeEvaluationContainer Classification(Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationClassification variant) => new DataframeEvaluationContainer("classification", variant); + public static DataframeEvaluationContainer OutlierDetection(Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationOutlierDetection variant) => new DataframeEvaluationContainer("outlier_detection", variant); + public static DataframeEvaluationContainer Regression(Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationRegression variant) => new DataframeEvaluationContainer("regression", variant); } internal sealed class DataframeEvaluationContainerConverter : JsonConverter @@ -51,19 +67,19 @@ public override DataframeEvaluationContainer Read(ref Utf8JsonReader reader, Typ if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeEvaluationContainer(variant); + return new DataframeEvaluationContainer(propertyName, variant); } if (propertyName == "outlier_detection") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeEvaluationContainer(variant); + return new DataframeEvaluationContainer(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new DataframeEvaluationContainer(variant); + return new DataframeEvaluationContainer(propertyName, variant); } throw new JsonException(); @@ -72,17 +88,17 @@ public override DataframeEvaluationContainer Read(ref Utf8JsonReader reader, Typ public override void Write(Utf8JsonWriter writer, DataframeEvaluationContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.DataframeEvaluationContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationClassification variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationClassification)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationOutlierDetection variant: - JsonSerializer.Serialize(writer, variant, options); + case "outlier_detection": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationOutlierDetection)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationRegression variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.DataframeEvaluationRegression)value.Variant, options); break; } @@ -120,11 +136,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IDataframeEvaluationContainerVariant variant, string variantName) + private void Set(IDataframeEvaluationVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeEvaluationContainer(variant); + Container = new DataframeEvaluationContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -187,11 +203,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IDataframeEvaluationContainerVariant variant, string variantName) + private void Set(IDataframeEvaluationVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new DataframeEvaluationContainer(variant); + Container = new DataframeEvaluationContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationOutlierDetection.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationOutlierDetection.g.cs index bff383500ce..ee59ff6143c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationOutlierDetection.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationOutlierDetection.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeEvaluationOutlierDetection : IDataframeEvaluationContainerVariant + public partial class DataframeEvaluationOutlierDetection : IDataframeEvaluationVariant { - [JsonIgnore] - string IDataframeEvaluationContainerVariant.DataframeEvaluationContainerVariantName => "outlier_detection"; [JsonInclude] [JsonPropertyName("actual_field")] public Elastic.Clients.Elasticsearch.Field ActualField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationRegression.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationRegression.g.cs index a2bf52d5c85..9dd8af735ed 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationRegression.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/DataframeEvaluationRegression.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class DataframeEvaluationRegression : IDataframeEvaluationContainerVariant + public partial class DataframeEvaluationRegression : IDataframeEvaluationVariant { - [JsonIgnore] - string IDataframeEvaluationContainerVariant.DataframeEvaluationContainerVariantName => "regression"; [JsonInclude] [JsonPropertyName("actual_field")] public Elastic.Clients.Elasticsearch.Field ActualField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceOptions.g.cs index 4536bbbedb8..9d571cdf719 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class FillMaskInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class FillMaskInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "fill_mask"; [JsonInclude] [JsonPropertyName("num_top_classes")] public int? NumTopClasses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs index a2f8d1ff5f8..8728bce07ea 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class FillMaskInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class FillMaskInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "fill_mask"; [JsonInclude] [JsonPropertyName("num_top_classes")] public int? NumTopClasses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FrequencyEncodingPreprocessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FrequencyEncodingPreprocessor.g.cs index 4bc4bcdf302..6a26f964669 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FrequencyEncodingPreprocessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FrequencyEncodingPreprocessor.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class FrequencyEncodingPreprocessor : IPreprocessorVariant { - [JsonIgnore] - string IPreprocessorVariant.PreprocessorVariantName => "frequency_encoding"; [JsonInclude] [JsonPropertyName("feature_name")] public string FeatureName { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs index fa9c4ba2f62..1c17a009d97 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs @@ -24,16 +24,38 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public interface IInferenceConfigCreateContainerVariant + public interface IInferenceConfigCreateVariant { - string InferenceConfigCreateContainerVariantName { get; } } [JsonConverter(typeof(InferenceConfigCreateContainerConverter))] - public partial class InferenceConfigCreateContainer : IContainer + public partial class InferenceConfigCreateContainer { - public InferenceConfigCreateContainer(IInferenceConfigCreateContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IInferenceConfigCreateContainerVariant Variant { get; } + public InferenceConfigCreateContainer(string variantName, IInferenceConfigCreateVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IInferenceConfigCreateVariant Variant { get; } + + internal string VariantName { get; } + + public static InferenceConfigCreateContainer Classification(Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant) => new InferenceConfigCreateContainer("classification", variant); + public static InferenceConfigCreateContainer FillMask(Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceOptions variant) => new InferenceConfigCreateContainer("fill_mask", variant); + public static InferenceConfigCreateContainer Ner(Elastic.Clients.Elasticsearch.Ml.NerInferenceOptions variant) => new InferenceConfigCreateContainer("ner", variant); + public static InferenceConfigCreateContainer PassThrough(Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceOptions variant) => new InferenceConfigCreateContainer("pass_through", variant); + public static InferenceConfigCreateContainer QuestionAnswering(Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceOptions variant) => new InferenceConfigCreateContainer("question_answering", variant); + public static InferenceConfigCreateContainer Regression(Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant) => new InferenceConfigCreateContainer("regression", variant); + public static InferenceConfigCreateContainer TextClassification(Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceOptions variant) => new InferenceConfigCreateContainer("text_classification", variant); + public static InferenceConfigCreateContainer TextEmbedding(Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceOptions variant) => new InferenceConfigCreateContainer("text_embedding", variant); + public static InferenceConfigCreateContainer ZeroShotClassification(Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceOptions variant) => new InferenceConfigCreateContainer("zero_shot_classification", variant); } internal sealed class InferenceConfigCreateContainerConverter : JsonConverter @@ -51,55 +73,55 @@ public override InferenceConfigCreateContainer Read(ref Utf8JsonReader reader, T if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "fill_mask") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "ner") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "pass_through") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "question_answering") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "text_classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "text_embedding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } if (propertyName == "zero_shot_classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigCreateContainer(variant); + return new InferenceConfigCreateContainer(propertyName, variant); } throw new JsonException(); @@ -108,35 +130,35 @@ public override InferenceConfigCreateContainer Read(ref Utf8JsonReader reader, T public override void Write(Utf8JsonWriter writer, InferenceConfigCreateContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.InferenceConfigCreateContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "fill_mask": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.NerInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "ner": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.NerInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "pass_through": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "question_answering": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "text_classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "text_embedding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "zero_shot_classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceOptions)value.Variant, options); break; } @@ -174,11 +196,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigCreateContainerVariant variant, string variantName) + private void Set(IInferenceConfigCreateVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigCreateContainer(variant); + Container = new InferenceConfigCreateContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -253,11 +275,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigCreateContainerVariant variant, string variantName) + private void Set(IInferenceConfigCreateVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigCreateContainer(variant); + Container = new InferenceConfigCreateContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs index 79c2c3ea65f..9016e9b2d04 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs @@ -24,16 +24,38 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public interface IInferenceConfigUpdateContainerVariant + public interface IInferenceConfigUpdateVariant { - string InferenceConfigUpdateContainerVariantName { get; } } [JsonConverter(typeof(InferenceConfigUpdateContainerConverter))] - public partial class InferenceConfigUpdateContainer : IContainer + public partial class InferenceConfigUpdateContainer { - public InferenceConfigUpdateContainer(IInferenceConfigUpdateContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IInferenceConfigUpdateContainerVariant Variant { get; } + public InferenceConfigUpdateContainer(string variantName, IInferenceConfigUpdateVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IInferenceConfigUpdateVariant Variant { get; } + + internal string VariantName { get; } + + public static InferenceConfigUpdateContainer Classification(Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant) => new InferenceConfigUpdateContainer("classification", variant); + public static InferenceConfigUpdateContainer FillMask(Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("fill_mask", variant); + public static InferenceConfigUpdateContainer Ner(Elastic.Clients.Elasticsearch.Ml.NerInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("ner", variant); + public static InferenceConfigUpdateContainer PassThrough(Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("pass_through", variant); + public static InferenceConfigUpdateContainer QuestionAnswering(Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("question_answering", variant); + public static InferenceConfigUpdateContainer Regression(Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant) => new InferenceConfigUpdateContainer("regression", variant); + public static InferenceConfigUpdateContainer TextClassification(Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("text_classification", variant); + public static InferenceConfigUpdateContainer TextEmbedding(Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("text_embedding", variant); + public static InferenceConfigUpdateContainer ZeroShotClassification(Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceUpdateOptions variant) => new InferenceConfigUpdateContainer("zero_shot_classification", variant); } internal sealed class InferenceConfigUpdateContainerConverter : JsonConverter @@ -51,55 +73,55 @@ public override InferenceConfigUpdateContainer Read(ref Utf8JsonReader reader, T if (propertyName == "classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "fill_mask") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "ner") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "pass_through") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "question_answering") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "text_classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "text_embedding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } if (propertyName == "zero_shot_classification") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new InferenceConfigUpdateContainer(variant); + return new InferenceConfigUpdateContainer(propertyName, variant); } throw new JsonException(); @@ -108,35 +130,35 @@ public override InferenceConfigUpdateContainer Read(ref Utf8JsonReader reader, T public override void Write(Utf8JsonWriter writer, InferenceConfigUpdateContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.InferenceConfigUpdateContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "fill_mask": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.NerInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "ner": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.NerInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "pass_through": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "question_answering": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "regression": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "text_classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "text_embedding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceUpdateOptions)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceUpdateOptions variant: - JsonSerializer.Serialize(writer, variant, options); + case "zero_shot_classification": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceUpdateOptions)value.Variant, options); break; } @@ -174,11 +196,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigUpdateContainerVariant variant, string variantName) + private void Set(IInferenceConfigUpdateVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigUpdateContainer(variant); + Container = new InferenceConfigUpdateContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -253,11 +275,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IInferenceConfigUpdateContainerVariant variant, string variantName) + private void Set(IInferenceConfigUpdateVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new InferenceConfigUpdateContainer(variant); + Container = new InferenceConfigUpdateContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceOptions.g.cs index e4762a098de..3ad05348ce3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class NerInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class NerInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "ner"; [JsonInclude] [JsonPropertyName("classification_labels")] public IEnumerable? ClassificationLabels { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs index ecbcde62275..0f8cd20b1d5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class NerInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class NerInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "ner"; [JsonInclude] [JsonPropertyName("results_field")] public string? ResultsField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpBertTokenizationConfig.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpBertTokenizationConfig.g.cs index 9ca9af9a7dd..7571869e3ea 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpBertTokenizationConfig.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpBertTokenizationConfig.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class NlpBertTokenizationConfig : ITokenizationConfigContainerVariant + public partial class NlpBertTokenizationConfig : ITokenizationConfigVariant { - [JsonIgnore] - string ITokenizationConfigContainerVariant.TokenizationConfigContainerVariantName => "bert"; [JsonInclude] [JsonPropertyName("do_lower_case")] public bool? DoLowerCase { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpRobertaTokenizationConfig.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpRobertaTokenizationConfig.g.cs index ab2301e6da3..786b6b5dff6 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpRobertaTokenizationConfig.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpRobertaTokenizationConfig.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class NlpRobertaTokenizationConfig : ITokenizationConfigContainerVariant + public partial class NlpRobertaTokenizationConfig : ITokenizationConfigVariant { - [JsonIgnore] - string ITokenizationConfigContainerVariant.TokenizationConfigContainerVariantName => "roberta"; [JsonInclude] [JsonPropertyName("add_prefix_space")] public bool? AddPrefixSpace { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/OneHotEncodingPreprocessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/OneHotEncodingPreprocessor.g.cs index 4b2a55b63b8..9f0a821004d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/OneHotEncodingPreprocessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/OneHotEncodingPreprocessor.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class OneHotEncodingPreprocessor : IPreprocessorVariant { - [JsonIgnore] - string IPreprocessorVariant.PreprocessorVariantName => "one_hot_encoding"; [JsonInclude] [JsonPropertyName("field")] public string Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceOptions.g.cs index 8c85bdfed18..5cd98a99a39 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class PassThroughInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class PassThroughInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "pass_through"; [JsonInclude] [JsonPropertyName("results_field")] public string? ResultsField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs index c2345c66755..4dd48e548f4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class PassThroughInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class PassThroughInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "pass_through"; [JsonInclude] [JsonPropertyName("results_field")] public string? ResultsField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/Preprocessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/Preprocessor.g.cs index 81b82378eaf..83302b88da1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/Preprocessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/Preprocessor.g.cs @@ -26,14 +26,30 @@ namespace Elastic.Clients.Elasticsearch.Ml { public interface IPreprocessorVariant { - string PreprocessorVariantName { get; } } [JsonConverter(typeof(PreprocessorConverter))] - public partial class Preprocessor : IContainer + public partial class Preprocessor { - public Preprocessor(IPreprocessorVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public Preprocessor(string variantName, IPreprocessorVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IPreprocessorVariant Variant { get; } + + internal string VariantName { get; } + + public static Preprocessor FrequencyEncoding(Elastic.Clients.Elasticsearch.Ml.FrequencyEncodingPreprocessor variant) => new Preprocessor("frequency_encoding", variant); + public static Preprocessor OneHotEncoding(Elastic.Clients.Elasticsearch.Ml.OneHotEncodingPreprocessor variant) => new Preprocessor("one_hot_encoding", variant); + public static Preprocessor TargetMeanEncoding(Elastic.Clients.Elasticsearch.Ml.TargetMeanEncodingPreprocessor variant) => new Preprocessor("target_mean_encoding", variant); } internal sealed class PreprocessorConverter : JsonConverter @@ -51,19 +67,19 @@ public override Preprocessor Read(ref Utf8JsonReader reader, Type typeToConvert, if (propertyName == "frequency_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new Preprocessor(variant); + return new Preprocessor(propertyName, variant); } if (propertyName == "one_hot_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new Preprocessor(variant); + return new Preprocessor(propertyName, variant); } if (propertyName == "target_mean_encoding") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new Preprocessor(variant); + return new Preprocessor(propertyName, variant); } throw new JsonException(); @@ -72,17 +88,17 @@ public override Preprocessor Read(ref Utf8JsonReader reader, Type typeToConvert, public override void Write(Utf8JsonWriter writer, Preprocessor value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.PreprocessorVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.FrequencyEncodingPreprocessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "frequency_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.FrequencyEncodingPreprocessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.OneHotEncodingPreprocessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "one_hot_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.OneHotEncodingPreprocessor)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.TargetMeanEncodingPreprocessor variant: - JsonSerializer.Serialize(writer, variant, options); + case "target_mean_encoding": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.TargetMeanEncodingPreprocessor)value.Variant, options); break; } @@ -124,7 +140,7 @@ private void Set(IPreprocessorVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new Preprocessor(variant); + Container = new Preprocessor(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -191,7 +207,7 @@ private void Set(IPreprocessorVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new Preprocessor(variant); + Container = new Preprocessor(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs index 9d0e3db03cb..5d19c084076 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class QuestionAnsweringInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class QuestionAnsweringInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "question_answering"; [JsonInclude] [JsonPropertyName("max_answer_length")] public int? MaxAnswerLength { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs index c8946955b29..f3898cc66f7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class QuestionAnsweringInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class QuestionAnsweringInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "question_answering"; [JsonInclude] [JsonPropertyName("max_answer_length")] public int? MaxAnswerLength { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs index 9cb6f43708a..749021d5b53 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs @@ -24,14 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class RegressionInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant, IInferenceConfigUpdateContainerVariant + public partial class RegressionInferenceOptions : Aggregations.IInferenceConfigVariant, IInferenceConfigCreateVariant, IInferenceConfigUpdateVariant { - [JsonIgnore] - string Aggregations.IInferenceConfigContainerVariant.InferenceConfigContainerVariantName => "regression"; - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "regression"; - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "regression"; [JsonInclude] [JsonPropertyName("num_top_feature_importance_values")] public int? NumTopFeatureImportanceValues { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TargetMeanEncodingPreprocessor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TargetMeanEncodingPreprocessor.g.cs index f7105bec832..ffdbede13b1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TargetMeanEncodingPreprocessor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TargetMeanEncodingPreprocessor.g.cs @@ -26,8 +26,6 @@ namespace Elastic.Clients.Elasticsearch.Ml { public partial class TargetMeanEncodingPreprocessor : IPreprocessorVariant { - [JsonIgnore] - string IPreprocessorVariant.PreprocessorVariantName => "target_mean_encoding"; [JsonInclude] [JsonPropertyName("default_value")] public double DefaultValue { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceOptions.g.cs index de310789d09..1da53f5ab6f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class TextClassificationInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class TextClassificationInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "text_classification"; [JsonInclude] [JsonPropertyName("classification_labels")] public IEnumerable? ClassificationLabels { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs index 8695c9b282f..ac7bc36346c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class TextClassificationInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class TextClassificationInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "text_classification"; [JsonInclude] [JsonPropertyName("classification_labels")] public IEnumerable? ClassificationLabels { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceOptions.g.cs index 99658f19ebc..444c47c18e0 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class TextEmbeddingInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class TextEmbeddingInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "text_embedding"; [JsonInclude] [JsonPropertyName("results_field")] public string? ResultsField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs index 625977dd22b..eb54dfc3834 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class TextEmbeddingInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class TextEmbeddingInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "text_embedding"; [JsonInclude] [JsonPropertyName("results_field")] public string? ResultsField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TokenizationConfigContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TokenizationConfigContainer.g.cs index 952757677b5..9b45e4be33b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TokenizationConfigContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TokenizationConfigContainer.g.cs @@ -24,16 +24,32 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public interface ITokenizationConfigContainerVariant + public interface ITokenizationConfigVariant { - string TokenizationConfigContainerVariantName { get; } } [JsonConverter(typeof(TokenizationConfigContainerConverter))] - public partial class TokenizationConfigContainer : IContainer + public partial class TokenizationConfigContainer { - public TokenizationConfigContainer(ITokenizationConfigContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal ITokenizationConfigContainerVariant Variant { get; } + public TokenizationConfigContainer(string variantName, ITokenizationConfigVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal ITokenizationConfigVariant Variant { get; } + + internal string VariantName { get; } + + public static TokenizationConfigContainer Bert(Elastic.Clients.Elasticsearch.Ml.NlpBertTokenizationConfig variant) => new TokenizationConfigContainer("bert", variant); + public static TokenizationConfigContainer Mpnet(Elastic.Clients.Elasticsearch.Ml.NlpBertTokenizationConfig variant) => new TokenizationConfigContainer("mpnet", variant); + public static TokenizationConfigContainer Roberta(Elastic.Clients.Elasticsearch.Ml.NlpRobertaTokenizationConfig variant) => new TokenizationConfigContainer("roberta", variant); } internal sealed class TokenizationConfigContainerConverter : JsonConverter @@ -51,13 +67,19 @@ public override TokenizationConfigContainer Read(ref Utf8JsonReader reader, Type if (propertyName == "bert") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new TokenizationConfigContainer(variant); + return new TokenizationConfigContainer(propertyName, variant); + } + + if (propertyName == "mpnet") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new TokenizationConfigContainer(propertyName, variant); } if (propertyName == "roberta") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new TokenizationConfigContainer(variant); + return new TokenizationConfigContainer(propertyName, variant); } throw new JsonException(); @@ -66,14 +88,17 @@ public override TokenizationConfigContainer Read(ref Utf8JsonReader reader, Type public override void Write(Utf8JsonWriter writer, TokenizationConfigContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.TokenizationConfigContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Ml.NlpBertTokenizationConfig variant: - JsonSerializer.Serialize(writer, variant, options); + case "bert": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.NlpBertTokenizationConfig)value.Variant, options); + break; + case "mpnet": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.NlpBertTokenizationConfig)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Ml.NlpRobertaTokenizationConfig variant: - JsonSerializer.Serialize(writer, variant, options); + case "roberta": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Ml.NlpRobertaTokenizationConfig)value.Variant, options); break; } @@ -111,11 +136,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(ITokenizationConfigContainerVariant variant, string variantName) + private void Set(ITokenizationConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new TokenizationConfigContainer(variant); + Container = new TokenizationConfigContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -142,6 +167,8 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o public void Bert(NlpBertTokenizationConfig variant) => Set(variant, "bert"); public void Bert(Action configure) => Set(configure, "bert"); + public void Mpnet(NlpBertTokenizationConfig variant) => Set(variant, "mpnet"); + public void Mpnet(Action configure) => Set(configure, "mpnet"); public void Roberta(NlpRobertaTokenizationConfig variant) => Set(variant, "roberta"); public void Roberta(Action configure) => Set(configure, "roberta"); } @@ -176,11 +203,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(ITokenizationConfigContainerVariant variant, string variantName) + private void Set(ITokenizationConfigVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new TokenizationConfigContainer(variant); + Container = new TokenizationConfigContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -207,6 +234,8 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o public void Bert(NlpBertTokenizationConfig variant) => Set(variant, "bert"); public void Bert(Action configure) => Set(configure, "bert"); + public void Mpnet(NlpBertTokenizationConfig variant) => Set(variant, "mpnet"); + public void Mpnet(Action configure) => Set(configure, "mpnet"); public void Roberta(NlpRobertaTokenizationConfig variant) => Set(variant, "roberta"); public void Roberta(Action configure) => Set(configure, "roberta"); } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceOptions.g.cs index 527ed6f6397..9da0c74a8e7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class ZeroShotClassificationInferenceOptions : IInferenceConfigCreateContainerVariant + public partial class ZeroShotClassificationInferenceOptions : IInferenceConfigCreateVariant { - [JsonIgnore] - string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "zero_shot_classification"; [JsonInclude] [JsonPropertyName("classification_labels")] public IEnumerable ClassificationLabels { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs index 60a0a098cb6..f81fb152394 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class ZeroShotClassificationInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + public partial class ZeroShotClassificationInferenceUpdateOptions : IInferenceConfigUpdateVariant { - [JsonIgnore] - string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "zero_shot_classification"; [JsonInclude] [JsonPropertyName("labels")] public IEnumerable Labels { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoolQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoolQuery.g.cs index 512ed6aa433..209b230ed98 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoolQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoolQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class BoolQuery : QueryBase, IQueryContainerVariant + public partial class BoolQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "bool"; [JsonInclude] [JsonPropertyName("filter")] public IEnumerable? Filter { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoostingQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoostingQuery.g.cs index 2492af73a78..5bcf67ce6b3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoostingQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/BoostingQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class BoostingQuery : QueryBase, IQueryContainerVariant + public partial class BoostingQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "boosting"; [JsonInclude] [JsonPropertyName("negative")] public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer Negative { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/CombinedFieldsQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/CombinedFieldsQuery.g.cs index 7e027b53358..0f797bd7b85 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/CombinedFieldsQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/CombinedFieldsQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class CombinedFieldsQuery : QueryBase, IQueryContainerVariant + public partial class CombinedFieldsQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "combined_fields"; [JsonInclude] [JsonPropertyName("auto_generate_synonyms_phrase_query")] public bool? AutoGenerateSynonymsPhraseQuery { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ConstantScoreQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ConstantScoreQuery.g.cs index 266e0b530e4..99dcc842281 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ConstantScoreQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ConstantScoreQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ConstantScoreQuery : QueryBase, IQueryContainerVariant + public partial class ConstantScoreQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "constant_score"; [JsonInclude] [JsonPropertyName("filter")] public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer Filter { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/DisMaxQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/DisMaxQuery.g.cs index c19d6f13e6a..7c3e1156737 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/DisMaxQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/DisMaxQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class DisMaxQuery : QueryBase, IQueryContainerVariant + public partial class DisMaxQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "dis_max"; [JsonInclude] [JsonPropertyName("queries")] public IEnumerable Queries { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ExistsQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ExistsQuery.g.cs index 8e92c3aa8c5..fecee652e31 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ExistsQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ExistsQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ExistsQuery : QueryBase, IQueryContainerVariant + public partial class ExistsQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "exists"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FieldValueFactorScoreFunction.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FieldValueFactorScoreFunction.g.cs index a272e9272d6..817b4f8e177 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FieldValueFactorScoreFunction.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FieldValueFactorScoreFunction.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class FieldValueFactorScoreFunction : IFunctionScoreContainerVariant + public partial class FieldValueFactorScoreFunction : IFunctionScoreVariant { - [JsonIgnore] - string IFunctionScoreContainerVariant.FunctionScoreContainerVariantName => "field_value_factor"; [JsonInclude] [JsonPropertyName("factor")] public double? Factor { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreContainer.g.cs index 66eb7a19a40..007ac222a2e 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreContainer.g.cs @@ -24,17 +24,32 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public interface IFunctionScoreContainerVariant + public interface IFunctionScoreVariant { - string FunctionScoreContainerVariantName { get; } } [JsonConverter(typeof(FunctionScoreContainerConverter))] - public partial class FunctionScoreContainer : IContainer + public partial class FunctionScoreContainer { - public FunctionScoreContainer(IFunctionScoreContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IFunctionScoreContainerVariant Variant { get; } + public FunctionScoreContainer(string variantName, IFunctionScoreVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IFunctionScoreVariant Variant { get; } + + internal string VariantName { get; } + public static FunctionScoreContainer FieldValueFactor(Elastic.Clients.Elasticsearch.QueryDsl.FieldValueFactorScoreFunction variant) => new FunctionScoreContainer("field_value_factor", variant); + public static FunctionScoreContainer RandomScore(Elastic.Clients.Elasticsearch.QueryDsl.RandomScoreFunction variant) => new FunctionScoreContainer("random_score", variant); + public static FunctionScoreContainer ScriptScore(Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreFunction variant) => new FunctionScoreContainer("script_score", variant); [JsonInclude] [JsonPropertyName("filter")] public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer? Filter { get; set; } @@ -59,19 +74,19 @@ public override FunctionScoreContainer Read(ref Utf8JsonReader reader, Type type if (propertyName == "field_value_factor") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new FunctionScoreContainer(variant); + return new FunctionScoreContainer(propertyName, variant); } if (propertyName == "random_score") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new FunctionScoreContainer(variant); + return new FunctionScoreContainer(propertyName, variant); } if (propertyName == "script_score") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new FunctionScoreContainer(variant); + return new FunctionScoreContainer(propertyName, variant); } throw new JsonException(); @@ -80,17 +95,17 @@ public override FunctionScoreContainer Read(ref Utf8JsonReader reader, Type type public override void Write(Utf8JsonWriter writer, FunctionScoreContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.FunctionScoreContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.QueryDsl.FieldValueFactorScoreFunction variant: - JsonSerializer.Serialize(writer, variant, options); + case "field_value_factor": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.FieldValueFactorScoreFunction)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.RandomScoreFunction variant: - JsonSerializer.Serialize(writer, variant, options); + case "random_score": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.RandomScoreFunction)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreFunction variant: - JsonSerializer.Serialize(writer, variant, options); + case "script_score": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreFunction)value.Variant, options); break; } @@ -128,11 +143,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IFunctionScoreContainerVariant variant, string variantName) + private void Set(IFunctionScoreVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new FunctionScoreContainer(variant); + Container = new FunctionScoreContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -195,11 +210,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IFunctionScoreContainerVariant variant, string variantName) + private void Set(IFunctionScoreVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new FunctionScoreContainer(variant); + Container = new FunctionScoreContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreQuery.g.cs index a5161d5b348..49546805808 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FunctionScoreQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class FunctionScoreQuery : QueryBase, IQueryContainerVariant + public partial class FunctionScoreQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "function_score"; [JsonInclude] [JsonPropertyName("boost_mode")] public Elastic.Clients.Elasticsearch.QueryDsl.FunctionBoostMode? BoostMode { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FuzzyQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FuzzyQuery.g.cs index b15d3833993..44344f86af4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FuzzyQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/FuzzyQuery.g.cs @@ -142,10 +142,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, FuzzyQuery value, Js } [JsonConverter(typeof(FuzzyQueryConverter))] - public partial class FuzzyQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class FuzzyQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "fuzzy"; [JsonInclude] [JsonPropertyName("fuzziness")] public Elastic.Clients.Elasticsearch.Fuzziness? Fuzziness { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoBoundingBoxQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoBoundingBoxQuery.g.cs index 7c457edac02..3b5f35ad717 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoBoundingBoxQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoBoundingBoxQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class GeoBoundingBoxQuery : QueryBase, IQueryContainerVariant + public partial class GeoBoundingBoxQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "geo_bounding_box"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoDistanceQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoDistanceQuery.g.cs index f67cbb87969..b8c026bd384 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoDistanceQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoDistanceQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class GeoDistanceQuery : QueryBase, IQueryContainerVariant + public partial class GeoDistanceQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "geo_distance"; [JsonInclude] [JsonPropertyName("distance")] public string? Distance { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoPolygonQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoPolygonQuery.g.cs index 878361a591c..754598df496 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoPolygonQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoPolygonQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class GeoPolygonQuery : QueryBase, IQueryContainerVariant + public partial class GeoPolygonQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "geo_polygon"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoShapeQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoShapeQuery.g.cs index c08e04dcf0b..67b7205ade5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoShapeQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/GeoShapeQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class GeoShapeQuery : QueryBase, IQueryContainerVariant + public partial class GeoShapeQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "geo_shape"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasChildQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasChildQuery.g.cs index e38ea1ce50c..091854ae44f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasChildQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasChildQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class HasChildQuery : QueryBase, IQueryContainerVariant + public partial class HasChildQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "has_child"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasParentQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasParentQuery.g.cs index beb042fb4d9..c0b6c597cff 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasParentQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/HasParentQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class HasParentQuery : QueryBase, IQueryContainerVariant + public partial class HasParentQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "has_parent"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IdsQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IdsQuery.g.cs index c7f86455026..71af725ed04 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IdsQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IdsQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IdsQuery : QueryBase, IQueryContainerVariant + public partial class IdsQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "ids"; [JsonInclude] [JsonPropertyName("values")] public Elastic.Clients.Elasticsearch.Ids? Values { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAllOf.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAllOf.g.cs index 1aca4099253..7dda6c2657f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAllOf.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAllOf.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsAllOf : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsAllOf : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "all_of"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "all_of"; [JsonInclude] [JsonPropertyName("filter")] public Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFilter? Filter { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAnyOf.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAnyOf.g.cs index a03826023ae..f15d1929a33 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAnyOf.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsAnyOf.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsAnyOf : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsAnyOf : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "any_of"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "any_of"; [JsonInclude] [JsonPropertyName("filter")] public Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFilter? Filter { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsContainer.g.cs index a69ae0d1d1f..2cdef3f4a28 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsContainer.g.cs @@ -24,16 +24,35 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public interface IIntervalsContainerVariant + public interface IIntervalsVariant { - string IntervalsContainerVariantName { get; } } [JsonConverter(typeof(IntervalsContainerConverter))] - public partial class IntervalsContainer : IContainer + public partial class IntervalsContainer { - public IntervalsContainer(IIntervalsContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IIntervalsContainerVariant Variant { get; } + public IntervalsContainer(string variantName, IIntervalsVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IIntervalsVariant Variant { get; } + + internal string VariantName { get; } + + public static IntervalsContainer AllOf(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf variant) => new IntervalsContainer("all_of", variant); + public static IntervalsContainer AnyOf(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf variant) => new IntervalsContainer("any_of", variant); + public static IntervalsContainer Fuzzy(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy variant) => new IntervalsContainer("fuzzy", variant); + public static IntervalsContainer Match(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch variant) => new IntervalsContainer("match", variant); + public static IntervalsContainer Prefix(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix variant) => new IntervalsContainer("prefix", variant); + public static IntervalsContainer Wildcard(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard variant) => new IntervalsContainer("wildcard", variant); } internal sealed class IntervalsContainerConverter : JsonConverter @@ -51,37 +70,37 @@ public override IntervalsContainer Read(ref Utf8JsonReader reader, Type typeToCo if (propertyName == "all_of") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } if (propertyName == "any_of") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } if (propertyName == "fuzzy") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } if (propertyName == "match") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } if (propertyName == "prefix") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } if (propertyName == "wildcard") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsContainer(variant); + return new IntervalsContainer(propertyName, variant); } throw new JsonException(); @@ -90,26 +109,26 @@ public override IntervalsContainer Read(ref Utf8JsonReader reader, Type typeToCo public override void Write(Utf8JsonWriter writer, IntervalsContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.IntervalsContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf variant: - JsonSerializer.Serialize(writer, variant, options); + case "all_of": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf variant: - JsonSerializer.Serialize(writer, variant, options); + case "any_of": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy variant: - JsonSerializer.Serialize(writer, variant, options); + case "fuzzy": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch variant: - JsonSerializer.Serialize(writer, variant, options); + case "match": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix variant: - JsonSerializer.Serialize(writer, variant, options); + case "prefix": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard variant: - JsonSerializer.Serialize(writer, variant, options); + case "wildcard": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard)value.Variant, options); break; } @@ -147,11 +166,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IIntervalsContainerVariant variant, string variantName) + private void Set(IIntervalsVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsContainer(variant); + Container = new IntervalsContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -220,11 +239,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IIntervalsContainerVariant variant, string variantName) + private void Set(IIntervalsVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsContainer(variant); + Container = new IntervalsContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFilter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFilter.g.cs index cbd70105bc2..fc1113f34d0 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFilter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFilter.g.cs @@ -26,14 +26,26 @@ namespace Elastic.Clients.Elasticsearch.QueryDsl { public interface IIntervalsFilterVariant { - string IntervalsFilterVariantName { get; } } [JsonConverter(typeof(IntervalsFilterConverter))] - public partial class IntervalsFilter : IContainer + public partial class IntervalsFilter { - public IntervalsFilter(IIntervalsFilterVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public IntervalsFilter(string variantName, IIntervalsFilterVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IIntervalsFilterVariant Variant { get; } + + internal string VariantName { get; } } internal sealed class IntervalsFilterConverter : JsonConverter @@ -54,7 +66,7 @@ public override IntervalsFilter Read(ref Utf8JsonReader reader, Type typeToConve public override void Write(Utf8JsonWriter writer, IntervalsFilter value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.IntervalsFilterVariantName); + writer.WritePropertyName(value.VariantName); writer.WriteEndObject(); } } @@ -93,7 +105,7 @@ private void Set(IIntervalsFilterVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsFilter(variant); + Container = new IntervalsFilter(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -153,7 +165,7 @@ private void Set(IIntervalsFilterVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsFilter(variant); + Container = new IntervalsFilter(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFuzzy.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFuzzy.g.cs index 23220280d4f..4006616bdbf 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFuzzy.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsFuzzy.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsFuzzy : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsFuzzy : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "fuzzy"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "fuzzy"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsMatch.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsMatch.g.cs index 98e291c3363..18de5bc2bf4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsMatch.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsMatch.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsMatch : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsMatch : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "match"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "match"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsPrefix.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsPrefix.g.cs index a6007feabf1..4cff3825fbb 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsPrefix.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsPrefix.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsPrefix : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsPrefix : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "prefix"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "prefix"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsQuery.g.cs index 61457fc1d4e..07fc2f4affe 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsQuery.g.cs @@ -26,17 +26,33 @@ namespace Elastic.Clients.Elasticsearch.QueryDsl { public interface IIntervalsQueryVariant { - string IntervalsQueryVariantName { get; } } [JsonConverter(typeof(IntervalsQueryConverter))] - public partial class IntervalsQuery : FieldNameQueryBase, IContainer, IQueryContainerVariant + public partial class IntervalsQuery : FieldNameQueryBase, IQueryVariant { - public IntervalsQuery(IIntervalsQueryVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public IntervalsQuery(string variantName, IIntervalsQueryVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IIntervalsQueryVariant Variant { get; } - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "intervals"; + internal string VariantName { get; } + + public static IntervalsQuery AllOf(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf variant) => new IntervalsQuery("all_of", variant); + public static IntervalsQuery AnyOf(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf variant) => new IntervalsQuery("any_of", variant); + public static IntervalsQuery Fuzzy(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy variant) => new IntervalsQuery("fuzzy", variant); + public static IntervalsQuery Match(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch variant) => new IntervalsQuery("match", variant); + public static IntervalsQuery Prefix(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix variant) => new IntervalsQuery("prefix", variant); + public static IntervalsQuery Wildcard(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard variant) => new IntervalsQuery("wildcard", variant); } internal sealed class IntervalsQueryConverter : JsonConverter @@ -54,37 +70,37 @@ public override IntervalsQuery Read(ref Utf8JsonReader reader, Type typeToConver if (propertyName == "all_of") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } if (propertyName == "any_of") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } if (propertyName == "fuzzy") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } if (propertyName == "match") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } if (propertyName == "prefix") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } if (propertyName == "wildcard") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new IntervalsQuery(variant); + return new IntervalsQuery(propertyName, variant); } throw new JsonException(); @@ -93,26 +109,26 @@ public override IntervalsQuery Read(ref Utf8JsonReader reader, Type typeToConver public override void Write(Utf8JsonWriter writer, IntervalsQuery value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.IntervalsQueryVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf variant: - JsonSerializer.Serialize(writer, variant, options); + case "all_of": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAllOf)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf variant: - JsonSerializer.Serialize(writer, variant, options); + case "any_of": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsAnyOf)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy variant: - JsonSerializer.Serialize(writer, variant, options); + case "fuzzy": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsFuzzy)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch variant: - JsonSerializer.Serialize(writer, variant, options); + case "match": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsMatch)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix variant: - JsonSerializer.Serialize(writer, variant, options); + case "prefix": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsPrefix)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard variant: - JsonSerializer.Serialize(writer, variant, options); + case "wildcard": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsWildcard)value.Variant, options); break; } @@ -154,7 +170,7 @@ private void Set(IIntervalsQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsQuery(variant); + Container = new IntervalsQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -227,7 +243,7 @@ private void Set(IIntervalsQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new IntervalsQuery(variant); + Container = new IntervalsQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsWildcard.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsWildcard.g.cs index 031f62db8a6..3d9ba97fcce 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsWildcard.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/IntervalsWildcard.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class IntervalsWildcard : IIntervalsContainerVariant, IIntervalsQueryVariant + public partial class IntervalsWildcard : IIntervalsVariant, IIntervalsQueryVariant { - [JsonIgnore] - string IIntervalsContainerVariant.IntervalsContainerVariantName => "wildcard"; - [JsonIgnore] - string IIntervalsQueryVariant.IntervalsQueryVariantName => "wildcard"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/KnnQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/KnnQuery.g.cs index ab288665445..928d979b067 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/KnnQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/KnnQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class KnnQuery : QueryBase, IQueryContainerVariant + public partial class KnnQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "knn"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchAllQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchAllQuery.g.cs index 6a11a86bcd0..338c5a888df 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchAllQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchAllQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class MatchAllQuery : QueryBase, IQueryContainerVariant + public partial class MatchAllQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match_all"; } public sealed partial class MatchAllQueryDescriptor : SerializableDescriptorBase diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchBoolPrefixQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchBoolPrefixQuery.g.cs index 6c038abbb4b..457b695c371 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchBoolPrefixQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchBoolPrefixQuery.g.cs @@ -178,10 +178,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, MatchBoolPrefixQuery } [JsonConverter(typeof(MatchBoolPrefixQueryConverter))] - public partial class MatchBoolPrefixQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class MatchBoolPrefixQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match_bool_prefix"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchNoneQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchNoneQuery.g.cs index 44154fcd172..af3eccf2387 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchNoneQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchNoneQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class MatchNoneQuery : QueryBase, IQueryContainerVariant + public partial class MatchNoneQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match_none"; } public sealed partial class MatchNoneQueryDescriptor : SerializableDescriptorBase diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhrasePrefixQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhrasePrefixQuery.g.cs index 409bbeba1fe..8b66d3a54c8 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhrasePrefixQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhrasePrefixQuery.g.cs @@ -130,10 +130,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, MatchPhrasePrefixQue } [JsonConverter(typeof(MatchPhrasePrefixQueryConverter))] - public partial class MatchPhrasePrefixQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class MatchPhrasePrefixQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match_phrase_prefix"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhraseQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhraseQuery.g.cs index 98ca5522d94..df3aa73db6f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhraseQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchPhraseQuery.g.cs @@ -118,10 +118,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, MatchPhraseQuery val } [JsonConverter(typeof(MatchPhraseQueryConverter))] - public partial class MatchPhraseQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class MatchPhraseQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match_phrase"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchQuery.g.cs index 75002483399..c4ad8e9b457 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MatchQuery.g.cs @@ -214,10 +214,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, MatchQuery value, Js } [JsonConverter(typeof(MatchQueryConverter))] - public partial class MatchQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class MatchQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "match"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MoreLikeThisQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MoreLikeThisQuery.g.cs index e6fa800d08f..2f767b4ceba 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MoreLikeThisQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MoreLikeThisQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class MoreLikeThisQuery : QueryBase, IQueryContainerVariant + public partial class MoreLikeThisQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "more_like_this"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MultiMatchQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MultiMatchQuery.g.cs index fc49746d3e8..f3d99361ec1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MultiMatchQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/MultiMatchQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class MultiMatchQuery : QueryBase, IQueryContainerVariant + public partial class MultiMatchQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "multi_match"; [JsonInclude] [JsonPropertyName("analyzer")] public string? Analyzer { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/NestedQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/NestedQuery.g.cs index 4e86ad6edd5..74981a9b54f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/NestedQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/NestedQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class NestedQuery : QueryBase, IQueryContainerVariant + public partial class NestedQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "nested"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ParentIdQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ParentIdQuery.g.cs index c685e873285..9bdab5ad01b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ParentIdQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ParentIdQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ParentIdQuery : QueryBase, IQueryContainerVariant + public partial class ParentIdQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "parent_id"; [JsonInclude] [JsonPropertyName("id")] public Elastic.Clients.Elasticsearch.Id? Id { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PercolateQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PercolateQuery.g.cs index d6ab3d5b393..94e3d9f1c87 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PercolateQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PercolateQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class PercolateQuery : QueryBase, IQueryContainerVariant + public partial class PercolateQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "percolate"; [JsonInclude] [JsonPropertyName("document")] public object? Document { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PinnedQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PinnedQuery.g.cs index 1a9113136b1..518c03160d9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PinnedQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PinnedQuery.g.cs @@ -26,17 +26,27 @@ namespace Elastic.Clients.Elasticsearch.QueryDsl { public interface IPinnedQueryVariant { - string PinnedQueryVariantName { get; } } [JsonConverter(typeof(PinnedQueryConverter))] - public partial class PinnedQuery : QueryBase, IContainer, IQueryContainerVariant + public partial class PinnedQuery : QueryBase, IQueryVariant { - public PinnedQuery(IPinnedQueryVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public PinnedQuery(string variantName, IPinnedQueryVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal IPinnedQueryVariant Variant { get; } - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "pinned"; + internal string VariantName { get; } + [JsonInclude] [JsonPropertyName("organic")] public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer Organic { get; set; } @@ -60,7 +70,7 @@ public override PinnedQuery Read(ref Utf8JsonReader reader, Type typeToConvert, public override void Write(Utf8JsonWriter writer, PinnedQuery value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.PinnedQueryVariantName); + writer.WritePropertyName(value.VariantName); writer.WriteEndObject(); } } @@ -99,7 +109,7 @@ private void Set(IPinnedQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new PinnedQuery(variant); + Container = new PinnedQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -159,7 +169,7 @@ private void Set(IPinnedQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new PinnedQuery(variant); + Container = new PinnedQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PrefixQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PrefixQuery.g.cs index 0e0aca1af50..56f6d40c1d5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PrefixQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/PrefixQuery.g.cs @@ -106,10 +106,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, PrefixQuery value, J } [JsonConverter(typeof(PrefixQueryConverter))] - public partial class PrefixQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class PrefixQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "prefix"; [JsonInclude] [JsonPropertyName("case_insensitive")] public bool? CaseInsensitive { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryContainer.g.cs index 5c6799627ea..9c7501c1bd1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryContainer.g.cs @@ -24,16 +24,80 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public interface IQueryContainerVariant + public interface IQueryVariant { - string QueryContainerVariantName { get; } } [JsonConverter(typeof(QueryContainerConverter))] - public partial class QueryContainer : IContainer + public partial class QueryContainer { - public QueryContainer(IQueryContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IQueryContainerVariant Variant { get; } + public QueryContainer(string variantName, IQueryVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IQueryVariant Variant { get; } + + internal string VariantName { get; } + + public static QueryContainer Bool(Elastic.Clients.Elasticsearch.QueryDsl.BoolQuery variant) => new QueryContainer("bool", variant); + public static QueryContainer Boosting(Elastic.Clients.Elasticsearch.QueryDsl.BoostingQuery variant) => new QueryContainer("boosting", variant); + public static QueryContainer CombinedFields(Elastic.Clients.Elasticsearch.QueryDsl.CombinedFieldsQuery variant) => new QueryContainer("combined_fields", variant); + public static QueryContainer ConstantScore(Elastic.Clients.Elasticsearch.QueryDsl.ConstantScoreQuery variant) => new QueryContainer("constant_score", variant); + public static QueryContainer DisMax(Elastic.Clients.Elasticsearch.QueryDsl.DisMaxQuery variant) => new QueryContainer("dis_max", variant); + public static QueryContainer Exists(Elastic.Clients.Elasticsearch.QueryDsl.ExistsQuery variant) => new QueryContainer("exists", variant); + public static QueryContainer FieldMaskingSpan(Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery variant) => new QueryContainer("field_masking_span", variant); + public static QueryContainer FunctionScore(Elastic.Clients.Elasticsearch.QueryDsl.FunctionScoreQuery variant) => new QueryContainer("function_score", variant); + public static QueryContainer Fuzzy(Elastic.Clients.Elasticsearch.QueryDsl.FuzzyQuery variant) => new QueryContainer("fuzzy", variant); + public static QueryContainer GeoBoundingBox(Elastic.Clients.Elasticsearch.QueryDsl.GeoBoundingBoxQuery variant) => new QueryContainer("geo_bounding_box", variant); + public static QueryContainer GeoDistance(Elastic.Clients.Elasticsearch.QueryDsl.GeoDistanceQuery variant) => new QueryContainer("geo_distance", variant); + public static QueryContainer GeoPolygon(Elastic.Clients.Elasticsearch.QueryDsl.GeoPolygonQuery variant) => new QueryContainer("geo_polygon", variant); + public static QueryContainer GeoShape(Elastic.Clients.Elasticsearch.QueryDsl.GeoShapeQuery variant) => new QueryContainer("geo_shape", variant); + public static QueryContainer HasChild(Elastic.Clients.Elasticsearch.QueryDsl.HasChildQuery variant) => new QueryContainer("has_child", variant); + public static QueryContainer HasParent(Elastic.Clients.Elasticsearch.QueryDsl.HasParentQuery variant) => new QueryContainer("has_parent", variant); + public static QueryContainer Ids(Elastic.Clients.Elasticsearch.QueryDsl.IdsQuery variant) => new QueryContainer("ids", variant); + public static QueryContainer Intervals(Elastic.Clients.Elasticsearch.QueryDsl.IntervalsQuery variant) => new QueryContainer("intervals", variant); + public static QueryContainer Knn(Elastic.Clients.Elasticsearch.QueryDsl.KnnQuery variant) => new QueryContainer("knn", variant); + public static QueryContainer Match(Elastic.Clients.Elasticsearch.QueryDsl.MatchQuery variant) => new QueryContainer("match", variant); + public static QueryContainer MatchAll(Elastic.Clients.Elasticsearch.QueryDsl.MatchAllQuery variant) => new QueryContainer("match_all", variant); + public static QueryContainer MatchBoolPrefix(Elastic.Clients.Elasticsearch.QueryDsl.MatchBoolPrefixQuery variant) => new QueryContainer("match_bool_prefix", variant); + public static QueryContainer MatchNone(Elastic.Clients.Elasticsearch.QueryDsl.MatchNoneQuery variant) => new QueryContainer("match_none", variant); + public static QueryContainer MatchPhrase(Elastic.Clients.Elasticsearch.QueryDsl.MatchPhraseQuery variant) => new QueryContainer("match_phrase", variant); + public static QueryContainer MatchPhrasePrefix(Elastic.Clients.Elasticsearch.QueryDsl.MatchPhrasePrefixQuery variant) => new QueryContainer("match_phrase_prefix", variant); + public static QueryContainer MoreLikeThis(Elastic.Clients.Elasticsearch.QueryDsl.MoreLikeThisQuery variant) => new QueryContainer("more_like_this", variant); + public static QueryContainer MultiMatch(Elastic.Clients.Elasticsearch.QueryDsl.MultiMatchQuery variant) => new QueryContainer("multi_match", variant); + public static QueryContainer Nested(Elastic.Clients.Elasticsearch.QueryDsl.NestedQuery variant) => new QueryContainer("nested", variant); + public static QueryContainer ParentId(Elastic.Clients.Elasticsearch.QueryDsl.ParentIdQuery variant) => new QueryContainer("parent_id", variant); + public static QueryContainer Percolate(Elastic.Clients.Elasticsearch.QueryDsl.PercolateQuery variant) => new QueryContainer("percolate", variant); + public static QueryContainer Pinned(Elastic.Clients.Elasticsearch.QueryDsl.PinnedQuery variant) => new QueryContainer("pinned", variant); + public static QueryContainer Prefix(Elastic.Clients.Elasticsearch.QueryDsl.PrefixQuery variant) => new QueryContainer("prefix", variant); + public static QueryContainer QueryString(Elastic.Clients.Elasticsearch.QueryDsl.QueryStringQuery variant) => new QueryContainer("query_string", variant); + public static QueryContainer RankFeature(Elastic.Clients.Elasticsearch.QueryDsl.RankFeatureQuery variant) => new QueryContainer("rank_feature", variant); + public static QueryContainer Regexp(Elastic.Clients.Elasticsearch.QueryDsl.RegexpQuery variant) => new QueryContainer("regexp", variant); + public static QueryContainer Script(Elastic.Clients.Elasticsearch.QueryDsl.ScriptQuery variant) => new QueryContainer("script", variant); + public static QueryContainer ScriptScore(Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreQuery variant) => new QueryContainer("script_score", variant); + public static QueryContainer Shape(Elastic.Clients.Elasticsearch.QueryDsl.ShapeQuery variant) => new QueryContainer("shape", variant); + public static QueryContainer SimpleQueryString(Elastic.Clients.Elasticsearch.QueryDsl.SimpleQueryStringQuery variant) => new QueryContainer("simple_query_string", variant); + public static QueryContainer SpanContaining(Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery variant) => new QueryContainer("span_containing", variant); + public static QueryContainer SpanFirst(Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery variant) => new QueryContainer("span_first", variant); + public static QueryContainer SpanMulti(Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery variant) => new QueryContainer("span_multi", variant); + public static QueryContainer SpanNear(Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery variant) => new QueryContainer("span_near", variant); + public static QueryContainer SpanNot(Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery variant) => new QueryContainer("span_not", variant); + public static QueryContainer SpanOr(Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery variant) => new QueryContainer("span_or", variant); + public static QueryContainer SpanTerm(Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery variant) => new QueryContainer("span_term", variant); + public static QueryContainer SpanWithin(Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery variant) => new QueryContainer("span_within", variant); + public static QueryContainer Term(Elastic.Clients.Elasticsearch.QueryDsl.TermQuery variant) => new QueryContainer("term", variant); + public static QueryContainer Terms(Elastic.Clients.Elasticsearch.QueryDsl.TermsQuery variant) => new QueryContainer("terms", variant); + public static QueryContainer TermsSet(Elastic.Clients.Elasticsearch.QueryDsl.TermsSetQuery variant) => new QueryContainer("terms_set", variant); + public static QueryContainer Wildcard(Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery variant) => new QueryContainer("wildcard", variant); + public static QueryContainer Wrapper(Elastic.Clients.Elasticsearch.QueryDsl.WrapperQuery variant) => new QueryContainer("wrapper", variant); } internal sealed class QueryContainerConverter : JsonConverter @@ -51,307 +115,307 @@ public override QueryContainer Read(ref Utf8JsonReader reader, Type typeToConver if (propertyName == "bool") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "boosting") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "combined_fields") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "constant_score") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "dis_max") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "exists") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "field_masking_span") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "function_score") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "fuzzy") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "geo_bounding_box") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "geo_distance") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "geo_polygon") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "geo_shape") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "has_child") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "has_parent") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "ids") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "intervals") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "knn") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match_all") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match_bool_prefix") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match_none") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match_phrase") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "match_phrase_prefix") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "more_like_this") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "multi_match") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "nested") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "parent_id") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "percolate") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "pinned") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "prefix") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "query_string") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "rank_feature") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "regexp") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "script") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "script_score") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "shape") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "simple_query_string") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_containing") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_first") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_multi") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_near") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_not") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_or") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_term") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "span_within") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "term") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "terms") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "terms_set") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "wildcard") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } if (propertyName == "wrapper") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new QueryContainer(variant); + return new QueryContainer(propertyName, variant); } throw new JsonException(); @@ -360,161 +424,161 @@ public override QueryContainer Read(ref Utf8JsonReader reader, Type typeToConver public override void Write(Utf8JsonWriter writer, QueryContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.QueryContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.QueryDsl.BoolQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "bool": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.BoolQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.BoostingQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "boosting": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.BoostingQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.CombinedFieldsQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "combined_fields": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.CombinedFieldsQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ConstantScoreQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "constant_score": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ConstantScoreQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.DisMaxQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "dis_max": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.DisMaxQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ExistsQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "exists": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ExistsQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "field_masking_span": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.FunctionScoreQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "function_score": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.FunctionScoreQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.FuzzyQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "fuzzy": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.FuzzyQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.GeoBoundingBoxQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "geo_bounding_box": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.GeoBoundingBoxQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.GeoDistanceQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "geo_distance": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.GeoDistanceQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.GeoPolygonQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "geo_polygon": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.GeoPolygonQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.GeoShapeQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "geo_shape": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.GeoShapeQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.HasChildQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "has_child": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.HasChildQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.HasParentQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "has_parent": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.HasParentQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IdsQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "ids": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IdsQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.IntervalsQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "intervals": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.IntervalsQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.KnnQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "knn": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.KnnQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchAllQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match_all": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchAllQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchBoolPrefixQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match_bool_prefix": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchBoolPrefixQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchNoneQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match_none": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchNoneQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchPhraseQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match_phrase": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchPhraseQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MatchPhrasePrefixQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "match_phrase_prefix": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MatchPhrasePrefixQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MoreLikeThisQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "more_like_this": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MoreLikeThisQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.MultiMatchQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "multi_match": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.MultiMatchQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.NestedQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "nested": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.NestedQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ParentIdQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "parent_id": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ParentIdQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.PercolateQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "percolate": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.PercolateQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.PinnedQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "pinned": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.PinnedQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.PrefixQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "prefix": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.PrefixQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.QueryStringQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "query_string": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.QueryStringQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.RankFeatureQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "rank_feature": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.RankFeatureQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.RegexpQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "regexp": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.RegexpQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ScriptQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "script": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ScriptQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "script_score": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ScriptScoreQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.ShapeQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "shape": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.ShapeQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SimpleQueryStringQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "simple_query_string": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SimpleQueryStringQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_containing": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_first": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_multi": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_near": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_not": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_or": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_term": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_within": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.TermQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "term": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.TermQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.TermsQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "terms": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.TermsQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.TermsSetQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "terms_set": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.TermsSetQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "wildcard": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.WrapperQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "wrapper": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.WrapperQuery)value.Variant, options); break; } @@ -552,11 +616,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IQueryContainerVariant variant, string variantName) + private void Set(IQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new QueryContainer(variant); + Container = new QueryContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -715,11 +779,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IQueryContainerVariant variant, string variantName) + private void Set(IQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new QueryContainer(variant); + Container = new QueryContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryStringQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryStringQuery.g.cs index f840c6152e1..80d1a2522ab 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryStringQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/QueryStringQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class QueryStringQuery : QueryBase, IQueryContainerVariant + public partial class QueryStringQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "query_string"; [JsonInclude] [JsonPropertyName("allow_leading_wildcard")] public bool? AllowLeadingWildcard { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RandomScoreFunction.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RandomScoreFunction.g.cs index 6ec0c333012..7e76a7c4d65 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RandomScoreFunction.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RandomScoreFunction.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class RandomScoreFunction : IFunctionScoreContainerVariant + public partial class RandomScoreFunction : IFunctionScoreVariant { - [JsonIgnore] - string IFunctionScoreContainerVariant.FunctionScoreContainerVariantName => "random_score"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field? Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RankFeatureQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RankFeatureQuery.g.cs index 0d0dbf813a2..d3fa1a0268d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RankFeatureQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RankFeatureQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class RankFeatureQuery : QueryBase, IQueryContainerVariant + public partial class RankFeatureQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "rank_feature"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RegexpQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RegexpQuery.g.cs index 71af291bb0e..d0e41099b70 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RegexpQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/RegexpQuery.g.cs @@ -130,10 +130,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, RegexpQuery value, J } [JsonConverter(typeof(RegexpQueryConverter))] - public partial class RegexpQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class RegexpQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "regexp"; [JsonInclude] [JsonPropertyName("case_insensitive")] public bool? CaseInsensitive { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptQuery.g.cs index adeff599422..28a36f62fee 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ScriptQuery : QueryBase, IQueryContainerVariant + public partial class ScriptQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "script"; [JsonInclude] [JsonPropertyName("script")] public ScriptBase Script { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreFunction.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreFunction.g.cs index 17fbacfe9f1..4e3721188c3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreFunction.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreFunction.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ScriptScoreFunction : IFunctionScoreContainerVariant + public partial class ScriptScoreFunction : IFunctionScoreVariant { - [JsonIgnore] - string IFunctionScoreContainerVariant.FunctionScoreContainerVariantName => "script_score"; [JsonInclude] [JsonPropertyName("script")] public ScriptBase Script { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreQuery.g.cs index ecd35d5ecce..87995a20950 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ScriptScoreQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ScriptScoreQuery : QueryBase, IQueryContainerVariant + public partial class ScriptScoreQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "script_score"; [JsonInclude] [JsonPropertyName("min_score")] public float? MinScore { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ShapeQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ShapeQuery.g.cs index 93053a57cd0..72c9b62ac00 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ShapeQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/ShapeQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class ShapeQuery : QueryBase, IQueryContainerVariant + public partial class ShapeQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "shape"; [JsonInclude] [JsonPropertyName("ignore_unmapped")] public bool? IgnoreUnmapped { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SimpleQueryStringQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SimpleQueryStringQuery.g.cs index 679d5b68996..e5ca8d053ab 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SimpleQueryStringQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SimpleQueryStringQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SimpleQueryStringQuery : QueryBase, IQueryContainerVariant + public partial class SimpleQueryStringQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "simple_query_string"; [JsonInclude] [JsonPropertyName("analyze_wildcard")] public bool? AnalyzeWildcard { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanContainingQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanContainingQuery.g.cs index e66c161612a..77e841327ac 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanContainingQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanContainingQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanContainingQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanContainingQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_containing"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_containing"; [JsonInclude] [JsonPropertyName("big")] public Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery Big { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFieldMaskingQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFieldMaskingQuery.g.cs index a8fe03f5c00..8cf8b1b4324 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFieldMaskingQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFieldMaskingQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanFieldMaskingQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanFieldMaskingQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "field_masking_span"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "field_masking_span"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFirstQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFirstQuery.g.cs index 2666f69d765..166ebf7807c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFirstQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanFirstQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanFirstQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanFirstQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_first"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_first"; [JsonInclude] [JsonPropertyName("end")] public int End { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanMultiTermQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanMultiTermQuery.g.cs index 792c0fc5782..f6dfaa045df 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanMultiTermQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanMultiTermQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanMultiTermQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanMultiTermQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_multi"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_multi"; [JsonInclude] [JsonPropertyName("match")] public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer Match { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNearQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNearQuery.g.cs index 77d264744a0..ebe751059bf 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNearQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNearQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanNearQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanNearQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_near"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_near"; [JsonInclude] [JsonPropertyName("clauses")] public IEnumerable Clauses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNotQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNotQuery.g.cs index 7dad897a9bb..909f7b33b5a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNotQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanNotQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanNotQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanNotQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_not"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_not"; [JsonInclude] [JsonPropertyName("dist")] public int? Dist { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanOrQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanOrQuery.g.cs index dde4dc4f778..89247fea74b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanOrQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanOrQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanOrQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanOrQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_or"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_or"; [JsonInclude] [JsonPropertyName("clauses")] public IEnumerable Clauses { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs index 1cdae95bfd6..aa7d7250ca5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs @@ -26,14 +26,36 @@ namespace Elastic.Clients.Elasticsearch.QueryDsl { public interface ISpanQueryVariant { - string SpanQueryVariantName { get; } } [JsonConverter(typeof(SpanQueryConverter))] - public partial class SpanQuery : IContainer + public partial class SpanQuery { - public SpanQuery(ISpanQueryVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + public SpanQuery(string variantName, ISpanQueryVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + internal ISpanQueryVariant Variant { get; } + + internal string VariantName { get; } + + public static SpanQuery FieldMaskingSpan(Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery variant) => new SpanQuery("field_masking_span", variant); + public static SpanQuery SpanContaining(Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery variant) => new SpanQuery("span_containing", variant); + public static SpanQuery SpanFirst(Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery variant) => new SpanQuery("span_first", variant); + public static SpanQuery SpanMulti(Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery variant) => new SpanQuery("span_multi", variant); + public static SpanQuery SpanNear(Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery variant) => new SpanQuery("span_near", variant); + public static SpanQuery SpanNot(Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery variant) => new SpanQuery("span_not", variant); + public static SpanQuery SpanOr(Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery variant) => new SpanQuery("span_or", variant); + public static SpanQuery SpanTerm(Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery variant) => new SpanQuery("span_term", variant); + public static SpanQuery SpanWithin(Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery variant) => new SpanQuery("span_within", variant); } internal sealed class SpanQueryConverter : JsonConverter @@ -51,55 +73,55 @@ public override SpanQuery Read(ref Utf8JsonReader reader, Type typeToConvert, Js if (propertyName == "field_masking_span") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_containing") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_first") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_multi") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_near") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_not") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_or") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_term") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } if (propertyName == "span_within") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SpanQuery(variant); + return new SpanQuery(propertyName, variant); } throw new JsonException(); @@ -108,35 +130,35 @@ public override SpanQuery Read(ref Utf8JsonReader reader, Type typeToConvert, Js public override void Write(Utf8JsonWriter writer, SpanQuery value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.SpanQueryVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "field_masking_span": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanFieldMaskingQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_containing": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanContainingQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_first": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanFirstQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_multi": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanMultiTermQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_near": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanNearQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_not": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanNotQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_or": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanOrQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_term": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanTermQuery)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery variant: - JsonSerializer.Serialize(writer, variant, options); + case "span_within": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery)value.Variant, options); break; } @@ -178,7 +200,7 @@ private void Set(ISpanQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new SpanQuery(variant); + Container = new SpanQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -257,7 +279,7 @@ private void Set(ISpanQueryVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new SpanQuery(variant); + Container = new SpanQuery(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanTermQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanTermQuery.g.cs index 94e3bad2f8a..ff04786e417 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanTermQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanTermQuery.g.cs @@ -82,12 +82,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, SpanTermQuery value, } [JsonConverter(typeof(SpanTermQueryConverter))] - public partial class SpanTermQuery : FieldNameQueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanTermQuery : FieldNameQueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_term"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_term"; [JsonInclude] [JsonPropertyName("value")] public string Value { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanWithinQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanWithinQuery.g.cs index 85562823d75..c59e4edc056 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanWithinQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanWithinQuery.g.cs @@ -24,12 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class SpanWithinQuery : QueryBase, IQueryContainerVariant, ISpanQueryVariant + public partial class SpanWithinQuery : QueryBase, IQueryVariant, ISpanQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "span_within"; - [JsonIgnore] - string ISpanQueryVariant.SpanQueryVariantName => "span_within"; [JsonInclude] [JsonPropertyName("big")] public Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery Big { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermQuery.g.cs index 5e73c90aafa..99af682435a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermQuery.g.cs @@ -94,10 +94,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, TermQuery value, Jso } [JsonConverter(typeof(TermQueryConverter))] - public partial class TermQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class TermQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "term"; [JsonInclude] [JsonPropertyName("case_insensitive")] public bool? CaseInsensitive { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQuery.g.cs index 3ba26fa2659..9021d7cd7f1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class TermsQuery : QueryBase, IQueryContainerVariant + public partial class TermsQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "terms"; } public sealed partial class TermsQueryDescriptor : SerializableDescriptorBase diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsSetQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsSetQuery.g.cs index 443fe0f3439..e7955bdc51f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsSetQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsSetQuery.g.cs @@ -106,10 +106,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, TermsSetQuery value, } [JsonConverter(typeof(TermsSetQueryConverter))] - public partial class TermsSetQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class TermsSetQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "terms_set"; [JsonInclude] [JsonPropertyName("minimum_should_match_field")] public Elastic.Clients.Elasticsearch.Field? MinimumShouldMatchField { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WildcardQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WildcardQuery.g.cs index 65b370677f3..a4604257446 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WildcardQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WildcardQuery.g.cs @@ -122,10 +122,8 @@ internal override void WriteInternal(Utf8JsonWriter writer, WildcardQuery value, } [JsonConverter(typeof(WildcardQueryConverter))] - public partial class WildcardQuery : FieldNameQueryBase, IQueryContainerVariant + public partial class WildcardQuery : FieldNameQueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "wildcard"; [JsonInclude] [JsonPropertyName("case_insensitive")] public bool? CaseInsensitive { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WrapperQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WrapperQuery.g.cs index bb57db2f822..6cf89f55eba 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WrapperQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/WrapperQuery.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl { - public partial class WrapperQuery : QueryBase, IQueryContainerVariant + public partial class WrapperQuery : QueryBase, IQueryVariant { - [JsonIgnore] - string IQueryContainerVariant.QueryContainerVariantName => "wrapper"; [JsonInclude] [JsonPropertyName("query")] public string Query { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/PivotGroupByContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/PivotGroupByContainer.g.cs index a3e2c63c05e..fcbb63727ee 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/PivotGroupByContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/PivotGroupByContainer.g.cs @@ -24,16 +24,32 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.TransformManagement { - public interface IPivotGroupByContainerVariant + public interface IPivotGroupByVariant { - string PivotGroupByContainerVariantName { get; } } [JsonConverter(typeof(PivotGroupByContainerConverter))] - public partial class PivotGroupByContainer : IContainer + public partial class PivotGroupByContainer { - public PivotGroupByContainer(IPivotGroupByContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IPivotGroupByContainerVariant Variant { get; } + public PivotGroupByContainer(string variantName, IPivotGroupByVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IPivotGroupByVariant Variant { get; } + + internal string VariantName { get; } + + public static PivotGroupByContainer DateHistogram(Elastic.Clients.Elasticsearch.Aggregations.DateHistogramAggregation variant) => new PivotGroupByContainer("date_histogram", variant); + public static PivotGroupByContainer Histogram(Elastic.Clients.Elasticsearch.Aggregations.HistogramAggregation variant) => new PivotGroupByContainer("histogram", variant); + public static PivotGroupByContainer Terms(Elastic.Clients.Elasticsearch.Aggregations.TermsAggregation variant) => new PivotGroupByContainer("terms", variant); } internal sealed class PivotGroupByContainerConverter : JsonConverter @@ -51,19 +67,19 @@ public override PivotGroupByContainer Read(ref Utf8JsonReader reader, Type typeT if (propertyName == "date_histogram") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new PivotGroupByContainer(variant); + return new PivotGroupByContainer(propertyName, variant); } if (propertyName == "histogram") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new PivotGroupByContainer(variant); + return new PivotGroupByContainer(propertyName, variant); } if (propertyName == "terms") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new PivotGroupByContainer(variant); + return new PivotGroupByContainer(propertyName, variant); } throw new JsonException(); @@ -72,17 +88,17 @@ public override PivotGroupByContainer Read(ref Utf8JsonReader reader, Type typeT public override void Write(Utf8JsonWriter writer, PivotGroupByContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.PivotGroupByContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.Aggregations.DateHistogramAggregation variant: - JsonSerializer.Serialize(writer, variant, options); + case "date_histogram": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Aggregations.DateHistogramAggregation)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Aggregations.HistogramAggregation variant: - JsonSerializer.Serialize(writer, variant, options); + case "histogram": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Aggregations.HistogramAggregation)value.Variant, options); break; - case Elastic.Clients.Elasticsearch.Aggregations.TermsAggregation variant: - JsonSerializer.Serialize(writer, variant, options); + case "terms": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.Aggregations.TermsAggregation)value.Variant, options); break; } @@ -120,11 +136,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IPivotGroupByContainerVariant variant, string variantName) + private void Set(IPivotGroupByVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new PivotGroupByContainer(variant); + Container = new PivotGroupByContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -187,11 +203,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IPivotGroupByContainerVariant variant, string variantName) + private void Set(IPivotGroupByVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new PivotGroupByContainer(variant); + Container = new PivotGroupByContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicy.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicy.g.cs index 51ad565bc0a..e686547c5af 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicy.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicy.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.TransformManagement { - public partial class RetentionPolicy : IRetentionPolicyContainerVariant + public partial class RetentionPolicy : IRetentionPolicyVariant { - [JsonIgnore] - string IRetentionPolicyContainerVariant.RetentionPolicyContainerVariantName => "time"; [JsonInclude] [JsonPropertyName("field")] public Elastic.Clients.Elasticsearch.Field Field { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicyContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicyContainer.g.cs index 2d8dcafd4d7..859d36b612f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicyContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/RetentionPolicyContainer.g.cs @@ -24,16 +24,30 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.TransformManagement { - public interface IRetentionPolicyContainerVariant + public interface IRetentionPolicyVariant { - string RetentionPolicyContainerVariantName { get; } } [JsonConverter(typeof(RetentionPolicyContainerConverter))] - public partial class RetentionPolicyContainer : IContainer + public partial class RetentionPolicyContainer { - public RetentionPolicyContainer(IRetentionPolicyContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal IRetentionPolicyContainerVariant Variant { get; } + public RetentionPolicyContainer(string variantName, IRetentionPolicyVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal IRetentionPolicyVariant Variant { get; } + + internal string VariantName { get; } + + public static RetentionPolicyContainer Time(Elastic.Clients.Elasticsearch.TransformManagement.RetentionPolicy variant) => new RetentionPolicyContainer("time", variant); } internal sealed class RetentionPolicyContainerConverter : JsonConverter @@ -51,7 +65,7 @@ public override RetentionPolicyContainer Read(ref Utf8JsonReader reader, Type ty if (propertyName == "time") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new RetentionPolicyContainer(variant); + return new RetentionPolicyContainer(propertyName, variant); } throw new JsonException(); @@ -60,11 +74,11 @@ public override RetentionPolicyContainer Read(ref Utf8JsonReader reader, Type ty public override void Write(Utf8JsonWriter writer, RetentionPolicyContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.RetentionPolicyContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.TransformManagement.RetentionPolicy variant: - JsonSerializer.Serialize(writer, variant, options); + case "time": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.TransformManagement.RetentionPolicy)value.Variant, options); break; } @@ -102,11 +116,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IRetentionPolicyContainerVariant variant, string variantName) + private void Set(IRetentionPolicyVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new RetentionPolicyContainer(variant); + Container = new RetentionPolicyContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -165,11 +179,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(IRetentionPolicyContainerVariant variant, string variantName) + private void Set(IRetentionPolicyVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new RetentionPolicyContainer(variant); + Container = new RetentionPolicyContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/SyncContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/SyncContainer.g.cs index 9f9b8dbc79b..053b4de0db6 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/SyncContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/SyncContainer.g.cs @@ -24,16 +24,30 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.TransformManagement { - public interface ISyncContainerVariant + public interface ISyncVariant { - string SyncContainerVariantName { get; } } [JsonConverter(typeof(SyncContainerConverter))] - public partial class SyncContainer : IContainer + public partial class SyncContainer { - public SyncContainer(ISyncContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); - internal ISyncContainerVariant Variant { get; } + public SyncContainer(string variantName, ISyncVariant variant) + { + if (variantName is null) + throw new ArgumentNullException(nameof(variantName)); + if (variant is null) + throw new ArgumentNullException(nameof(variant)); + if (string.IsNullOrWhiteSpace(variantName)) + throw new ArgumentException("Variant name must not be empty or whitespace."); + VariantName = variantName; + Variant = variant; + } + + internal ISyncVariant Variant { get; } + + internal string VariantName { get; } + + public static SyncContainer Time(Elastic.Clients.Elasticsearch.TransformManagement.TimeSync variant) => new SyncContainer("time", variant); } internal sealed class SyncContainerConverter : JsonConverter @@ -51,7 +65,7 @@ public override SyncContainer Read(ref Utf8JsonReader reader, Type typeToConvert if (propertyName == "time") { var variant = JsonSerializer.Deserialize(ref reader, options); - return new SyncContainer(variant); + return new SyncContainer(propertyName, variant); } throw new JsonException(); @@ -60,11 +74,11 @@ public override SyncContainer Read(ref Utf8JsonReader reader, Type typeToConvert public override void Write(Utf8JsonWriter writer, SyncContainer value, JsonSerializerOptions options) { writer.WriteStartObject(); - writer.WritePropertyName(value.Variant.SyncContainerVariantName); - switch (value.Variant) + writer.WritePropertyName(value.VariantName); + switch (value.VariantName) { - case Elastic.Clients.Elasticsearch.TransformManagement.TimeSync variant: - JsonSerializer.Serialize(writer, variant, options); + case "time": + JsonSerializer.Serialize(writer, (Elastic.Clients.Elasticsearch.TransformManagement.TimeSync)value.Variant, options); break; } @@ -102,11 +116,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(ISyncContainerVariant variant, string variantName) + private void Set(ISyncVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new SyncContainer(variant); + Container = new SyncContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } @@ -165,11 +179,11 @@ private void Set(Action descriptorAction, string variantName) Descriptor = descriptor; } - private void Set(ISyncContainerVariant variant, string variantName) + private void Set(ISyncVariant variant, string variantName) { if (ContainsVariant) throw new Exception("TODO"); - Container = new SyncContainer(variant); + Container = new SyncContainer(variantName, variant); ContainedVariantName = variantName; ContainsVariant = true; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/TimeSync.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/TimeSync.g.cs index 9d6ab213053..9ecf25c9f80 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/TimeSync.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/TransformManagement/TimeSync.g.cs @@ -24,10 +24,8 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.TransformManagement { - public partial class TimeSync : ISyncContainerVariant + public partial class TimeSync : ISyncVariant { - [JsonIgnore] - string ISyncContainerVariant.SyncContainerVariantName => "time"; [JsonInclude] [JsonPropertyName("delay")] public Elastic.Clients.Elasticsearch.Time? Delay { get; set; } diff --git a/tests/Tests/PointInTime/PointInTimeApiTests.cs b/tests/Tests/PointInTime/PointInTimeApiTests.cs index 334293b0f48..ca9ea89436a 100644 --- a/tests/Tests/PointInTime/PointInTimeApiTests.cs +++ b/tests/Tests/PointInTime/PointInTimeApiTests.cs @@ -42,7 +42,7 @@ public PointInTimeApiTests(ReadOnlyCluster cluster, EndpointUsage usage) : base( v => new SearchRequest { Size = 1, - Query = new QueryContainer(new MatchAllQuery()), + Query = new MatchAllQuery(), Pit = new PointInTimeReference { Id = v, diff --git a/tests/Tests/Search/Count/CountApiTests.cs b/tests/Tests/Search/Count/CountApiTests.cs index 81812b41675..7a24da59f09 100644 --- a/tests/Tests/Search/Count/CountApiTests.cs +++ b/tests/Tests/Search/Count/CountApiTests.cs @@ -23,7 +23,7 @@ public CountApiTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluste protected override int ExpectStatusCode => 200; protected override Action> Fluent => c => c - .Query(new QueryContainer(new MatchQuery + .Query(QueryContainer.Match(new MatchQuery { Field = "name", Query = "NEST" @@ -33,7 +33,7 @@ public CountApiTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluste protected override CountRequest Initializer => new() { - Query = new QueryContainer(new MatchQuery + Query = QueryContainer.Match(new MatchQuery { Field = "name", Query = "NEST" @@ -65,7 +65,7 @@ public CountApiTests_NonGenericDescriptor(ReadOnlyCluster cluster, EndpointUsage protected override Action Fluent => c => c .Indices("project") - .Query(new QueryContainer(new MatchQuery + .Query(QueryContainer.Match(new MatchQuery { Field = "name", Query = "NEST" @@ -75,7 +75,7 @@ public CountApiTests_NonGenericDescriptor(ReadOnlyCluster cluster, EndpointUsage protected override CountRequest Initializer => new() { - Query = new QueryContainer(new MatchQuery + Query = QueryContainer.Match(new MatchQuery { Field = "name", Query = "NEST" @@ -115,7 +115,7 @@ public CountApi_FluentMatch_ApiTests(ReadOnlyCluster cluster, EndpointUsage usag protected override CountRequest Initializer => new() { - Query = new QueryContainer(new MatchQuery + Query = QueryContainer.Match(new MatchQuery { Field = "name", Query = "NEST" diff --git a/tests/Tests/Search/Search/SearchApiTests.cs b/tests/Tests/Search/Search/SearchApiTests.cs index 03998a5be94..29b269bca87 100644 --- a/tests/Tests/Search/Search/SearchApiTests.cs +++ b/tests/Tests/Search/Search/SearchApiTests.cs @@ -78,23 +78,23 @@ public SearchApiTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(clust { From = 10, Size = 20, - Query = new QueryContainer(new MatchAllQuery()), + Query = new MatchAllQuery(), Aggregations = new TermsAggregation("startDates") { Field = "startedOn" }, - PostFilter = new QueryContainer(new TermQuery + PostFilter = new TermQuery { Field = "state", Value = "Stable" - }) + } }; protected override string ExpectedUrlPathAndQuery => $"/project/_search"; protected override LazyResponses ClientUsage() => Calls( - (c, f) => c.Search(f), - (c, f) => c.SearchAsync(f), + (c, f) => c.Search(f), + (c, f) => c.SearchAsync(f), (c, r) => c.Search(r), (c, r) => c.SearchAsync(r) ); @@ -161,7 +161,7 @@ public SearchApiSequenceNumberPrimaryTermTests(ReadOnlyCluster cluster, Endpoint protected override SearchRequest Initializer => new() { SeqNoPrimaryTerm = true, - Query = new QueryContainer(new MatchAllQuery()), + Query = new MatchAllQuery(), }; protected override string ExpectedUrlPathAndQuery => $"/project/_search"; @@ -243,16 +243,16 @@ public SearchApiStoredFieldsTests(ReadOnlyCluster cluster, EndpointUsage usage) { From = 10, Size = 20, - Query = new QueryContainer(new MatchAllQuery()), + Query = new MatchAllQuery(), Aggregations = new TermsAggregation("startDates") { Field = "startedOn" }, - PostFilter = new QueryContainer(new TermQuery + PostFilter = new TermQuery { Field = "state", Value = "Stable" - }), + }, StoredFields = Infer.Fields(p => p.Name, p => p.NumberOfCommits) };