diff --git a/.github/workflows/integration-jobs.yml b/.github/workflows/integration-jobs.yml index 98e4318d01c..2bb40a46491 100644 --- a/.github/workflows/integration-jobs.yml +++ b/.github/workflows/integration-jobs.yml @@ -22,6 +22,7 @@ jobs: fail-fast: false matrix: stack_version: [ + '8.0.1', '8.1.3', '8.2.3', '8.3.3', diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/AggregateOrderConverter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/AggregateOrderConverter.g.cs index 18d4add021d..eacc477791f 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/AggregateOrderConverter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/AggregateOrderConverter.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.g.cs index 260b2a2de60..897e3b00b06 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 3f714ae8128..b3e68f198b9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Buckets.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 d1fa7b1033e..49677b2aefe 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/FieldDateMath.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 45c152b2e66..d1754b4c4d7 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Percentiles.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzers.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzers.g.cs index 706960a05db..0cbd3d21167 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzers.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzers.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilters.g.cs index abda6ce5c5b..ad2a72faf20 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilters.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Normalizers.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Normalizers.g.cs index 1cdbcc359fa..de5ab187e90 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Normalizers.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Normalizers.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilters.g.cs index fc0298cb22f..079dc32749e 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilters.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizers.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizers.g.cs index 73ca8318ccc..70bb2760c89 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizers.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizers.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs index e7a3618764c..31c1ee935a3 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ByteSize.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Context.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Context.g.cs index d8e25ee3b5b..007314da344 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Context.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Context.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 81a25e1cc35..8ee50c96ca2 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiGetResponseItem.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 45ea95a39a9..20835f02f4b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/MultiSearchResponseItem.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 bee02e2fd55..5083b94adfa 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfig.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 8665473895d..cb62ac8d9f2 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/SourceConfigParam.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 a00b45f46ee..2ed6c1c02b4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/TrackHits.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ExpandWildcardsConverter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ExpandWildcardsConverter.g.cs index d02b16dcbea..c0f3ecfd2ab 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/ExpandWildcardsConverter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ExpandWildcardsConverter.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/FeaturesConverter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/FeaturesConverter.g.cs index b1b51af1e0c..cf7ed23d502 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/FeaturesConverter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/FeaturesConverter.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs index 0c5841809a5..6999834ac5b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Fuzziness.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs index 1e1c1761ab7..676ab1629ec 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoHashPrecision.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoLocation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoLocation.g.cs index 2b88fd281d6..f0e08984a1c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoLocation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/GeoLocation.g.cs @@ -166,4 +166,4 @@ public GeoLocationConverter() } }; } -} +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs index 4c8eda81caf..5f0edb24453 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/TypeMapping.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/TypeMapping.g.cs index 6dc0be0a457..8e0b02dabc4 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/TypeMapping.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/TypeMapping.g.cs @@ -57,7 +57,7 @@ public sealed partial class TypeMapping [JsonInclude, JsonPropertyName("dynamic_date_formats")] public ICollection? DynamicDateFormats { get; set; } - [JsonInclude, JsonPropertyName("dynamic_templates"), SingleOrManyCollectionConverter(typeof(IDictionary))] + [JsonInclude, JsonPropertyName("dynamic_templates")] public ICollection>? DynamicTemplates { get; set; } [JsonInclude, JsonPropertyName("enabled")] @@ -505,7 +505,7 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o if (DynamicTemplatesValue is not null) { writer.WritePropertyName("dynamic_templates"); - SingleOrManySerializationHelper.Serialize>(DynamicTemplatesValue, writer, options); + JsonSerializer.Serialize(writer, DynamicTemplatesValue, options); } if (EnabledValue.HasValue) @@ -981,7 +981,7 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o if (DynamicTemplatesValue is not null) { writer.WritePropertyName("dynamic_templates"); - SingleOrManySerializationHelper.Serialize>(DynamicTemplatesValue, writer, options); + JsonSerializer.Serialize(writer, DynamicTemplatesValue, options); } if (EnabledValue.HasValue) 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 88fbb3ab976..df1969416cd 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Like.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 07622c9bd72..5609fa2181d 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/TermsQueryField.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs index 1c352b6881e..cdbe4537051 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Script.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs index 774920e9650..dbe2384ea21 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Slices.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/StopWordsConverter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/StopWordsConverter.g.cs index f996c8e85eb..810224da259 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/StopWordsConverter.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/StopWordsConverter.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; 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 19e24b38f29..cc8bcaf95cb 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Tasks/TaskInfos.g.cs @@ -15,6 +15,7 @@ // // ------------------------------------------------ +using Elastic.Clients.Elasticsearch.Core; using Elastic.Clients.Elasticsearch.Fluent; using Elastic.Clients.Elasticsearch.Serialization; using Elastic.Transport; diff --git a/tests/Tests/IndexManagement/CreateIndexSerializationTests.cs b/tests/Tests/IndexManagement/CreateIndexSerializationTests.cs index 5259036bec7..6748235df8f 100644 --- a/tests/Tests/IndexManagement/CreateIndexSerializationTests.cs +++ b/tests/Tests/IndexManagement/CreateIndexSerializationTests.cs @@ -4,6 +4,7 @@ using Elastic.Clients.Elasticsearch.Analysis; using Elastic.Clients.Elasticsearch.IndexManagement; +using Elastic.Clients.Elasticsearch.Mapping; using Elastic.Clients.Elasticsearch.QueryDsl; using System.Collections.Generic; using System.Threading.Tasks; @@ -83,4 +84,45 @@ public async Task CreateIndexWithAnalysisSettings_SerializesCorrectly() var objectJson = await SerializeAndGetJsonStringAsync(createRequest); objectJson.Should().Be(json); } + + [U] + public async Task CreateIndexWithDynamicTemplates_SerializesCorrectly() + { + var myTemplate = new DynamicTemplate + { + PathMatch = "testPathMatch", + Mapping = new KeywordProperty() + }; + + var descriptor = new CreateIndexRequestDescriptor("test") + .Mappings(m => m + .DynamicTemplates(new[] + { + new Dictionary + { + { "testTemplateName", myTemplate } + } + })); + + var json = await SerializeAndGetJsonStringAsync(descriptor); + + await Verifier.VerifyJson(json); + + var createRequest = new CreateIndexRequest("test") + { + Mappings = new TypeMapping + { + DynamicTemplates = new[] + { + new Dictionary + { + { "testTemplateName", myTemplate } + } + } + } + }; + + var objectJson = await SerializeAndGetJsonStringAsync(createRequest); + objectJson.Should().Be(json); + } } diff --git a/tests/Tests/IndexManagement/GetIndexSerializationTests.cs b/tests/Tests/IndexManagement/GetIndexSerializationTests.cs index 6ba34529790..cf9ef966225 100644 --- a/tests/Tests/IndexManagement/GetIndexSerializationTests.cs +++ b/tests/Tests/IndexManagement/GetIndexSerializationTests.cs @@ -7058,7 +7058,7 @@ public void GetIndexResponse_DeserializedCorrectly() } [U] - public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplateArrayIsPresentInResponse() + public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplatesArePresentInResponse() { const string json = @"{ ""catalog-data-2023.01.31"": { @@ -7091,39 +7091,6 @@ public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplateArrayIsPre VerifyGetIndexResponseDynamicTemplates(response); } - [U] - public void GetIndexResponse_DeserializedCorrectly_WhenSingleDynamicTemplateIsPresentInResponse() - { - const string json = @"{ - ""catalog-data-2023.01.31"": { - ""aliases"": { - }, - ""mappings"": { - ""dynamic_templates"": - { - ""strings_as_keyword"": { - ""match_mapping_type"": ""string"", - ""mapping"": { - ""ignore_above"": 1024, - ""type"": ""keyword"" - } - } - }, - ""properties"": { - ""@timestamp"": { - ""type"": ""date"" - } - } - }, - ""settings"": { - } - } -}"; - - var response = DeserializeJsonString(json); - VerifyGetIndexResponseDynamicTemplates(response); - } - private static void VerifyGetIndexResponseDynamicTemplates(GetIndexResponse response) { response.Indices.TryGetValue("catalog-data-2023.01.31", out var indexState).Should().BeTrue(); diff --git a/tests/Tests/_VerifySnapshots/CreateIndexSerializationTests.CreateIndexWithDynamicTemplates_SerializesCorrectly.verified.txt b/tests/Tests/_VerifySnapshots/CreateIndexSerializationTests.CreateIndexWithDynamicTemplates_SerializesCorrectly.verified.txt new file mode 100644 index 00000000000..3de63cb06dc --- /dev/null +++ b/tests/Tests/_VerifySnapshots/CreateIndexSerializationTests.CreateIndexWithDynamicTemplates_SerializesCorrectly.verified.txt @@ -0,0 +1,14 @@ +{ + mappings: { + dynamic_templates: [ + { + testTemplateName: { + mapping: { + type: keyword + }, + path_match: testPathMatch + } + } + ] + } +} \ No newline at end of file