1+ // Licensed to Elasticsearch B.V under one or more agreements.
2+ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3+ // See the LICENSE file in the project root for more information.
4+ //
5+ // ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
6+ // ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
7+ // ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
8+ // ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
9+ // ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
10+ // ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
11+ // ------------------------------------------------
12+ //
13+ // This file is automatically generated.
14+ // Please do not edit these files manually.
15+ //
16+ // ------------------------------------------------
17+
18+ using Elastic . Clients . Elasticsearch . Fluent ;
19+ using Elastic . Clients . Elasticsearch . Serialization ;
20+ using Elastic . Transport ;
21+ using System ;
22+ using System . Collections . Generic ;
23+ using System . Diagnostics . CodeAnalysis ;
24+ using System . Linq . Expressions ;
25+ using System . Text . Json ;
26+ using System . Text . Json . Serialization ;
27+
28+ #nullable restore
29+ namespace Elastic . Clients . Elasticsearch . Analysis ;
30+ public partial class CharFilters : IsADictionary < string , ICharFilter >
31+ {
32+ public CharFilters ( )
33+ {
34+ }
35+
36+ public CharFilters ( IDictionary < string , ICharFilter > container ) : base ( container )
37+ {
38+ }
39+
40+ public void Add ( string name , ICharFilter charFilter ) => BackingDictionary . Add ( Sanitize ( name ) , charFilter ) ;
41+ public bool TryGetCharFilter ( string name , [ NotNullWhen ( returnValue : true ) ] out ICharFilter charFilter ) => BackingDictionary . TryGetValue ( Sanitize ( name ) , out charFilter ) ;
42+ public bool TryGetCharFilter < T > ( string name , [ NotNullWhen ( returnValue : true ) ] out T ? charFilter )
43+ where T : class , ICharFilter
44+ {
45+ if ( BackingDictionary . TryGetValue ( Sanitize ( name ) , out var matchedValue ) && matchedValue is T finalValue )
46+ {
47+ charFilter = finalValue ;
48+ return true ;
49+ }
50+
51+ charFilter = null ;
52+ return false ;
53+ }
54+ }
55+
56+ public sealed partial class CharFiltersDescriptor : IsADictionaryDescriptor < CharFiltersDescriptor , CharFilters , string , ICharFilter >
57+ {
58+ public CharFiltersDescriptor ( ) : base ( new CharFilters ( ) )
59+ {
60+ }
61+
62+ public CharFiltersDescriptor ( CharFilters charFilters ) : base ( charFilters ?? new CharFilters ( ) )
63+ {
64+ }
65+
66+ public CharFiltersDescriptor HtmlStrip ( string charFilterName ) => AssignVariant < HtmlStripCharFilterDescriptor , HtmlStripCharFilter > ( charFilterName , null ) ;
67+ public CharFiltersDescriptor HtmlStrip ( string charFilterName , Action < HtmlStripCharFilterDescriptor > configure ) => AssignVariant < HtmlStripCharFilterDescriptor , HtmlStripCharFilter > ( charFilterName , configure ) ;
68+ public CharFiltersDescriptor HtmlStrip ( string charFilterName , HtmlStripCharFilter htmlStripCharFilter ) => AssignVariant ( charFilterName , htmlStripCharFilter ) ;
69+ public CharFiltersDescriptor IcuNormalization ( string charFilterName ) => AssignVariant < IcuNormalizationCharFilterDescriptor , IcuNormalizationCharFilter > ( charFilterName , null ) ;
70+ public CharFiltersDescriptor IcuNormalization ( string charFilterName , Action < IcuNormalizationCharFilterDescriptor > configure ) => AssignVariant < IcuNormalizationCharFilterDescriptor , IcuNormalizationCharFilter > ( charFilterName , configure ) ;
71+ public CharFiltersDescriptor IcuNormalization ( string charFilterName , IcuNormalizationCharFilter icuNormalizationCharFilter ) => AssignVariant ( charFilterName , icuNormalizationCharFilter ) ;
72+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName ) => AssignVariant < KuromojiIterationMarkCharFilterDescriptor , KuromojiIterationMarkCharFilter > ( charFilterName , null ) ;
73+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName , Action < KuromojiIterationMarkCharFilterDescriptor > configure ) => AssignVariant < KuromojiIterationMarkCharFilterDescriptor , KuromojiIterationMarkCharFilter > ( charFilterName , configure ) ;
74+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName , KuromojiIterationMarkCharFilter kuromojiIterationMarkCharFilter ) => AssignVariant ( charFilterName , kuromojiIterationMarkCharFilter ) ;
75+ public CharFiltersDescriptor Mapping ( string charFilterName ) => AssignVariant < MappingCharFilterDescriptor , MappingCharFilter > ( charFilterName , null ) ;
76+ public CharFiltersDescriptor Mapping ( string charFilterName , Action < MappingCharFilterDescriptor > configure ) => AssignVariant < MappingCharFilterDescriptor , MappingCharFilter > ( charFilterName , configure ) ;
77+ public CharFiltersDescriptor Mapping ( string charFilterName , MappingCharFilter mappingCharFilter ) => AssignVariant ( charFilterName , mappingCharFilter ) ;
78+ public CharFiltersDescriptor PatternReplace ( string charFilterName ) => AssignVariant < PatternReplaceCharFilterDescriptor , PatternReplaceCharFilter > ( charFilterName , null ) ;
79+ public CharFiltersDescriptor PatternReplace ( string charFilterName , Action < PatternReplaceCharFilterDescriptor > configure ) => AssignVariant < PatternReplaceCharFilterDescriptor , PatternReplaceCharFilter > ( charFilterName , configure ) ;
80+ public CharFiltersDescriptor PatternReplace ( string charFilterName , PatternReplaceCharFilter patternReplaceCharFilter ) => AssignVariant ( charFilterName , patternReplaceCharFilter ) ;
81+ }
82+
83+ internal sealed partial class CharFilterInterfaceConverter : JsonConverter < ICharFilter >
84+ {
85+ public override ICharFilter Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
86+ {
87+ var copiedReader = reader ;
88+ string ? type = null ;
89+ using var jsonDoc = JsonDocument . ParseValue ( ref copiedReader ) ;
90+ if ( jsonDoc is not null && jsonDoc . RootElement . TryGetProperty ( "type" , out var readType ) && readType . ValueKind == JsonValueKind . String )
91+ {
92+ type = readType . ToString ( ) ;
93+ }
94+
95+ switch ( type )
96+ {
97+ case "kuromoji_iteration_mark" :
98+ return JsonSerializer . Deserialize < KuromojiIterationMarkCharFilter > ( ref reader , options ) ;
99+ case "icu_normalizer" :
100+ return JsonSerializer . Deserialize < IcuNormalizationCharFilter > ( ref reader , options ) ;
101+ case "pattern_replace" :
102+ return JsonSerializer . Deserialize < PatternReplaceCharFilter > ( ref reader , options ) ;
103+ case "mapping" :
104+ return JsonSerializer . Deserialize < MappingCharFilter > ( ref reader , options ) ;
105+ case "html_strip" :
106+ return JsonSerializer . Deserialize < HtmlStripCharFilter > ( ref reader , options ) ;
107+ default :
108+ ThrowHelper . ThrowUnknownTaggedUnionVariantJsonException ( type , typeof ( ICharFilter ) ) ;
109+ return null ;
110+ }
111+ }
112+
113+ public override void Write ( Utf8JsonWriter writer , ICharFilter value , JsonSerializerOptions options )
114+ {
115+ if ( value is null )
116+ {
117+ writer . WriteNullValue ( ) ;
118+ return ;
119+ }
120+
121+ switch ( value . Type )
122+ {
123+ case "kuromoji_iteration_mark" :
124+ JsonSerializer . Serialize ( writer , value , typeof ( KuromojiIterationMarkCharFilter ) , options ) ;
125+ return ;
126+ case "icu_normalizer" :
127+ JsonSerializer . Serialize ( writer , value , typeof ( IcuNormalizationCharFilter ) , options ) ;
128+ return ;
129+ case "pattern_replace" :
130+ JsonSerializer . Serialize ( writer , value , typeof ( PatternReplaceCharFilter ) , options ) ;
131+ return ;
132+ case "mapping" :
133+ JsonSerializer . Serialize ( writer , value , typeof ( MappingCharFilter ) , options ) ;
134+ return ;
135+ case "html_strip" :
136+ JsonSerializer . Serialize ( writer , value , typeof ( HtmlStripCharFilter ) , options ) ;
137+ return ;
138+ default :
139+ var type = value . GetType ( ) ;
140+ JsonSerializer . Serialize ( writer , value , type , options ) ;
141+ return ;
142+ }
143+ }
144+ }
145+
146+ [ JsonConverter ( typeof ( CharFilterInterfaceConverter ) ) ]
147+ public partial interface ICharFilter
148+ {
149+ public string Type { get ; }
150+ }
0 commit comments