diff --git a/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs b/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs index 004084d40e..375d4f6ae7 100644 --- a/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs +++ b/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs @@ -29,7 +29,7 @@ public static IEnumerable GetSchemaNames(this OpenApiSchema schema, bool internal static IEnumerable FlattenSchemaIfRequired(this IList schemas, Func> subsequentGetter) { if (schemas is null) return []; - return schemas.Count == 1 && !schemas[0].HasAnyProperty() ? + return schemas.Count == 1 && !schemas[0].HasAnyProperty() && string.IsNullOrEmpty(schemas[0].Reference?.Id) ? schemas.FlattenEmptyEntries(subsequentGetter, 1) : schemas; } diff --git a/src/Kiota.Builder/KiotaBuilder.cs b/src/Kiota.Builder/KiotaBuilder.cs index f13d8238de..ef05625247 100644 --- a/src/Kiota.Builder/KiotaBuilder.cs +++ b/src/Kiota.Builder/KiotaBuilder.cs @@ -1816,7 +1816,7 @@ private CodeElement AddModelDeclarationIfDoesntExist(OpenApiUrlTreeNode currentN if (AddEnumDeclaration(currentNode, schema, declarationName, currentNamespace) is CodeEnum enumDeclaration) return enumDeclaration; - if (schema.IsIntersection() && schema.MergeIntersectionSchemaEntries() is {} mergedSchema && + if (schema.IsIntersection() && schema.MergeIntersectionSchemaEntries() is { } mergedSchema && AddModelDeclarationIfDoesntExist(currentNode, currentOperation, mergedSchema, declarationName, currentNamespace, inheritsFrom) is CodeClass createdClass) { // multiple allOf entries that do not translate to inheritance diff --git a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs index 84decd6e6f..19c2d8a249 100644 --- a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs +++ b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs @@ -7469,6 +7469,9 @@ public async Task InlineSchemaWithSingleAllOfReference() var memberClass = codeModel.FindChildByName("member"); Assert.NotNull(memberClass); Assert.Equal(2, memberClass.Properties.Count());// single prop plus additionalData + var memberProperty = memberClass.Properties.FirstOrDefault(static x => x.Name.Equals("group", StringComparison.OrdinalIgnoreCase)); + Assert.NotNull(memberProperty); + Assert.Equal("group", memberProperty.Type.Name); Assert.Null(memberClass.StartBlock.Inherits);//no base var userClass = codeModel.FindChildByName("user"); Assert.NotNull(userClass);