typedapi/types/flattenedproperty.go (882 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // Code generated from the elasticsearch-specification DO NOT EDIT. // https://github.com/elastic/elasticsearch-specification/tree/cbfcc73d01310bed2a480ec35aaef98138b598e5 package types import ( "bytes" "encoding/json" "errors" "fmt" "io" "strconv" "github.com/elastic/go-elasticsearch/v9/typedapi/types/enums/dynamicmapping" "github.com/elastic/go-elasticsearch/v9/typedapi/types/enums/indexoptions" "github.com/elastic/go-elasticsearch/v9/typedapi/types/enums/syntheticsourcekeepenum" ) // FlattenedProperty type. // // https://github.com/elastic/elasticsearch-specification/blob/cbfcc73d01310bed2a480ec35aaef98138b598e5/specification/_types/mapping/complex.ts#L26-L37 type FlattenedProperty struct { Boost *Float64 `json:"boost,omitempty"` DepthLimit *int `json:"depth_limit,omitempty"` DocValues *bool `json:"doc_values,omitempty"` Dynamic *dynamicmapping.DynamicMapping `json:"dynamic,omitempty"` EagerGlobalOrdinals *bool `json:"eager_global_ordinals,omitempty"` Fields map[string]Property `json:"fields,omitempty"` IgnoreAbove *int `json:"ignore_above,omitempty"` Index *bool `json:"index,omitempty"` IndexOptions *indexoptions.IndexOptions `json:"index_options,omitempty"` // Meta Metadata about the field. Meta map[string]string `json:"meta,omitempty"` NullValue *string `json:"null_value,omitempty"` Properties map[string]Property `json:"properties,omitempty"` Similarity *string `json:"similarity,omitempty"` SplitQueriesOnWhitespace *bool `json:"split_queries_on_whitespace,omitempty"` SyntheticSourceKeep *syntheticsourcekeepenum.SyntheticSourceKeepEnum `json:"synthetic_source_keep,omitempty"` Type string `json:"type,omitempty"` } func (s *FlattenedProperty) UnmarshalJSON(data []byte) error { dec := json.NewDecoder(bytes.NewReader(data)) for { t, err := dec.Token() if err != nil { if errors.Is(err, io.EOF) { break } return err } switch t { case "boost": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.ParseFloat(v, 64) if err != nil { return fmt.Errorf("%s | %w", "Boost", err) } f := Float64(value) s.Boost = &f case float64: f := Float64(v) s.Boost = &f } case "depth_limit": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.Atoi(v) if err != nil { return fmt.Errorf("%s | %w", "DepthLimit", err) } s.DepthLimit = &value case float64: f := int(v) s.DepthLimit = &f } case "doc_values": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.ParseBool(v) if err != nil { return fmt.Errorf("%s | %w", "DocValues", err) } s.DocValues = &value case bool: s.DocValues = &v } case "dynamic": if err := dec.Decode(&s.Dynamic); err != nil { return fmt.Errorf("%s | %w", "Dynamic", err) } case "eager_global_ordinals": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.ParseBool(v) if err != nil { return fmt.Errorf("%s | %w", "EagerGlobalOrdinals", err) } s.EagerGlobalOrdinals = &value case bool: s.EagerGlobalOrdinals = &v } case "fields": if s.Fields == nil { s.Fields = make(map[string]Property, 0) } refs := make(map[string]json.RawMessage, 0) dec.Decode(&refs) for key, message := range refs { kind := make(map[string]any) buf := bytes.NewReader(message) localDec := json.NewDecoder(buf) localDec.Decode(&kind) buf.Seek(0, io.SeekStart) if _, ok := kind["type"]; !ok { kind["type"] = "object" } switch kind["type"] { case "binary": oo := NewBinaryProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "boolean": oo := NewBooleanProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "{dynamic_type}": oo := NewDynamicProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "join": oo := NewJoinProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "keyword": oo := NewKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "match_only_text": oo := NewMatchOnlyTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "percolator": oo := NewPercolatorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "rank_feature": oo := NewRankFeatureProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "rank_features": oo := NewRankFeaturesProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "search_as_you_type": oo := NewSearchAsYouTypeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "text": oo := NewTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "version": oo := NewVersionProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "wildcard": oo := NewWildcardProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "date_nanos": oo := NewDateNanosProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "date": oo := NewDateProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "aggregate_metric_double": oo := NewAggregateMetricDoubleProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "dense_vector": oo := NewDenseVectorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "flattened": oo := NewFlattenedProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "nested": oo := NewNestedProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "object": oo := NewObjectProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "passthrough": oo := NewPassthroughObjectProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "semantic_text": oo := NewSemanticTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "sparse_vector": oo := NewSparseVectorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "completion": oo := NewCompletionProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "constant_keyword": oo := NewConstantKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "counted_keyword": oo := NewCountedKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "alias": oo := NewFieldAliasProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "histogram": oo := NewHistogramProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "ip": oo := NewIpProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "murmur3": oo := NewMurmur3HashProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "token_count": oo := NewTokenCountProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "geo_point": oo := NewGeoPointProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "geo_shape": oo := NewGeoShapeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "point": oo := NewPointProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "shape": oo := NewShapeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "byte": oo := NewByteNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "double": oo := NewDoubleNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "float": oo := NewFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "half_float": oo := NewHalfFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "integer": oo := NewIntegerNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "long": oo := NewLongNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "scaled_float": oo := NewScaledFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "short": oo := NewShortNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "unsigned_long": oo := NewUnsignedLongNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "date_range": oo := NewDateRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "double_range": oo := NewDoubleRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "float_range": oo := NewFloatRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "integer_range": oo := NewIntegerRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "ip_range": oo := NewIpRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "long_range": oo := NewLongRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo case "icu_collation_keyword": oo := NewIcuCollationProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Fields | %w", err) } s.Fields[key] = oo default: oo := new(Property) if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("new(Property) | %w", err) } s.Fields[key] = oo } } case "ignore_above": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.Atoi(v) if err != nil { return fmt.Errorf("%s | %w", "IgnoreAbove", err) } s.IgnoreAbove = &value case float64: f := int(v) s.IgnoreAbove = &f } case "index": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.ParseBool(v) if err != nil { return fmt.Errorf("%s | %w", "Index", err) } s.Index = &value case bool: s.Index = &v } case "index_options": if err := dec.Decode(&s.IndexOptions); err != nil { return fmt.Errorf("%s | %w", "IndexOptions", err) } case "meta": if s.Meta == nil { s.Meta = make(map[string]string, 0) } if err := dec.Decode(&s.Meta); err != nil { return fmt.Errorf("%s | %w", "Meta", err) } case "null_value": var tmp json.RawMessage if err := dec.Decode(&tmp); err != nil { return fmt.Errorf("%s | %w", "NullValue", err) } o := string(tmp[:]) o, err = strconv.Unquote(o) if err != nil { o = string(tmp[:]) } s.NullValue = &o case "properties": if s.Properties == nil { s.Properties = make(map[string]Property, 0) } refs := make(map[string]json.RawMessage, 0) dec.Decode(&refs) for key, message := range refs { kind := make(map[string]any) buf := bytes.NewReader(message) localDec := json.NewDecoder(buf) localDec.Decode(&kind) buf.Seek(0, io.SeekStart) if _, ok := kind["type"]; !ok { kind["type"] = "object" } switch kind["type"] { case "binary": oo := NewBinaryProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "boolean": oo := NewBooleanProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "{dynamic_type}": oo := NewDynamicProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "join": oo := NewJoinProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "keyword": oo := NewKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "match_only_text": oo := NewMatchOnlyTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "percolator": oo := NewPercolatorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "rank_feature": oo := NewRankFeatureProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "rank_features": oo := NewRankFeaturesProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "search_as_you_type": oo := NewSearchAsYouTypeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "text": oo := NewTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "version": oo := NewVersionProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "wildcard": oo := NewWildcardProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "date_nanos": oo := NewDateNanosProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "date": oo := NewDateProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "aggregate_metric_double": oo := NewAggregateMetricDoubleProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "dense_vector": oo := NewDenseVectorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "flattened": oo := NewFlattenedProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "nested": oo := NewNestedProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "object": oo := NewObjectProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "passthrough": oo := NewPassthroughObjectProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "semantic_text": oo := NewSemanticTextProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "sparse_vector": oo := NewSparseVectorProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "completion": oo := NewCompletionProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "constant_keyword": oo := NewConstantKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "counted_keyword": oo := NewCountedKeywordProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "alias": oo := NewFieldAliasProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "histogram": oo := NewHistogramProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "ip": oo := NewIpProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "murmur3": oo := NewMurmur3HashProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "token_count": oo := NewTokenCountProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "geo_point": oo := NewGeoPointProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "geo_shape": oo := NewGeoShapeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "point": oo := NewPointProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "shape": oo := NewShapeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "byte": oo := NewByteNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "double": oo := NewDoubleNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "float": oo := NewFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "half_float": oo := NewHalfFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "integer": oo := NewIntegerNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "long": oo := NewLongNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "scaled_float": oo := NewScaledFloatNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "short": oo := NewShortNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "unsigned_long": oo := NewUnsignedLongNumberProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "date_range": oo := NewDateRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "double_range": oo := NewDoubleRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "float_range": oo := NewFloatRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "integer_range": oo := NewIntegerRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "ip_range": oo := NewIpRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "long_range": oo := NewLongRangeProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo case "icu_collation_keyword": oo := NewIcuCollationProperty() if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("Properties | %w", err) } s.Properties[key] = oo default: oo := new(Property) if err := localDec.Decode(&oo); err != nil { return fmt.Errorf("new(Property) | %w", err) } s.Properties[key] = oo } } case "similarity": var tmp json.RawMessage if err := dec.Decode(&tmp); err != nil { return fmt.Errorf("%s | %w", "Similarity", err) } o := string(tmp[:]) o, err = strconv.Unquote(o) if err != nil { o = string(tmp[:]) } s.Similarity = &o case "split_queries_on_whitespace": var tmp any dec.Decode(&tmp) switch v := tmp.(type) { case string: value, err := strconv.ParseBool(v) if err != nil { return fmt.Errorf("%s | %w", "SplitQueriesOnWhitespace", err) } s.SplitQueriesOnWhitespace = &value case bool: s.SplitQueriesOnWhitespace = &v } case "synthetic_source_keep": if err := dec.Decode(&s.SyntheticSourceKeep); err != nil { return fmt.Errorf("%s | %w", "SyntheticSourceKeep", err) } case "type": if err := dec.Decode(&s.Type); err != nil { return fmt.Errorf("%s | %w", "Type", err) } } } return nil } // MarshalJSON override marshalling to include literal value func (s FlattenedProperty) MarshalJSON() ([]byte, error) { type innerFlattenedProperty FlattenedProperty tmp := innerFlattenedProperty{ Boost: s.Boost, DepthLimit: s.DepthLimit, DocValues: s.DocValues, Dynamic: s.Dynamic, EagerGlobalOrdinals: s.EagerGlobalOrdinals, Fields: s.Fields, IgnoreAbove: s.IgnoreAbove, Index: s.Index, IndexOptions: s.IndexOptions, Meta: s.Meta, NullValue: s.NullValue, Properties: s.Properties, Similarity: s.Similarity, SplitQueriesOnWhitespace: s.SplitQueriesOnWhitespace, SyntheticSourceKeep: s.SyntheticSourceKeep, Type: s.Type, } tmp.Type = "flattened" return json.Marshal(tmp) } // NewFlattenedProperty returns a FlattenedProperty. func NewFlattenedProperty() *FlattenedProperty { r := &FlattenedProperty{ Fields: make(map[string]Property), Meta: make(map[string]string), Properties: make(map[string]Property), } return r } // true type FlattenedPropertyVariant interface { FlattenedPropertyCaster() *FlattenedProperty } func (s *FlattenedProperty) FlattenedPropertyCaster() *FlattenedProperty { return s }