diff --git a/src/Kiota.Builder/Extensions/OpenApiUrlTreeNodeExtensions.cs b/src/Kiota.Builder/Extensions/OpenApiUrlTreeNodeExtensions.cs index 220d249bd5..ff31141c18 100644 --- a/src/Kiota.Builder/Extensions/OpenApiUrlTreeNodeExtensions.cs +++ b/src/Kiota.Builder/Extensions/OpenApiUrlTreeNodeExtensions.cs @@ -13,7 +13,7 @@ public static partial class OpenApiUrlTreeNodeExtensions { private static string GetDotIfBothNotNullOfEmpty(string x, string y) => string.IsNullOrEmpty(x) || string.IsNullOrEmpty(y) ? string.Empty : "."; private static readonly Func replaceSingleParameterSegmentByItem = - static x => x.IsPathSegmentWithSingleSimpleParameter() ? "item" : x; + static x => x.IsPathSegmentWithSingleSimpleParameter() ? "item" : ("item".Equals(x, StringComparison.OrdinalIgnoreCase) ? "item_escaped" : x); private static readonly char[] namespaceNameSplitCharacters = ['.', '-', '$']; //$ref from OData private const string EscapedSuffix = "Escaped"; internal static string GetNamespaceFromPath(this string currentPath, string prefix) => diff --git a/src/Kiota.Builder/KiotaBuilder.cs b/src/Kiota.Builder/KiotaBuilder.cs index 226e831e78..fe2beff127 100644 --- a/src/Kiota.Builder/KiotaBuilder.cs +++ b/src/Kiota.Builder/KiotaBuilder.cs @@ -602,7 +602,7 @@ private void CreateRequestBuilderClass(CodeNamespace currentNamespace, OpenApiUr var className = currentNode.DoesNodeBelongToItemSubnamespace() ? currentNode.GetNavigationPropertyName(config.StructuredMimeTypes, ItemRequestBuilderSuffix) : currentNode.GetNavigationPropertyName(config.StructuredMimeTypes, RequestBuilderSuffix); codeClass = targetNS.AddClass(new CodeClass { - Name = className.CleanupSymbolName(), + Name = currentNamespace.Name.EndsWith("item_escaped", StringComparison.InvariantCultureIgnoreCase) ? className.CleanupSymbolName().Replace("item", "item_escaped", StringComparison.InvariantCultureIgnoreCase) : className.CleanupSymbolName(), Kind = CodeClassKind.RequestBuilder, Documentation = new() {