diff --git a/compiler-rs/clients_schema_to_openapi/src/schemas.rs b/compiler-rs/clients_schema_to_openapi/src/schemas.rs index cd8003c35c..cf171350fd 100644 --- a/compiler-rs/clients_schema_to_openapi/src/schemas.rs +++ b/compiler-rs/clients_schema_to_openapi/src/schemas.rs @@ -404,10 +404,56 @@ impl<'a> TypesAndComponents<'a> { // TODO: typed-keys: add an extension to identify it? } Some(TypeAliasVariants::InternalTag(tag)) => { - // TODO: add tag.default_tag as an extension + // outputs a map of discriminator values to schema references + // e.g. { "type1": "#/components/schemas/Type1", "type2": "#/components/schemas/Type2" } + let mut disc_mapping = IndexMap::new(); + let ValueOf::UnionOf(union) = &alias.typ else { + bail!("InternalTag type alias {} does not wrap a union", alias.base.name); + }; + // Extract union members and build mapping + for item in &union.items { + let ValueOf::InstanceOf(instance) = item else { + bail!( + "InternalTag union member in type alias {} is not an instance_of", + alias.base.name + ); + }; + + match self.model.get_type(&instance.typ) { + Ok(TypeDefinition::Interface(variant_itf)) => { + // Find the discriminator property in the variant + let Some(disc_prop) = variant_itf.properties.iter().find(|p| p.name == tag.tag) else { + bail!( + "InternalTag union member in type alias {} does not have discriminator property {}", + alias.base.name, + tag.tag + ); + }; + + // Extract the literal value + let ValueOf::LiteralValue(literal) = &disc_prop.typ else { + bail!( + "InternalTag union member in type alias {} has non-literal discriminator property {}", + alias.base.name, + tag.tag + ); + }; + let discriminator_value = literal.value.to_string(); + let schema_ref = format!("#/components/schemas/{}", instance.typ.schema_name()); + disc_mapping.insert(discriminator_value, schema_ref); + } + _ => bail!( + "InternalTag union member in type alias {} is not an interface", + alias.base.name + ), + } + } + disc_mapping.sort_unstable_keys(); + schema.schema_data.discriminator = Some(Discriminator { property_name: tag.tag.clone(), - mapping: Default::default(), + mapping: disc_mapping, + // TODO: add tag.default_tag as an extension extensions: Default::default(), }); } diff --git a/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm index a705f6c3cb..ae26e4a773 100644 Binary files a/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm and b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm differ diff --git a/output/openapi/elasticsearch-openapi.json b/output/openapi/elasticsearch-openapi.json index 90956087c7..c2b435dd80 100644 --- a/output/openapi/elasticsearch-openapi.json +++ b/output/openapi/elasticsearch-openapi.json @@ -67831,7 +67831,14 @@ }, "_types.aggregations.MovingAverageAggregation": { "discriminator": { - "propertyName": "model" + "propertyName": "model", + "mapping": { + "ewma": "#/components/schemas/_types.aggregations.EwmaMovingAverageAggregation", + "holt": "#/components/schemas/_types.aggregations.HoltMovingAverageAggregation", + "holt_winters": "#/components/schemas/_types.aggregations.HoltWintersMovingAverageAggregation", + "linear": "#/components/schemas/_types.aggregations.LinearMovingAverageAggregation", + "simple": "#/components/schemas/_types.aggregations.SimpleMovingAverageAggregation" + } }, "oneOf": [ { @@ -76213,7 +76220,58 @@ }, "_types.analysis.Analyzer": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "arabic": "#/components/schemas/_types.analysis.ArabicAnalyzer", + "armenian": "#/components/schemas/_types.analysis.ArmenianAnalyzer", + "basque": "#/components/schemas/_types.analysis.BasqueAnalyzer", + "bengali": "#/components/schemas/_types.analysis.BengaliAnalyzer", + "brazilian": "#/components/schemas/_types.analysis.BrazilianAnalyzer", + "bulgarian": "#/components/schemas/_types.analysis.BulgarianAnalyzer", + "catalan": "#/components/schemas/_types.analysis.CatalanAnalyzer", + "chinese": "#/components/schemas/_types.analysis.ChineseAnalyzer", + "cjk": "#/components/schemas/_types.analysis.CjkAnalyzer", + "custom": "#/components/schemas/_types.analysis.CustomAnalyzer", + "czech": "#/components/schemas/_types.analysis.CzechAnalyzer", + "danish": "#/components/schemas/_types.analysis.DanishAnalyzer", + "dutch": "#/components/schemas/_types.analysis.DutchAnalyzer", + "english": "#/components/schemas/_types.analysis.EnglishAnalyzer", + "estonian": "#/components/schemas/_types.analysis.EstonianAnalyzer", + "fingerprint": "#/components/schemas/_types.analysis.FingerprintAnalyzer", + "finnish": "#/components/schemas/_types.analysis.FinnishAnalyzer", + "french": "#/components/schemas/_types.analysis.FrenchAnalyzer", + "galician": "#/components/schemas/_types.analysis.GalicianAnalyzer", + "german": "#/components/schemas/_types.analysis.GermanAnalyzer", + "greek": "#/components/schemas/_types.analysis.GreekAnalyzer", + "hindi": "#/components/schemas/_types.analysis.HindiAnalyzer", + "hungarian": "#/components/schemas/_types.analysis.HungarianAnalyzer", + "icu_analyzer": "#/components/schemas/_types.analysis.IcuAnalyzer", + "indonesian": "#/components/schemas/_types.analysis.IndonesianAnalyzer", + "irish": "#/components/schemas/_types.analysis.IrishAnalyzer", + "italian": "#/components/schemas/_types.analysis.ItalianAnalyzer", + "keyword": "#/components/schemas/_types.analysis.KeywordAnalyzer", + "kuromoji": "#/components/schemas/_types.analysis.KuromojiAnalyzer", + "latvian": "#/components/schemas/_types.analysis.LatvianAnalyzer", + "lithuanian": "#/components/schemas/_types.analysis.LithuanianAnalyzer", + "nori": "#/components/schemas/_types.analysis.NoriAnalyzer", + "norwegian": "#/components/schemas/_types.analysis.NorwegianAnalyzer", + "pattern": "#/components/schemas/_types.analysis.PatternAnalyzer", + "persian": "#/components/schemas/_types.analysis.PersianAnalyzer", + "portuguese": "#/components/schemas/_types.analysis.PortugueseAnalyzer", + "romanian": "#/components/schemas/_types.analysis.RomanianAnalyzer", + "russian": "#/components/schemas/_types.analysis.RussianAnalyzer", + "serbian": "#/components/schemas/_types.analysis.SerbianAnalyzer", + "simple": "#/components/schemas/_types.analysis.SimpleAnalyzer", + "snowball": "#/components/schemas/_types.analysis.SnowballAnalyzer", + "sorani": "#/components/schemas/_types.analysis.SoraniAnalyzer", + "spanish": "#/components/schemas/_types.analysis.SpanishAnalyzer", + "standard": "#/components/schemas/_types.analysis.StandardAnalyzer", + "stop": "#/components/schemas/_types.analysis.StopAnalyzer", + "swedish": "#/components/schemas/_types.analysis.SwedishAnalyzer", + "thai": "#/components/schemas/_types.analysis.ThaiAnalyzer", + "turkish": "#/components/schemas/_types.analysis.TurkishAnalyzer", + "whitespace": "#/components/schemas/_types.analysis.WhitespaceAnalyzer" + } }, "oneOf": [ { @@ -77881,7 +77939,14 @@ }, "_types.analysis.CharFilterDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "html_strip": "#/components/schemas/_types.analysis.HtmlStripCharFilter", + "icu_normalizer": "#/components/schemas/_types.analysis.IcuNormalizationCharFilter", + "kuromoji_iteration_mark": "#/components/schemas/_types.analysis.KuromojiIterationMarkCharFilter", + "mapping": "#/components/schemas/_types.analysis.MappingCharFilter", + "pattern_replace": "#/components/schemas/_types.analysis.PatternReplaceCharFilter" + } }, "oneOf": [ { @@ -78083,7 +78148,83 @@ }, "_types.analysis.TokenFilterDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "apostrophe": "#/components/schemas/_types.analysis.ApostropheTokenFilter", + "arabic_normalization": "#/components/schemas/_types.analysis.ArabicNormalizationTokenFilter", + "arabic_stem": "#/components/schemas/_types.analysis.ArabicStemTokenFilter", + "asciifolding": "#/components/schemas/_types.analysis.AsciiFoldingTokenFilter", + "bengali_normalization": "#/components/schemas/_types.analysis.BengaliNormalizationTokenFilter", + "brazilian_stem": "#/components/schemas/_types.analysis.BrazilianStemTokenFilter", + "cjk_bigram": "#/components/schemas/_types.analysis.CjkBigramTokenFilter", + "cjk_width": "#/components/schemas/_types.analysis.CjkWidthTokenFilter", + "classic": "#/components/schemas/_types.analysis.ClassicTokenFilter", + "common_grams": "#/components/schemas/_types.analysis.CommonGramsTokenFilter", + "condition": "#/components/schemas/_types.analysis.ConditionTokenFilter", + "czech_stem": "#/components/schemas/_types.analysis.CzechStemTokenFilter", + "decimal_digit": "#/components/schemas/_types.analysis.DecimalDigitTokenFilter", + "delimited_payload": "#/components/schemas/_types.analysis.DelimitedPayloadTokenFilter", + "dictionary_decompounder": "#/components/schemas/_types.analysis.DictionaryDecompounderTokenFilter", + "dutch_stem": "#/components/schemas/_types.analysis.DutchStemTokenFilter", + "edge_ngram": "#/components/schemas/_types.analysis.EdgeNGramTokenFilter", + "elision": "#/components/schemas/_types.analysis.ElisionTokenFilter", + "fingerprint": "#/components/schemas/_types.analysis.FingerprintTokenFilter", + "flatten_graph": "#/components/schemas/_types.analysis.FlattenGraphTokenFilter", + "french_stem": "#/components/schemas/_types.analysis.FrenchStemTokenFilter", + "german_normalization": "#/components/schemas/_types.analysis.GermanNormalizationTokenFilter", + "german_stem": "#/components/schemas/_types.analysis.GermanStemTokenFilter", + "hindi_normalization": "#/components/schemas/_types.analysis.HindiNormalizationTokenFilter", + "hunspell": "#/components/schemas/_types.analysis.HunspellTokenFilter", + "hyphenation_decompounder": "#/components/schemas/_types.analysis.HyphenationDecompounderTokenFilter", + "icu_collation": "#/components/schemas/_types.analysis.IcuCollationTokenFilter", + "icu_folding": "#/components/schemas/_types.analysis.IcuFoldingTokenFilter", + "icu_normalizer": "#/components/schemas/_types.analysis.IcuNormalizationTokenFilter", + "icu_transform": "#/components/schemas/_types.analysis.IcuTransformTokenFilter", + "indic_normalization": "#/components/schemas/_types.analysis.IndicNormalizationTokenFilter", + "ja_stop": "#/components/schemas/_types.analysis.JaStopTokenFilter", + "keep": "#/components/schemas/_types.analysis.KeepWordsTokenFilter", + "keep_types": "#/components/schemas/_types.analysis.KeepTypesTokenFilter", + "keyword_marker": "#/components/schemas/_types.analysis.KeywordMarkerTokenFilter", + "keyword_repeat": "#/components/schemas/_types.analysis.KeywordRepeatTokenFilter", + "kstem": "#/components/schemas/_types.analysis.KStemTokenFilter", + "kuromoji_part_of_speech": "#/components/schemas/_types.analysis.KuromojiPartOfSpeechTokenFilter", + "kuromoji_readingform": "#/components/schemas/_types.analysis.KuromojiReadingFormTokenFilter", + "kuromoji_stemmer": "#/components/schemas/_types.analysis.KuromojiStemmerTokenFilter", + "length": "#/components/schemas/_types.analysis.LengthTokenFilter", + "limit": "#/components/schemas/_types.analysis.LimitTokenCountTokenFilter", + "lowercase": "#/components/schemas/_types.analysis.LowercaseTokenFilter", + "min_hash": "#/components/schemas/_types.analysis.MinHashTokenFilter", + "multiplexer": "#/components/schemas/_types.analysis.MultiplexerTokenFilter", + "ngram": "#/components/schemas/_types.analysis.NGramTokenFilter", + "nori_part_of_speech": "#/components/schemas/_types.analysis.NoriPartOfSpeechTokenFilter", + "pattern_capture": "#/components/schemas/_types.analysis.PatternCaptureTokenFilter", + "pattern_replace": "#/components/schemas/_types.analysis.PatternReplaceTokenFilter", + "persian_normalization": "#/components/schemas/_types.analysis.PersianNormalizationTokenFilter", + "persian_stem": "#/components/schemas/_types.analysis.PersianStemTokenFilter", + "phonetic": "#/components/schemas/_types.analysis.PhoneticTokenFilter", + "porter_stem": "#/components/schemas/_types.analysis.PorterStemTokenFilter", + "predicate_token_filter": "#/components/schemas/_types.analysis.PredicateTokenFilter", + "remove_duplicates": "#/components/schemas/_types.analysis.RemoveDuplicatesTokenFilter", + "reverse": "#/components/schemas/_types.analysis.ReverseTokenFilter", + "russian_stem": "#/components/schemas/_types.analysis.RussianStemTokenFilter", + "scandinavian_folding": "#/components/schemas/_types.analysis.ScandinavianFoldingTokenFilter", + "scandinavian_normalization": "#/components/schemas/_types.analysis.ScandinavianNormalizationTokenFilter", + "serbian_normalization": "#/components/schemas/_types.analysis.SerbianNormalizationTokenFilter", + "shingle": "#/components/schemas/_types.analysis.ShingleTokenFilter", + "snowball": "#/components/schemas/_types.analysis.SnowballTokenFilter", + "sorani_normalization": "#/components/schemas/_types.analysis.SoraniNormalizationTokenFilter", + "stemmer": "#/components/schemas/_types.analysis.StemmerTokenFilter", + "stemmer_override": "#/components/schemas/_types.analysis.StemmerOverrideTokenFilter", + "stop": "#/components/schemas/_types.analysis.StopTokenFilter", + "synonym": "#/components/schemas/_types.analysis.SynonymTokenFilter", + "synonym_graph": "#/components/schemas/_types.analysis.SynonymGraphTokenFilter", + "trim": "#/components/schemas/_types.analysis.TrimTokenFilter", + "truncate": "#/components/schemas/_types.analysis.TruncateTokenFilter", + "unique": "#/components/schemas/_types.analysis.UniqueTokenFilter", + "uppercase": "#/components/schemas/_types.analysis.UppercaseTokenFilter", + "word_delimiter": "#/components/schemas/_types.analysis.WordDelimiterTokenFilter", + "word_delimiter_graph": "#/components/schemas/_types.analysis.WordDelimiterGraphTokenFilter" + } }, "oneOf": [ { @@ -80733,7 +80874,11 @@ }, "_types.analysis.Normalizer": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "custom": "#/components/schemas/_types.analysis.CustomNormalizer", + "lowercase": "#/components/schemas/_types.analysis.LowercaseNormalizer" + } }, "oneOf": [ { @@ -80799,7 +80944,27 @@ }, "_types.analysis.TokenizerDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "char_group": "#/components/schemas/_types.analysis.CharGroupTokenizer", + "classic": "#/components/schemas/_types.analysis.ClassicTokenizer", + "edge_ngram": "#/components/schemas/_types.analysis.EdgeNGramTokenizer", + "icu_tokenizer": "#/components/schemas/_types.analysis.IcuTokenizer", + "keyword": "#/components/schemas/_types.analysis.KeywordTokenizer", + "kuromoji_tokenizer": "#/components/schemas/_types.analysis.KuromojiTokenizer", + "letter": "#/components/schemas/_types.analysis.LetterTokenizer", + "lowercase": "#/components/schemas/_types.analysis.LowercaseTokenizer", + "ngram": "#/components/schemas/_types.analysis.NGramTokenizer", + "nori_tokenizer": "#/components/schemas/_types.analysis.NoriTokenizer", + "path_hierarchy": "#/components/schemas/_types.analysis.PathHierarchyTokenizer", + "pattern": "#/components/schemas/_types.analysis.PatternTokenizer", + "simple_pattern": "#/components/schemas/_types.analysis.SimplePatternTokenizer", + "simple_pattern_split": "#/components/schemas/_types.analysis.SimplePatternSplitTokenizer", + "standard": "#/components/schemas/_types.analysis.StandardTokenizer", + "thai": "#/components/schemas/_types.analysis.ThaiTokenizer", + "uax_url_email": "#/components/schemas/_types.analysis.UaxEmailUrlTokenizer", + "whitespace": "#/components/schemas/_types.analysis.WhitespaceTokenizer" + } }, "oneOf": [ { @@ -81455,7 +81620,17 @@ }, "indices._types.SettingsSimilarity": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "BM25": "#/components/schemas/indices._types.SettingsSimilarityBm25", + "DFI": "#/components/schemas/indices._types.SettingsSimilarityDfi", + "DFR": "#/components/schemas/indices._types.SettingsSimilarityDfr", + "IB": "#/components/schemas/indices._types.SettingsSimilarityIb", + "LMDirichlet": "#/components/schemas/indices._types.SettingsSimilarityLmd", + "LMJelinekMercer": "#/components/schemas/indices._types.SettingsSimilarityLmj", + "boolean": "#/components/schemas/indices._types.SettingsSimilarityBoolean", + "scripted": "#/components/schemas/indices._types.SettingsSimilarityScripted" + } }, "oneOf": [ { @@ -83401,7 +83576,61 @@ }, "_types.mapping.Property": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "aggregate_metric_double": "#/components/schemas/_types.mapping.AggregateMetricDoubleProperty", + "alias": "#/components/schemas/_types.mapping.FieldAliasProperty", + "binary": "#/components/schemas/_types.mapping.BinaryProperty", + "boolean": "#/components/schemas/_types.mapping.BooleanProperty", + "byte": "#/components/schemas/_types.mapping.ByteNumberProperty", + "completion": "#/components/schemas/_types.mapping.CompletionProperty", + "constant_keyword": "#/components/schemas/_types.mapping.ConstantKeywordProperty", + "counted_keyword": "#/components/schemas/_types.mapping.CountedKeywordProperty", + "date": "#/components/schemas/_types.mapping.DateProperty", + "date_nanos": "#/components/schemas/_types.mapping.DateNanosProperty", + "date_range": "#/components/schemas/_types.mapping.DateRangeProperty", + "dense_vector": "#/components/schemas/_types.mapping.DenseVectorProperty", + "double": "#/components/schemas/_types.mapping.DoubleNumberProperty", + "double_range": "#/components/schemas/_types.mapping.DoubleRangeProperty", + "flattened": "#/components/schemas/_types.mapping.FlattenedProperty", + "float": "#/components/schemas/_types.mapping.FloatNumberProperty", + "float_range": "#/components/schemas/_types.mapping.FloatRangeProperty", + "geo_point": "#/components/schemas/_types.mapping.GeoPointProperty", + "geo_shape": "#/components/schemas/_types.mapping.GeoShapeProperty", + "half_float": "#/components/schemas/_types.mapping.HalfFloatNumberProperty", + "histogram": "#/components/schemas/_types.mapping.HistogramProperty", + "icu_collation_keyword": "#/components/schemas/_types.mapping.IcuCollationProperty", + "integer": "#/components/schemas/_types.mapping.IntegerNumberProperty", + "integer_range": "#/components/schemas/_types.mapping.IntegerRangeProperty", + "ip": "#/components/schemas/_types.mapping.IpProperty", + "ip_range": "#/components/schemas/_types.mapping.IpRangeProperty", + "join": "#/components/schemas/_types.mapping.JoinProperty", + "keyword": "#/components/schemas/_types.mapping.KeywordProperty", + "long": "#/components/schemas/_types.mapping.LongNumberProperty", + "long_range": "#/components/schemas/_types.mapping.LongRangeProperty", + "match_only_text": "#/components/schemas/_types.mapping.MatchOnlyTextProperty", + "murmur3": "#/components/schemas/_types.mapping.Murmur3HashProperty", + "nested": "#/components/schemas/_types.mapping.NestedProperty", + "object": "#/components/schemas/_types.mapping.ObjectProperty", + "passthrough": "#/components/schemas/_types.mapping.PassthroughObjectProperty", + "percolator": "#/components/schemas/_types.mapping.PercolatorProperty", + "point": "#/components/schemas/_types.mapping.PointProperty", + "rank_feature": "#/components/schemas/_types.mapping.RankFeatureProperty", + "rank_features": "#/components/schemas/_types.mapping.RankFeaturesProperty", + "rank_vectors": "#/components/schemas/_types.mapping.RankVectorProperty", + "scaled_float": "#/components/schemas/_types.mapping.ScaledFloatNumberProperty", + "search_as_you_type": "#/components/schemas/_types.mapping.SearchAsYouTypeProperty", + "semantic_text": "#/components/schemas/_types.mapping.SemanticTextProperty", + "shape": "#/components/schemas/_types.mapping.ShapeProperty", + "short": "#/components/schemas/_types.mapping.ShortNumberProperty", + "sparse_vector": "#/components/schemas/_types.mapping.SparseVectorProperty", + "text": "#/components/schemas/_types.mapping.TextProperty", + "token_count": "#/components/schemas/_types.mapping.TokenCountProperty", + "unsigned_long": "#/components/schemas/_types.mapping.UnsignedLongNumberProperty", + "version": "#/components/schemas/_types.mapping.VersionProperty", + "wildcard": "#/components/schemas/_types.mapping.WildcardProperty", + "{dynamic_type}": "#/components/schemas/_types.mapping.DynamicProperty" + } }, "oneOf": [ { @@ -87184,7 +87413,11 @@ }, "cluster.remote_info.ClusterRemoteInfo": { "discriminator": { - "propertyName": "mode" + "propertyName": "mode", + "mapping": { + "proxy": "#/components/schemas/cluster.remote_info.ClusterRemoteProxyInfo", + "sniff": "#/components/schemas/cluster.remote_info.ClusterRemoteSniffInfo" + } }, "oneOf": [ { @@ -90513,7 +90746,14 @@ }, "connector._types.Validation": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "greater_than": "#/components/schemas/connector._types.GreaterThanValidation", + "included_in": "#/components/schemas/connector._types.IncludedInValidation", + "less_than": "#/components/schemas/connector._types.LessThanValidation", + "list_type": "#/components/schemas/connector._types.ListTypeValidation", + "regex": "#/components/schemas/connector._types.RegexValidation" + } }, "oneOf": [ { @@ -94016,7 +94256,11 @@ }, "ilm.explain_lifecycle.LifecycleExplain": { "discriminator": { - "propertyName": "managed" + "propertyName": "managed", + "mapping": { + "false": "#/components/schemas/ilm.explain_lifecycle.LifecycleExplainUnmanaged", + "true": "#/components/schemas/ilm.explain_lifecycle.LifecycleExplainManaged" + } }, "oneOf": [ { @@ -122146,7 +122390,15 @@ }, "snapshot._types.Repository": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "azure": "#/components/schemas/snapshot._types.AzureRepository", + "fs": "#/components/schemas/snapshot._types.SharedFileSystemRepository", + "gcs": "#/components/schemas/snapshot._types.GcsRepository", + "s3": "#/components/schemas/snapshot._types.S3Repository", + "source": "#/components/schemas/snapshot._types.SourceOnlyRepository", + "url": "#/components/schemas/snapshot._types.ReadOnlyUrlRepository" + } }, "oneOf": [ { diff --git a/output/openapi/elasticsearch-serverless-openapi.json b/output/openapi/elasticsearch-serverless-openapi.json index d4bb7a8f6d..e623ca445d 100644 --- a/output/openapi/elasticsearch-serverless-openapi.json +++ b/output/openapi/elasticsearch-serverless-openapi.json @@ -43737,7 +43737,14 @@ }, "_types.aggregations.MovingAverageAggregation": { "discriminator": { - "propertyName": "model" + "propertyName": "model", + "mapping": { + "ewma": "#/components/schemas/_types.aggregations.EwmaMovingAverageAggregation", + "holt": "#/components/schemas/_types.aggregations.HoltMovingAverageAggregation", + "holt_winters": "#/components/schemas/_types.aggregations.HoltWintersMovingAverageAggregation", + "linear": "#/components/schemas/_types.aggregations.LinearMovingAverageAggregation", + "simple": "#/components/schemas/_types.aggregations.SimpleMovingAverageAggregation" + } }, "oneOf": [ { @@ -49431,7 +49438,58 @@ }, "_types.analysis.Analyzer": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "arabic": "#/components/schemas/_types.analysis.ArabicAnalyzer", + "armenian": "#/components/schemas/_types.analysis.ArmenianAnalyzer", + "basque": "#/components/schemas/_types.analysis.BasqueAnalyzer", + "bengali": "#/components/schemas/_types.analysis.BengaliAnalyzer", + "brazilian": "#/components/schemas/_types.analysis.BrazilianAnalyzer", + "bulgarian": "#/components/schemas/_types.analysis.BulgarianAnalyzer", + "catalan": "#/components/schemas/_types.analysis.CatalanAnalyzer", + "chinese": "#/components/schemas/_types.analysis.ChineseAnalyzer", + "cjk": "#/components/schemas/_types.analysis.CjkAnalyzer", + "custom": "#/components/schemas/_types.analysis.CustomAnalyzer", + "czech": "#/components/schemas/_types.analysis.CzechAnalyzer", + "danish": "#/components/schemas/_types.analysis.DanishAnalyzer", + "dutch": "#/components/schemas/_types.analysis.DutchAnalyzer", + "english": "#/components/schemas/_types.analysis.EnglishAnalyzer", + "estonian": "#/components/schemas/_types.analysis.EstonianAnalyzer", + "fingerprint": "#/components/schemas/_types.analysis.FingerprintAnalyzer", + "finnish": "#/components/schemas/_types.analysis.FinnishAnalyzer", + "french": "#/components/schemas/_types.analysis.FrenchAnalyzer", + "galician": "#/components/schemas/_types.analysis.GalicianAnalyzer", + "german": "#/components/schemas/_types.analysis.GermanAnalyzer", + "greek": "#/components/schemas/_types.analysis.GreekAnalyzer", + "hindi": "#/components/schemas/_types.analysis.HindiAnalyzer", + "hungarian": "#/components/schemas/_types.analysis.HungarianAnalyzer", + "icu_analyzer": "#/components/schemas/_types.analysis.IcuAnalyzer", + "indonesian": "#/components/schemas/_types.analysis.IndonesianAnalyzer", + "irish": "#/components/schemas/_types.analysis.IrishAnalyzer", + "italian": "#/components/schemas/_types.analysis.ItalianAnalyzer", + "keyword": "#/components/schemas/_types.analysis.KeywordAnalyzer", + "kuromoji": "#/components/schemas/_types.analysis.KuromojiAnalyzer", + "latvian": "#/components/schemas/_types.analysis.LatvianAnalyzer", + "lithuanian": "#/components/schemas/_types.analysis.LithuanianAnalyzer", + "nori": "#/components/schemas/_types.analysis.NoriAnalyzer", + "norwegian": "#/components/schemas/_types.analysis.NorwegianAnalyzer", + "pattern": "#/components/schemas/_types.analysis.PatternAnalyzer", + "persian": "#/components/schemas/_types.analysis.PersianAnalyzer", + "portuguese": "#/components/schemas/_types.analysis.PortugueseAnalyzer", + "romanian": "#/components/schemas/_types.analysis.RomanianAnalyzer", + "russian": "#/components/schemas/_types.analysis.RussianAnalyzer", + "serbian": "#/components/schemas/_types.analysis.SerbianAnalyzer", + "simple": "#/components/schemas/_types.analysis.SimpleAnalyzer", + "snowball": "#/components/schemas/_types.analysis.SnowballAnalyzer", + "sorani": "#/components/schemas/_types.analysis.SoraniAnalyzer", + "spanish": "#/components/schemas/_types.analysis.SpanishAnalyzer", + "standard": "#/components/schemas/_types.analysis.StandardAnalyzer", + "stop": "#/components/schemas/_types.analysis.StopAnalyzer", + "swedish": "#/components/schemas/_types.analysis.SwedishAnalyzer", + "thai": "#/components/schemas/_types.analysis.ThaiAnalyzer", + "turkish": "#/components/schemas/_types.analysis.TurkishAnalyzer", + "whitespace": "#/components/schemas/_types.analysis.WhitespaceAnalyzer" + } }, "oneOf": [ { @@ -51099,7 +51157,14 @@ }, "_types.analysis.CharFilterDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "html_strip": "#/components/schemas/_types.analysis.HtmlStripCharFilter", + "icu_normalizer": "#/components/schemas/_types.analysis.IcuNormalizationCharFilter", + "kuromoji_iteration_mark": "#/components/schemas/_types.analysis.KuromojiIterationMarkCharFilter", + "mapping": "#/components/schemas/_types.analysis.MappingCharFilter", + "pattern_replace": "#/components/schemas/_types.analysis.PatternReplaceCharFilter" + } }, "oneOf": [ { @@ -51301,7 +51366,83 @@ }, "_types.analysis.TokenFilterDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "apostrophe": "#/components/schemas/_types.analysis.ApostropheTokenFilter", + "arabic_normalization": "#/components/schemas/_types.analysis.ArabicNormalizationTokenFilter", + "arabic_stem": "#/components/schemas/_types.analysis.ArabicStemTokenFilter", + "asciifolding": "#/components/schemas/_types.analysis.AsciiFoldingTokenFilter", + "bengali_normalization": "#/components/schemas/_types.analysis.BengaliNormalizationTokenFilter", + "brazilian_stem": "#/components/schemas/_types.analysis.BrazilianStemTokenFilter", + "cjk_bigram": "#/components/schemas/_types.analysis.CjkBigramTokenFilter", + "cjk_width": "#/components/schemas/_types.analysis.CjkWidthTokenFilter", + "classic": "#/components/schemas/_types.analysis.ClassicTokenFilter", + "common_grams": "#/components/schemas/_types.analysis.CommonGramsTokenFilter", + "condition": "#/components/schemas/_types.analysis.ConditionTokenFilter", + "czech_stem": "#/components/schemas/_types.analysis.CzechStemTokenFilter", + "decimal_digit": "#/components/schemas/_types.analysis.DecimalDigitTokenFilter", + "delimited_payload": "#/components/schemas/_types.analysis.DelimitedPayloadTokenFilter", + "dictionary_decompounder": "#/components/schemas/_types.analysis.DictionaryDecompounderTokenFilter", + "dutch_stem": "#/components/schemas/_types.analysis.DutchStemTokenFilter", + "edge_ngram": "#/components/schemas/_types.analysis.EdgeNGramTokenFilter", + "elision": "#/components/schemas/_types.analysis.ElisionTokenFilter", + "fingerprint": "#/components/schemas/_types.analysis.FingerprintTokenFilter", + "flatten_graph": "#/components/schemas/_types.analysis.FlattenGraphTokenFilter", + "french_stem": "#/components/schemas/_types.analysis.FrenchStemTokenFilter", + "german_normalization": "#/components/schemas/_types.analysis.GermanNormalizationTokenFilter", + "german_stem": "#/components/schemas/_types.analysis.GermanStemTokenFilter", + "hindi_normalization": "#/components/schemas/_types.analysis.HindiNormalizationTokenFilter", + "hunspell": "#/components/schemas/_types.analysis.HunspellTokenFilter", + "hyphenation_decompounder": "#/components/schemas/_types.analysis.HyphenationDecompounderTokenFilter", + "icu_collation": "#/components/schemas/_types.analysis.IcuCollationTokenFilter", + "icu_folding": "#/components/schemas/_types.analysis.IcuFoldingTokenFilter", + "icu_normalizer": "#/components/schemas/_types.analysis.IcuNormalizationTokenFilter", + "icu_transform": "#/components/schemas/_types.analysis.IcuTransformTokenFilter", + "indic_normalization": "#/components/schemas/_types.analysis.IndicNormalizationTokenFilter", + "ja_stop": "#/components/schemas/_types.analysis.JaStopTokenFilter", + "keep": "#/components/schemas/_types.analysis.KeepWordsTokenFilter", + "keep_types": "#/components/schemas/_types.analysis.KeepTypesTokenFilter", + "keyword_marker": "#/components/schemas/_types.analysis.KeywordMarkerTokenFilter", + "keyword_repeat": "#/components/schemas/_types.analysis.KeywordRepeatTokenFilter", + "kstem": "#/components/schemas/_types.analysis.KStemTokenFilter", + "kuromoji_part_of_speech": "#/components/schemas/_types.analysis.KuromojiPartOfSpeechTokenFilter", + "kuromoji_readingform": "#/components/schemas/_types.analysis.KuromojiReadingFormTokenFilter", + "kuromoji_stemmer": "#/components/schemas/_types.analysis.KuromojiStemmerTokenFilter", + "length": "#/components/schemas/_types.analysis.LengthTokenFilter", + "limit": "#/components/schemas/_types.analysis.LimitTokenCountTokenFilter", + "lowercase": "#/components/schemas/_types.analysis.LowercaseTokenFilter", + "min_hash": "#/components/schemas/_types.analysis.MinHashTokenFilter", + "multiplexer": "#/components/schemas/_types.analysis.MultiplexerTokenFilter", + "ngram": "#/components/schemas/_types.analysis.NGramTokenFilter", + "nori_part_of_speech": "#/components/schemas/_types.analysis.NoriPartOfSpeechTokenFilter", + "pattern_capture": "#/components/schemas/_types.analysis.PatternCaptureTokenFilter", + "pattern_replace": "#/components/schemas/_types.analysis.PatternReplaceTokenFilter", + "persian_normalization": "#/components/schemas/_types.analysis.PersianNormalizationTokenFilter", + "persian_stem": "#/components/schemas/_types.analysis.PersianStemTokenFilter", + "phonetic": "#/components/schemas/_types.analysis.PhoneticTokenFilter", + "porter_stem": "#/components/schemas/_types.analysis.PorterStemTokenFilter", + "predicate_token_filter": "#/components/schemas/_types.analysis.PredicateTokenFilter", + "remove_duplicates": "#/components/schemas/_types.analysis.RemoveDuplicatesTokenFilter", + "reverse": "#/components/schemas/_types.analysis.ReverseTokenFilter", + "russian_stem": "#/components/schemas/_types.analysis.RussianStemTokenFilter", + "scandinavian_folding": "#/components/schemas/_types.analysis.ScandinavianFoldingTokenFilter", + "scandinavian_normalization": "#/components/schemas/_types.analysis.ScandinavianNormalizationTokenFilter", + "serbian_normalization": "#/components/schemas/_types.analysis.SerbianNormalizationTokenFilter", + "shingle": "#/components/schemas/_types.analysis.ShingleTokenFilter", + "snowball": "#/components/schemas/_types.analysis.SnowballTokenFilter", + "sorani_normalization": "#/components/schemas/_types.analysis.SoraniNormalizationTokenFilter", + "stemmer": "#/components/schemas/_types.analysis.StemmerTokenFilter", + "stemmer_override": "#/components/schemas/_types.analysis.StemmerOverrideTokenFilter", + "stop": "#/components/schemas/_types.analysis.StopTokenFilter", + "synonym": "#/components/schemas/_types.analysis.SynonymTokenFilter", + "synonym_graph": "#/components/schemas/_types.analysis.SynonymGraphTokenFilter", + "trim": "#/components/schemas/_types.analysis.TrimTokenFilter", + "truncate": "#/components/schemas/_types.analysis.TruncateTokenFilter", + "unique": "#/components/schemas/_types.analysis.UniqueTokenFilter", + "uppercase": "#/components/schemas/_types.analysis.UppercaseTokenFilter", + "word_delimiter": "#/components/schemas/_types.analysis.WordDelimiterTokenFilter", + "word_delimiter_graph": "#/components/schemas/_types.analysis.WordDelimiterGraphTokenFilter" + } }, "oneOf": [ { @@ -53951,7 +54092,11 @@ }, "_types.analysis.Normalizer": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "custom": "#/components/schemas/_types.analysis.CustomNormalizer", + "lowercase": "#/components/schemas/_types.analysis.LowercaseNormalizer" + } }, "oneOf": [ { @@ -54017,7 +54162,27 @@ }, "_types.analysis.TokenizerDefinition": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "char_group": "#/components/schemas/_types.analysis.CharGroupTokenizer", + "classic": "#/components/schemas/_types.analysis.ClassicTokenizer", + "edge_ngram": "#/components/schemas/_types.analysis.EdgeNGramTokenizer", + "icu_tokenizer": "#/components/schemas/_types.analysis.IcuTokenizer", + "keyword": "#/components/schemas/_types.analysis.KeywordTokenizer", + "kuromoji_tokenizer": "#/components/schemas/_types.analysis.KuromojiTokenizer", + "letter": "#/components/schemas/_types.analysis.LetterTokenizer", + "lowercase": "#/components/schemas/_types.analysis.LowercaseTokenizer", + "ngram": "#/components/schemas/_types.analysis.NGramTokenizer", + "nori_tokenizer": "#/components/schemas/_types.analysis.NoriTokenizer", + "path_hierarchy": "#/components/schemas/_types.analysis.PathHierarchyTokenizer", + "pattern": "#/components/schemas/_types.analysis.PatternTokenizer", + "simple_pattern": "#/components/schemas/_types.analysis.SimplePatternTokenizer", + "simple_pattern_split": "#/components/schemas/_types.analysis.SimplePatternSplitTokenizer", + "standard": "#/components/schemas/_types.analysis.StandardTokenizer", + "thai": "#/components/schemas/_types.analysis.ThaiTokenizer", + "uax_url_email": "#/components/schemas/_types.analysis.UaxEmailUrlTokenizer", + "whitespace": "#/components/schemas/_types.analysis.WhitespaceTokenizer" + } }, "oneOf": [ { @@ -54673,7 +54838,17 @@ }, "indices._types.SettingsSimilarity": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "BM25": "#/components/schemas/indices._types.SettingsSimilarityBm25", + "DFI": "#/components/schemas/indices._types.SettingsSimilarityDfi", + "DFR": "#/components/schemas/indices._types.SettingsSimilarityDfr", + "IB": "#/components/schemas/indices._types.SettingsSimilarityIb", + "LMDirichlet": "#/components/schemas/indices._types.SettingsSimilarityLmd", + "LMJelinekMercer": "#/components/schemas/indices._types.SettingsSimilarityLmj", + "boolean": "#/components/schemas/indices._types.SettingsSimilarityBoolean", + "scripted": "#/components/schemas/indices._types.SettingsSimilarityScripted" + } }, "oneOf": [ { @@ -55508,7 +55683,61 @@ }, "_types.mapping.Property": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "aggregate_metric_double": "#/components/schemas/_types.mapping.AggregateMetricDoubleProperty", + "alias": "#/components/schemas/_types.mapping.FieldAliasProperty", + "binary": "#/components/schemas/_types.mapping.BinaryProperty", + "boolean": "#/components/schemas/_types.mapping.BooleanProperty", + "byte": "#/components/schemas/_types.mapping.ByteNumberProperty", + "completion": "#/components/schemas/_types.mapping.CompletionProperty", + "constant_keyword": "#/components/schemas/_types.mapping.ConstantKeywordProperty", + "counted_keyword": "#/components/schemas/_types.mapping.CountedKeywordProperty", + "date": "#/components/schemas/_types.mapping.DateProperty", + "date_nanos": "#/components/schemas/_types.mapping.DateNanosProperty", + "date_range": "#/components/schemas/_types.mapping.DateRangeProperty", + "dense_vector": "#/components/schemas/_types.mapping.DenseVectorProperty", + "double": "#/components/schemas/_types.mapping.DoubleNumberProperty", + "double_range": "#/components/schemas/_types.mapping.DoubleRangeProperty", + "flattened": "#/components/schemas/_types.mapping.FlattenedProperty", + "float": "#/components/schemas/_types.mapping.FloatNumberProperty", + "float_range": "#/components/schemas/_types.mapping.FloatRangeProperty", + "geo_point": "#/components/schemas/_types.mapping.GeoPointProperty", + "geo_shape": "#/components/schemas/_types.mapping.GeoShapeProperty", + "half_float": "#/components/schemas/_types.mapping.HalfFloatNumberProperty", + "histogram": "#/components/schemas/_types.mapping.HistogramProperty", + "icu_collation_keyword": "#/components/schemas/_types.mapping.IcuCollationProperty", + "integer": "#/components/schemas/_types.mapping.IntegerNumberProperty", + "integer_range": "#/components/schemas/_types.mapping.IntegerRangeProperty", + "ip": "#/components/schemas/_types.mapping.IpProperty", + "ip_range": "#/components/schemas/_types.mapping.IpRangeProperty", + "join": "#/components/schemas/_types.mapping.JoinProperty", + "keyword": "#/components/schemas/_types.mapping.KeywordProperty", + "long": "#/components/schemas/_types.mapping.LongNumberProperty", + "long_range": "#/components/schemas/_types.mapping.LongRangeProperty", + "match_only_text": "#/components/schemas/_types.mapping.MatchOnlyTextProperty", + "murmur3": "#/components/schemas/_types.mapping.Murmur3HashProperty", + "nested": "#/components/schemas/_types.mapping.NestedProperty", + "object": "#/components/schemas/_types.mapping.ObjectProperty", + "passthrough": "#/components/schemas/_types.mapping.PassthroughObjectProperty", + "percolator": "#/components/schemas/_types.mapping.PercolatorProperty", + "point": "#/components/schemas/_types.mapping.PointProperty", + "rank_feature": "#/components/schemas/_types.mapping.RankFeatureProperty", + "rank_features": "#/components/schemas/_types.mapping.RankFeaturesProperty", + "rank_vectors": "#/components/schemas/_types.mapping.RankVectorProperty", + "scaled_float": "#/components/schemas/_types.mapping.ScaledFloatNumberProperty", + "search_as_you_type": "#/components/schemas/_types.mapping.SearchAsYouTypeProperty", + "semantic_text": "#/components/schemas/_types.mapping.SemanticTextProperty", + "shape": "#/components/schemas/_types.mapping.ShapeProperty", + "short": "#/components/schemas/_types.mapping.ShortNumberProperty", + "sparse_vector": "#/components/schemas/_types.mapping.SparseVectorProperty", + "text": "#/components/schemas/_types.mapping.TextProperty", + "token_count": "#/components/schemas/_types.mapping.TokenCountProperty", + "unsigned_long": "#/components/schemas/_types.mapping.UnsignedLongNumberProperty", + "version": "#/components/schemas/_types.mapping.VersionProperty", + "wildcard": "#/components/schemas/_types.mapping.WildcardProperty", + "{dynamic_type}": "#/components/schemas/_types.mapping.DynamicProperty" + } }, "oneOf": [ { @@ -59256,7 +59485,14 @@ }, "connector._types.Validation": { "discriminator": { - "propertyName": "type" + "propertyName": "type", + "mapping": { + "greater_than": "#/components/schemas/connector._types.GreaterThanValidation", + "included_in": "#/components/schemas/connector._types.IncludedInValidation", + "less_than": "#/components/schemas/connector._types.LessThanValidation", + "list_type": "#/components/schemas/connector._types.ListTypeValidation", + "regex": "#/components/schemas/connector._types.RegexValidation" + } }, "oneOf": [ {