diff --git a/src/CodeGeneration/ApiGenerator/Overrides/EndpointOverridesBase.cs b/src/CodeGeneration/ApiGenerator/Overrides/EndpointOverridesBase.cs index 61c44a6fa26..cd79fa14a11 100644 --- a/src/CodeGeneration/ApiGenerator/Overrides/EndpointOverridesBase.cs +++ b/src/CodeGeneration/ApiGenerator/Overrides/EndpointOverridesBase.cs @@ -15,6 +15,7 @@ public abstract class EndpointOverridesBase: IEndpointOverrides public virtual IDictionary ObsoleteQueryStringParams { get; set; } = new Dictionary(); + public virtual CsharpMethod PatchMethod(CsharpMethod method) => method; } } diff --git a/src/CodeGeneration/ApiGenerator/Overrides/GlobalOverrides.cs b/src/CodeGeneration/ApiGenerator/Overrides/GlobalOverrides.cs index 84dfd4ebc11..a5bc198a573 100644 --- a/src/CodeGeneration/ApiGenerator/Overrides/GlobalOverrides.cs +++ b/src/CodeGeneration/ApiGenerator/Overrides/GlobalOverrides.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using ApiGenerator.Overrides.Descriptors; @@ -11,6 +12,11 @@ public class GlobalOverrides : EndpointOverridesBase "script_fields", "docvalue_fields" }; + public IDictionary> ObsoleteEnumMembers { get; set; } = new Dictionary> + { + { "NodesStatsIndexMetric", new Dictionary{{"suggest", "As of 5.0 this option always returned an empty object in the response"}}}, + { "IndicesStatsMetric", new Dictionary{{"suggest", "Suggest stats have folded under the search stats, this alias will be removed"}}} + }; public override IDictionary RenameQueryStringParams { get; } = new Dictionary { diff --git a/src/CodeGeneration/ApiGenerator/Views/Enums.Generated.cshtml b/src/CodeGeneration/ApiGenerator/Views/Enums.Generated.cshtml index 52641cb61da..1957e45619a 100644 --- a/src/CodeGeneration/ApiGenerator/Views/Enums.Generated.cshtml +++ b/src/CodeGeneration/ApiGenerator/Views/Enums.Generated.cshtml @@ -5,14 +5,21 @@ @using System.Linq @using ApiGenerator.Domain @using ApiGenerator +@using ApiGenerator.Overrides @functions { private const string RawSize = "Raw"; private const string SizeEnum = "Size"; + private static GlobalOverrides GlobalOverrides = new GlobalOverrides(); private string CreateEnum(string enumName, string value, int? i) { var enumValue = (enumName == SizeEnum && value == string.Empty) ? RawSize : value.ToPascalCase(true); - return string.Format("[EnumMember(Value = \"{0}\")] {1}{2}", value, enumValue, i.HasValue ? " = 1 << " + i.Value : null); + var enumCsharp = string.Format("[EnumMember(Value = \"{0}\")] {1}{2}", value, enumValue, i.HasValue ? " = 1 << " + i.Value : null); + if (GlobalOverrides.ObsoleteEnumMembers.TryGetValue(enumName, out var d) && d.TryGetValue(value, out var obsolete)) + { + return string.Format("[Obsolete(\"{0}\")]\r\n\t\t{1}", obsolete, enumCsharp); + } + return enumCsharp; } private string CreateCase(string e, string o) { diff --git a/src/Elasticsearch.Net/Domain/Enums.Generated.cs b/src/Elasticsearch.Net/Domain/Enums.Generated.cs index 2ac94e56e9e..d5205982c70 100644 --- a/src/Elasticsearch.Net/Domain/Enums.Generated.cs +++ b/src/Elasticsearch.Net/Domain/Enums.Generated.cs @@ -152,6 +152,7 @@ [Flags]public enum IndicesStatsMetric [EnumMember(Value = "segments")] Segments = 1 << 11, [EnumMember(Value = "store")] Store = 1 << 12, [EnumMember(Value = "warmer")] Warmer = 1 << 13, + [Obsolete("Suggest stats have folded under the search stats, this alias will be removed")] [EnumMember(Value = "suggest")] Suggest = 1 << 14, [EnumMember(Value = "_all")] All = 1 << 15 } @@ -197,6 +198,7 @@ [Flags]public enum NodesStatsIndexMetric [EnumMember(Value = "segments")] Segments = 1 << 11, [EnumMember(Value = "store")] Store = 1 << 12, [EnumMember(Value = "warmer")] Warmer = 1 << 13, + [Obsolete("As of 5.0 this option always returned an empty object in the response")] [EnumMember(Value = "suggest")] Suggest = 1 << 14, [EnumMember(Value = "_all")] All = 1 << 15 }