diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichPutPolicyRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichPutPolicyRequest.g.cs index 60872710e34..eea611d0b01 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichPutPolicyRequest.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichPutPolicyRequest.g.cs @@ -45,6 +45,10 @@ public EnrichPutPolicyRequest(Elastic.Clients.Elasticsearch.Name name) : base(r [JsonInclude] [JsonPropertyName("match")] public Elastic.Clients.Elasticsearch.Enrich.Policy? Match { get; set; } + + [JsonInclude] + [JsonPropertyName("range")] + public Elastic.Clients.Elasticsearch.Enrich.Policy? Range { get; set; } } public sealed partial class EnrichPutPolicyRequestDescriptor : RequestDescriptorBase, EnrichPutPolicyRequestParameters> @@ -79,6 +83,12 @@ public EnrichPutPolicyRequestDescriptor Name(Elastic.Clients.Elastics private Action> MatchDescriptorAction { get; set; } + private Elastic.Clients.Elasticsearch.Enrich.Policy? RangeValue { get; set; } + + private PolicyDescriptor RangeDescriptor { get; set; } + + private Action> RangeDescriptorAction { get; set; } + public EnrichPutPolicyRequestDescriptor GeoMatch(Elastic.Clients.Elasticsearch.Enrich.Policy? geoMatch) { GeoMatchDescriptor = null; @@ -127,6 +137,30 @@ public EnrichPutPolicyRequestDescriptor Match(Action Range(Elastic.Clients.Elasticsearch.Enrich.Policy? range) + { + RangeDescriptor = null; + RangeDescriptorAction = null; + RangeValue = range; + return Self; + } + + public EnrichPutPolicyRequestDescriptor Range(PolicyDescriptor descriptor) + { + RangeValue = null; + RangeDescriptorAction = null; + RangeDescriptor = descriptor; + return Self; + } + + public EnrichPutPolicyRequestDescriptor Range(Action> configure) + { + RangeValue = null; + RangeDescriptor = null; + RangeDescriptorAction = configure; + return Self; + } + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) { writer.WriteStartObject(); @@ -162,6 +196,22 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o JsonSerializer.Serialize(writer, MatchValue, options); } + if (RangeDescriptor is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, RangeDescriptor, options); + } + else if (RangeDescriptorAction is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, new PolicyDescriptor(RangeDescriptorAction), options); + } + else if (RangeValue is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, RangeValue, options); + } + writer.WriteEndObject(); } } @@ -198,6 +248,12 @@ public EnrichPutPolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Name private Action MatchDescriptorAction { get; set; } + private Elastic.Clients.Elasticsearch.Enrich.Policy? RangeValue { get; set; } + + private PolicyDescriptor RangeDescriptor { get; set; } + + private Action RangeDescriptorAction { get; set; } + public EnrichPutPolicyRequestDescriptor GeoMatch(Elastic.Clients.Elasticsearch.Enrich.Policy? geoMatch) { GeoMatchDescriptor = null; @@ -246,6 +302,30 @@ public EnrichPutPolicyRequestDescriptor Match(Action configure return Self; } + public EnrichPutPolicyRequestDescriptor Range(Elastic.Clients.Elasticsearch.Enrich.Policy? range) + { + RangeDescriptor = null; + RangeDescriptorAction = null; + RangeValue = range; + return Self; + } + + public EnrichPutPolicyRequestDescriptor Range(PolicyDescriptor descriptor) + { + RangeValue = null; + RangeDescriptorAction = null; + RangeDescriptor = descriptor; + return Self; + } + + public EnrichPutPolicyRequestDescriptor Range(Action configure) + { + RangeValue = null; + RangeDescriptor = null; + RangeDescriptorAction = configure; + return Self; + } + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) { writer.WriteStartObject(); @@ -281,6 +361,22 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o JsonSerializer.Serialize(writer, MatchValue, options); } + if (RangeDescriptor is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, RangeDescriptor, options); + } + else if (RangeDescriptorAction is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, new PolicyDescriptor(RangeDescriptorAction), options); + } + else if (RangeValue is not null) + { + writer.WritePropertyName("range"); + JsonSerializer.Serialize(writer, RangeValue, options); + } + writer.WriteEndObject(); } } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enrich/Configuration.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enrich/Configuration.g.cs index 0bd49b70437..7bf743e9139 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enrich/Configuration.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enrich/Configuration.g.cs @@ -33,5 +33,9 @@ public partial class Configuration [JsonInclude] [JsonPropertyName("match")] public Elastic.Clients.Elasticsearch.Enrich.Policy Match { get; init; } + + [JsonInclude] + [JsonPropertyName("range")] + public Elastic.Clients.Elasticsearch.Enrich.Policy Range { get; init; } } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enums/Enums.Security.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enums/Enums.Security.g.cs index 9aa8c012618..f2a921f8c95 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enums/Enums.Security.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Enums/Enums.Security.g.cs @@ -181,6 +181,8 @@ public enum ClusterPrivilege ManageIndexTemplates, [EnumMember(Value = "manage_ilm")] ManageIlm, + [EnumMember(Value = "manage_enrich")] + ManageEnrich, [EnumMember(Value = "manage_ccr")] ManageCcr, [EnumMember(Value = "manage_api_key")] @@ -260,6 +262,8 @@ public override ClusterPrivilege Read(ref Utf8JsonReader reader, Type typeToConv return ClusterPrivilege.ManageIndexTemplates; case "manage_ilm": return ClusterPrivilege.ManageIlm; + case "manage_enrich": + return ClusterPrivilege.ManageEnrich; case "manage_ccr": return ClusterPrivilege.ManageCcr; case "manage_api_key": @@ -368,6 +372,9 @@ public override void Write(Utf8JsonWriter writer, ClusterPrivilege value, JsonSe case ClusterPrivilege.ManageIlm: writer.WriteStringValue("manage_ilm"); return; + case ClusterPrivilege.ManageEnrich: + writer.WriteStringValue("manage_enrich"); + return; case ClusterPrivilege.ManageCcr: writer.WriteStringValue("manage_ccr"); return; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Migration/MigrationFeature.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Migration/MigrationFeature.g.cs index 72faf353cdd..79a7ea670eb 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Migration/MigrationFeature.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Migration/MigrationFeature.g.cs @@ -29,5 +29,17 @@ public partial class MigrationFeature [JsonInclude] [JsonPropertyName("feature_name")] public string FeatureName { get; init; } + + [JsonInclude] + [JsonPropertyName("indices")] + public IReadOnlyCollection Indices { get; init; } + + [JsonInclude] + [JsonPropertyName("migration_status")] + public Elastic.Clients.Elasticsearch.Migration.MigrationStatus MigrationStatus { get; init; } + + [JsonInclude] + [JsonPropertyName("minimum_index_version")] + public string MinimumIndexVersion { get; init; } } } \ No newline at end of file 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 420ddee141d..e01e7a77534 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ClassificationInferenceOptions.g.cs @@ -24,12 +24,14 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class ClassificationInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant + public partial class ClassificationInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant, IInferenceConfigUpdateContainerVariant { [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/FillMaskInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..a2f8d1ff5f8 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/FillMaskInferenceUpdateOptions.g.cs @@ -0,0 +1,131 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class FillMaskInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "fill_mask"; + [JsonInclude] + [JsonPropertyName("num_top_classes")] + public int? NumTopClasses { get; set; } + + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class FillMaskInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal FillMaskInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public FillMaskInferenceUpdateOptionsDescriptor() : base() + { + } + + private int? NumTopClassesValue { get; set; } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public FillMaskInferenceUpdateOptionsDescriptor NumTopClasses(int? numTopClasses) + { + NumTopClassesValue = numTopClasses; + return Self; + } + + public FillMaskInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public FillMaskInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public FillMaskInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public FillMaskInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (NumTopClassesValue.HasValue) + { + writer.WritePropertyName("num_top_classes"); + writer.WriteNumberValue(NumTopClassesValue.Value); + } + + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file 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 ccbb76dae59..fa9c4ba2f62 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigCreateContainer.g.cs @@ -72,6 +72,12 @@ public override InferenceConfigCreateContainer Read(ref Utf8JsonReader reader, T return new InferenceConfigCreateContainer(variant); } + if (propertyName == "question_answering") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigCreateContainer(variant); + } + if (propertyName == "regression") { var variant = JsonSerializer.Deserialize(ref reader, options); @@ -117,6 +123,9 @@ public override void Write(Utf8JsonWriter writer, InferenceConfigCreateContainer case Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceOptions variant: JsonSerializer.Serialize(writer, variant, options); break; + case Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant: JsonSerializer.Serialize(writer, variant, options); break; @@ -202,6 +211,8 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o public void Ner(Action configure) => Set(configure, "ner"); public void PassThrough(PassThroughInferenceOptions variant) => Set(variant, "pass_through"); public void PassThrough(Action configure) => Set(configure, "pass_through"); + public void QuestionAnswering(QuestionAnsweringInferenceOptions variant) => Set(variant, "question_answering"); + public void QuestionAnswering(Action configure) => Set(configure, "question_answering"); public void Regression(RegressionInferenceOptions variant) => Set(variant, "regression"); public void Regression(Action> configure) => Set(configure, "regression"); public void TextClassification(TextClassificationInferenceOptions variant) => Set(variant, "text_classification"); @@ -279,6 +290,8 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o public void Ner(Action configure) => Set(configure, "ner"); public void PassThrough(PassThroughInferenceOptions variant) => Set(variant, "pass_through"); public void PassThrough(Action configure) => Set(configure, "pass_through"); + public void QuestionAnswering(QuestionAnsweringInferenceOptions variant) => Set(variant, "question_answering"); + public void QuestionAnswering(Action configure) => Set(configure, "question_answering"); public void Regression(RegressionInferenceOptions variant) => Set(variant, "regression"); public void Regression(Action configure) => Set(configure, "regression"); public void Regression(Action> configure) => Set(configure, "regression"); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs new file mode 100644 index 00000000000..79c2c3ea65f --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/InferenceConfigUpdateContainer.g.cs @@ -0,0 +1,305 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public interface IInferenceConfigUpdateContainerVariant + { + string InferenceConfigUpdateContainerVariantName { get; } + } + + [JsonConverter(typeof(InferenceConfigUpdateContainerConverter))] + public partial class InferenceConfigUpdateContainer : IContainer + { + public InferenceConfigUpdateContainer(IInferenceConfigUpdateContainerVariant variant) => Variant = variant ?? throw new ArgumentNullException(nameof(variant)); + internal IInferenceConfigUpdateContainerVariant Variant { get; } + } + + internal sealed class InferenceConfigUpdateContainerConverter : JsonConverter + { + public override InferenceConfigUpdateContainer Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var readerCopy = reader; + readerCopy.Read(); + if (readerCopy.TokenType != JsonTokenType.PropertyName) + { + throw new JsonException(); + } + + var propertyName = readerCopy.GetString(); + if (propertyName == "classification") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "fill_mask") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "ner") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "pass_through") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "question_answering") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "regression") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "text_classification") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "text_embedding") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + if (propertyName == "zero_shot_classification") + { + var variant = JsonSerializer.Deserialize(ref reader, options); + return new InferenceConfigUpdateContainer(variant); + } + + throw new JsonException(); + } + + public override void Write(Utf8JsonWriter writer, InferenceConfigUpdateContainer value, JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WritePropertyName(value.Variant.InferenceConfigUpdateContainerVariantName); + switch (value.Variant) + { + case Elastic.Clients.Elasticsearch.Ml.ClassificationInferenceOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.FillMaskInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.NerInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.PassThroughInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.QuestionAnsweringInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.RegressionInferenceOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.TextClassificationInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.TextEmbeddingInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + case Elastic.Clients.Elasticsearch.Ml.ZeroShotClassificationInferenceUpdateOptions variant: + JsonSerializer.Serialize(writer, variant, options); + break; + } + + writer.WriteEndObject(); + } + } + + public sealed partial class InferenceConfigUpdateContainerDescriptor : SerializableDescriptorBase> + { + internal InferenceConfigUpdateContainerDescriptor(Action> configure) => configure.Invoke(this); + public InferenceConfigUpdateContainerDescriptor() : base() + { + } + + internal bool ContainsVariant { get; private set; } + + internal string ContainedVariantName { get; private set; } + + internal InferenceConfigUpdateContainer Container { get; private set; } + + internal Descriptor Descriptor { get; private set; } + + internal Type DescriptorType { get; private set; } + + private void Set(Action descriptorAction, string variantName) + where T : Descriptor, new() + { + if (ContainsVariant) + throw new Exception("TODO"); + ContainedVariantName = variantName; + ContainsVariant = true; + DescriptorType = typeof(T); + var descriptor = new T(); + descriptorAction?.Invoke(descriptor); + Descriptor = descriptor; + } + + private void Set(IInferenceConfigUpdateContainerVariant variant, string variantName) + { + if (ContainsVariant) + throw new Exception("TODO"); + Container = new InferenceConfigUpdateContainer(variant); + ContainedVariantName = variantName; + ContainsVariant = true; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + if (!ContainsVariant) + { + writer.WriteNullValue(); + return; + } + + if (Container is not null) + { + JsonSerializer.Serialize(writer, Container, options); + return; + } + + writer.WriteStartObject(); + writer.WritePropertyName(ContainedVariantName); + JsonSerializer.Serialize(writer, Descriptor, DescriptorType, options); + writer.WriteEndObject(); + } + + public void Classification(ClassificationInferenceOptions variant) => Set(variant, "classification"); + public void Classification(Action configure) => Set(configure, "classification"); + public void FillMask(FillMaskInferenceUpdateOptions variant) => Set(variant, "fill_mask"); + public void FillMask(Action configure) => Set(configure, "fill_mask"); + public void Ner(NerInferenceUpdateOptions variant) => Set(variant, "ner"); + public void Ner(Action configure) => Set(configure, "ner"); + public void PassThrough(PassThroughInferenceUpdateOptions variant) => Set(variant, "pass_through"); + public void PassThrough(Action configure) => Set(configure, "pass_through"); + public void QuestionAnswering(QuestionAnsweringInferenceUpdateOptions variant) => Set(variant, "question_answering"); + public void QuestionAnswering(Action configure) => Set(configure, "question_answering"); + public void Regression(RegressionInferenceOptions variant) => Set(variant, "regression"); + public void Regression(Action> configure) => Set(configure, "regression"); + public void TextClassification(TextClassificationInferenceUpdateOptions variant) => Set(variant, "text_classification"); + public void TextClassification(Action configure) => Set(configure, "text_classification"); + public void TextEmbedding(TextEmbeddingInferenceUpdateOptions variant) => Set(variant, "text_embedding"); + public void TextEmbedding(Action configure) => Set(configure, "text_embedding"); + public void ZeroShotClassification(ZeroShotClassificationInferenceUpdateOptions variant) => Set(variant, "zero_shot_classification"); + public void ZeroShotClassification(Action configure) => Set(configure, "zero_shot_classification"); + } + + public sealed partial class InferenceConfigUpdateContainerDescriptor : SerializableDescriptorBase + { + internal InferenceConfigUpdateContainerDescriptor(Action configure) => configure.Invoke(this); + public InferenceConfigUpdateContainerDescriptor() : base() + { + } + + internal bool ContainsVariant { get; private set; } + + internal string ContainedVariantName { get; private set; } + + internal InferenceConfigUpdateContainer Container { get; private set; } + + internal Descriptor Descriptor { get; private set; } + + internal Type DescriptorType { get; private set; } + + private void Set(Action descriptorAction, string variantName) + where T : Descriptor, new() + { + if (ContainsVariant) + throw new Exception("TODO"); + ContainedVariantName = variantName; + ContainsVariant = true; + DescriptorType = typeof(T); + var descriptor = new T(); + descriptorAction?.Invoke(descriptor); + Descriptor = descriptor; + } + + private void Set(IInferenceConfigUpdateContainerVariant variant, string variantName) + { + if (ContainsVariant) + throw new Exception("TODO"); + Container = new InferenceConfigUpdateContainer(variant); + ContainedVariantName = variantName; + ContainsVariant = true; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + if (!ContainsVariant) + { + writer.WriteNullValue(); + return; + } + + if (Container is not null) + { + JsonSerializer.Serialize(writer, Container, options); + return; + } + + writer.WriteStartObject(); + writer.WritePropertyName(ContainedVariantName); + JsonSerializer.Serialize(writer, Descriptor, DescriptorType, options); + writer.WriteEndObject(); + } + + public void Classification(ClassificationInferenceOptions variant) => Set(variant, "classification"); + public void Classification(Action configure) => Set(configure, "classification"); + public void FillMask(FillMaskInferenceUpdateOptions variant) => Set(variant, "fill_mask"); + public void FillMask(Action configure) => Set(configure, "fill_mask"); + public void Ner(NerInferenceUpdateOptions variant) => Set(variant, "ner"); + public void Ner(Action configure) => Set(configure, "ner"); + public void PassThrough(PassThroughInferenceUpdateOptions variant) => Set(variant, "pass_through"); + public void PassThrough(Action configure) => Set(configure, "pass_through"); + public void QuestionAnswering(QuestionAnsweringInferenceUpdateOptions variant) => Set(variant, "question_answering"); + public void QuestionAnswering(Action configure) => Set(configure, "question_answering"); + public void Regression(RegressionInferenceOptions variant) => Set(variant, "regression"); + public void Regression(Action configure) => Set(configure, "regression"); + public void Regression(Action> configure) => Set(configure, "regression"); + public void TextClassification(TextClassificationInferenceUpdateOptions variant) => Set(variant, "text_classification"); + public void TextClassification(Action configure) => Set(configure, "text_classification"); + public void TextEmbedding(TextEmbeddingInferenceUpdateOptions variant) => Set(variant, "text_embedding"); + public void TextEmbedding(Action configure) => Set(configure, "text_embedding"); + public void ZeroShotClassification(ZeroShotClassificationInferenceUpdateOptions variant) => Set(variant, "zero_shot_classification"); + public void ZeroShotClassification(Action configure) => Set(configure, "zero_shot_classification"); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..ecbcde62275 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NerInferenceUpdateOptions.g.cs @@ -0,0 +1,113 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class NerInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "ner"; + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class NerInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal NerInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public NerInferenceUpdateOptionsDescriptor() : base() + { + } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public NerInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public NerInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public NerInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public NerInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpTokenizationUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpTokenizationUpdateOptions.g.cs new file mode 100644 index 00000000000..d86bb2c5d3d --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/NlpTokenizationUpdateOptions.g.cs @@ -0,0 +1,79 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class NlpTokenizationUpdateOptions + { + [JsonInclude] + [JsonPropertyName("span")] + public int? Span { get; set; } + + [JsonInclude] + [JsonPropertyName("truncate")] + public Elastic.Clients.Elasticsearch.Ml.TokenizationTruncate? Truncate { get; set; } + } + + public sealed partial class NlpTokenizationUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal NlpTokenizationUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public NlpTokenizationUpdateOptionsDescriptor() : base() + { + } + + private int? SpanValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.TokenizationTruncate? TruncateValue { get; set; } + + public NlpTokenizationUpdateOptionsDescriptor Span(int? span) + { + SpanValue = span; + return Self; + } + + public NlpTokenizationUpdateOptionsDescriptor Truncate(Elastic.Clients.Elasticsearch.Ml.TokenizationTruncate? truncate) + { + TruncateValue = truncate; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (SpanValue.HasValue) + { + writer.WritePropertyName("span"); + writer.WriteNumberValue(SpanValue.Value); + } + + if (TruncateValue is not null) + { + writer.WritePropertyName("truncate"); + JsonSerializer.Serialize(writer, TruncateValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..c2345c66755 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/PassThroughInferenceUpdateOptions.g.cs @@ -0,0 +1,113 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class PassThroughInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "pass_through"; + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class PassThroughInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal PassThroughInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public PassThroughInferenceUpdateOptionsDescriptor() : base() + { + } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public PassThroughInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public PassThroughInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public PassThroughInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public PassThroughInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs new file mode 100644 index 00000000000..9d0e3db03cb --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceOptions.g.cs @@ -0,0 +1,149 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class QuestionAnsweringInferenceOptions : IInferenceConfigCreateContainerVariant + { + [JsonIgnore] + string IInferenceConfigCreateContainerVariant.InferenceConfigCreateContainerVariantName => "question_answering"; + [JsonInclude] + [JsonPropertyName("max_answer_length")] + public int? MaxAnswerLength { get; set; } + + [JsonInclude] + [JsonPropertyName("num_top_classes")] + public int? NumTopClasses { get; set; } + + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.TokenizationConfigContainer? Tokenization { get; set; } + } + + public sealed partial class QuestionAnsweringInferenceOptionsDescriptor : SerializableDescriptorBase + { + internal QuestionAnsweringInferenceOptionsDescriptor(Action configure) => configure.Invoke(this); + public QuestionAnsweringInferenceOptionsDescriptor() : base() + { + } + + private int? MaxAnswerLengthValue { get; set; } + + private int? NumTopClassesValue { get; set; } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.TokenizationConfigContainer? TokenizationValue { get; set; } + + private TokenizationConfigContainerDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public QuestionAnsweringInferenceOptionsDescriptor MaxAnswerLength(int? maxAnswerLength) + { + MaxAnswerLengthValue = maxAnswerLength; + return Self; + } + + public QuestionAnsweringInferenceOptionsDescriptor NumTopClasses(int? numTopClasses) + { + NumTopClassesValue = numTopClasses; + return Self; + } + + public QuestionAnsweringInferenceOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public QuestionAnsweringInferenceOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.TokenizationConfigContainer? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public QuestionAnsweringInferenceOptionsDescriptor Tokenization(TokenizationConfigContainerDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public QuestionAnsweringInferenceOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (MaxAnswerLengthValue.HasValue) + { + writer.WritePropertyName("max_answer_length"); + writer.WriteNumberValue(MaxAnswerLengthValue.Value); + } + + if (NumTopClassesValue.HasValue) + { + writer.WritePropertyName("num_top_classes"); + writer.WriteNumberValue(NumTopClassesValue.Value); + } + + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new TokenizationConfigContainerDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..c8946955b29 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/QuestionAnsweringInferenceUpdateOptions.g.cs @@ -0,0 +1,163 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class QuestionAnsweringInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "question_answering"; + [JsonInclude] + [JsonPropertyName("max_answer_length")] + public int? MaxAnswerLength { get; set; } + + [JsonInclude] + [JsonPropertyName("num_top_classes")] + public int? NumTopClasses { get; set; } + + [JsonInclude] + [JsonPropertyName("question")] + public string Question { get; set; } + + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class QuestionAnsweringInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal QuestionAnsweringInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public QuestionAnsweringInferenceUpdateOptionsDescriptor() : base() + { + } + + private int? MaxAnswerLengthValue { get; set; } + + private int? NumTopClassesValue { get; set; } + + private string QuestionValue { get; set; } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor MaxAnswerLength(int? maxAnswerLength) + { + MaxAnswerLengthValue = maxAnswerLength; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor NumTopClasses(int? numTopClasses) + { + NumTopClassesValue = numTopClasses; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor Question(string question) + { + QuestionValue = question; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public QuestionAnsweringInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (MaxAnswerLengthValue.HasValue) + { + writer.WritePropertyName("max_answer_length"); + writer.WriteNumberValue(MaxAnswerLengthValue.Value); + } + + if (NumTopClassesValue.HasValue) + { + writer.WritePropertyName("num_top_classes"); + writer.WriteNumberValue(NumTopClassesValue.Value); + } + + writer.WritePropertyName("question"); + writer.WriteStringValue(QuestionValue); + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file 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 5e03d6afdd5..9cb6f43708a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/RegressionInferenceOptions.g.cs @@ -24,12 +24,14 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Ml { - public partial class RegressionInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant + public partial class RegressionInferenceOptions : Aggregations.IInferenceConfigContainerVariant, IInferenceConfigCreateContainerVariant, IInferenceConfigUpdateContainerVariant { [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/TextClassificationInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..8695c9b282f --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextClassificationInferenceUpdateOptions.g.cs @@ -0,0 +1,149 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class TextClassificationInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "text_classification"; + [JsonInclude] + [JsonPropertyName("classification_labels")] + public IEnumerable? ClassificationLabels { get; set; } + + [JsonInclude] + [JsonPropertyName("num_top_classes")] + public int? NumTopClasses { get; set; } + + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class TextClassificationInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal TextClassificationInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public TextClassificationInferenceUpdateOptionsDescriptor() : base() + { + } + + private IEnumerable? ClassificationLabelsValue { get; set; } + + private int? NumTopClassesValue { get; set; } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public TextClassificationInferenceUpdateOptionsDescriptor ClassificationLabels(IEnumerable? classificationLabels) + { + ClassificationLabelsValue = classificationLabels; + return Self; + } + + public TextClassificationInferenceUpdateOptionsDescriptor NumTopClasses(int? numTopClasses) + { + NumTopClassesValue = numTopClasses; + return Self; + } + + public TextClassificationInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public TextClassificationInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public TextClassificationInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public TextClassificationInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (ClassificationLabelsValue is not null) + { + writer.WritePropertyName("classification_labels"); + JsonSerializer.Serialize(writer, ClassificationLabelsValue, options); + } + + if (NumTopClassesValue.HasValue) + { + writer.WritePropertyName("num_top_classes"); + writer.WriteNumberValue(NumTopClassesValue.Value); + } + + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..625977dd22b --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TextEmbeddingInferenceUpdateOptions.g.cs @@ -0,0 +1,113 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class TextEmbeddingInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "text_embedding"; + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class TextEmbeddingInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal TextEmbeddingInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public TextEmbeddingInferenceUpdateOptionsDescriptor() : base() + { + } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public TextEmbeddingInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public TextEmbeddingInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public TextEmbeddingInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public TextEmbeddingInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentNodesStats.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentNodesStats.g.cs index 130370f4f75..b10669ec0f8 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentNodesStats.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentNodesStats.g.cs @@ -38,22 +38,18 @@ public partial class TrainedModelDeploymentNodesStats [JsonPropertyName("inference_count")] public int InferenceCount { get; init; } - [JsonInclude] - [JsonPropertyName("inference_threads")] - public int InferenceThreads { get; init; } - [JsonInclude] [JsonPropertyName("last_access")] public long LastAccess { get; init; } - [JsonInclude] - [JsonPropertyName("model_threads")] - public int ModelThreads { get; init; } - [JsonInclude] [JsonPropertyName("node")] public Elastic.Clients.Elasticsearch.Ml.DiscoveryNode Node { get; init; } + [JsonInclude] + [JsonPropertyName("number_of_allocations")] + public int NumberOfAllocations { get; init; } + [JsonInclude] [JsonPropertyName("number_of_pending_requests")] public int NumberOfPendingRequests { get; init; } @@ -70,6 +66,10 @@ public partial class TrainedModelDeploymentNodesStats [JsonPropertyName("start_time")] public long StartTime { get; init; } + [JsonInclude] + [JsonPropertyName("threads_per_allocation")] + public int ThreadsPerAllocation { get; init; } + [JsonInclude] [JsonPropertyName("timeout_count")] public int TimeoutCount { get; init; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentStats.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentStats.g.cs index 76b43b74d11..e8ab82f5f81 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentStats.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/TrainedModelDeploymentStats.g.cs @@ -38,22 +38,18 @@ public partial class TrainedModelDeploymentStats [JsonPropertyName("inference_count")] public int InferenceCount { get; init; } - [JsonInclude] - [JsonPropertyName("inference_threads")] - public int InferenceThreads { get; init; } - [JsonInclude] [JsonPropertyName("model_id")] public string ModelId { get; init; } - [JsonInclude] - [JsonPropertyName("model_threads")] - public int ModelThreads { get; init; } - [JsonInclude] [JsonPropertyName("nodes")] public Elastic.Clients.Elasticsearch.Ml.TrainedModelDeploymentNodesStats Nodes { get; init; } + [JsonInclude] + [JsonPropertyName("number_of_allocations")] + public int NumberOfAllocations { get; init; } + [JsonInclude] [JsonPropertyName("queue_capacity")] public int QueueCapacity { get; init; } @@ -74,6 +70,10 @@ public partial class TrainedModelDeploymentStats [JsonPropertyName("state")] public Elastic.Clients.Elasticsearch.Ml.DeploymentState State { get; init; } + [JsonInclude] + [JsonPropertyName("threads_per_allocation")] + public int ThreadsPerAllocation { get; init; } + [JsonInclude] [JsonPropertyName("timeout_count")] public int TimeoutCount { get; init; } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs new file mode 100644 index 00000000000..60a0a098cb6 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ml/ZeroShotClassificationInferenceUpdateOptions.g.cs @@ -0,0 +1,145 @@ +// 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. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text.Json; +using System.Text.Json.Serialization; + +#nullable restore +namespace Elastic.Clients.Elasticsearch.Ml +{ + public partial class ZeroShotClassificationInferenceUpdateOptions : IInferenceConfigUpdateContainerVariant + { + [JsonIgnore] + string IInferenceConfigUpdateContainerVariant.InferenceConfigUpdateContainerVariantName => "zero_shot_classification"; + [JsonInclude] + [JsonPropertyName("labels")] + public IEnumerable Labels { get; set; } + + [JsonInclude] + [JsonPropertyName("multi_label")] + public bool? MultiLabel { get; set; } + + [JsonInclude] + [JsonPropertyName("results_field")] + public string? ResultsField { get; set; } + + [JsonInclude] + [JsonPropertyName("tokenization")] + public Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? Tokenization { get; set; } + } + + public sealed partial class ZeroShotClassificationInferenceUpdateOptionsDescriptor : SerializableDescriptorBase + { + internal ZeroShotClassificationInferenceUpdateOptionsDescriptor(Action configure) => configure.Invoke(this); + public ZeroShotClassificationInferenceUpdateOptionsDescriptor() : base() + { + } + + private IEnumerable LabelsValue { get; set; } + + private bool? MultiLabelValue { get; set; } + + private string? ResultsFieldValue { get; set; } + + private Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? TokenizationValue { get; set; } + + private NlpTokenizationUpdateOptionsDescriptor TokenizationDescriptor { get; set; } + + private Action TokenizationDescriptorAction { get; set; } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor Labels(IEnumerable labels) + { + LabelsValue = labels; + return Self; + } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor MultiLabel(bool? multiLabel = true) + { + MultiLabelValue = multiLabel; + return Self; + } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor ResultsField(string? resultsField) + { + ResultsFieldValue = resultsField; + return Self; + } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor Tokenization(Elastic.Clients.Elasticsearch.Ml.NlpTokenizationUpdateOptions? tokenization) + { + TokenizationDescriptor = null; + TokenizationDescriptorAction = null; + TokenizationValue = tokenization; + return Self; + } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor Tokenization(NlpTokenizationUpdateOptionsDescriptor descriptor) + { + TokenizationValue = null; + TokenizationDescriptorAction = null; + TokenizationDescriptor = descriptor; + return Self; + } + + public ZeroShotClassificationInferenceUpdateOptionsDescriptor Tokenization(Action configure) + { + TokenizationValue = null; + TokenizationDescriptor = null; + TokenizationDescriptorAction = configure; + return Self; + } + + protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) + { + writer.WriteStartObject(); + writer.WritePropertyName("labels"); + JsonSerializer.Serialize(writer, LabelsValue, options); + if (MultiLabelValue.HasValue) + { + writer.WritePropertyName("multi_label"); + writer.WriteBooleanValue(MultiLabelValue.Value); + } + + if (!string.IsNullOrEmpty(ResultsFieldValue)) + { + writer.WritePropertyName("results_field"); + writer.WriteStringValue(ResultsFieldValue); + } + + if (TokenizationDescriptor is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationDescriptor, options); + } + else if (TokenizationDescriptorAction is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, new NlpTokenizationUpdateOptionsDescriptor(TokenizationDescriptorAction), options); + } + else if (TokenizationValue is not null) + { + writer.WritePropertyName("tokenization"); + JsonSerializer.Serialize(writer, TokenizationValue, options); + } + + writer.WriteEndObject(); + } + } +} \ No newline at end of file