diff --git a/docs/release-notes/release-notes-8.0.1.asciidoc b/docs/release-notes/release-notes-8.0.1.asciidoc index 6a44955199d..1694ca31026 100644 --- a/docs/release-notes/release-notes-8.0.1.asciidoc +++ b/docs/release-notes/release-notes-8.0.1.asciidoc @@ -4,9 +4,14 @@ [discrete] === Bug fixes -- Fix MultiSearchTemplateRequest serialization (issue: +- Fix MultiSearchTemplateRequest body serialization (issue: https://github.com/elastic/elasticsearch-net/issues/7006[#7006]) +[discrete] +=== Enhancements + +- Seal union types for consistency + [discrete] === Breaking changes @@ -28,9 +33,39 @@ original code-generated type not functioning correctly and therefore we have determined that this should ship ASAP. [discrete] -=== MultiSearch type changes +==== MultiSearch type changes The `Core.MSearch.SearchRequestItem` type has been sealed for consistency with the design choices in the rest of the client. While technically breaking, we have decided that this should be included in this release before any potential -derived types may exist in consuming applications. \ No newline at end of file +derived types may exist in consuming applications. + +[discrete] +==== Sealing union types + +Code-generated types derived from `Union` where incorrectly unsealed. +While technically breaking, we have decided that these should be sealed in this +patch release before any potential derived types may exist in consuming +applications. Sealing types by default aligns with our broader design choices +and this decision is described in the <>. + +Affected types: +- `Aggregations.Buckets` +- `Aggregations.FieldDateMatch` +- `Aggregations.Percentiles` +- `Analysis.CharFilter` +- `Analysis.TokenFilter` +- `Analysis.Tokenizer` +- `ByteSize` +- `Fuzziness` +- `GeoHashPrecision` +- `MultiGetResponseItem` +- `MultiSearchResponseItem` +- `QueryDsl.Like` +- `QueryDsl.TermsQueryField` +- `Script` +- `Slices` +- `SourceConfig` +- `SourceConfigParam` +- `Tasks.TaskInfos` +- `TrackHits` \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs index dca24df5965..c789a98e2b3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Aggregations; -public partial class Buckets : Union, IReadOnlyCollection> +public sealed partial class Buckets : Union, IReadOnlyCollection> { public Buckets(Dictionary dictionary) : base(dictionary) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs index 3b375924a92..f08022043b5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Aggregations; -public partial class FieldDateMath : Union +public sealed partial class FieldDateMath : Union { public FieldDateMath(Elastic.Clients.Elasticsearch.DateMath expr) : base(expr) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs index a7520a72a42..5983530a114 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Aggregations; -public partial class Percentiles : Union, IReadOnlyCollection> +public sealed partial class Percentiles : Union, IReadOnlyCollection> { public Percentiles(Dictionary dictionary) : base(dictionary) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.g.cs index 8e9aeabd544..50c891eeca7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Analysis; -public partial class CharFilter : Union +public sealed partial class CharFilter : Union { public CharFilter(string name) : base(name) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.g.cs index d28ed9dd981..3d151c5e7b5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Analysis; -public partial class TokenFilter : Union +public sealed partial class TokenFilter : Union { public TokenFilter(string name) : base(name) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.g.cs index cc0f04ea01f..d6d6a2f18bb 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Analysis; -public partial class Tokenizer : Union +public sealed partial class Tokenizer : Union { public Tokenizer(string name) : base(name) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs index e7b8a1d8ecb..2449e74bc30 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch; -public partial class ByteSize : Union +public sealed partial class ByteSize : Union { public ByteSize(long byteSize) : base(byteSize) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs index bb6ada0855a..29b8ef12e1f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Core.MGet; -public partial class MultiGetResponseItem : Union, Elastic.Clients.Elasticsearch.Core.MGet.MultiGetError> +public sealed partial class MultiGetResponseItem : Union, Elastic.Clients.Elasticsearch.Core.MGet.MultiGetError> { public MultiGetResponseItem(Elastic.Clients.Elasticsearch.Core.Get.GetResult result) : base(result) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs index 297915d1f96..11dd29fd111 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Core.MSearch; -public partial class MultiSearchResponseItem : Union, Elastic.Clients.Elasticsearch.ErrorResponseBase> +public sealed partial class MultiSearchResponseItem : Union, Elastic.Clients.Elasticsearch.ErrorResponseBase> { public MultiSearchResponseItem(Elastic.Clients.Elasticsearch.Core.MSearch.MultiSearchItem result) : base(result) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs index 67aa95cbaf2..e400945a9e1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Core.Search; -public partial class SourceConfig : Union +public sealed partial class SourceConfig : Union { public SourceConfig(bool fetch) : base(fetch) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs index 88073636708..c554c8e6c19 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Core.Search; -public partial class SourceConfigParam : Union +public sealed partial class SourceConfigParam : Union { public SourceConfigParam(bool fetch) : base(fetch) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs index cb1eb1f94da..945dd2e8c4c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Core.Search; -public partial class TrackHits : Union +public sealed partial class TrackHits : Union { public TrackHits(bool enabled) : base(enabled) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs index a87ef728c35..23786deaea9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch; -public partial class Fuzziness : Union +public sealed partial class Fuzziness : Union { public Fuzziness(string fuzziness) : base(fuzziness) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs index 55fb7c5ac5d..4169a928e86 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch; -public partial class GeoHashPrecision : Union +public sealed partial class GeoHashPrecision : Union { public GeoHashPrecision(double geohash_length) : base(geohash_length) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs index 51890851350..6082c9ddf67 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl; -public partial class Like : Union +public sealed partial class Like : Union { public Like(string text) : base(text) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs index 8a5a9ea6b7c..a34210f437e 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.QueryDsl; -public partial class TermsQueryField : Union, Elastic.Clients.Elasticsearch.QueryDsl.TermsLookup> +public sealed partial class TermsQueryField : Union, Elastic.Clients.Elasticsearch.QueryDsl.TermsLookup> { public TermsQueryField(IReadOnlyCollection value) : base(value) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs index fa88507bac1..729efcc83d6 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch; -public partial class Script : Union +public sealed partial class Script : Union { public Script(Elastic.Clients.Elasticsearch.InlineScript inline) : base(inline) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs index cd5fdfcb1ff..ed519737a6c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch; -public partial class Slices : Union +public sealed partial class Slices : Union { public Slices(int value) : base(value) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs index 5a0a20f83e8..87ea88204f2 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs @@ -26,7 +26,7 @@ #nullable restore namespace Elastic.Clients.Elasticsearch.Tasks; -public partial class TaskInfos : Union, Dictionary> +public sealed partial class TaskInfos : Union, Dictionary> { public TaskInfos(IReadOnlyCollection flat) : base(flat) {