Skip to content

[Backport 8.4] Seal union types for consistency #7021

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 38 additions & 3 deletions docs/release-notes/release-notes-8.0.1.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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.
derived types may exist in consuming applications.

[discrete]
==== Sealing union types

Code-generated types derived from `Union<T1, T2>` 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 <<release-notes-8.0.0,8.0.0 release notes>>.

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`
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Aggregations;
public partial class Buckets<TBucket> : Union<Dictionary<string, TBucket>, IReadOnlyCollection<TBucket>>
public sealed partial class Buckets<TBucket> : Union<Dictionary<string, TBucket>, IReadOnlyCollection<TBucket>>
{
public Buckets(Dictionary<string, TBucket> dictionary) : base(dictionary)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Aggregations;
public partial class FieldDateMath : Union<Elastic.Clients.Elasticsearch.DateMath, double>
public sealed partial class FieldDateMath : Union<Elastic.Clients.Elasticsearch.DateMath, double>
{
public FieldDateMath(Elastic.Clients.Elasticsearch.DateMath expr) : base(expr)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Aggregations;
public partial class Percentiles : Union<Dictionary<string, object>, IReadOnlyCollection<Elastic.Clients.Elasticsearch.Aggregations.ArrayPercentilesItem>>
public sealed partial class Percentiles : Union<Dictionary<string, object>, IReadOnlyCollection<Elastic.Clients.Elasticsearch.Aggregations.ArrayPercentilesItem>>
{
public Percentiles(Dictionary<string, object> dictionary) : base(dictionary)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Analysis;
public partial class CharFilter : Union<string, Elastic.Clients.Elasticsearch.Analysis.CharFilterDefinitions>
public sealed partial class CharFilter : Union<string, Elastic.Clients.Elasticsearch.Analysis.CharFilterDefinitions>
{
public CharFilter(string name) : base(name)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Analysis;
public partial class TokenFilter : Union<string, Elastic.Clients.Elasticsearch.Analysis.TokenFilterDefinitions>
public sealed partial class TokenFilter : Union<string, Elastic.Clients.Elasticsearch.Analysis.TokenFilterDefinitions>
{
public TokenFilter(string name) : base(name)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Analysis;
public partial class Tokenizer : Union<string, Elastic.Clients.Elasticsearch.Analysis.TokenizerDefinitions>
public sealed partial class Tokenizer : Union<string, Elastic.Clients.Elasticsearch.Analysis.TokenizerDefinitions>
{
public Tokenizer(string name) : base(name)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch;
public partial class ByteSize : Union<long, string>
public sealed partial class ByteSize : Union<long, string>
{
public ByteSize(long byteSize) : base(byteSize)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Core.MGet;
public partial class MultiGetResponseItem<TDocument> : Union<Elastic.Clients.Elasticsearch.Core.Get.GetResult<TDocument>, Elastic.Clients.Elasticsearch.Core.MGet.MultiGetError>
public sealed partial class MultiGetResponseItem<TDocument> : Union<Elastic.Clients.Elasticsearch.Core.Get.GetResult<TDocument>, Elastic.Clients.Elasticsearch.Core.MGet.MultiGetError>
{
public MultiGetResponseItem(Elastic.Clients.Elasticsearch.Core.Get.GetResult<TDocument> result) : base(result)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Core.MSearch;
public partial class MultiSearchResponseItem<TDocument> : Union<Elastic.Clients.Elasticsearch.Core.MSearch.MultiSearchItem<TDocument>, Elastic.Clients.Elasticsearch.ErrorResponseBase>
public sealed partial class MultiSearchResponseItem<TDocument> : Union<Elastic.Clients.Elasticsearch.Core.MSearch.MultiSearchItem<TDocument>, Elastic.Clients.Elasticsearch.ErrorResponseBase>
{
public MultiSearchResponseItem(Elastic.Clients.Elasticsearch.Core.MSearch.MultiSearchItem<TDocument> result) : base(result)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Core.Search;
public partial class SourceConfig : Union<bool, Elastic.Clients.Elasticsearch.Core.Search.SourceFilter>
public sealed partial class SourceConfig : Union<bool, Elastic.Clients.Elasticsearch.Core.Search.SourceFilter>
{
public SourceConfig(bool fetch) : base(fetch)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Core.Search;
public partial class SourceConfigParam : Union<bool, Elastic.Clients.Elasticsearch.Fields>
public sealed partial class SourceConfigParam : Union<bool, Elastic.Clients.Elasticsearch.Fields>
{
public SourceConfigParam(bool fetch) : base(fetch)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Core.Search;
public partial class TrackHits : Union<bool, int>
public sealed partial class TrackHits : Union<bool, int>
{
public TrackHits(bool enabled) : base(enabled)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch;
public partial class Fuzziness : Union<string, int>
public sealed partial class Fuzziness : Union<string, int>
{
public Fuzziness(string fuzziness) : base(fuzziness)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch;
public partial class GeoHashPrecision : Union<double, string>
public sealed partial class GeoHashPrecision : Union<double, string>
{
public GeoHashPrecision(double geohash_length) : base(geohash_length)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.QueryDsl;
public partial class Like : Union<string, Elastic.Clients.Elasticsearch.QueryDsl.LikeDocument>
public sealed partial class Like : Union<string, Elastic.Clients.Elasticsearch.QueryDsl.LikeDocument>
{
public Like(string text) : base(text)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.QueryDsl;
public partial class TermsQueryField : Union<IReadOnlyCollection<Elastic.Clients.Elasticsearch.FieldValue>, Elastic.Clients.Elasticsearch.QueryDsl.TermsLookup>
public sealed partial class TermsQueryField : Union<IReadOnlyCollection<Elastic.Clients.Elasticsearch.FieldValue>, Elastic.Clients.Elasticsearch.QueryDsl.TermsLookup>
{
public TermsQueryField(IReadOnlyCollection<Elastic.Clients.Elasticsearch.FieldValue> value) : base(value)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch;
public partial class Script : Union<Elastic.Clients.Elasticsearch.InlineScript, Elastic.Clients.Elasticsearch.StoredScriptId>
public sealed partial class Script : Union<Elastic.Clients.Elasticsearch.InlineScript, Elastic.Clients.Elasticsearch.StoredScriptId>
{
public Script(Elastic.Clients.Elasticsearch.InlineScript inline) : base(inline)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch;
public partial class Slices : Union<int, Elastic.Clients.Elasticsearch.SlicesCalculation>
public sealed partial class Slices : Union<int, Elastic.Clients.Elasticsearch.SlicesCalculation>
{
public Slices(int value) : base(value)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#nullable restore
namespace Elastic.Clients.Elasticsearch.Tasks;
public partial class TaskInfos : Union<IReadOnlyCollection<Elastic.Clients.Elasticsearch.Tasks.TaskInfo>, Dictionary<string, Elastic.Clients.Elasticsearch.Tasks.ParentTaskInfo>>
public sealed partial class TaskInfos : Union<IReadOnlyCollection<Elastic.Clients.Elasticsearch.Tasks.TaskInfo>, Dictionary<string, Elastic.Clients.Elasticsearch.Tasks.ParentTaskInfo>>
{
public TaskInfos(IReadOnlyCollection<Elastic.Clients.Elasticsearch.Tasks.TaskInfo> flat) : base(flat)
{
Expand Down